From 2b1c7bfb8896f7dc05cdaf04b7f1d178b315d9f1 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Mon, 9 Feb 2026 14:41:01 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=8B=A4=EC=88=98=20=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=20=EA=B0=9C=EC=84=A0=20-=20=EC=88=9C=EC=B0=B0,=20=EC=B6=9C?= =?UTF-8?q?=EA=B7=BC,=20=EC=9E=91=EC=97=85=EB=B6=84=EC=84=9D,=20=EB=AA=A8?= =?UTF-8?q?=EB=B0=94=EC=9D=BC=20UI=20=EB=93=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 순찰/점검 기능 개선 (zone-detail 페이지 추가) - 출근/근태 시스템 개선 (연차 조회, 근무현황) - 작업분석 대분류 그룹화 및 마이그레이션 스크립트 - 모바일 네비게이션 UI 추가 - NAS 배포 도구 및 문서 추가 Co-Authored-By: Claude Opus 4.6 --- api.hyungi.net/config/middleware.js | 9 +- api.hyungi.net/config/routes.js | 5 +- .../controllers/attendanceController.js | 15 + .../controllers/patrolController.js | 501 + api.hyungi.net/controllers/taskController.js | 12 +- .../controllers/vacationBalanceController.js | 64 + .../20260205_fix_work_type_id_data.js | 105 + .../20260206_migrate_error_types_final.sql | 56 + ...0206_migrate_error_types_to_issue_items.js | 112 + ...206_migrate_error_types_to_issue_items.sql | 73 + api.hyungi.net/index.js | 216 + api.hyungi.net/models/WorkAnalysis.js | 60 +- api.hyungi.net/models/attendanceModel.js | 20 +- api.hyungi.net/models/dailyWorkReportModel.js | 43 +- api.hyungi.net/models/taskModel.js | 6 +- api.hyungi.net/models/vacationBalanceModel.js | 112 + api.hyungi.net/routes/attendanceRoutes.js | 3 + api.hyungi.net/routes/authRoutes.js | 18 +- api.hyungi.net/routes/healthRoutes.js | 95 + api.hyungi.net/routes/patrolRoutes.js | 53 + api.hyungi.net/routes/systemRoutes.js | 92 + .../routes/vacationBalanceRoutes.js | 3 + api.hyungi.net/services/attendanceService.js | 63 +- deploy/README.md | 137 + deploy/backup_20260206_085303.sql | 7407 ++++ deploy/deploy.sh | 74 + deploy/docker-compose.synology.yml | 150 + deploy/package.sh | 71 + deploy/tkfb-package/.env.example | 34 + deploy/tkfb-package/README.md | 137 + .../tkfb-package/api.hyungi.net/.dockerignore | 4 + deploy/tkfb-package/api.hyungi.net/DEPLOY.md | 199 + deploy/tkfb-package/api.hyungi.net/Dockerfile | 33 + .../api.hyungi.net/config/cors.js | 89 + .../api.hyungi.net/config/database.js | 79 + .../api.hyungi.net/config/middleware.js | 115 + .../api.hyungi.net/config/routes.js | 192 + .../api.hyungi.net/config/security.js | 101 + .../api.hyungi.net/config/swagger.js | 497 + .../controllers/analysisController.js | 29 + .../controllers/attendanceController.js | 212 + .../controllers/authController.js | 161 + .../controllers/dailyIssueReportController.js | 64 + .../controllers/dailyWorkReportController.js | 934 + .../controllers/departmentController.js | 241 + .../controllers/equipmentController.js | 945 + .../controllers/issueTypeController.js | 65 + .../controllers/monthlyStatusController.js | 231 + .../controllers/notificationController.js | 165 + .../notificationRecipientController.js | 91 + .../controllers/pageAccessController.js | 200 + .../controllers/patrolController.js | 796 + .../controllers/projectController.js | 142 + .../controllers/systemController.js | 467 + .../controllers/taskController.js | 152 + .../controllers/tbmController.js | 893 + .../controllers/toolsController.js | 75 + .../controllers/uploadController.js | 38 + .../controllers/userController.js | 739 + .../controllers/vacationBalanceController.js | 421 + .../controllers/vacationRequestController.js | 565 + .../controllers/vacationTypeController.js | 333 + .../controllers/visitRequestController.js | 555 + .../controllers/workAnalysisController.js | 490 + .../controllers/workIssueController.js | 674 + .../workReportAnalysisController.js | 429 + .../controllers/workReportController.js | 175 + .../controllers/workerController.js | 278 + .../controllers/workplaceController.js | 575 + .../create-attendance-tables.js | 193 + deploy/tkfb-package/api.hyungi.net/db.js | 35 + .../api.hyungi.net/db/connection.js | 17 + .../20251219003210_20251219_initial_schema.js | 49 + .../20251219010000_add_columns_to_projects.js | 23 + ...0260106083251_create_permissions_tables.js | 57 + ...0260106083318_populate_permissions_data.js | 103 + .../20260107140000_update_worker_schema.js | 62 + ...implify_permissions_and_add_page_access.js | 151 + ...0260119095549_add_worker_display_fields.js | 27 + .../20260119120000_add_worker_fields.js | 33 + ...20260119120001_create_attendance_tables.js | 112 + ...02_create_accounts_for_existing_workers.js | 104 + .../20260119120003_add_guest_role.js | 51 + .../20260120000000_create_tbm_system.js | 158 + .../migrations/20260120000001_add_tbm_page.js | 33 + ...60126000001_create_workplace_categories.js | 24 + .../20260126000002_create_workplaces.js | 31 + .../migrations/20260126010002_create_tasks.js | 36 + ...0260126010003_add_work_type_task_to_tbm.js | 42 + ...04_add_work_details_to_team_assignments.js | 37 + ...20260127000001_remove_unused_tbm_fields.js | 20 + ...20260127000002_add_workplace_map_images.js | 53 + ...0127010000_add_workplace_purpose_fields.js | 17 + .../20260127020000_make_leader_id_nullable.js | 30 + ...27030000_add_tbm_fields_to_work_reports.js | 55 + ...7040000_update_pages_for_current_system.js | 152 + ...28000000_add_layout_image_to_workplaces.js | 22 + .../20260128010000_create_equipments_table.js | 48 + ...20260129000000_create_vacation_requests.js | 57 + ...0260129000001_register_attendance_pages.js | 84 + ...0260129000002_add_attendance_is_present.js | 35 + .../20260129000003_update_vacation_pages.js | 57 + .../20260129000004_extend_vacation_types.js | 55 + ...9000005_create_vacation_balance_details.js | 87 + .../20260129000006_register_vacation_pages.js | 38 + ...60129010000_create_visit_request_system.js | 153 + .../20260129010001_register_visit_pages.js | 50 + ...20260130000001_create_work_issue_system.js | 266 + .../20260130000002_register_issue_pages.js | 50 + ...260202000001_create_work_report_defects.js | 47 + .../20260202100000_expand_safety_checklist.js | 141 + .../20260202200000_reorganize_pages.js | 319 + .../20260203090000_add_category_to_defects.js | 43 + .../20260203100000_link_defects_to_issues.js | 85 + ...4001000_create_notification_recipients.sql | 23 + ...204100000_add_equipment_purchase_fields.js | 35 + ...260204100000_create_daily_patrol_system.js | 166 + .../20260204_equipment_add_columns.sql | 13 + .../20260204_equipment_full_setup.sql | 138 + .../20260204_equipment_insert_data.sql | 73 + .../migrations/20260204_equipment_simple.sql | 78 + ...20260205001000_create_equipment_photos.sql | 17 + ...260205002000_add_equipment_move_fields.sql | 174 + ...5003000_create_equipment_external_logs.sql | 86 + .../20260205004000_create_notifications.sql | 46 + .../20260205_fix_work_type_id_data.js | 105 + .../20260206_migrate_error_types_final.sql | 56 + ...0206_migrate_error_types_to_issue_items.js | 112 + ...206_migrate_error_types_to_issue_items.sql | 73 + .../add_equipment_purchase_fields.sql | 13 + .../db/migrations/insert_equipment_data.sql | 77 + .../migrations/sync_production_attendance.sql | 34 + deploy/tkfb-package/api.hyungi.net/dbPool.js | 11 + ...ly_work_reports_backup_20250902_081944.sql | 774 + .../api.hyungi.net/db_archive/hyungi.sql | 2563 ++ .../db_archive/hyungi_fixed.sql | 2563 ++ .../004_add_work_attendance_tracking.sql | 359 + .../005_add_attendance_management.sql | 143 + .../migrations/006_add_description_column.sql | 16 + .../007_create_monthly_worker_status.sql | 249 + .../migrations/008_create_update_triggers.sql | 36 + .../009_add_overtime_warning_columns.sql | 67 + .../009_fix_duplicate_monthly_status.sql | 72 + .../migrations/010_add_project_status.sql | 22 + .../migrations/011_add_worker_status.sql | 30 + .../migrations/01_complete_data.sql | 4567 +++ .../db_archive/migrations/99_restore_data.sql | 4567 +++ .../002_add_master_tables.sql | 115 + .../003_normalize_table_names.sql | 56 + .../migrations_backup/01_schema.sql | 0 .../update_hyungi_system_role.sql | 45 + deploy/tkfb-package/api.hyungi.net/deploy.sh | 97 + .../api.hyungi.net/docker-compose.yml | 113 + .../api.hyungi.net/ecosystem.config.js | 16 + .../api.hyungi.net/hyungi_schema_v2.sql | 297 + deploy/tkfb-package/api.hyungi.net/index.js | 344 + .../api.hyungi.net/jest.config.js | 91 + .../tkfb-package/api.hyungi.net/knexfile.js | 57 + .../api.hyungi.net/middlewares/access.js | 9 + .../middlewares/accessMiddleware.js | 29 + .../middlewares/activityLogger.js | 71 + .../api.hyungi.net/middlewares/auth.js | 357 + .../middlewares/authMiddleware.js | 36 + .../api.hyungi.net/middlewares/csrf.js | 201 + .../middlewares/errorHandler.js | 102 + .../api.hyungi.net/models/WorkAnalysis.js | 519 + .../api.hyungi.net/models/analysisModel.js | 115 + .../api.hyungi.net/models/attendanceModel.js | 530 + .../models/dailyIssueReportModel.js | 154 + .../models/dailyWorkReportModel.js | 1388 + .../api.hyungi.net/models/departmentModel.js | 120 + .../api.hyungi.net/models/equipmentModel.js | 949 + .../api.hyungi.net/models/issueTypeModel.js | 42 + .../models/monthlyStatusModel.js | 183 + .../models/notificationModel.js | 197 + .../models/notificationRecipientModel.js | 146 + .../api.hyungi.net/models/pageAccessModel.js | 160 + .../api.hyungi.net/models/patrolModel.js | 358 + .../api.hyungi.net/models/projectModel.js | 96 + .../api.hyungi.net/models/roleModel.js | 43 + .../api.hyungi.net/models/taskModel.js | 142 + .../api.hyungi.net/models/tbmModel.js | 994 + .../api.hyungi.net/models/toolsModel.js | 68 + .../api.hyungi.net/models/uploadModel.js | 36 + .../api.hyungi.net/models/userModel.js | 82 + .../models/vacationBalanceModel.js | 400 + .../models/vacationRequestModel.js | 271 + .../models/vacationTypeModel.js | 132 + .../models/visitRequestModel.js | 505 + .../api.hyungi.net/models/workIssueModel.js | 887 + .../api.hyungi.net/models/workReportModel.js | 223 + .../api.hyungi.net/models/workerModel.js | 197 + .../api.hyungi.net/models/workplaceModel.js | 440 + .../api.hyungi.net/package-lock.json | 8605 +++++ .../tkfb-package/api.hyungi.net/package.json | 51 + .../api.hyungi.net/public/img/login-bg.jpeg | Bin 0 -> 2721048 bytes .../api.hyungi.net/public/pages/hello.txt | 1 + .../public/pages/work_analysis_dashboard.html | 689 + .../api.hyungi.net/routes/analysisRoutes.js | 10 + .../api.hyungi.net/routes/attendanceRoutes.js | 46 + .../api.hyungi.net/routes/auth.js | 215 + .../api.hyungi.net/routes/authRoutes.js | 978 + .../routes/dailyIssueReportRoutes.js | 20 + .../routes/dailyWorkReportRoutes.js | 97 + .../api.hyungi.net/routes/departmentRoutes.js | 31 + .../api.hyungi.net/routes/equipmentRoutes.js | 103 + .../api.hyungi.net/routes/healthRoutes.js | 123 + .../api.hyungi.net/routes/issueTypeRoutes.js | 10 + .../routes/monthlyStatusRoutes.js | 24 + .../routes/notificationRecipientRoutes.js | 28 + .../routes/notificationRoutes.js | 31 + .../api.hyungi.net/routes/pageAccessRoutes.js | 237 + .../api.hyungi.net/routes/patrolRoutes.js | 126 + .../routes/performanceRoutes.js | 388 + .../api.hyungi.net/routes/projectRoutes.js | 19 + .../api.hyungi.net/routes/setupRoutes.js | 717 + .../api.hyungi.net/routes/systemRoutes.js | 378 + .../api.hyungi.net/routes/taskRoutes.js | 27 + .../api.hyungi.net/routes/tbmRoutes.js | 103 + .../api.hyungi.net/routes/toolsRoute.js | 16 + .../api.hyungi.net/routes/uploadBgRoutes.js | 52 + .../api.hyungi.net/routes/uploadRoutes.js | 10 + .../api.hyungi.net/routes/userRoutes.js | 167 + .../routes/vacationBalanceRoutes.js | 34 + .../routes/vacationRequestRoutes.js | 34 + .../routes/vacationTypeRoutes.js | 31 + .../routes/visitRequestRoutes.js | 66 + .../api.hyungi.net/routes/workAnalysis.js | 74 + .../routes/workAnalysisRoutes.js | 65 + .../api.hyungi.net/routes/workIssueRoutes.js | 92 + .../routes/workReportAnalysisRoutes.js | 23 + .../api.hyungi.net/routes/workReportRoutes.js | 39 + .../api.hyungi.net/routes/workerRoutes.js | 228 + .../api.hyungi.net/routes/workplaceRoutes.js | 103 + .../services/analysisService.js | 81 + .../services/attendanceService.js | 394 + .../api.hyungi.net/services/auth.service.js | 98 + .../services/dailyIssueReportService.js | 170 + .../services/dailyWorkReportService.js | 326 + .../services/imageUploadService.js | 217 + .../services/issueTypeService.js | 169 + .../services/mProjectService.js | 383 + .../api.hyungi.net/services/toolsService.js | 171 + .../api.hyungi.net/services/uploadService.js | 96 + .../api.hyungi.net/services/weatherService.js | 435 + .../services/workAnalysisService.js | 109 + .../services/workReportService.js | 488 + .../api.hyungi.net/setup-attendance-db.js | 177 + .../api.hyungi.net/tests/README.md | 170 + .../api.hyungi.net/tests/helpers/mockData.js | 225 + .../api.hyungi.net/tests/setup.js | 67 + .../unit/services/workReportService.test.js | 321 + .../api.hyungi.net/utils/access.js | 178 + .../api.hyungi.net/utils/cache.js | 284 + .../api.hyungi.net/utils/dateUtils.js | 131 + .../api.hyungi.net/utils/errorHandler.js | 143 + .../api.hyungi.net/utils/errors.js | 186 + .../utils/fileUploadSecurity.js | 315 + .../api.hyungi.net/utils/hangulToRoman.js | 166 + .../api.hyungi.net/utils/logger.js | 197 + .../api.hyungi.net/utils/passwordValidator.js | 173 + .../api.hyungi.net/utils/queryOptimizer.js | 433 + .../api.hyungi.net/utils/responseFormatter.js | 188 + .../api.hyungi.net/utils/validator.js | 304 + .../tkfb-package/backup_20260206_085303.sql | 7407 ++++ deploy/tkfb-package/deploy.sh | 74 + deploy/tkfb-package/docker-compose.yml | 150 + deploy/tkfb-package/fastapi-bridge/Dockerfile | 21 + deploy/tkfb-package/fastapi-bridge/README.md | 69 + .../tkfb-package/fastapi-bridge/analytics.py | 314 + deploy/tkfb-package/fastapi-bridge/cache.py | 204 + deploy/tkfb-package/fastapi-bridge/config.py | 40 + .../fastapi-bridge/docker-compose.yml | 17 + deploy/tkfb-package/fastapi-bridge/main.py | 294 + .../fastapi-bridge/requirements.txt | 6 + .../fastapi-bridge/static/Minutes/safety.html | 1635 + .../인수인계관련/안전회의록 2025년 5월.xlsx | Bin 0 -> 88644 bytes .../static/components/navbar.html | 351 + .../components/sections/admin-sections.html | 48 + .../static/components/sidebar.html | 136 + .../fastapi-bridge/static/css/admin.css | 25 + .../static/css/attendance-validation.css | 883 + .../fastapi-bridge/static/css/attendance.css | 72 + .../fastapi-bridge/static/css/daily-issue.css | 90 + .../static/css/daily-report-viewer.css | 548 + .../static/css/daily-work-report.css | 756 + .../fastapi-bridge/static/css/factory.css | 61 + .../fastapi-bridge/static/css/login.css | 54 + .../fastapi-bridge/static/css/main-layout.css | 160 + .../static/css/management-dashboard.css | 1005 + .../fastapi-bridge/static/css/user.css | 57 + .../fastapi-bridge/static/css/work-report.css | 108 + .../fastapi-bridge/static/css/work-review.css | 839 + .../static/docs/assets/css/style.css | 394 + .../static/docs/assets/js/main.js | 60 + .../fastapi-bridge/static/docs/hr.html | 357 + .../fastapi-bridge/static/docs/hse.html | 447 + .../static/docs/hse/TK-HSE-P-410.html | 1208 + .../static/docs/hse/TK-HSE-P-510.html | 1529 + .../static/docs/hse/TK-HSE-P-520.html | 1826 + .../static/docs/hse/TK-HSE-P-610.html | 1671 + .../static/docs/hse/TK-HSE-P-620.html | 1784 + .../static/docs/hse/TK-HSE-P-630.html | 1894 ++ .../fastapi-bridge/static/docs/index.html | 295 + .../docs/iso45001_bilingual_manual.html | 1469 + .../fastapi-bridge/static/docs/policy.html | 317 + .../fastapi-bridge/static/docs/quality.html | 373 + .../fastapi-bridge/static/docs/technical.html | 333 + .../fastapi-bridge/static/img/login-bg.jpeg | Bin 0 -> 2721048 bytes .../fastapi-bridge/static/img/logo.png | Bin 0 -> 14999 bytes .../static/img/technicalkorea Logo.jpg | Bin 0 -> 84967 bytes .../static/img/technicalkorea_Logo.ai | 28071 ++++++++++++++++ .../static/img/technicalkorea_Logo.eps | 28071 ++++++++++++++++ .../static/img/technicalkorea_Logo.svg | 3390 ++ .../fastapi-bridge/static/index.html | 80 + .../fastapi-bridge/static/js/admin.js | 34 + .../fastapi-bridge/static/js/api-config.js | 143 + .../fastapi-bridge/static/js/api-helper.js | 115 + .../static/js/attendance-validation.js | 1038 + .../fastapi-bridge/static/js/attendance.js | 170 + .../fastapi-bridge/static/js/auth-check.js | 27 + .../fastapi-bridge/static/js/auth.js | 76 + .../fastapi-bridge/static/js/calendar.js | 59 + .../static/js/change-password.js | 211 + .../static/js/daily-issue-api.js | 66 + .../static/js/daily-issue-ui.js | 103 + .../fastapi-bridge/static/js/daily-issue.js | 89 + .../static/js/daily-report-viewer.js | 81 + .../static/js/daily-work-report.js | 897 + .../static/js/factory-upload.js | 49 + .../fastapi-bridge/static/js/factory-view.js | 38 + .../static/js/group-leader-dashboard.js | 103 + .../fastapi-bridge/static/js/load-navbar.js | 144 + .../fastapi-bridge/static/js/load-sections.js | 104 + .../fastapi-bridge/static/js/load-sidebar.js | 67 + .../fastapi-bridge/static/js/login.js | 58 + .../fastapi-bridge/static/js/manage-issue.js | 86 + .../static/js/manage-pipespec.js | 93 + .../static/js/manage-project.js | 108 + .../fastapi-bridge/static/js/manage-task.js | 104 + .../fastapi-bridge/static/js/manage-user.js | 288 + .../fastapi-bridge/static/js/manage-worker.js | 110 + .../static/js/management-dashboard.js | 954 + .../fastapi-bridge/static/js/my-profile.js | 122 + .../static/js/project-analysis-api.js | 37 + .../static/js/project-analysis-ui.js | 170 + .../static/js/project-analysis.js | 106 + .../static/js/report-viewer-api.js | 91 + .../static/js/report-viewer-export.js | 72 + .../static/js/report-viewer-ui.js | 144 + .../static/js/user-dashboard.js | 93 + .../static/js/work-report-api.js | 46 + .../static/js/work-report-create.js | 79 + .../static/js/work-report-manage.js | 210 + .../static/js/work-report-review.js | 1055 + .../static/js/work-report-ui.js | 141 + .../fastapi-bridge/static/js/work-review.js | 776 + .../fastapi-bridge/static/logo 2.png | Bin 0 -> 14999 bytes .../fastapi-bridge/static/logo.png | Bin 0 -> 14999 bytes .../static/pages/admin/admin dashboard.html | 44 + .../pages/admin/attendance-validation.html | 181 + .../static/pages/admin/dashboard.html | 35 + .../static/pages/admin/factory-upload.html | 23 + .../static/pages/admin/manage-daily-work.html | 667 + .../static/pages/admin/manage-issue.html | 62 + .../static/pages/admin/manage-pipespec.html | 62 + .../static/pages/admin/manage-project.html | 76 + .../static/pages/admin/manage-task.html | 68 + .../static/pages/admin/manage-user.html | 106 + .../static/pages/admin/manage-worker.html | 62 + .../static/pages/admin/work-review.html | 109 + .../pages/analysis/daily_work_analysis.html | 890 + .../static/pages/common/12.html | 497 + .../static/pages/common/123.html | 1044 + .../static/pages/common/123456.html | 1019 + .../static/pages/common/attendance.html | 87 + .../common/daily-work-report-viewer.html | 100 + .../pages/common/daily-work-report.html | 1062 + .../static/pages/common/factory-upload.html | 47 + .../static/pages/common/factory-view.html | 59 + .../pages/common/management-dashboard.html | 215 + .../static/pages/common/project-analysis.html | 304 + .../pages/common/work-report-review.html | 723 + .../pages/common/work-report-validation.html | 733 + .../static/pages/dashboard/admin.html | 34 + .../static/pages/dashboard/group-leader.html | 564 + .../static/pages/dashboard/user.html | 70 + .../issue-reports/daily-issue-report.html | 76 + .../static/pages/profile/change-password.html | 391 + .../static/pages/profile/my-profile.html | 317 + .../work-reports/work-report-create.html | 65 + .../work-reports/work-report-manage.html | 61 + deploy/tkfb-package/init-db/README.txt | 1 + deploy/tkfb-package/web-ui/Dockerfile | 11 + .../tkfb-package/web-ui/Minutes/safety.html | 1635 + .../인수인계관련/안전회의록 2025년 5월.xlsx | Bin 0 -> 88883 bytes .../web-ui/components/navbar.html | 638 + .../components/sections/admin-sections.html | 49 + .../web-ui/components/sidebar-nav.html | 379 + .../web-ui/components/sidebar.html | 136 + .../tkfb-package/web-ui/css/admin-pages.css | 1555 + .../web-ui/css/admin-settings.css | 1320 + deploy/tkfb-package/web-ui/css/admin.css | 50 + .../web-ui/css/annual-vacation-overview.css | 348 + .../web-ui/css/attendance-validation.css | 883 + deploy/tkfb-package/web-ui/css/attendance.css | 72 + deploy/tkfb-package/web-ui/css/common.css | 300 + .../tkfb-package/web-ui/css/daily-issue.css | 90 + .../tkfb-package/web-ui/css/daily-patrol.css | 1303 + .../web-ui/css/daily-work-report.css | 2018 ++ .../tkfb-package/web-ui/css/design-system.css | 477 + .../web-ui/css/equipment-detail.css | 509 + .../web-ui/css/equipment-management.css | 361 + deploy/tkfb-package/web-ui/css/factory.css | 61 + deploy/tkfb-package/web-ui/css/login.css | 54 + .../tkfb-package/web-ui/css/main-layout.css | 160 + .../web-ui/css/management-dashboard.css | 1005 + .../web-ui/css/modern-dashboard.css | 4009 +++ .../tkfb-package/web-ui/css/my-attendance.css | 583 + .../tkfb-package/web-ui/css/my-dashboard.css | 350 + .../web-ui/css/project-management.css | 1570 + .../web-ui/css/system-dashboard.css | 953 + deploy/tkfb-package/web-ui/css/tbm.css | 1185 + deploy/tkfb-package/web-ui/css/user.css | 57 + .../web-ui/css/vacation-allocation.css | 472 + .../tkfb-package/web-ui/css/work-analysis.css | 1687 + .../web-ui/css/work-management.css | 431 + .../tkfb-package/web-ui/css/work-report.css | 108 + .../tkfb-package/web-ui/css/work-review.css | 839 + .../web-ui/css/workplace-management.css | 1427 + .../tkfb-package/web-ui/css/zone-detail.css | 1491 + deploy/tkfb-package/web-ui/docker-compose.yml | 19 + .../web-ui/docs/assets/css/style.css | 394 + .../web-ui/docs/assets/js/main.js | 60 + deploy/tkfb-package/web-ui/docs/hr.html | 357 + deploy/tkfb-package/web-ui/docs/hse.html | 447 + .../web-ui/docs/hse/TK-HSE-P-410.html | 1208 + .../web-ui/docs/hse/TK-HSE-P-510.html | 1529 + .../web-ui/docs/hse/TK-HSE-P-520.html | 1826 + .../web-ui/docs/hse/TK-HSE-P-610.html | 1671 + .../web-ui/docs/hse/TK-HSE-P-620.html | 1784 + .../web-ui/docs/hse/TK-HSE-P-630.html | 1894 ++ deploy/tkfb-package/web-ui/docs/index.html | 295 + .../docs/iso45001_bilingual_manual.html | 1469 + deploy/tkfb-package/web-ui/docs/policy.html | 317 + deploy/tkfb-package/web-ui/docs/quality.html | 373 + .../tkfb-package/web-ui/docs/technical.html | 333 + deploy/tkfb-package/web-ui/img/favicon.png | Bin 0 -> 14999 bytes deploy/tkfb-package/web-ui/img/login-bg.jpeg | Bin 0 -> 2721048 bytes deploy/tkfb-package/web-ui/img/logo.png | Bin 0 -> 14999 bytes .../web-ui/img/technicalkorea Logo.jpg | Bin 0 -> 84967 bytes .../web-ui/img/technicalkorea_Logo.ai | 28071 ++++++++++++++++ .../web-ui/img/technicalkorea_Logo.eps | 28071 ++++++++++++++++ .../web-ui/img/technicalkorea_Logo.svg | 3390 ++ deploy/tkfb-package/web-ui/index.html | 29 + .../tkfb-package/web-ui/js/admin-settings.js | 1260 + deploy/tkfb-package/web-ui/js/admin.js | 34 + deploy/tkfb-package/web-ui/js/api-base.js | 97 + deploy/tkfb-package/web-ui/js/api-config.js | 249 + deploy/tkfb-package/web-ui/js/api-helper.js | 136 + deploy/tkfb-package/web-ui/js/app-init.js | 587 + .../web-ui/js/attendance-validation.js | 1038 + deploy/tkfb-package/web-ui/js/attendance.js | 176 + deploy/tkfb-package/web-ui/js/auth-check.js | 157 + deploy/tkfb-package/web-ui/js/auth.js | 76 + deploy/tkfb-package/web-ui/js/calendar.js | 59 + .../tkfb-package/web-ui/js/change-password.js | 211 + .../tkfb-package/web-ui/js/common/security.js | 259 + .../web-ui/js/component-loader.js | 81 + deploy/tkfb-package/web-ui/js/config.js | 33 + .../tkfb-package/web-ui/js/daily-issue-api.js | 71 + .../tkfb-package/web-ui/js/daily-issue-ui.js | 103 + deploy/tkfb-package/web-ui/js/daily-issue.js | 89 + deploy/tkfb-package/web-ui/js/daily-patrol.js | 1249 + .../web-ui/js/daily-work-report.js | 4106 +++ .../web-ui/js/daily-work-report/api.js | 386 + .../web-ui/js/daily-work-report/index.js | 318 + .../web-ui/js/daily-work-report/state.js | 342 + .../web-ui/js/daily-work-report/utils.js | 470 + .../web-ui/js/department-management.js | 339 + .../web-ui/js/equipment-detail.js | 803 + .../web-ui/js/equipment-management.js | 469 + .../tkfb-package/web-ui/js/factory-upload.js | 49 + deploy/tkfb-package/web-ui/js/factory-view.js | 38 + .../web-ui/js/group-leader-dashboard.js | 157 + .../web-ui/js/issue-category-manage.js | 421 + deploy/tkfb-package/web-ui/js/issue-detail.js | 690 + deploy/tkfb-package/web-ui/js/issue-report.js | 926 + deploy/tkfb-package/web-ui/js/load-navbar.js | 442 + .../tkfb-package/web-ui/js/load-sections.js | 104 + deploy/tkfb-package/web-ui/js/load-sidebar.js | 209 + deploy/tkfb-package/web-ui/js/login.js | 49 + deploy/tkfb-package/web-ui/js/manage-issue.js | 86 + .../tkfb-package/web-ui/js/manage-pipespec.js | 93 + .../tkfb-package/web-ui/js/manage-project.js | 90 + deploy/tkfb-package/web-ui/js/manage-user.js | 512 + .../tkfb-package/web-ui/js/manage-worker.js | 111 + .../web-ui/js/management-dashboard.js | 960 + .../web-ui/js/modern-dashboard.js | 1398 + .../tkfb-package/web-ui/js/my-attendance.js | 390 + deploy/tkfb-package/web-ui/js/my-dashboard.js | 189 + deploy/tkfb-package/web-ui/js/my-profile.js | 122 + deploy/tkfb-package/web-ui/js/navigation.js | 55 + .../web-ui/js/nonconformity-list.js | 222 + .../web-ui/js/page-access-cache.js | 119 + .../web-ui/js/project-analysis-api.js | 43 + .../web-ui/js/project-analysis-ui.js | 170 + .../web-ui/js/project-analysis.js | 106 + .../web-ui/js/project-management.js | 625 + .../web-ui/js/safety-checklist-manage.js | 718 + .../web-ui/js/safety-management.js | 447 + .../web-ui/js/safety-report-list.js | 222 + .../web-ui/js/safety-training-conduct.js | 553 + .../web-ui/js/system-dashboard.js | 907 + .../tkfb-package/web-ui/js/task-management.js | 508 + deploy/tkfb-package/web-ui/js/tbm.js | 2570 ++ deploy/tkfb-package/web-ui/js/tbm/api.js | 489 + deploy/tkfb-package/web-ui/js/tbm/index.js | 325 + deploy/tkfb-package/web-ui/js/tbm/state.js | 392 + deploy/tkfb-package/web-ui/js/tbm/utils.js | 253 + .../tkfb-package/web-ui/js/user-dashboard.js | 93 + .../web-ui/js/vacation-allocation.js | 864 + .../tkfb-package/web-ui/js/vacation-common.js | 241 + .../tkfb-package/web-ui/js/visit-request.js | 531 + .../tkfb-package/web-ui/js/work-analysis.js | 801 + .../web-ui/js/work-analysis/api-client.js | 231 + .../web-ui/js/work-analysis/chart-renderer.js | 455 + .../web-ui/js/work-analysis/data-processor.js | 355 + .../js/work-analysis/main-controller.js | 612 + .../web-ui/js/work-analysis/module-loader.js | 267 + .../web-ui/js/work-analysis/state-manager.js | 382 + .../web-ui/js/work-analysis/table-renderer.js | 510 + .../web-ui/js/work-issue-report.js | 740 + .../tkfb-package/web-ui/js/work-management.js | 230 + .../tkfb-package/web-ui/js/work-report-api.js | 51 + .../web-ui/js/work-report-create.js | 79 + .../web-ui/js/work-report-manage.js | 213 + .../web-ui/js/work-report-review.js | 1061 + .../tkfb-package/web-ui/js/work-report-ui.js | 141 + deploy/tkfb-package/web-ui/js/work-review.js | 776 + .../web-ui/js/worker-individual-report.js | 509 + .../web-ui/js/worker-management.js | 641 + .../web-ui/js/workplace-layout-map.js | 494 + .../web-ui/js/workplace-management.js | 2254 ++ .../web-ui/js/workplace-management/api.js | 329 + .../web-ui/js/workplace-management/index.js | 553 + .../web-ui/js/workplace-management/state.js | 284 + .../web-ui/js/workplace-management/utils.js | 154 + .../web-ui/js/workplace-status.js | 1786 + deploy/tkfb-package/web-ui/js/zone-detail.js | 1423 + deploy/tkfb-package/web-ui/logo 2.png | Bin 0 -> 14999 bytes deploy/tkfb-package/web-ui/logo.png | Bin 0 -> 14999 bytes .../tkfb-package/web-ui/pages/admin/.gitkeep | 1 + .../web-ui/pages/admin/accounts.html | 286 + .../web-ui/pages/admin/attendance-report.html | 486 + .../web-ui/pages/admin/departments.html | 316 + .../web-ui/pages/admin/equipment-detail.html | 344 + .../web-ui/pages/admin/equipments.html | 220 + .../web-ui/pages/admin/issue-categories.html | 321 + .../web-ui/pages/admin/notifications.html | 554 + .../web-ui/pages/admin/projects.html | 687 + .../web-ui/pages/admin/repair-management.html | 852 + .../web-ui/pages/admin/tasks.html | 596 + .../web-ui/pages/admin/workers.html | 495 + .../web-ui/pages/admin/workplaces.html | 429 + .../pages/attendance/annual-overview.html | 762 + .../web-ui/pages/attendance/checkin.html | 398 + .../web-ui/pages/attendance/daily.html | 392 + .../web-ui/pages/attendance/monthly.html | 1161 + .../pages/attendance/my-vacation-info.html | 554 + .../pages/attendance/vacation-allocation.html | 354 + .../pages/attendance/vacation-approval.html | 264 + .../pages/attendance/vacation-input.html | 291 + .../pages/attendance/vacation-management.html | 458 + .../pages/attendance/vacation-request.html | 269 + .../web-ui/pages/attendance/work-status.html | 700 + .../tkfb-package/web-ui/pages/dashboard.html | 514 + .../web-ui/pages/inspection/daily-patrol.html | 202 + .../web-ui/pages/inspection/zone-detail.html | 297 + .../web-ui/pages/profile/info.html | 303 + .../web-ui/pages/profile/password.html | 373 + .../web-ui/pages/safety/checklist-manage.html | 596 + .../web-ui/pages/safety/issue-detail.html | 453 + .../web-ui/pages/safety/issue-report.html | 618 + .../web-ui/pages/safety/management.html | 291 + .../web-ui/pages/safety/report-status.html | 306 + .../web-ui/pages/safety/report.html | 778 + .../web-ui/pages/safety/training-conduct.html | 327 + .../web-ui/pages/safety/visit-request.html | 371 + .../tkfb-package/web-ui/pages/work/.gitkeep | 1 + .../web-ui/pages/work/analysis.html | 2859 ++ .../web-ui/pages/work/nonconformity.html | 306 + .../web-ui/pages/work/report-create.html | 182 + .../tkfb-package/web-ui/pages/work/tbm.html | 672 + .../tkfb-package/web-ui/templates/README.md | 207 + .../web-ui/templates/admin-layout.html | 157 + .../web-ui/templates/dashboard-layout.html | 104 + .../web-ui/templates/simple-layout.html | 299 + .../web-ui/templates/work-layout.html | 131 + deploy/web-ui-config.js | 33 + docs/vacation-data-flow-guide.md | 271 + docs/zone-data-guide.md | 224 + web-ui/components/mobile-nav.html | 135 + web-ui/components/navbar.html | 109 +- web-ui/components/sidebar-nav.html | 105 +- web-ui/css/daily-patrol.css | 585 +- web-ui/css/mobile.css | 713 + web-ui/css/zone-detail.css | 1491 + web-ui/js/admin-settings.js | 11 +- web-ui/js/annual-vacation-overview.js | 412 - web-ui/js/api-base.js | 7 + web-ui/js/app-init.js | 9 +- web-ui/js/daily-patrol.js | 518 +- web-ui/js/daily-work-report.js | 534 +- web-ui/js/load-navbar.js | 41 +- web-ui/js/modern-dashboard.js | 11 +- web-ui/js/project-management.js | 14 +- web-ui/js/work-analysis.js | 14 +- web-ui/js/work-management.js | 14 +- web-ui/js/workplace-status.js | 13 +- web-ui/js/zone-detail.js | 1423 + web-ui/pages/admin/tasks.html | 12 +- web-ui/pages/attendance/annual-overview.html | 865 +- web-ui/pages/attendance/checkin.html | 15 + web-ui/pages/attendance/monthly.html | 1258 +- web-ui/pages/attendance/my-vacation-info.html | 554 + web-ui/pages/attendance/work-status.html | 292 +- web-ui/pages/dashboard.html | 17 + web-ui/pages/inspection/daily-patrol.html | 4 +- web-ui/pages/inspection/zone-detail.html | 297 + web-ui/pages/work/analysis.html | 22 +- web-ui/pages/work/report-create.html | 15 + web-ui/pages/work/tbm.html | 15 + 633 files changed, 361224 insertions(+), 1090 deletions(-) create mode 100644 api.hyungi.net/db/migrations/20260205_fix_work_type_id_data.js create mode 100644 api.hyungi.net/db/migrations/20260206_migrate_error_types_final.sql create mode 100644 api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.js create mode 100644 api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.sql create mode 100644 deploy/README.md create mode 100644 deploy/backup_20260206_085303.sql create mode 100755 deploy/deploy.sh create mode 100644 deploy/docker-compose.synology.yml create mode 100755 deploy/package.sh create mode 100644 deploy/tkfb-package/.env.example create mode 100644 deploy/tkfb-package/README.md create mode 100644 deploy/tkfb-package/api.hyungi.net/.dockerignore create mode 100644 deploy/tkfb-package/api.hyungi.net/DEPLOY.md create mode 100644 deploy/tkfb-package/api.hyungi.net/Dockerfile create mode 100644 deploy/tkfb-package/api.hyungi.net/config/cors.js create mode 100644 deploy/tkfb-package/api.hyungi.net/config/database.js create mode 100644 deploy/tkfb-package/api.hyungi.net/config/middleware.js create mode 100644 deploy/tkfb-package/api.hyungi.net/config/routes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/config/security.js create mode 100644 deploy/tkfb-package/api.hyungi.net/config/swagger.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/analysisController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/attendanceController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/authController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/dailyIssueReportController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/dailyWorkReportController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/departmentController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/equipmentController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/issueTypeController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/monthlyStatusController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/notificationController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/notificationRecipientController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/pageAccessController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/patrolController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/projectController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/systemController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/taskController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/tbmController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/toolsController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/uploadController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/userController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/vacationBalanceController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/vacationRequestController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/vacationTypeController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/visitRequestController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/workAnalysisController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/workIssueController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/workReportAnalysisController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/workReportController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/workerController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/controllers/workplaceController.js create mode 100644 deploy/tkfb-package/api.hyungi.net/create-attendance-tables.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/connection.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20251219003210_20251219_initial_schema.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20251219010000_add_columns_to_projects.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260106083251_create_permissions_tables.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260106083318_populate_permissions_data.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260107140000_update_worker_schema.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260119000000_simplify_permissions_and_add_page_access.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260119095549_add_worker_display_fields.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120000_add_worker_fields.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120001_create_attendance_tables.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120002_create_accounts_for_existing_workers.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120003_add_guest_role.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260120000000_create_tbm_system.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260120000001_add_tbm_page.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260126000001_create_workplace_categories.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260126000002_create_workplaces.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010002_create_tasks.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010003_add_work_type_task_to_tbm.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010004_add_work_details_to_team_assignments.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260127000001_remove_unused_tbm_fields.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260127000002_add_workplace_map_images.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260127010000_add_workplace_purpose_fields.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260127020000_make_leader_id_nullable.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260127030000_add_tbm_fields_to_work_reports.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260127040000_update_pages_for_current_system.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260128000000_add_layout_image_to_workplaces.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260128010000_create_equipments_table.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000000_create_vacation_requests.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000001_register_attendance_pages.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000002_add_attendance_is_present.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000003_update_vacation_pages.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000004_extend_vacation_types.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000005_create_vacation_balance_details.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000006_register_vacation_pages.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260129010000_create_visit_request_system.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260129010001_register_visit_pages.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260130000001_create_work_issue_system.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260130000002_register_issue_pages.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260202000001_create_work_report_defects.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260202100000_expand_safety_checklist.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260202200000_reorganize_pages.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260203090000_add_category_to_defects.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260203100000_link_defects_to_issues.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260204001000_create_notification_recipients.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260204100000_add_equipment_purchase_fields.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260204100000_create_daily_patrol_system.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_add_columns.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_full_setup.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_insert_data.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_simple.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260205001000_create_equipment_photos.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260205002000_add_equipment_move_fields.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260205003000_create_equipment_external_logs.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260205004000_create_notifications.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260205_fix_work_type_id_data.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_final.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/add_equipment_purchase_fields.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/insert_equipment_data.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db/migrations/sync_production_attendance.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/dbPool.js create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/daily_work_reports_backup_20250902_081944.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/hyungi.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/hyungi_fixed.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/004_add_work_attendance_tracking.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/005_add_attendance_management.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/006_add_description_column.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/007_create_monthly_worker_status.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/008_create_update_triggers.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/009_add_overtime_warning_columns.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/009_fix_duplicate_monthly_status.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/010_add_project_status.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/011_add_worker_status.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/01_complete_data.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations/99_restore_data.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/002_add_master_tables.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/003_normalize_table_names.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/01_schema.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/update_hyungi_system_role.sql create mode 100755 deploy/tkfb-package/api.hyungi.net/deploy.sh create mode 100644 deploy/tkfb-package/api.hyungi.net/docker-compose.yml create mode 100644 deploy/tkfb-package/api.hyungi.net/ecosystem.config.js create mode 100644 deploy/tkfb-package/api.hyungi.net/hyungi_schema_v2.sql create mode 100644 deploy/tkfb-package/api.hyungi.net/index.js create mode 100644 deploy/tkfb-package/api.hyungi.net/jest.config.js create mode 100644 deploy/tkfb-package/api.hyungi.net/knexfile.js create mode 100644 deploy/tkfb-package/api.hyungi.net/middlewares/access.js create mode 100644 deploy/tkfb-package/api.hyungi.net/middlewares/accessMiddleware.js create mode 100644 deploy/tkfb-package/api.hyungi.net/middlewares/activityLogger.js create mode 100644 deploy/tkfb-package/api.hyungi.net/middlewares/auth.js create mode 100644 deploy/tkfb-package/api.hyungi.net/middlewares/authMiddleware.js create mode 100644 deploy/tkfb-package/api.hyungi.net/middlewares/csrf.js create mode 100644 deploy/tkfb-package/api.hyungi.net/middlewares/errorHandler.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/WorkAnalysis.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/analysisModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/attendanceModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/dailyIssueReportModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/dailyWorkReportModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/departmentModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/equipmentModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/issueTypeModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/monthlyStatusModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/notificationModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/notificationRecipientModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/pageAccessModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/patrolModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/projectModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/roleModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/taskModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/tbmModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/toolsModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/uploadModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/userModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/vacationBalanceModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/vacationRequestModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/vacationTypeModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/visitRequestModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/workIssueModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/workReportModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/workerModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/models/workplaceModel.js create mode 100644 deploy/tkfb-package/api.hyungi.net/package-lock.json create mode 100644 deploy/tkfb-package/api.hyungi.net/package.json create mode 100644 deploy/tkfb-package/api.hyungi.net/public/img/login-bg.jpeg create mode 100644 deploy/tkfb-package/api.hyungi.net/public/pages/hello.txt create mode 100644 deploy/tkfb-package/api.hyungi.net/public/pages/work_analysis_dashboard.html create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/analysisRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/attendanceRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/auth.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/authRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/dailyIssueReportRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/dailyWorkReportRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/departmentRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/equipmentRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/healthRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/issueTypeRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/monthlyStatusRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/notificationRecipientRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/notificationRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/pageAccessRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/patrolRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/performanceRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/projectRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/setupRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/systemRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/taskRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/tbmRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/toolsRoute.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/uploadBgRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/uploadRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/userRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/vacationBalanceRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/vacationRequestRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/vacationTypeRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/visitRequestRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/workAnalysis.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/workAnalysisRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/workIssueRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/workReportAnalysisRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/workReportRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/workerRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/routes/workplaceRoutes.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/analysisService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/attendanceService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/auth.service.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/dailyIssueReportService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/dailyWorkReportService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/imageUploadService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/issueTypeService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/mProjectService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/toolsService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/uploadService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/weatherService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/workAnalysisService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/services/workReportService.js create mode 100644 deploy/tkfb-package/api.hyungi.net/setup-attendance-db.js create mode 100644 deploy/tkfb-package/api.hyungi.net/tests/README.md create mode 100644 deploy/tkfb-package/api.hyungi.net/tests/helpers/mockData.js create mode 100644 deploy/tkfb-package/api.hyungi.net/tests/setup.js create mode 100644 deploy/tkfb-package/api.hyungi.net/tests/unit/services/workReportService.test.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/access.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/cache.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/dateUtils.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/errorHandler.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/errors.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/fileUploadSecurity.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/hangulToRoman.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/logger.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/passwordValidator.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/queryOptimizer.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/responseFormatter.js create mode 100644 deploy/tkfb-package/api.hyungi.net/utils/validator.js create mode 100644 deploy/tkfb-package/backup_20260206_085303.sql create mode 100755 deploy/tkfb-package/deploy.sh create mode 100644 deploy/tkfb-package/docker-compose.yml create mode 100644 deploy/tkfb-package/fastapi-bridge/Dockerfile create mode 100644 deploy/tkfb-package/fastapi-bridge/README.md create mode 100644 deploy/tkfb-package/fastapi-bridge/analytics.py create mode 100644 deploy/tkfb-package/fastapi-bridge/cache.py create mode 100644 deploy/tkfb-package/fastapi-bridge/config.py create mode 100644 deploy/tkfb-package/fastapi-bridge/docker-compose.yml create mode 100644 deploy/tkfb-package/fastapi-bridge/main.py create mode 100644 deploy/tkfb-package/fastapi-bridge/requirements.txt create mode 100644 deploy/tkfb-package/fastapi-bridge/static/Minutes/safety.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/Minutes/인수인계관련/안전회의록 2025년 5월.xlsx create mode 100644 deploy/tkfb-package/fastapi-bridge/static/components/navbar.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/components/sections/admin-sections.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/components/sidebar.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/admin.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/attendance-validation.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/attendance.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/daily-issue.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/daily-report-viewer.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/daily-work-report.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/factory.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/login.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/main-layout.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/management-dashboard.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/user.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/work-report.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/css/work-review.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/assets/css/style.css create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/assets/js/main.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/hr.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/hse.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-410.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-510.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-520.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-610.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-620.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-630.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/index.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/iso45001_bilingual_manual.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/policy.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/quality.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/docs/technical.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/img/login-bg.jpeg create mode 100644 deploy/tkfb-package/fastapi-bridge/static/img/logo.png create mode 100644 deploy/tkfb-package/fastapi-bridge/static/img/technicalkorea Logo.jpg create mode 100644 deploy/tkfb-package/fastapi-bridge/static/img/technicalkorea_Logo.ai create mode 100644 deploy/tkfb-package/fastapi-bridge/static/img/technicalkorea_Logo.eps create mode 100644 deploy/tkfb-package/fastapi-bridge/static/img/technicalkorea_Logo.svg create mode 100644 deploy/tkfb-package/fastapi-bridge/static/index.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/admin.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/api-config.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/api-helper.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/attendance-validation.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/attendance.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/auth-check.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/auth.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/calendar.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/change-password.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/daily-issue-api.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/daily-issue-ui.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/daily-issue.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/daily-report-viewer.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/daily-work-report.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/factory-upload.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/factory-view.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/group-leader-dashboard.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/load-navbar.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/load-sections.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/load-sidebar.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/login.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/manage-issue.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/manage-pipespec.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/manage-project.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/manage-task.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/manage-user.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/manage-worker.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/management-dashboard.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/my-profile.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/project-analysis-api.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/project-analysis-ui.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/project-analysis.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-api.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-export.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-ui.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/user-dashboard.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/work-report-api.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/work-report-create.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/work-report-manage.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/work-report-review.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/work-report-ui.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/js/work-review.js create mode 100644 deploy/tkfb-package/fastapi-bridge/static/logo 2.png create mode 100644 deploy/tkfb-package/fastapi-bridge/static/logo.png create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/admin dashboard.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/attendance-validation.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/dashboard.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/factory-upload.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-daily-work.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-issue.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-pipespec.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-project.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-task.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-user.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-worker.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/admin/work-review.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/analysis/daily_work_analysis.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/12.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/123.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/123456.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/attendance.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/daily-work-report-viewer.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/daily-work-report.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/factory-upload.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/factory-view.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/management-dashboard.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/project-analysis.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/work-report-review.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/common/work-report-validation.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/admin.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/group-leader.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/user.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/issue-reports/daily-issue-report.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/profile/change-password.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/profile/my-profile.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/work-reports/work-report-create.html create mode 100644 deploy/tkfb-package/fastapi-bridge/static/pages/work-reports/work-report-manage.html create mode 100644 deploy/tkfb-package/init-db/README.txt create mode 100644 deploy/tkfb-package/web-ui/Dockerfile create mode 100644 deploy/tkfb-package/web-ui/Minutes/safety.html create mode 100644 deploy/tkfb-package/web-ui/Minutes/인수인계관련/안전회의록 2025년 5월.xlsx create mode 100644 deploy/tkfb-package/web-ui/components/navbar.html create mode 100644 deploy/tkfb-package/web-ui/components/sections/admin-sections.html create mode 100644 deploy/tkfb-package/web-ui/components/sidebar-nav.html create mode 100644 deploy/tkfb-package/web-ui/components/sidebar.html create mode 100644 deploy/tkfb-package/web-ui/css/admin-pages.css create mode 100644 deploy/tkfb-package/web-ui/css/admin-settings.css create mode 100644 deploy/tkfb-package/web-ui/css/admin.css create mode 100644 deploy/tkfb-package/web-ui/css/annual-vacation-overview.css create mode 100644 deploy/tkfb-package/web-ui/css/attendance-validation.css create mode 100644 deploy/tkfb-package/web-ui/css/attendance.css create mode 100644 deploy/tkfb-package/web-ui/css/common.css create mode 100644 deploy/tkfb-package/web-ui/css/daily-issue.css create mode 100644 deploy/tkfb-package/web-ui/css/daily-patrol.css create mode 100644 deploy/tkfb-package/web-ui/css/daily-work-report.css create mode 100644 deploy/tkfb-package/web-ui/css/design-system.css create mode 100644 deploy/tkfb-package/web-ui/css/equipment-detail.css create mode 100644 deploy/tkfb-package/web-ui/css/equipment-management.css create mode 100644 deploy/tkfb-package/web-ui/css/factory.css create mode 100644 deploy/tkfb-package/web-ui/css/login.css create mode 100644 deploy/tkfb-package/web-ui/css/main-layout.css create mode 100644 deploy/tkfb-package/web-ui/css/management-dashboard.css create mode 100644 deploy/tkfb-package/web-ui/css/modern-dashboard.css create mode 100644 deploy/tkfb-package/web-ui/css/my-attendance.css create mode 100644 deploy/tkfb-package/web-ui/css/my-dashboard.css create mode 100644 deploy/tkfb-package/web-ui/css/project-management.css create mode 100644 deploy/tkfb-package/web-ui/css/system-dashboard.css create mode 100644 deploy/tkfb-package/web-ui/css/tbm.css create mode 100644 deploy/tkfb-package/web-ui/css/user.css create mode 100644 deploy/tkfb-package/web-ui/css/vacation-allocation.css create mode 100644 deploy/tkfb-package/web-ui/css/work-analysis.css create mode 100644 deploy/tkfb-package/web-ui/css/work-management.css create mode 100644 deploy/tkfb-package/web-ui/css/work-report.css create mode 100644 deploy/tkfb-package/web-ui/css/work-review.css create mode 100644 deploy/tkfb-package/web-ui/css/workplace-management.css create mode 100644 deploy/tkfb-package/web-ui/css/zone-detail.css create mode 100644 deploy/tkfb-package/web-ui/docker-compose.yml create mode 100644 deploy/tkfb-package/web-ui/docs/assets/css/style.css create mode 100644 deploy/tkfb-package/web-ui/docs/assets/js/main.js create mode 100644 deploy/tkfb-package/web-ui/docs/hr.html create mode 100644 deploy/tkfb-package/web-ui/docs/hse.html create mode 100644 deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-410.html create mode 100644 deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-510.html create mode 100644 deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-520.html create mode 100644 deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-610.html create mode 100644 deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-620.html create mode 100644 deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-630.html create mode 100644 deploy/tkfb-package/web-ui/docs/index.html create mode 100644 deploy/tkfb-package/web-ui/docs/iso45001_bilingual_manual.html create mode 100644 deploy/tkfb-package/web-ui/docs/policy.html create mode 100644 deploy/tkfb-package/web-ui/docs/quality.html create mode 100644 deploy/tkfb-package/web-ui/docs/technical.html create mode 100644 deploy/tkfb-package/web-ui/img/favicon.png create mode 100644 deploy/tkfb-package/web-ui/img/login-bg.jpeg create mode 100644 deploy/tkfb-package/web-ui/img/logo.png create mode 100644 deploy/tkfb-package/web-ui/img/technicalkorea Logo.jpg create mode 100644 deploy/tkfb-package/web-ui/img/technicalkorea_Logo.ai create mode 100644 deploy/tkfb-package/web-ui/img/technicalkorea_Logo.eps create mode 100644 deploy/tkfb-package/web-ui/img/technicalkorea_Logo.svg create mode 100644 deploy/tkfb-package/web-ui/index.html create mode 100644 deploy/tkfb-package/web-ui/js/admin-settings.js create mode 100644 deploy/tkfb-package/web-ui/js/admin.js create mode 100644 deploy/tkfb-package/web-ui/js/api-base.js create mode 100644 deploy/tkfb-package/web-ui/js/api-config.js create mode 100644 deploy/tkfb-package/web-ui/js/api-helper.js create mode 100644 deploy/tkfb-package/web-ui/js/app-init.js create mode 100644 deploy/tkfb-package/web-ui/js/attendance-validation.js create mode 100644 deploy/tkfb-package/web-ui/js/attendance.js create mode 100644 deploy/tkfb-package/web-ui/js/auth-check.js create mode 100644 deploy/tkfb-package/web-ui/js/auth.js create mode 100644 deploy/tkfb-package/web-ui/js/calendar.js create mode 100644 deploy/tkfb-package/web-ui/js/change-password.js create mode 100644 deploy/tkfb-package/web-ui/js/common/security.js create mode 100644 deploy/tkfb-package/web-ui/js/component-loader.js create mode 100644 deploy/tkfb-package/web-ui/js/config.js create mode 100644 deploy/tkfb-package/web-ui/js/daily-issue-api.js create mode 100644 deploy/tkfb-package/web-ui/js/daily-issue-ui.js create mode 100644 deploy/tkfb-package/web-ui/js/daily-issue.js create mode 100644 deploy/tkfb-package/web-ui/js/daily-patrol.js create mode 100644 deploy/tkfb-package/web-ui/js/daily-work-report.js create mode 100644 deploy/tkfb-package/web-ui/js/daily-work-report/api.js create mode 100644 deploy/tkfb-package/web-ui/js/daily-work-report/index.js create mode 100644 deploy/tkfb-package/web-ui/js/daily-work-report/state.js create mode 100644 deploy/tkfb-package/web-ui/js/daily-work-report/utils.js create mode 100644 deploy/tkfb-package/web-ui/js/department-management.js create mode 100644 deploy/tkfb-package/web-ui/js/equipment-detail.js create mode 100644 deploy/tkfb-package/web-ui/js/equipment-management.js create mode 100644 deploy/tkfb-package/web-ui/js/factory-upload.js create mode 100644 deploy/tkfb-package/web-ui/js/factory-view.js create mode 100644 deploy/tkfb-package/web-ui/js/group-leader-dashboard.js create mode 100644 deploy/tkfb-package/web-ui/js/issue-category-manage.js create mode 100644 deploy/tkfb-package/web-ui/js/issue-detail.js create mode 100644 deploy/tkfb-package/web-ui/js/issue-report.js create mode 100644 deploy/tkfb-package/web-ui/js/load-navbar.js create mode 100644 deploy/tkfb-package/web-ui/js/load-sections.js create mode 100644 deploy/tkfb-package/web-ui/js/load-sidebar.js create mode 100644 deploy/tkfb-package/web-ui/js/login.js create mode 100644 deploy/tkfb-package/web-ui/js/manage-issue.js create mode 100644 deploy/tkfb-package/web-ui/js/manage-pipespec.js create mode 100644 deploy/tkfb-package/web-ui/js/manage-project.js create mode 100644 deploy/tkfb-package/web-ui/js/manage-user.js create mode 100644 deploy/tkfb-package/web-ui/js/manage-worker.js create mode 100644 deploy/tkfb-package/web-ui/js/management-dashboard.js create mode 100644 deploy/tkfb-package/web-ui/js/modern-dashboard.js create mode 100644 deploy/tkfb-package/web-ui/js/my-attendance.js create mode 100644 deploy/tkfb-package/web-ui/js/my-dashboard.js create mode 100644 deploy/tkfb-package/web-ui/js/my-profile.js create mode 100644 deploy/tkfb-package/web-ui/js/navigation.js create mode 100644 deploy/tkfb-package/web-ui/js/nonconformity-list.js create mode 100644 deploy/tkfb-package/web-ui/js/page-access-cache.js create mode 100644 deploy/tkfb-package/web-ui/js/project-analysis-api.js create mode 100644 deploy/tkfb-package/web-ui/js/project-analysis-ui.js create mode 100644 deploy/tkfb-package/web-ui/js/project-analysis.js create mode 100644 deploy/tkfb-package/web-ui/js/project-management.js create mode 100644 deploy/tkfb-package/web-ui/js/safety-checklist-manage.js create mode 100644 deploy/tkfb-package/web-ui/js/safety-management.js create mode 100644 deploy/tkfb-package/web-ui/js/safety-report-list.js create mode 100644 deploy/tkfb-package/web-ui/js/safety-training-conduct.js create mode 100644 deploy/tkfb-package/web-ui/js/system-dashboard.js create mode 100644 deploy/tkfb-package/web-ui/js/task-management.js create mode 100644 deploy/tkfb-package/web-ui/js/tbm.js create mode 100644 deploy/tkfb-package/web-ui/js/tbm/api.js create mode 100644 deploy/tkfb-package/web-ui/js/tbm/index.js create mode 100644 deploy/tkfb-package/web-ui/js/tbm/state.js create mode 100644 deploy/tkfb-package/web-ui/js/tbm/utils.js create mode 100644 deploy/tkfb-package/web-ui/js/user-dashboard.js create mode 100644 deploy/tkfb-package/web-ui/js/vacation-allocation.js create mode 100644 deploy/tkfb-package/web-ui/js/vacation-common.js create mode 100644 deploy/tkfb-package/web-ui/js/visit-request.js create mode 100644 deploy/tkfb-package/web-ui/js/work-analysis.js create mode 100644 deploy/tkfb-package/web-ui/js/work-analysis/api-client.js create mode 100644 deploy/tkfb-package/web-ui/js/work-analysis/chart-renderer.js create mode 100644 deploy/tkfb-package/web-ui/js/work-analysis/data-processor.js create mode 100644 deploy/tkfb-package/web-ui/js/work-analysis/main-controller.js create mode 100644 deploy/tkfb-package/web-ui/js/work-analysis/module-loader.js create mode 100644 deploy/tkfb-package/web-ui/js/work-analysis/state-manager.js create mode 100644 deploy/tkfb-package/web-ui/js/work-analysis/table-renderer.js create mode 100644 deploy/tkfb-package/web-ui/js/work-issue-report.js create mode 100644 deploy/tkfb-package/web-ui/js/work-management.js create mode 100644 deploy/tkfb-package/web-ui/js/work-report-api.js create mode 100644 deploy/tkfb-package/web-ui/js/work-report-create.js create mode 100644 deploy/tkfb-package/web-ui/js/work-report-manage.js create mode 100644 deploy/tkfb-package/web-ui/js/work-report-review.js create mode 100644 deploy/tkfb-package/web-ui/js/work-report-ui.js create mode 100644 deploy/tkfb-package/web-ui/js/work-review.js create mode 100644 deploy/tkfb-package/web-ui/js/worker-individual-report.js create mode 100644 deploy/tkfb-package/web-ui/js/worker-management.js create mode 100644 deploy/tkfb-package/web-ui/js/workplace-layout-map.js create mode 100644 deploy/tkfb-package/web-ui/js/workplace-management.js create mode 100644 deploy/tkfb-package/web-ui/js/workplace-management/api.js create mode 100644 deploy/tkfb-package/web-ui/js/workplace-management/index.js create mode 100644 deploy/tkfb-package/web-ui/js/workplace-management/state.js create mode 100644 deploy/tkfb-package/web-ui/js/workplace-management/utils.js create mode 100644 deploy/tkfb-package/web-ui/js/workplace-status.js create mode 100644 deploy/tkfb-package/web-ui/js/zone-detail.js create mode 100644 deploy/tkfb-package/web-ui/logo 2.png create mode 100644 deploy/tkfb-package/web-ui/logo.png create mode 100644 deploy/tkfb-package/web-ui/pages/admin/.gitkeep create mode 100644 deploy/tkfb-package/web-ui/pages/admin/accounts.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/attendance-report.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/departments.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/equipment-detail.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/equipments.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/issue-categories.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/notifications.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/projects.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/repair-management.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/tasks.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/workers.html create mode 100644 deploy/tkfb-package/web-ui/pages/admin/workplaces.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/annual-overview.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/checkin.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/daily.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/monthly.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/my-vacation-info.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/vacation-allocation.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/vacation-approval.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/vacation-input.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/vacation-management.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/vacation-request.html create mode 100644 deploy/tkfb-package/web-ui/pages/attendance/work-status.html create mode 100644 deploy/tkfb-package/web-ui/pages/dashboard.html create mode 100644 deploy/tkfb-package/web-ui/pages/inspection/daily-patrol.html create mode 100644 deploy/tkfb-package/web-ui/pages/inspection/zone-detail.html create mode 100644 deploy/tkfb-package/web-ui/pages/profile/info.html create mode 100644 deploy/tkfb-package/web-ui/pages/profile/password.html create mode 100644 deploy/tkfb-package/web-ui/pages/safety/checklist-manage.html create mode 100644 deploy/tkfb-package/web-ui/pages/safety/issue-detail.html create mode 100644 deploy/tkfb-package/web-ui/pages/safety/issue-report.html create mode 100644 deploy/tkfb-package/web-ui/pages/safety/management.html create mode 100644 deploy/tkfb-package/web-ui/pages/safety/report-status.html create mode 100644 deploy/tkfb-package/web-ui/pages/safety/report.html create mode 100644 deploy/tkfb-package/web-ui/pages/safety/training-conduct.html create mode 100644 deploy/tkfb-package/web-ui/pages/safety/visit-request.html create mode 100644 deploy/tkfb-package/web-ui/pages/work/.gitkeep create mode 100644 deploy/tkfb-package/web-ui/pages/work/analysis.html create mode 100644 deploy/tkfb-package/web-ui/pages/work/nonconformity.html create mode 100644 deploy/tkfb-package/web-ui/pages/work/report-create.html create mode 100644 deploy/tkfb-package/web-ui/pages/work/tbm.html create mode 100644 deploy/tkfb-package/web-ui/templates/README.md create mode 100644 deploy/tkfb-package/web-ui/templates/admin-layout.html create mode 100644 deploy/tkfb-package/web-ui/templates/dashboard-layout.html create mode 100644 deploy/tkfb-package/web-ui/templates/simple-layout.html create mode 100644 deploy/tkfb-package/web-ui/templates/work-layout.html create mode 100644 deploy/web-ui-config.js create mode 100644 docs/vacation-data-flow-guide.md create mode 100644 docs/zone-data-guide.md create mode 100644 web-ui/components/mobile-nav.html create mode 100644 web-ui/css/mobile.css create mode 100644 web-ui/css/zone-detail.css delete mode 100644 web-ui/js/annual-vacation-overview.js create mode 100644 web-ui/js/zone-detail.js create mode 100644 web-ui/pages/attendance/my-vacation-info.html create mode 100644 web-ui/pages/inspection/zone-detail.html diff --git a/api.hyungi.net/config/middleware.js b/api.hyungi.net/config/middleware.js index 752761e..83b8eb6 100644 --- a/api.hyungi.net/config/middleware.js +++ b/api.hyungi.net/config/middleware.js @@ -57,14 +57,19 @@ function setupMiddlewares(app) { // 일반 API 요청 제한 const apiLimiter = rateLimit({ windowMs: 15 * 60 * 1000, // 15분 - max: 200, // IP당 최대 200 요청 + max: 1000, // IP당 최대 1000 요청 (일괄 처리 지원) message: { success: false, error: '너무 많은 요청입니다. 잠시 후 다시 시도해주세요.', code: 'RATE_LIMIT_EXCEEDED' }, standardHeaders: true, - legacyHeaders: false + legacyHeaders: false, + // 인증된 사용자는 더 많은 요청 허용 + skip: (req) => { + // Authorization 헤더가 있으면 Rate Limit 완화 + return req.headers.authorization && req.headers.authorization.startsWith('Bearer '); + } }); // 로그인 시도 제한 (브루트포스 방지) diff --git a/api.hyungi.net/config/routes.js b/api.hyungi.net/config/routes.js index 44200ef..f5cdb88 100644 --- a/api.hyungi.net/config/routes.js +++ b/api.hyungi.net/config/routes.js @@ -107,7 +107,10 @@ function setupRoutes(app) { '/api/setup/migrate-existing-data', '/api/setup/check-data-status', '/api/monthly-status/calendar', - '/api/monthly-status/daily-details' + '/api/monthly-status/daily-details', + '/api/migrate-work-type-id', // 임시 마이그레이션 - 실행 후 삭제! + '/api/diagnose-work-type-id', // 임시 진단 - 실행 후 삭제! + '/api/test-analysis' // 임시 분석 테스트 - 실행 후 삭제! ]; // 인증 미들웨어 - 공개 경로를 제외한 모든 API (rate limiter보다 먼저 실행) diff --git a/api.hyungi.net/controllers/attendanceController.js b/api.hyungi.net/controllers/attendanceController.js index 793fb97..124a4cd 100644 --- a/api.hyungi.net/controllers/attendanceController.js +++ b/api.hyungi.net/controllers/attendanceController.js @@ -38,6 +38,20 @@ const getDailyAttendanceRecords = asyncHandler(async (req, res) => { }); }); +/** + * 기간별 근태 기록 조회 (월별 조회용) + */ +const getAttendanceRecordsByRange = asyncHandler(async (req, res) => { + const { start_date, end_date, worker_id } = req.query; + const data = await attendanceService.getAttendanceRecordsByRangeService(start_date, end_date, worker_id); + + res.json({ + success: true, + data, + message: '근태 기록을 성공적으로 조회했습니다' + }); +}); + /** * 근태 기록 생성/업데이트 */ @@ -185,6 +199,7 @@ const saveCheckins = asyncHandler(async (req, res) => { module.exports = { getDailyAttendanceStatus, getDailyAttendanceRecords, + getAttendanceRecordsByRange, upsertAttendanceRecord, processVacation, approveOvertime, diff --git a/api.hyungi.net/controllers/patrolController.js b/api.hyungi.net/controllers/patrolController.js index 3a2c21f..e810a9c 100644 --- a/api.hyungi.net/controllers/patrolController.js +++ b/api.hyungi.net/controllers/patrolController.js @@ -289,6 +289,507 @@ const PatrolController = { console.error('작업장별 점검 현황 조회 오류:', error); res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); } + }, + + // ==================== 작업장 상세 정보 (통합) ==================== + + // 작업장 상세 정보 조회 (시설물, 안전신고, 부적합, 출입, TBM) + getWorkplaceDetail: async (req, res) => { + try { + const { workplaceId } = req.params; + const { date } = req.query; // 기본: 오늘 + const targetDate = date || new Date().toISOString().slice(0, 10); + const { getDb } = require('../dbPool'); + const db = await getDb(); + + // 1. 작업장 기본 정보 (카테고리 지도 이미지 포함) + const [workplaceInfo] = await db.query(` + SELECT w.*, wc.category_name, wc.layout_image as category_layout_image + FROM workplaces w + LEFT JOIN workplace_categories wc ON w.category_id = wc.category_id + WHERE w.workplace_id = ? + `, [workplaceId]); + + if (!workplaceInfo.length) { + return res.status(404).json({ success: false, message: '작업장을 찾을 수 없습니다.' }); + } + + // 2. 설비 현황 (해당 작업장 - 원래 위치 또는 현재 위치) + let equipments = []; + try { + const [eqResult] = await db.query(` + SELECT e.equipment_id, e.equipment_name, e.equipment_code, e.equipment_type, + e.status, e.notes, e.workplace_id, + e.map_x_percent, e.map_y_percent, e.map_width_percent, e.map_height_percent, + e.is_temporarily_moved, e.current_workplace_id, + e.current_map_x_percent, e.current_map_y_percent, + e.current_map_width_percent, e.current_map_height_percent, + e.moved_at, + ow.workplace_name as original_workplace_name, + cw.workplace_name as current_workplace_name, + CASE + WHEN e.status IN ('maintenance', 'repair_needed', 'repair_external') THEN 1 + WHEN e.is_temporarily_moved = 1 THEN 1 + ELSE 0 + END as needs_attention + FROM equipments e + LEFT JOIN workplaces ow ON e.workplace_id = ow.workplace_id + LEFT JOIN workplaces cw ON e.current_workplace_id = cw.workplace_id + WHERE (e.workplace_id = ? OR e.current_workplace_id = ?) + AND e.status != 'inactive' + ORDER BY needs_attention DESC, e.equipment_name + `, [workplaceId, workplaceId]); + equipments = eqResult; + } catch (eqError) { + console.log('설비 조회 스킵 (테이블 없음 또는 오류):', eqError.message); + } + + // 3. 수리 요청 현황 (미완료) - 테이블 존재 여부 확인 후 조회 + let repairRequests = []; + try { + const [repairResult] = await db.query(` + SELECT er.request_id, er.request_date, er.repair_category, er.description, + er.priority, er.status, e.equipment_name, e.equipment_code + FROM equipment_repair_requests er + JOIN equipments e ON er.equipment_id = e.equipment_id + WHERE e.workplace_id = ? AND er.status NOT IN ('completed', 'cancelled') + ORDER BY + CASE er.priority WHEN 'emergency' THEN 1 WHEN 'high' THEN 2 WHEN 'normal' THEN 3 ELSE 4 END, + er.request_date DESC + LIMIT 10 + `, [workplaceId]); + repairRequests = repairResult; + } catch (repairError) { + console.log('수리요청 조회 스킵 (테이블 없음 또는 오류):', repairError.message); + } + + // 4. 안전 신고 및 부적합 사항 - 테이블 존재 여부 확인 후 조회 + let workIssues = []; + try { + const [issueResult] = await db.query(` + SELECT wi.report_id, wi.issue_type, wi.title, wi.description, + wi.status, wi.severity, wi.created_at, wi.resolved_at, + wic.category_name, wic.issue_type as category_type, + u.name as reporter_name + FROM work_issue_reports wi + LEFT JOIN issue_report_categories wic ON wi.category_id = wic.category_id + LEFT JOIN users u ON wi.reporter_id = u.user_id + WHERE wi.workplace_id = ? + AND wi.created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY) + ORDER BY wi.created_at DESC + LIMIT 20 + `, [workplaceId]); + workIssues = issueResult; + } catch (issueError) { + console.log('신고 조회 스킵 (테이블 없음 또는 오류):', issueError.message); + } + + // 5. 오늘의 출입 기록 (해당 공장 카테고리) + const categoryId = workplaceInfo[0].category_id; + let visitRecords = []; + try { + const [visitResult] = await db.query(` + SELECT vr.request_id, vr.visitor_name, vr.visitor_company, vr.visit_purpose, + vr.visit_date, vr.visit_time_from, vr.visit_time_to, vr.status, + vr.vehicle_number, vr.companion_count, + vp.purpose_name, u.name as requester_name + FROM workplace_visit_requests vr + LEFT JOIN visit_purpose_types vp ON vr.purpose_id = vp.purpose_id + LEFT JOIN users u ON vr.requester_id = u.user_id + WHERE vr.category_id = ? AND vr.visit_date = ? AND vr.status = 'approved' + ORDER BY vr.visit_time_from + `, [categoryId, targetDate]); + visitRecords = visitResult; + } catch (visitError) { + console.log('출입기록 조회 스킵 (테이블 없음 또는 오류):', visitError.message); + } + + // 6. 오늘의 TBM 세션 (해당 공장 카테고리) + let tbmSessions = []; + try { + const [tbmResult] = await db.query(` + SELECT ts.session_id, ts.session_date, ts.work_location, ts.status, + ts.work_content, ts.safety_measures, ts.team_size, + t.task_name, wt.name as work_type_name, + u.name as leader_name, w.worker_name as leader_worker_name + FROM tbm_sessions ts + LEFT JOIN tasks t ON ts.task_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + LEFT JOIN users u ON ts.leader_id = u.user_id + LEFT JOIN workers w ON ts.leader_worker_id = w.worker_id + WHERE ts.category_id = ? AND ts.session_date = ? + ORDER BY ts.created_at DESC + `, [categoryId, targetDate]); + tbmSessions = tbmResult; + } catch (tbmError) { + console.log('TBM 조회 스킵 (테이블 없음 또는 오류):', tbmError.message); + } + + // 7. TBM 팀원 정보 (세션별) + let tbmWithTeams = []; + try { + tbmWithTeams = await Promise.all(tbmSessions.map(async (session) => { + const [team] = await db.query(` + SELECT tta.assignment_id, w.worker_name, w.occupation, + tta.attendance_status, tta.signature_image + FROM tbm_team_assignments tta + JOIN workers w ON tta.worker_id = w.worker_id + WHERE tta.session_id = ? + ORDER BY w.worker_name + `, [session.session_id]); + return { ...session, team }; + })); + } catch (teamError) { + console.log('TBM 팀원 조회 스킵:', teamError.message); + tbmWithTeams = tbmSessions.map(s => ({ ...s, team: [] })); + } + + // 8. 최근 순회점검 결과 (해당 작업장) + let recentPatrol = []; + try { + const [patrolResult] = await db.query(` + SELECT ps.session_id, ps.patrol_date, ps.patrol_time, ps.status, + ps.notes, u.name as inspector_name, + (SELECT COUNT(*) FROM patrol_check_records pcr + WHERE pcr.session_id = ps.session_id AND pcr.workplace_id = ?) as checked_count, + (SELECT COUNT(*) FROM patrol_check_records pcr + WHERE pcr.session_id = ps.session_id AND pcr.workplace_id = ? + AND pcr.check_result IN ('warning', 'bad')) as issue_count + FROM daily_patrol_sessions ps + LEFT JOIN users u ON ps.inspector_id = u.user_id + WHERE ps.category_id = ? AND ps.patrol_date >= DATE_SUB(NOW(), INTERVAL 7 DAY) + ORDER BY ps.patrol_date DESC, ps.patrol_time DESC + LIMIT 5 + `, [workplaceId, workplaceId, categoryId]); + recentPatrol = patrolResult; + } catch (patrolError) { + console.log('순회점검 조회 스킵 (테이블 없음 또는 오류):', patrolError.message); + } + + res.json({ + success: true, + data: { + workplace: workplaceInfo[0], + equipments: equipments, + repairRequests: repairRequests, + workIssues: { + safety: workIssues.filter(i => i.category_type === 'safety'), + nonconformity: workIssues.filter(i => i.category_type === 'nonconformity'), + all: workIssues + }, + visitRecords: visitRecords, + tbmSessions: tbmWithTeams, + recentPatrol: recentPatrol, + summary: { + equipmentCount: equipments.length, + needsAttention: equipments.filter(e => e.needs_attention).length, + pendingRepairs: repairRequests.length, + openIssues: workIssues.filter(i => i.status !== 'closed').length, + todayVisitors: visitRecords.reduce((sum, v) => sum + 1 + (v.companion_count || 0), 0), + todayTbmSessions: tbmSessions.length + } + } + }); + } catch (error) { + console.error('작업장 상세 정보 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // ==================== 구역 내 등록 물품/시설물 ==================== + + // 구역 내 물품/시설물 목록 조회 + getZoneItems: async (req, res) => { + try { + const { workplaceId } = req.params; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + // 테이블이 없으면 생성 + await db.query(` + CREATE TABLE IF NOT EXISTS workplace_zone_items ( + item_id INT AUTO_INCREMENT PRIMARY KEY, + workplace_id INT NOT NULL, + item_name VARCHAR(200) NOT NULL COMMENT '물품/시설물 명칭', + item_type VARCHAR(50) DEFAULT 'general' COMMENT '유형 (heavy_equipment, hazardous, storage, general 등)', + description TEXT COMMENT '상세 설명', + x_percent DECIMAL(5,2) NOT NULL COMMENT '영역 시작 X 좌표 (%)', + y_percent DECIMAL(5,2) NOT NULL COMMENT '영역 시작 Y 좌표 (%)', + width_percent DECIMAL(5,2) DEFAULT 10 COMMENT '영역 너비 (%)', + height_percent DECIMAL(5,2) DEFAULT 10 COMMENT '영역 높이 (%)', + color VARCHAR(20) DEFAULT '#3b82f6' COMMENT '표시 색상', + warning_level VARCHAR(20) DEFAULT 'normal' COMMENT '주의 수준 (normal, caution, danger)', + quantity INT DEFAULT 1 COMMENT '수량', + unit VARCHAR(20) DEFAULT '개' COMMENT '단위', + weight_kg DECIMAL(10,2) DEFAULT NULL COMMENT '중량 (kg)', + is_active BOOLEAN DEFAULT TRUE, + created_by INT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + INDEX idx_workplace (workplace_id), + INDEX idx_type (item_type) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='구역 내 등록 물품/시설물' + `); + + // 새 컬럼 추가 (없으면) + try { + await db.query(`ALTER TABLE workplace_zone_items ADD COLUMN project_type VARCHAR(20) DEFAULT 'non_project'`); + } catch (e) { /* 이미 존재 */ } + try { + await db.query(`ALTER TABLE workplace_zone_items ADD COLUMN project_id INT NULL`); + } catch (e) { /* 이미 존재 */ } + + const [items] = await db.query(` + SELECT zi.*, p.project_name + FROM workplace_zone_items zi + LEFT JOIN projects p ON zi.project_id = p.project_id + WHERE zi.workplace_id = ? AND zi.is_active = TRUE + ORDER BY zi.warning_level DESC, zi.item_name + `, [workplaceId]); + + // 사진 테이블 존재 확인 및 사진 조회 + try { + for (const item of items) { + const [photos] = await db.query(` + SELECT photo_id, photo_url, created_at + FROM zone_item_photos + WHERE item_id = ? + ORDER BY created_at DESC + `, [item.item_id]); + item.photos = photos || []; + } + } catch (e) { + // 사진 테이블이 없으면 무시 + items.forEach(item => item.photos = []); + } + + res.json({ success: true, data: items }); + } catch (error) { + console.error('구역 물품 목록 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 구역 현황 등록 + createZoneItem: async (req, res) => { + try { + const { workplaceId } = req.params; + const { item_name, item_type, description, x_percent, y_percent, width_percent, height_percent, + color, warning_level, project_type, project_id } = req.body; + const createdBy = req.user?.user_id; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + if (!item_name || x_percent === undefined || y_percent === undefined) { + return res.status(400).json({ success: false, message: '필수 정보가 누락되었습니다.' }); + } + + // 테이블에 새 컬럼 추가 (없으면) + try { + await db.query(`ALTER TABLE workplace_zone_items ADD COLUMN project_type VARCHAR(20) DEFAULT 'non_project'`); + } catch (e) { /* 이미 존재 */ } + try { + await db.query(`ALTER TABLE workplace_zone_items ADD COLUMN project_id INT NULL`); + } catch (e) { /* 이미 존재 */ } + + const [result] = await db.query(` + INSERT INTO workplace_zone_items + (workplace_id, item_name, item_type, description, x_percent, y_percent, width_percent, height_percent, + color, warning_level, project_type, project_id, created_by) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, [workplaceId, item_name, item_type || 'working', description, x_percent, y_percent, + width_percent || 5, height_percent || 5, color || '#3b82f6', warning_level || 'good', + project_type || 'non_project', project_id || null, createdBy]); + + const newItemId = result.insertId; + + // 등록 이력 저장 + try { + await db.query(` + INSERT INTO zone_item_history (item_id, action_type, new_values, changed_by) + VALUES (?, 'created', ?, ?) + `, [newItemId, JSON.stringify({ item_name, item_type, warning_level, project_type }), createdBy]); + } catch (e) { /* 테이블 없으면 무시 */ } + + res.json({ + success: true, + data: { item_id: newItemId }, + message: '현황이 등록되었습니다.' + }); + } catch (error) { + console.error('구역 현황 등록 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 구역 현황 수정 + updateZoneItem: async (req, res) => { + try { + const { itemId } = req.params; + const { item_name, item_type, description, x_percent, y_percent, width_percent, height_percent, + color, warning_level, project_type, project_id } = req.body; + const userId = req.user?.user_id; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + // 이력 테이블 생성 (없으면) + await db.query(` + CREATE TABLE IF NOT EXISTS zone_item_history ( + history_id INT AUTO_INCREMENT PRIMARY KEY, + item_id INT NOT NULL, + action_type VARCHAR(20) NOT NULL COMMENT 'created, updated, deleted', + changed_fields TEXT COMMENT '변경된 필드 JSON', + old_values TEXT COMMENT '이전 값 JSON', + new_values TEXT COMMENT '새 값 JSON', + changed_by INT, + changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + INDEX idx_item (item_id), + INDEX idx_date (changed_at) + ) + `); + + // 기존 데이터 조회 (이력용) + const [oldData] = await db.query(`SELECT * FROM workplace_zone_items WHERE item_id = ?`, [itemId]); + const oldItem = oldData[0]; + + // 업데이트 + await db.query(` + UPDATE workplace_zone_items SET + item_name = COALESCE(?, item_name), + item_type = COALESCE(?, item_type), + description = ?, + x_percent = COALESCE(?, x_percent), + y_percent = COALESCE(?, y_percent), + width_percent = COALESCE(?, width_percent), + height_percent = COALESCE(?, height_percent), + color = COALESCE(?, color), + warning_level = COALESCE(?, warning_level), + project_type = COALESCE(?, project_type), + project_id = ? + WHERE item_id = ? + `, [item_name, item_type, description, x_percent, y_percent, width_percent, height_percent, + color, warning_level, project_type, project_id, itemId]); + + // 변경 이력 저장 + if (oldItem) { + const changedFields = []; + const oldValues = {}; + const newValues = {}; + + const fieldMap = { item_name, item_type, description, warning_level, project_type, project_id }; + for (const [key, newVal] of Object.entries(fieldMap)) { + if (newVal !== undefined && oldItem[key] !== newVal) { + changedFields.push(key); + oldValues[key] = oldItem[key]; + newValues[key] = newVal; + } + } + + if (changedFields.length > 0) { + await db.query(` + INSERT INTO zone_item_history (item_id, action_type, changed_fields, old_values, new_values, changed_by) + VALUES (?, 'updated', ?, ?, ?, ?) + `, [itemId, JSON.stringify(changedFields), JSON.stringify(oldValues), JSON.stringify(newValues), userId]); + } + } + + res.json({ success: true, message: '현황이 수정되었습니다.' }); + } catch (error) { + console.error('구역 현황 수정 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 구역 현황 사진 업로드 + uploadZoneItemPhoto: async (req, res) => { + try { + const { item_id } = req.body; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + if (!req.file) { + return res.status(400).json({ success: false, message: '파일이 없습니다.' }); + } + + // 사진 테이블 생성 (없으면) + await db.query(` + CREATE TABLE IF NOT EXISTS zone_item_photos ( + photo_id INT AUTO_INCREMENT PRIMARY KEY, + item_id INT NOT NULL, + photo_url VARCHAR(500) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + INDEX idx_item_id (item_id) + ) + `); + + const photoUrl = `/uploads/${req.file.filename}`; + const [result] = await db.query( + `INSERT INTO zone_item_photos (item_id, photo_url) VALUES (?, ?)`, + [item_id, photoUrl] + ); + + res.json({ + success: true, + data: { photo_id: result.insertId, photo_url: photoUrl }, + message: '사진이 업로드되었습니다.' + }); + } catch (error) { + console.error('사진 업로드 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 구역 현황 삭제 + deleteZoneItem: async (req, res) => { + try { + const { itemId } = req.params; + const userId = req.user?.user_id; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + // 기존 데이터 조회 (이력용) + const [oldData] = await db.query(`SELECT * FROM workplace_zone_items WHERE item_id = ?`, [itemId]); + const oldItem = oldData[0]; + + // 소프트 삭제 + await db.query(`UPDATE workplace_zone_items SET is_active = FALSE WHERE item_id = ?`, [itemId]); + + // 삭제 이력 저장 + if (oldItem) { + await db.query(` + INSERT INTO zone_item_history (item_id, action_type, old_values, changed_by) + VALUES (?, 'deleted', ?, ?) + `, [itemId, JSON.stringify({ item_name: oldItem.item_name, item_type: oldItem.item_type }), userId]); + } + + res.json({ success: true, message: '현황이 삭제되었습니다.' }); + } catch (error) { + console.error('구역 현황 삭제 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 구역 현황 이력 조회 + getZoneItemHistory: async (req, res) => { + try { + const { itemId } = req.params; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + const [history] = await db.query(` + SELECT h.*, u.full_name as changed_by_name + FROM zone_item_history h + LEFT JOIN users u ON h.changed_by = u.user_id + WHERE h.item_id = ? + ORDER BY h.changed_at DESC + LIMIT 50 + `, [itemId]); + + res.json({ success: true, data: history }); + } catch (error) { + console.error('현황 이력 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } } }; diff --git a/api.hyungi.net/controllers/taskController.js b/api.hyungi.net/controllers/taskController.js index fca45c3..d9cdc30 100644 --- a/api.hyungi.net/controllers/taskController.js +++ b/api.hyungi.net/controllers/taskController.js @@ -39,10 +39,18 @@ exports.createTask = asyncHandler(async (req, res) => { }); /** - * 전체 작업 조회 + * 전체 작업 조회 (work_type_id 필터 지원) */ exports.getAllTasks = asyncHandler(async (req, res) => { - const rows = await taskModel.getAllTasks(); + const { work_type_id } = req.query; + + let rows; + if (work_type_id) { + // 특정 공정의 활성 작업만 조회 + rows = await taskModel.getTasksByWorkType(work_type_id); + } else { + rows = await taskModel.getAllTasks(); + } res.json({ success: true, diff --git a/api.hyungi.net/controllers/vacationBalanceController.js b/api.hyungi.net/controllers/vacationBalanceController.js index 6983293..4eeaa3a 100644 --- a/api.hyungi.net/controllers/vacationBalanceController.js +++ b/api.hyungi.net/controllers/vacationBalanceController.js @@ -322,6 +322,70 @@ const vacationBalanceController = { } }, + /** + * 휴가 잔액 일괄 저장 (upsert) + * POST /api/vacation-balances/bulk-upsert + */ + async bulkUpsert(req, res) { + try { + const { balances } = req.body; + const created_by = req.user.user_id; + + if (!balances || !Array.isArray(balances) || balances.length === 0) { + return res.status(400).json({ + success: false, + message: '저장할 데이터가 없습니다' + }); + } + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + let successCount = 0; + let errorCount = 0; + + for (const balance of balances) { + const { worker_id, vacation_type_id, year, total_days, notes } = balance; + + if (!worker_id || !vacation_type_id || !year || total_days === undefined) { + errorCount++; + continue; + } + + try { + // Upsert 쿼리 + const query = ` + INSERT INTO vacation_balance_details + (worker_id, vacation_type_id, year, total_days, used_days, notes, created_by) + VALUES (?, ?, ?, ?, 0, ?, ?) + ON DUPLICATE KEY UPDATE + total_days = VALUES(total_days), + notes = VALUES(notes), + updated_at = NOW() + `; + + await db.query(query, [worker_id, vacation_type_id, year, total_days, notes || null, created_by]); + successCount++; + } catch (err) { + console.error('휴가 잔액 저장 오류:', err); + errorCount++; + } + } + + res.json({ + success: true, + message: `${successCount}건 저장 완료${errorCount > 0 ? `, ${errorCount}건 실패` : ''}`, + data: { successCount, errorCount } + }); + } catch (error) { + console.error('bulkUpsert 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + /** * 작업자의 사용 가능한 휴가 일수 조회 * GET /api/vacation-balances/worker/:workerId/year/:year/available diff --git a/api.hyungi.net/db/migrations/20260205_fix_work_type_id_data.js b/api.hyungi.net/db/migrations/20260205_fix_work_type_id_data.js new file mode 100644 index 0000000..53c520a --- /dev/null +++ b/api.hyungi.net/db/migrations/20260205_fix_work_type_id_data.js @@ -0,0 +1,105 @@ +/** + * 마이그레이션: TBM 기반 작업보고서의 work_type_id를 task_id로 수정 + * + * 문제: TBM에서 작업보고서 생성 시 work_type_id(공정 ID)가 저장됨 + * 해결: tbm_team_assignments 테이블의 task_id로 업데이트 + * + * 실행: node db/migrations/20260205_fix_work_type_id_data.js + */ + +const { getDb } = require('../../dbPool'); + +async function migrate() { + const db = await getDb(); + + console.log('🔄 TBM 기반 작업보고서 work_type_id 수정 시작...\n'); + + try { + // 1. 수정 대상 확인 (TBM 기반이면서 work_type_id가 task_id와 다른 경우) + const [checkResult] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id as current_work_type_id, + ta.task_id as correct_task_id, + ta.work_type_id as tbm_work_type_id, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + INNER JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + ORDER BY dwr.report_date DESC + `); + + console.log(`📊 수정 대상: ${checkResult.length}개 레코드\n`); + + if (checkResult.length === 0) { + console.log('✅ 수정할 데이터가 없습니다.'); + return; + } + + // 수정 대상 샘플 출력 + console.log('📋 수정 대상 샘플 (최대 10개):'); + console.log('─'.repeat(80)); + checkResult.slice(0, 10).forEach(row => { + console.log(` ID: ${row.id} | ${row.worker_name} | ${row.report_date}`); + console.log(` 현재 work_type_id: ${row.current_work_type_id} → 올바른 task_id: ${row.correct_task_id}`); + }); + if (checkResult.length > 10) { + console.log(` ... 외 ${checkResult.length - 10}개`); + } + console.log('─'.repeat(80)); + + // 2. 업데이트 실행 + const [updateResult] = await db.query(` + UPDATE daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + SET dwr.work_type_id = ta.task_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + `); + + console.log(`\n✅ 업데이트 완료: ${updateResult.affectedRows}개 레코드 수정됨`); + + // 3. 수정 결과 확인 + const [verifyResult] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id, + ta.task_id, + t.task_name, + wt.name as work_type_name + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + WHERE dwr.tbm_assignment_id IS NOT NULL + LIMIT 5 + `); + + console.log('\n📋 수정 후 샘플 확인:'); + console.log('─'.repeat(80)); + verifyResult.forEach(row => { + console.log(` ID: ${row.id} | work_type_id: ${row.work_type_id} | task: ${row.task_name || 'N/A'} | 공정: ${row.work_type_name || 'N/A'}`); + }); + console.log('─'.repeat(80)); + + } catch (error) { + console.error('❌ 마이그레이션 실패:', error.message); + throw error; + } +} + +// 실행 +migrate() + .then(() => { + console.log('\n🎉 마이그레이션 완료!'); + process.exit(0); + }) + .catch(err => { + console.error('\n💥 마이그레이션 실패:', err); + process.exit(1); + }); diff --git a/api.hyungi.net/db/migrations/20260206_migrate_error_types_final.sql b/api.hyungi.net/db/migrations/20260206_migrate_error_types_final.sql new file mode 100644 index 0000000..3082a30 --- /dev/null +++ b/api.hyungi.net/db/migrations/20260206_migrate_error_types_final.sql @@ -0,0 +1,56 @@ +-- ============================================ +-- error_types → issue_report_items 마이그레이션 +-- 실행 전 반드시 백업하세요! +-- ============================================ + +-- STEP 1: 현재 상태 확인 +-- ============================================ +SELECT 'Before Migration' as status; +SELECT error_type_id, COUNT(*) as cnt FROM daily_work_reports WHERE error_type_id IS NOT NULL GROUP BY error_type_id; + + +-- STEP 2: 매핑 업데이트 실행 +-- ============================================ +-- 주의: 순서가 중요! (충돌 방지를 위해 큰 숫자부터) + +-- 6 (검사불량) → 14 (치수 검사 누락) +UPDATE daily_work_reports SET error_type_id = 14 WHERE error_type_id = 6; + +-- 5 (설비고장) → 38 (기계 고장) +UPDATE daily_work_reports SET error_type_id = 38 WHERE error_type_id = 5; + +-- 4 (작업불량) → 43 (NDE 불합격) +UPDATE daily_work_reports SET error_type_id = 43 WHERE error_type_id = 4; + +-- 3 (입고지연) → 1 (배관 자재 미입고) - 이미 1이므로 충돌 가능, 임시값 사용 +UPDATE daily_work_reports SET error_type_id = 99991 WHERE error_type_id = 3; + +-- 2 (외주작업 불량) → 10 (외관 불량) +UPDATE daily_work_reports SET error_type_id = 10 WHERE error_type_id = 2; + +-- 1 (설계미스) → 6 (도면 치수 오류) - 6은 이미 업데이트됨 +UPDATE daily_work_reports SET error_type_id = 6 WHERE error_type_id = 1; + +-- 임시값 복원: 99991 → 1 +UPDATE daily_work_reports SET error_type_id = 1 WHERE error_type_id = 99991; + + +-- STEP 3: 마이그레이션 결과 확인 +-- ============================================ +SELECT 'After Migration' as status; +SELECT + dwr.error_type_id, + iri.item_name, + irc.category_name, + COUNT(*) as cnt +FROM daily_work_reports dwr +LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id +LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id +WHERE dwr.error_type_id IS NOT NULL +GROUP BY dwr.error_type_id, iri.item_name, irc.category_name; + + +-- STEP 4: error_types 테이블 삭제 (선택사항) +-- ============================================ +-- 마이그레이션 확인 후 주석 해제하여 실행 +-- DROP TABLE IF EXISTS error_types; diff --git a/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.js b/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.js new file mode 100644 index 0000000..18659f1 --- /dev/null +++ b/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.js @@ -0,0 +1,112 @@ +/** + * 마이그레이션: error_types에서 issue_report_items로 전환 + * + * 기존 daily_work_reports.error_type_id가 error_types.id를 참조하던 것을 + * issue_report_items.item_id를 참조하도록 변경 + * + * 기존 error_types 데이터: + * id=1: 설계미스 + * id=2: 외주작업 불량 + * id=3: 입고지연 + * + * 새 issue_report_categories 데이터: + * category_id=1: 자재누락 (nonconformity) + * category_id=2: 설계미스 (nonconformity) + * category_id=3: 입고불량 (nonconformity) + * + * 매핑 전략: + * - error_types.id=1 (설계미스) → issue_report_items에서 '설계미스' 카테고리의 첫 번째 항목 + * - error_types.id=2 (외주작업 불량) → issue_report_items에서 '입고불량' 카테고리의 '외관 불량' 항목 + * - error_types.id=3 (입고지연) → issue_report_items에서 '자재누락' 카테고리의 첫 번째 항목 + */ + +exports.up = async function(knex) { + console.log('=== error_type_id 마이그레이션 시작 ==='); + + // 1. 기존 error_types 데이터와 새 issue_report_items 매핑 테이블 조회 + const [categories] = await knex.raw(` + SELECT category_id, category_name + FROM issue_report_categories + WHERE category_type = 'nonconformity' + `); + console.log('부적합 카테고리:', categories); + + const [items] = await knex.raw(` + SELECT iri.item_id, iri.item_name, iri.category_id, irc.category_name + FROM issue_report_items iri + JOIN issue_report_categories irc ON iri.category_id = irc.category_id + WHERE irc.category_type = 'nonconformity' + ORDER BY iri.category_id, iri.display_order + `); + console.log('부적합 항목:', items); + + // 2. 매핑 정의 (기존 error_type_id → 새 issue_report_items.item_id) + // 설계미스 카테고리 찾기 + const designMissCategory = categories.find(c => c.category_name === '설계미스'); + const incomingDefectCategory = categories.find(c => c.category_name === '입고불량'); + const materialShortageCategory = categories.find(c => c.category_name === '자재누락'); + + // 각 카테고리의 첫 번째 항목 찾기 + const designMissItem = items.find(i => i.category_id === designMissCategory?.category_id); + const incomingDefectItem = items.find(i => i.category_id === incomingDefectCategory?.category_id); + const materialShortageItem = items.find(i => i.category_id === materialShortageCategory?.category_id); + + console.log('매핑 결과:'); + console.log(' - 설계미스(1) → item_id:', designMissItem?.item_id); + console.log(' - 외주작업불량(2) → item_id:', incomingDefectItem?.item_id); + console.log(' - 입고지연(3) → item_id:', materialShortageItem?.item_id); + + // 3. 기존 데이터 업데이트 + if (designMissItem) { + const [result1] = await knex.raw(` + UPDATE daily_work_reports + SET error_type_id = ? + WHERE error_type_id = 1 + `, [designMissItem.item_id]); + console.log('설계미스(1) 업데이트:', result1.affectedRows, '건'); + } + + if (incomingDefectItem) { + const [result2] = await knex.raw(` + UPDATE daily_work_reports + SET error_type_id = ? + WHERE error_type_id = 2 + `, [incomingDefectItem.item_id]); + console.log('외주작업불량(2) 업데이트:', result2.affectedRows, '건'); + } + + if (materialShortageItem) { + const [result3] = await knex.raw(` + UPDATE daily_work_reports + SET error_type_id = ? + WHERE error_type_id = 3 + `, [materialShortageItem.item_id]); + console.log('입고지연(3) 업데이트:', result3.affectedRows, '건'); + } + + // 4. 매핑 안된 나머지 데이터 확인 (4 이상의 error_type_id) + const [unmapped] = await knex.raw(` + SELECT DISTINCT error_type_id, COUNT(*) as cnt + FROM daily_work_reports + WHERE error_type_id IS NOT NULL + AND error_type_id NOT IN (?, ?, ?) + GROUP BY error_type_id + `, [ + designMissItem?.item_id || 0, + incomingDefectItem?.item_id || 0, + materialShortageItem?.item_id || 0 + ]); + + if (unmapped.length > 0) { + console.log('⚠️ 매핑되지 않은 error_type_id 발견:', unmapped); + console.log(' 이 데이터는 수동으로 확인 필요'); + } + + console.log('=== error_type_id 마이그레이션 완료 ==='); +}; + +exports.down = async function(knex) { + // 롤백은 복잡하므로 로그만 출력 + console.log('⚠️ 이 마이그레이션은 자동 롤백을 지원하지 않습니다.'); + console.log(' 데이터 복구가 필요한 경우 백업에서 복원해주세요.'); +}; diff --git a/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.sql b/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.sql new file mode 100644 index 0000000..4330533 --- /dev/null +++ b/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.sql @@ -0,0 +1,73 @@ +-- ============================================ +-- error_types → issue_report_items 마이그레이션 +-- ============================================ + +-- STEP 1: 현재 데이터 확인 +-- ============================================ + +-- 기존 error_types 확인 +SELECT * FROM error_types; + +-- 새 issue_report_categories 확인 (부적합만) +SELECT * FROM issue_report_categories WHERE category_type = 'nonconformity'; + +-- 새 issue_report_items 확인 (부적합만) +SELECT + iri.item_id, + iri.item_name, + iri.category_id, + irc.category_name +FROM issue_report_items iri +JOIN issue_report_categories irc ON iri.category_id = irc.category_id +WHERE irc.category_type = 'nonconformity' +ORDER BY irc.display_order, iri.display_order; + +-- 현재 daily_work_reports에서 사용 중인 error_type_id 확인 +SELECT + error_type_id, + COUNT(*) as cnt, + et.name as old_error_name +FROM daily_work_reports dwr +LEFT JOIN error_types et ON dwr.error_type_id = et.id +WHERE error_type_id IS NOT NULL +GROUP BY error_type_id +ORDER BY error_type_id; + + +-- STEP 2: 매핑 업데이트 (실제 item_id 확인 후 수정 필요!) +-- ============================================ + +-- 먼저 위 쿼리로 실제 item_id 값을 확인하세요! +-- 아래는 예시입니다. 실제 값으로 수정해서 사용하세요. + +-- 예시: 설계미스(error_type_id=1) → 설계미스 카테고리의 '도면 치수 오류' 항목 +-- UPDATE daily_work_reports SET error_type_id = 6 WHERE error_type_id = 1; + +-- 예시: 외주작업 불량(error_type_id=2) → 입고불량 카테고리의 '외관 불량' 항목 +-- UPDATE daily_work_reports SET error_type_id = 10 WHERE error_type_id = 2; + +-- 예시: 입고지연(error_type_id=3) → 자재누락 카테고리의 '배관 자재 미입고' 항목 +-- UPDATE daily_work_reports SET error_type_id = 1 WHERE error_type_id = 3; + + +-- STEP 3: 매핑 검증 +-- ============================================ + +-- 업데이트 후 확인 +SELECT + dwr.error_type_id, + iri.item_name, + irc.category_name, + COUNT(*) as cnt +FROM daily_work_reports dwr +LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id +LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id +WHERE dwr.error_type_id IS NOT NULL +GROUP BY dwr.error_type_id, iri.item_name, irc.category_name; + + +-- STEP 4: error_types 테이블 삭제 (매핑 완료 후) +-- ============================================ + +-- 주의: 반드시 STEP 2, 3 완료 후 실행! +-- DROP TABLE IF EXISTS error_types; diff --git a/api.hyungi.net/index.js b/api.hyungi.net/index.js index 7e7661d..fded5b8 100644 --- a/api.hyungi.net/index.js +++ b/api.hyungi.net/index.js @@ -22,6 +22,222 @@ const PORT = process.env.PORT || 20005; // Trust proxy for accurate IP addresses app.set('trust proxy', 1); +// JSON body parser 미리 적용 (마이그레이션용) +app.use(express.json()); + +// 임시 분석 테스트 엔드포인트 - 실행 후 삭제! +app.get('/api/test-analysis', async (req, res) => { + try { + const { getDb } = require('./dbPool'); + const db = await getDb(); + + // 수정된 COALESCE 로직 테스트 (tasks 우선) + const [results] = await db.query(` + SELECT + dwr.id, + w.worker_name, + dwr.report_date, + dwr.work_type_id as original_work_type_id, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN t.work_type_id ELSE NULL END, + wt.id + ) as resolved_work_type_id, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN wt2.name ELSE NULL END, + wt.name + ) as work_type_name, + t.task_name, + wt.name as direct_match_work_type, + wt2.name as task_work_type + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt2 ON t.work_type_id = wt2.id + WHERE w.worker_name LIKE '%조승민%' OR w.worker_name LIKE '%최광욱%' + ORDER BY dwr.report_date DESC + LIMIT 20 + `); + + res.json({ + success: true, + message: 'tasks 테이블 우선 조회 결과', + data: results.map(r => ({ + id: r.id, + worker: r.worker_name, + date: r.report_date, + original_id: r.original_work_type_id, + resolved_work_type: r.work_type_name, + task: r.task_name, + note: `원래 ID ${r.original_work_type_id} → ${r.work_type_name}` + })) + }); + + } catch (error) { + console.error('테스트 실패:', error); + res.status(500).json({ success: false, error: error.message }); + } +}); + +// 임시 진단 엔드포인트 - 실행 후 삭제! +app.get('/api/diagnose-work-type-id', async (req, res) => { + try { + const { getDb } = require('./dbPool'); + const db = await getDb(); + + // 1. 전체 작업보고서 현황 + const [totalStats] = await db.query(` + SELECT + COUNT(*) as total_reports, + COUNT(tbm_assignment_id) as tbm_reports, + COUNT(CASE WHEN tbm_assignment_id IS NULL THEN 1 END) as non_tbm_reports + FROM daily_work_reports + `); + + // 2. work_type_id 값 분포 (상위 20개) + const [workTypeDistribution] = await db.query(` + SELECT + dwr.work_type_id, + COUNT(*) as count, + wt.name as if_work_type, + t.task_name as if_task, + wt2.name as task_work_type + FROM daily_work_reports dwr + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt2 ON t.work_type_id = wt2.id + GROUP BY dwr.work_type_id + ORDER BY count DESC + LIMIT 20 + `); + + // 3. 특정 작업자 데이터 확인 (조승민, 최광욱) + const [workerSamples] = await db.query(` + SELECT + dwr.id, + w.worker_name, + dwr.work_type_id, + dwr.tbm_assignment_id, + wt.name as direct_work_type, + t.task_name, + wt2.name as task_work_type, + dwr.report_date + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt2 ON t.work_type_id = wt2.id + WHERE w.worker_name LIKE '%조승민%' OR w.worker_name LIKE '%최광욱%' + ORDER BY dwr.report_date DESC + LIMIT 20 + `); + + res.json({ + success: true, + data: { + total_stats: totalStats[0], + work_type_distribution: workTypeDistribution, + worker_samples: workerSamples + } + }); + + } catch (error) { + console.error('진단 실패:', error); + res.status(500).json({ success: false, error: error.message }); + } +}); + +// 임시 마이그레이션 엔드포인트 (인증 없이 실행) - 실행 후 삭제! +app.post('/api/migrate-work-type-id', async (req, res) => { + try { + const { getDb } = require('./dbPool'); + const db = await getDb(); + + console.log('🔄 TBM 기반 작업보고서 work_type_id 수정 시작...'); + + // 1. 수정 대상 확인 + const [checkResult] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id as current_work_type_id, + ta.task_id as correct_task_id, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + INNER JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + ORDER BY dwr.report_date DESC + `); + + console.log('📊 수정 대상:', checkResult.length, '개 레코드'); + + if (checkResult.length === 0) { + return res.json({ + success: true, + message: '수정할 데이터가 없습니다.', + data: { affected_rows: 0 } + }); + } + + // 2. 업데이트 실행 + const [updateResult] = await db.query(` + UPDATE daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + SET dwr.work_type_id = ta.task_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + `); + + console.log('✅ 업데이트 완료:', updateResult.affectedRows, '개 레코드 수정됨'); + + // 3. 수정 후 확인 + const [samples] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id, + t.task_name, + wt.name as work_type_name, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + ORDER BY dwr.report_date DESC + LIMIT 10 + `); + + res.json({ + success: true, + message: updateResult.affectedRows + '개 레코드가 수정되었습니다.', + data: { + affected_rows: updateResult.affectedRows, + before_count: checkResult.length, + samples: samples.map(s => ({ + id: s.id, + worker: s.worker_name, + date: s.report_date, + task: s.task_name, + work_type: s.work_type_name + })) + } + }); + + } catch (error) { + console.error('마이그레이션 실패:', error); + res.status(500).json({ + success: false, + error: '마이그레이션 실패: ' + error.message + }); + } +}); + // 미들웨어 설정 setupMiddlewares(app); diff --git a/api.hyungi.net/models/WorkAnalysis.js b/api.hyungi.net/models/WorkAnalysis.js index f39e5b1..8513ace 100644 --- a/api.hyungi.net/models/WorkAnalysis.js +++ b/api.hyungi.net/models/WorkAnalysis.js @@ -182,8 +182,10 @@ class WorkAnalysis { // 최근 작업 현황 async getRecentWork(startDate, endDate, limit = 50) { - // work_type_id가 work_types에 있으면 직접 사용, - // 없으면 tasks 테이블을 통해 해당 task의 work_type_id로 공정(대분류) 조회 + // work_type_id 컬럼에는 task_id가 저장됨 (tasks 테이블 우선 조회) + // task_id로 매칭되면 해당 task의 work_type_id로 공정(대분류) 조회 + // 매칭 안 되면 직접 work_types 테이블 조회 (레거시 데이터 호환) + // error_type_id는 issue_report_items 테이블 참조 (issue-categories.html에서 관리) const query = ` SELECT dwr.id, @@ -194,13 +196,20 @@ class WorkAnalysis { p.project_name, p.job_no, dwr.work_type_id as original_work_type_id, - COALESCE(wt.id, t.work_type_id) as work_type_id, - COALESCE(wt.name, wt2.name) as work_type_name, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN t.work_type_id ELSE NULL END, + wt.id + ) as work_type_id, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN wt2.name ELSE NULL END, + wt.name + ) as work_type_name, t.task_name as task_name, dwr.work_status_id, wst.name as work_status_name, dwr.error_type_id, - et.name as error_type_name, + iri.item_name as error_type_name, + irc.category_name as error_category_name, dwr.work_hours, dwr.created_by, u.name as created_by_name, @@ -212,7 +221,8 @@ class WorkAnalysis { LEFT JOIN tasks t ON dwr.work_type_id = t.task_id LEFT JOIN work_types wt2 ON t.work_type_id = wt2.id LEFT JOIN work_status_types wst ON dwr.work_status_id = wst.id - LEFT JOIN error_types et ON dwr.error_type_id = et.id + LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id + LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id LEFT JOIN users u ON dwr.created_by = u.user_id WHERE dwr.report_date BETWEEN ? AND ? ORDER BY dwr.created_at DESC @@ -236,6 +246,7 @@ class WorkAnalysis { work_status_name: row.work_status_name || '정상', error_type_id: row.error_type_id, error_type_name: row.error_type_name || null, + error_category_name: row.error_category_name || null, work_hours: parseFloat(row.work_hours) || 0, created_by: row.created_by, created_by_name: row.created_by_name || '미지정', @@ -286,20 +297,23 @@ class WorkAnalysis { } // 에러 분석 + // error_type_id는 issue_report_items 테이블 참조 (issue-categories.html에서 관리) async getErrorAnalysis(startDate, endDate) { const query = ` - SELECT + SELECT dwr.error_type_id, - et.name as error_type_name, + iri.item_name as error_type_name, + irc.category_name as error_category_name, COUNT(*) as error_count, SUM(dwr.work_hours) as total_hours, COUNT(DISTINCT dwr.worker_id) as affected_workers, COUNT(DISTINCT dwr.project_id) as affected_projects FROM daily_work_reports dwr - LEFT JOIN error_types et ON dwr.error_type_id = et.id + LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id + LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id WHERE dwr.report_date BETWEEN ? AND ? AND dwr.work_status_id = 2 - GROUP BY dwr.error_type_id, et.name + GROUP BY dwr.error_type_id, iri.item_name, irc.category_name ORDER BY error_count DESC `; @@ -308,6 +322,7 @@ class WorkAnalysis { return results.map(row => ({ error_type_id: row.error_type_id, error_type_name: row.error_type_name || `에러유형 ${row.error_type_id}`, + error_category_name: row.error_category_name || null, errorCount: parseInt(row.error_count) || 0, totalHours: parseFloat(row.total_hours) || 0, affectedworkers: parseInt(row.affected_workers) || 0, @@ -436,14 +451,23 @@ class WorkAnalysis { } // 프로젝트별-작업별 시간 분석용 데이터 조회 (공정/대분류 기준) async getProjectWorkTypeRawData(startDate, endDate) { - // work_type_id가 실제로 task_id인 경우 해당 task의 work_type_id로 공정 조회 + // work_type_id 컬럼에는 task_id가 저장됨 (tasks 테이블 우선 조회) + // task_id로 매칭되면 해당 task의 work_type_id로 공정 조회 + // 매칭 안 되면 직접 work_types 조회 (레거시 데이터 호환) const query = ` SELECT COALESCE(p.project_id, dwr.project_id) as project_id, COALESCE(p.project_name, CONCAT('프로젝트 ', dwr.project_id)) as project_name, COALESCE(p.job_no, 'N/A') as job_no, - COALESCE(wt.id, t.work_type_id) as work_type_id, - COALESCE(wt.name, wt2.name, CONCAT('작업유형 ', dwr.work_type_id)) as work_type_name, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN t.work_type_id ELSE NULL END, + wt.id + ) as work_type_id, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN wt2.name ELSE NULL END, + wt.name, + CONCAT('작업유형 ', dwr.work_type_id) + ) as work_type_name, -- 총 시간 SUM(dwr.work_hours) as total_hours, @@ -472,8 +496,14 @@ class WorkAnalysis { LEFT JOIN work_types wt2 ON t.work_type_id = wt2.id WHERE dwr.report_date BETWEEN ? AND ? GROUP BY dwr.project_id, p.project_name, p.job_no, - COALESCE(wt.id, t.work_type_id), - COALESCE(wt.name, wt2.name) + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN t.work_type_id ELSE NULL END, + wt.id + ), + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN wt2.name ELSE NULL END, + wt.name + ) ORDER BY p.project_name, work_type_name `; diff --git a/api.hyungi.net/models/attendanceModel.js b/api.hyungi.net/models/attendanceModel.js index 3e6217b..a14c411 100644 --- a/api.hyungi.net/models/attendanceModel.js +++ b/api.hyungi.net/models/attendanceModel.js @@ -432,21 +432,23 @@ class AttendanceModel { static async getMonthlyAttendanceStats(year, month, workerId = null) { const db = await getDb(); + // work_attendance_types: 1=NORMAL, 2=LATE, 3=EARLY_LEAVE, 4=ABSENT, 5=VACATION + // vacation_types: 1=ANNUAL(연차), 2=HALF_ANNUAL(반차), 3=SICK(병가), 4=SPECIAL(경조사) let query = ` - SELECT + SELECT w.worker_id, w.worker_name, - COUNT(CASE WHEN dar.status = 'complete' THEN 1 END) as regular_days, - COUNT(CASE WHEN dar.status = 'overtime' THEN 1 END) as overtime_days, - COUNT(CASE WHEN dar.status = 'vacation' THEN 1 END) as vacation_days, - COUNT(CASE WHEN dar.status = 'partial' THEN 1 END) as partial_days, - COUNT(CASE WHEN dar.status = 'incomplete' THEN 1 END) as incomplete_days, - SUM(dar.total_work_hours) as total_work_hours, - AVG(dar.total_work_hours) as avg_work_hours + COUNT(CASE WHEN dar.attendance_type_id = 1 AND (dar.is_overtime_approved = 0 OR dar.is_overtime_approved IS NULL) THEN 1 END) as regular_days, + COUNT(CASE WHEN dar.is_overtime_approved = 1 OR dar.total_work_hours > 8 THEN 1 END) as overtime_days, + COUNT(CASE WHEN dar.attendance_type_id = 5 AND dar.vacation_type_id = 1 THEN 1 END) as vacation_days, + COUNT(CASE WHEN dar.vacation_type_id = 2 THEN 1 END) as partial_days, + COUNT(CASE WHEN dar.attendance_type_id = 4 THEN 1 END) as incomplete_days, + COALESCE(SUM(dar.total_work_hours), 0) as total_work_hours, + COALESCE(AVG(dar.total_work_hours), 0) as avg_work_hours FROM workers w LEFT JOIN daily_attendance_records dar ON w.worker_id = dar.worker_id AND YEAR(dar.record_date) = ? AND MONTH(dar.record_date) = ? - WHERE w.is_active = TRUE + WHERE w.employment_status = 'employed' `; const params = [year, month]; diff --git a/api.hyungi.net/models/dailyWorkReportModel.js b/api.hyungi.net/models/dailyWorkReportModel.js index e087153..8cf266a 100644 --- a/api.hyungi.net/models/dailyWorkReportModel.js +++ b/api.hyungi.net/models/dailyWorkReportModel.js @@ -29,7 +29,21 @@ const getAllWorkStatusTypes = async (callback) => { const getAllErrorTypes = async (callback) => { try { const db = await getDb(); - const [rows] = await db.query('SELECT id, name, description, severity, solution_guide, created_at, updated_at FROM error_types ORDER BY name ASC'); + // issue_report_items에서 부적합(nonconformity) 타입의 항목만 조회 + const [rows] = await db.query(` + SELECT + iri.item_id as id, + iri.item_name as name, + iri.description, + iri.severity, + irc.category_name as category, + iri.display_order, + iri.created_at + FROM issue_report_items iri + INNER JOIN issue_report_categories irc ON iri.category_id = irc.category_id + WHERE irc.category_type = 'nonconformity' AND iri.is_active = TRUE + ORDER BY irc.display_order, iri.display_order, iri.item_name ASC + `); callback(null, rows); } catch (err) { console.error('에러 유형 조회 오류:', err); @@ -301,9 +315,10 @@ const removeSpecificEntry = async (entry_id, deleted_by, callback) => { /** * 공통 SELECT 쿼리 부분 + * error_type_id는 issue_report_items 테이블 참조 (issue-categories.html에서 관리) */ const getSelectQuery = () => ` - SELECT + SELECT dwr.id, dwr.report_date, dwr.worker_id, @@ -317,7 +332,8 @@ const getSelectQuery = () => ` p.project_name, wt.name as work_type_name, wst.name as work_status_name, - et.name as error_type_name, + iri.item_name as error_type_name, + irc.category_name as error_category_name, u.name as created_by_name, dwr.created_at, dwr.updated_at @@ -326,7 +342,8 @@ const getSelectQuery = () => ` LEFT JOIN projects p ON dwr.project_id = p.project_id LEFT JOIN work_types wt ON dwr.work_type_id = wt.id LEFT JOIN work_status_types wst ON dwr.work_status_id = wst.id - LEFT JOIN error_types et ON dwr.error_type_id = et.id + LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id + LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id LEFT JOIN users u ON dwr.created_by = u.user_id `; @@ -873,9 +890,11 @@ const createReportEntries = async ({ report_date, worker_id, entries }) => { /** * [V2] 공통 SELECT 쿼리 (새로운 스키마 기준) + * 주의: work_type_id 컬럼에는 실제로 task_id가 저장됨 + * error_type_id는 issue_report_items 테이블 참조 (issue-categories.html에서 관리) */ const getSelectQueryV2 = () => ` - SELECT + SELECT dwr.id, dwr.report_date, dwr.worker_id, @@ -887,17 +906,21 @@ const getSelectQueryV2 = () => ` dwr.created_by, w.worker_name, p.project_name, + t.task_name, wt.name as work_type_name, wst.name as work_status_name, - et.name as error_type_name, + iri.item_name as error_type_name, + irc.category_name as error_category_name, u.name as created_by_name, dwr.created_at FROM daily_work_reports dwr LEFT JOIN workers w ON dwr.worker_id = w.worker_id LEFT JOIN projects p ON dwr.project_id = p.project_id - LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id LEFT JOIN work_status_types wst ON dwr.work_status_id = wst.id - LEFT JOIN error_types et ON dwr.error_type_id = et.id + LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id + LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id LEFT JOIN users u ON dwr.created_by = u.user_id `; @@ -967,9 +990,9 @@ const updateReportById = async (reportId, updateData) => { } } - // updated_by_user_id는 항상 업데이트 + // updated_by는 항상 업데이트 if (updateData.updated_by_user_id) { - setClauses.push('updated_by_user_id = ?'); + setClauses.push('updated_by = ?'); queryParams.push(updateData.updated_by_user_id); } diff --git a/api.hyungi.net/models/taskModel.js b/api.hyungi.net/models/taskModel.js index 45fd368..432d431 100644 --- a/api.hyungi.net/models/taskModel.js +++ b/api.hyungi.net/models/taskModel.js @@ -58,7 +58,7 @@ const getActiveTasks = async () => { }; /** - * 공정별 작업 목록 조회 + * 공정별 작업 목록 조회 (활성 작업만) */ const getTasksByWorkType = async (workTypeId) => { const db = await getDb(); @@ -68,8 +68,8 @@ const getTasksByWorkType = async (workTypeId) => { wt.name as work_type_name, wt.category FROM tasks t LEFT JOIN work_types wt ON t.work_type_id = wt.id - WHERE t.work_type_id = ? - ORDER BY t.task_id DESC`, + WHERE t.work_type_id = ? AND t.is_active = 1 + ORDER BY t.task_name ASC`, [workTypeId] ); return rows; diff --git a/api.hyungi.net/models/vacationBalanceModel.js b/api.hyungi.net/models/vacationBalanceModel.js index d2dc681..d342417 100644 --- a/api.hyungi.net/models/vacationBalanceModel.js +++ b/api.hyungi.net/models/vacationBalanceModel.js @@ -260,6 +260,118 @@ const vacationBalanceModel = { return Math.min(15 + additionalDays, 25); }, + /** + * 휴가 사용 시 우선순위에 따라 잔액에서 차감 (Promise 버전) + * - 일일 근태 기록 저장 시 호출 + * @param {number} workerId - 작업자 ID + * @param {number} year - 연도 + * @param {number} daysToDeduct - 차감할 일수 (1, 0.5, 0.25) + * @returns {Promise} - 차감 결과 + */ + async deductByPriority(workerId, year, daysToDeduct) { + const db = await getDb(); + + // 우선순위순으로 잔여 일수가 있는 잔액 조회 + const [balances] = await db.query(` + SELECT vbd.id, vbd.vacation_type_id, vbd.total_days, vbd.used_days, + (vbd.total_days - vbd.used_days) as remaining_days, + vt.type_code, vt.type_name, vt.priority + FROM vacation_balance_details vbd + INNER JOIN vacation_types vt ON vbd.vacation_type_id = vt.id + WHERE vbd.worker_id = ? AND vbd.year = ? + AND (vbd.total_days - vbd.used_days) > 0 + ORDER BY vt.priority ASC + `, [workerId, year]); + + if (balances.length === 0) { + // 잔액이 없어도 일단 기록은 저장 (경고만) + console.warn(`[VacationBalance] 작업자 ${workerId}의 ${year}년 휴가 잔액이 없습니다`); + return { success: false, message: '휴가 잔액이 없습니다', deducted: 0 }; + } + + let remaining = daysToDeduct; + const deductions = []; + + for (const balance of balances) { + if (remaining <= 0) break; + + const available = parseFloat(balance.remaining_days); + const toDeduct = Math.min(remaining, available); + + if (toDeduct > 0) { + await db.query(` + UPDATE vacation_balance_details + SET used_days = used_days + ?, updated_at = NOW() + WHERE id = ? + `, [toDeduct, balance.id]); + + deductions.push({ + balance_id: balance.id, + type_code: balance.type_code, + type_name: balance.type_name, + deducted: toDeduct + }); + + remaining -= toDeduct; + } + } + + console.log(`[VacationBalance] 작업자 ${workerId}: ${daysToDeduct}일 차감 완료`, deductions); + return { success: true, deductions, totalDeducted: daysToDeduct - remaining }; + }, + + /** + * 휴가 취소 시 우선순위 역순으로 복구 (Promise 버전) + * @param {number} workerId - 작업자 ID + * @param {number} year - 연도 + * @param {number} daysToRestore - 복구할 일수 + * @returns {Promise} - 복구 결과 + */ + async restoreByPriority(workerId, year, daysToRestore) { + const db = await getDb(); + + // 우선순위 역순으로 사용 일수가 있는 잔액 조회 (나중에 차감된 것부터 복구) + const [balances] = await db.query(` + SELECT vbd.id, vbd.vacation_type_id, vbd.used_days, + vt.type_code, vt.type_name, vt.priority + FROM vacation_balance_details vbd + INNER JOIN vacation_types vt ON vbd.vacation_type_id = vt.id + WHERE vbd.worker_id = ? AND vbd.year = ? + AND vbd.used_days > 0 + ORDER BY vt.priority DESC + `, [workerId, year]); + + let remaining = daysToRestore; + const restorations = []; + + for (const balance of balances) { + if (remaining <= 0) break; + + const usedDays = parseFloat(balance.used_days); + const toRestore = Math.min(remaining, usedDays); + + if (toRestore > 0) { + await db.query(` + UPDATE vacation_balance_details + SET used_days = used_days - ?, updated_at = NOW() + WHERE id = ? + `, [toRestore, balance.id]); + + restorations.push({ + balance_id: balance.id, + type_code: balance.type_code, + type_name: balance.type_name, + restored: toRestore + }); + + remaining -= toRestore; + } + } + + console.log(`[VacationBalance] 작업자 ${workerId}: ${daysToRestore}일 복구 완료`, restorations); + return { success: true, restorations, totalRestored: daysToRestore - remaining }; + }, + /** * 특정 ID로 휴가 잔액 조회 */ diff --git a/api.hyungi.net/routes/attendanceRoutes.js b/api.hyungi.net/routes/attendanceRoutes.js index a5c7393..b93a7e4 100644 --- a/api.hyungi.net/routes/attendanceRoutes.js +++ b/api.hyungi.net/routes/attendanceRoutes.js @@ -12,6 +12,9 @@ router.get('/daily-status', AttendanceController.getDailyAttendanceStatus); // 일일 근태 기록 조회 router.get('/daily-records', AttendanceController.getDailyAttendanceRecords); +// 기간별 근태 기록 조회 (월별 조회용) +router.get('/records', AttendanceController.getAttendanceRecordsByRange); + // 근태 기록 생성/업데이트 router.post('/records', AttendanceController.upsertAttendanceRecord); router.put('/records', AttendanceController.upsertAttendanceRecord); diff --git a/api.hyungi.net/routes/authRoutes.js b/api.hyungi.net/routes/authRoutes.js index 5b7c563..46d7f8c 100644 --- a/api.hyungi.net/routes/authRoutes.js +++ b/api.hyungi.net/routes/authRoutes.js @@ -147,7 +147,7 @@ router.post('/refresh-token', async (req, res) => { // 사용자 정보 조회 const [users] = await connection.execute( - 'SELECT * FROM Users WHERE user_id = ? AND is_active = TRUE', + 'SELECT * FROM users WHERE user_id = ? AND is_active = TRUE', [decoded.user_id] ); @@ -229,7 +229,7 @@ router.post('/change-password', verifyToken, async (req, res) => { // 현재 사용자의 비밀번호 조회 const [users] = await connection.execute( - 'SELECT password FROM Users WHERE user_id = ?', + 'SELECT password FROM users WHERE user_id = ?', [userId] ); @@ -339,7 +339,7 @@ router.post('/admin/change-password', verifyToken, async (req, res) => { // 대상 사용자 확인 const [users] = await connection.execute( - 'SELECT username, name FROM Users WHERE user_id = ?', + 'SELECT username, name FROM users WHERE user_id = ?', [userId] ); @@ -456,7 +456,7 @@ router.get('/me', verifyToken, async (req, res) => { connection = await mysql.createConnection(dbConfig); const [rows] = await connection.execute( - 'SELECT user_id, username, name, email, access_level, worker_id, last_login_at, created_at FROM Users WHERE user_id = ?', + 'SELECT user_id, username, name, email, access_level, worker_id, last_login_at, created_at FROM users WHERE user_id = ?', [userId] ); @@ -522,7 +522,7 @@ router.post('/register', verifyToken, async (req, res) => { // 사용자명 중복 체크 const [existing] = await connection.execute( - 'SELECT user_id FROM Users WHERE username = ?', + 'SELECT user_id FROM users WHERE username = ?', [username] ); @@ -536,7 +536,7 @@ router.post('/register', verifyToken, async (req, res) => { // 이메일 중복 체크 (이메일이 제공된 경우) if (email) { const [existingEmail] = await connection.execute( - 'SELECT user_id FROM Users WHERE email = ?', + 'SELECT user_id FROM users WHERE email = ?', [email] ); @@ -700,7 +700,7 @@ router.put('/users/:id', verifyToken, async (req, res) => { // 사용자 존재 확인 const [existing] = await connection.execute( - 'SELECT user_id, username FROM Users WHERE user_id = ?', + 'SELECT user_id, username FROM users WHERE user_id = ?', [userId] ); @@ -724,7 +724,7 @@ router.put('/users/:id', verifyToken, async (req, res) => { // 이메일 중복 체크 if (email) { const [emailCheck] = await connection.execute( - 'SELECT user_id FROM Users WHERE email = ? AND user_id != ?', + 'SELECT user_id FROM users WHERE email = ? AND user_id != ?', [email, userId] ); @@ -794,7 +794,7 @@ router.put('/users/:id', verifyToken, async (req, res) => { // 업데이트된 사용자 정보 조회 const [updated] = await connection.execute( - 'SELECT user_id, username, name, email, access_level, worker_id, is_active FROM Users WHERE user_id = ?', + 'SELECT user_id, username, name, email, access_level, worker_id, is_active FROM users WHERE user_id = ?', [userId] ); diff --git a/api.hyungi.net/routes/healthRoutes.js b/api.hyungi.net/routes/healthRoutes.js index 984d676..25f74b2 100644 --- a/api.hyungi.net/routes/healthRoutes.js +++ b/api.hyungi.net/routes/healthRoutes.js @@ -25,4 +25,99 @@ router.get('/detail', (req, res) => { }); }); +// 임시 마이그레이션 엔드포인트 - TBM work_type_id 수정 +// 실행 후 이 코드를 삭제하세요! +router.post('/migrate-work-type-id', async (req, res) => { + try { + const { getDb } = require('../dbPool'); + const db = await getDb(); + + console.log('🔄 TBM 기반 작업보고서 work_type_id 수정 시작...'); + + // 1. 수정 대상 확인 + const [checkResult] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id as current_work_type_id, + ta.task_id as correct_task_id, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + INNER JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + ORDER BY dwr.report_date DESC + `); + + console.log(`📊 수정 대상: ${checkResult.length}개 레코드`); + + if (checkResult.length === 0) { + return res.json({ + success: true, + message: '수정할 데이터가 없습니다.', + data: { affected_rows: 0 } + }); + } + + // 수정 전 샘플 로깅 + console.log('수정 전 샘플:', checkResult.slice(0, 5)); + + // 2. 업데이트 실행 + const [updateResult] = await db.query(` + UPDATE daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + SET dwr.work_type_id = ta.task_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + `); + + console.log(`✅ 업데이트 완료: ${updateResult.affectedRows}개 레코드 수정됨`); + + // 3. 수정 후 확인 + const [samples] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id, + t.task_name, + wt.name as work_type_name, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + ORDER BY dwr.report_date DESC + LIMIT 10 + `); + + res.json({ + success: true, + message: `${updateResult.affectedRows}개 레코드가 수정되었습니다.`, + data: { + affected_rows: updateResult.affectedRows, + before_count: checkResult.length, + samples: samples.map(s => ({ + id: s.id, + worker: s.worker_name, + date: s.report_date, + task: s.task_name, + work_type: s.work_type_name + })) + } + }); + + } catch (error) { + console.error('마이그레이션 실패:', error); + res.status(500).json({ + success: false, + error: '마이그레이션 실패: ' + error.message + }); + } +}); + module.exports = router; \ No newline at end of file diff --git a/api.hyungi.net/routes/patrolRoutes.js b/api.hyungi.net/routes/patrolRoutes.js index 9b5c0b5..4368f44 100644 --- a/api.hyungi.net/routes/patrolRoutes.js +++ b/api.hyungi.net/routes/patrolRoutes.js @@ -3,8 +3,35 @@ const express = require('express'); const router = express.Router(); +const multer = require('multer'); +const path = require('path'); const patrolController = require('../controllers/patrolController'); +// Multer 설정 - 구역 현황 사진 업로드 +const storage = multer.diskStorage({ + destination: (req, file, cb) => { + cb(null, path.join(__dirname, '../uploads')); + }, + filename: (req, file, cb) => { + const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9); + const ext = path.extname(file.originalname).toLowerCase(); + cb(null, `zone-item-${uniqueSuffix}${ext}`); + } +}); + +const upload = multer({ + storage, + limits: { fileSize: 10 * 1024 * 1024 }, // 10MB + fileFilter: (req, file, cb) => { + const allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp']; + if (allowedTypes.includes(file.mimetype)) { + cb(null, true); + } else { + cb(new Error('이미지 파일만 업로드 가능합니다.'), false); + } + } +}); + // ==================== 순회점검 세션 ==================== // 세션 목록 조회 @@ -70,4 +97,30 @@ router.get('/item-types', patrolController.getItemTypes); // 오늘 순회점검 현황 router.get('/today-status', patrolController.getTodayStatus); +// ==================== 작업장 상세 정보 ==================== + +// 작업장 상세 정보 조회 (시설물, 안전신고, 부적합, 출입, TBM 통합) +// GET /patrol/workplaces/:workplaceId/detail?date=2026-02-05 +router.get('/workplaces/:workplaceId/detail', patrolController.getWorkplaceDetail); + +// ==================== 구역 내 등록 물품/시설물 ==================== + +// 구역 내 등록된 물품/시설물 목록 조회 +router.get('/workplaces/:workplaceId/zone-items', patrolController.getZoneItems); + +// 구역 내 물품/시설물 등록 +router.post('/workplaces/:workplaceId/zone-items', patrolController.createZoneItem); + +// 구역 내 물품/시설물 수정 +router.put('/zone-items/:itemId', patrolController.updateZoneItem); + +// 구역 내 물품/시설물 삭제 +router.delete('/zone-items/:itemId', patrolController.deleteZoneItem); + +// 구역 현황 사진 업로드 +router.post('/zone-items/photos', upload.single('photo'), patrolController.uploadZoneItemPhoto); + +// 구역 현황 이력 조회 +router.get('/zone-items/:itemId/history', patrolController.getZoneItemHistory); + module.exports = router; diff --git a/api.hyungi.net/routes/systemRoutes.js b/api.hyungi.net/routes/systemRoutes.js index 32cd528..ff5cd22 100644 --- a/api.hyungi.net/routes/systemRoutes.js +++ b/api.hyungi.net/routes/systemRoutes.js @@ -210,6 +210,98 @@ router.get('/logs/password-changes', async (req, res) => { } }); +/** + * POST /api/system/migrations/fix-work-type-id + * TBM 기반 작업보고서의 work_type_id를 task_id로 수정 + */ +router.post('/migrations/fix-work-type-id', async (req, res) => { + try { + const { getDb } = require('../dbPool'); + const db = await getDb(); + + console.log('🔄 TBM 기반 작업보고서 work_type_id 수정 시작...'); + + // 1. 수정 대상 확인 + const [checkResult] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id as current_work_type_id, + ta.task_id as correct_task_id, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + INNER JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + ORDER BY dwr.report_date DESC + `); + + if (checkResult.length === 0) { + return res.json({ + success: true, + message: '수정할 데이터가 없습니다.', + data: { affected_rows: 0, samples: [] } + }); + } + + // 2. 업데이트 실행 + const [updateResult] = await db.query(` + UPDATE daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + SET dwr.work_type_id = ta.task_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + `); + + console.log(`✅ 업데이트 완료: ${updateResult.affectedRows}개 레코드 수정됨`); + + // 3. 수정된 샘플 조회 + const [samples] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id, + t.task_name, + wt.name as work_type_name, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + ORDER BY dwr.report_date DESC + LIMIT 10 + `); + + res.json({ + success: true, + message: `${updateResult.affectedRows}개 레코드가 수정되었습니다.`, + data: { + affected_rows: updateResult.affectedRows, + before_count: checkResult.length, + samples: samples.map(s => ({ + id: s.id, + worker: s.worker_name, + date: s.report_date, + task: s.task_name, + work_type: s.work_type_name + })) + } + }); + + } catch (error) { + console.error('마이그레이션 실패:', error); + res.status(500).json({ + success: false, + error: '마이그레이션 실패: ' + error.message + }); + } +}); + /** * GET /api/system/logs/activity * 활동 로그 조회 (activity_logs 테이블이 있는 경우) diff --git a/api.hyungi.net/routes/vacationBalanceRoutes.js b/api.hyungi.net/routes/vacationBalanceRoutes.js index c2ab2b7..e44872f 100644 --- a/api.hyungi.net/routes/vacationBalanceRoutes.js +++ b/api.hyungi.net/routes/vacationBalanceRoutes.js @@ -22,6 +22,9 @@ router.post('/auto-calculate', vacationBalanceController.autoCalculateAndCreate) // 휴가 잔액 생성 (관리자만) router.post('/', vacationBalanceController.createBalance); +// 휴가 잔액 일괄 저장 (upsert) +router.post('/bulk-upsert', vacationBalanceController.bulkUpsert); + // 휴가 잔액 수정 (관리자만) router.put('/:id', vacationBalanceController.updateBalance); diff --git a/api.hyungi.net/services/attendanceService.js b/api.hyungi.net/services/attendanceService.js index 5422113..6d6a182 100644 --- a/api.hyungi.net/services/attendanceService.js +++ b/api.hyungi.net/services/attendanceService.js @@ -8,9 +8,19 @@ */ const AttendanceModel = require('../models/attendanceModel'); +const vacationBalanceModel = require('../models/vacationBalanceModel'); const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); const logger = require('../utils/logger'); +/** + * 휴가 사용 유형 ID를 차감 일수로 변환 + * vacation_type_id: 1=연차(1일), 2=반차(0.5일), 3=반반차(0.25일) + */ +const getVacationDays = (vacationTypeId) => { + const daysMap = { 1: 1, 2: 0.5, 3: 0.25 }; + return daysMap[vacationTypeId] || 0; +}; + /** * 일일 근태 현황 조회 */ @@ -63,8 +73,32 @@ const getDailyAttendanceRecordsService = async (date, workerId = null) => { } }; +/** + * 기간별 근태 기록 조회 (월별 조회용) + */ +const getAttendanceRecordsByRangeService = async (startDate, endDate, workerId = null) => { + if (!startDate || !endDate) { + throw new ValidationError('시작 날짜와 종료 날짜가 필요합니다', { + required: ['start_date', 'end_date'], + received: { startDate, endDate } + }); + } + + logger.info('기간별 근태 기록 조회 요청', { startDate, endDate, workerId }); + + try { + const records = await AttendanceModel.getDailyRecords(startDate, endDate, workerId); + logger.info('기간별 근태 기록 조회 성공', { startDate, endDate, count: records.length }); + return records; + } catch (error) { + logger.error('기간별 근태 기록 조회 실패', { startDate, endDate, error: error.message }); + throw new DatabaseError('근태 기록 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + /** * 근태 기록 생성/업데이트 + * - 휴가 기록 시 vacation_balance_details의 used_days 자동 연동 */ const upsertAttendanceRecordService = async (recordData) => { const { @@ -88,9 +122,15 @@ const upsertAttendanceRecordService = async (recordData) => { }); } - logger.info('근태 기록 저장 요청', { record_date, worker_id }); + logger.info('근태 기록 저장 요청', { record_date, worker_id, vacation_type_id }); try { + // 1. 기존 기록 조회 (휴가 연동을 위해) + const existingRecords = await AttendanceModel.getDailyAttendanceRecords(record_date, worker_id); + const existingRecord = existingRecords.find(r => r.worker_id === worker_id); + const previousVacationTypeId = existingRecord?.vacation_type_id || null; + + // 2. 근태 기록 저장 const result = await AttendanceModel.upsertAttendanceRecord({ record_date, worker_id, @@ -101,6 +141,26 @@ const upsertAttendanceRecordService = async (recordData) => { created_by }); + // 3. 휴가 잔액 연동 (vacation_balance_details.used_days 업데이트) + const year = new Date(record_date).getFullYear(); + const previousDays = getVacationDays(previousVacationTypeId); + const newDays = getVacationDays(vacation_type_id); + + // 이전 휴가가 있었고 변경된 경우 → 복구 후 차감 + if (previousDays !== newDays) { + // 이전 휴가 복구 + if (previousDays > 0) { + await vacationBalanceModel.restoreByPriority(worker_id, year, previousDays); + logger.info('휴가 잔액 복구', { worker_id, year, restored: previousDays }); + } + + // 새 휴가 차감 + if (newDays > 0) { + await vacationBalanceModel.deductByPriority(worker_id, year, newDays); + logger.info('휴가 잔액 차감', { worker_id, year, deducted: newDays }); + } + } + logger.info('근태 기록 저장 성공', { record_date, worker_id }); return result; } catch (error) { @@ -321,6 +381,7 @@ const saveCheckinsService = async (date, checkins) => { module.exports = { getDailyAttendanceStatusService, getDailyAttendanceRecordsService, + getAttendanceRecordsByRangeService, upsertAttendanceRecordService, processVacationService, approveOvertimeService, diff --git a/deploy/README.md b/deploy/README.md new file mode 100644 index 0000000..cbc692a --- /dev/null +++ b/deploy/README.md @@ -0,0 +1,137 @@ +# TK-FB-Project Synology NAS 배포 가이드 + +## 사전 준비 + +### 1. Synology NAS 요구사항 +- DSM 7.0 이상 +- Docker 패키지 설치 +- 최소 4GB RAM 권장 +- 10GB 이상 저장공간 + +### 2. Cloudflare Tunnel 설정 + +1. **Cloudflare 대시보드 접속** + - https://dash.cloudflare.com 로그인 + - Zero Trust > Access > Tunnels 이동 + +2. **터널 생성** + - "Create a tunnel" 클릭 + - 이름 입력 (예: tkfb-nas) + - 환경: Docker 선택 + - 표시되는 토큰을 `.env` 파일의 `CLOUDFLARE_TUNNEL_TOKEN`에 입력 + +3. **Public hostname 설정** + - 터널 설정에서 "Public Hostnames" 추가 + + | Subdomain | Domain | Service | + |-----------|--------|---------| + | tkfb | yourdomain.com | http://web:80 | + | api.tkfb | yourdomain.com | http://api:3005 | + +## 배포 순서 + +### 1. 파일 전송 +Synology NAS의 docker 폴더에 다음 파일들을 업로드: + +``` +/volume1/docker/tkfb/ +├── docker-compose.synology.yml (→ docker-compose.yml로 이름 변경) +├── .env (→ .env.synology 복사 후 수정) +├── backup_YYYYMMDD_HHMMSS.sql +├── api.hyungi.net/ +├── web-ui/ +└── fastapi-bridge/ +``` + +### 2. 환경 변수 설정 +```bash +cd /volume1/docker/tkfb +cp .env.synology .env +# .env 파일 편집하여 비밀번호, 토큰 등 수정 +``` + +### 3. Docker Compose 실행 +```bash +# SSH로 NAS 접속 후 +cd /volume1/docker/tkfb + +# 이미지 빌드 및 시작 +docker-compose up -d --build + +# 로그 확인 +docker-compose logs -f +``` + +### 4. 데이터베이스 복원 +```bash +# DB 컨테이너가 시작된 후 (약 30초 대기) +docker exec -i tkfb_db mysql -u root -p'비밀번호' < backup_YYYYMMDD_HHMMSS.sql +``` + +## 포트 설정 + +| 서비스 | 내부포트 | 외부포트 | 설명 | +|--------|----------|----------|------| +| web | 80 | 80 | Web UI | +| api | 3005 | 3005 | Node.js API | +| fastapi | 8000 | 8000 | FastAPI Bridge | +| db | 3306 | 3306 | MariaDB | +| phpmyadmin | 80 | 8080 | DB 관리도구 | + +## Cloudflare Tunnel 사용 시 + +Cloudflare Tunnel을 사용하면 포트 포워딩 없이 외부 접속이 가능합니다: +- 방화벽 포트 개방 불필요 +- 자동 HTTPS 인증서 +- DDoS 보호 + +### web-ui의 API 주소 변경 + +`web-ui/js/config.js` 또는 관련 설정 파일에서 API URL을 변경: + +```javascript +// 로컬 테스트 +const API_URL = 'http://localhost:3005'; + +// Cloudflare Tunnel 사용 시 +const API_URL = 'https://api.tkfb.yourdomain.com'; +``` + +## 문제 해결 + +### 1. 컨테이너 상태 확인 +```bash +docker-compose ps +docker-compose logs api # API 로그 +docker-compose logs db # DB 로그 +``` + +### 2. 데이터베이스 연결 오류 +```bash +# DB 컨테이너 재시작 +docker-compose restart db + +# DB 상태 확인 +docker exec tkfb_db mysqladmin -u root -p ping +``` + +### 3. 권한 오류 +```bash +# 볼륨 권한 설정 +chmod -R 755 /volume1/docker/tkfb +chown -R 1000:1000 /volume1/docker/tkfb/api.hyungi.net/uploads +``` + +## 업데이트 + +```bash +cd /volume1/docker/tkfb + +# 최신 코드 다운로드 후 +docker-compose down +docker-compose up -d --build + +# 캐시 포함 전체 재빌드 +docker-compose build --no-cache +docker-compose up -d +``` diff --git a/deploy/backup_20260206_085303.sql b/deploy/backup_20260206_085303.sql new file mode 100644 index 0000000..9e7094d --- /dev/null +++ b/deploy/backup_20260206_085303.sql @@ -0,0 +1,7407 @@ +-- MariaDB dump 10.19 Distrib 10.9.8-MariaDB, for debian-linux-gnu (aarch64) +-- +-- Host: localhost Database: hyungi +-- ------------------------------------------------------ +-- Server version 10.9.8-MariaDB-1:10.9.8+maria~ubu2204 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Current Database: `hyungi` +-- + +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `hyungi` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */; + +USE `hyungi`; + +-- +-- Table structure for table `CuttingPlan` +-- + +DROP TABLE IF EXISTS `CuttingPlan`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `CuttingPlan` ( + `cutting_plan_id` int(11) NOT NULL AUTO_INCREMENT, + `project_id` int(11) NOT NULL, + `drawing_name` varchar(255) NOT NULL, + `area_number` varchar(100) DEFAULT NULL, + `spool_number` varchar(255) DEFAULT NULL, + `length` decimal(10,2) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `spec_id` int(11) NOT NULL, + PRIMARY KEY (`cutting_plan_id`), + KEY `project_id` (`project_id`), + KEY `fk_cuttingplan_spec` (`spec_id`), + CONSTRAINT `CuttingPlan_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`), + CONSTRAINT `fk_cuttingplan_spec` FOREIGN KEY (`spec_id`) REFERENCES `PipeSpecs` (`spec_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `CuttingPlan` +-- + +LOCK TABLES `CuttingPlan` WRITE; +/*!40000 ALTER TABLE `CuttingPlan` DISABLE KEYS */; +/*!40000 ALTER TABLE `CuttingPlan` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `DailyIssueReports` +-- + +DROP TABLE IF EXISTS `DailyIssueReports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `DailyIssueReports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `issue_type_id` int(11) DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `start_time` time NOT NULL, + `end_time` time NOT NULL, + PRIMARY KEY (`id`), + KEY `worker_id` (`worker_id`), + KEY `fk_dird_project` (`project_id`), + KEY `fk_dird_issuetype` (`issue_type_id`), + CONSTRAINT `dailyissuereports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`), + CONSTRAINT `fk_dird_issuetype` FOREIGN KEY (`issue_type_id`) REFERENCES `IssueTypes` (`issue_type_id`), + CONSTRAINT `fk_dird_project` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `DailyIssueReports` +-- + +LOCK TABLES `DailyIssueReports` WRITE; +/*!40000 ALTER TABLE `DailyIssueReports` DISABLE KEYS */; +INSERT INTO `DailyIssueReports` VALUES +(1,'2025-06-02',1,7,5,NULL,'2025-06-02 05:54:35','10:00:00','11:30:00'), +(2,'2025-06-02',9,7,5,NULL,'2025-06-02 05:54:35','10:00:00','11:30:00'), +(3,'2025-06-02',7,7,5,NULL,'2025-06-02 05:54:35','10:00:00','11:30:00'), +(4,'2025-06-04',10,7,3,NULL,'2025-06-04 01:54:03','10:00:00','11:30:00'), +(5,'2025-06-04',6,7,3,NULL,'2025-06-04 01:54:03','10:00:00','11:30:00'), +(6,'2025-06-04',3,7,3,NULL,'2025-06-04 01:54:03','10:00:00','11:30:00'), +(7,'2025-06-11',10,7,6,NULL,'2025-06-10 08:56:09','07:30:00','08:00:00'), +(8,'2025-06-11',6,7,6,NULL,'2025-06-10 08:56:09','07:30:00','08:00:00'), +(9,'2025-06-11',3,7,6,NULL,'2025-06-10 08:56:09','07:30:00','08:00:00'); +/*!40000 ALTER TABLE `DailyIssueReports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `FactoryInfo` +-- + +DROP TABLE IF EXISTS `FactoryInfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `FactoryInfo` ( + `factory_id` int(11) NOT NULL AUTO_INCREMENT, + `factory_name` varchar(255) NOT NULL, + `address` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `map_image_url` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`factory_id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `FactoryInfo` +-- + +LOCK TABLES `FactoryInfo` WRITE; +/*!40000 ALTER TABLE `FactoryInfo` DISABLE KEYS */; +INSERT INTO `FactoryInfo` VALUES +(3,'제1공장 휴게공간 및 작업자 사물함','현대기아로 771-9','개인 보관함, 컨테이너(휴게공간), 화장실, 흡연장','/uploads/map_image-1746593523450.png','2025-05-07 04:52:03','2025-05-07 04:52:03'), +(4,'제 1공장 공구 및 용접봉 보관 구역','현대기아로 771-9','소모품, 공구류, 용접봉 보관 구역','/uploads/map_image-1746593674259.png','2025-05-07 04:53:59','2025-05-07 04:53:59'), +(5,'ee','ee','ee',NULL,'2025-06-03 22:13:23','2025-06-03 22:13:23'); +/*!40000 ALTER TABLE `FactoryInfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `IssueTypes` +-- + +DROP TABLE IF EXISTS `IssueTypes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `IssueTypes` ( + `issue_type_id` int(11) NOT NULL AUTO_INCREMENT, + `category` varchar(100) NOT NULL, + `subcategory` varchar(100) NOT NULL, + PRIMARY KEY (`issue_type_id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `IssueTypes` +-- + +LOCK TABLES `IssueTypes` WRITE; +/*!40000 ALTER TABLE `IssueTypes` DISABLE KEYS */; +INSERT INTO `IssueTypes` VALUES +(1,'구매팀','자재입고지연'), +(2,'구매팀','자재전달 미흡'), +(3,'품질','검사 내용 전달 미흡'), +(4,'품질','검사오류'), +(5,'설계','설계미스(치수)'), +(6,'설계','설계미스(작업불가)'); +/*!40000 ALTER TABLE `IssueTypes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `PipeSpecs` +-- + +DROP TABLE IF EXISTS `PipeSpecs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `PipeSpecs` ( + `spec_id` int(11) NOT NULL AUTO_INCREMENT, + `material` varchar(50) NOT NULL COMMENT '재질 (예: SS400, STS304)', + `diameter_in` varchar(10) NOT NULL COMMENT '직경 (inch, 예: 2")', + `schedule` varchar(50) NOT NULL COMMENT '스케줄 (예: STD, SCH10, SCH40)', + PRIMARY KEY (`spec_id`), + UNIQUE KEY `unique_spec` (`material`,`diameter_in`,`schedule`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `PipeSpecs` +-- + +LOCK TABLES `PipeSpecs` WRITE; +/*!40000 ALTER TABLE `PipeSpecs` DISABLE KEYS */; +INSERT INTO `PipeSpecs` VALUES +(2,'516-70N','1','SCH80'), +(1,'A106','3/4','SCH80'); +/*!40000 ALTER TABLE `PipeSpecs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Processes` +-- + +DROP TABLE IF EXISTS `Processes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Processes` ( + `process_id` int(11) NOT NULL AUTO_INCREMENT, + `project_id` int(11) NOT NULL, + `process_name` varchar(255) NOT NULL, + `process_start` date NOT NULL, + `process_end` date DEFAULT NULL, + `planned_worker_count` int(11) NOT NULL, + `process_description` text DEFAULT NULL, + `note` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`process_id`), + KEY `project_id` (`project_id`), + CONSTRAINT `Processes_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Processes` +-- + +LOCK TABLES `Processes` WRITE; +/*!40000 ALTER TABLE `Processes` DISABLE KEYS */; +/*!40000 ALTER TABLE `Processes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `WorkReports` +-- + +DROP TABLE IF EXISTS `WorkReports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `WorkReports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `morning_task_id` int(11) DEFAULT NULL, + `afternoon_task_id` int(11) DEFAULT NULL, + `overtime_hours` decimal(4,1) DEFAULT 0.0, + `overtime_task_id` int(11) DEFAULT NULL, + `work_details` text DEFAULT NULL, + `note` text DEFAULT NULL, + `memo` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `morning_project_id` int(11) DEFAULT NULL, + `afternoon_project_id` int(11) DEFAULT NULL, + `overtime_project_id` int(11) DEFAULT NULL, + `task_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `worker_id` (`worker_id`), + KEY `project_id` (`project_id`), + KEY `morning_task_id` (`morning_task_id`), + KEY `afternoon_task_id` (`afternoon_task_id`), + KEY `overtime_task_id` (`overtime_task_id`), + CONSTRAINT `WorkReports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`), + CONSTRAINT `WorkReports_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`), + CONSTRAINT `WorkReports_ibfk_3` FOREIGN KEY (`morning_task_id`) REFERENCES `tasks_old_backup` (`task_id`), + CONSTRAINT `WorkReports_ibfk_4` FOREIGN KEY (`afternoon_task_id`) REFERENCES `tasks_old_backup` (`task_id`), + CONSTRAINT `WorkReports_ibfk_5` FOREIGN KEY (`overtime_task_id`) REFERENCES `tasks_old_backup` (`task_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1766 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `WorkReports` +-- + +LOCK TABLES `WorkReports` WRITE; +/*!40000 ALTER TABLE `WorkReports` DISABLE KEYS */; +INSERT INTO `WorkReports` VALUES +(176,'2025-01-02',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(177,'2025-01-02',2,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(178,'2025-01-02',4,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(179,'2025-01-02',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(180,'2025-01-02',8,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(181,'2025-01-02',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(182,'2025-01-02',6,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(183,'2025-01-02',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,15), +(194,'2025-01-03',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(195,'2025-01-03',2,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(196,'2025-01-03',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,15), +(197,'2025-01-03',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(198,'2025-01-03',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,15), +(199,'2025-01-03',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(200,'2025-01-03',6,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(201,'2025-01-03',4,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(202,'2025-01-03',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(203,'2025-01-04',7,12,NULL,NULL,NULL,NULL,'휴일근무',NULL,NULL,'2025-04-16 05:43:25','2025-04-16 05:43:25',NULL,NULL,NULL,12), +(204,'2025-01-06',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:03','2025-04-16 05:44:03',NULL,NULL,NULL,12), +(205,'2025-01-06',3,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:03','2025-04-16 05:44:03',NULL,NULL,NULL,12), +(206,'2025-01-06',2,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(207,'2025-01-06',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(208,'2025-01-06',8,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(209,'2025-01-06',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(210,'2025-01-06',6,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(211,'2025-01-06',4,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(212,'2025-01-06',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(213,'2025-01-07',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,12), +(214,'2025-01-07',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,1), +(215,'2025-01-07',3,12,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,12), +(216,'2025-01-07',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,12), +(217,'2025-01-07',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,1), +(218,'2025-01-07',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,12), +(219,'2025-01-07',6,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,12), +(220,'2025-01-07',4,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:25','2025-04-16 05:45:25',NULL,NULL,NULL,12), +(221,'2025-01-07',5,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:25','2025-04-16 05:45:25',NULL,NULL,NULL,1), +(222,'2025-01-08',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(223,'2025-01-08',2,2,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,1), +(224,'2025-01-08',3,12,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(225,'2025-01-08',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(226,'2025-01-08',8,2,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,1), +(227,'2025-01-08',9,12,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(228,'2025-01-08',6,12,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(229,'2025-01-08',4,2,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,1), +(230,'2025-01-08',5,12,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(231,'2025-01-09',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(232,'2025-01-09',2,2,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,1), +(233,'2025-01-09',3,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(234,'2025-01-09',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(235,'2025-01-09',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,1), +(236,'2025-01-09',6,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(237,'2025-01-09',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,1), +(238,'2025-01-09',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(239,'2025-01-09',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(240,'2025-01-10',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:16','2025-04-16 05:49:16',NULL,NULL,NULL,13), +(241,'2025-01-10',2,2,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,1), +(242,'2025-01-10',3,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,13), +(243,'2025-01-10',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,13), +(244,'2025-01-10',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,1), +(245,'2025-01-10',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,13), +(246,'2025-01-10',6,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,15), +(247,'2025-01-10',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,1), +(248,'2025-01-10',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,13), +(249,'2025-01-13',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,13), +(250,'2025-01-13',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,1), +(251,'2025-01-13',3,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,1), +(252,'2025-01-13',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,13), +(253,'2025-01-13',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,1), +(254,'2025-01-13',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,13), +(255,'2025-01-13',6,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,1), +(256,'2025-01-13',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,15), +(257,'2025-01-13',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,13), +(258,'2025-01-14',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,13), +(259,'2025-01-14',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,1), +(260,'2025-01-14',3,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,1), +(261,'2025-01-14',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,13), +(262,'2025-01-14',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,1), +(263,'2025-01-14',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,13), +(265,'2025-01-14',4,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,13), +(266,'2025-01-14',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,13), +(267,'2025-01-14',6,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,1), +(268,'2025-01-15',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,1), +(269,'2025-01-15',2,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,14), +(270,'2025-01-15',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,1), +(271,'2025-01-15',7,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,13), +(272,'2025-01-15',8,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,14), +(273,'2025-01-15',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,1), +(275,'2025-01-15',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,1), +(276,'2025-01-15',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:38','2025-04-16 05:52:38',NULL,NULL,NULL,1), +(277,'2025-01-15',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:38','2025-04-16 05:52:38',NULL,NULL,NULL,1), +(278,'2025-01-16',1,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:54:11','2025-04-16 05:54:11',NULL,NULL,NULL,1), +(279,'2025-01-16',2,7,NULL,NULL,NULL,NULL,'근무',NULL,'볼트 보관함 제작','2025-04-16 05:54:11','2025-04-16 05:54:11',NULL,NULL,NULL,14), +(280,'2025-01-16',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:11','2025-04-16 05:54:11',NULL,NULL,NULL,1), +(281,'2025-01-16',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:11','2025-04-16 05:54:11',NULL,NULL,NULL,1), +(282,'2025-01-16',8,7,NULL,NULL,NULL,NULL,'근무',NULL,'볼트 보관함 제작','2025-04-16 05:54:11','2025-04-16 05:54:11',NULL,NULL,NULL,14), +(283,'2025-01-16',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:12','2025-04-16 05:54:12',NULL,NULL,NULL,1), +(285,'2025-01-16',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:12','2025-04-16 05:54:12',NULL,NULL,NULL,1), +(286,'2025-01-16',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:12','2025-04-16 05:54:12',NULL,NULL,NULL,1), +(287,'2025-01-16',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:12','2025-04-16 05:54:12',NULL,NULL,NULL,1), +(288,'2025-01-17',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(289,'2025-01-17',2,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(290,'2025-01-17',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(291,'2025-01-17',7,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(292,'2025-01-17',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(293,'2025-01-17',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(295,'2025-01-17',4,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(296,'2025-01-17',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(297,'2025-01-17',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(298,'2025-01-20',1,7,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,14), +(299,'2025-01-20',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,8), +(300,'2025-01-20',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,1), +(301,'2025-01-20',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,1), +(302,'2025-01-20',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,1), +(303,'2025-01-20',9,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,14), +(304,'2025-01-20',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,1), +(305,'2025-01-20',7,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,14), +(306,'2025-01-20',5,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,14), +(307,'2025-01-21',1,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,15), +(308,'2025-01-21',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,8), +(309,'2025-01-21',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,1), +(310,'2025-01-21',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,1), +(311,'2025-01-21',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,8), +(312,'2025-01-21',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,15), +(313,'2025-01-21',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,1), +(314,'2025-01-21',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,1), +(315,'2025-01-21',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:07','2025-04-16 05:59:07',NULL,NULL,NULL,1), +(316,'2025-01-22',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(317,'2025-01-22',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,8), +(318,'2025-01-22',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(319,'2025-01-22',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(320,'2025-01-22',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,8), +(321,'2025-01-22',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(322,'2025-01-22',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(323,'2025-01-22',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(324,'2025-01-22',5,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,8), +(325,'2025-01-23',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(326,'2025-01-23',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,8), +(327,'2025-01-23',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(328,'2025-01-23',7,1,NULL,NULL,NULL,NULL,'조퇴',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(329,'2025-01-23',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(330,'2025-01-23',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(331,'2025-01-23',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(332,'2025-01-23',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(333,'2025-01-23',5,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,8), +(334,'2025-01-24',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(335,'2025-01-24',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,8), +(336,'2025-01-24',3,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(337,'2025-01-24',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(338,'2025-01-24',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(339,'2025-01-24',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(340,'2025-01-24',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(341,'2025-01-24',5,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,8), +(342,'2025-01-24',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(343,'2025-02-03',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(344,'2025-02-03',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,8), +(345,'2025-02-03',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(346,'2025-02-03',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(347,'2025-02-03',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(348,'2025-02-03',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(349,'2025-02-03',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(350,'2025-02-03',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,8), +(351,'2025-02-03',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(352,'2025-02-04',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(353,'2025-02-04',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(354,'2025-02-04',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,8), +(355,'2025-02-04',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(356,'2025-02-04',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(357,'2025-02-04',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(358,'2025-02-04',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(359,'2025-02-04',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,8), +(360,'2025-02-04',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(361,'2025-02-05',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,8), +(362,'2025-02-05',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,1), +(363,'2025-02-05',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,1), +(364,'2025-02-05',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,1), +(365,'2025-02-05',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,1), +(366,'2025-02-05',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,1), +(367,'2025-02-05',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:03','2025-04-16 06:10:03',NULL,NULL,NULL,1), +(368,'2025-02-05',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:03','2025-04-16 06:10:03',NULL,NULL,NULL,8), +(369,'2025-02-05',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:03','2025-04-16 06:10:03',NULL,NULL,NULL,1), +(370,'2025-02-06',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(371,'2025-02-06',2,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,15), +(372,'2025-02-06',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(373,'2025-02-06',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(374,'2025-02-06',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(375,'2025-02-06',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(376,'2025-02-06',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(377,'2025-02-06',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(378,'2025-02-06',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(379,'2025-02-07',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(380,'2025-02-07',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,8), +(381,'2025-02-07',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(382,'2025-02-07',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,15), +(383,'2025-02-07',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(384,'2025-02-07',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(385,'2025-02-07',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(386,'2025-02-07',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,8), +(387,'2025-02-07',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(388,'2025-02-10',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(389,'2025-02-10',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,8), +(390,'2025-02-10',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(391,'2025-02-10',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(392,'2025-02-10',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(393,'2025-02-10',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(394,'2025-02-10',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(395,'2025-02-10',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,8), +(396,'2025-02-10',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(397,'2025-02-11',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(398,'2025-02-11',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,8), +(399,'2025-02-11',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(400,'2025-02-11',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(401,'2025-02-11',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(402,'2025-02-11',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(403,'2025-02-11',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(404,'2025-02-11',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,8), +(405,'2025-02-11',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(406,'2025-02-12',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(407,'2025-02-12',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,8), +(408,'2025-02-12',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(409,'2025-02-12',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(410,'2025-02-12',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(411,'2025-02-12',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(412,'2025-02-12',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,15), +(413,'2025-02-12',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(414,'2025-02-12',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(415,'2025-02-13',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(416,'2025-02-13',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,7), +(417,'2025-02-13',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(418,'2025-02-13',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(419,'2025-02-13',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(420,'2025-02-13',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(421,'2025-02-13',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(422,'2025-02-13',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,7), +(423,'2025-02-13',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(424,'2025-02-14',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(425,'2025-02-14',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,7), +(426,'2025-02-14',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(427,'2025-02-14',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(428,'2025-02-14',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(429,'2025-02-14',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(430,'2025-02-14',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(431,'2025-02-14',4,2,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,7), +(432,'2025-02-14',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(433,'2025-02-17',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:39','2025-04-16 06:18:39',NULL,NULL,NULL,1), +(434,'2025-02-17',2,2,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,8), +(435,'2025-02-17',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,1), +(436,'2025-02-17',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,1), +(437,'2025-02-17',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,15), +(438,'2025-02-17',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,1), +(439,'2025-02-17',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,1), +(440,'2025-02-17',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,8), +(441,'2025-02-17',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,1), +(442,'2025-02-18',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(443,'2025-02-18',2,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,15), +(444,'2025-02-18',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(445,'2025-02-18',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(446,'2025-02-18',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(447,'2025-02-18',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(448,'2025-02-18',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,7), +(449,'2025-02-18',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(450,'2025-02-18',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(451,'2025-02-19',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(452,'2025-02-19',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(453,'2025-02-19',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(454,'2025-02-19',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(455,'2025-02-19',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(456,'2025-02-19',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(457,'2025-02-19',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(458,'2025-02-19',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(459,'2025-02-19',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(460,'2025-02-20',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(461,'2025-02-20',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(462,'2025-02-20',3,1,NULL,NULL,NULL,NULL,'조퇴',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(463,'2025-02-20',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(464,'2025-02-20',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(465,'2025-02-20',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(466,'2025-02-20',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(467,'2025-02-20',7,1,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(468,'2025-02-20',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(469,'2025-02-21',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(470,'2025-02-21',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(471,'2025-02-21',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(472,'2025-02-21',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(473,'2025-02-21',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(474,'2025-02-21',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(475,'2025-02-21',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(476,'2025-02-21',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(477,'2025-02-21',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(478,'2025-02-24',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(479,'2025-02-24',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(480,'2025-02-24',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(481,'2025-02-24',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(482,'2025-02-24',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(483,'2025-02-24',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(484,'2025-02-24',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(485,'2025-02-24',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(486,'2025-02-24',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:33','2025-04-16 06:24:33',NULL,NULL,NULL,7), +(487,'2025-02-24',10,1,NULL,NULL,NULL,NULL,'근무',NULL,'근무시작','2025-04-16 06:25:07','2025-04-16 06:25:07',NULL,NULL,NULL,7), +(488,'2025-02-25',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(489,'2025-02-25',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(490,'2025-02-25',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(491,'2025-02-25',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(492,'2025-02-25',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(493,'2025-02-25',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(494,'2025-02-25',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(495,'2025-02-25',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(496,'2025-02-25',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(497,'2025-02-25',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(498,'2025-02-26',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'당진출장 건','2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,14), +(499,'2025-02-26',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(500,'2025-02-26',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(501,'2025-02-26',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'당진출장 건','2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,14), +(502,'2025-02-26',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(503,'2025-02-26',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(504,'2025-02-26',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(505,'2025-02-26',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,15), +(506,'2025-02-26',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(507,'2025-02-26',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(508,'2025-02-27',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(509,'2025-02-27',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(510,'2025-02-27',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(511,'2025-02-27',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(512,'2025-02-27',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(513,'2025-02-27',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(514,'2025-02-27',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(515,'2025-02-27',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(516,'2025-02-27',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(517,'2025-02-27',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(518,'2025-02-28',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,13), +(519,'2025-02-28',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(520,'2025-02-28',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(521,'2025-02-28',7,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,13), +(522,'2025-02-28',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(523,'2025-02-28',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(524,'2025-02-28',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(525,'2025-02-28',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(526,'2025-02-28',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,15), +(527,'2025-02-28',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(528,'2025-03-04',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(529,'2025-03-04',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(530,'2025-03-04',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,8), +(531,'2025-03-04',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,15), +(532,'2025-03-04',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(533,'2025-03-04',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(534,'2025-03-04',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(535,'2025-03-04',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(536,'2025-03-04',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(537,'2025-03-04',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,8), +(538,'2025-03-05',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(539,'2025-03-05',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(540,'2025-03-05',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,8), +(541,'2025-03-05',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(542,'2025-03-05',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(543,'2025-03-05',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(544,'2025-03-05',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(545,'2025-03-05',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,15), +(546,'2025-03-05',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(547,'2025-03-05',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,8), +(548,'2025-03-06',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(549,'2025-03-06',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(550,'2025-03-06',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,8), +(551,'2025-03-06',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,15), +(552,'2025-03-06',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(553,'2025-03-06',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(554,'2025-03-06',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(555,'2025-03-06',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(556,'2025-03-06',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(557,'2025-03-06',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,8), +(558,'2025-03-07',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,7), +(559,'2025-03-07',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,13), +(560,'2025-03-07',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,8), +(561,'2025-03-07',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,15), +(562,'2025-03-07',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,7), +(563,'2025-03-07',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,7), +(564,'2025-03-07',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,7), +(565,'2025-03-07',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,13), +(566,'2025-03-07',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,7), +(567,'2025-03-07',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,8), +(568,'2025-03-10',1,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,8), +(569,'2025-03-10',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,3), +(570,'2025-03-10',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,8), +(571,'2025-03-10',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,15), +(572,'2025-03-10',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,7), +(573,'2025-03-10',9,13,NULL,NULL,NULL,NULL,'유급',NULL,'결혼(5일)','2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,15), +(574,'2025-03-10',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,7), +(575,'2025-03-10',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,3), +(576,'2025-03-10',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,8), +(577,'2025-03-10',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,8), +(578,'2025-03-11',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:06','2025-04-16 06:39:06',NULL,NULL,NULL,8), +(579,'2025-03-11',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,8), +(580,'2025-03-11',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,8), +(581,'2025-03-11',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,7), +(582,'2025-03-11',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,7), +(583,'2025-03-11',9,13,NULL,NULL,NULL,NULL,'유급',NULL,'결혼(5일)','2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,15), +(584,'2025-03-11',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,7), +(585,'2025-03-11',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,8), +(586,'2025-03-11',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,8), +(587,'2025-03-11',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,8), +(588,'2025-03-12',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(589,'2025-03-12',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(590,'2025-03-12',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(591,'2025-03-12',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(592,'2025-03-12',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,7), +(593,'2025-03-12',9,13,NULL,NULL,NULL,NULL,'유급',NULL,'결혼(5일)','2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,15), +(594,'2025-03-12',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,7), +(595,'2025-03-12',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,7), +(596,'2025-03-12',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(597,'2025-03-12',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(598,'2025-03-13',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,8), +(599,'2025-03-13',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,8), +(600,'2025-03-13',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,8), +(601,'2025-03-13',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,7), +(602,'2025-03-13',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,7), +(603,'2025-03-13',9,13,NULL,NULL,NULL,NULL,'유급',NULL,'결혼(5일)','2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,15), +(604,'2025-03-13',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,7), +(605,'2025-03-13',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:08','2025-04-16 06:41:08',NULL,NULL,NULL,8), +(606,'2025-03-13',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:08','2025-04-16 06:41:08',NULL,NULL,NULL,8), +(607,'2025-03-13',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:08','2025-04-16 06:41:08',NULL,NULL,NULL,8), +(608,'2025-03-14',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,8), +(609,'2025-03-14',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,4), +(610,'2025-03-14',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,8), +(612,'2025-03-14',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,7), +(613,'2025-03-14',9,13,NULL,NULL,NULL,NULL,'유급',NULL,'결혼(5일)','2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,15), +(614,'2025-03-14',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,7), +(615,'2025-03-14',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,8), +(616,'2025-03-14',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,8), +(617,'2025-03-14',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,7), +(628,'2025-03-18',1,1,NULL,NULL,NULL,NULL,'조퇴',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(629,'2025-03-18',2,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,4), +(630,'2025-03-18',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(631,'2025-03-18',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,4), +(632,'2025-03-18',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(633,'2025-03-18',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,15), +(634,'2025-03-18',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(635,'2025-03-18',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,4), +(636,'2025-03-18',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(637,'2025-03-18',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(648,'2025-03-17',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,8), +(649,'2025-03-17',2,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,4), +(650,'2025-03-17',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,8), +(651,'2025-03-17',7,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,4), +(652,'2025-03-17',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,7), +(653,'2025-03-17',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,15), +(654,'2025-03-17',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,7), +(655,'2025-03-17',4,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,8), +(656,'2025-03-17',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,8), +(657,'2025-03-17',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,7), +(658,'2025-03-19',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:33','2025-04-16 06:52:33',NULL,NULL,NULL,4), +(659,'2025-03-19',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:33','2025-04-16 06:52:33',NULL,NULL,NULL,8), +(660,'2025-03-19',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:33','2025-04-16 06:52:33',NULL,NULL,NULL,8), +(661,'2025-03-19',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:33','2025-04-16 06:52:33',NULL,NULL,NULL,4), +(662,'2025-03-19',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:33','2025-04-16 06:52:33',NULL,NULL,NULL,8), +(663,'2025-03-19',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:34','2025-04-16 06:52:34',NULL,NULL,NULL,8), +(664,'2025-03-19',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:34','2025-04-16 06:52:34',NULL,NULL,NULL,8), +(665,'2025-03-19',4,7,NULL,NULL,NULL,NULL,'근무',NULL,'용접기 보관함 제작','2025-04-16 06:52:34','2025-04-16 06:52:34',NULL,NULL,NULL,14), +(666,'2025-03-19',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:34','2025-04-16 06:52:34',NULL,NULL,NULL,4), +(667,'2025-03-19',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:34','2025-04-16 06:52:34',NULL,NULL,NULL,8), +(668,'2025-03-20',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,8), +(669,'2025-03-20',2,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,4), +(670,'2025-03-20',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,8), +(671,'2025-03-20',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,4), +(672,'2025-03-20',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,4), +(673,'2025-03-20',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,8), +(674,'2025-03-20',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,8), +(675,'2025-03-20',4,7,NULL,NULL,2.0,NULL,'근무',NULL,'용접기 보관함 제작','2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,14), +(676,'2025-03-20',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,4), +(677,'2025-03-20',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,8), +(678,'2025-03-21',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:27','2025-04-16 21:34:27',NULL,NULL,NULL,8), +(679,'2025-03-21',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,4), +(680,'2025-03-21',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,8), +(681,'2025-03-21',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,8), +(682,'2025-03-21',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,4), +(683,'2025-03-21',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,8), +(684,'2025-03-21',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,8), +(685,'2025-03-21',4,7,NULL,NULL,NULL,NULL,'근무',NULL,'용기 보관함 제작','2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,14), +(686,'2025-03-21',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,4), +(687,'2025-03-21',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,8), +(688,'2025-03-24',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,8), +(689,'2025-03-24',2,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,5), +(690,'2025-03-24',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,8), +(691,'2025-03-24',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,5), +(692,'2025-03-24',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,5), +(693,'2025-03-24',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,8), +(694,'2025-03-24',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:48','2025-04-16 21:39:48',NULL,NULL,NULL,8), +(695,'2025-03-24',4,7,NULL,NULL,2.0,NULL,'근무',NULL,'용기 보관함 제작','2025-04-16 21:39:48','2025-04-16 21:39:48',NULL,NULL,NULL,14), +(696,'2025-03-24',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:48','2025-04-16 21:39:48',NULL,NULL,NULL,8), +(697,'2025-03-24',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:48','2025-04-16 21:39:48',NULL,NULL,NULL,8), +(698,'2025-03-25',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(699,'2025-03-25',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,5), +(700,'2025-03-25',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(701,'2025-03-25',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,5), +(702,'2025-03-25',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(703,'2025-03-25',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(704,'2025-03-25',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(705,'2025-03-25',4,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,14), +(706,'2025-03-25',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,5), +(707,'2025-03-25',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(708,'2025-03-26',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,13), +(709,'2025-03-26',2,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,15), +(710,'2025-03-26',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,5), +(711,'2025-03-26',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,5), +(712,'2025-03-26',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,8), +(713,'2025-03-26',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,8), +(714,'2025-03-26',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,8), +(715,'2025-03-26',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,13), +(716,'2025-03-26',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,5), +(717,'2025-03-26',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,8), +(718,'2025-03-27',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,8), +(719,'2025-03-27',2,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,5), +(720,'2025-03-27',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,8), +(721,'2025-03-27',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,5), +(722,'2025-03-27',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,5), +(723,'2025-03-27',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,8), +(724,'2025-03-27',10,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,15), +(725,'2025-03-27',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,5), +(726,'2025-03-27',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,8), +(727,'2025-03-27',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,8), +(728,'2025-03-28',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,8), +(729,'2025-03-28',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,5), +(730,'2025-03-28',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,15), +(731,'2025-03-28',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,15), +(732,'2025-03-28',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,8), +(733,'2025-03-28',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,8), +(734,'2025-03-28',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,8), +(735,'2025-03-28',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,5), +(736,'2025-03-28',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,5), +(737,'2025-03-28',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,8), +(738,'2025-03-31',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(739,'2025-03-31',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,5), +(740,'2025-03-31',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(741,'2025-03-31',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(742,'2025-03-31',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(743,'2025-03-31',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(744,'2025-03-31',10,13,NULL,NULL,NULL,NULL,'유급',NULL,'외조모상(2일)','2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,15), +(745,'2025-03-31',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,5), +(746,'2025-03-31',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(747,'2025-03-31',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(748,'2025-03-14',7,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-17 01:53:24','2025-04-17 01:53:24',NULL,NULL,NULL,4), +(749,'2025-04-01',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,9), +(750,'2025-04-01',2,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,5), +(751,'2025-04-01',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,9), +(752,'2025-04-01',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,5), +(753,'2025-04-01',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,9), +(754,'2025-04-01',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,9), +(755,'2025-04-01',10,13,NULL,NULL,NULL,NULL,'유급',NULL,'외조모상','2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,15), +(756,'2025-04-01',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,5), +(757,'2025-04-01',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,9), +(758,'2025-04-01',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:43','2025-04-17 04:22:43',NULL,NULL,NULL,9), +(769,'2025-04-02',1,1,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-17 04:25:55','2025-04-17 04:25:55',NULL,NULL,NULL,9), +(770,'2025-04-02',2,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(771,'2025-04-02',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(773,'2025-04-02',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(774,'2025-04-02',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(775,'2025-04-02',10,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,15), +(776,'2025-04-02',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,15), +(777,'2025-04-02',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(778,'2025-04-02',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(779,'2025-04-03',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(780,'2025-04-03',2,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(781,'2025-04-03',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(783,'2025-04-03',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(784,'2025-04-03',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(785,'2025-04-03',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(786,'2025-04-03',4,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(787,'2025-04-03',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(788,'2025-04-03',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(789,'2025-04-04',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(790,'2025-04-04',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(791,'2025-04-04',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,5), +(792,'2025-04-04',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(793,'2025-04-04',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,5), +(794,'2025-04-04',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(795,'2025-04-04',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(796,'2025-04-04',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(797,'2025-04-04',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(798,'2025-04-04',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,5), +(799,'2025-04-07',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(800,'2025-04-07',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(801,'2025-04-07',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,5), +(802,'2025-04-07',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(803,'2025-04-07',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,5), +(804,'2025-04-07',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(805,'2025-04-07',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(806,'2025-04-07',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(807,'2025-04-07',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(808,'2025-04-07',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,5), +(809,'2025-04-08',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(811,'2025-04-08',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,5), +(812,'2025-04-08',7,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(813,'2025-04-08',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,5), +(814,'2025-04-08',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(815,'2025-04-08',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(816,'2025-04-08',4,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(817,'2025-04-08',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(818,'2025-04-08',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,5), +(819,'2025-04-09',1,1,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-17 04:43:02','2025-04-17 04:43:02',NULL,NULL,NULL,9), +(820,'2025-04-09',2,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:02','2025-04-17 04:43:02',NULL,NULL,NULL,9), +(821,'2025-04-09',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,5), +(822,'2025-04-09',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,9), +(823,'2025-04-09',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,5), +(824,'2025-04-09',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,9), +(825,'2025-04-09',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,9), +(826,'2025-04-09',4,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,9), +(827,'2025-04-09',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,9), +(828,'2025-04-09',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,5), +(829,'2025-04-10',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(830,'2025-04-10',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(831,'2025-04-10',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,5), +(832,'2025-04-10',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(833,'2025-04-10',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,5), +(834,'2025-04-10',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(835,'2025-04-10',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(836,'2025-04-10',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(837,'2025-04-10',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(838,'2025-04-10',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,5), +(839,'2025-04-11',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:24','2025-04-17 04:46:24',NULL,NULL,NULL,9), +(840,'2025-04-11',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:24','2025-04-17 04:46:24',NULL,NULL,NULL,9), +(841,'2025-04-11',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:24','2025-04-17 04:46:24',NULL,NULL,NULL,5), +(842,'2025-04-11',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,9), +(843,'2025-04-11',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,5), +(844,'2025-04-11',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,15), +(845,'2025-04-11',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,5), +(846,'2025-04-11',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,9), +(847,'2025-04-11',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,15), +(848,'2025-04-11',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,9), +(849,'2025-04-14',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:37','2025-04-17 04:47:37',NULL,NULL,NULL,9), +(850,'2025-04-14',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:37','2025-04-17 04:47:37',NULL,NULL,NULL,9), +(851,'2025-04-14',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:37','2025-04-17 04:47:37',NULL,NULL,NULL,5), +(852,'2025-04-14',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:37','2025-04-17 04:47:37',NULL,NULL,NULL,9), +(853,'2025-04-14',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,5), +(854,'2025-04-14',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,9), +(855,'2025-04-14',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,9), +(856,'2025-04-14',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,9), +(857,'2025-04-14',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,9), +(858,'2025-04-14',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,9), +(859,'2025-04-17',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(860,'2025-04-17',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,5), +(861,'2025-04-17',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,5), +(862,'2025-04-17',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(863,'2025-04-17',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,5), +(864,'2025-04-17',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(865,'2025-04-17',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(866,'2025-04-17',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(867,'2025-04-17',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(868,'2025-04-17',6,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,5), +(879,'2025-04-21',1,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,14), +(880,'2025-04-21',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(881,'2025-04-21',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(882,'2025-04-21',7,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,14), +(883,'2025-04-21',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(884,'2025-04-21',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(885,'2025-04-21',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(886,'2025-04-21',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(887,'2025-04-21',5,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,14), +(888,'2025-04-21',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(889,'2025-04-22',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'ICK 크레인 공사','2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,14), +(890,'2025-04-22',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(891,'2025-04-22',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(892,'2025-04-22',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'ICK 크레인 공사','2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,14), +(893,'2025-04-22',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(894,'2025-04-22',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(895,'2025-04-22',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(896,'2025-04-22',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(897,'2025-04-22',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'ICK 크레인 공사','2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,14), +(898,'2025-04-22',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(899,'2025-04-23',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,14), +(900,'2025-04-23',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(901,'2025-04-23',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(902,'2025-04-23',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,14), +(903,'2025-04-23',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(904,'2025-04-23',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(905,'2025-04-23',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(906,'2025-04-23',4,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(907,'2025-04-23',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,14), +(908,'2025-04-23',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(909,'2025-04-24',1,1,NULL,NULL,NULL,NULL,'근무',NULL,'벨브 부적합 관련 작업 추가','2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(910,'2025-04-24',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(911,'2025-04-24',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(912,'2025-04-24',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(913,'2025-04-24',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(914,'2025-04-24',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(915,'2025-04-24',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(916,'2025-04-24',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(917,'2025-04-24',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(918,'2025-04-24',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(919,'2025-04-25',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(920,'2025-04-25',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(921,'2025-04-25',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,5), +(922,'2025-04-25',7,1,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(923,'2025-04-25',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(924,'2025-04-25',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(925,'2025-04-25',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(926,'2025-04-25',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'확관 작업','2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,5), +(927,'2025-04-25',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(928,'2025-04-25',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:39','2025-04-25 04:23:39',NULL,NULL,NULL,5), +(929,'2025-04-28',1,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:22','2025-04-28 23:20:22',NULL,NULL,NULL,9), +(930,'2025-04-28',2,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(931,'2025-04-28',3,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(932,'2025-04-28',7,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(934,'2025-04-28',9,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(935,'2025-04-28',10,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(936,'2025-04-28',4,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(937,'2025-04-28',5,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(938,'2025-04-28',6,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(939,'2025-04-29',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,9), +(940,'2025-04-29',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(941,'2025-04-29',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(942,'2025-04-29',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,9), +(943,'2025-04-29',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(944,'2025-04-29',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(945,'2025-04-29',10,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,14), +(946,'2025-04-29',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(947,'2025-04-29',8,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(948,'2025-04-29',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(949,'2025-04-30',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,14), +(950,'2025-04-30',2,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,16), +(951,'2025-04-30',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,16), +(953,'2025-04-30',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,15), +(954,'2025-04-30',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,16), +(955,'2025-04-30',10,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,14), +(956,'2025-04-30',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,14), +(957,'2025-04-30',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,15), +(958,'2025-04-30',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,16), +(959,'2025-04-30',4,7,NULL,NULL,NULL,NULL,'반반차',NULL,'제2공장 공사','2025-04-30 04:22:04','2025-04-30 04:22:04',NULL,NULL,NULL,14), +(1023,'2025-04-15',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,9), +(1024,'2025-04-15',2,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,5), +(1025,'2025-04-15',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,5), +(1026,'2025-04-15',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,9), +(1027,'2025-04-15',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,9), +(1028,'2025-04-15',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,5), +(1029,'2025-04-15',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,9), +(1030,'2025-04-15',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,5), +(1031,'2025-04-15',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,5), +(1032,'2025-04-15',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,9), +(1033,'2025-04-16',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,9), +(1034,'2025-04-16',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,5), +(1035,'2025-04-16',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,5), +(1036,'2025-04-16',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,9), +(1037,'2025-04-16',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,9), +(1038,'2025-04-16',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,5), +(1039,'2025-04-16',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,9), +(1040,'2025-04-16',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,15), +(1041,'2025-04-16',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,5), +(1042,'2025-04-16',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,9), +(1043,'2025-04-18',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,9), +(1044,'2025-04-18',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,5), +(1045,'2025-04-18',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,5), +(1046,'2025-04-18',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,9), +(1047,'2025-04-18',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,15), +(1048,'2025-04-18',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,5), +(1049,'2025-04-18',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,9), +(1050,'2025-04-18',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,5), +(1051,'2025-04-18',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,5), +(1052,'2025-04-18',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,9), +(1053,'2025-04-02',7,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-07 02:19:00','2025-05-07 02:19:00',NULL,NULL,NULL,9), +(1054,'2025-04-03',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 02:19:45','2025-05-07 02:19:45',NULL,NULL,NULL,9), +(1055,'2025-04-08',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 02:20:22','2025-05-07 02:20:22',NULL,NULL,NULL,9), +(1056,'2025-04-28',8,1,NULL,NULL,NULL,NULL,'반반차',NULL,'NCR 벨브라인 설치','2025-05-07 02:21:44','2025-05-07 02:21:44',NULL,NULL,NULL,9), +(1057,'2025-05-02',1,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1058,'2025-05-02',2,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1059,'2025-05-02',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1060,'2025-05-02',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1061,'2025-05-02',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1062,'2025-05-02',6,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1063,'2025-05-02',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1064,'2025-05-02',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1065,'2025-05-02',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1066,'2025-05-02',10,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1067,'2025-05-07',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,14), +(1068,'2025-05-07',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1069,'2025-05-07',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1070,'2025-05-07',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1071,'2025-05-07',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,14), +(1072,'2025-05-07',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1073,'2025-05-07',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,14), +(1074,'2025-05-07',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1075,'2025-05-07',9,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,14), +(1076,'2025-05-07',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1078,'2025-05-08',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1079,'2025-05-08',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1080,'2025-05-08',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1081,'2025-05-08',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,14), +(1082,'2025-05-08',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1083,'2025-05-08',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,14), +(1084,'2025-05-08',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1085,'2025-05-08',9,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,14), +(1086,'2025-05-08',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1087,'2025-05-08',1,7,NULL,NULL,NULL,NULL,'반반차',NULL,'작업장 구역 설치','2025-05-08 06:57:51','2025-05-08 06:57:51',NULL,NULL,NULL,14), +(1088,'2025-05-09',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,14), +(1089,'2025-05-09',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1090,'2025-05-09',3,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1091,'2025-05-09',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1092,'2025-05-09',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,14), +(1093,'2025-05-09',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1094,'2025-05-09',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,14), +(1095,'2025-05-09',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1096,'2025-05-09',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1097,'2025-05-09',10,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,14), +(1100,'2025-05-12',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-11 21:52:46','2025-05-11 21:52:46',NULL,NULL,NULL,15), +(1108,'2025-05-12',1,1,NULL,NULL,NULL,NULL,'근무',NULL,'포장','2025-05-12 23:55:17','2025-05-12 23:55:17',NULL,NULL,NULL,13), +(1111,'2025-05-12',5,1,NULL,NULL,NULL,NULL,'근무',NULL,'포장','2025-05-12 23:55:17','2025-05-12 23:55:17',NULL,NULL,NULL,13), +(1113,'2025-05-12',7,1,NULL,NULL,NULL,NULL,'근무',NULL,'포장','2025-05-12 23:55:17','2025-05-12 23:55:17',NULL,NULL,NULL,13), +(1115,'2025-05-12',9,1,NULL,NULL,NULL,NULL,'근무',NULL,'포장','2025-05-12 23:55:17','2025-05-12 23:55:17',NULL,NULL,NULL,13), +(1116,'2025-05-12',10,1,NULL,NULL,NULL,NULL,'근무',NULL,'포장','2025-05-12 23:55:17','2025-05-12 23:55:17',NULL,NULL,NULL,13), +(1117,'2025-05-13',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,14), +(1118,'2025-05-13',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,3), +(1119,'2025-05-13',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,7), +(1120,'2025-05-13',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,3), +(1121,'2025-05-13',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,14), +(1122,'2025-05-13',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,7), +(1123,'2025-05-13',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,14), +(1124,'2025-05-13',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,7), +(1125,'2025-05-13',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,3), +(1126,'2025-05-13',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,7), +(1127,'2025-05-12',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:01:44','2025-05-13 00:01:44',NULL,NULL,NULL,3), +(1128,'2025-05-12',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:01:44','2025-05-13 00:01:44',NULL,NULL,NULL,3), +(1129,'2025-05-12',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:01:44','2025-05-13 00:01:44',NULL,NULL,NULL,3), +(1130,'2025-05-12',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:01:44','2025-05-13 00:01:44',NULL,NULL,NULL,3), +(1131,'2025-05-14',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,3), +(1132,'2025-05-14',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,3), +(1133,'2025-05-14',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1134,'2025-05-14',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1135,'2025-05-14',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1136,'2025-05-14',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,3), +(1137,'2025-05-14',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,3), +(1138,'2025-05-14',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1139,'2025-05-14',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1140,'2025-05-14',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1141,'2025-05-15',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,14), +(1142,'2025-05-15',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,3), +(1143,'2025-05-15',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,7), +(1144,'2025-05-15',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,7), +(1145,'2025-05-15',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,7), +(1146,'2025-05-15',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,7), +(1147,'2025-05-15',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,14), +(1148,'2025-05-15',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,3), +(1149,'2025-05-15',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,3), +(1150,'2025-05-15',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,7), +(1151,'2025-05-16',1,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1152,'2025-05-16',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,3), +(1153,'2025-05-16',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1154,'2025-05-16',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1155,'2025-05-16',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1156,'2025-05-16',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1157,'2025-05-16',7,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1158,'2025-05-16',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,3), +(1159,'2025-05-16',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,3), +(1160,'2025-05-16',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1171,'2025-05-19',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1172,'2025-05-19',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,4), +(1173,'2025-05-19',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1174,'2025-05-19',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1175,'2025-05-19',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1176,'2025-05-19',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1177,'2025-05-19',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1179,'2025-05-19',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1180,'2025-05-19',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1181,'2025-05-21',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1183,'2025-05-21',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1184,'2025-05-21',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1185,'2025-05-21',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1186,'2025-05-21',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1187,'2025-05-21',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1188,'2025-05-21',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1189,'2025-05-21',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1190,'2025-05-21',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1191,'2025-05-20',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1192,'2025-05-20',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,3), +(1193,'2025-05-20',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1194,'2025-05-20',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1195,'2025-05-20',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1196,'2025-05-20',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1197,'2025-05-20',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1198,'2025-05-20',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1199,'2025-05-20',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1200,'2025-05-20',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1201,'2025-05-22',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1202,'2025-05-22',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,3), +(1203,'2025-05-22',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1204,'2025-05-22',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1205,'2025-05-22',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1206,'2025-05-22',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1207,'2025-05-22',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1208,'2025-05-22',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1209,'2025-05-22',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1210,'2025-05-22',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1211,'2025-05-21',2,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-22 04:54:12','2025-05-22 04:54:12',NULL,NULL,NULL,15), +(1215,'2025-05-26',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-26 06:58:00','2025-05-26 06:58:00',NULL,NULL,NULL,15), +(1222,'2025-05-19',8,3,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-06-01 22:34:36','2025-06-01 22:34:36',NULL,NULL,NULL,3), +(1223,'2025-05-26',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1224,'2025-05-26',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,5), +(1225,'2025-05-26',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1226,'2025-05-26',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,5), +(1227,'2025-05-26',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1228,'2025-05-26',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1229,'2025-05-26',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,5), +(1230,'2025-05-26',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1231,'2025-05-26',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1232,'2025-05-23',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1233,'2025-05-23',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,3), +(1234,'2025-05-23',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1235,'2025-05-23',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1236,'2025-05-23',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1237,'2025-05-23',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1238,'2025-05-23',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1239,'2025-05-23',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1240,'2025-05-23',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1241,'2025-05-23',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1242,'2025-05-27',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1243,'2025-05-27',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,5), +(1244,'2025-05-27',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1245,'2025-05-27',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1246,'2025-05-27',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,5), +(1247,'2025-05-27',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1248,'2025-05-27',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1249,'2025-05-27',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,5), +(1250,'2025-05-27',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1251,'2025-05-27',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1252,'2025-05-28',1,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-06-01 22:46:40','2025-06-01 22:46:40',NULL,NULL,NULL,8), +(1258,'2025-05-28',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:46:40','2025-06-01 22:46:40',NULL,NULL,NULL,8), +(1262,'2025-05-28',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,5), +(1263,'2025-05-28',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,8), +(1264,'2025-05-28',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,8), +(1265,'2025-05-28',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,5), +(1266,'2025-05-28',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,8), +(1267,'2025-05-28',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,5), +(1268,'2025-05-28',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,8), +(1269,'2025-05-28',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,8), +(1270,'2025-05-29',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1271,'2025-05-29',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,5), +(1272,'2025-05-29',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1273,'2025-05-29',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1274,'2025-05-29',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,5), +(1275,'2025-05-29',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1276,'2025-05-29',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1277,'2025-05-29',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,5), +(1278,'2025-05-29',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1279,'2025-05-29',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1281,'2025-05-30',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,5), +(1282,'2025-05-30',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1283,'2025-05-30',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1284,'2025-05-30',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,5), +(1285,'2025-05-30',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1286,'2025-05-30',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1287,'2025-05-30',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,5), +(1288,'2025-05-30',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1289,'2025-05-30',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1290,'2025-06-02',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:18','2025-06-01 22:52:18',NULL,NULL,NULL,8), +(1291,'2025-06-02',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,5), +(1292,'2025-06-02',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,8), +(1293,'2025-06-02',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,8), +(1294,'2025-06-02',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,15), +(1295,'2025-06-02',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,8), +(1296,'2025-06-02',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,8), +(1297,'2025-06-02',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,15), +(1298,'2025-06-02',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,8), +(1299,'2025-06-02',10,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,15), +(1300,'2025-05-30',1,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-06-01 23:17:51','2025-06-01 23:17:51',NULL,NULL,NULL,8), +(1301,'2025-01-02',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-01 23:31:26','2025-06-01 23:31:26',NULL,NULL,NULL,15), +(1302,'2025-06-04',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1303,'2025-06-04',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,5), +(1304,'2025-06-04',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1305,'2025-06-04',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,15), +(1306,'2025-06-04',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1307,'2025-06-04',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,5), +(1308,'2025-06-04',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1309,'2025-06-04',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,5), +(1310,'2025-06-04',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1311,'2025-06-04',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1312,'2025-06-09',1,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-09 06:47:48','2025-06-13 03:43:28',NULL,NULL,NULL,8), +(1313,'2025-06-09',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-09 06:47:48','2025-06-09 06:47:48',NULL,NULL,NULL,5), +(1314,'2025-06-09',3,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-09 06:47:48','2025-06-13 03:43:30',NULL,NULL,NULL,8), +(1315,'2025-06-09',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-09 06:47:48','2025-06-09 06:47:48',NULL,NULL,NULL,5), +(1316,'2025-06-09',5,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-09 06:47:48','2025-06-13 03:43:31',NULL,NULL,NULL,8), +(1317,'2025-06-09',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-09 06:47:48','2025-06-09 06:47:48',NULL,NULL,NULL,5), +(1318,'2025-06-09',7,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-09 06:47:48','2025-06-13 03:43:32',NULL,NULL,NULL,8), +(1319,'2025-06-09',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-09 06:47:48','2025-06-09 06:47:48',NULL,NULL,NULL,5), +(1320,'2025-06-09',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-09 06:47:48','2025-06-09 06:47:48',NULL,NULL,NULL,15), +(1321,'2025-06-09',10,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-09 06:47:48','2025-06-13 03:43:34',NULL,NULL,NULL,8), +(1322,'2025-06-10',1,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:03','2025-06-13 03:43:51',NULL,NULL,NULL,8), +(1323,'2025-06-10',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-10 08:47:03','2025-06-10 08:47:03',NULL,NULL,NULL,5), +(1324,'2025-06-10',3,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:03','2025-06-13 03:43:53',NULL,NULL,NULL,8), +(1325,'2025-06-10',4,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:04','2025-06-13 03:43:54',NULL,NULL,NULL,8), +(1326,'2025-06-10',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-10 08:47:04','2025-06-10 08:47:04',NULL,NULL,NULL,5), +(1327,'2025-06-10',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-10 08:47:04','2025-06-10 08:47:04',NULL,NULL,NULL,5), +(1328,'2025-06-10',7,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:04','2025-06-13 03:43:55',NULL,NULL,NULL,8), +(1329,'2025-06-10',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-10 08:47:04','2025-06-10 08:47:04',NULL,NULL,NULL,5), +(1330,'2025-06-10',9,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:04','2025-06-13 03:43:56',NULL,NULL,NULL,8), +(1331,'2025-06-10',10,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:04','2025-06-13 03:43:56',NULL,NULL,NULL,8), +(1332,'2025-06-11',1,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:18',NULL,NULL,NULL,8), +(1333,'2025-06-11',2,3,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-06-11 07:59:16','2025-06-11 07:59:16',NULL,NULL,NULL,5), +(1334,'2025-06-11',3,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:19',NULL,NULL,NULL,8), +(1335,'2025-06-11',4,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:20',NULL,NULL,NULL,8), +(1336,'2025-06-11',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-11 07:59:16','2025-06-11 07:59:16',NULL,NULL,NULL,5), +(1337,'2025-06-11',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-11 07:59:16','2025-06-11 07:59:16',NULL,NULL,NULL,5), +(1338,'2025-06-11',7,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:22',NULL,NULL,NULL,8), +(1339,'2025-06-11',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-11 07:59:16','2025-06-11 07:59:16',NULL,NULL,NULL,5), +(1340,'2025-06-11',9,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:23',NULL,NULL,NULL,8), +(1341,'2025-06-11',10,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:23',NULL,NULL,NULL,8), +(1342,'2025-06-13',1,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,8), +(1343,'2025-06-13',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,5), +(1344,'2025-06-13',3,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,8), +(1345,'2025-06-13',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,8), +(1346,'2025-06-13',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,5), +(1347,'2025-06-13',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,5), +(1348,'2025-06-13',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,15), +(1349,'2025-06-13',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,5), +(1350,'2025-06-13',9,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,8), +(1351,'2025-06-13',10,4,NULL,NULL,NULL,NULL,'반차',NULL,'라인수정','2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,8), +(1352,'2025-06-05',1,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1353,'2025-06-05',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,5), +(1354,'2025-06-05',3,4,NULL,NULL,NULL,NULL,'반차',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1355,'2025-06-05',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1356,'2025-06-05',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,5), +(1357,'2025-06-05',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,5), +(1358,'2025-06-05',7,4,NULL,NULL,NULL,NULL,'반반차',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1359,'2025-06-05',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,5), +(1360,'2025-06-05',9,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1361,'2025-06-05',10,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1362,'2025-06-12',1,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1363,'2025-06-12',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,5), +(1364,'2025-06-12',3,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1365,'2025-06-12',4,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1366,'2025-06-12',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,5), +(1367,'2025-06-12',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,5), +(1368,'2025-06-12',7,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1369,'2025-06-12',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,5), +(1370,'2025-06-12',9,4,NULL,NULL,NULL,NULL,'반차',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1371,'2025-06-12',10,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1372,'2025-06-16',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:26','2025-06-16 04:26:26',NULL,NULL,NULL,8), +(1373,'2025-06-16',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,5), +(1374,'2025-06-16',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,8), +(1375,'2025-06-16',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,8), +(1376,'2025-06-16',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,5), +(1377,'2025-06-16',6,3,NULL,NULL,NULL,NULL,'근무',NULL,'Vessel NDE 불량 수리','2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,5), +(1378,'2025-06-16',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,15), +(1379,'2025-06-16',8,3,NULL,NULL,NULL,NULL,'근무',NULL,'Vessel NDE 불량 수리','2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,5), +(1380,'2025-06-16',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,8), +(1381,'2025-06-16',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,8), +(1382,'2025-06-17',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,8), +(1383,'2025-06-17',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,5), +(1384,'2025-06-17',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,8), +(1385,'2025-06-17',4,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:36:28',NULL,NULL,NULL,5), +(1386,'2025-06-17',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,5), +(1387,'2025-06-17',6,3,NULL,NULL,2.0,NULL,'근무',NULL,'용기 비파괴 불량','2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,5), +(1388,'2025-06-17',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,8), +(1389,'2025-06-17',8,3,NULL,NULL,2.0,NULL,'근무',NULL,'용기 비파괴 불량','2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,5), +(1390,'2025-06-17',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,8), +(1391,'2025-06-17',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,8), +(1392,'2025-06-18',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1393,'2025-06-18',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,5), +(1394,'2025-06-18',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1395,'2025-06-18',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1396,'2025-06-18',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,5), +(1397,'2025-06-18',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,5), +(1398,'2025-06-18',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1399,'2025-06-18',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,5), +(1400,'2025-06-18',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1401,'2025-06-18',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1402,'2025-06-24',1,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1403,'2025-06-24',2,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,5), +(1404,'2025-06-24',3,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1405,'2025-06-24',4,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1406,'2025-06-24',5,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1407,'2025-06-24',6,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1408,'2025-06-24',7,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1409,'2025-06-24',8,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,5), +(1410,'2025-06-24',9,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1411,'2025-06-24',10,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1412,'2025-06-25',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1413,'2025-06-25',2,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,5), +(1414,'2025-06-25',3,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1415,'2025-06-25',4,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1416,'2025-06-25',5,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1417,'2025-06-25',6,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1418,'2025-06-25',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1419,'2025-06-25',8,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,5), +(1420,'2025-06-25',9,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1421,'2025-06-25',10,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1422,'2025-06-26',1,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1423,'2025-06-26',2,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,5), +(1424,'2025-06-26',3,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,5), +(1425,'2025-06-26',4,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1426,'2025-06-26',5,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1427,'2025-06-26',6,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,5), +(1428,'2025-06-26',7,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1429,'2025-06-26',8,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,5), +(1430,'2025-06-26',9,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1431,'2025-06-26',10,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1432,'2025-06-27',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,18), +(1433,'2025-06-27',2,3,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,5), +(1434,'2025-06-27',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,5), +(1435,'2025-06-27',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,18), +(1436,'2025-06-27',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,5), +(1437,'2025-06-27',6,3,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,5), +(1438,'2025-06-27',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,18), +(1439,'2025-06-27',8,3,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,5), +(1440,'2025-06-27',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,18), +(1441,'2025-06-27',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,18), +(1442,'2025-06-19',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1443,'2025-06-19',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,5), +(1444,'2025-06-19',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1445,'2025-06-19',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1446,'2025-06-19',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,5), +(1447,'2025-06-19',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1448,'2025-06-19',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1449,'2025-06-19',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,5), +(1450,'2025-06-19',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1451,'2025-06-19',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1452,'2025-06-20',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1453,'2025-06-20',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,5), +(1454,'2025-06-20',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1455,'2025-06-20',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1456,'2025-06-20',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,5), +(1457,'2025-06-20',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1458,'2025-06-20',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1459,'2025-06-20',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,5), +(1460,'2025-06-20',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1461,'2025-06-20',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1462,'2025-06-23',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1463,'2025-06-23',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,5), +(1464,'2025-06-23',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1465,'2025-06-23',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1466,'2025-06-23',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,5), +(1467,'2025-06-23',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1468,'2025-06-23',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1469,'2025-06-23',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,5), +(1470,'2025-06-23',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1471,'2025-06-23',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1472,'2025-06-30',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1473,'2025-06-30',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,5), +(1474,'2025-06-30',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1475,'2025-06-30',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1476,'2025-06-30',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,5), +(1477,'2025-06-30',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,5), +(1478,'2025-06-30',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1479,'2025-06-30',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,5), +(1480,'2025-06-30',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1481,'2025-06-30',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1482,'2025-07-01',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,8), +(1483,'2025-07-01',2,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1484,'2025-07-01',3,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1485,'2025-07-01',4,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,8), +(1486,'2025-07-01',5,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,8), +(1487,'2025-07-01',6,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1488,'2025-07-01',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,8), +(1489,'2025-07-01',8,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1490,'2025-07-01',9,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1491,'2025-07-01',10,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1492,'2025-07-02',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,9), +(1493,'2025-07-02',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1494,'2025-07-02',3,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1495,'2025-07-02',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,9), +(1496,'2025-07-02',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,9), +(1497,'2025-07-02',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1498,'2025-07-02',7,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1499,'2025-07-02',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1500,'2025-07-02',9,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1501,'2025-07-02',10,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1502,'2025-07-03',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1503,'2025-07-03',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,5), +(1504,'2025-07-03',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1505,'2025-07-03',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1506,'2025-07-03',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1507,'2025-07-03',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,5), +(1508,'2025-07-03',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1509,'2025-07-03',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,5), +(1510,'2025-07-03',9,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,5), +(1511,'2025-07-03',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1512,'2025-07-04',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1513,'2025-07-04',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1514,'2025-07-04',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1515,'2025-07-04',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1516,'2025-07-04',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1517,'2025-07-04',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1518,'2025-07-04',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1519,'2025-07-04',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1520,'2025-07-04',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1521,'2025-07-04',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1522,'2025-07-05',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1523,'2025-07-05',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1524,'2025-07-05',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1525,'2025-07-05',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1526,'2025-07-05',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1527,'2025-07-05',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1528,'2025-07-06',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1529,'2025-07-06',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1530,'2025-07-06',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1531,'2025-07-06',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1532,'2025-07-06',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1533,'2025-07-06',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1534,'2025-07-06',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1535,'2025-07-06',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1536,'2025-07-07',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:13','2025-07-07 23:35:13',NULL,NULL,NULL,9), +(1537,'2025-07-07',2,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-07 23:35:13','2025-07-07 23:35:13',NULL,NULL,NULL,9), +(1538,'2025-07-07',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:13','2025-07-07 23:35:13',NULL,NULL,NULL,9), +(1539,'2025-07-07',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-07 23:35:13','2025-07-07 23:35:13',NULL,NULL,NULL,9), +(1540,'2025-07-07',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:13','2025-07-07 23:35:13',NULL,NULL,NULL,9), +(1541,'2025-07-07',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:14','2025-07-07 23:35:14',NULL,NULL,NULL,9), +(1542,'2025-07-07',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:14','2025-07-07 23:35:14',NULL,NULL,NULL,9), +(1543,'2025-07-07',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:14','2025-07-07 23:35:14',NULL,NULL,NULL,9), +(1544,'2025-07-07',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:14','2025-07-07 23:35:14',NULL,NULL,NULL,9), +(1545,'2025-07-07',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:14','2025-07-07 23:35:14',NULL,NULL,NULL,9), +(1546,'2025-07-08',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1547,'2025-07-08',2,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1548,'2025-07-08',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1549,'2025-07-08',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1550,'2025-07-08',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1551,'2025-07-08',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1552,'2025-07-08',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1553,'2025-07-08',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1554,'2025-07-08',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1555,'2025-07-08',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1556,'2025-07-09',1,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1557,'2025-07-09',2,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1558,'2025-07-09',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1559,'2025-07-09',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1560,'2025-07-09',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1561,'2025-07-09',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1562,'2025-07-09',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1563,'2025-07-09',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1564,'2025-07-09',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1565,'2025-07-09',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1566,'2025-07-10',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1567,'2025-07-10',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1568,'2025-07-10',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1569,'2025-07-10',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1570,'2025-07-10',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1571,'2025-07-10',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1572,'2025-07-10',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1573,'2025-07-10',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1574,'2025-07-10',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1575,'2025-07-10',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1576,'2025-07-14',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1577,'2025-07-14',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1578,'2025-07-14',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1579,'2025-07-14',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1580,'2025-07-14',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1581,'2025-07-14',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1582,'2025-07-14',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1583,'2025-07-14',8,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1584,'2025-07-14',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1585,'2025-07-14',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1586,'2025-07-15',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:41','2025-07-30 02:23:58',NULL,NULL,NULL,8), +(1587,'2025-07-15',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:41','2025-07-30 02:23:58',NULL,NULL,NULL,8), +(1588,'2025-07-15',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:41','2025-07-30 02:24:00',NULL,NULL,NULL,8), +(1589,'2025-07-15',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-07-30 02:08:41','2025-07-30 02:24:00',NULL,NULL,NULL,15), +(1590,'2025-07-15',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:01',NULL,NULL,NULL,5), +(1591,'2025-07-15',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:02',NULL,NULL,NULL,8), +(1592,'2025-07-15',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:02',NULL,NULL,NULL,8), +(1593,'2025-07-15',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:03',NULL,NULL,NULL,8), +(1594,'2025-07-15',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:03',NULL,NULL,NULL,5), +(1595,'2025-07-15',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:04',NULL,NULL,NULL,8), +(1596,'2025-07-16',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:17','2025-07-30 02:10:17',NULL,NULL,NULL,8), +(1597,'2025-07-16',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1598,'2025-07-16',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1599,'2025-07-16',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,8), +(1600,'2025-07-16',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1601,'2025-07-16',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1602,'2025-07-16',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,8), +(1603,'2025-07-16',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1604,'2025-07-16',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1605,'2025-07-16',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1606,'2025-07-17',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:24:31',NULL,NULL,NULL,7), +(1607,'2025-07-17',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1608,'2025-07-17',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1609,'2025-07-17',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1610,'2025-07-17',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1611,'2025-07-17',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1612,'2025-07-17',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1613,'2025-07-17',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1614,'2025-07-17',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1615,'2025-07-17',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1616,'2025-07-18',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,9), +(1617,'2025-07-18',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1618,'2025-07-18',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1619,'2025-07-18',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1620,'2025-07-18',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,9), +(1621,'2025-07-18',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1622,'2025-07-18',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,9), +(1623,'2025-07-18',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1624,'2025-07-18',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1625,'2025-07-18',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1626,'2025-07-21',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,7), +(1627,'2025-07-21',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1628,'2025-07-21',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1629,'2025-07-21',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,9), +(1630,'2025-07-21',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,9), +(1631,'2025-07-21',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1632,'2025-07-21',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1633,'2025-07-21',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1634,'2025-07-21',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1635,'2025-07-21',10,3,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1636,'2025-07-22',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,5), +(1637,'2025-07-22',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1638,'2025-07-22',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1639,'2025-07-22',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,7), +(1640,'2025-07-22',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,7), +(1641,'2025-07-22',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1642,'2025-07-22',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1643,'2025-07-22',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1644,'2025-07-22',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1645,'2025-07-22',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1646,'2025-07-23',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,7), +(1647,'2025-07-23',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1648,'2025-07-23',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1649,'2025-07-23',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,7), +(1650,'2025-07-23',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,7), +(1651,'2025-07-23',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1652,'2025-07-23',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1653,'2025-07-23',8,13,NULL,NULL,NULL,NULL,'유급',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 22:39:10',NULL,NULL,NULL,15), +(1654,'2025-07-23',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1655,'2025-07-23',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1656,'2025-07-24',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,7), +(1657,'2025-07-24',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1658,'2025-07-24',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1659,'2025-07-24',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,7), +(1660,'2025-07-24',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,7), +(1661,'2025-07-24',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1662,'2025-07-24',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1663,'2025-07-24',8,13,NULL,NULL,NULL,NULL,'유급',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,15), +(1664,'2025-07-24',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1665,'2025-07-24',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1666,'2025-07-25',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,13), +(1667,'2025-07-25',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1668,'2025-07-25',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1669,'2025-07-25',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1670,'2025-07-25',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,13), +(1671,'2025-07-25',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,13), +(1672,'2025-07-25',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,18), +(1673,'2025-07-25',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1674,'2025-07-25',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1675,'2025-07-25',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1676,'2025-07-28',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,7), +(1677,'2025-07-28',2,5,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,13), +(1678,'2025-07-28',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1679,'2025-07-28',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,7), +(1680,'2025-07-28',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,7), +(1681,'2025-07-28',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1682,'2025-07-28',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1683,'2025-07-28',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1684,'2025-07-28',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1685,'2025-07-28',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1686,'2025-07-11',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1687,'2025-07-11',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1688,'2025-07-11',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1689,'2025-07-11',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1690,'2025-07-11',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1691,'2025-07-11',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1692,'2025-07-11',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1693,'2025-07-11',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1694,'2025-07-11',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1695,'2025-07-11',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:31','2025-07-30 22:48:31',NULL,NULL,NULL,9), +(1696,'2025-07-12',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1697,'2025-07-12',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1698,'2025-07-12',3,13,NULL,NULL,NULL,NULL,'휴무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,15), +(1699,'2025-07-12',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1700,'2025-07-12',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1701,'2025-07-12',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1702,'2025-07-12',7,13,NULL,NULL,NULL,NULL,'휴무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,15), +(1703,'2025-07-12',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1704,'2025-07-12',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1705,'2025-07-12',10,13,NULL,NULL,NULL,NULL,'휴무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,15), +(1706,'2025-07-29',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,7), +(1707,'2025-07-29',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1708,'2025-07-29',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1709,'2025-07-29',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,7), +(1710,'2025-07-29',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,7), +(1711,'2025-07-29',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1712,'2025-07-29',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1713,'2025-07-29',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1714,'2025-07-29',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1715,'2025-07-29',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1716,'2025-07-30',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,7), +(1717,'2025-07-30',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1718,'2025-07-30',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1719,'2025-07-30',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,7), +(1720,'2025-07-30',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,7), +(1721,'2025-07-30',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1722,'2025-07-30',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1723,'2025-07-30',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1724,'2025-07-30',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1725,'2025-07-30',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1726,'2025-07-31',1,3,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,7), +(1727,'2025-07-31',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1728,'2025-07-31',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1729,'2025-07-31',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,7), +(1730,'2025-07-31',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,7), +(1731,'2025-07-31',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1732,'2025-07-31',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1733,'2025-07-31',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1734,'2025-07-31',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1735,'2025-07-31',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1736,'2025-09-18',1,3,NULL,NULL,NULL,NULL,'근무',NULL,'냉동기','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,18), +(1737,'2025-09-18',2,8,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,8), +(1738,'2025-09-18',3,3,NULL,NULL,NULL,NULL,'근무',NULL,'BOG','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,5), +(1739,'2025-09-18',4,8,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,8), +(1740,'2025-09-18',5,3,NULL,NULL,NULL,NULL,'근무',NULL,'냉동기','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,9), +(1741,'2025-09-18',6,3,NULL,NULL,NULL,NULL,'근무',NULL,'BOG','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,5), +(1742,'2025-09-18',7,3,NULL,NULL,NULL,NULL,'근무',NULL,'냉동기','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,18), +(1743,'2025-09-18',8,3,NULL,NULL,NULL,NULL,'근무',NULL,'BOG','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,5), +(1744,'2025-09-18',9,3,NULL,NULL,NULL,NULL,'근무',NULL,'BOG','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,5), +(1745,'2025-09-18',10,3,NULL,NULL,NULL,NULL,'근무',NULL,'BOG','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,5), +(1746,'2025-10-01',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,16), +(1747,'2025-10-01',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,16), +(1748,'2025-10-01',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1749,'2025-10-01',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,5), +(1750,'2025-10-01',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,16), +(1751,'2025-10-01',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1752,'2025-10-01',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1753,'2025-10-01',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1754,'2025-10-01',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1755,'2025-10-01',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1756,'2025-10-02',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1757,'2025-10-02',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1758,'2025-10-02',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,15), +(1759,'2025-10-02',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1760,'2025-10-02',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1761,'2025-10-02',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1762,'2025-10-02',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1763,'2025-10-02',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1764,'2025-10-02',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1765,'2025-10-02',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7); +/*!40000 ALTER TABLE `WorkReports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `activity_logs` +-- + +DROP TABLE IF EXISTS `activity_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `activity_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) DEFAULT NULL, + `activity_type` varchar(100) DEFAULT NULL, + `table_name` varchar(50) DEFAULT NULL, + `record_id` int(11) DEFAULT NULL, + `action` enum('create','read','update','delete') DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`log_id`), + KEY `idx_user_activity` (`user_id`,`activity_type`,`created_at`), + KEY `idx_table_record` (`table_name`,`record_id`), + CONSTRAINT `activity_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `activity_logs` +-- + +LOCK TABLES `activity_logs` WRITE; +/*!40000 ALTER TABLE `activity_logs` DISABLE KEYS */; +/*!40000 ALTER TABLE `activity_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_attendance_records` +-- + +DROP TABLE IF EXISTS `daily_attendance_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `daily_attendance_records` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `worker_id` int(10) unsigned NOT NULL COMMENT '작업자 ID', + `record_date` date NOT NULL COMMENT '기록 날짜', + `attendance_type_id` int(10) unsigned NOT NULL COMMENT '출근 유형 ID', + `vacation_type_id` int(10) unsigned DEFAULT NULL COMMENT '휴가 유형 ID', + `check_in_time` time DEFAULT NULL COMMENT '출근 시간', + `check_out_time` time DEFAULT NULL COMMENT '퇴근 시간', + `total_work_hours` decimal(4,2) DEFAULT 0.00 COMMENT '총 근무 시간', + `is_overtime_approved` tinyint(1) DEFAULT 0 COMMENT '초과근무 승인 여부', + `notes` text DEFAULT NULL COMMENT '비고', + `created_by` int(10) unsigned NOT NULL COMMENT '등록자 user_id', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + `is_present` tinyint(1) DEFAULT 1 COMMENT '출근 여부', + PRIMARY KEY (`id`), + UNIQUE KEY `daily_attendance_records_worker_id_record_date_unique` (`worker_id`,`record_date`) +) ENGINE=InnoDB AUTO_INCREMENT=231 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_attendance_records` +-- + +LOCK TABLES `daily_attendance_records` WRITE; +/*!40000 ALTER TABLE `daily_attendance_records` DISABLE KEYS */; +INSERT INTO `daily_attendance_records` VALUES +(1,11,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(2,10,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(3,9,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(4,8,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(5,6,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(6,5,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(7,4,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(8,3,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(9,2,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(10,1,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(11,11,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(12,10,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(13,9,'2026-01-05',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',0), +(14,8,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(15,6,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(16,5,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(17,4,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(18,3,'2026-01-05',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',0), +(19,2,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(20,1,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(21,11,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(22,10,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(23,9,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(24,8,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(25,6,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(26,5,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(27,4,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(28,3,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(29,2,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(30,1,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(31,11,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(32,10,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(33,9,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(34,8,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(35,6,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(36,5,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(37,4,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(38,3,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(39,2,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(40,1,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(41,11,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(42,10,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(43,9,'2026-01-06',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',0), +(44,8,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(45,6,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(46,5,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(47,4,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(48,3,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(49,2,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(50,1,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(51,11,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:57',1), +(52,10,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:57',1), +(53,9,'2026-01-07',4,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:57',1), +(54,8,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:57',1), +(55,6,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:57',1), +(56,5,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:58',1), +(57,4,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:58',1), +(58,3,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:58',1), +(59,2,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:58',1), +(60,1,'2026-01-07',4,3,NULL,NULL,6.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:58',1), +(61,11,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(62,10,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(63,9,'2026-01-08',4,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(64,8,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(65,6,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(66,5,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(67,4,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(68,3,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(69,2,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(70,1,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(71,11,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(72,10,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(73,9,'2026-01-09',4,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(74,8,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(75,6,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(76,5,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(77,4,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(78,3,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(79,2,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(80,1,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(81,11,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:37',1), +(82,10,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:37',1), +(83,9,'2026-01-12',4,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:37',1), +(84,8,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:37',1), +(85,6,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(86,5,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(87,4,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(88,3,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(89,2,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(90,1,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(91,11,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(92,10,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(93,9,'2026-01-13',4,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(94,8,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(95,6,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(96,5,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(97,4,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(98,3,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(99,2,'2026-01-13',4,2,NULL,NULL,4.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(100,1,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(101,11,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(102,10,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(103,9,'2026-01-14',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',0), +(104,8,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(105,6,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(106,5,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(107,4,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(108,3,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(109,2,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(110,1,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(111,11,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(112,10,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(113,9,'2026-01-15',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',0), +(114,8,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(115,6,'2026-01-15',3,NULL,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(116,5,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(117,4,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(118,3,'2026-01-15',5,2,NULL,NULL,4.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(119,2,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(120,1,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(121,11,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(122,10,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(123,9,'2026-01-16',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',0), +(124,8,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(125,6,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(126,5,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(127,4,'2026-01-16',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',0), +(128,3,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(129,2,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(130,1,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(131,11,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(132,10,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(133,9,'2026-01-19',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',0), +(134,8,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(135,6,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(136,5,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(137,4,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(138,3,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(139,2,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(140,1,'2026-01-19',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',0), +(141,11,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(142,10,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(143,9,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(144,8,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(145,6,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(146,5,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(147,4,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(148,3,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(149,2,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(150,1,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(151,11,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(152,10,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(153,9,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(154,8,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(155,6,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(156,5,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(157,4,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(158,3,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(159,2,'2026-01-21',5,2,NULL,NULL,4.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(160,1,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(161,11,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(162,10,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(163,9,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(164,8,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(165,6,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(166,5,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(167,4,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(168,3,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(169,2,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(170,1,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(171,11,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(172,10,'2026-01-23',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',0), +(173,9,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(174,8,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(175,6,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(176,5,'2026-01-23',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',0), +(177,4,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(178,3,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(179,2,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(180,1,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(181,11,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(182,10,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(183,9,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(184,8,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(185,6,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(186,5,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(187,4,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(188,3,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(189,2,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(190,1,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(191,11,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(192,10,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(193,9,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(194,8,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(195,6,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(196,5,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(197,4,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(198,3,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(199,2,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(200,1,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(201,11,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(202,10,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(203,9,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(204,8,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(205,6,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(206,5,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(207,4,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(208,3,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(209,2,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(210,1,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(211,11,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(212,10,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(213,9,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(214,8,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(215,6,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(216,5,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(217,4,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(218,3,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(219,2,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(220,1,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(221,11,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(222,10,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(223,9,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(224,8,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(225,6,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(226,5,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(227,4,'2026-01-30',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',0), +(228,3,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(229,2,'2026-01-30',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',0), +(230,1,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1); +/*!40000 ALTER TABLE `daily_attendance_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_patrol_sessions` +-- + +DROP TABLE IF EXISTS `daily_patrol_sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `daily_patrol_sessions` ( + `session_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `patrol_date` date NOT NULL COMMENT '점검 날짜', + `patrol_time` enum('morning','afternoon') NOT NULL COMMENT '점검 시간대', + `inspector_id` int(11) NOT NULL COMMENT '순찰자 user_id', + `category_id` int(10) unsigned DEFAULT NULL COMMENT '공장 ID', + `status` enum('in_progress','completed') DEFAULT 'in_progress' COMMENT '상태', + `notes` text DEFAULT NULL COMMENT '특이사항', + `started_at` time DEFAULT NULL COMMENT '점검 시작 시간', + `completed_at` time DEFAULT NULL COMMENT '점검 완료 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`session_id`), + UNIQUE KEY `daily_patrol_sessions_patrol_date_patrol_time_category_id_unique` (`patrol_date`,`patrol_time`,`category_id`), + KEY `daily_patrol_sessions_patrol_date_patrol_time_index` (`patrol_date`,`patrol_time`), + KEY `daily_patrol_sessions_inspector_id_index` (`inspector_id`), + KEY `daily_patrol_sessions_category_id_foreign` (`category_id`), + CONSTRAINT `daily_patrol_sessions_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE SET NULL, + CONSTRAINT `daily_patrol_sessions_inspector_id_foreign` FOREIGN KEY (`inspector_id`) REFERENCES `users` (`user_id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_patrol_sessions` +-- + +LOCK TABLES `daily_patrol_sessions` WRITE; +/*!40000 ALTER TABLE `daily_patrol_sessions` DISABLE KEYS */; +INSERT INTO `daily_patrol_sessions` VALUES +(1,'2026-02-04','morning',1,1,'in_progress',NULL,'02:20:32',NULL,'2026-02-04 02:20:32','2026-02-04 02:20:32'), +(2,'2026-02-04','afternoon',1,1,'in_progress',NULL,'07:36:23',NULL,'2026-02-04 07:36:23','2026-02-04 07:36:23'), +(3,'2026-02-05','afternoon',1,1,'in_progress',NULL,'04:30:44',NULL,'2026-02-05 04:30:44','2026-02-05 04:30:44'); +/*!40000 ALTER TABLE `daily_patrol_sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_work_reports` +-- + +DROP TABLE IF EXISTS `daily_work_reports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `daily_work_reports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `report_date` date NOT NULL COMMENT '작업 날짜', + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `project_id` int(11) NOT NULL COMMENT '프로젝트 ID', + `work_type_id` int(11) NOT NULL COMMENT '작업 유형 ID', + `work_status_id` int(11) DEFAULT 1 COMMENT '업무 상태 ID (1:정규, 2:에러)', + `error_type_id` int(11) DEFAULT NULL COMMENT '에러 유형 ID (에러일 때만)', + `work_hours` decimal(4,2) NOT NULL COMMENT '작업 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `created_by` int(11) NOT NULL DEFAULT 1 COMMENT '작성자 user_id', + `updated_by` int(11) DEFAULT NULL COMMENT '수정자 user_id', + `tbm_session_id` int(10) unsigned DEFAULT NULL COMMENT '연결된 TBM 세션 ID', + `tbm_assignment_id` int(10) unsigned DEFAULT NULL COMMENT '연결된 TBM 팀 배정 ID', + `start_time` time DEFAULT NULL COMMENT '작업 시작 시간', + `end_time` time DEFAULT NULL COMMENT '작업 종료 시간', + `total_hours` decimal(5,2) DEFAULT NULL COMMENT '총 작업 시간', + `regular_hours` decimal(5,2) DEFAULT NULL COMMENT '정규 작업 시간 (총 시간 - 오류 시간)', + `error_hours` decimal(5,2) DEFAULT NULL COMMENT '부적합 사항 처리 시간', + PRIMARY KEY (`id`), + KEY `idx_report_date` (`report_date`), + KEY `idx_worker_date` (`worker_id`,`report_date`), + KEY `idx_project_date` (`project_id`,`report_date`), + KEY `idx_work_type` (`work_type_id`), + KEY `idx_work_status` (`work_status_id`), + KEY `idx_error_type` (`error_type_id`), + KEY `idx_created_by` (`created_by`), + KEY `idx_date_worker_creator` (`report_date`,`worker_id`,`created_by`), + KEY `daily_work_reports_tbm_session_id_foreign` (`tbm_session_id`), + KEY `daily_work_reports_tbm_assignment_id_foreign` (`tbm_assignment_id`), + CONSTRAINT `daily_work_reports_tbm_assignment_id_foreign` FOREIGN KEY (`tbm_assignment_id`) REFERENCES `tbm_team_assignments` (`assignment_id`) ON DELETE SET NULL, + CONSTRAINT `daily_work_reports_tbm_session_id_foreign` FOREIGN KEY (`tbm_session_id`) REFERENCES `tbm_sessions` (`session_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=1858 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_work_reports` +-- + +LOCK TABLES `daily_work_reports` WRITE; +/*!40000 ALTER TABLE `daily_work_reports` DISABLE KEYS */; +INSERT INTO `daily_work_reports` VALUES +(14,'2025-06-02',1,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(15,'2025-06-02',3,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(16,'2025-06-02',4,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(17,'2025-06-02',6,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(18,'2025-06-02',7,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(19,'2025-06-02',9,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(20,'2025-06-02',2,3,2,1,NULL,8.00,'2025-06-16 05:10:47','2025-06-16 05:10:47',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(21,'2025-06-04',1,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(22,'2025-06-04',3,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(23,'2025-06-04',5,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(24,'2025-06-04',7,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(25,'2025-06-04',9,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(26,'2025-06-04',10,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(27,'2025-06-04',2,3,2,1,NULL,8.00,'2025-06-16 05:12:07','2025-06-16 05:12:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(28,'2025-06-04',6,3,2,1,NULL,8.00,'2025-06-16 05:12:07','2025-06-16 05:12:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(29,'2025-06-04',8,3,2,1,NULL,8.00,'2025-06-16 05:12:07','2025-06-16 05:12:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(30,'2025-06-05',1,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(31,'2025-06-05',3,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(32,'2025-06-05',4,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(33,'2025-06-05',7,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(34,'2025-06-05',10,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(35,'2025-06-05',9,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(36,'2025-06-05',2,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(37,'2025-06-05',5,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(38,'2025-06-05',6,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(39,'2025-06-05',8,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(40,'2025-06-16',5,3,2,1,NULL,8.00,'2025-06-16 06:12:01','2025-06-16 06:12:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(43,'2025-06-16',2,3,2,1,NULL,8.00,'2025-06-16 06:12:01','2025-06-16 06:12:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(44,'2025-06-16',6,3,2,2,43,4.00,'2025-06-16 06:13:02','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(45,'2025-06-16',6,3,2,1,NULL,4.00,'2025-06-16 06:13:50','2025-06-16 06:13:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(46,'2025-06-16',8,3,2,2,43,4.00,'2025-06-16 06:15:22','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(47,'2025-06-16',8,3,2,1,NULL,4.00,'2025-06-16 06:15:22','2025-06-16 06:15:22',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(48,'2025-06-16',4,4,3,2,6,8.00,'2025-06-16 06:46:44','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(50,'2025-06-16',1,4,3,2,6,8.00,'2025-06-16 06:46:44','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(51,'2025-06-16',9,4,3,1,NULL,8.00,'2025-06-16 06:48:29','2025-06-16 06:48:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(52,'2025-06-16',10,4,3,1,NULL,6.00,'2025-06-16 06:50:09','2025-06-16 06:50:09',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(53,'2025-06-16',10,4,3,2,6,2.00,'2025-06-16 06:50:09','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(54,'2025-06-16',3,4,3,1,NULL,6.00,'2025-06-16 06:50:09','2025-06-16 06:50:09',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(55,'2025-06-16',3,4,3,2,6,2.00,'2025-06-16 06:50:09','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(56,'2025-06-17',2,3,2,1,NULL,8.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(57,'2025-06-17',2,3,2,1,NULL,2.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(58,'2025-06-17',5,3,2,1,NULL,8.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(59,'2025-06-17',5,3,2,1,NULL,2.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(60,'2025-06-17',6,3,2,1,NULL,8.00,'2025-06-17 08:24:33','2025-06-17 08:24:33',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(61,'2025-06-17',6,3,2,2,43,2.00,'2025-06-17 08:24:33','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(62,'2025-06-17',8,3,2,1,NULL,8.00,'2025-06-17 08:24:33','2025-06-17 08:24:33',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(63,'2025-06-17',8,3,2,2,43,2.00,'2025-06-17 08:24:33','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(65,'2025-06-17',9,4,3,2,6,4.00,'2025-06-17 08:25:24','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(66,'2025-06-17',1,4,3,2,6,4.00,'2025-06-17 08:27:06','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(67,'2025-06-17',4,4,3,2,6,4.00,'2025-06-17 08:27:06','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(68,'2025-06-17',1,4,3,1,NULL,4.00,'2025-06-17 08:31:06','2025-06-17 08:31:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(69,'2025-06-17',9,4,3,1,NULL,4.00,'2025-06-17 08:31:06','2025-06-17 08:31:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(70,'2025-06-17',4,4,3,1,NULL,4.00,'2025-06-17 08:31:06','2025-06-17 08:31:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(71,'2025-06-17',9,4,3,1,NULL,2.00,'2025-06-17 08:33:06','2025-06-17 08:33:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(72,'2025-06-17',4,4,3,1,NULL,2.00,'2025-06-17 08:33:06','2025-06-17 08:33:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(73,'2025-06-17',1,4,3,1,NULL,2.00,'2025-06-17 08:33:06','2025-06-17 08:33:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(74,'2025-06-17',10,4,3,1,NULL,8.00,'2025-06-17 08:34:11','2025-06-17 08:34:11',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(75,'2025-06-17',10,4,3,2,6,2.00,'2025-06-17 08:34:11','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(76,'2025-06-17',3,4,3,1,NULL,8.00,'2025-06-17 08:34:11','2025-06-17 08:34:11',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(77,'2025-06-17',3,4,3,2,6,2.00,'2025-06-17 08:34:11','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(78,'2025-06-18',6,3,2,1,NULL,8.00,'2025-06-18 08:40:27','2025-06-18 08:40:27',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(79,'2025-06-18',2,3,2,1,NULL,8.00,'2025-06-18 08:40:27','2025-06-18 08:40:27',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(80,'2025-06-18',8,3,2,1,NULL,8.00,'2025-06-18 08:40:27','2025-06-18 08:40:27',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(81,'2025-06-18',2,3,2,1,NULL,2.00,'2025-06-18 08:41:02','2025-06-18 08:41:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(82,'2025-06-18',6,3,2,1,NULL,2.00,'2025-06-18 08:41:03','2025-06-18 08:41:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(83,'2025-06-18',8,3,2,1,NULL,2.00,'2025-06-18 08:41:03','2025-06-18 08:41:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(84,'2025-06-18',5,4,3,1,NULL,8.00,'2025-06-18 08:41:45','2025-06-18 08:41:45',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(85,'2025-06-18',5,4,3,1,NULL,2.00,'2025-06-18 08:41:45','2025-06-18 08:41:45',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(86,'2025-06-18',10,4,3,1,NULL,9.00,'2025-06-18 08:47:55','2025-06-18 08:47:55',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(87,'2025-06-18',10,4,3,2,6,1.00,'2025-06-18 08:47:55','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(88,'2025-06-18',3,4,3,1,NULL,9.00,'2025-06-18 08:47:55','2025-06-18 08:47:55',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(89,'2025-06-18',3,4,3,2,6,1.00,'2025-06-18 08:47:55','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(90,'2025-06-18',4,4,3,2,6,4.00,'2025-06-18 08:50:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(91,'2025-06-18',4,4,3,1,NULL,6.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(92,'2025-06-18',9,4,3,2,6,4.00,'2025-06-18 08:50:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(93,'2025-06-18',9,4,3,1,NULL,6.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(94,'2025-06-18',1,4,3,2,6,4.00,'2025-06-18 08:50:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(95,'2025-06-18',1,4,3,1,NULL,6.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(96,'2025-06-18',7,4,3,2,6,4.00,'2025-06-18 09:00:17','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(97,'2025-06-18',7,4,3,1,NULL,6.00,'2025-06-18 09:00:17','2025-06-18 09:00:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(98,'2025-06-19',8,3,2,1,NULL,8.00,'2025-06-19 06:37:59','2025-06-19 06:37:59',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(99,'2025-06-19',2,3,2,1,NULL,8.00,'2025-06-19 06:37:59','2025-06-19 06:37:59',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(100,'2025-06-19',10,4,3,1,NULL,8.00,'2025-06-19 06:59:36','2025-06-19 06:59:36',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(101,'2025-06-19',3,4,3,1,NULL,8.00,'2025-06-19 06:59:36','2025-06-19 06:59:36',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(102,'2025-06-19',5,4,3,1,NULL,8.00,'2025-06-19 06:59:36','2025-06-19 06:59:36',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(103,'2025-06-19',9,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(104,'2025-06-19',9,4,3,2,6,2.00,'2025-06-19 07:01:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(105,'2025-06-19',4,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(106,'2025-06-19',4,4,3,2,6,2.00,'2025-06-19 07:01:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(107,'2025-06-19',1,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(108,'2025-06-19',1,4,3,2,6,2.00,'2025-06-19 07:01:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(109,'2025-06-19',7,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(110,'2025-06-19',7,4,3,2,6,2.00,'2025-06-19 07:01:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(111,'2025-06-19',6,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(112,'2025-06-19',6,4,3,2,6,2.00,'2025-06-19 07:01:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(113,'2025-06-20',9,4,3,2,6,2.00,'2025-06-20 06:44:01','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(114,'2025-06-20',9,4,3,1,NULL,6.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(115,'2025-06-20',4,4,3,2,6,2.00,'2025-06-20 06:44:01','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(116,'2025-06-20',4,4,3,1,NULL,6.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(117,'2025-06-20',7,4,3,2,6,2.00,'2025-06-20 06:44:01','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(118,'2025-06-20',7,4,3,1,NULL,6.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(119,'2025-06-20',6,4,3,2,6,2.00,'2025-06-20 06:44:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(120,'2025-06-20',6,4,3,1,NULL,6.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(121,'2025-06-20',1,4,3,2,6,2.00,'2025-06-20 06:44:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(122,'2025-06-20',1,4,3,1,NULL,6.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(123,'2025-06-20',5,4,3,2,6,2.00,'2025-06-20 06:44:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(124,'2025-06-20',5,4,3,1,NULL,6.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(125,'2025-06-20',10,4,3,1,NULL,8.00,'2025-06-20 06:45:30','2025-06-20 06:45:30',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(126,'2025-06-20',3,4,3,1,NULL,8.00,'2025-06-20 06:45:31','2025-06-20 06:45:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(127,'2025-06-23',10,4,3,1,NULL,8.00,'2025-06-23 06:42:58','2025-06-23 06:42:58',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(128,'2025-06-23',3,4,3,1,NULL,8.00,'2025-06-23 06:42:58','2025-06-23 06:42:58',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(129,'2025-06-23',5,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(130,'2025-06-23',5,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(131,'2025-06-23',1,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(132,'2025-06-23',1,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(133,'2025-06-23',9,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(134,'2025-06-23',9,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(135,'2025-06-23',4,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(136,'2025-06-23',4,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(137,'2025-06-23',7,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(138,'2025-06-23',7,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(139,'2025-06-23',6,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(140,'2025-06-23',6,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(141,'2025-06-24',10,4,3,1,NULL,12.00,'2025-06-24 11:10:32','2025-06-24 11:10:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(142,'2025-06-24',3,4,3,1,NULL,12.00,'2025-06-24 11:10:32','2025-06-24 11:10:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(143,'2025-06-24',9,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(144,'2025-06-24',9,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(145,'2025-06-24',5,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(146,'2025-06-24',5,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(147,'2025-06-24',4,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(148,'2025-06-24',4,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(149,'2025-06-24',7,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(150,'2025-06-24',7,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(151,'2025-06-24',6,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(152,'2025-06-24',6,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(153,'2025-06-24',1,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(154,'2025-06-24',1,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(155,'2025-06-24',8,3,2,1,NULL,8.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(156,'2025-06-24',8,3,2,1,NULL,4.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(157,'2025-06-24',2,3,2,1,NULL,8.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(158,'2025-06-24',2,3,2,1,NULL,4.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(159,'2025-06-25',2,3,2,1,NULL,8.00,'2025-06-25 11:08:04','2025-06-25 11:08:04',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(160,'2025-06-25',2,3,2,1,NULL,4.00,'2025-06-25 11:08:04','2025-06-25 11:08:04',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(161,'2025-06-25',8,3,2,1,NULL,8.00,'2025-06-25 11:08:05','2025-06-25 11:08:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(162,'2025-06-25',8,3,2,1,NULL,4.00,'2025-06-25 11:08:05','2025-06-25 11:08:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(163,'2025-06-25',10,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(164,'2025-06-25',9,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(165,'2025-06-25',3,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(166,'2025-06-25',6,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(167,'2025-06-26',10,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(168,'2025-06-26',5,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(169,'2025-06-26',7,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(170,'2025-06-26',1,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(171,'2025-06-26',4,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(172,'2025-06-26',8,3,2,1,NULL,8.00,'2025-06-26 11:11:31','2025-06-26 11:11:31',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(173,'2025-06-26',8,3,2,1,NULL,4.00,'2025-06-26 11:11:31','2025-06-26 11:11:31',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(174,'2025-06-26',2,3,2,1,NULL,8.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(175,'2025-06-26',2,3,2,1,NULL,4.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(176,'2025-06-26',9,3,2,1,NULL,8.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(177,'2025-06-26',9,3,2,1,NULL,4.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(178,'2025-06-26',3,3,2,1,NULL,12.00,'2025-06-26 11:19:34','2025-06-26 11:19:34',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(179,'2025-06-26',6,3,2,1,NULL,12.00,'2025-06-26 11:19:34','2025-06-26 11:19:34',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(182,'2025-06-27',2,3,2,1,NULL,4.00,'2025-06-27 01:54:40','2025-06-27 01:54:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(183,'2025-06-27',9,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(184,'2025-06-27',10,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(185,'2025-06-27',7,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(186,'2025-06-27',5,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(187,'2025-06-27',4,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(188,'2025-06-27',1,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(189,'2025-06-27',3,3,2,1,NULL,8.00,'2025-06-27 06:49:08','2025-06-27 06:49:08',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(191,'2025-06-27',6,3,2,1,NULL,4.00,'2025-06-27 06:58:46','2025-06-27 06:58:46',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(192,'2025-06-27',8,3,2,1,NULL,6.00,'2025-06-27 07:00:10','2025-06-27 07:00:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(193,'2025-06-30',6,3,2,2,43,2.00,'2025-07-05 01:37:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(194,'2025-06-30',6,3,2,1,NULL,2.00,'2025-07-05 01:37:29','2025-07-07 04:15:25',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(195,'2025-06-30',2,3,2,1,NULL,4.00,'2025-07-05 01:38:19','2025-07-07 04:15:40',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(196,'2025-06-30',3,3,2,1,NULL,8.00,'2025-07-05 01:38:19','2025-07-05 01:38:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(197,'2025-06-30',8,3,2,1,NULL,6.00,'2025-07-05 01:38:19','2025-07-07 04:15:02',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(198,'2025-07-01',3,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(199,'2025-07-01',2,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(200,'2025-07-01',6,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(201,'2025-07-01',8,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(202,'2025-07-01',10,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(203,'2025-07-01',9,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(204,'2025-07-01',2,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:42:08',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(205,'2025-07-01',3,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:42:02',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(206,'2025-07-01',6,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:41:56',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(207,'2025-07-01',8,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:41:48',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(208,'2025-07-01',9,3,2,2,43,2.00,'2025-07-05 01:40:10','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(209,'2025-07-01',10,3,2,2,43,2.00,'2025-07-05 01:40:10','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(210,'2025-07-01',7,4,3,1,NULL,5.00,'2025-07-05 01:42:57','2025-07-05 01:42:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(211,'2025-07-01',7,4,3,2,10,3.00,'2025-07-05 01:42:57','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(212,'2025-07-01',5,4,3,1,NULL,8.00,'2025-07-05 01:42:57','2025-07-07 04:21:24',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(213,'2025-07-01',5,4,3,2,10,4.00,'2025-07-05 01:42:57','2026-02-05 22:24:28',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(214,'2025-07-01',4,4,3,1,NULL,8.00,'2025-07-05 01:42:57','2025-07-07 04:21:41',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(215,'2025-07-01',4,4,3,2,10,4.00,'2025-07-05 01:42:57','2026-02-05 22:24:28',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(216,'2025-07-01',1,4,3,1,NULL,5.00,'2025-07-05 01:42:57','2025-07-05 01:42:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(217,'2025-07-01',1,4,3,2,10,3.00,'2025-07-05 01:42:57','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(218,'2025-07-02',2,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(219,'2025-07-02',3,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(220,'2025-07-02',10,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(221,'2025-07-02',9,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(222,'2025-07-02',8,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(223,'2025-07-02',6,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(224,'2025-07-02',7,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(225,'2025-07-02',5,4,3,2,10,4.00,'2025-07-05 01:44:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(226,'2025-07-02',5,4,3,1,NULL,6.00,'2025-07-05 01:44:11','2025-07-05 01:44:54',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(227,'2025-07-02',4,4,3,2,10,4.00,'2025-07-05 01:44:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(228,'2025-07-02',4,4,3,1,NULL,6.00,'2025-07-05 01:44:11','2025-07-05 01:44:59',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(229,'2025-07-02',1,4,3,2,10,4.00,'2025-07-05 01:44:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(230,'2025-07-02',1,4,3,1,NULL,6.00,'2025-07-05 01:44:11','2025-07-05 01:45:05',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(231,'2025-07-03',2,3,2,1,NULL,10.00,'2025-07-05 01:45:44','2025-07-05 01:45:44',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(232,'2025-07-03',6,3,2,1,NULL,10.00,'2025-07-05 01:45:45','2025-07-05 01:45:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(233,'2025-07-03',9,3,2,1,NULL,10.00,'2025-07-05 01:45:45','2025-07-05 01:45:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(234,'2025-07-03',8,3,2,1,NULL,10.00,'2025-07-05 01:45:45','2025-07-05 01:45:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(235,'2025-07-03',7,4,3,1,NULL,10.00,'2025-07-05 01:46:07','2025-07-05 01:46:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(236,'2025-07-03',1,4,3,1,NULL,10.00,'2025-07-05 01:46:07','2025-07-05 01:46:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(237,'2025-07-03',3,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(238,'2025-07-03',4,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(239,'2025-07-03',5,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(240,'2025-07-03',10,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(241,'2025-07-04',10,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(242,'2025-07-04',10,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(243,'2025-07-04',5,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(244,'2025-07-04',5,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(245,'2025-07-04',4,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(246,'2025-07-04',4,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(247,'2025-07-04',9,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(248,'2025-07-04',9,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(249,'2025-07-04',8,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(250,'2025-07-04',8,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(251,'2025-07-04',3,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(252,'2025-07-04',3,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(253,'2025-07-04',2,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(254,'2025-07-04',2,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(255,'2025-07-04',7,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(256,'2025-07-04',7,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(257,'2025-07-04',6,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(258,'2025-07-04',6,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(259,'2025-07-04',1,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(260,'2025-07-04',1,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(261,'2025-07-05',8,4,2,1,NULL,8.00,'2025-07-05 05:36:38','2025-07-05 05:36:38',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(262,'2025-07-05',5,4,2,1,NULL,8.00,'2025-07-05 05:36:38','2025-07-05 05:36:38',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(263,'2025-07-05',4,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(264,'2025-07-05',3,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(265,'2025-07-05',2,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(266,'2025-07-05',1,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(267,'2025-07-06',10,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:08',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(268,'2025-07-06',9,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:16',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(269,'2025-07-06',7,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:22',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(270,'2025-07-06',6,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:27',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(271,'2025-07-06',4,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:33',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(272,'2025-07-06',3,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:39',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(273,'2025-07-06',2,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:44',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(274,'2025-07-06',1,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:49',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(275,'2025-07-07',10,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(276,'2025-07-07',9,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(277,'2025-07-07',8,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(278,'2025-07-07',7,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(279,'2025-07-07',3,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(280,'2025-07-07',4,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(281,'2025-07-07',5,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(282,'2025-07-07',6,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(283,'2025-07-07',2,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(284,'2025-07-07',1,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(285,'2025-07-08',10,4,3,1,NULL,8.00,'2025-07-08 06:36:57','2025-07-08 06:36:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(286,'2025-07-08',9,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(287,'2025-07-08',8,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(288,'2025-07-08',7,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(289,'2025-07-08',6,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(290,'2025-07-08',1,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(291,'2025-07-08',2,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(292,'2025-07-08',3,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(293,'2025-07-08',5,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(294,'2025-07-08',4,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(295,'2025-07-09',10,4,3,1,NULL,8.00,'2025-07-09 22:08:40','2025-07-09 22:08:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(296,'2025-07-09',9,4,3,1,NULL,8.00,'2025-07-09 22:08:40','2025-07-09 22:08:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(297,'2025-07-09',8,4,3,1,NULL,8.00,'2025-07-09 22:08:40','2025-07-09 22:08:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(298,'2025-07-09',7,4,3,1,NULL,8.00,'2025-07-09 22:08:41','2025-07-09 22:08:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(299,'2025-07-09',6,4,3,1,NULL,8.00,'2025-07-09 22:08:41','2025-07-09 22:08:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(300,'2025-07-09',2,4,3,1,NULL,8.00,'2025-07-09 22:08:41','2025-07-09 22:08:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(301,'2025-07-09',3,4,3,1,NULL,8.00,'2025-07-09 22:08:42','2025-07-09 22:08:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(302,'2025-07-09',4,4,3,1,NULL,8.00,'2025-07-09 22:08:42','2025-07-09 22:08:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(303,'2025-07-09',5,4,3,1,NULL,8.00,'2025-07-09 22:08:42','2025-07-09 22:08:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(304,'2025-07-09',1,4,3,1,NULL,4.00,'2025-07-09 22:09:10','2025-07-09 22:09:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(305,'2025-07-10',9,4,3,1,NULL,8.00,'2025-07-10 06:33:58','2025-07-10 06:33:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(306,'2025-07-10',8,4,3,1,NULL,8.00,'2025-07-10 06:33:58','2025-07-10 06:33:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(307,'2025-07-10',5,4,3,1,NULL,8.00,'2025-07-10 06:33:58','2025-07-10 06:33:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(308,'2025-07-10',6,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(309,'2025-07-10',2,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(310,'2025-07-10',3,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(311,'2025-07-10',4,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(312,'2025-07-10',1,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(313,'2025-07-10',7,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(314,'2025-07-10',10,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(315,'2025-07-12',9,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(316,'2025-07-12',8,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(317,'2025-07-12',6,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(318,'2025-07-12',5,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(319,'2025-07-12',4,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(320,'2025-07-12',2,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(321,'2025-07-12',1,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(322,'2025-07-14',8,4,3,1,NULL,6.00,'2025-07-14 06:46:30','2025-07-14 06:46:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(323,'2025-07-14',10,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(324,'2025-07-14',9,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(325,'2025-07-14',7,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(326,'2025-07-14',6,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(327,'2025-07-14',1,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(328,'2025-07-14',2,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(329,'2025-07-14',3,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(330,'2025-07-14',4,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(331,'2025-07-15',3,3,2,1,NULL,8.00,'2025-07-15 05:57:06','2025-07-15 05:57:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(332,'2025-07-15',9,3,2,1,NULL,8.00,'2025-07-15 05:57:06','2025-07-15 05:57:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(333,'2025-07-15',5,3,2,2,43,4.00,'2025-07-15 05:57:47','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(334,'2025-07-15',5,4,3,1,NULL,4.00,'2025-07-15 05:57:47','2025-07-15 05:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(335,'2025-07-15',10,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(336,'2025-07-15',8,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(337,'2025-07-15',7,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(338,'2025-07-15',6,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(339,'2025-07-15',2,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(340,'2025-07-15',1,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(341,'2025-07-14',5,4,3,1,NULL,8.00,'2025-07-15 06:57:26','2025-07-15 06:57:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(342,'2025-07-16',4,4,3,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(343,'2025-07-16',4,3,2,1,NULL,4.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(344,'2025-07-16',4,3,2,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(345,'2025-07-16',5,4,3,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(346,'2025-07-16',5,3,2,1,NULL,4.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(347,'2025-07-16',5,3,2,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(348,'2025-07-16',10,4,3,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(349,'2025-07-16',10,3,2,1,NULL,4.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(350,'2025-07-16',10,3,2,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(351,'2025-07-16',6,4,3,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(352,'2025-07-16',6,3,2,1,NULL,4.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(353,'2025-07-16',6,3,2,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(354,'2025-07-16',9,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(355,'2025-07-16',8,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(356,'2025-07-16',3,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(357,'2025-07-16',2,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(358,'2025-07-16',1,4,3,1,NULL,8.00,'2025-07-16 06:51:31','2025-07-16 06:51:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(359,'2025-07-16',7,4,3,1,NULL,8.00,'2025-07-16 06:51:31','2025-07-16 06:51:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(360,'2025-07-17',1,3,3,1,NULL,8.00,'2025-07-17 06:45:22','2025-07-17 06:45:22',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(361,'2025-07-17',5,3,2,1,NULL,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(362,'2025-07-17',5,3,2,2,43,4.00,'2025-07-17 06:46:48','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(363,'2025-07-17',4,3,2,1,NULL,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(364,'2025-07-17',4,3,2,2,43,4.00,'2025-07-17 06:46:48','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(365,'2025-07-17',2,3,2,1,NULL,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(366,'2025-07-17',2,3,2,2,43,4.00,'2025-07-17 06:46:48','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(367,'2025-07-17',10,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(368,'2025-07-17',9,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(369,'2025-07-17',8,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(370,'2025-07-17',7,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(371,'2025-07-17',6,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(372,'2025-07-17',3,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(373,'2025-07-18',7,4,3,2,6,2.00,'2025-07-18 05:54:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(374,'2025-07-18',1,4,3,2,6,2.00,'2025-07-18 05:54:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(376,'2025-07-18',5,4,3,1,NULL,2.00,'2025-07-18 05:58:33','2025-07-18 05:58:33',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(377,'2025-07-18',5,3,2,1,NULL,6.00,'2025-07-18 05:58:33','2025-07-18 05:58:33',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(378,'2025-07-18',7,3,2,1,NULL,6.00,'2025-07-18 05:59:42','2025-07-18 05:59:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(379,'2025-07-18',1,3,3,1,NULL,6.00,'2025-07-18 06:00:15','2025-07-18 06:00:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(380,'2025-07-18',10,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(381,'2025-07-18',9,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(382,'2025-07-18',8,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(383,'2025-07-18',6,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(384,'2025-07-18',4,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(385,'2025-07-18',3,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(386,'2025-07-18',2,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(387,'2025-07-21',5,4,3,2,6,4.00,'2025-07-21 06:40:08','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(388,'2025-07-21',5,3,2,1,NULL,4.00,'2025-07-21 06:40:08','2025-07-21 06:40:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(389,'2025-07-21',4,4,3,2,6,4.00,'2025-07-21 06:40:08','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(390,'2025-07-21',4,3,2,1,NULL,4.00,'2025-07-21 06:40:08','2025-07-21 06:40:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(391,'2025-07-21',10,3,2,1,NULL,6.00,'2025-07-21 06:40:32','2025-07-22 06:58:42',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(392,'2025-07-21',9,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(393,'2025-07-21',8,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(394,'2025-07-21',7,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(395,'2025-07-21',6,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(396,'2025-07-21',3,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(397,'2025-07-21',2,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(398,'2025-07-21',1,3,3,1,NULL,8.00,'2025-07-21 06:53:37','2025-07-21 06:53:37',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(399,'2025-07-22',10,3,2,1,NULL,8.00,'2025-07-22 06:45:47','2025-07-22 06:45:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(400,'2025-07-22',9,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(401,'2025-07-22',8,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(402,'2025-07-22',7,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(403,'2025-07-22',6,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(404,'2025-07-22',4,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(405,'2025-07-22',3,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(406,'2025-07-22',2,4,3,2,6,8.00,'2025-07-22 06:46:11','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(407,'2025-07-22',5,3,3,1,NULL,8.00,'2025-07-22 06:46:11','2025-07-22 06:46:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(408,'2025-07-22',1,3,3,1,NULL,8.00,'2025-07-22 06:46:11','2025-07-22 06:46:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(409,'2025-07-23',4,3,3,1,NULL,8.00,'2025-07-23 06:45:06','2025-07-23 06:45:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(410,'2025-07-23',5,3,3,1,NULL,8.00,'2025-07-23 06:45:28','2025-07-23 06:45:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(411,'2025-07-23',1,3,3,1,NULL,8.00,'2025-07-23 06:45:28','2025-07-23 06:45:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(412,'2025-07-23',10,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(413,'2025-07-23',9,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(414,'2025-07-23',7,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(415,'2025-07-23',6,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(416,'2025-07-23',3,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(417,'2025-07-23',2,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(418,'2025-07-24',4,3,3,1,NULL,8.00,'2025-07-24 06:36:55','2025-07-24 06:36:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(419,'2025-07-24',10,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(420,'2025-07-24',9,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(421,'2025-07-24',7,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(422,'2025-07-24',6,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(423,'2025-07-24',3,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(424,'2025-07-24',2,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(425,'2025-07-24',5,3,3,1,NULL,8.00,'2025-07-24 06:47:04','2025-07-24 06:47:04',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(426,'2025-07-24',1,3,3,1,NULL,8.00,'2025-07-24 06:47:04','2025-07-24 06:47:04',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(427,'2025-07-25',4,3,3,1,NULL,8.00,'2025-07-25 06:44:23','2025-07-25 06:44:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(428,'2025-07-25',10,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(429,'2025-07-25',9,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(430,'2025-07-25',8,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(431,'2025-07-25',6,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(432,'2025-07-25',3,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(433,'2025-07-25',2,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(434,'2025-07-25',5,4,3,1,NULL,8.00,'2025-07-25 06:45:18','2025-07-25 06:45:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(435,'2025-07-25',7,4,3,1,NULL,8.00,'2025-07-25 06:45:19','2025-07-25 06:45:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(436,'2025-07-25',1,4,3,1,NULL,8.00,'2025-07-25 06:45:19','2025-07-25 06:45:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(437,'2025-07-28',5,3,3,1,NULL,8.00,'2025-07-28 06:30:39','2025-07-28 06:30:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(438,'2025-07-28',4,3,3,1,NULL,8.00,'2025-07-28 06:30:39','2025-07-28 06:30:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(439,'2025-07-28',1,3,3,1,NULL,8.00,'2025-07-28 06:30:39','2025-07-28 06:30:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(440,'2025-07-28',2,5,2,1,NULL,4.00,'2025-07-28 06:33:08','2025-07-28 06:33:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(441,'2025-07-28',2,3,2,1,NULL,4.00,'2025-07-28 06:33:08','2025-07-28 06:33:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(442,'2025-07-28',10,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(443,'2025-07-28',9,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(444,'2025-07-28',8,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(445,'2025-07-28',7,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(446,'2025-07-28',6,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(447,'2025-07-28',3,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(448,'2025-07-29',5,3,3,1,NULL,8.00,'2025-07-29 06:39:13','2025-07-29 06:39:13',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(449,'2025-07-29',4,3,3,1,NULL,8.00,'2025-07-29 06:39:13','2025-07-29 06:39:13',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(450,'2025-07-29',1,3,3,1,NULL,8.00,'2025-07-29 06:39:13','2025-07-29 06:39:13',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(451,'2025-07-30',5,3,3,1,NULL,8.00,'2025-07-30 06:50:30','2025-07-30 06:50:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(452,'2025-07-30',4,3,3,1,NULL,8.00,'2025-07-30 06:50:30','2025-07-30 06:50:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(453,'2025-07-30',1,3,3,1,NULL,8.00,'2025-07-30 06:50:30','2025-07-30 06:50:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(454,'2025-07-30',10,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(455,'2025-07-30',9,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(456,'2025-07-30',8,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(457,'2025-07-30',7,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(458,'2025-07-30',6,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(459,'2025-07-30',3,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(460,'2025-07-30',2,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(461,'2025-07-31',1,3,3,1,NULL,4.00,'2025-07-31 06:42:56','2025-07-31 06:42:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(462,'2025-07-31',4,3,3,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(463,'2025-07-31',4,3,2,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(464,'2025-07-31',5,3,3,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(465,'2025-07-31',5,3,2,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(466,'2025-07-31',10,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(467,'2025-07-31',9,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(468,'2025-07-31',8,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(469,'2025-07-31',7,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(470,'2025-07-31',6,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(471,'2025-07-31',3,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(472,'2025-07-31',2,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(473,'2025-07-11',10,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(474,'2025-07-11',5,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(475,'2025-07-11',4,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(476,'2025-07-11',9,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(477,'2025-07-11',8,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(478,'2025-07-11',3,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(479,'2025-07-11',2,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(480,'2025-07-11',7,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(481,'2025-07-11',6,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(482,'2025-07-11',1,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(483,'2025-08-01',10,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(484,'2025-08-01',9,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(485,'2025-08-01',8,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(486,'2025-08-01',7,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(487,'2025-08-01',6,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(488,'2025-08-01',3,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(489,'2025-08-01',2,3,2,1,NULL,8.00,'2025-08-01 04:57:48','2025-08-01 04:57:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(490,'2025-08-01',4,3,3,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(491,'2025-08-01',4,5,1,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(492,'2025-08-01',5,3,3,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(493,'2025-08-01',5,5,1,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(494,'2025-08-07',9,3,2,2,43,4.00,'2025-08-07 06:42:39','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(495,'2025-08-07',9,3,2,1,NULL,4.00,'2025-08-07 06:42:39','2025-08-07 06:42:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(496,'2025-08-07',7,3,2,2,43,4.00,'2025-08-07 06:42:39','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(497,'2025-08-07',7,3,2,1,NULL,4.00,'2025-08-07 06:42:39','2025-08-07 06:42:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(498,'2025-08-07',10,5,2,1,NULL,8.00,'2025-08-07 06:43:14','2025-08-07 06:43:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(499,'2025-08-07',4,5,2,1,NULL,8.00,'2025-08-07 06:43:15','2025-08-07 06:43:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(500,'2025-08-07',2,5,2,1,NULL,8.00,'2025-08-07 06:43:15','2025-08-07 06:43:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(501,'2025-08-07',6,3,2,1,NULL,8.00,'2025-08-07 06:43:39','2025-08-07 06:43:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(502,'2025-08-07',3,3,2,1,NULL,8.00,'2025-08-07 06:43:39','2025-08-07 06:43:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(503,'2025-08-07',8,3,2,1,NULL,8.00,'2025-08-07 06:43:39','2025-08-07 06:43:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(504,'2025-08-07',1,3,3,1,NULL,8.00,'2025-08-07 06:43:52','2025-08-07 06:43:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(505,'2025-08-08',1,3,3,1,NULL,8.00,'2025-08-08 06:45:20','2025-08-08 06:45:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(506,'2025-08-08',10,5,2,1,NULL,8.00,'2025-08-08 06:58:42','2025-08-08 06:58:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(507,'2025-08-08',2,5,2,1,NULL,8.00,'2025-08-08 06:58:42','2025-08-08 06:58:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(508,'2025-08-08',9,3,2,1,NULL,8.00,'2025-08-08 06:59:18','2025-08-08 06:59:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(509,'2025-08-08',8,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(510,'2025-08-08',3,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(511,'2025-08-08',4,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(512,'2025-08-08',6,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(513,'2025-08-11',1,3,3,1,NULL,8.00,'2025-08-11 06:27:37','2025-08-11 06:27:37',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(514,'2025-08-11',1,3,3,1,NULL,8.00,'2025-08-11 06:27:37','2025-08-11 06:27:37',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(515,'2025-08-11',10,5,2,1,NULL,8.00,'2025-08-11 06:46:23','2025-08-11 06:46:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(516,'2025-08-11',2,5,2,1,NULL,8.00,'2025-08-11 06:46:23','2025-08-11 06:46:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(517,'2025-08-11',8,3,2,1,NULL,8.00,'2025-08-11 06:46:49','2025-08-11 06:46:49',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(518,'2025-08-11',7,3,2,1,NULL,8.00,'2025-08-11 06:46:49','2025-08-11 06:46:49',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(519,'2025-08-11',6,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(520,'2025-08-11',5,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(521,'2025-08-11',4,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(522,'2025-08-11',3,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(523,'2025-08-12',10,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(524,'2025-08-12',9,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(525,'2025-08-12',8,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(526,'2025-08-12',7,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(527,'2025-08-12',5,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(528,'2025-08-12',4,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(529,'2025-08-12',3,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(530,'2025-08-12',1,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(531,'2025-08-13',1,3,3,1,NULL,8.00,'2025-08-13 06:31:32','2025-08-13 06:31:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(532,'2025-08-13',2,3,2,1,NULL,4.00,'2025-08-13 06:36:13','2025-08-13 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(533,'2025-08-13',2,5,2,1,NULL,4.00,'2025-08-13 06:36:13','2025-08-13 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(534,'2025-08-13',9,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(535,'2025-08-13',8,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(536,'2025-08-13',7,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(537,'2025-08-13',6,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(538,'2025-08-13',5,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(539,'2025-08-13',4,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(540,'2025-08-13',3,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(541,'2025-08-13',10,5,2,1,NULL,8.00,'2025-08-13 06:37:19','2025-08-13 06:37:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(542,'2025-08-14',1,3,3,2,6,4.00,'2025-08-14 06:35:27','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(543,'2025-08-14',1,3,3,1,NULL,4.00,'2025-08-14 06:35:27','2025-08-14 06:35:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(544,'2025-08-14',10,5,2,1,NULL,4.00,'2025-08-14 06:39:03','2025-08-14 06:39:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(545,'2025-08-14',10,5,3,1,NULL,4.00,'2025-08-14 06:39:03','2025-08-14 06:39:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(546,'2025-08-14',2,5,2,1,NULL,2.00,'2025-08-14 06:39:44','2025-08-14 06:39:44',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(547,'2025-08-14',2,3,2,1,NULL,6.00,'2025-08-14 06:39:44','2025-08-14 06:39:44',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(548,'2025-08-14',9,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(549,'2025-08-14',8,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(550,'2025-08-14',7,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(551,'2025-08-14',6,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(552,'2025-08-14',5,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(553,'2025-08-14',4,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(554,'2025-08-18',2,3,2,1,NULL,8.00,'2025-08-18 06:21:36','2025-08-18 06:21:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(555,'2025-08-18',8,3,2,1,NULL,8.00,'2025-08-18 06:21:36','2025-08-18 06:21:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(556,'2025-08-18',4,3,2,1,NULL,8.00,'2025-08-18 06:22:01','2025-08-18 06:22:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(557,'2025-08-18',10,5,3,1,NULL,6.00,'2025-08-18 06:22:53','2025-08-18 06:22:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(558,'2025-08-18',10,3,2,1,NULL,2.00,'2025-08-18 06:22:53','2025-08-18 06:22:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(559,'2025-08-18',9,3,2,1,NULL,4.00,'2025-08-18 06:23:34','2025-08-18 06:23:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(560,'2025-08-18',9,3,3,1,NULL,4.00,'2025-08-18 06:23:34','2025-08-18 06:23:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(561,'2025-08-18',5,3,3,2,6,4.00,'2025-08-18 06:41:24','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(562,'2025-08-18',1,3,3,2,6,4.00,'2025-08-18 06:41:24','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(563,'2025-08-18',7,3,3,2,6,4.00,'2025-08-18 06:41:24','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(564,'2025-08-18',7,3,3,1,NULL,4.00,'2025-08-18 06:43:10','2025-08-18 06:43:10',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(565,'2025-08-18',5,3,3,1,NULL,4.00,'2025-08-18 06:43:10','2025-08-18 06:43:10',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(566,'2025-08-18',1,3,3,1,NULL,4.00,'2025-08-18 06:43:10','2025-08-18 06:43:10',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(567,'2025-08-18',6,3,3,1,NULL,8.00,'2025-08-18 06:43:35','2025-08-18 06:43:35',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(568,'2025-08-18',3,3,3,1,NULL,8.00,'2025-08-18 06:43:35','2025-08-18 06:43:35',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(569,'2025-08-19',1,3,3,1,NULL,6.00,'2025-08-19 08:02:49','2025-08-19 08:02:49',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(573,'2025-08-19',9,3,3,1,NULL,10.00,'2025-08-19 08:03:30','2025-08-19 08:03:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(574,'2025-08-19',10,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(575,'2025-08-19',8,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(576,'2025-08-19',5,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(577,'2025-08-19',4,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(578,'2025-08-19',2,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(579,'2025-08-19',3,3,3,1,NULL,10.00,'2025-08-19 08:36:51','2025-08-19 08:36:51',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(580,'2025-08-19',7,3,3,1,NULL,10.00,'2025-08-19 08:36:51','2025-08-19 08:36:51',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(581,'2025-08-19',6,3,3,1,NULL,10.00,'2025-08-19 08:36:51','2025-08-19 08:36:51',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(582,'2025-08-20',2,3,2,1,NULL,8.00,'2025-08-20 06:19:36','2025-08-20 06:19:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(583,'2025-08-20',5,3,1,1,NULL,2.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(584,'2025-08-20',5,3,2,1,NULL,6.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(585,'2025-08-20',4,3,1,1,NULL,2.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(586,'2025-08-20',4,3,2,1,NULL,6.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(587,'2025-08-20',6,3,3,1,NULL,4.00,'2025-08-20 06:43:46','2025-08-20 06:43:46',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(589,'2025-08-20',9,3,3,1,NULL,8.00,'2025-08-20 06:44:23','2025-08-20 06:44:23',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(590,'2025-08-20',8,3,3,1,NULL,8.00,'2025-08-20 06:44:23','2025-08-20 06:44:23',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(591,'2025-08-20',7,3,3,1,NULL,8.00,'2025-08-20 06:44:24','2025-08-20 06:44:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(593,'2025-08-20',1,3,3,1,NULL,8.00,'2025-08-20 06:44:24','2025-08-20 06:44:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(594,'2025-08-20',10,3,3,1,NULL,8.00,'2025-08-20 06:44:26','2025-08-20 06:44:26',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(595,'2025-08-20',3,3,3,1,NULL,8.00,'2025-08-20 06:44:26','2025-08-20 06:44:26',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(596,'2025-08-21',7,3,3,1,NULL,8.00,'2025-08-21 06:30:36','2025-08-21 06:30:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(597,'2025-08-21',1,3,3,1,NULL,8.00,'2025-08-21 06:30:36','2025-08-21 06:30:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(600,'2025-08-21',10,3,3,1,NULL,8.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(601,'2025-08-21',10,3,3,1,NULL,2.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(602,'2025-08-21',9,3,3,1,NULL,8.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(603,'2025-08-21',9,3,3,1,NULL,2.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(608,'2025-08-21',2,3,2,1,NULL,8.00,'2025-08-21 07:54:46','2025-08-21 07:54:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(609,'2025-08-21',2,5,2,1,NULL,2.00,'2025-08-21 07:54:46','2025-08-21 07:54:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(610,'2025-08-21',8,3,3,1,NULL,4.00,'2025-08-21 07:55:25','2025-08-21 07:55:25',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(611,'2025-08-21',8,3,2,1,NULL,6.00,'2025-08-21 07:55:25','2025-08-21 07:55:25',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(612,'2025-08-21',6,3,3,1,NULL,10.00,'2025-08-21 08:24:50','2025-08-21 08:24:50',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(613,'2025-08-21',3,3,3,1,NULL,10.00,'2025-08-21 08:24:50','2025-08-21 08:24:50',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(614,'2025-08-22',2,3,2,1,NULL,8.00,'2025-08-22 06:21:15','2025-08-22 06:21:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(615,'2025-08-22',8,3,2,1,NULL,4.00,'2025-08-22 06:23:12','2025-08-22 06:23:12',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(616,'2025-08-22',8,3,3,1,NULL,4.00,'2025-08-22 06:23:12','2025-08-22 06:23:12',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(617,'2025-08-22',5,3,3,1,NULL,8.00,'2025-08-22 06:23:55','2025-08-22 06:23:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(618,'2025-08-22',6,3,2,1,NULL,4.00,'2025-08-22 06:27:43','2025-08-22 06:27:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(619,'2025-08-22',10,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(620,'2025-08-22',9,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(621,'2025-08-22',7,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(622,'2025-08-22',4,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(623,'2025-08-22',3,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(624,'2025-08-22',1,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(625,'2025-08-23',4,3,2,1,NULL,2.00,'2025-08-23 04:57:02','2025-08-23 04:57:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(626,'2025-08-23',4,3,3,1,NULL,6.00,'2025-08-23 04:57:02','2025-08-23 04:57:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(627,'2025-08-23',2,3,2,1,NULL,8.00,'2025-08-23 04:57:25','2025-08-23 04:57:25',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(628,'2025-08-23',10,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(629,'2025-08-23',9,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(630,'2025-08-23',8,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(631,'2025-08-23',6,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(632,'2025-08-23',5,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(633,'2025-08-23',3,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(634,'2025-08-23',1,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(635,'2025-08-25',10,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(636,'2025-08-25',9,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(637,'2025-08-25',8,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(638,'2025-08-25',7,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(640,'2025-08-25',5,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(641,'2025-08-25',4,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(643,'2025-08-25',2,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(644,'2025-08-25',1,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(645,'2025-08-25',6,3,3,1,NULL,8.00,'2025-08-25 06:49:16','2025-08-25 06:49:16',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(646,'2025-08-25',3,3,3,1,NULL,8.00,'2025-08-25 06:49:17','2025-08-25 06:49:17',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(647,'2025-08-26',4,8,3,1,NULL,8.00,'2025-08-26 07:28:03','2025-08-26 07:28:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(648,'2025-08-26',4,3,3,1,NULL,2.00,'2025-08-26 07:28:03','2025-08-26 07:28:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(649,'2025-08-26',2,8,3,1,NULL,10.00,'2025-08-26 07:28:35','2025-08-26 07:28:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(651,'2025-08-26',9,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(652,'2025-08-26',8,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(653,'2025-08-26',7,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(655,'2025-08-26',5,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(657,'2025-08-26',1,3,3,1,NULL,10.00,'2025-08-26 07:29:03','2025-08-26 07:29:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(658,'2025-08-26',6,3,3,1,NULL,10.00,'2025-08-26 08:22:12','2025-08-26 08:22:12',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(659,'2025-08-26',10,3,3,1,NULL,10.00,'2025-08-26 08:22:12','2025-08-26 08:22:12',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(660,'2025-08-26',3,3,3,1,NULL,10.00,'2025-08-26 08:22:12','2025-08-26 08:22:12',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(661,'2025-08-27',10,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(662,'2025-08-27',9,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(663,'2025-08-27',7,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(664,'2025-08-27',6,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(665,'2025-08-27',5,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(666,'2025-08-27',4,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(667,'2025-08-27',3,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(668,'2025-08-27',1,3,3,2,38,8.00,'2025-08-27 06:44:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(669,'2025-08-27',2,3,3,2,6,2.00,'2025-08-27 06:45:32','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(670,'2025-08-27',2,8,2,1,NULL,6.00,'2025-08-27 06:45:32','2025-08-27 06:45:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(671,'2025-08-27',8,3,3,2,6,2.00,'2025-08-27 06:45:32','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(672,'2025-08-27',8,8,2,1,NULL,6.00,'2025-08-27 06:45:32','2025-08-27 06:45:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(673,'2025-08-28',10,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(674,'2025-08-28',10,3,3,2,6,4.00,'2025-08-28 08:31:42','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(675,'2025-08-28',5,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(676,'2025-08-28',5,3,3,2,6,4.00,'2025-08-28 08:31:42','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(677,'2025-08-28',6,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(678,'2025-08-28',6,3,3,2,6,4.00,'2025-08-28 08:31:42','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(679,'2025-08-28',3,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(680,'2025-08-28',3,3,3,2,6,4.00,'2025-08-28 08:31:42','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(681,'2025-08-28',4,3,3,1,NULL,4.00,'2025-08-28 08:37:46','2025-08-28 08:37:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(682,'2025-08-28',4,5,3,1,NULL,4.00,'2025-08-28 08:37:46','2025-08-28 08:37:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(683,'2025-08-28',8,8,2,1,NULL,4.00,'2025-08-28 08:38:15','2025-08-28 08:38:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(684,'2025-08-28',8,5,3,1,NULL,4.00,'2025-08-28 08:38:15','2025-08-28 08:38:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(685,'2025-08-28',2,3,3,2,6,2.00,'2025-08-28 08:38:50','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(686,'2025-08-28',2,5,3,1,NULL,6.00,'2025-08-28 08:38:50','2025-08-28 08:38:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(687,'2025-08-28',1,3,3,2,6,8.00,'2025-08-28 08:39:24','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(689,'2025-08-28',9,3,3,2,43,8.00,'2025-08-28 08:40:00','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(690,'2025-08-28',7,3,3,2,43,8.00,'2025-08-28 08:40:00','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(694,'2025-08-28',4,5,3,1,NULL,2.00,'2025-08-28 08:44:56','2025-08-28 08:44:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(695,'2025-08-28',8,5,3,1,NULL,2.00,'2025-08-28 08:44:56','2025-08-28 08:44:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(696,'2025-08-28',2,5,3,1,NULL,2.00,'2025-08-28 08:44:56','2025-08-28 08:44:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(698,'2025-08-28',9,3,3,1,NULL,2.00,'2025-08-28 08:45:19','2025-08-28 08:45:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(699,'2025-08-28',7,3,3,1,NULL,2.00,'2025-08-28 08:45:19','2025-08-28 08:45:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(703,'2025-08-29',10,3,3,2,38,8.00,'2025-08-29 06:47:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(704,'2025-08-29',9,3,3,2,38,8.00,'2025-08-29 06:47:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(706,'2025-08-29',7,3,3,2,38,8.00,'2025-08-29 06:47:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(710,'2025-08-29',1,3,3,2,38,8.00,'2025-08-29 06:47:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(713,'2025-08-29',5,3,3,1,NULL,6.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(714,'2025-08-29',5,3,3,2,6,2.00,'2025-08-29 06:47:35','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(715,'2025-08-29',3,3,3,1,NULL,6.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(716,'2025-08-29',3,3,3,2,6,2.00,'2025-08-29 06:47:35','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(717,'2025-08-29',6,3,3,1,NULL,6.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(718,'2025-08-29',6,3,3,2,6,2.00,'2025-08-29 06:47:35','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(719,'2025-08-29',8,5,3,1,NULL,8.00,'2025-08-29 21:55:56','2025-08-29 21:55:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(720,'2025-08-29',4,5,3,1,NULL,8.00,'2025-08-29 21:55:56','2025-08-29 21:55:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(721,'2025-08-29',2,5,3,1,NULL,8.00,'2025-08-29 21:55:56','2025-08-29 21:55:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(722,'2025-08-30',2,5,3,1,NULL,8.00,'2025-08-30 05:12:03','2025-08-30 05:12:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(723,'2025-08-30',8,5,3,1,NULL,8.00,'2025-08-30 05:12:03','2025-08-30 05:12:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(724,'2025-08-30',4,5,3,1,NULL,8.00,'2025-08-30 05:12:03','2025-08-30 05:12:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(725,'2025-08-30',10,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(726,'2025-08-30',9,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(727,'2025-08-30',7,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(728,'2025-08-30',6,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(729,'2025-08-30',5,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(730,'2025-08-30',3,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(731,'2025-08-30',1,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(732,'2025-09-01',7,3,3,1,NULL,8.00,'2025-09-01 06:18:28','2025-09-01 06:18:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(733,'2025-09-01',9,3,3,1,NULL,8.00,'2025-09-01 06:18:28','2025-09-01 06:18:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(734,'2025-09-01',10,3,3,2,38,4.00,'2025-09-01 06:19:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(735,'2025-09-01',3,3,3,2,38,4.00,'2025-09-01 06:19:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(736,'2025-09-01',1,3,3,2,38,4.00,'2025-09-01 06:19:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(737,'2025-09-01',10,3,3,1,NULL,4.00,'2025-09-01 06:19:35','2025-09-01 06:19:35',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(738,'2025-09-01',3,3,3,1,NULL,4.00,'2025-09-01 06:19:35','2025-09-01 06:19:35',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(739,'2025-09-01',1,3,3,1,NULL,4.00,'2025-09-01 06:19:35','2025-09-01 06:19:35',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(740,'2025-09-01',5,3,3,2,6,8.00,'2025-09-01 06:20:03','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(741,'2025-08-21',4,3,3,1,NULL,10.00,'2025-09-01 23:18:03','2025-09-01 23:18:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(742,'2025-08-21',5,3,3,1,NULL,10.00,'2025-09-01 23:18:03','2025-09-01 23:18:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(745,'2025-09-02',10,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(746,'2025-09-02',9,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(747,'2025-09-02',6,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(748,'2025-09-02',5,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(749,'2025-09-02',3,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(750,'2025-09-02',1,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(751,'2025-09-02',10,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(752,'2025-09-02',9,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(753,'2025-09-02',6,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(754,'2025-09-02',5,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(755,'2025-09-02',3,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(756,'2025-09-02',1,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(757,'2025-09-02',8,3,3,1,NULL,10.00,'2025-09-02 07:37:19','2025-09-02 07:37:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(758,'2025-09-02',7,3,3,1,NULL,10.00,'2025-09-02 07:37:19','2025-09-02 07:37:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(759,'2025-09-02',2,5,3,1,NULL,8.00,'2025-09-02 08:16:14','2025-09-02 08:16:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(760,'2025-09-02',2,5,3,1,NULL,2.00,'2025-09-02 08:16:14','2025-09-02 08:16:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(761,'2025-09-02',4,5,3,1,NULL,8.00,'2025-09-02 08:16:14','2025-09-02 08:16:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(762,'2025-09-02',4,5,3,1,NULL,2.00,'2025-09-02 08:16:14','2025-09-02 08:16:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(763,'2025-09-03',10,3,3,1,NULL,8.00,'2025-09-03 06:34:47','2025-09-03 06:34:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(764,'2025-09-03',9,3,3,1,NULL,8.00,'2025-09-03 06:34:47','2025-09-03 06:34:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(765,'2025-09-03',8,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(766,'2025-09-03',7,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(767,'2025-09-03',6,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(768,'2025-09-03',5,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(769,'2025-09-03',3,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(770,'2025-09-03',1,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(771,'2025-09-03',2,5,3,1,NULL,8.00,'2025-09-03 06:44:18','2025-09-03 06:44:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(772,'2025-09-04',10,3,3,1,NULL,8.00,'2025-09-04 06:41:32','2025-09-04 06:41:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(773,'2025-09-04',5,3,3,1,NULL,8.00,'2025-09-04 06:41:32','2025-09-04 06:41:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(774,'2025-09-04',9,3,3,1,NULL,8.00,'2025-09-04 06:41:32','2025-09-04 06:41:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(775,'2025-09-04',8,3,3,1,NULL,8.00,'2025-09-04 06:41:32','2025-09-04 06:41:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(776,'2025-09-04',3,3,3,1,NULL,8.00,'2025-09-04 06:41:33','2025-09-04 06:41:33',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(777,'2025-09-04',7,3,3,1,NULL,8.00,'2025-09-04 06:41:33','2025-09-04 06:41:33',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(778,'2025-09-04',1,3,3,1,NULL,8.00,'2025-09-04 06:41:33','2025-09-04 06:41:33',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(779,'2025-09-04',6,3,3,1,NULL,8.00,'2025-09-04 06:41:33','2025-09-04 06:41:33',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(780,'2025-09-04',2,5,3,1,NULL,8.00,'2025-09-04 06:48:34','2025-09-04 06:48:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(781,'2025-09-04',4,5,3,1,NULL,8.00,'2025-09-04 06:48:34','2025-09-04 06:48:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(782,'2025-09-05',10,3,3,1,NULL,8.00,'2025-09-05 06:39:30','2025-09-05 06:39:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(783,'2025-09-05',9,3,3,1,NULL,8.00,'2025-09-05 06:39:30','2025-09-05 06:39:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(784,'2025-09-05',7,3,3,1,NULL,8.00,'2025-09-05 06:39:30','2025-09-05 06:39:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(785,'2025-09-05',6,3,3,1,NULL,8.00,'2025-09-05 06:39:31','2025-09-05 06:39:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(786,'2025-09-05',5,3,3,1,NULL,8.00,'2025-09-05 06:39:31','2025-09-05 06:39:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(787,'2025-09-05',3,3,3,1,NULL,8.00,'2025-09-05 06:39:31','2025-09-05 06:39:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(788,'2025-09-05',1,3,3,1,NULL,8.00,'2025-09-05 06:39:31','2025-09-05 06:39:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(789,'2025-09-05',2,5,3,1,NULL,8.00,'2025-09-05 22:09:55','2025-09-05 22:09:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(790,'2025-09-05',8,5,3,1,NULL,8.00,'2025-09-05 22:09:55','2025-09-05 22:09:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(791,'2025-09-05',4,5,3,1,NULL,8.00,'2025-09-05 22:09:55','2025-09-05 22:09:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(792,'2025-09-06',8,10,3,1,NULL,8.00,'2025-09-06 04:21:10','2025-09-06 04:21:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(793,'2025-09-06',4,10,3,1,NULL,8.00,'2025-09-06 04:21:10','2025-09-06 04:21:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(794,'2025-09-06',2,10,3,1,NULL,8.00,'2025-09-06 04:21:10','2025-09-06 04:21:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(795,'2025-09-06',10,3,3,1,NULL,8.00,'2025-09-06 05:28:18','2025-09-06 05:28:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(796,'2025-09-06',9,3,3,1,NULL,8.00,'2025-09-06 05:28:18','2025-09-06 05:28:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(797,'2025-09-06',7,3,3,1,NULL,8.00,'2025-09-06 05:28:18','2025-09-06 05:28:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(798,'2025-09-06',6,3,3,1,NULL,8.00,'2025-09-06 05:28:19','2025-09-06 05:28:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(799,'2025-09-06',5,3,3,1,NULL,8.00,'2025-09-06 05:28:19','2025-09-06 05:28:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(800,'2025-09-06',3,3,3,1,NULL,8.00,'2025-09-06 05:28:19','2025-09-06 05:28:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(801,'2025-09-06',1,3,3,1,NULL,8.00,'2025-09-06 05:28:19','2025-09-06 05:28:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(802,'2025-09-08',10,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(803,'2025-09-08',9,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(804,'2025-09-08',7,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(805,'2025-09-08',6,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(806,'2025-09-08',5,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(807,'2025-09-08',3,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(808,'2025-09-08',1,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(809,'2025-09-08',8,5,3,1,NULL,8.00,'2025-09-08 06:47:37','2025-09-08 06:47:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(810,'2025-09-08',4,5,3,1,NULL,8.00,'2025-09-08 06:47:37','2025-09-08 06:47:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(811,'2025-09-08',2,5,3,1,NULL,8.00,'2025-09-08 06:47:37','2025-09-08 06:47:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(812,'2025-09-09',10,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(813,'2025-09-09',9,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(814,'2025-09-09',7,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(815,'2025-09-09',6,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(816,'2025-09-09',5,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(817,'2025-09-09',3,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(818,'2025-09-09',1,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(819,'2025-09-09',8,5,3,1,NULL,8.00,'2025-09-09 06:44:29','2025-09-09 06:44:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(820,'2025-09-09',4,5,3,1,NULL,8.00,'2025-09-09 06:44:29','2025-09-09 06:44:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(821,'2025-09-09',2,5,3,1,NULL,8.00,'2025-09-09 06:44:29','2025-09-09 06:44:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(822,'2025-09-10',10,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(823,'2025-09-10',9,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(824,'2025-09-10',7,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(825,'2025-09-10',6,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(826,'2025-09-10',5,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(827,'2025-09-10',3,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(828,'2025-09-10',1,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(829,'2025-09-10',8,5,3,1,NULL,8.00,'2025-09-10 06:48:43','2025-09-10 06:48:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(830,'2025-09-10',4,5,3,1,NULL,8.00,'2025-09-10 06:48:43','2025-09-10 06:48:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(831,'2025-09-10',2,5,3,1,NULL,8.00,'2025-09-10 06:48:43','2025-09-10 06:48:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(832,'2025-09-11',2,5,3,1,NULL,2.00,'2025-09-11 06:37:11','2025-09-11 06:37:11',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(833,'2025-09-11',2,8,3,1,NULL,6.00,'2025-09-11 06:37:11','2025-09-11 06:37:11',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(834,'2025-09-11',4,5,3,1,NULL,2.00,'2025-09-11 06:38:24','2025-09-11 06:38:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(835,'2025-09-11',4,8,3,1,NULL,2.00,'2025-09-11 06:38:24','2025-09-11 06:38:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(836,'2025-09-11',4,3,3,1,NULL,4.00,'2025-09-11 06:38:24','2025-09-11 06:38:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(838,'2025-09-11',1,3,1,1,NULL,4.00,'2025-09-11 06:40:48','2025-09-11 06:40:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(840,'2025-09-11',5,3,2,1,NULL,8.00,'2025-09-11 06:41:47','2025-09-11 06:41:47',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(841,'2025-09-11',8,3,2,1,NULL,8.00,'2025-09-11 06:41:47','2025-09-11 06:41:47',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(842,'2025-09-11',3,3,2,1,NULL,8.00,'2025-09-11 06:41:47','2025-09-11 06:41:47',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(843,'2025-09-11',7,3,2,1,NULL,8.00,'2025-09-11 06:41:47','2025-09-11 06:41:47',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(844,'2025-09-11',6,3,2,1,NULL,8.00,'2025-09-11 06:41:47','2025-09-11 06:41:47',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(845,'2025-09-11',10,3,2,1,NULL,4.00,'2025-09-11 06:41:51','2025-09-11 06:41:51',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(846,'2025-09-11',10,3,3,1,NULL,4.00,'2025-09-11 06:41:51','2025-09-11 06:41:51',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(847,'2025-09-11',9,3,2,1,NULL,4.00,'2025-09-11 06:41:51','2025-09-11 06:41:51',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(848,'2025-09-11',9,3,3,1,NULL,4.00,'2025-09-11 06:41:51','2025-09-11 06:41:51',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(851,'2025-09-12',10,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(852,'2025-09-12',9,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(853,'2025-09-12',8,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(854,'2025-09-12',6,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(855,'2025-09-12',5,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(856,'2025-09-12',4,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(857,'2025-09-12',3,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(858,'2025-09-12',2,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(859,'2025-09-12',1,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(860,'2025-09-12',7,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(861,'2025-09-13',10,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(862,'2025-09-13',8,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(863,'2025-09-13',7,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(864,'2025-09-13',6,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(865,'2025-09-13',5,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(866,'2025-09-13',4,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(867,'2025-09-13',3,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(868,'2025-09-13',2,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(869,'2025-09-13',1,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(870,'2025-09-14',9,3,3,1,NULL,8.00,'2025-09-14 04:47:40','2025-09-14 04:47:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(871,'2025-09-14',8,3,3,1,NULL,8.00,'2025-09-14 04:47:40','2025-09-14 04:47:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(872,'2025-09-14',7,3,3,1,NULL,8.00,'2025-09-14 04:47:40','2025-09-14 04:47:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(873,'2025-09-14',6,3,3,1,NULL,8.00,'2025-09-14 04:47:40','2025-09-14 04:47:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(874,'2025-09-14',5,3,3,1,NULL,8.00,'2025-09-14 04:47:41','2025-09-14 04:47:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(875,'2025-09-14',4,3,3,1,NULL,8.00,'2025-09-14 04:47:41','2025-09-14 04:47:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(876,'2025-09-14',3,3,3,1,NULL,8.00,'2025-09-14 04:47:41','2025-09-14 04:47:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(877,'2025-09-14',2,3,3,1,NULL,8.00,'2025-09-14 04:47:41','2025-09-14 04:47:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(878,'2025-09-14',1,3,3,1,NULL,8.00,'2025-09-14 04:47:41','2025-09-14 04:47:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(879,'2025-09-15',5,3,3,1,NULL,8.00,'2025-09-15 06:50:00','2025-09-15 06:50:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(880,'2025-09-15',10,3,3,1,NULL,8.00,'2025-09-15 06:50:00','2025-09-15 06:50:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(881,'2025-09-15',9,3,3,1,NULL,8.00,'2025-09-15 06:50:00','2025-09-15 06:50:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(882,'2025-09-15',8,3,3,1,NULL,8.00,'2025-09-15 06:50:00','2025-09-15 06:50:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(883,'2025-09-15',7,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(884,'2025-09-15',6,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(885,'2025-09-15',4,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(886,'2025-09-15',3,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(887,'2025-09-15',2,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(888,'2025-09-15',1,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(889,'2025-09-16',2,8,3,1,NULL,8.00,'2025-09-16 06:51:19','2025-09-16 06:51:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(890,'2025-09-16',4,8,3,1,NULL,8.00,'2025-09-16 06:51:19','2025-09-16 06:51:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(891,'2025-09-16',8,8,2,1,NULL,2.00,'2025-09-16 06:52:12','2025-09-16 06:52:12',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(892,'2025-09-16',8,3,2,1,NULL,6.00,'2025-09-16 06:52:12','2025-09-16 06:52:12',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(893,'2025-09-17',4,8,3,1,NULL,8.00,'2025-09-17 06:43:08','2025-09-17 06:43:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(894,'2025-09-17',2,8,3,1,NULL,8.00,'2025-09-17 06:43:08','2025-09-17 06:43:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(895,'2025-09-17',10,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(896,'2025-09-17',9,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(897,'2025-09-17',8,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(898,'2025-09-17',7,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(899,'2025-09-17',6,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(900,'2025-09-17',5,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(901,'2025-09-17',3,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(902,'2025-09-17',1,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(903,'2025-09-18',7,3,3,1,NULL,8.00,'2025-09-18 06:43:40','2025-09-18 06:43:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(904,'2025-09-18',1,3,3,1,NULL,8.00,'2025-09-18 06:43:40','2025-09-18 06:43:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(905,'2025-09-18',10,3,2,1,NULL,8.00,'2025-09-18 06:44:42','2025-09-18 06:44:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(906,'2025-09-18',9,3,2,1,NULL,8.00,'2025-09-18 06:44:42','2025-09-18 06:44:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(907,'2025-09-18',8,3,2,1,NULL,8.00,'2025-09-18 06:44:42','2025-09-18 06:44:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(908,'2025-09-18',6,3,2,1,NULL,8.00,'2025-09-18 06:44:42','2025-09-18 06:44:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(909,'2025-09-18',3,3,2,1,NULL,8.00,'2025-09-18 06:44:42','2025-09-18 06:44:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(910,'2025-09-18',5,3,2,1,NULL,6.00,'2025-09-18 06:46:39','2025-09-18 06:46:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(911,'2025-09-18',2,8,3,1,NULL,8.00,'2025-09-18 06:54:48','2025-09-18 06:54:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(912,'2025-09-18',4,8,3,1,NULL,8.00,'2025-09-18 06:54:48','2025-09-18 06:54:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(913,'2025-09-19',4,8,3,1,NULL,8.00,'2025-09-19 06:51:40','2025-09-19 06:51:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(914,'2025-09-19',2,8,3,1,NULL,8.00,'2025-09-19 06:51:40','2025-09-19 06:51:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(915,'2025-09-19',10,3,2,1,NULL,8.00,'2025-09-19 06:52:05','2025-09-19 06:52:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(916,'2025-09-19',8,3,2,1,NULL,8.00,'2025-09-19 06:52:05','2025-09-19 06:52:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(917,'2025-09-19',7,3,2,1,NULL,8.00,'2025-09-19 06:52:05','2025-09-19 06:52:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(918,'2025-09-19',6,3,2,1,NULL,8.00,'2025-09-19 06:52:05','2025-09-19 06:52:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(919,'2025-09-19',5,3,2,1,NULL,8.00,'2025-09-19 06:52:05','2025-09-19 06:52:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(920,'2025-09-19',3,3,2,1,NULL,4.00,'2025-09-19 06:52:23','2025-09-19 06:52:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(921,'2025-09-20',4,8,3,1,NULL,8.00,'2025-09-20 05:30:19','2025-09-20 05:30:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(922,'2025-09-20',2,8,3,1,NULL,8.00,'2025-09-20 05:30:19','2025-09-20 05:30:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(923,'2025-09-22',10,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(924,'2025-09-22',9,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(925,'2025-09-22',8,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(926,'2025-09-22',7,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(927,'2025-09-22',5,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(928,'2025-09-22',1,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(929,'2025-09-22',4,8,3,1,NULL,8.00,'2025-09-22 06:50:29','2025-09-22 06:50:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(930,'2025-09-22',2,8,3,1,NULL,8.00,'2025-09-22 06:50:29','2025-09-22 06:50:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(931,'2025-09-23',4,8,3,1,NULL,8.00,'2025-09-23 05:46:40','2025-09-23 05:46:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(932,'2025-09-23',2,8,3,1,NULL,8.00,'2025-09-23 05:46:40','2025-09-23 05:46:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(933,'2025-09-24',4,8,3,1,NULL,8.00,'2025-09-25 01:14:58','2025-09-25 01:14:58',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(934,'2025-09-24',2,8,3,1,NULL,8.00,'2025-09-25 01:14:58','2025-09-25 01:14:58',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(935,'2025-09-29',7,14,1,1,NULL,8.00,'2025-09-29 06:36:07','2025-09-29 06:36:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(936,'2025-09-29',1,14,1,1,NULL,8.00,'2025-09-29 06:36:07','2025-09-29 06:36:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(937,'2025-09-29',10,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(938,'2025-09-29',8,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(939,'2025-09-29',6,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(940,'2025-09-29',9,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(941,'2025-09-29',5,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(942,'2025-09-29',4,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(943,'2025-09-29',3,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(944,'2025-09-29',2,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(945,'2025-09-30',10,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(946,'2025-09-30',9,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(947,'2025-09-30',8,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(948,'2025-09-30',6,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(949,'2025-09-30',5,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(950,'2025-09-30',4,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(951,'2025-09-30',3,3,2,1,NULL,8.00,'2025-09-30 06:52:27','2025-09-30 06:52:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(953,'2025-09-30',1,3,2,1,NULL,8.00,'2025-09-30 06:52:27','2025-09-30 06:52:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(954,'2025-09-30',2,8,3,1,NULL,8.00,'2025-09-30 06:56:55','2025-09-30 06:56:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(955,'2025-10-02',5,3,2,1,NULL,6.00,'2025-10-02 05:25:58','2025-10-02 05:25:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(956,'2025-10-02',8,3,2,1,NULL,6.00,'2025-10-02 05:25:59','2025-10-02 05:25:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(957,'2025-10-02',10,3,2,1,NULL,8.00,'2025-10-02 06:22:32','2025-10-02 06:22:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(958,'2025-10-02',9,3,2,1,NULL,8.00,'2025-10-02 06:22:32','2025-10-02 06:22:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(959,'2025-10-02',7,3,2,1,NULL,8.00,'2025-10-02 06:22:32','2025-10-02 06:22:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(960,'2025-10-02',6,3,2,1,NULL,8.00,'2025-10-02 06:22:32','2025-10-02 06:22:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(961,'2025-10-02',4,3,2,1,NULL,8.00,'2025-10-02 06:22:33','2025-10-02 06:22:33',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(962,'2025-10-02',2,3,2,1,NULL,8.00,'2025-10-02 06:22:33','2025-10-02 06:22:33',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(963,'2025-10-02',1,3,2,1,NULL,8.00,'2025-10-02 06:22:33','2025-10-02 06:22:33',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(964,'2025-09-01',8,5,3,1,NULL,8.00,'2025-10-10 23:35:07','2025-10-10 23:35:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(965,'2025-09-01',4,5,3,1,NULL,8.00,'2025-10-10 23:35:07','2025-10-10 23:35:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(966,'2025-09-01',2,5,3,1,NULL,8.00,'2025-10-10 23:35:07','2025-10-10 23:35:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(967,'2025-10-13',10,10,3,1,NULL,8.00,'2025-10-13 06:53:05','2025-10-13 06:53:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(968,'2025-10-13',7,10,3,1,NULL,8.00,'2025-10-13 06:53:05','2025-10-13 06:53:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(969,'2025-10-13',2,10,3,1,NULL,8.00,'2025-10-13 06:53:05','2025-10-13 06:53:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(970,'2025-10-13',8,3,2,1,NULL,8.00,'2025-10-13 06:53:30','2025-10-13 06:53:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(971,'2025-10-13',6,3,2,1,NULL,8.00,'2025-10-13 06:53:30','2025-10-13 06:53:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(972,'2025-10-13',3,3,2,1,NULL,8.00,'2025-10-13 06:53:30','2025-10-13 06:53:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(973,'2025-10-13',5,3,3,1,NULL,8.00,'2025-10-13 06:53:53','2025-10-13 06:53:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(974,'2025-10-13',4,3,3,1,NULL,8.00,'2025-10-13 06:53:53','2025-10-13 06:53:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(975,'2025-10-13',9,3,2,1,NULL,4.00,'2025-10-13 06:54:19','2025-10-13 06:54:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(976,'2025-10-13',9,10,3,1,NULL,4.00,'2025-10-13 06:54:19','2025-10-13 06:54:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(977,'2025-10-13',1,3,1,1,NULL,8.00,'2025-10-13 06:54:41','2025-10-13 06:54:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(978,'2025-10-14',10,10,3,1,NULL,8.00,'2025-10-14 06:55:49','2025-10-14 06:55:49',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(979,'2025-10-14',2,10,3,1,NULL,8.00,'2025-10-14 06:55:49','2025-10-14 06:55:49',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(980,'2025-10-14',9,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(981,'2025-10-14',8,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(982,'2025-10-14',7,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(983,'2025-10-14',6,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(984,'2025-10-14',5,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(985,'2025-10-14',4,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(986,'2025-10-14',3,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(987,'2025-10-14',1,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(988,'2025-10-15',8,3,2,1,NULL,8.00,'2025-10-15 06:58:52','2025-10-15 06:58:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(989,'2025-10-15',7,3,2,1,NULL,8.00,'2025-10-15 06:58:52','2025-10-15 06:58:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(990,'2025-10-15',6,3,2,1,NULL,8.00,'2025-10-15 06:58:52','2025-10-15 06:58:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(991,'2025-10-15',5,3,2,1,NULL,8.00,'2025-10-15 06:58:52','2025-10-15 06:58:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(992,'2025-10-15',4,3,2,1,NULL,8.00,'2025-10-15 06:58:53','2025-10-15 06:58:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(993,'2025-10-15',3,3,2,1,NULL,8.00,'2025-10-15 06:58:53','2025-10-15 06:58:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(994,'2025-10-15',1,3,2,1,NULL,8.00,'2025-10-15 06:58:53','2025-10-15 06:58:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(995,'2025-10-15',10,10,3,1,6,8.00,'2025-10-15 06:59:41','2026-02-05 22:40:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(996,'2025-10-15',9,10,3,1,NULL,8.00,'2025-10-15 06:59:41','2025-10-15 06:59:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(997,'2025-10-15',2,10,3,1,NULL,4.00,'2025-10-15 07:00:06','2025-10-15 07:00:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(998,'2025-10-16',9,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(999,'2025-10-16',8,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1000,'2025-10-16',7,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1001,'2025-10-16',6,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1002,'2025-10-16',5,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1003,'2025-10-16',4,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1004,'2025-10-16',3,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1005,'2025-10-16',1,3,2,1,NULL,8.00,'2025-10-16 06:52:00','2025-10-16 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1006,'2025-10-20',9,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1007,'2025-10-20',8,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1008,'2025-10-20',7,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1009,'2025-10-20',6,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1010,'2025-10-20',5,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1011,'2025-10-20',4,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1012,'2025-10-20',3,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1013,'2025-10-20',1,3,2,1,NULL,8.00,'2025-10-20 06:49:46','2025-10-20 06:49:46',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1014,'2025-10-20',2,10,3,1,NULL,8.00,'2025-10-20 06:50:55','2025-10-20 06:50:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1015,'2025-10-20',10,10,3,1,NULL,8.00,'2025-10-20 06:50:55','2025-10-20 06:50:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1017,'2025-10-21',10,3,3,1,NULL,4.00,'2025-10-21 08:42:41','2025-10-21 08:42:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1019,'2025-10-21',2,3,3,1,NULL,4.00,'2025-10-21 08:42:41','2025-10-21 08:42:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1020,'2025-10-21',8,3,2,1,NULL,10.00,'2025-10-21 08:43:34','2025-10-21 08:43:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1021,'2025-10-21',6,3,2,1,NULL,10.00,'2025-10-21 08:43:34','2025-10-21 08:43:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1022,'2025-10-21',3,3,2,1,NULL,10.00,'2025-10-21 08:43:34','2025-10-21 08:43:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1023,'2025-10-21',10,10,3,1,NULL,6.00,'2025-10-21 08:44:26','2025-10-21 08:44:26',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1024,'2025-10-21',2,10,3,1,NULL,6.00,'2025-10-21 08:44:27','2025-10-21 08:44:27',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1025,'2025-10-21',5,3,3,1,NULL,10.00,'2025-10-21 08:45:01','2025-10-21 08:45:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1026,'2025-10-21',4,3,3,1,NULL,10.00,'2025-10-21 08:45:01','2025-10-21 08:45:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1027,'2025-10-21',9,3,3,1,NULL,10.00,'2025-10-21 08:45:28','2025-10-21 08:45:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1028,'2025-10-21',1,3,3,1,NULL,10.00,'2025-10-21 08:45:28','2025-10-21 08:45:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1029,'2025-10-21',7,3,3,1,NULL,10.00,'2025-10-21 08:45:28','2025-10-21 08:45:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1030,'2025-10-22',2,11,2,1,NULL,4.00,'2025-10-22 06:47:36','2025-10-22 06:47:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1031,'2025-10-22',2,10,1,1,NULL,4.00,'2025-10-22 06:47:36','2025-10-22 06:47:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1032,'2025-10-22',10,11,2,1,NULL,4.00,'2025-10-22 06:47:36','2025-10-22 06:47:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1033,'2025-10-22',10,10,1,1,NULL,4.00,'2025-10-22 06:47:36','2025-10-22 06:47:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1034,'2025-10-22',9,3,3,1,NULL,8.00,'2025-10-22 06:48:06','2025-10-22 06:48:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1035,'2025-10-22',8,3,3,1,NULL,8.00,'2025-10-22 06:48:06','2025-10-22 06:48:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1036,'2025-10-22',6,3,3,1,NULL,8.00,'2025-10-22 06:48:06','2025-10-22 06:48:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1039,'2025-10-22',7,3,3,1,NULL,8.00,'2025-10-22 06:48:11','2025-10-22 06:48:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1043,'2025-10-22',3,3,3,1,NULL,8.00,'2025-10-22 06:48:11','2025-10-22 06:48:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1044,'2025-10-22',1,3,3,1,NULL,8.00,'2025-10-22 06:48:11','2025-10-22 06:48:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1047,'2025-10-22',5,11,3,1,NULL,8.00,'2025-10-22 06:48:50','2025-10-22 06:48:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1048,'2025-10-22',4,11,3,1,NULL,8.00,'2025-10-22 06:48:50','2025-10-22 06:48:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1051,'2025-10-24',9,3,3,1,NULL,8.00,'2025-10-24 06:47:05','2025-10-24 06:47:05',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1052,'2025-10-24',8,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1053,'2025-10-24',7,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1054,'2025-10-24',6,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1055,'2025-10-24',5,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1056,'2025-10-24',3,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1057,'2025-10-24',1,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1058,'2025-10-24',4,3,3,1,NULL,4.00,'2025-10-24 06:48:13','2025-10-24 06:48:13',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1059,'2025-10-25',10,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1060,'2025-10-25',8,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1061,'2025-10-25',6,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1062,'2025-10-25',5,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1063,'2025-10-25',4,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1064,'2025-10-25',3,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1065,'2025-10-25',1,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1066,'2025-10-27',9,3,3,1,NULL,8.00,'2025-10-27 06:41:58','2025-10-27 06:41:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1067,'2025-10-27',8,3,3,1,NULL,8.00,'2025-10-27 06:41:58','2025-10-27 06:41:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1070,'2025-10-27',5,3,3,1,NULL,8.00,'2025-10-27 06:41:58','2025-10-27 06:41:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1071,'2025-10-27',4,3,3,1,NULL,8.00,'2025-10-27 06:41:58','2025-10-27 06:41:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1072,'2025-10-27',3,3,3,1,NULL,8.00,'2025-10-27 06:41:58','2025-10-27 06:41:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1074,'2025-10-27',6,3,3,1,NULL,4.00,'2025-10-27 06:43:11','2025-10-27 06:43:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1075,'2025-10-27',10,10,3,1,NULL,8.00,'2025-10-28 08:44:41','2025-10-28 08:44:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1076,'2025-10-27',2,10,3,1,NULL,8.00,'2025-10-28 08:44:41','2025-10-28 08:44:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1077,'2025-10-28',10,10,3,1,NULL,10.00,'2025-10-28 08:45:05','2025-10-28 08:45:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1078,'2025-10-28',2,10,3,1,NULL,10.00,'2025-10-28 08:45:05','2025-10-28 08:45:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1079,'2025-10-28',7,3,1,2,6,10.00,'2025-10-28 08:47:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1080,'2025-10-28',1,3,1,2,6,10.00,'2025-10-28 08:47:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1081,'2025-10-28',9,3,3,1,NULL,10.00,'2025-10-28 08:48:02','2025-10-28 08:48:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1082,'2025-10-28',8,3,3,1,NULL,10.00,'2025-10-28 08:48:02','2025-10-28 08:48:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1083,'2025-10-28',6,3,3,1,NULL,10.00,'2025-10-28 08:48:02','2025-10-28 08:48:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1084,'2025-10-28',5,3,3,1,NULL,10.00,'2025-10-28 08:48:02','2025-10-28 08:48:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1085,'2025-10-28',4,3,3,1,NULL,10.00,'2025-10-28 08:48:03','2025-10-28 08:48:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1086,'2025-10-28',3,3,3,1,NULL,10.00,'2025-10-28 08:48:03','2025-10-28 08:48:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1087,'2025-10-29',8,3,3,1,NULL,8.00,'2025-10-29 06:51:34','2025-10-29 06:51:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1089,'2025-10-29',6,3,3,1,NULL,8.00,'2025-10-29 06:51:34','2025-10-29 06:51:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1090,'2025-10-29',5,3,3,1,NULL,8.00,'2025-10-29 06:51:34','2025-10-29 06:51:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1091,'2025-10-29',4,3,3,1,NULL,8.00,'2025-10-29 06:51:34','2025-10-29 06:51:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1092,'2025-10-29',3,3,3,1,NULL,8.00,'2025-10-29 06:51:34','2025-10-29 06:51:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1094,'2025-10-29',10,10,3,1,NULL,8.00,'2025-10-29 06:51:44','2025-10-29 06:51:44',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1095,'2025-10-29',2,10,3,1,NULL,8.00,'2025-10-29 06:51:44','2025-10-29 06:51:44',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1097,'2025-10-30',8,3,3,1,NULL,8.00,'2025-10-30 08:49:06','2025-10-30 08:49:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1098,'2025-10-30',8,10,3,1,NULL,2.00,'2025-10-30 08:49:06','2025-10-30 08:49:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1099,'2025-10-30',9,13,4,1,NULL,0.00,'2025-10-30 08:49:47','2025-10-30 08:49:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1100,'2025-10-30',7,3,3,1,NULL,10.00,'2025-10-30 08:50:19','2025-10-30 08:50:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1101,'2025-10-30',5,11,3,1,NULL,10.00,'2025-10-30 08:50:43','2025-10-30 08:50:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1102,'2025-10-30',4,11,3,1,NULL,10.00,'2025-10-30 08:50:43','2025-10-30 08:50:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1104,'2025-10-30',2,10,3,1,NULL,10.00,'2025-10-30 08:51:30','2025-10-30 08:51:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1105,'2025-10-30',6,3,3,1,NULL,10.00,'2025-10-30 08:52:04','2025-10-30 08:52:04',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1106,'2025-10-30',3,3,3,1,NULL,10.00,'2025-10-30 08:52:04','2025-10-30 08:52:04',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1107,'2025-10-31',9,10,3,2,6,8.00,'2025-10-31 06:53:09','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1108,'2025-10-31',2,10,3,2,6,8.00,'2025-10-31 06:53:09','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1110,'2025-11-01',10,10,3,1,NULL,8.00,'2025-11-01 05:55:09','2025-11-01 05:55:09',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1111,'2025-11-01',9,10,3,1,NULL,8.00,'2025-11-01 05:55:09','2025-11-01 05:55:09',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1112,'2025-11-01',2,10,3,1,NULL,8.00,'2025-11-01 05:55:09','2025-11-01 05:55:09',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1113,'2025-10-30',1,13,1,1,NULL,2.00,'2025-11-03 21:48:30','2025-11-03 21:48:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1114,'2025-10-30',9,13,1,1,NULL,8.00,'2025-11-03 21:56:32','2025-11-03 21:56:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1115,'2025-10-01',10,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1116,'2025-10-01',4,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1117,'2025-10-01',3,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1118,'2025-10-01',9,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1119,'2025-10-01',8,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1120,'2025-10-01',2,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1121,'2025-10-01',1,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1122,'2025-10-01',7,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1123,'2025-10-01',6,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1124,'2025-10-01',5,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1125,'2025-10-02',5,13,1,1,NULL,2.00,'2025-11-04 05:30:23','2025-11-04 05:30:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1126,'2025-10-02',8,13,1,1,NULL,2.00,'2025-11-04 05:31:11','2025-11-04 05:31:11',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1127,'2025-10-02',3,13,11,1,NULL,8.00,'2025-11-04 06:09:53','2025-11-04 06:09:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1128,'2025-10-15',2,13,11,1,NULL,4.00,'2025-11-04 06:10:29','2025-11-04 06:10:29',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1130,'2025-10-16',2,10,3,2,6,8.00,'2025-11-04 06:11:29','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1131,'2025-10-16',10,10,3,2,6,8.00,'2025-11-04 06:11:47','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1132,'2025-10-24',10,10,3,2,6,8.00,'2025-11-04 06:12:35','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1133,'2025-10-24',2,10,3,2,6,8.00,'2025-11-04 06:12:51','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1134,'2025-10-24',4,13,11,1,NULL,4.00,'2025-11-04 06:13:01','2025-11-04 06:13:01',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1135,'2025-10-27',6,13,11,1,NULL,4.00,'2025-11-04 06:13:24','2025-11-04 06:13:24',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1136,'2025-10-30',10,10,3,1,NULL,8.00,'2025-11-04 06:15:07','2025-11-04 06:15:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1137,'2025-10-29',9,3,3,1,NULL,8.00,'2025-11-04 06:15:43','2025-11-04 06:15:43',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1138,'2025-10-25',9,13,11,1,NULL,8.00,'2025-11-04 06:17:02','2025-11-04 06:17:02',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1139,'2025-10-25',7,13,11,1,NULL,8.00,'2025-11-04 06:17:15','2025-11-04 06:17:15',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1140,'2025-10-25',2,13,11,1,NULL,8.00,'2025-11-04 06:17:29','2025-11-04 06:17:29',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1141,'2025-10-17',10,10,3,2,6,8.00,'2025-11-04 06:31:47','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1142,'2025-10-17',2,10,3,2,6,8.00,'2025-11-04 06:31:47','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1143,'2025-10-17',9,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1144,'2025-10-17',8,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1145,'2025-10-17',7,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1146,'2025-10-17',6,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1147,'2025-10-17',5,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1148,'2025-10-17',4,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1149,'2025-10-17',3,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1150,'2025-10-17',1,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1151,'2025-10-23',2,10,3,2,6,10.00,'2025-11-04 06:37:19','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1152,'2025-10-23',10,10,3,2,6,10.00,'2025-11-04 06:37:19','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1153,'2025-10-23',9,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1154,'2025-10-23',8,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1155,'2025-10-23',7,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1156,'2025-10-23',6,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1157,'2025-10-23',5,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1159,'2025-10-23',3,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1160,'2025-10-23',4,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1161,'2025-10-31',10,10,3,2,6,8.00,'2025-11-04 06:38:35','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1164,'2025-10-31',3,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1165,'2025-10-31',4,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1166,'2025-10-31',1,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1167,'2025-10-31',7,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1168,'2025-10-31',5,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1169,'2025-10-31',8,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1170,'2025-10-31',6,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1171,'2025-10-23',1,3,3,2,6,8.00,'2025-11-04 06:43:18','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1172,'2025-10-30',1,3,3,1,NULL,5.00,'2025-11-04 22:27:07','2025-11-04 22:27:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1173,'2025-10-30',1,14,1,1,NULL,1.00,'2025-11-04 22:27:22','2025-11-04 22:27:22',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1174,'2025-10-29',1,3,3,1,NULL,7.00,'2025-11-04 22:27:49','2025-11-04 22:27:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1175,'2025-10-29',1,14,1,1,NULL,1.00,'2025-11-04 22:28:03','2025-11-04 22:28:03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1176,'2025-10-29',7,14,1,1,NULL,1.00,'2025-11-04 22:28:22','2025-11-04 22:28:22',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1177,'2025-10-29',7,3,3,1,NULL,7.00,'2025-11-04 22:28:32','2025-11-04 22:28:32',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1178,'2025-10-27',1,3,3,1,NULL,6.00,'2025-11-04 22:29:03','2025-11-04 22:29:03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1179,'2025-10-27',1,14,1,1,NULL,2.00,'2025-11-04 22:29:13','2025-11-04 22:29:13',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1180,'2025-10-27',7,14,1,1,NULL,2.00,'2025-11-04 22:29:34','2025-11-04 22:29:34',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1181,'2025-10-27',7,3,3,1,NULL,6.00,'2025-11-04 22:29:45','2025-11-04 22:29:45',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1192,'2025-11-03',2,10,3,2,6,8.00,'2025-11-05 02:54:31','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1193,'2025-11-03',10,10,3,2,6,8.00,'2025-11-05 02:54:31','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1194,'2025-11-03',9,10,3,2,6,6.00,'2025-11-05 02:55:16','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1195,'2025-11-03',9,3,3,1,NULL,2.00,'2025-11-05 02:55:16','2025-11-05 02:55:16',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1196,'2025-11-03',6,10,3,2,6,6.00,'2025-11-05 02:55:16','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1197,'2025-11-03',6,3,3,1,NULL,2.00,'2025-11-05 02:55:16','2025-11-05 02:55:16',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1199,'2025-11-05',10,10,3,1,NULL,8.00,'2025-11-05 06:54:26','2025-11-05 06:54:26',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1200,'2025-11-05',2,10,3,1,NULL,8.00,'2025-11-05 06:54:26','2025-11-05 06:54:26',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1201,'2025-11-05',9,10,3,1,NULL,4.00,'2025-11-05 06:54:40','2025-11-05 06:54:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1202,'2025-11-06',10,10,3,2,6,4.00,'2025-11-06 08:44:42','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1203,'2025-11-06',10,11,3,1,NULL,6.00,'2025-11-06 08:44:42','2025-11-06 08:44:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1204,'2025-11-06',4,11,1,1,NULL,10.00,'2025-11-06 08:45:59','2025-11-06 08:45:59',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1205,'2025-11-06',5,11,1,1,NULL,10.00,'2025-11-06 08:45:59','2025-11-06 08:45:59',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1206,'2025-11-06',2,10,3,2,6,1.00,'2025-11-06 08:46:46','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1207,'2025-11-06',2,11,3,1,NULL,9.00,'2025-11-06 08:46:46','2025-11-06 08:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1208,'2025-11-06',9,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1209,'2025-11-06',8,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1210,'2025-11-06',7,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1211,'2025-11-06',6,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1212,'2025-11-06',3,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1213,'2025-11-06',1,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1214,'2025-11-07',7,3,3,1,NULL,4.00,'2025-11-07 06:48:19','2025-11-07 06:48:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1217,'2025-11-07',9,3,3,1,NULL,8.00,'2025-11-07 06:48:57','2025-11-07 06:48:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1218,'2025-11-07',8,3,3,1,NULL,8.00,'2025-11-07 06:48:57','2025-11-07 06:48:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1219,'2025-11-07',6,3,3,1,NULL,8.00,'2025-11-07 06:48:57','2025-11-07 06:48:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1222,'2025-11-07',3,3,3,1,NULL,8.00,'2025-11-07 06:48:57','2025-11-07 06:48:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1223,'2025-11-07',1,3,3,1,NULL,8.00,'2025-11-07 06:48:57','2025-11-07 06:48:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1224,'2025-11-07',4,10,3,1,NULL,2.00,'2025-11-07 06:49:20','2025-11-07 06:49:20',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1225,'2025-11-07',4,3,3,1,NULL,6.00,'2025-11-07 06:49:20','2025-11-07 06:49:20',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1226,'2025-11-07',5,10,3,1,NULL,2.00,'2025-11-07 06:49:20','2025-11-07 06:49:20',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1227,'2025-11-07',5,3,3,1,NULL,6.00,'2025-11-07 06:49:20','2025-11-07 06:49:20',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1228,'2025-11-07',2,11,3,1,NULL,8.00,'2025-11-07 06:50:15','2025-11-07 06:50:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1229,'2025-11-07',10,11,3,1,NULL,8.00,'2025-11-07 06:50:55','2025-11-07 06:50:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1230,'2025-11-08',10,11,3,1,NULL,8.00,'2025-11-08 05:53:23','2025-11-08 05:53:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1231,'2025-11-08',2,11,3,1,NULL,8.00,'2025-11-08 05:53:24','2025-11-08 05:53:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1232,'2025-11-09',10,10,3,1,NULL,8.00,'2025-11-09 05:39:09','2025-11-09 05:39:09',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1233,'2025-11-09',2,10,3,1,NULL,8.00,'2025-11-09 05:39:09','2025-11-09 05:39:09',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1234,'2025-11-09',9,3,3,1,NULL,8.00,'2025-11-09 05:40:41','2025-11-09 05:40:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1235,'2025-11-09',8,3,3,1,NULL,8.00,'2025-11-09 05:40:41','2025-11-09 05:40:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1236,'2025-11-09',7,3,3,1,NULL,8.00,'2025-11-09 05:40:41','2025-11-09 05:40:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1237,'2025-11-09',6,3,3,1,NULL,8.00,'2025-11-09 05:40:41','2025-11-09 05:40:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1238,'2025-11-09',3,3,3,1,NULL,8.00,'2025-11-09 05:40:41','2025-11-09 05:40:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1239,'2025-11-10',10,10,3,1,NULL,8.00,'2025-11-11 08:28:29','2025-11-11 08:28:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1240,'2025-11-10',4,10,3,1,NULL,8.00,'2025-11-11 08:28:29','2025-11-11 08:28:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1241,'2025-11-10',2,10,3,1,NULL,8.00,'2025-11-11 08:28:29','2025-11-11 08:28:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1242,'2025-11-11',10,11,3,1,NULL,8.00,'2025-11-11 08:29:03','2025-11-11 08:29:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1243,'2025-11-11',9,11,3,1,NULL,8.00,'2025-11-11 08:29:03','2025-11-11 08:29:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1244,'2025-11-11',4,10,3,1,NULL,4.00,'2025-11-11 08:29:45','2025-11-11 08:29:45',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1245,'2025-11-11',4,11,3,1,NULL,6.00,'2025-11-11 08:29:45','2025-11-11 08:29:45',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1246,'2025-11-11',2,10,3,1,NULL,10.00,'2025-11-11 08:30:08','2025-11-11 08:30:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1247,'2025-11-11',10,11,3,1,NULL,2.00,'2025-11-11 08:30:35','2025-11-11 08:30:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1248,'2025-11-11',9,11,3,1,NULL,2.00,'2025-11-11 08:30:35','2025-11-11 08:30:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1249,'2025-11-11',7,3,3,1,NULL,8.00,'2025-11-11 08:45:23','2025-11-11 08:45:23',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1251,'2025-11-11',8,3,3,1,NULL,10.00,'2025-11-11 08:46:26','2025-11-11 08:46:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1252,'2025-11-11',6,3,3,1,NULL,10.00,'2025-11-11 08:46:26','2025-11-11 08:46:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1253,'2025-11-11',5,3,3,1,NULL,10.00,'2025-11-11 08:46:26','2025-11-11 08:46:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1254,'2025-11-11',3,3,3,1,NULL,10.00,'2025-11-11 08:46:26','2025-11-11 08:46:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1255,'2025-11-11',1,3,3,1,NULL,10.00,'2025-11-11 08:46:26','2025-11-11 08:46:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1256,'2025-11-12',10,11,3,1,NULL,8.00,'2025-11-12 06:47:21','2025-11-12 06:47:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1257,'2025-11-12',2,11,3,1,NULL,8.00,'2025-11-12 06:47:21','2025-11-12 06:47:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1258,'2025-11-12',9,11,3,1,NULL,8.00,'2025-11-12 06:47:21','2025-11-12 06:47:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1259,'2025-11-12',8,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1260,'2025-11-12',7,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1261,'2025-11-12',6,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1262,'2025-11-12',5,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1263,'2025-11-12',3,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1264,'2025-11-12',1,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1265,'2025-11-13',10,11,3,1,NULL,10.00,'2025-11-13 08:46:09','2025-11-13 08:46:09',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1266,'2025-11-13',4,11,3,1,NULL,10.00,'2025-11-13 08:46:09','2025-11-13 08:46:09',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1267,'2025-11-13',2,11,3,1,NULL,4.00,'2025-11-13 08:46:32','2025-11-13 08:46:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1268,'2025-11-13',9,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1269,'2025-11-13',8,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1270,'2025-11-13',7,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1271,'2025-11-13',6,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1272,'2025-11-13',5,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1273,'2025-11-13',3,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1274,'2025-11-13',1,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1275,'2025-11-14',10,11,3,1,NULL,6.00,'2025-11-14 07:00:16','2025-11-14 07:00:16',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1276,'2025-11-14',10,11,3,2,6,2.00,'2025-11-14 07:00:16','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1277,'2025-11-14',9,11,3,1,NULL,6.00,'2025-11-14 07:00:16','2025-11-14 07:00:16',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1278,'2025-11-14',9,11,3,2,6,2.00,'2025-11-14 07:00:16','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1279,'2025-11-14',2,11,3,1,NULL,6.00,'2025-11-14 07:00:17','2025-11-14 07:00:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1280,'2025-11-14',2,11,3,2,6,2.00,'2025-11-14 07:00:17','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1281,'2025-11-14',8,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1282,'2025-11-14',8,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1283,'2025-11-14',7,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1284,'2025-11-14',7,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1285,'2025-11-14',5,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1286,'2025-11-14',5,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1287,'2025-11-14',6,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1288,'2025-11-14',6,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1289,'2025-11-14',4,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1290,'2025-11-14',4,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1291,'2025-11-14',3,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1292,'2025-11-14',3,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1293,'2025-11-14',1,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1294,'2025-11-14',1,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1295,'2025-11-15',10,11,3,1,NULL,8.00,'2025-11-15 05:46:53','2025-11-15 05:46:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1296,'2025-11-15',9,11,3,1,NULL,8.00,'2025-11-15 05:46:53','2025-11-15 05:46:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1297,'2025-11-15',2,11,3,1,NULL,8.00,'2025-11-15 05:46:53','2025-11-15 05:46:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1298,'2025-11-17',10,11,3,1,NULL,8.00,'2025-11-18 08:45:07','2025-11-18 08:45:07',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1300,'2025-11-17',2,11,3,1,NULL,8.00,'2025-11-18 08:45:08','2025-11-18 08:45:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1301,'2025-11-18',4,11,3,1,NULL,6.00,'2025-11-18 08:46:01','2025-11-18 08:46:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1302,'2025-11-18',4,10,3,1,NULL,4.00,'2025-11-18 08:46:01','2025-11-18 08:46:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1303,'2025-11-18',2,11,3,1,NULL,6.00,'2025-11-18 08:46:01','2025-11-18 08:46:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1304,'2025-11-18',2,10,3,1,NULL,4.00,'2025-11-18 08:46:01','2025-11-18 08:46:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1305,'2025-11-18',10,11,3,1,NULL,10.00,'2025-11-18 08:46:23','2025-11-18 08:46:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1306,'2025-11-24',2,11,3,1,NULL,8.00,'2025-11-25 08:47:55','2025-11-25 08:47:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1307,'2025-11-24',4,11,3,1,NULL,8.00,'2025-11-25 08:47:55','2025-11-25 08:47:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1308,'2025-11-22',4,11,3,1,NULL,8.00,'2025-11-25 08:48:18','2025-11-25 08:48:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1309,'2025-11-22',2,11,3,1,NULL,8.00,'2025-11-25 08:48:18','2025-11-25 08:48:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1310,'2025-11-21',4,11,3,1,NULL,8.00,'2025-11-25 08:48:39','2025-11-25 08:48:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1311,'2025-11-21',2,11,3,1,NULL,8.00,'2025-11-25 08:48:39','2025-11-25 08:48:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1312,'2025-11-25',4,11,3,1,NULL,10.00,'2025-11-25 08:49:02','2025-11-25 08:49:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1313,'2025-11-25',2,11,3,1,NULL,10.00,'2025-11-25 08:49:02','2025-11-25 08:49:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1314,'2025-11-26',10,11,3,1,NULL,8.00,'2025-11-26 06:51:13','2025-11-26 06:51:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1315,'2025-11-26',4,11,3,1,NULL,8.00,'2025-11-26 06:51:13','2025-11-26 06:51:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1316,'2025-11-26',2,11,3,1,NULL,8.00,'2025-11-26 06:51:13','2025-11-26 06:51:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1317,'2025-11-27',10,11,3,1,NULL,10.00,'2025-11-27 07:34:37','2025-11-27 07:34:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1318,'2025-11-27',4,11,3,1,NULL,10.00,'2025-11-27 07:34:37','2025-11-27 07:34:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1319,'2025-11-27',2,11,3,1,NULL,10.00,'2025-11-27 07:34:37','2025-11-27 07:34:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1320,'2025-11-27',9,11,3,1,NULL,6.00,'2025-11-27 07:35:24','2025-11-27 07:35:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1321,'2025-11-27',9,3,3,1,NULL,4.00,'2025-11-27 07:35:24','2025-11-27 07:35:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1322,'2025-11-28',10,11,3,1,NULL,8.00,'2025-11-28 06:47:35','2025-11-28 06:47:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1323,'2025-11-28',9,11,3,1,NULL,8.00,'2025-11-28 06:47:35','2025-11-28 06:47:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1324,'2025-11-28',2,11,3,1,NULL,8.00,'2025-11-28 06:47:35','2025-11-28 06:47:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1325,'2025-11-28',4,13,11,1,NULL,1.00,'2025-11-28 06:48:24','2025-11-28 06:48:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1326,'2025-11-29',10,11,3,1,NULL,8.00,'2025-11-29 05:12:39','2025-11-29 05:12:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1327,'2025-11-29',4,11,3,1,NULL,8.00,'2025-11-29 05:12:39','2025-11-29 05:12:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1328,'2025-11-29',2,11,3,1,NULL,8.00,'2025-11-29 05:12:39','2025-11-29 05:12:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1329,'2025-11-29',1,3,3,1,NULL,4.00,'2025-11-29 05:17:02','2025-11-29 05:17:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1331,'2025-11-29',8,3,3,1,NULL,8.00,'2025-11-29 05:17:46','2025-11-29 05:17:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1332,'2025-11-29',6,3,3,1,NULL,8.00,'2025-11-29 05:17:46','2025-11-29 05:17:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1333,'2025-11-29',5,3,3,1,NULL,8.00,'2025-11-29 05:17:46','2025-11-29 05:17:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1334,'2025-11-29',3,3,3,1,NULL,8.00,'2025-11-29 05:17:46','2025-11-29 05:17:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1335,'2025-12-01',10,11,3,1,NULL,8.00,'2025-12-01 06:55:15','2025-12-01 06:55:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1336,'2025-12-01',9,11,3,1,NULL,8.00,'2025-12-01 06:55:15','2025-12-01 06:55:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1337,'2025-12-01',4,11,3,1,NULL,8.00,'2025-12-01 06:55:15','2025-12-01 06:55:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1338,'2025-12-01',2,11,3,1,NULL,8.00,'2025-12-01 06:55:15','2025-12-01 06:55:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1339,'2025-11-01',8,3,3,1,NULL,4.00,'2025-12-02 02:07:51','2025-12-02 02:07:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1340,'2025-11-01',8,3,3,2,6,4.00,'2025-12-02 02:07:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1341,'2025-11-01',7,3,3,1,NULL,4.00,'2025-12-02 02:07:52','2025-12-02 02:07:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1342,'2025-11-01',7,3,3,2,6,4.00,'2025-12-02 02:07:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1345,'2025-11-01',5,3,3,1,NULL,4.00,'2025-12-02 02:07:52','2025-12-02 02:07:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1346,'2025-11-01',5,3,3,2,6,4.00,'2025-12-02 02:07:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1347,'2025-11-01',4,3,3,1,NULL,4.00,'2025-12-02 02:07:52','2025-12-02 02:07:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1348,'2025-11-01',4,3,3,2,6,4.00,'2025-12-02 02:07:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1349,'2025-11-01',3,3,3,1,NULL,4.00,'2025-12-02 02:07:52','2025-12-02 02:07:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1350,'2025-11-01',3,3,3,2,6,4.00,'2025-12-02 02:07:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1353,'2025-11-03',8,3,3,1,NULL,4.00,'2025-12-02 02:09:19','2025-12-02 02:09:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1354,'2025-11-03',8,3,3,2,6,4.00,'2025-12-02 02:09:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1356,'2025-11-03',5,3,3,1,NULL,4.00,'2025-12-02 02:09:19','2025-12-02 02:09:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1357,'2025-11-03',5,3,3,2,6,4.00,'2025-12-02 02:09:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1359,'2025-11-03',4,3,3,1,NULL,4.00,'2025-12-02 02:09:19','2025-12-02 02:09:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1360,'2025-11-03',4,3,3,2,6,4.00,'2025-12-02 02:09:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1362,'2025-11-03',3,3,3,1,NULL,4.00,'2025-12-02 02:09:19','2025-12-02 02:09:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1363,'2025-11-03',3,3,3,2,6,4.00,'2025-12-02 02:09:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1369,'2025-11-03',7,13,1,1,NULL,8.00,'2025-12-02 02:11:57','2025-12-02 02:11:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1370,'2025-11-04',10,10,3,1,NULL,6.00,'2025-12-02 02:17:03','2025-12-02 02:17:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1371,'2025-11-04',10,10,3,2,6,4.00,'2025-12-02 02:17:03','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1372,'2025-11-04',9,10,3,1,NULL,6.00,'2025-12-02 02:17:03','2025-12-02 02:17:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1373,'2025-11-04',9,10,3,2,6,4.00,'2025-12-02 02:17:03','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1374,'2025-11-04',2,10,3,1,NULL,6.00,'2025-12-02 02:17:03','2025-12-02 02:17:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1375,'2025-11-04',2,10,3,2,6,4.00,'2025-12-02 02:17:03','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1376,'2025-11-04',8,3,3,1,NULL,8.00,'2025-12-02 02:19:20','2025-12-02 02:19:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1377,'2025-11-04',6,3,3,2,6,4.00,'2025-12-02 02:19:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1378,'2025-11-04',6,3,3,1,NULL,4.00,'2025-12-02 02:19:51','2025-12-02 02:19:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1379,'2025-11-24',1,3,3,1,NULL,4.00,'2025-12-02 02:43:58','2025-12-02 02:43:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1380,'2025-11-24',1,3,3,2,6,4.00,'2025-12-02 02:43:58','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1381,'2025-11-24',7,3,3,1,NULL,4.00,'2025-12-02 02:43:58','2025-12-02 02:43:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1382,'2025-11-24',7,3,3,2,6,4.00,'2025-12-02 02:43:58','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1383,'2025-11-25',3,3,3,1,NULL,8.00,'2025-12-02 04:17:39','2025-12-02 04:17:39',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1384,'2025-11-25',3,3,3,2,6,1.00,'2025-12-02 04:17:39','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1385,'2025-11-25',3,3,3,2,14,1.00,'2025-12-02 04:17:39','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1386,'2025-11-25',6,3,3,1,NULL,8.00,'2025-12-02 04:17:39','2025-12-02 04:17:39',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1387,'2025-11-25',6,3,3,2,6,1.00,'2025-12-02 04:17:39','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1388,'2025-11-25',6,3,3,2,14,1.00,'2025-12-02 04:17:39','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1389,'2025-12-03',10,11,3,1,NULL,8.00,'2025-12-03 06:52:28','2025-12-03 06:52:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1390,'2025-12-03',9,11,3,1,NULL,8.00,'2025-12-03 06:52:28','2025-12-03 06:52:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1391,'2025-12-03',4,11,3,1,NULL,8.00,'2025-12-03 06:52:28','2025-12-03 06:52:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1392,'2025-12-03',2,11,3,1,NULL,8.00,'2025-12-03 06:52:28','2025-12-03 06:52:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1393,'2025-12-04',10,11,3,1,NULL,8.00,'2025-12-04 06:45:00','2025-12-04 06:45:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1394,'2025-12-04',9,11,3,1,NULL,8.00,'2025-12-04 06:45:00','2025-12-04 06:45:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1395,'2025-12-04',4,11,3,1,NULL,8.00,'2025-12-04 06:45:00','2025-12-04 06:45:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1396,'2025-12-04',2,11,3,1,NULL,8.00,'2025-12-04 06:45:00','2025-12-04 06:45:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1397,'2025-11-01',6,3,3,1,NULL,4.00,'2025-12-05 00:34:20','2025-12-05 00:34:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1398,'2025-11-01',6,3,3,2,6,4.00,'2025-12-05 00:34:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1399,'2025-11-01',1,3,3,1,NULL,4.00,'2025-12-05 00:34:20','2025-12-05 00:34:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1400,'2025-11-01',1,3,3,2,6,4.00,'2025-12-05 00:34:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1401,'2025-11-03',1,3,3,1,NULL,8.00,'2025-12-05 00:35:16','2025-12-05 00:35:16',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1402,'2025-11-04',6,3,3,1,NULL,2.00,'2025-12-05 01:02:21','2025-12-05 01:02:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1403,'2025-11-04',8,3,3,1,NULL,2.00,'2025-12-05 01:02:21','2025-12-05 01:02:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1404,'2025-11-04',7,3,3,1,NULL,6.00,'2025-12-05 01:03:12','2025-12-05 01:03:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1405,'2025-11-04',7,3,3,2,6,4.00,'2025-12-05 01:03:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1406,'2025-11-04',5,3,3,1,NULL,6.00,'2025-12-05 01:03:12','2025-12-05 01:03:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1407,'2025-11-04',5,3,3,2,6,4.00,'2025-12-05 01:03:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1408,'2025-11-04',4,3,3,1,NULL,6.00,'2025-12-05 01:03:12','2025-12-05 01:03:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1409,'2025-11-04',4,3,3,2,6,4.00,'2025-12-05 01:03:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1410,'2025-11-04',3,3,3,1,NULL,6.00,'2025-12-05 01:03:12','2025-12-05 01:03:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1411,'2025-11-04',3,3,3,2,6,4.00,'2025-12-05 01:03:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1412,'2025-11-04',1,3,3,1,NULL,6.00,'2025-12-05 01:03:12','2025-12-05 01:03:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1413,'2025-11-04',1,3,3,2,6,4.00,'2025-12-05 01:03:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1414,'2025-11-05',8,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1415,'2025-11-05',8,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1416,'2025-11-05',8,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1417,'2025-11-05',7,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1418,'2025-11-05',7,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1419,'2025-11-05',7,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1420,'2025-11-05',6,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1421,'2025-11-05',6,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1422,'2025-11-05',6,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1423,'2025-11-05',4,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1424,'2025-11-05',4,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1425,'2025-11-05',4,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1426,'2025-11-05',3,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1427,'2025-11-05',3,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1428,'2025-11-05',3,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1429,'2025-11-05',1,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1430,'2025-11-05',1,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1431,'2025-11-05',1,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1434,'2025-11-08',9,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1435,'2025-11-08',9,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1436,'2025-11-08',8,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1437,'2025-11-08',8,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1438,'2025-11-08',7,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1439,'2025-11-08',7,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1440,'2025-11-08',6,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1441,'2025-11-08',6,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1442,'2025-11-08',5,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1443,'2025-11-08',5,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1444,'2025-11-08',3,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1445,'2025-11-08',3,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1446,'2025-11-08',1,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1447,'2025-11-08',1,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1448,'2025-11-10',8,3,3,1,NULL,4.00,'2025-12-05 01:06:58','2025-12-05 01:06:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1449,'2025-11-10',8,13,11,1,NULL,4.00,'2025-12-05 01:06:58','2025-12-05 01:06:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1450,'2025-11-10',9,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1451,'2025-11-10',9,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1452,'2025-11-10',7,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1453,'2025-11-10',7,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1454,'2025-11-10',6,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1455,'2025-11-10',6,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1456,'2025-11-10',5,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1457,'2025-11-10',5,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1458,'2025-11-10',3,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1459,'2025-11-10',3,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1460,'2025-11-10',1,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1461,'2025-11-10',1,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1462,'2025-11-12',4,3,3,1,NULL,8.00,'2025-12-05 01:08:07','2025-12-05 01:08:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1463,'2025-11-15',8,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1464,'2025-11-15',8,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1465,'2025-11-15',7,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1466,'2025-11-15',7,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1467,'2025-11-15',6,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1468,'2025-11-15',6,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1469,'2025-11-15',5,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1470,'2025-11-15',5,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1471,'2025-11-15',4,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1472,'2025-11-15',4,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1473,'2025-11-15',3,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1474,'2025-11-15',3,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1475,'2025-11-15',1,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1476,'2025-11-15',1,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1477,'2025-11-17',9,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1478,'2025-11-17',9,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1479,'2025-11-17',8,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1480,'2025-11-17',8,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1481,'2025-11-17',6,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1482,'2025-11-17',6,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1483,'2025-11-17',5,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1484,'2025-11-17',5,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1485,'2025-11-17',3,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1486,'2025-11-17',3,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1487,'2025-11-17',1,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1488,'2025-11-17',1,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1489,'2025-11-18',8,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1490,'2025-11-18',8,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1491,'2025-11-18',9,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1492,'2025-11-18',9,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1493,'2025-11-18',7,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1494,'2025-11-18',7,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1495,'2025-11-18',6,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1496,'2025-11-18',6,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1497,'2025-11-18',5,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1498,'2025-11-18',5,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1499,'2025-11-18',3,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1500,'2025-11-18',3,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1501,'2025-11-18',1,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1502,'2025-11-18',1,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1503,'2025-11-19',2,11,3,1,NULL,4.00,'2025-12-05 01:12:15','2025-12-05 01:12:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1504,'2025-11-19',2,11,3,2,6,4.00,'2025-12-05 01:12:15','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1505,'2025-11-19',10,11,3,1,NULL,4.00,'2025-12-05 01:12:15','2025-12-05 01:12:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1506,'2025-11-19',10,11,3,2,6,4.00,'2025-12-05 01:12:15','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1507,'2025-11-19',9,11,3,1,NULL,4.00,'2025-12-05 01:12:15','2025-12-05 01:12:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1508,'2025-11-19',9,11,3,2,6,4.00,'2025-12-05 01:12:15','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1509,'2025-11-19',8,3,3,1,NULL,5.00,'2025-12-05 01:12:48','2025-12-05 01:12:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1510,'2025-11-19',8,3,3,2,6,3.00,'2025-12-05 01:12:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1511,'2025-11-19',7,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1512,'2025-11-19',7,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1513,'2025-11-19',6,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1514,'2025-11-19',6,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1515,'2025-11-19',5,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1516,'2025-11-19',5,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1517,'2025-11-19',4,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1518,'2025-11-19',4,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1519,'2025-11-19',3,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1520,'2025-11-19',3,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1521,'2025-11-19',1,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1522,'2025-11-19',1,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1523,'2025-11-20',10,11,3,1,NULL,5.00,'2025-12-05 01:13:18','2025-12-05 01:13:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1524,'2025-11-20',10,11,3,2,6,3.00,'2025-12-05 01:13:18','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1525,'2025-11-20',9,11,3,1,NULL,5.00,'2025-12-05 01:13:18','2025-12-05 01:13:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1526,'2025-11-20',9,11,3,2,6,3.00,'2025-12-05 01:13:18','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1527,'2025-11-20',2,11,3,1,NULL,5.00,'2025-12-05 01:13:18','2025-12-05 01:13:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1528,'2025-11-20',2,11,3,2,6,3.00,'2025-12-05 01:13:18','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1529,'2025-11-20',4,11,3,1,NULL,5.00,'2025-12-05 01:13:18','2025-12-05 01:13:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1530,'2025-11-20',4,11,3,2,6,3.00,'2025-12-05 01:13:18','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1531,'2025-11-20',8,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1532,'2025-11-20',8,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1533,'2025-11-20',7,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1534,'2025-11-20',7,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1535,'2025-11-20',6,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1536,'2025-11-20',6,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1537,'2025-11-20',5,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1538,'2025-11-20',5,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1539,'2025-11-20',3,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1540,'2025-11-20',3,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1541,'2025-11-20',1,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1542,'2025-11-20',1,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1543,'2025-11-21',9,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1544,'2025-11-21',9,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1545,'2025-11-21',8,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1546,'2025-11-21',8,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1547,'2025-11-21',6,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1548,'2025-11-21',6,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1549,'2025-11-21',7,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1550,'2025-11-21',7,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1551,'2025-11-21',5,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1552,'2025-11-21',5,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1553,'2025-11-21',3,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1554,'2025-11-21',3,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1555,'2025-11-21',1,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1556,'2025-11-21',1,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1557,'2025-11-22',9,3,3,1,NULL,8.00,'2025-12-05 01:15:21','2025-12-05 01:15:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1558,'2025-11-22',8,3,3,1,NULL,8.00,'2025-12-05 01:15:22','2025-12-05 01:15:22',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1559,'2025-11-22',6,3,3,1,NULL,8.00,'2025-12-05 01:15:22','2025-12-05 01:15:22',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1560,'2025-11-22',3,3,3,1,NULL,8.00,'2025-12-05 01:15:22','2025-12-05 01:15:22',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1561,'2025-11-22',1,3,3,1,NULL,8.00,'2025-12-05 01:15:22','2025-12-05 01:15:22',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1562,'2025-11-24',9,11,3,1,NULL,4.00,'2025-12-05 01:21:20','2025-12-05 01:21:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1563,'2025-11-24',9,11,3,2,6,4.00,'2025-12-05 01:21:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1564,'2025-11-24',8,11,3,1,NULL,4.00,'2025-12-05 01:21:20','2025-12-05 01:21:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1565,'2025-11-24',8,11,3,2,6,4.00,'2025-12-05 01:21:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1566,'2025-11-24',6,11,3,1,NULL,4.00,'2025-12-05 01:21:20','2025-12-05 01:21:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1567,'2025-11-24',6,11,3,2,6,4.00,'2025-12-05 01:21:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1568,'2025-11-24',5,11,3,1,NULL,4.00,'2025-12-05 01:21:20','2025-12-05 01:21:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1569,'2025-11-24',5,11,3,2,6,4.00,'2025-12-05 01:21:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1570,'2025-11-25',1,13,11,1,NULL,2.00,'2025-12-05 01:21:59','2025-12-05 01:21:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1571,'2025-11-25',1,3,3,1,NULL,6.00,'2025-12-05 01:21:59','2025-12-05 01:21:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1572,'2025-11-25',9,3,3,1,NULL,4.00,'2025-12-05 01:22:49','2025-12-05 01:22:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1573,'2025-11-25',9,3,3,2,14,2.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1574,'2025-11-25',9,3,3,2,6,4.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1575,'2025-11-25',8,3,3,1,NULL,4.00,'2025-12-05 01:22:49','2025-12-05 01:22:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1576,'2025-11-25',8,3,3,2,14,2.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1577,'2025-11-25',8,3,3,2,6,4.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1578,'2025-11-25',5,3,3,1,NULL,4.00,'2025-12-05 01:22:49','2025-12-05 01:22:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1579,'2025-11-25',5,3,3,2,14,2.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1580,'2025-11-25',5,3,3,2,6,4.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1581,'2025-11-26',9,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1582,'2025-11-26',9,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1583,'2025-11-26',8,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1584,'2025-11-26',8,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1585,'2025-11-26',6,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1586,'2025-11-26',6,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1587,'2025-11-26',5,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1588,'2025-11-26',5,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1589,'2025-11-26',3,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1590,'2025-11-26',3,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1591,'2025-11-26',1,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1592,'2025-11-26',1,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1593,'2025-11-27',1,3,3,1,NULL,8.00,'2025-12-05 01:24:00','2025-12-05 01:24:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1594,'2025-11-27',8,3,3,1,NULL,10.00,'2025-12-05 01:24:26','2025-12-05 01:24:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1595,'2025-11-27',6,3,3,1,NULL,10.00,'2025-12-05 01:24:26','2025-12-05 01:24:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1596,'2025-11-27',5,3,3,1,NULL,10.00,'2025-12-05 01:24:26','2025-12-05 01:24:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1597,'2025-11-27',3,3,3,1,NULL,10.00,'2025-12-05 01:24:26','2025-12-05 01:24:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1598,'2025-11-28',4,13,11,1,NULL,8.00,'2025-12-05 01:24:50','2025-12-05 01:24:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1599,'2025-11-28',6,13,11,1,NULL,8.00,'2025-12-05 01:24:50','2025-12-05 01:24:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1600,'2025-11-28',8,3,3,1,NULL,8.00,'2025-12-05 01:25:17','2025-12-05 01:25:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1601,'2025-11-28',5,3,3,1,NULL,8.00,'2025-12-05 01:25:17','2025-12-05 01:25:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1602,'2025-11-28',3,3,3,1,NULL,8.00,'2025-12-05 01:25:17','2025-12-05 01:25:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1603,'2025-11-28',1,3,3,1,NULL,8.00,'2025-12-05 01:25:17','2025-12-05 01:25:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1604,'2025-11-05',5,3,3,1,NULL,8.00,'2025-12-05 01:26:26','2025-12-05 01:26:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1605,'2025-11-13',2,13,1,1,NULL,4.00,'2025-12-05 01:28:08','2025-12-05 01:28:08',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1606,'2025-11-17',7,13,1,1,NULL,8.00,'2025-12-05 01:28:40','2025-12-05 01:28:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1607,'2025-11-17',4,11,3,1,NULL,6.00,'2025-12-05 01:30:38','2025-12-05 01:30:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1608,'2025-11-17',4,13,11,1,NULL,2.00,'2025-12-05 01:30:38','2025-12-05 01:30:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1609,'2025-11-21',10,13,1,1,NULL,8.00,'2025-12-05 01:31:07','2025-12-05 01:31:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1610,'2025-11-24',10,13,1,1,NULL,8.00,'2025-12-05 01:31:34','2025-12-05 01:31:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1611,'2025-11-24',3,13,1,1,NULL,8.00,'2025-12-05 01:31:40','2025-12-05 01:31:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1612,'2025-11-25',10,13,1,1,NULL,8.00,'2025-12-05 01:31:53','2025-12-05 01:31:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1613,'2025-12-05',10,11,3,1,NULL,8.00,'2025-12-05 06:53:42','2025-12-05 06:53:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1614,'2025-12-05',9,11,3,1,NULL,8.00,'2025-12-05 06:53:42','2025-12-05 06:53:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1615,'2025-12-05',4,11,3,1,NULL,8.00,'2025-12-05 06:53:43','2025-12-05 06:53:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1616,'2025-12-05',2,11,3,1,NULL,8.00,'2025-12-05 06:53:43','2025-12-05 06:53:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1617,'2025-12-06',10,11,3,1,NULL,8.00,'2025-12-06 05:46:14','2025-12-06 05:46:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1618,'2025-12-06',9,11,3,1,NULL,8.00,'2025-12-06 05:46:14','2025-12-06 05:46:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1619,'2025-12-06',4,11,3,1,NULL,8.00,'2025-12-06 05:46:14','2025-12-06 05:46:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1620,'2025-12-06',2,11,3,1,NULL,8.00,'2025-12-06 05:46:14','2025-12-06 05:46:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1621,'2025-12-08',1,11,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1622,'2025-12-08',1,3,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1623,'2025-12-08',5,11,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1624,'2025-12-08',5,3,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1625,'2025-12-08',3,11,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1626,'2025-12-08',3,3,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1627,'2025-12-08',10,11,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1628,'2025-12-08',10,3,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1629,'2025-12-08',9,3,3,1,NULL,8.00,'2025-12-09 07:34:05','2025-12-09 07:34:05',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1630,'2025-12-08',8,3,3,1,NULL,8.00,'2025-12-09 07:34:05','2025-12-09 07:34:05',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1631,'2025-12-08',2,3,3,1,NULL,8.00,'2025-12-09 07:34:05','2025-12-09 07:34:05',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1632,'2025-12-08',4,3,3,1,NULL,8.00,'2025-12-09 07:34:06','2025-12-09 07:34:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1634,'2025-12-08',6,3,3,1,NULL,8.00,'2025-12-09 07:34:38','2025-12-09 07:34:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1635,'2025-12-10',4,3,3,1,NULL,8.00,'2025-12-10 06:56:21','2025-12-10 06:56:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1636,'2025-12-10',2,3,3,1,NULL,8.00,'2025-12-10 06:56:21','2025-12-10 06:56:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1637,'2025-12-10',8,3,3,1,NULL,8.00,'2025-12-10 06:56:21','2025-12-10 06:56:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1638,'2025-12-10',6,3,3,1,NULL,8.00,'2025-12-10 06:56:21','2025-12-10 06:56:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1642,'2026-01-02',10,13,21,1,NULL,8.00,'2026-02-04 22:47:59','2026-02-04 22:47:59',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1643,'2026-01-02',9,13,20,1,NULL,8.00,'2026-02-04 22:50:13','2026-02-04 22:50:13',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1644,'2026-01-05',11,15,3,1,42,8.00,'2026-02-04 22:52:41','2026-02-05 22:40:21',1,1,NULL,NULL,NULL,NULL,NULL,NULL,4.00), +(1645,'2026-01-06',11,15,3,1,NULL,8.00,'2026-02-04 22:53:13','2026-02-04 22:53:13',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1646,'2026-01-07',11,15,3,1,NULL,8.00,'2026-02-04 22:53:35','2026-02-04 22:53:35',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1647,'2026-01-08',11,15,3,1,NULL,8.00,'2026-02-04 22:54:03','2026-02-04 22:54:03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1648,'2026-01-09',11,15,3,1,NULL,8.00,'2026-02-04 22:54:24','2026-02-04 22:54:24',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1649,'2026-01-12',11,15,3,1,NULL,8.00,'2026-02-04 22:55:52','2026-02-04 22:55:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1650,'2026-01-13',11,15,3,1,NULL,8.00,'2026-02-04 22:56:20','2026-02-04 22:56:20',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1651,'2026-01-14',11,15,3,1,NULL,8.00,'2026-02-04 22:56:50','2026-02-04 22:56:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1652,'2026-01-15',11,15,3,1,NULL,8.00,'2026-02-04 22:57:09','2026-02-04 22:57:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1653,'2026-01-16',11,15,3,1,NULL,8.00,'2026-02-04 22:57:29','2026-02-04 22:57:29',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1654,'2026-01-19',11,15,14,1,NULL,8.00,'2026-02-04 22:58:20','2026-02-04 22:58:20',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1655,'2026-01-20',11,15,14,1,NULL,8.00,'2026-02-04 22:58:49','2026-02-04 22:58:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1656,'2026-01-21',11,15,14,1,NULL,8.00,'2026-02-04 23:00:27','2026-02-04 23:00:27',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1657,'2026-01-22',11,15,3,1,NULL,8.00,'2026-02-04 23:00:50','2026-02-04 23:00:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1658,'2026-01-23',11,15,15,1,NULL,8.00,'2026-02-04 23:01:12','2026-02-04 23:01:12',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1659,'2026-01-26',11,15,15,1,NULL,8.00,'2026-02-04 23:01:35','2026-02-04 23:01:35',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1660,'2026-01-27',11,15,15,1,NULL,8.00,'2026-02-04 23:02:09','2026-02-04 23:02:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1661,'2026-01-29',11,15,15,1,NULL,8.00,'2026-02-04 23:02:29','2026-02-04 23:02:29',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1662,'2026-01-28',11,15,15,1,NULL,8.00,'2026-02-04 23:02:58','2026-02-04 23:02:58',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1663,'2026-01-30',11,15,15,1,NULL,8.00,'2026-02-04 23:03:16','2026-02-04 23:03:16',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1664,'2026-01-02',6,13,21,1,NULL,8.00,'2026-02-04 23:03:55','2026-02-04 23:03:55',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1665,'2026-01-05',6,15,16,1,NULL,8.00,'2026-02-04 23:04:43','2026-02-04 23:04:43',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1666,'2026-01-06',6,15,16,1,NULL,8.00,'2026-02-04 23:05:15','2026-02-04 23:05:15',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1667,'2026-01-07',6,15,16,1,NULL,8.00,'2026-02-04 23:05:59','2026-02-04 23:05:59',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1668,'2026-01-08',6,15,16,1,NULL,8.00,'2026-02-04 23:06:37','2026-02-04 23:06:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1669,'2026-01-09',6,15,16,1,NULL,8.00,'2026-02-04 23:06:56','2026-02-04 23:06:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1670,'2026-01-12',6,17,8,1,NULL,8.00,'2026-02-04 23:07:38','2026-02-04 23:07:38',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1671,'2026-01-13',6,17,8,1,NULL,8.00,'2026-02-04 23:08:01','2026-02-04 23:08:01',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1672,'2026-01-14',6,17,8,1,NULL,8.00,'2026-02-04 23:08:22','2026-02-04 23:08:22',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1673,'2026-01-15',6,17,8,1,NULL,8.00,'2026-02-04 23:08:56','2026-02-04 23:08:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1674,'2026-01-16',6,15,8,1,NULL,2.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1675,'2026-01-16',6,13,24,1,NULL,6.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1676,'2026-01-19',6,17,8,2,43,2.00,'2026-02-04 23:22:54','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2.00), +(1677,'2026-01-19',6,17,10,1,NULL,6.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1678,'2026-01-20',6,17,10,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1679,'2026-01-21',6,17,8,2,44,8.00,'2026-02-04 23:22:54','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1680,'2026-01-22',6,17,10,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1681,'2026-01-23',6,17,10,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1682,'2026-01-26',6,15,15,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1683,'2026-01-27',6,15,15,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1684,'2026-01-28',6,15,15,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1685,'2026-01-29',6,15,15,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1686,'2026-01-30',6,15,15,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1687,'2026-01-02',3,13,21,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1688,'2026-01-05',3,13,21,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1689,'2026-01-06',3,15,2,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1690,'2026-01-07',3,15,2,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1691,'2026-01-08',3,15,2,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1692,'2026-01-09',3,15,2,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1693,'2026-01-12',3,15,16,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1694,'2026-01-13',3,15,16,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1695,'2026-01-14',3,15,16,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1696,'2026-01-15',3,15,16,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1697,'2026-01-16',3,15,16,1,NULL,6.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1698,'2026-01-16',3,13,23,1,NULL,2.00,'2026-02-04 23:34:05','2026-02-05 02:05:51',1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1699,'2026-01-19',3,17,10,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1700,'2026-01-20',3,17,10,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1701,'2026-01-21',3,17,10,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1702,'2026-01-22',3,17,10,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1703,'2026-01-23',3,17,10,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1704,'2026-01-26',3,15,17,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1705,'2026-01-27',3,15,17,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1706,'2026-01-28',3,15,17,2,15,8.00,'2026-02-04 23:36:37','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4.00), +(1707,'2026-01-29',3,15,17,2,15,8.00,'2026-02-04 23:36:37','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1708,'2026-01-30',3,15,17,2,15,8.00,'2026-02-04 23:36:37','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1709,'2026-01-05',10,15,2,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1710,'2026-01-06',10,15,2,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1711,'2026-01-07',10,15,2,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1712,'2026-01-08',10,15,2,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1713,'2026-01-09',10,15,3,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1714,'2026-01-12',10,15,3,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1715,'2026-01-13',10,15,3,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1716,'2026-01-14',10,15,3,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1717,'2026-01-15',10,15,3,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1718,'2026-01-16',10,17,8,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1719,'2026-01-19',10,17,8,2,43,8.00,'2026-02-04 23:44:26','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1720,'2026-01-20',10,17,10,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1721,'2026-01-21',10,17,10,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1722,'2026-01-22',10,17,10,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1723,'2026-01-22',10,17,10,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1724,'2026-01-23',10,13,21,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1725,'2026-01-26',10,16,25,1,NULL,8.00,'2026-02-04 23:47:27','2026-02-04 23:47:27',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1726,'2026-01-27',10,16,25,1,NULL,8.00,'2026-02-04 23:47:27','2026-02-04 23:47:27',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1727,'2026-01-28',10,16,25,1,NULL,8.00,'2026-02-04 23:50:51','2026-02-04 23:50:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1728,'2026-01-29',10,16,25,1,NULL,8.00,'2026-02-04 23:50:51','2026-02-04 23:50:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1729,'2026-01-30',10,16,25,1,NULL,8.00,'2026-02-04 23:50:51','2026-02-04 23:50:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1730,'2026-01-05',9,13,20,1,NULL,8.00,'2026-02-04 23:54:55','2026-02-04 23:54:55',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1731,'2026-01-06',9,13,20,1,NULL,8.00,'2026-02-04 23:54:56','2026-02-04 23:54:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1732,'2026-01-07',9,13,20,1,NULL,8.00,'2026-02-04 23:54:57','2026-02-04 23:54:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1733,'2026-01-08',9,13,20,1,NULL,8.00,'2026-02-04 23:54:58','2026-02-04 23:54:58',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1734,'2026-01-09',9,13,20,1,NULL,8.00,'2026-02-04 23:54:59','2026-02-04 23:54:59',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1735,'2026-01-12',9,13,20,1,NULL,8.00,'2026-02-04 23:55:00','2026-02-04 23:55:00',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1736,'2026-01-13',9,13,20,1,NULL,8.00,'2026-02-04 23:55:01','2026-02-04 23:55:01',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1737,'2026-01-14',9,13,20,1,NULL,8.00,'2026-02-04 23:55:02','2026-02-04 23:55:02',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1738,'2026-01-15',9,13,20,1,NULL,8.00,'2026-02-04 23:55:03','2026-02-04 23:55:03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1739,'2026-01-16',9,13,20,1,NULL,8.00,'2026-02-04 23:55:04','2026-02-04 23:55:04',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1740,'2026-01-19',9,13,20,1,NULL,8.00,'2026-02-04 23:55:05','2026-02-04 23:55:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1741,'2026-01-20',9,15,15,1,NULL,8.00,'2026-02-04 23:56:33','2026-02-04 23:56:33',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1742,'2026-01-21',9,15,15,1,NULL,8.00,'2026-02-04 23:56:34','2026-02-04 23:56:34',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1743,'2026-01-22',9,15,15,1,NULL,8.00,'2026-02-04 23:56:35','2026-02-04 23:56:35',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1744,'2026-01-23',9,15,15,1,NULL,8.00,'2026-02-04 23:56:36','2026-02-04 23:56:36',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1745,'2026-01-26',9,16,25,1,NULL,8.00,'2026-02-04 23:59:49','2026-02-04 23:59:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1746,'2026-01-27',9,16,25,1,NULL,8.00,'2026-02-04 23:59:50','2026-02-04 23:59:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1747,'2026-01-28',9,16,25,1,NULL,8.00,'2026-02-04 23:59:51','2026-02-04 23:59:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1748,'2026-01-29',9,16,25,1,NULL,8.00,'2026-02-04 23:59:52','2026-02-04 23:59:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1749,'2026-01-30',9,16,25,1,NULL,8.00,'2026-02-04 23:59:53','2026-02-04 23:59:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1750,'2026-01-02',1,13,21,1,NULL,8.00,'2026-02-05 00:26:36','2026-02-05 00:26:36',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1751,'2026-01-05',1,15,2,1,NULL,8.00,'2026-02-05 00:26:37','2026-02-05 00:26:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1752,'2026-01-06',1,15,2,1,NULL,8.00,'2026-02-05 00:26:38','2026-02-05 00:26:38',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1753,'2026-01-07',1,15,2,1,NULL,6.00,'2026-02-05 00:26:39','2026-02-05 00:26:39',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1754,'2026-01-07',1,13,23,1,NULL,2.00,'2026-02-05 00:26:40','2026-02-05 00:26:40',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1755,'2026-01-08',1,15,2,1,NULL,8.00,'2026-02-05 00:26:41','2026-02-05 00:26:41',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1756,'2026-01-09',1,15,2,1,NULL,8.00,'2026-02-05 00:26:42','2026-02-05 00:26:42',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1757,'2026-01-12',1,15,2,1,NULL,8.00,'2026-02-05 00:26:43','2026-02-05 00:26:43',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1758,'2026-01-13',1,15,2,1,NULL,8.00,'2026-02-05 00:26:44','2026-02-05 00:26:44',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1759,'2026-01-14',1,15,2,1,NULL,8.00,'2026-02-05 00:26:45','2026-02-05 00:26:45',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1760,'2026-01-15',1,16,25,1,NULL,8.00,'2026-02-05 00:26:46','2026-02-05 00:26:46',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1761,'2026-01-16',1,16,25,1,NULL,8.00,'2026-02-05 00:26:47','2026-02-05 00:26:47',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1762,'2026-01-19',1,13,21,1,NULL,8.00,'2026-02-05 00:26:48','2026-02-05 00:26:48',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1763,'2026-01-20',1,17,10,1,NULL,8.00,'2026-02-05 00:26:49','2026-02-05 00:26:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1764,'2026-01-21',1,17,10,1,NULL,8.00,'2026-02-05 00:26:50','2026-02-05 00:26:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1765,'2026-01-22',1,15,17,1,NULL,8.00,'2026-02-05 00:26:51','2026-02-05 00:26:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1766,'2026-01-23',1,15,17,1,NULL,8.00,'2026-02-05 00:26:52','2026-02-05 00:26:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1767,'2026-01-26',1,16,25,1,NULL,8.00,'2026-02-05 00:26:53','2026-02-05 00:26:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1768,'2026-01-27',1,16,25,1,NULL,8.00,'2026-02-05 00:26:54','2026-02-05 00:26:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1769,'2026-01-28',1,16,25,1,NULL,8.00,'2026-02-05 00:26:55','2026-02-05 00:26:55',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1770,'2026-01-29',1,16,25,1,NULL,8.00,'2026-02-05 00:26:56','2026-02-05 00:26:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1771,'2026-01-30',1,16,25,1,NULL,8.00,'2026-02-05 00:26:57','2026-02-05 00:26:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1772,'2026-01-02',2,13,21,1,NULL,8.00,'2026-02-05 00:36:41','2026-02-05 00:36:41',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1773,'2026-01-05',2,15,2,1,NULL,8.00,'2026-02-05 00:36:42','2026-02-05 00:36:42',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1774,'2026-01-06',2,15,2,1,NULL,8.00,'2026-02-05 00:36:43','2026-02-05 00:36:43',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1775,'2026-01-07',2,15,2,1,NULL,8.00,'2026-02-05 00:36:44','2026-02-05 00:36:44',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1776,'2026-01-08',2,14,19,1,NULL,8.00,'2026-02-05 00:36:45','2026-02-05 00:36:45',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1777,'2026-01-09',2,14,19,1,NULL,8.00,'2026-02-05 00:36:46','2026-02-05 00:36:46',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1778,'2026-01-12',2,14,19,1,NULL,8.00,'2026-02-05 00:36:47','2026-02-05 00:36:47',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1779,'2026-01-13',2,14,19,1,NULL,4.00,'2026-02-05 00:36:48','2026-02-05 00:36:48',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1780,'2026-01-13',2,13,22,1,NULL,4.00,'2026-02-05 00:36:49','2026-02-05 00:36:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1781,'2026-01-14',2,15,16,1,NULL,8.00,'2026-02-05 00:36:50','2026-02-05 00:36:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1782,'2026-01-15',2,15,16,1,NULL,8.00,'2026-02-05 00:36:51','2026-02-05 00:36:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1783,'2026-01-16',2,15,16,1,NULL,8.00,'2026-02-05 00:36:52','2026-02-05 00:36:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1784,'2026-01-19',2,15,16,1,NULL,8.00,'2026-02-05 00:36:53','2026-02-05 00:46:20',1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1785,'2026-01-20',2,15,14,1,NULL,8.00,'2026-02-05 00:36:54','2026-02-05 00:36:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1786,'2026-01-21',2,15,14,1,NULL,4.00,'2026-02-05 00:36:55','2026-02-05 00:46:43',1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1787,'2026-01-22',2,15,14,1,NULL,8.00,'2026-02-05 00:36:56','2026-02-05 00:36:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1788,'2026-01-23',2,15,14,1,NULL,8.00,'2026-02-05 00:36:57','2026-02-05 00:36:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1789,'2026-01-26',2,15,14,1,NULL,8.00,'2026-02-05 00:36:58','2026-02-05 00:36:58',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1790,'2026-01-27',2,15,17,1,NULL,8.00,'2026-02-05 00:36:59','2026-02-05 00:36:59',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1791,'2026-01-28',2,15,17,1,NULL,8.00,'2026-02-05 00:37:00','2026-02-05 00:37:00',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1792,'2026-01-29',2,15,17,2,15,8.00,'2026-02-05 00:37:01','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1793,'2026-01-30',2,13,21,1,15,8.00,'2026-02-05 00:37:02','2026-02-05 22:40:21',1,1,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1794,'2026-01-21',2,13,22,1,NULL,4.00,'2026-02-05 00:47:10','2026-02-05 00:47:10',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1795,'2026-01-02',4,13,21,1,NULL,8.00,'2026-02-05 00:53:38','2026-02-05 00:53:38',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1796,'2026-01-05',4,15,1,1,NULL,8.00,'2026-02-05 00:53:39','2026-02-05 00:53:39',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1797,'2026-01-06',4,15,1,1,NULL,8.00,'2026-02-05 00:53:40','2026-02-05 00:53:40',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1798,'2026-01-07',4,15,1,1,NULL,8.00,'2026-02-05 00:53:41','2026-02-05 00:53:41',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1799,'2026-01-08',4,15,1,1,NULL,8.00,'2026-02-05 00:53:42','2026-02-05 00:53:42',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1800,'2026-01-09',4,15,2,1,NULL,8.00,'2026-02-05 00:53:43','2026-02-05 00:53:43',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1801,'2026-01-12',4,15,13,1,NULL,8.00,'2026-02-05 00:53:44','2026-02-05 00:53:44',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1802,'2026-01-13',4,15,13,1,NULL,8.00,'2026-02-05 00:53:45','2026-02-05 00:53:45',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1803,'2026-01-14',4,15,13,1,NULL,8.00,'2026-02-05 00:53:46','2026-02-05 00:53:46',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1804,'2026-01-15',4,15,13,1,NULL,8.00,'2026-02-05 00:53:47','2026-02-05 00:53:47',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1805,'2026-01-16',4,13,21,1,NULL,8.00,'2026-02-05 00:53:48','2026-02-05 00:53:48',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1806,'2026-01-19',4,14,19,1,NULL,8.00,'2026-02-05 00:53:49','2026-02-05 00:53:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1807,'2026-01-20',4,14,19,1,NULL,8.00,'2026-02-05 00:53:50','2026-02-05 00:53:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1808,'2026-01-21',4,14,19,1,NULL,8.00,'2026-02-05 00:53:51','2026-02-05 00:53:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1809,'2026-01-22',4,15,16,1,NULL,8.00,'2026-02-05 00:53:52','2026-02-05 00:53:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1810,'2026-01-23',4,15,16,1,NULL,8.00,'2026-02-05 00:53:53','2026-02-05 00:53:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1811,'2026-01-26',4,14,10,1,NULL,8.00,'2026-02-05 00:56:53','2026-02-05 00:56:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1812,'2026-01-27',4,14,10,1,NULL,8.00,'2026-02-05 00:56:54','2026-02-05 00:56:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1813,'2026-01-28',4,14,10,1,NULL,8.00,'2026-02-05 00:56:55','2026-02-05 00:56:55',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1814,'2026-01-29',4,14,10,1,NULL,8.00,'2026-02-05 00:56:56','2026-02-05 00:56:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1815,'2026-01-30',4,13,21,1,NULL,8.00,'2026-02-05 00:56:57','2026-02-05 00:56:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1816,'2026-01-02',5,13,21,1,NULL,8.00,'2026-02-05 01:05:46','2026-02-05 01:05:46',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1817,'2026-01-23',5,13,21,1,NULL,8.00,'2026-02-05 01:06:01','2026-02-05 01:06:01',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1818,'2026-01-05',5,15,1,1,NULL,8.00,'2026-02-05 01:07:09','2026-02-05 01:07:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1819,'2026-01-06',5,15,1,1,NULL,8.00,'2026-02-05 01:07:11','2026-02-05 01:07:11',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1820,'2026-01-07',5,15,2,1,NULL,8.00,'2026-02-05 01:07:12','2026-02-05 01:07:12',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1821,'2026-01-08',5,15,2,1,NULL,8.00,'2026-02-05 01:07:13','2026-02-05 01:07:13',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1822,'2026-01-09',5,15,2,1,NULL,8.00,'2026-02-05 01:07:14','2026-02-05 01:07:14',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1823,'2026-01-12',5,17,26,1,NULL,8.00,'2026-02-05 01:07:15','2026-02-05 01:07:15',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1824,'2026-01-13',5,17,26,1,NULL,8.00,'2026-02-05 01:07:16','2026-02-05 01:07:16',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1825,'2026-01-14',5,17,26,1,NULL,8.00,'2026-02-05 01:07:17','2026-02-05 01:07:17',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1826,'2026-01-15',5,17,26,1,NULL,8.00,'2026-02-05 01:07:18','2026-02-05 01:07:18',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1827,'2026-01-16',5,17,26,1,NULL,8.00,'2026-02-05 01:07:19','2026-02-05 01:07:19',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1828,'2026-01-19',5,15,16,1,NULL,8.00,'2026-02-05 01:07:20','2026-02-05 01:07:20',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1829,'2026-01-20',5,15,16,1,NULL,8.00,'2026-02-05 01:07:21','2026-02-05 01:07:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1830,'2026-01-21',5,15,16,1,NULL,8.00,'2026-02-05 01:07:22','2026-02-05 01:07:22',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1831,'2026-01-22',5,15,16,1,NULL,8.00,'2026-02-05 01:07:23','2026-02-05 01:07:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1832,'2026-01-26',5,16,25,1,NULL,8.00,'2026-02-05 01:07:24','2026-02-05 01:07:24',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1833,'2026-01-27',5,16,25,1,NULL,8.00,'2026-02-05 01:07:25','2026-02-05 01:07:25',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1834,'2026-01-28',5,16,25,1,NULL,8.00,'2026-02-05 01:07:26','2026-02-05 01:07:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1835,'2026-01-29',5,16,25,1,NULL,8.00,'2026-02-05 01:07:27','2026-02-05 01:07:27',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1836,'2026-01-30',5,16,25,1,NULL,8.00,'2026-02-05 01:07:28','2026-02-05 01:07:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1837,'2026-01-02',8,13,21,1,NULL,8.00,'2026-02-05 01:14:48','2026-02-05 01:14:48',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1838,'2026-01-05',8,15,3,1,NULL,8.00,'2026-02-05 01:14:49','2026-02-05 01:14:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1839,'2026-01-06',8,15,3,1,NULL,8.00,'2026-02-05 01:14:50','2026-02-05 01:14:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1840,'2026-01-07',8,15,3,1,NULL,8.00,'2026-02-05 01:14:51','2026-02-05 01:14:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1841,'2026-01-08',8,15,3,1,NULL,8.00,'2026-02-05 01:14:52','2026-02-05 01:14:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1842,'2026-01-09',8,15,3,1,NULL,8.00,'2026-02-05 01:14:53','2026-02-05 01:14:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1843,'2026-01-12',8,15,4,1,NULL,8.00,'2026-02-05 01:14:54','2026-02-05 01:14:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1844,'2026-01-13',8,15,4,1,NULL,8.00,'2026-02-05 01:14:55','2026-02-05 01:14:55',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1845,'2026-01-14',8,15,4,1,NULL,8.00,'2026-02-05 01:14:56','2026-02-05 01:14:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1846,'2026-01-15',8,15,4,1,NULL,8.00,'2026-02-05 01:14:57','2026-02-05 01:14:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1847,'2026-01-16',8,15,4,1,NULL,8.00,'2026-02-05 01:14:58','2026-02-05 01:14:58',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1848,'2026-01-19',8,15,4,1,NULL,8.00,'2026-02-05 01:14:59','2026-02-05 01:14:59',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1849,'2026-01-20',8,15,4,1,NULL,8.00,'2026-02-05 01:15:00','2026-02-05 01:15:00',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1850,'2026-01-21',8,14,10,1,NULL,8.00,'2026-02-05 01:15:01','2026-02-05 01:15:01',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1851,'2026-01-22',8,14,10,1,NULL,8.00,'2026-02-05 01:15:02','2026-02-05 01:15:02',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1852,'2026-01-23',8,14,10,1,NULL,8.00,'2026-02-05 01:15:03','2026-02-05 01:15:03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1853,'2026-01-26',8,15,14,1,NULL,8.00,'2026-02-05 01:15:04','2026-02-05 01:15:04',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1854,'2026-01-27',8,15,14,1,NULL,8.00,'2026-02-05 01:15:05','2026-02-05 01:15:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1855,'2026-01-28',8,15,14,1,NULL,8.00,'2026-02-05 01:15:06','2026-02-05 01:15:06',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1856,'2026-01-29',8,15,14,1,NULL,8.00,'2026-02-05 01:15:07','2026-02-05 01:15:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1857,'2026-01-30',8,15,14,1,NULL,8.00,'2026-02-05 01:15:09','2026-02-05 01:15:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +/*!40000 ALTER TABLE `daily_work_reports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_worker_summary` +-- + +DROP TABLE IF EXISTS `daily_worker_summary`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `daily_worker_summary` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `report_date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `total_hours` decimal(4,2) NOT NULL DEFAULT 8.00 COMMENT '총 근무시간', + `work_status` enum('normal','annual_leave','half_leave','overtime') DEFAULT 'normal' COMMENT '근무 상태', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `unique_worker_date` (`worker_id`,`report_date`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_worker_summary` +-- + +LOCK TABLES `daily_worker_summary` WRITE; +/*!40000 ALTER TABLE `daily_worker_summary` DISABLE KEYS */; +/*!40000 ALTER TABLE `daily_worker_summary` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `departments` +-- + +DROP TABLE IF EXISTS `departments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `departments` ( + `department_id` int(11) NOT NULL AUTO_INCREMENT, + `department_name` varchar(100) NOT NULL, + `parent_id` int(11) DEFAULT NULL, + `description` text DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `display_order` int(11) DEFAULT 0, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`department_id`), + KEY `parent_id` (`parent_id`), + CONSTRAINT `departments_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `departments` (`department_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `departments` +-- + +LOCK TABLES `departments` WRITE; +/*!40000 ALTER TABLE `departments` DISABLE KEYS */; +INSERT INTO `departments` VALUES +(1,'생산팀',NULL,'현장 생산 작업 담당',1,1,'2026-02-03 05:03:37','2026-02-03 05:03:37'); +/*!40000 ALTER TABLE `departments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `equipment_external_logs` +-- + +DROP TABLE IF EXISTS `equipment_external_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `equipment_external_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `equipment_id` int(10) unsigned NOT NULL COMMENT '설비 ID', + `log_type` enum('export','return') NOT NULL COMMENT '반출/반입', + `export_date` date DEFAULT NULL COMMENT '반출일', + `expected_return_date` date DEFAULT NULL COMMENT '반입 예정일', + `actual_return_date` date DEFAULT NULL COMMENT '실제 반입일', + `destination` varchar(200) DEFAULT NULL COMMENT '반출처 (수리업체명 등)', + `reason` text DEFAULT NULL COMMENT '반출 사유', + `notes` text DEFAULT NULL COMMENT '비고', + `exported_by` int(11) DEFAULT NULL COMMENT '반출 담당자', + `returned_by` int(11) DEFAULT NULL COMMENT '반입 담당자', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`log_id`), + KEY `fk_eel_exported_by` (`exported_by`), + KEY `fk_eel_returned_by` (`returned_by`), + KEY `idx_eel_equipment_id` (`equipment_id`), + KEY `idx_eel_log_type` (`log_type`), + KEY `idx_eel_export_date` (`export_date`), + CONSTRAINT `fk_eel_equipment` FOREIGN KEY (`equipment_id`) REFERENCES `equipments` (`equipment_id`) ON DELETE CASCADE, + CONSTRAINT `fk_eel_exported_by` FOREIGN KEY (`exported_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL, + CONSTRAINT `fk_eel_returned_by` FOREIGN KEY (`returned_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `equipment_external_logs` +-- + +LOCK TABLES `equipment_external_logs` WRITE; +/*!40000 ALTER TABLE `equipment_external_logs` DISABLE KEYS */; +/*!40000 ALTER TABLE `equipment_external_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `equipment_move_logs` +-- + +DROP TABLE IF EXISTS `equipment_move_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `equipment_move_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `equipment_id` int(10) unsigned NOT NULL COMMENT '설비 ID', + `move_type` enum('temporary','return') NOT NULL COMMENT '임시이동/복귀', + `from_workplace_id` int(10) unsigned DEFAULT NULL COMMENT '이전 작업장', + `to_workplace_id` int(10) unsigned DEFAULT NULL COMMENT '이동 작업장', + `from_x_percent` decimal(5,2) DEFAULT NULL COMMENT '이전 X좌표', + `from_y_percent` decimal(5,2) DEFAULT NULL COMMENT '이전 Y좌표', + `to_x_percent` decimal(5,2) DEFAULT NULL COMMENT '이동 X좌표', + `to_y_percent` decimal(5,2) DEFAULT NULL COMMENT '이동 Y좌표', + `reason` text DEFAULT NULL COMMENT '이동 사유', + `moved_by` int(11) DEFAULT NULL COMMENT '이동 처리자', + `moved_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`log_id`), + KEY `fk_eml_from_workplace` (`from_workplace_id`), + KEY `fk_eml_to_workplace` (`to_workplace_id`), + KEY `fk_eml_moved_by` (`moved_by`), + KEY `idx_eml_equipment_id` (`equipment_id`), + KEY `idx_eml_move_type` (`move_type`), + CONSTRAINT `fk_eml_equipment` FOREIGN KEY (`equipment_id`) REFERENCES `equipments` (`equipment_id`) ON DELETE CASCADE, + CONSTRAINT `fk_eml_from_workplace` FOREIGN KEY (`from_workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL, + CONSTRAINT `fk_eml_moved_by` FOREIGN KEY (`moved_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL, + CONSTRAINT `fk_eml_to_workplace` FOREIGN KEY (`to_workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `equipment_move_logs` +-- + +LOCK TABLES `equipment_move_logs` WRITE; +/*!40000 ALTER TABLE `equipment_move_logs` DISABLE KEYS */; +INSERT INTO `equipment_move_logs` VALUES +(1,68,'temporary',2,10,7.82,8.53,NULL,NULL,NULL,1,'2026-02-04 04:34:45'), +(2,68,'temporary',2,10,7.82,8.53,NULL,NULL,NULL,1,'2026-02-04 04:44:36'); +/*!40000 ALTER TABLE `equipment_move_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `equipment_photos` +-- + +DROP TABLE IF EXISTS `equipment_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `equipment_photos` ( + `photo_id` int(11) NOT NULL AUTO_INCREMENT, + `equipment_id` int(10) unsigned NOT NULL, + `photo_path` varchar(255) NOT NULL COMMENT '이미지 경로', + `description` varchar(200) DEFAULT NULL COMMENT '사진 설명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `uploaded_by` int(11) DEFAULT NULL COMMENT '업로드한 사용자 ID', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`photo_id`), + KEY `fk_eq_photos_user` (`uploaded_by`), + KEY `idx_eq_photos_equipment_id` (`equipment_id`), + CONSTRAINT `fk_eq_photos_equipment` FOREIGN KEY (`equipment_id`) REFERENCES `equipments` (`equipment_id`) ON DELETE CASCADE, + CONSTRAINT `fk_eq_photos_user` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `equipment_photos` +-- + +LOCK TABLES `equipment_photos` WRITE; +/*!40000 ALTER TABLE `equipment_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `equipment_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `equipments` +-- + +DROP TABLE IF EXISTS `equipments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `equipments` ( + `equipment_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '설비 ID', + `equipment_code` varchar(50) NOT NULL COMMENT '설비 코드 (예: CNC-01, LATHE-A)', + `equipment_name` varchar(100) NOT NULL COMMENT '설비명', + `equipment_type` varchar(50) DEFAULT NULL COMMENT '설비 유형 (예: CNC, 선반, 밀링 등)', + `model_name` varchar(100) DEFAULT NULL COMMENT '모델명', + `manufacturer` varchar(100) DEFAULT NULL COMMENT '제조사', + `supplier` varchar(100) DEFAULT NULL COMMENT '구입처', + `purchase_price` decimal(15,0) DEFAULT NULL COMMENT '구입가격', + `installation_date` date DEFAULT NULL COMMENT '설치일', + `serial_number` varchar(100) DEFAULT NULL COMMENT '시리얼 번호', + `specifications` text DEFAULT NULL COMMENT '사양 정보 (JSON 형태로 저장 가능)', + `status` enum('active','maintenance','repair_needed','inactive','external','repair_external') DEFAULT 'active' COMMENT '설비 상태', + `notes` text DEFAULT NULL COMMENT '비고', + `workplace_id` int(10) unsigned DEFAULT NULL COMMENT '연결된 작업장 ID', + `map_x_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 X 위치 (%)', + `map_y_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 Y 위치 (%)', + `map_width_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 영역 너비 (%)', + `map_height_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 영역 높이 (%)', + `current_workplace_id` int(10) unsigned DEFAULT NULL COMMENT '현재 임시 위치 - 작업장 ID', + `current_map_x_percent` decimal(5,2) DEFAULT NULL COMMENT '현재 위치 X%', + `current_map_y_percent` decimal(5,2) DEFAULT NULL COMMENT '현재 위치 Y%', + `current_map_width_percent` decimal(5,2) DEFAULT NULL COMMENT '현재 위치 너비%', + `current_map_height_percent` decimal(5,2) DEFAULT NULL COMMENT '현재 위치 높이%', + `is_temporarily_moved` tinyint(1) DEFAULT 0 COMMENT '임시 이동 상태', + `moved_at` datetime DEFAULT NULL COMMENT '이동 일시', + `moved_by` int(11) DEFAULT NULL COMMENT '이동 처리자', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '생성일시', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '수정일시', + PRIMARY KEY (`equipment_id`), + UNIQUE KEY `equipments_equipment_code_unique` (`equipment_code`), + KEY `equipments_workplace_id_index` (`workplace_id`), + KEY `equipments_equipment_type_index` (`equipment_type`), + KEY `equipments_status_index` (`status`), + KEY `fk_eq_current_workplace` (`current_workplace_id`), + CONSTRAINT `equipments_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL, + CONSTRAINT `fk_eq_current_workplace` FOREIGN KEY (`current_workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `equipments` +-- + +LOCK TABLES `equipments` WRITE; +/*!40000 ALTER TABLE `equipments` DISABLE KEYS */; +INSERT INTO `equipments` VALUES +(1,'TKP-001','AIR COMPRESSOR',NULL,'AR10E','경원','지티씨',NULL,'2016-06-01','K603023Y','7.5KW(10HP)','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(2,'TKP-002','TURN TABLE',NULL,'YCT-200T','유체기계','형진종합공구',3600000,'2016-05-30',NULL,'220V','active',NULL,2,9.93,79.22,3.41,7.29,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:57:25'), +(3,'TKP-003','BAND SAW(中)',NULL,'CY300W','유림싸이겐','형진종합공구',4800000,'2016-05-30','20150943','1500W*380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(4,'TKP-004','BAND SAW(小)',NULL,'XB-180WA','렉스','형진종합공구',2700000,'2016-05-30',NULL,'180(VICE)','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(5,'TKP-005','BAND SAW(小)',NULL,'XB-180WA','렉스',NULL,NULL,'2019-05-30',NULL,'180(VICE)','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(6,'TKP-006','TIG용접기',NULL,'DAESUNG-500DT','대성용접기','형진종합공구',2200000,'2016-05-30','TEAG0168-001','500A','active',NULL,2,0.35,42.33,3.90,3.88,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-04 00:23:29'), +(7,'TKP-007','TIG용접기',NULL,'DAESUNG-500DT','대성용접기','형진종합공구',2200000,'2016-05-30','TEAG0168-002','500A','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(8,'TKP-008','TIG용접기',NULL,'DAESUNG-500DT','대성용접기','형진종합공구',2200000,'2016-05-30','TEAG0168-003','500A','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(9,'TKP-009','CO2용접기',NULL,'COD-500A','대성용접기','형진종합공구',2000000,'2016-05-30','10880','500A','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(10,'TKP-010','O2용접기',NULL,'GSORK','재현오토닉스','형진종합공구',620000,'2016-05-30',NULL,'220V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(11,'TKP-011','PIPE BEVELLING MACHINE',NULL,'S-200LT_MT(테이블포함)','DCS ENG','DCS ENG',12000000,'2017-03-29','KR-17030007','2\" ~ 8\"','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(12,'TKP-012','CO2용접기',NULL,'500MX','현대용접기','현대용접기',1800000,'2017-08-02',NULL,'220/380V,500A','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(13,'TKP-013','프라즈마',NULL,'Perfect-150AP','퍼펙트대대','현대용접기',1900000,'2017-08-02',NULL,'220/380/440V,140A','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(14,'TKP-014','터닝로라',NULL,'JK-5-TR','정일기공','정일기공',5700000,'2017-09-08',NULL,'5TON/380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(15,'TKP-015','터닝로라',NULL,'JK-5-TR','정일기공','정일기공',5700000,'2017-09-08',NULL,'5TON/380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(16,'TKP-016','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1600000,'2017-10-18','TJAD017B-005','500A/350A','active',NULL,2,0.02,46.36,4.87,4.34,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-04 00:22:53'), +(17,'TKP-017','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1600000,'2017-10-18','TJAD017B-006','500A/350A','active',NULL,2,0.35,20.93,4.06,4.03,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-04 00:23:46'), +(18,'TKP-018','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1600000,'2017-10-18','TJAD017B-007','500A/350A','repair_needed',NULL,2,0.35,17.05,4.06,3.57,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-04 05:35:54'), +(19,'TKP-019','전해연마기',NULL,'ONB-8000VP','메탈브라이트(오토기전)','오토기전',1450000,'2018-03-13','8022701','220V/MAX1200W','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(20,'TKP-020','지게차',NULL,'50DA-9F','현대지게차','현대지게차',45000000,'2018-05-10','HHKHFV36JJ0000061','5000KGS','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(21,'TKP-021','조방',NULL,NULL,'테크니컬코리아','천우기계공업/삼덕금속',14200000,'2018-05-11',NULL,'3658*12190','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(22,'TKP-022','BAND SAW(大)',NULL,'WBS-RC500AN','원공사','원공사',36000000,'2018-05-31','BC50A18-005F001','3,300kgs / 7.88kw','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(23,'TKP-023','AIR COMPRESSOR',NULL,'AR20E','경원기계','경원기계',NULL,'2018-06-05','AR020FE358','0.95Mpa','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(24,'TKP-024','TURN TABLE',NULL,'YCT-200TA','유체기계','청운종합공구',3245000,'2018-06-12',NULL,'220V','active',NULL,2,9.76,69.92,4.06,7.60,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:57:40'), +(25,'TKP-025','TIG용접기',NULL,'Perfect-500WT','퍼펙트대대','현대용접기',2400000,'2018-06-12','ADKAC017B-006','500A/AC DC','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(26,'TKP-026','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1900000,'2018-06-12','TAAI018B-002','500A/DC','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(27,'TKP-027','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1900000,'2018-06-12','TAAA018B-009','500A/DC','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(28,'TKP-028','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1900000,'2018-06-12','TAAA018B-001','500A/DC','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(29,'TKP-029','ELECTRIC CHAIN HOIST',NULL,'DSM-2S','대산','청운종합공구',2300000,'2018-07-06','K1806077','3Ph-60Hz-380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(30,'TKP-030','ELECTRIC CHAIN HOIST',NULL,'DSM-2S','대산','청운종합공구',2300000,'2018-07-10','K1807028','3Ph-60Hz-380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(31,'TKP-031','ELECTRIC CHAIN HOIST',NULL,'DSM-2S','대산','청운종합공구',2300000,'2018-07-10','K1807029','3Ph-60Hz-380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(32,'TKP-032','만능탭 드릴링머신',NULL,'SF-TDM32','㈜애스앤에프','㈜애스앤애프',2927000,'2018-11-09',NULL,'1.5KW','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(33,'TKP-033','지게차',NULL,'30D-9B','현대지게차','현대지게차',29400000,'2019-03-06','HHKHHN51KK0000864','2850KGS','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(34,'TKP-034','갠츄리크레인',NULL,'CRANE - DHG','반도호이스트','유진산업기계',249000000,'2019-05-09',NULL,'50/10Ton x SP20M x T/L50M x H15M','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(35,'TKP-035','OVER HEAD CRANE',NULL,'CRANE - DHO','반도호이스트','유진산업기계',58000000,'2019-05-09',NULL,'20Ton x SP24.0M x T/L67M x H11M','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(36,'TKP-036','OVER HEAD CRANE',NULL,'CRANE - DHO','반도호이스트','유진산업기계',58000000,'2019-05-09',NULL,'20Ton x SP24.0M x T/L67M x H11M','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(37,'TKP-037','OVER HEAD CRANE',NULL,'CRANE - DHO','반도호이스트','유진산업기계',29000000,'2019-05-09',NULL,'5Ton x SP24.0M x T/L67M x H11M','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(38,'TKP-038','OVER HEAD CRANE',NULL,'CRANE - DHO','반도호이스트','유진산업기계',29000000,'2019-05-09',NULL,'5Ton x SP24.0M x T/L67M x H11M','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(39,'TKP-039','고소작업대',NULL,NULL,'㈜쓰리제이테크',NULL,NULL,'2019-01-01',NULL,'250 Kg','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(40,'TKP-040','고소작업대',NULL,NULL,'㈜쓰리제이테크',NULL,NULL,'2019-01-01',NULL,'250 Kg','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(41,'TKP-041','AIR CONDITIONER',NULL,'코끼리 냉장고','㈜에스엔에프',NULL,NULL,'2019-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(42,'TKP-042','AIR CONDITIONER',NULL,NULL,'㈜에스엔에프',NULL,NULL,'2019-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(43,'TKP-043','AIR CONDITIONER',NULL,NULL,'㈜에스엔에프',NULL,NULL,'2019-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(44,'TKP-044','용접흄집진기',NULL,NULL,NULL,NULL,NULL,'2019-01-01',NULL,'5 HP / 60 m3/Min','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(45,'TKP-045','용접흄집진기',NULL,NULL,NULL,NULL,NULL,'2019-01-01',NULL,'5 HP / 60 m3/Min','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(46,'TKP-046','용접흄집진기',NULL,NULL,NULL,NULL,NULL,'2019-01-01',NULL,'5 HP / 60 m3/Min','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(47,'TKP-047','용접흄집진기',NULL,NULL,NULL,NULL,NULL,'2019-01-01',NULL,'5 HP / 60 m3/Min','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(48,'TKP-048','용접흄집진기',NULL,NULL,NULL,NULL,NULL,'2019-01-01',NULL,'5 HP / 60 m3/Min','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(49,'TKP-049','자동용접기',NULL,NULL,'Swage-Lok','Swage-Lok',50000000,'2019-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(50,'TKP-050','Magnetic Drill',NULL,NULL,'NITTO','청운종합공구',NULL,'2020-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(51,'TKP-051','Magnetic Drill',NULL,NULL,'Key-Yang','청운종합공구',NULL,'2020-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(52,'TKP-052','Tube Bending M/C',NULL,NULL,'REMS',NULL,NULL,'2020-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(53,'TKP-053','Unit Test Panel',NULL,NULL,NULL,NULL,NULL,'2021-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(54,'TKP-054','고소작업대',NULL,NULL,'㈜쓰리제이테크',NULL,NULL,'2021-01-01',NULL,'500 Kg','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(55,'TKP-055','용접봉 건조기',NULL,'주문제작','진원하이텍','진원하이텍',2300000,'2022-05-04',NULL,'박스형','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(56,'TKP-056','C&T 가공기',NULL,'MS-CTK469','Swage-Lok','Swage-Lok',7347600,'2022-07-20',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(57,'TKP-057','테이블형 튜브 벤딩기',NULL,'MS-BTT-K','Swage-Lok','Swage-Lok',20000000,'2022-06-03',NULL,'1/2\", 1/4\"','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(58,'TKP-058','자동용접기 헤드',NULL,'SWS-10H-D-15','Swage-Lok','Swage-Lok',20000000,'2022-06-03',NULL,'1/2\"','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(59,'TKP-059','천장주행크레인',NULL,'HC-75D-13105','에이치앤씨','에이치앤씨',22800000,'2023-06-09',NULL,'7.5ton','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(60,'TKP-060','AED',NULL,'CU-SP1 Plus','제이메디','제이메디',1600000,'2023-11-09',NULL,'저출력심장충격기','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(61,'TKP-061','베벨머신',NULL,'S-150','DCSENG','DCSENG',16000000,'2023-12-12',NULL,'O.D 20mm ~ 170mm','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(62,'TKP-062','피막제거기',NULL,'CM4_OD_GC','DCSENG','DCSENG',2000000,'2023-12-12',NULL,'최대 폭 48mm, 최대 깊이 15mm, 6\"이상','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(63,'TKP-063','피막제거기',NULL,'S-CM4_OD','DCSENG','DCSENG',1200000,'2023-12-12',NULL,'최대 폭 48mm, 최대 깊이 15mm, 1\" 이상','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(64,'TKP-064','텅스텐 가공기',NULL,'S-TGR','DCSENG','DCSENG',800000,'2023-12-12',NULL,'0.89kg, 0.25~3.2','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(65,'TKP-065','전동대차',NULL,'LPM15','두산산업차량','두산산업차량',2800000,'2023-12-20',NULL,'2.0 ton','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(66,'TKP-066','TURN TABLE',NULL,'YCT-200T','유체기계','청운종합공구',3000000,NULL,NULL,'220V','active',NULL,2,9.76,60.78,6.17,3.10,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-04 00:17:49','2026-02-04 00:19:51'), +(67,'TKP-067','TURN TABLE',NULL,'YCT-200T','유체기계','청운종합공구',3000000,NULL,NULL,'220V','active',NULL,2,9.60,55.66,6.33,2.95,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-04 00:18:26','2026-02-04 00:19:57'), +(68,'TKP-068','TURN TABLE',NULL,'YCT-200TA','유체기계','청운종합공구',3000000,NULL,NULL,'220V','active',NULL,2,7.82,8.53,5.68,3.10,10,NULL,NULL,NULL,NULL,1,'2026-02-04 04:44:36',1,'2026-02-04 00:18:59','2026-02-04 04:44:36'); +/*!40000 ALTER TABLE `equipments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `issue_report_categories` +-- + +DROP TABLE IF EXISTS `issue_report_categories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `issue_report_categories` ( + `category_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '카테고리 ID', + `category_type` enum('nonconformity','safety') NOT NULL COMMENT '카테고리 유형 (부적합/안전)', + `category_name` varchar(100) NOT NULL COMMENT '카테고리명', + `description` text DEFAULT NULL COMMENT '카테고리 설명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`category_id`), + KEY `idx_irc_category_type` (`category_type`), + KEY `idx_irc_is_active` (`is_active`) +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `issue_report_categories` +-- + +LOCK TABLES `issue_report_categories` WRITE; +/*!40000 ALTER TABLE `issue_report_categories` DISABLE KEYS */; +INSERT INTO `issue_report_categories` VALUES +(1,'nonconformity','자재누락',NULL,1,1,'2026-02-02 00:23:42'), +(2,'nonconformity','설계미스',NULL,2,1,'2026-02-02 00:23:42'), +(3,'nonconformity','입고불량',NULL,3,1,'2026-02-02 00:23:42'), +(4,'nonconformity','검사미스',NULL,4,1,'2026-02-02 00:23:42'), +(5,'nonconformity','기타 부적합',NULL,99,1,'2026-02-02 00:23:42'), +(6,'safety','보호구 미착용',NULL,1,1,'2026-02-02 00:23:42'), +(7,'safety','위험구역 출입',NULL,2,1,'2026-02-02 00:23:42'), +(8,'safety','안전시설 파손',NULL,3,1,'2026-02-02 00:23:42'), +(9,'safety','안전수칙 위반',NULL,4,1,'2026-02-02 00:23:42'), +(10,'safety','기타 안전',NULL,99,1,'2026-02-02 00:23:42'), +(11,'nonconformity','설비 수리','설비 고장 및 수리 요청',10,1,'2026-02-04 03:22:27'), +(12,'nonconformity','NDE 불합격',NULL,0,1,'2026-02-04 23:15:15'), +(13,'nonconformity','작업 부적합',NULL,0,1,'2026-02-04 23:15:37'); +/*!40000 ALTER TABLE `issue_report_categories` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `issue_report_items` +-- + +DROP TABLE IF EXISTS `issue_report_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `issue_report_items` ( + `item_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '항목 ID', + `category_id` int(10) unsigned NOT NULL COMMENT '소속 카테고리 ID', + `item_name` varchar(200) NOT NULL COMMENT '신고 항목명', + `description` text DEFAULT NULL COMMENT '항목 설명', + `severity` enum('low','medium','high','critical') DEFAULT 'medium' COMMENT '심각도', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`item_id`), + KEY `idx_iri_category_id` (`category_id`), + KEY `idx_iri_is_active` (`is_active`), + CONSTRAINT `issue_report_items_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `issue_report_categories` (`category_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `issue_report_items` +-- + +LOCK TABLES `issue_report_items` WRITE; +/*!40000 ALTER TABLE `issue_report_items` DISABLE KEYS */; +INSERT INTO `issue_report_items` VALUES +(1,1,'배관 자재 미입고',NULL,'high',1,1,'2026-02-02 00:23:42'), +(2,1,'피팅류 부족',NULL,'medium',2,1,'2026-02-02 00:23:42'), +(3,1,'밸브류 미입고',NULL,'high',3,1,'2026-02-02 00:23:42'), +(4,1,'가스켓/볼트류 부족',NULL,'low',4,1,'2026-02-02 00:23:42'), +(5,1,'서포트 자재 부족',NULL,'medium',5,1,'2026-02-02 00:23:42'), +(6,2,'도면 치수 오류',NULL,'high',1,1,'2026-02-02 00:23:42'), +(7,2,'스펙 불일치',NULL,'high',2,1,'2026-02-02 00:23:42'), +(8,2,'누락된 상세도',NULL,'medium',3,1,'2026-02-02 00:23:42'), +(9,2,'간섭 발생',NULL,'critical',4,1,'2026-02-02 00:23:42'), +(10,3,'외관 불량',NULL,'medium',1,1,'2026-02-02 00:23:42'), +(11,3,'치수 불량',NULL,'high',2,1,'2026-02-02 00:23:42'), +(12,3,'수량 부족',NULL,'medium',3,1,'2026-02-02 00:23:42'), +(13,3,'재질 불일치',NULL,'critical',4,1,'2026-02-02 00:23:42'), +(14,4,'치수 검사 누락',NULL,'high',1,1,'2026-02-02 00:23:42'), +(15,4,'외관 검사 누락',NULL,'medium',2,1,'2026-02-02 00:23:42'), +(16,4,'용접 검사 누락',NULL,'critical',3,1,'2026-02-02 00:23:42'), +(17,4,'도장 검사 누락',NULL,'medium',4,1,'2026-02-02 00:23:42'), +(18,6,'안전모 미착용',NULL,'high',1,1,'2026-02-02 00:23:42'), +(19,6,'안전화 미착용',NULL,'high',2,1,'2026-02-02 00:23:42'), +(20,6,'보안경 미착용',NULL,'medium',3,1,'2026-02-02 00:23:42'), +(21,6,'안전대 미착용',NULL,'critical',4,1,'2026-02-02 00:23:42'), +(22,6,'귀마개 미착용',NULL,'low',5,1,'2026-02-02 00:23:42'), +(23,6,'안전장갑 미착용',NULL,'medium',6,1,'2026-02-02 00:23:42'), +(24,7,'통제구역 무단 출입',NULL,'critical',1,1,'2026-02-02 00:23:42'), +(25,7,'고소 작업 구역 무단 출입',NULL,'critical',2,1,'2026-02-02 00:23:42'), +(26,7,'밀폐공간 무단 진입',NULL,'critical',3,1,'2026-02-02 00:23:42'), +(27,7,'장비 가동 구역 무단 접근',NULL,'high',4,1,'2026-02-02 00:23:42'), +(28,8,'안전난간 파손',NULL,'high',1,1,'2026-02-02 00:23:42'), +(29,8,'경고 표지판 훼손',NULL,'medium',2,1,'2026-02-02 00:23:42'), +(30,8,'안전망 파손',NULL,'high',3,1,'2026-02-02 00:23:42'), +(31,8,'비상조명 고장',NULL,'medium',4,1,'2026-02-02 00:23:42'), +(32,8,'소화설비 파손',NULL,'critical',5,1,'2026-02-02 00:23:42'), +(33,9,'지정 통로 미사용',NULL,'medium',1,1,'2026-02-02 00:23:42'), +(34,9,'고소 작업 안전 미준수',NULL,'critical',2,1,'2026-02-02 00:23:42'), +(35,9,'화기 작업 절차 미준수',NULL,'critical',3,1,'2026-02-02 00:23:42'), +(36,9,'정리정돈 미흡',NULL,'low',4,1,'2026-02-02 00:23:42'), +(37,9,'장비 조작 절차 미준수',NULL,'high',5,1,'2026-02-02 00:23:42'), +(38,11,'기계 고장','기계 작동 불가 또는 이상','high',1,1,'2026-02-04 03:22:27'), +(39,11,'부품 교체 필요','소모품 또는 부품 교체 필요','medium',2,1,'2026-02-04 03:22:27'), +(40,11,'정기 점검 필요','예방 정비 또는 정기 점검','low',3,1,'2026-02-04 03:22:27'), +(41,11,'외부 수리 필요','전문 업체 수리가 필요한 경우','high',4,1,'2026-02-04 03:22:27'), +(42,5,'작업대기',NULL,'medium',0,1,'2026-02-04 22:52:31'), +(43,13,'NDE 불합격',NULL,'medium',0,1,'2026-02-04 23:15:46'), +(44,4,'결과 전달 부적합',NULL,'medium',0,1,'2026-02-04 23:19:05'); +/*!40000 ALTER TABLE `issue_report_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `item_types` +-- + +DROP TABLE IF EXISTS `item_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `item_types` ( + `type_code` varchar(20) NOT NULL, + `type_name` varchar(50) NOT NULL COMMENT '유형명', + `icon` varchar(10) DEFAULT NULL COMMENT '아이콘 이모지', + `color` varchar(20) DEFAULT NULL COMMENT '표시 색상', + `display_order` int(11) DEFAULT 0, + `is_active` tinyint(1) DEFAULT 1, + PRIMARY KEY (`type_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `item_types` +-- + +LOCK TABLES `item_types` WRITE; +/*!40000 ALTER TABLE `item_types` DISABLE KEYS */; +INSERT INTO `item_types` VALUES +('container','용기','📦','#3b82f6',1,1), +('material','자재','🧱','#f59e0b',3,1), +('other','기타','📍','#6b7280',5,1), +('plate','플레이트','🔲','#10b981',2,1), +('tool','공구/장비','🔧','#8b5cf6',4,1); +/*!40000 ALTER TABLE `item_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `knex_migrations` +-- + +DROP TABLE IF EXISTS `knex_migrations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `knex_migrations` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `batch` int(11) DEFAULT NULL, + `migration_time` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `knex_migrations` +-- + +LOCK TABLES `knex_migrations` WRITE; +/*!40000 ALTER TABLE `knex_migrations` DISABLE KEYS */; +INSERT INTO `knex_migrations` VALUES +(1,'20251219003210_20251219_initial_schema.js',1,'2026-01-19 00:47:40'), +(2,'20251219010000_add_columns_to_projects.js',1,'2026-01-19 00:47:40'), +(3,'20260106083251_create_permissions_tables.js',2,'2026-01-19 00:49:25'), +(4,'20260106083318_populate_permissions_data.js',3,'2026-01-19 00:49:29'), +(5,'20260107140000_update_worker_schema.js',3,'2026-01-19 00:49:29'), +(6,'20260119000000_simplify_permissions_and_add_page_access.js',3,'2026-01-19 00:49:29'), +(7,'20260119120000_add_worker_fields.js',3,'2026-01-19 00:49:46'), +(9,'20260119120001_create_attendance_tables.js',3,'2026-01-19 01:34:26'), +(11,'20260119120002_create_accounts_for_existing_workers.js',5,'2026-01-19 10:40:56'), +(12,'20260119120003_add_guest_role.js',5,'2026-01-19 10:40:56'), +(13,'20260119095549_add_worker_display_fields.js',6,'2026-01-19 01:46:21'), +(14,'20260120000000_create_tbm_system.js',7,'2026-01-20 15:30:51'), +(15,'20260120000001_add_tbm_page.js',8,'2026-01-20 15:34:53'), +(16,'20260126000001_create_workplace_categories.js',9,'2026-01-26 14:27:40'), +(17,'20260126000002_create_workplaces.js',9,'2026-01-26 14:27:40'), +(18,'20260126010002_create_tasks.js',10,'2026-01-26 15:05:01'), +(20,'20260126010003_add_work_type_task_to_tbm.js',11,'2026-01-27 06:30:46'), +(21,'20260126010004_add_work_details_to_team_assignments.js',11,'2026-01-27 06:30:46'), +(22,'20260127000001_remove_unused_tbm_fields.js',12,'2026-01-27 07:03:06'), +(23,'20260127000002_add_workplace_map_images.js',13,'2026-01-27 07:30:47'), +(24,'20260127010000_add_workplace_purpose_fields.js',14,'2026-01-27 08:15:49'), +(25,'20260127020000_make_leader_id_nullable.js',15,'2026-01-27 08:48:02'), +(26,'20260127030000_add_tbm_fields_to_work_reports.js',16,'2026-01-27 10:38:52'), +(27,'20260127040000_update_pages_for_current_system.js',17,'2026-01-27 14:59:17'), +(28,'20260128000000_add_layout_image_to_workplaces.js',18,'2026-01-28 08:24:33'), +(29,'20260128010000_create_equipments_table.js',19,'2026-01-28 09:01:32'), +(30,'20260129000000_create_vacation_requests.js',20,'2026-01-28 14:54:20'), +(31,'20260129000001_register_attendance_pages.js',21,'2026-01-28 14:55:06'), +(32,'20260129000003_update_vacation_pages.js',22,'2026-01-29 12:49:41'), +(33,'20260129000002_add_attendance_is_present.js',23,'2026-01-29 13:09:34'), +(37,'20260129000004_extend_vacation_types.js',24,'2026-01-29 13:33:11'), +(38,'20260129000005_create_vacation_balance_details.js',24,'2026-01-29 13:33:11'), +(39,'20260129000006_register_vacation_pages.js',24,'2026-01-29 13:33:11'), +(40,'20260129010000_create_visit_request_system.js',25,'2026-01-29 14:26:17'), +(41,'20260129010001_register_visit_pages.js',25,'2026-01-29 14:26:17'), +(42,'20260130000001_create_work_issue_system.js',26,'2026-02-02 00:23:42'), +(44,'20260130000002_register_issue_pages.js',27,'2026-02-02 01:19:22'), +(45,'20260202000001_create_work_report_defects.js',28,'2026-02-02 01:19:31'), +(46,'20260202100000_expand_safety_checklist.js',29,'2026-02-02 01:44:54'), +(48,'20260202200000_reorganize_pages.js',30,'2026-02-02 23:15:51'), +(49,'20260203100000_link_defects_to_issues.js',31,'2026-02-02 23:16:00'), +(50,'20260203090000_add_category_to_defects.js',32,'2026-02-02 23:55:34'), +(51,'20260204100000_add_equipment_purchase_fields.js',33,'2026-02-04 01:44:41'), +(52,'20260204100000_create_daily_patrol_system.js',34,'2026-02-04 01:47:33'); +/*!40000 ALTER TABLE `knex_migrations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `knex_migrations_lock` +-- + +DROP TABLE IF EXISTS `knex_migrations_lock`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `knex_migrations_lock` ( + `index` int(10) unsigned NOT NULL AUTO_INCREMENT, + `is_locked` int(11) DEFAULT NULL, + PRIMARY KEY (`index`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `knex_migrations_lock` +-- + +LOCK TABLES `knex_migrations_lock` WRITE; +/*!40000 ALTER TABLE `knex_migrations_lock` DISABLE KEYS */; +INSERT INTO `knex_migrations_lock` VALUES +(1,0); +/*!40000 ALTER TABLE `knex_migrations_lock` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `login_logs` +-- + +DROP TABLE IF EXISTS `login_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `login_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) DEFAULT NULL, + `login_time` datetime DEFAULT current_timestamp(), + `logout_time` datetime DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `login_status` enum('success','failed','locked') DEFAULT 'success', + `failure_reason` varchar(100) DEFAULT NULL, + PRIMARY KEY (`log_id`), + KEY `idx_user_login` (`user_id`,`login_time`), + CONSTRAINT `login_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=224 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `login_logs` +-- + +LOCK TABLES `login_logs` WRITE; +/*!40000 ALTER TABLE `login_logs` DISABLE KEYS */; +INSERT INTO `login_logs` VALUES +(146,3,'2025-11-02 23:53:02',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(147,3,'2025-11-03 02:10:26',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(148,3,'2025-11-03 02:10:33',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(149,1,'2025-11-03 02:11:06',NULL,'::ffff:185.199.111.133','curl/8.7.1','failed','invalid_password'), +(150,1,'2025-11-03 02:11:06',NULL,'::ffff:185.199.111.133','curl/8.7.1','failed','invalid_password'), +(151,3,'2025-11-03 02:11:43',NULL,'::ffff:185.199.111.133','curl/8.7.1','success',NULL), +(152,3,'2025-11-03 02:11:49',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(153,3,'2025-11-03 02:12:44',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(154,3,'2025-11-03 02:12:58',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(155,3,'2025-11-03 02:12:58',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(156,3,'2025-11-03 02:13:02',NULL,'::ffff:185.199.111.133','curl/8.7.1','success',NULL), +(157,3,'2025-11-03 02:13:43',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(158,3,'2025-11-03 02:15:28',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(159,3,'2025-11-03 03:07:23',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(160,3,'2025-11-03 03:27:50',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(161,3,'2025-11-03 03:44:52',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(162,3,'2025-11-03 04:02:14',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(163,3,'2025-11-03 04:36:14',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(164,3,'2025-11-03 06:21:57',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(165,3,'2025-11-03 06:50:04',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(166,3,'2025-11-03 22:39:38',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(167,1,'2025-11-04 01:38:28',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(168,1,'2025-11-04 01:58:20',NULL,'::ffff:192.168.65.1','curl/8.7.1','failed','invalid_password'), +(169,1,'2025-11-04 21:34:47',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(170,1,'2025-11-04 23:55:43',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(171,1,'2025-11-04 23:56:47',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','failed','invalid_password'), +(172,1,'2025-11-04 23:56:59',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(173,1,'2025-11-05 01:35:01',NULL,'::ffff:185.199.109.133','curl/8.7.1','failed','invalid_password'), +(174,1,'2025-11-05 01:36:09',NULL,'::ffff:185.199.109.133','curl/8.7.1','failed','invalid_password'), +(175,1,'2025-11-05 01:37:45',NULL,'::ffff:185.199.109.133','curl/8.7.1','success',NULL), +(176,1,'2025-11-05 01:44:59',NULL,'::ffff:185.199.109.133','curl/8.7.1','success',NULL), +(177,6,'2025-11-05 01:46:07',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(178,3,'2025-11-05 01:46:14',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(179,5,'2025-11-05 01:47:15',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(180,3,'2025-11-05 01:49:12',NULL,'::ffff:185.199.109.133','curl/8.7.1','failed','invalid_password'), +(181,3,'2025-11-05 01:49:27',NULL,'::ffff:185.199.109.133','curl/8.7.1','success',NULL), +(182,6,'2025-11-05 01:49:37',NULL,'::ffff:185.199.109.133','curl/8.7.1','success',NULL), +(183,5,'2025-11-05 01:49:44',NULL,'::ffff:185.199.109.133','curl/8.7.1','success',NULL), +(184,5,'2025-11-05 01:50:08',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(185,5,'2025-11-05 01:55:59',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(186,6,'2025-11-05 01:56:13',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(187,3,'2025-11-05 01:56:20',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(188,1,'2025-11-05 01:56:35',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(189,1,'2025-11-05 02:01:27',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(190,3,'2025-11-05 02:01:53',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(191,5,'2025-11-05 02:02:02',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(192,1,'2025-11-05 02:03:10',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','failed','invalid_password'), +(193,1,'2025-11-05 02:03:20',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(194,5,'2025-11-05 02:18:31',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(195,7,'2025-11-05 02:20:22',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(196,1,'2025-11-05 02:20:37',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(197,7,'2025-11-05 02:23:43',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(198,1,'2025-11-05 02:25:08',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(199,3,'2025-11-05 02:25:45',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(200,7,'2025-11-05 02:25:54',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(201,7,'2025-11-05 02:26:31',NULL,'::ffff:185.199.110.133','curl/8.7.1','failed','invalid_password'), +(202,7,'2025-11-05 02:27:52',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(205,1,'2025-11-05 02:52:20',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(206,3,'2026-02-03 04:54:17',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(207,1,'2026-02-03 04:56:05',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(208,3,'2026-02-03 05:43:08',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36','success',NULL), +(209,1,'2026-02-03 05:43:42',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36','success',NULL), +(210,1,'2026-02-03 06:14:57',NULL,'::ffff:185.199.108.133','curl/8.7.1','failed','invalid_password'), +(211,1,'2026-02-03 06:25:29',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(212,1,'2026-02-03 06:26:54',NULL,'::ffff:185.199.108.133','curl/8.7.1','failed','invalid_password'), +(213,1,'2026-02-03 06:55:48',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(214,1,'2026-02-03 21:24:20',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(215,1,'2026-02-03 22:53:39',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(216,1,'2026-02-04 05:31:13',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(217,1,'2026-02-04 07:25:57',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(218,1,'2026-02-04 23:46:38',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(219,1,'2026-02-05 01:01:31',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(220,1,'2026-02-05 03:56:31',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(221,1,'2026-02-05 05:22:15',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(222,1,'2026-02-05 21:37:09',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36','success',NULL), +(223,1,'2026-02-05 22:40:53',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36','success',NULL); +/*!40000 ALTER TABLE `login_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `notification_recipients` +-- + +DROP TABLE IF EXISTS `notification_recipients`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notification_recipients` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `notification_type` enum('repair','safety','nonconformity','equipment','maintenance','system') NOT NULL, + `user_id` int(11) NOT NULL, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `created_by` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique_type_user` (`notification_type`,`user_id`), + KEY `user_id` (`user_id`), + KEY `idx_nr_type` (`notification_type`), + KEY `idx_nr_active` (`is_active`), + CONSTRAINT `notification_recipients_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `notification_recipients` +-- + +LOCK TABLES `notification_recipients` WRITE; +/*!40000 ALTER TABLE `notification_recipients` DISABLE KEYS */; +/*!40000 ALTER TABLE `notification_recipients` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `notifications` +-- + +DROP TABLE IF EXISTS `notifications`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notifications` ( + `notification_id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) DEFAULT NULL COMMENT '특정 사용자에게만 표시 (NULL이면 전체)', + `type` enum('repair','safety','system','equipment','maintenance') NOT NULL DEFAULT 'system', + `title` varchar(200) NOT NULL, + `message` text DEFAULT NULL, + `link_url` varchar(500) DEFAULT NULL COMMENT '클릭시 이동할 URL', + `reference_type` varchar(50) DEFAULT NULL COMMENT '연관 테이블', + `reference_id` int(11) DEFAULT NULL COMMENT '연관 레코드 ID', + `is_read` tinyint(1) DEFAULT 0, + `read_at` datetime DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `created_by` int(11) DEFAULT NULL, + PRIMARY KEY (`notification_id`), + KEY `idx_notifications_user` (`user_id`), + KEY `idx_notifications_type` (`type`), + KEY `idx_notifications_is_read` (`is_read`), + KEY `idx_notifications_created` (`created_at` DESC) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `notifications` +-- + +LOCK TABLES `notifications` WRITE; +/*!40000 ALTER TABLE `notifications` DISABLE KEYS */; +INSERT INTO `notifications` VALUES +(1,NULL,'repair','수리 신청: TIG용접기','기계 고장 수리가 신청되었습니다.','/pages/admin/equipment-detail.html?id=18','work_issue_reports',7,1,'2026-02-04 06:08:30','2026-02-04 05:35:54',NULL), +(2,NULL,'repair','수리 신청: TIG용접기','기계 고장 수리가 신청되었습니다.','/pages/admin/repair-management.html','work_issue_reports',7,0,NULL,'2026-02-04 05:35:54',NULL); +/*!40000 ALTER TABLE `notifications` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pages` +-- + +DROP TABLE IF EXISTS `pages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `pages` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `page_key` varchar(100) NOT NULL, + `page_name` varchar(100) NOT NULL, + `page_path` varchar(255) NOT NULL, + `category` varchar(50) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, + `is_admin_only` tinyint(1) DEFAULT 0, + `display_order` int(11) DEFAULT 0, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + `is_default_accessible` tinyint(1) DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `pages_page_key_unique` (`page_key`) +) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `pages` +-- + +LOCK TABLES `pages` WRITE; +/*!40000 ALTER TABLE `pages` DISABLE KEYS */; +INSERT INTO `pages` VALUES +(11,'dashboard','대시보드','/pages/dashboard.html','common','전체 현황 대시보드',0,1,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(12,'work.tbm','TBM','/pages/work/tbm.html','work','TBM (Tool Box Meeting) 관리',0,10,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(13,'work.report-create','작업보고서 작성','/pages/work/report-create.html','work','일일 작업보고서 작성',0,11,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(14,'work.report-view','작업보고서 조회','/pages/work/report-view.html','work','작업보고서 조회 및 검색',0,12,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(15,'work.analysis','작업 분석','/pages/work/analysis.html','work','작업 통계 및 분석',0,13,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(16,'admin.accounts','계정 관리','/pages/admin/accounts.html','admin','사용자 계정 관리',1,20,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(18,'admin.workers','작업자 관리','/pages/admin/workers.html','admin','작업자 정보 관리',1,22,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(19,'admin.projects','프로젝트 관리','/pages/admin/projects.html','admin','프로젝트 관리',1,23,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(20,'admin.workplaces','작업장 관리','/pages/admin/workplaces.html','admin','작업장소 관리',1,24,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(21,'admin.codes','코드 관리','/pages/admin/codes.html','admin','시스템 코드 관리',1,25,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(22,'admin.tasks','작업 관리','/pages/admin/tasks.html','admin','작업 유형 관리',1,26,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(23,'profile.info','내 정보','/pages/profile/info.html','profile','내 프로필 정보',0,30,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(24,'profile.password','비밀번호 변경','/pages/profile/password.html','profile','비밀번호 변경',0,31,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(25,'admin.equipments','설비 관리','/pages/admin/equipments.html','admin','작업장별 설비 정보를 등록하고 관리합니다',1,35,'2026-01-28 00:17:01','2026-01-28 00:17:01',0), +(26,'common.daily-attendance','일일 출퇴근 입력','/pages/common/daily-attendance.html','common','일일 출퇴근 기록 입력 페이지 (관리자/조장)',0,50,'2026-01-28 05:55:06','2026-01-28 05:55:06',1), +(27,'common.monthly-attendance','월별 출퇴근 현황','/pages/common/monthly-attendance.html','common','월별 출퇴근 현황 조회 페이지',0,51,'2026-01-28 05:55:06','2026-01-28 05:55:06',1), +(29,'admin.attendance-report-comparison','출퇴근-작업보고서 대조','/pages/admin/attendance-report-comparison.html','admin','출퇴근 기록과 작업보고서 대조 페이지 (관리자)',1,120,'2026-01-28 05:55:06','2026-01-28 05:55:06',0), +(34,'common.vacation-request','휴가 신청','/pages/common/vacation-request.html','common','작업자가 휴가를 신청하고 본인의 신청 내역을 확인하는 페이지',0,51,'2026-01-29 04:10:29','2026-01-29 04:10:29',1), +(35,'common.vacation-management','휴가 관리','/pages/common/vacation-management.html','common','관리자가 휴가 승인, 직접 입력, 전체 내역을 관리하는 페이지',1,52,'2026-01-29 04:10:29','2026-01-29 04:10:29',0), +(36,'common.annual-vacation-overview','연간 연차 현황','/pages/common/annual-vacation-overview.html','common','모든 작업자의 연간 연차 현황을 차트로 시각화',1,54,'2026-01-29 04:33:11','2026-01-29 04:33:11',0), +(37,'common.vacation-allocation','휴가 발생 입력','/pages/common/vacation-allocation.html','common','작업자별 휴가 발생 입력 및 특별 휴가 관리',1,55,'2026-01-29 04:33:11','2026-01-29 04:33:11',0), +(38,'work.visit-request','출입 신청','/pages/work/visit-request.html','work','작업장 출입 신청 및 안전교육 신청',0,15,'2026-01-29 05:26:17','2026-01-29 05:26:17',1), +(39,'admin.safety-management','안전관리','/pages/admin/safety-management.html','admin','출입 신청 승인 및 안전교육 관리',0,60,'2026-01-29 05:26:17','2026-01-29 05:26:17',0), +(40,'admin.safety-training-conduct','안전교육 진행','/pages/admin/safety-training-conduct.html','admin','안전교육 실시 및 서명 관리',0,61,'2026-01-29 05:26:17','2026-01-29 05:26:17',0), +(41,'work.issue-report','문제 신고','/pages/work/issue-report.html','work','작업 중 문제(부적합/안전) 신고 등록',0,16,'2026-02-02 00:24:55','2026-02-02 00:24:55',1), +(42,'work.issue-list','신고 목록','/pages/work/issue-list.html','work','문제 신고 목록 조회 및 관리',0,17,'2026-02-02 00:24:55','2026-02-02 00:24:55',1), +(43,'work.issue-detail','신고 상세','/pages/work/issue-detail.html','work','문제 신고 상세 조회',0,18,'2026-02-02 00:24:55','2026-02-02 00:24:55',1), +(44,'safety.issue_report','이슈 신고','/pages/safety/issue-report.html','safety','작업 중 문제(부적합/안전) 신고 등록',0,16,'2026-02-02 01:19:22','2026-02-02 01:19:22',0), +(45,'safety.issue_list','이슈 목록','/pages/safety/issue-list.html','safety','문제 신고 목록 조회 및 관리',0,17,'2026-02-02 01:19:22','2026-02-02 01:19:22',0), +(46,'safety.issue_detail','이슈 상세','/pages/safety/issue-detail.html','safety','문제 신고 상세 조회',0,18,'2026-02-02 01:19:22','2026-02-02 01:19:22',0), +(50,'safety.checklist_manage','안전 체크리스트 관리','/pages/safety/checklist-manage.html','safety','안전 체크리스트 항목 관리',1,50,'2026-02-02 23:15:51','2026-02-02 23:15:51',0), +(51,'attendance.vacation_approval','휴가 승인 관리','/pages/attendance/vacation-approval.html','attendance','휴가 신청 승인/거부',1,65,'2026-02-02 23:15:51','2026-02-02 23:15:51',0), +(52,'attendance.vacation_input','휴가 직접 입력','/pages/attendance/vacation-input.html','attendance','관리자 휴가 직접 입력',1,66,'2026-02-02 23:15:51','2026-02-02 23:15:51',0), +(53,'admin.departments','부서 관리','/pages/admin/departments.html','admin',NULL,1,3,'2026-02-03 05:06:48','2026-02-03 05:06:48',0), +(54,'inspection.daily_patrol','일일순회점검','/pages/inspection/daily-patrol.html','inspection','작업장 일일순회점검 페이지',0,1,'2026-02-04 02:17:23','2026-02-04 02:17:23',1); +/*!40000 ALTER TABLE `pages` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `password_change_logs` +-- + +DROP TABLE IF EXISTS `password_change_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `password_change_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `changed_by_user_id` int(11) DEFAULT NULL, + `changed_at` datetime DEFAULT current_timestamp(), + `change_type` enum('self','admin','reset','initial') DEFAULT 'self', + `ip_address` varchar(45) DEFAULT NULL, + PRIMARY KEY (`log_id`), + KEY `changed_by_user_id` (`changed_by_user_id`), + KEY `idx_user_changes` (`user_id`,`changed_at`), + CONSTRAINT `password_change_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE, + CONSTRAINT `password_change_logs_ibfk_2` FOREIGN KEY (`changed_by_user_id`) REFERENCES `users` (`user_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `password_change_logs` +-- + +LOCK TABLES `password_change_logs` WRITE; +/*!40000 ALTER TABLE `password_change_logs` DISABLE KEYS */; +/*!40000 ALTER TABLE `password_change_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `patrol_check_records` +-- + +DROP TABLE IF EXISTS `patrol_check_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `patrol_check_records` ( + `record_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` int(10) unsigned NOT NULL COMMENT '순회점검 세션 ID', + `workplace_id` int(10) unsigned NOT NULL COMMENT '작업장 ID', + `check_item_id` int(10) unsigned NOT NULL COMMENT '체크항목 ID', + `is_checked` tinyint(1) DEFAULT 0 COMMENT '체크 여부', + `check_result` enum('good','warning','bad') DEFAULT NULL COMMENT '점검 결과', + `note` text DEFAULT NULL COMMENT '비고', + `checked_at` timestamp NULL DEFAULT NULL COMMENT '체크 시간', + PRIMARY KEY (`record_id`), + UNIQUE KEY `pcr_session_wp_item_unique` (`session_id`,`workplace_id`,`check_item_id`), + KEY `pcr_session_wp_idx` (`session_id`,`workplace_id`), + KEY `patrol_check_records_workplace_id_foreign` (`workplace_id`), + KEY `patrol_check_records_check_item_id_foreign` (`check_item_id`), + CONSTRAINT `patrol_check_records_check_item_id_foreign` FOREIGN KEY (`check_item_id`) REFERENCES `patrol_checklist_items` (`item_id`) ON DELETE CASCADE, + CONSTRAINT `patrol_check_records_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `daily_patrol_sessions` (`session_id`) ON DELETE CASCADE, + CONSTRAINT `patrol_check_records_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `patrol_check_records` +-- + +LOCK TABLES `patrol_check_records` WRITE; +/*!40000 ALTER TABLE `patrol_check_records` DISABLE KEYS */; +/*!40000 ALTER TABLE `patrol_check_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `patrol_checklist_items` +-- + +DROP TABLE IF EXISTS `patrol_checklist_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `patrol_checklist_items` ( + `item_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `workplace_id` int(10) unsigned DEFAULT NULL COMMENT '특정 작업장 전용 (NULL=공통)', + `category_id` int(10) unsigned DEFAULT NULL COMMENT '특정 공장 전용 (NULL=공통)', + `check_category` varchar(50) NOT NULL COMMENT '분류 (안전, 정리정돈, 설비 등)', + `check_item` varchar(200) NOT NULL COMMENT '점검 항목', + `description` text DEFAULT NULL COMMENT '설명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_required` tinyint(1) DEFAULT 1 COMMENT '필수 체크 여부', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`item_id`), + KEY `patrol_checklist_items_workplace_id_index` (`workplace_id`), + KEY `patrol_checklist_items_category_id_index` (`category_id`), + KEY `patrol_checklist_items_check_category_index` (`check_category`), + CONSTRAINT `patrol_checklist_items_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE CASCADE, + CONSTRAINT `patrol_checklist_items_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `patrol_checklist_items` +-- + +LOCK TABLES `patrol_checklist_items` WRITE; +/*!40000 ALTER TABLE `patrol_checklist_items` DISABLE KEYS */; +INSERT INTO `patrol_checklist_items` VALUES +(1,NULL,NULL,'SAFETY','소화기 상태 확인',NULL,1,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(2,NULL,NULL,'SAFETY','비상구 통로 확보 확인',NULL,2,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(3,NULL,NULL,'SAFETY','안전표지판 부착 상태',NULL,3,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(4,NULL,NULL,'SAFETY','위험물 관리 상태',NULL,4,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(5,NULL,NULL,'ORGANIZATION','작업장 정리정돈 상태',NULL,10,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(6,NULL,NULL,'ORGANIZATION','통로 장애물 여부',NULL,11,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(7,NULL,NULL,'ORGANIZATION','폐기물 처리 상태',NULL,12,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(8,NULL,NULL,'ORGANIZATION','자재 적재 상태',NULL,13,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(9,NULL,NULL,'EQUIPMENT','설비 외관 이상 여부',NULL,20,0,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(10,NULL,NULL,'EQUIPMENT','설비 작동 상태',NULL,21,0,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(11,NULL,NULL,'EQUIPMENT','설비 청결 상태',NULL,22,0,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(12,NULL,NULL,'ENVIRONMENT','조명 상태',NULL,30,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(13,NULL,NULL,'ENVIRONMENT','환기 상태',NULL,31,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(14,NULL,NULL,'ENVIRONMENT','누수/누유 여부',NULL,32,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'); +/*!40000 ALTER TABLE `patrol_checklist_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `permissions` +-- + +DROP TABLE IF EXISTS `permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `permissions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `description` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `permissions_name_unique` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `permissions` +-- + +LOCK TABLES `permissions` WRITE; +/*!40000 ALTER TABLE `permissions` DISABLE KEYS */; +INSERT INTO `permissions` VALUES +(1,'user:create','사용자 생성','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(2,'user:read','사용자 정보 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(3,'user:update','사용자 정보 수정','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(4,'user:delete','사용자 삭제','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(5,'project:create','프로젝트 생성','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(6,'project:read','프로젝트 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(7,'project:update','프로젝트 수정','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(8,'project:delete','프로젝트 삭제','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(9,'work-report:create','작업 보고서 생성','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(10,'work-report:read-own','자신의 작업 보고서 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(11,'work-report:read-team','팀의 작업 보고서 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(12,'work-report:read-all','모든 작업 보고서 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(13,'work-report:update','작업 보고서 수정','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(14,'work-report:delete','작업 보고서 삭제','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(15,'system:read-logs','시스템 로그 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(16,'system:manage-settings','시스템 설정 관리','2026-01-19 00:49:29','2026-01-19 00:49:29'); +/*!40000 ALTER TABLE `permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `projects` +-- + +DROP TABLE IF EXISTS `projects`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `projects` ( + `project_id` int(11) NOT NULL AUTO_INCREMENT, + `job_no` varchar(50) NOT NULL, + `project_name` varchar(255) NOT NULL, + `contract_date` date DEFAULT NULL, + `due_date` date DEFAULT NULL, + `delivery_method` varchar(100) DEFAULT NULL, + `site` varchar(100) DEFAULT NULL, + `pm` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `is_active` tinyint(1) DEFAULT 1, + `project_status` varchar(50) DEFAULT 'active', + `completed_date` date DEFAULT NULL, + PRIMARY KEY (`project_id`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `projects` +-- + +LOCK TABLES `projects` WRITE; +/*!40000 ALTER TABLE `projects` DISABLE KEYS */; +INSERT INTO `projects` VALUES +(1,'TKO-24008P','YHP Project',NULL,NULL,NULL,'Quang Ninh(Vietnam)','장형태','2025-04-15 22:40:28','2025-04-15 22:40:28',0,'active',NULL), +(2,'TKG-24009P','한화에어로스페이스 순천',NULL,NULL,NULL,'순천','장형태','2025-04-15 22:42:41','2025-04-15 22:42:41',0,'active',NULL), +(3,'TKG-24011P','효성화학 에틸렌 탱크 건설공사',NULL,NULL,NULL,'울산','김길종','2025-04-15 22:43:53','2025-04-15 22:43:53',0,'active',NULL), +(4,'TKG-24013P','김천 솔라 파워 그린 수소 Project',NULL,NULL,NULL,'김천','김길종','2025-04-15 22:44:57','2025-04-15 22:44:57',0,'active',NULL), +(5,'TKG-24016P','LG Chem P3RE Project',NULL,NULL,NULL,'.','장형태','2025-04-15 22:46:36','2025-04-15 22:46:36',0,'active',NULL), +(7,'TKO-25003F','25년 안전보건시설설비',NULL,NULL,NULL,'.','.','2025-04-15 22:47:32','2025-04-15 22:47:32',0,'active',NULL), +(8,'TKG-25007P','P Project',NULL,NULL,NULL,'오창읍','장형태','2025-04-15 22:48:50','2025-04-15 22:48:50',0,'active',NULL), +(10,'TKR-25008P','DIG Airgas LG CHEM',NULL,NULL,NULL,'여수','서태원','2025-04-15 22:50:05','2025-04-15 22:50:05',0,'active',NULL), +(11,'TKR-25010P','FK FISCHER Project',NULL,NULL,NULL,'울산','전상신','2025-04-15 22:51:12','2025-04-15 22:51:12',0,'active',NULL), +(12,'TKO-24007P','MP7 Project',NULL,NULL,NULL,'.','윤지민','2025-04-15 23:56:26','2025-04-15 23:56:26',0,'active',NULL), +(13,'연차/휴무','연차/휴무','2025-01-01','2025-12-31','.','.','.','2025-04-16 01:58:23','2025-04-16 01:58:23',1,'active',NULL), +(14,'TKO-25009R','M Project',NULL,NULL,NULL,NULL,'이민후','2025-09-28 22:13:33','2025-09-28 22:13:33',1,'active',NULL), +(15,'TKR-25013P','HAS MCS Plnat',NULL,'2026-03-31',NULL,NULL,NULL,'2026-01-06 06:16:37','2026-01-06 06:16:37',1,'active',NULL), +(16,'TKO-26003F','안전보건시설설비','2026-01-01','2026-12-31',NULL,NULL,NULL,'2026-01-06 06:17:33','2026-01-06 06:17:33',1,'active',NULL), +(17,'TKO-25014P','OT1-MPR-002',NULL,NULL,NULL,'말레이시아','윤지민','2026-02-04 21:35:22','2026-02-04 21:35:22',1,'active',NULL), +(18,'TKO025024P','H2 Gas Scrubber',NULL,'2026-07-31',NULL,NULL,'윤지민','2026-02-04 21:36:50','2026-02-04 21:36:50',1,'active',NULL); +/*!40000 ALTER TABLE `projects` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `role_default_pages` +-- + +DROP TABLE IF EXISTS `role_default_pages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `role_default_pages` ( + `role_id` int(10) unsigned NOT NULL, + `page_id` int(10) unsigned NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`role_id`,`page_id`), + KEY `role_default_pages_page_id_foreign` (`page_id`), + CONSTRAINT `role_default_pages_page_id_foreign` FOREIGN KEY (`page_id`) REFERENCES `pages` (`id`) ON DELETE CASCADE, + CONSTRAINT `role_default_pages_role_id_foreign` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `role_default_pages` +-- + +LOCK TABLES `role_default_pages` WRITE; +/*!40000 ALTER TABLE `role_default_pages` DISABLE KEYS */; +/*!40000 ALTER TABLE `role_default_pages` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `role_permissions` +-- + +DROP TABLE IF EXISTS `role_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `role_permissions` ( + `role_id` int(10) unsigned NOT NULL, + `permission_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`role_id`,`permission_id`), + KEY `role_permissions_permission_id_foreign` (`permission_id`), + CONSTRAINT `role_permissions_permission_id_foreign` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE, + CONSTRAINT `role_permissions_role_id_foreign` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `role_permissions` +-- + +LOCK TABLES `role_permissions` WRITE; +/*!40000 ALTER TABLE `role_permissions` DISABLE KEYS */; +INSERT INTO `role_permissions` VALUES +(1,1), +(1,2), +(1,3), +(1,4), +(1,5), +(1,6), +(1,7), +(1,8), +(1,9), +(1,10), +(1,11), +(1,12), +(1,13), +(1,14), +(1,15), +(1,16), +(2,1), +(2,2), +(2,3), +(2,4), +(2,5), +(2,6), +(2,7), +(2,8), +(2,12), +(2,13), +(2,14), +(4,2), +(4,5), +(4,6), +(4,7), +(4,9), +(4,10), +(4,11), +(4,12), +(4,13), +(4,14); +/*!40000 ALTER TABLE `role_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `roles` +-- + +DROP TABLE IF EXISTS `roles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `roles` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `description` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `roles_name_unique` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `roles` +-- + +LOCK TABLES `roles` WRITE; +/*!40000 ALTER TABLE `roles` DISABLE KEYS */; +INSERT INTO `roles` VALUES +(1,'System Admin','시스템 전체 관리자. 모든 권한을 가짐.','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(2,'Admin','관리자. 사용자 및 프로젝트 관리 등 대부분의 권한을 가짐.','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(4,'User','일반 사용자. 작업 보고서 및 프로젝트 관리 등 모든 일반 기능을 사용할 수 있음.','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(5,'Guest','게스트 (계정 없이 특정 기능 접근 가능)','2026-01-19 01:40:56','2026-01-19 01:40:56'); +/*!40000 ALTER TABLE `roles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `safety_training_records` +-- + +DROP TABLE IF EXISTS `safety_training_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `safety_training_records` ( + `training_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '교육 기록 ID', + `request_id` int(10) unsigned NOT NULL COMMENT '출입 신청 ID', + `trainer_id` int(11) NOT NULL COMMENT '교육 진행자 user_id', + `training_date` date NOT NULL COMMENT '교육 날짜', + `training_start_time` time NOT NULL COMMENT '교육 시작 시간', + `training_end_time` time DEFAULT NULL COMMENT '교육 종료 시간', + `training_topics` text DEFAULT NULL COMMENT '교육 내용 (JSON 배열)', + `signature_data` longtext DEFAULT NULL COMMENT '교육 이수자 서명 (Base64 PNG)', + `completed_at` timestamp NULL DEFAULT NULL COMMENT '교육 완료 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`training_id`), + KEY `safety_training_records_trainer_id_foreign` (`trainer_id`), + KEY `idx_training_date` (`training_date`), + KEY `idx_request_id` (`request_id`), + CONSTRAINT `safety_training_records_request_id_foreign` FOREIGN KEY (`request_id`) REFERENCES `workplace_visit_requests` (`request_id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `safety_training_records_trainer_id_foreign` FOREIGN KEY (`trainer_id`) REFERENCES `users` (`user_id`) ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `safety_training_records` +-- + +LOCK TABLES `safety_training_records` WRITE; +/*!40000 ALTER TABLE `safety_training_records` DISABLE KEYS */; +INSERT INTO `safety_training_records` VALUES +(1,1,1,'2026-01-29','15:04:41','15:04:41',NULL,NULL,NULL,'2026-01-29 06:04:41','2026-01-29 06:04:41'), +(2,1,1,'2026-01-29','15:04:41','15:04:41',NULL,NULL,NULL,'2026-01-29 06:04:41','2026-01-29 06:04:41'), +(3,1,1,'2026-01-29','15:08:41','15:08:41',NULL,NULL,NULL,'2026-01-29 06:08:41','2026-01-29 06:08:41'), +(4,1,1,'2026-01-29','15:08:41','15:08:41',NULL,NULL,NULL,'2026-01-29 06:08:41','2026-01-29 06:08:41'), +(5,2,1,'2026-01-29','15:12:11','15:12:11',NULL,NULL,NULL,'2026-01-29 06:12:11','2026-01-29 06:12:11'), +(6,2,1,'2026-01-29','15:12:11','15:12:11',NULL,NULL,NULL,'2026-01-29 06:12:11','2026-01-29 06:12:11'); +/*!40000 ALTER TABLE `safety_training_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tasks` +-- + +DROP TABLE IF EXISTS `tasks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tasks` ( + `task_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '작업 ID', + `work_type_id` int(11) DEFAULT NULL COMMENT '공정 ID (work_types 참조)', + `task_name` varchar(255) NOT NULL COMMENT '작업명', + `description` text DEFAULT NULL COMMENT '작업 설명', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성화 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '생성일시', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '수정일시', + PRIMARY KEY (`task_id`), + KEY `tasks_work_type_id_index` (`work_type_id`), + KEY `tasks_is_active_index` (`is_active`), + CONSTRAINT `tasks_work_type_id_foreign` FOREIGN KEY (`work_type_id`) REFERENCES `work_types` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tasks` +-- + +LOCK TABLES `tasks` WRITE; +/*!40000 ALTER TABLE `tasks` DISABLE KEYS */; +INSERT INTO `tasks` VALUES +(1,1,'H빔 절단',NULL,1,'2026-01-26 21:54:17','2026-01-26 21:54:17'), +(2,1,'H빔 가공','끝단 가공 등 전부 포함',1,'2026-02-04 21:47:35','2026-02-04 21:47:35'), +(3,1,'용접',NULL,1,'2026-02-04 21:47:53','2026-02-04 21:47:53'), +(4,1,'서포트 제작(홀 가공 포함)',NULL,1,'2026-02-04 21:48:15','2026-02-04 21:48:15'), +(5,2,'Plate 하차',NULL,1,'2026-02-04 21:48:30','2026-02-04 21:48:30'), +(6,2,'Plate 마킹',NULL,1,'2026-02-04 21:48:38','2026-02-04 21:48:38'), +(7,2,'Plate 가공 출하',NULL,1,'2026-02-04 21:48:59','2026-02-04 21:48:59'), +(8,2,'동체 L심 용접',NULL,1,'2026-02-04 21:49:19','2026-02-04 21:49:19'), +(9,2,'C심 용접',NULL,1,'2026-02-04 21:49:29','2026-02-04 21:49:29'), +(10,2,'노즐 용접',NULL,1,'2026-02-04 21:49:36','2026-02-04 21:49:48'), +(11,2,'자재 절단',NULL,1,'2026-02-04 21:49:55','2026-02-04 21:49:55'), +(12,2,'검사 지원',NULL,1,'2026-02-04 21:50:16','2026-02-04 21:50:16'), +(13,3,'pipe 절단',NULL,1,'2026-02-04 21:50:31','2026-02-04 21:50:31'), +(14,3,'배관 취부',NULL,1,'2026-02-04 21:50:39','2026-02-04 21:50:39'), +(15,3,'용접',NULL,1,'2026-02-04 21:50:43','2026-02-04 21:50:43'), +(16,3,'선 작업(용접전 작업 준비)','갭링, 면취 등 모든 선 작업',1,'2026-02-04 21:51:22','2026-02-04 21:51:22'), +(17,3,'1차 조립',NULL,1,'2026-02-04 21:51:31','2026-02-04 21:51:31'), +(18,3,'검사 지원',NULL,1,'2026-02-04 21:51:36','2026-02-04 21:51:36'), +(19,3,'2차 조립',NULL,1,'2026-02-04 21:51:41','2026-02-04 21:51:41'), +(20,11,'배우자출산휴가',NULL,1,'2026-02-04 22:41:40','2026-02-04 22:41:40'), +(21,11,'연차',NULL,1,'2026-02-04 22:41:46','2026-02-04 22:41:46'), +(22,11,'반차',NULL,1,'2026-02-04 22:41:51','2026-02-04 22:41:51'), +(23,11,'반반차',NULL,1,'2026-02-04 22:41:57','2026-02-04 22:41:57'), +(24,11,'조퇴',NULL,1,'2026-02-04 22:42:05','2026-02-04 22:42:05'), +(25,12,'설비제작',NULL,1,'2026-02-04 23:47:01','2026-02-04 23:47:01'), +(26,2,'자재 가공',NULL,1,'2026-02-05 01:01:48','2026-02-05 01:01:48'); +/*!40000 ALTER TABLE `tasks` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tasks_old_backup` +-- + +DROP TABLE IF EXISTS `tasks_old_backup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tasks_old_backup` ( + `task_id` int(11) NOT NULL AUTO_INCREMENT, + `category` varchar(255) NOT NULL, + `subcategory` varchar(255) DEFAULT NULL, + `task_name` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`task_id`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tasks_old_backup` +-- + +LOCK TABLES `tasks_old_backup` WRITE; +/*!40000 ALTER TABLE `tasks_old_backup` DISABLE KEYS */; +INSERT INTO `tasks_old_backup` VALUES +(1,'Base','Fabrication','용접','...','2025-04-15 10:41:43','2025-04-15 10:41:43'), +(3,'Vessel','MI and Marking','Marking','..','2025-04-15 22:25:58','2025-04-15 22:25:58'), +(4,'Vessel','Cutting','자재 커팅','..','2025-04-15 22:26:17','2025-04-15 22:26:17'), +(5,'Vessel','Fabrication','용접','..','2025-04-15 22:26:43','2025-04-15 22:26:43'), +(7,'PKG','Pipe Pre-Fabrication','취부&용접','배관사 1명\n용접사 1명','2025-04-15 22:37:14','2025-04-15 22:37:14'), +(8,'PKG','1st Piping Assembly','1차 조립','.','2025-04-15 22:38:49','2025-04-15 22:38:49'), +(9,'PKG','Re-Assembly','재조립','.','2025-04-15 22:39:18','2025-04-15 22:39:18'), +(13,'작업지원','구매팀','.','.','2025-04-16 03:03:40','2025-04-16 03:03:40'), +(14,'기타','시설설비제작','.','.','2025-04-16 03:30:53','2025-04-16 03:30:53'), +(15,'기타','휴가/연차/휴무','.','.','2025-04-16 05:18:13','2025-04-16 05:18:13'), +(16,'PKG','제품설치','설치작업','Skid, 용기 등 설치','2025-04-29 04:39:36','2025-04-29 04:39:36'), +(18,'작업지원','품질팀','test지원','.','2025-06-25 07:07:08','2025-06-25 07:07:08'); +/*!40000 ALTER TABLE `tasks_old_backup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tbm_safety_checks` +-- + +DROP TABLE IF EXISTS `tbm_safety_checks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tbm_safety_checks` ( + `check_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `check_category` varchar(50) NOT NULL COMMENT '카테고리 (장비, PPE, 환경 등)', + `check_type` enum('basic','weather','task') DEFAULT 'basic', + `weather_condition` varchar(50) DEFAULT NULL, + `task_id` int(10) unsigned DEFAULT NULL, + `check_item` varchar(200) NOT NULL COMMENT '체크 항목', + `description` text DEFAULT NULL COMMENT '설명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_required` tinyint(1) DEFAULT 1 COMMENT '필수 체크 여부', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`check_id`), + KEY `tbm_safety_checks_check_category_index` (`check_category`), + KEY `tbm_safety_checks_check_type_index` (`check_type`), + KEY `tbm_safety_checks_weather_condition_index` (`weather_condition`), + KEY `tbm_safety_checks_task_id_index` (`task_id`) +) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tbm_safety_checks` +-- + +LOCK TABLES `tbm_safety_checks` WRITE; +/*!40000 ALTER TABLE `tbm_safety_checks` DISABLE KEYS */; +INSERT INTO `tbm_safety_checks` VALUES +(1,'PPE','basic',NULL,NULL,'안전모 착용 확인',NULL,1,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(2,'PPE','basic',NULL,NULL,'안전화 착용 확인',NULL,2,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(3,'PPE','basic',NULL,NULL,'안전조끼 착용 확인',NULL,3,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(4,'PPE','basic',NULL,NULL,'안전벨트 착용 확인 (고소작업 시)',NULL,4,0,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(5,'PPE','basic',NULL,NULL,'보안경/마스크 착용 확인',NULL,5,0,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(6,'EQUIPMENT','basic',NULL,NULL,'작업 도구 점검 완료',NULL,10,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(7,'EQUIPMENT','basic',NULL,NULL,'전동공구 안전 점검',NULL,11,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(8,'EQUIPMENT','basic',NULL,NULL,'사다리/비계 안전 확인',NULL,12,0,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(9,'EQUIPMENT','basic',NULL,NULL,'차량/중장비 점검 완료',NULL,13,0,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(10,'ENVIRONMENT','basic',NULL,NULL,'작업 장소 정리정돈 확인',NULL,20,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(11,'ENVIRONMENT','basic',NULL,NULL,'위험 구역 표시 확인',NULL,21,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(12,'ENVIRONMENT','basic',NULL,NULL,'기상 상태 확인 (우천, 강풍 등)',NULL,22,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(13,'ENVIRONMENT','basic',NULL,NULL,'작업 동선 안전 확인',NULL,23,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(14,'EMERGENCY','basic',NULL,NULL,'비상연락망 공유 완료',NULL,30,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(15,'EMERGENCY','basic',NULL,NULL,'소화기 위치 확인',NULL,31,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(16,'EMERGENCY','basic',NULL,NULL,'응급처치 키트 위치 확인',NULL,32,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(17,'WEATHER','weather','rain',NULL,'우의/우산 준비 확인','비 오는 날 우의 또는 우산 준비 여부',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(18,'WEATHER','weather','rain',NULL,'미끄럼 방지 조치 확인','빗물로 인한 미끄러움 방지 조치',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(19,'WEATHER','weather','rain',NULL,'전기 작업 중단 여부 확인','우천 시 전기 작업 중단 필요성 확인',3,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(20,'WEATHER','weather','rain',NULL,'배수 상태 확인','작업장 배수 상태 점검',4,0,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(21,'WEATHER','weather','snow',NULL,'제설 작업 완료 확인','작업장 주변 제설 작업 완료 여부',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(22,'WEATHER','weather','snow',NULL,'동파 방지 조치 확인','배관 및 설비 동파 방지 조치',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(23,'WEATHER','weather','snow',NULL,'미끄럼 방지 모래/염화칼슘 비치','미끄럼 방지를 위한 모래 또는 염화칼슘 비치',3,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(24,'WEATHER','weather','heat',NULL,'그늘막/휴게소 확보','무더위 휴식을 위한 그늘막 또는 휴게소 확보',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(25,'WEATHER','weather','heat',NULL,'음료수/식염 포도당 비치','열사병 예방을 위한 음료수 및 염분 보충제 비치',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(26,'WEATHER','weather','heat',NULL,'무더위 휴식 시간 확보','10~15시 사이 충분한 휴식 시간 확보',3,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(27,'WEATHER','weather','heat',NULL,'작업자 건강 상태 확인','열사병 증상 체크 및 건강 상태 확인',4,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(28,'WEATHER','weather','cold',NULL,'방한복/방한장갑 착용 확인','동상 방지를 위한 방한복 및 방한장갑 착용',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(29,'WEATHER','weather','cold',NULL,'난방시설 가동 확인','휴게 공간 난방시설 가동 상태 확인',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(30,'WEATHER','weather','cold',NULL,'온열 음료 비치','체온 유지를 위한 따뜻한 음료 비치',3,0,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(31,'WEATHER','weather','wind',NULL,'고소 작업 중단 여부 확인','강풍 시 고소 작업 중단 필요성 확인',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(32,'WEATHER','weather','wind',NULL,'자재/장비 결박 확인','바람에 날릴 수 있는 자재 및 장비 고정',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(33,'WEATHER','weather','wind',NULL,'가설물 안전 점검','가설 구조물 및 비계 안전 상태 점검',3,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(34,'WEATHER','weather','wind',NULL,'크레인 작업 중단 여부 확인','강풍 시 크레인 작업 중단 필요성 확인',4,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(35,'WEATHER','weather','fog',NULL,'경광등/조명 확보','시정 확보를 위한 경광등 및 조명 설치',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(36,'WEATHER','weather','fog',NULL,'차량 운행 주의 안내','안개로 인한 차량 운행 주의 안내',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(37,'WEATHER','weather','fog',NULL,'작업 구역 표시 강화','시인성 확보를 위한 작업 구역 표시 강화',3,0,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(38,'WEATHER','weather','dust',NULL,'보호 마스크 착용 확인','KF94 이상 마스크 착용 여부 확인',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(39,'WEATHER','weather','dust',NULL,'실외 작업 시간 조정','미세먼지 농도에 따른 실외 작업 시간 조정',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(40,'WEATHER','weather','dust',NULL,'호흡기 질환자 실내 배치','호흡기 질환 작업자 실내 작업 배치',3,0,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'); +/*!40000 ALTER TABLE `tbm_safety_checks` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tbm_safety_records` +-- + +DROP TABLE IF EXISTS `tbm_safety_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tbm_safety_records` ( + `record_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` int(10) unsigned NOT NULL COMMENT 'TBM 세션 ID', + `check_id` int(10) unsigned NOT NULL COMMENT '체크 항목 ID', + `is_checked` tinyint(1) DEFAULT 0 COMMENT '체크 여부', + `notes` text DEFAULT NULL COMMENT '비고/특이사항', + `checked_by` int(11) DEFAULT NULL COMMENT '체크한 user_id', + `checked_at` timestamp NULL DEFAULT NULL COMMENT '체크 시간', + PRIMARY KEY (`record_id`), + UNIQUE KEY `tbm_safety_records_session_id_check_id_unique` (`session_id`,`check_id`), + KEY `tbm_safety_records_check_id_foreign` (`check_id`), + KEY `tbm_safety_records_checked_by_foreign` (`checked_by`), + CONSTRAINT `tbm_safety_records_check_id_foreign` FOREIGN KEY (`check_id`) REFERENCES `tbm_safety_checks` (`check_id`), + CONSTRAINT `tbm_safety_records_checked_by_foreign` FOREIGN KEY (`checked_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `tbm_safety_records_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `tbm_sessions` (`session_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tbm_safety_records` +-- + +LOCK TABLES `tbm_safety_records` WRITE; +/*!40000 ALTER TABLE `tbm_safety_records` DISABLE KEYS */; +/*!40000 ALTER TABLE `tbm_safety_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tbm_sessions` +-- + +DROP TABLE IF EXISTS `tbm_sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tbm_sessions` ( + `session_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_date` date NOT NULL COMMENT 'TBM 날짜', + `leader_id` int(11) DEFAULT NULL, + `project_id` int(11) DEFAULT NULL COMMENT '프로젝트 ID', + `work_location` varchar(200) DEFAULT NULL COMMENT '작업 장소', + `status` enum('draft','completed','cancelled') DEFAULT 'draft' COMMENT '상태', + `end_time` time DEFAULT NULL COMMENT 'TBM 종료 시간', + `created_by` int(11) NOT NULL COMMENT '생성자 user_id', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + `work_type_id` int(11) DEFAULT NULL COMMENT '공정 ID (work_types 참조)', + `task_id` int(10) unsigned DEFAULT NULL COMMENT '작업 ID (tasks 참조)', + PRIMARY KEY (`session_id`), + KEY `tbm_sessions_session_date_leader_id_index` (`session_date`,`leader_id`), + KEY `tbm_sessions_project_id_foreign` (`project_id`), + KEY `tbm_sessions_created_by_foreign` (`created_by`), + KEY `tbm_sessions_work_type_id_index` (`work_type_id`), + KEY `tbm_sessions_task_id_index` (`task_id`), + KEY `tbm_sessions_leader_id_foreign` (`leader_id`), + CONSTRAINT `tbm_sessions_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `tbm_sessions_leader_id_foreign` FOREIGN KEY (`leader_id`) REFERENCES `workers` (`worker_id`) ON DELETE SET NULL, + CONSTRAINT `tbm_sessions_project_id_foreign` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) ON DELETE SET NULL, + CONSTRAINT `tbm_sessions_task_id_foreign` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`task_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `tbm_sessions_work_type_id_foreign` FOREIGN KEY (`work_type_id`) REFERENCES `work_types` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tbm_sessions` +-- + +LOCK TABLES `tbm_sessions` WRITE; +/*!40000 ALTER TABLE `tbm_sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `tbm_sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tbm_team_assignments` +-- + +DROP TABLE IF EXISTS `tbm_team_assignments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tbm_team_assignments` ( + `assignment_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` int(10) unsigned NOT NULL COMMENT 'TBM 세션 ID', + `worker_id` int(11) NOT NULL COMMENT '팀원 worker_id', + `assigned_role` varchar(100) DEFAULT NULL COMMENT '역할/담당', + `work_detail` text DEFAULT NULL COMMENT '세부 작업 내용', + `is_present` tinyint(1) DEFAULT 1 COMMENT '출석 여부', + `absence_reason` text DEFAULT NULL COMMENT '결석 사유', + `assigned_at` timestamp NOT NULL DEFAULT current_timestamp(), + `project_id` int(11) DEFAULT NULL COMMENT '작업자별 프로젝트 ID', + `work_type_id` int(11) DEFAULT NULL COMMENT '작업자별 공정 ID', + `task_id` int(10) unsigned DEFAULT NULL COMMENT '작업자별 작업 ID', + `workplace_category_id` int(10) unsigned DEFAULT NULL COMMENT '작업자별 작업장 대분류 (공장)', + `workplace_id` int(10) unsigned DEFAULT NULL COMMENT '작업자별 작업장 ID', + PRIMARY KEY (`assignment_id`), + UNIQUE KEY `tbm_team_assignments_session_id_worker_id_unique` (`session_id`,`worker_id`), + KEY `tbm_team_assignments_worker_id_foreign` (`worker_id`), + KEY `tbm_team_assignments_project_id_foreign` (`project_id`), + KEY `tbm_team_assignments_work_type_id_foreign` (`work_type_id`), + KEY `tbm_team_assignments_task_id_foreign` (`task_id`), + KEY `tbm_team_assignments_workplace_category_id_foreign` (`workplace_category_id`), + KEY `tbm_team_assignments_workplace_id_foreign` (`workplace_id`), + CONSTRAINT `tbm_team_assignments_project_id_foreign` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `tbm_team_assignments_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `tbm_sessions` (`session_id`) ON DELETE CASCADE, + CONSTRAINT `tbm_team_assignments_task_id_foreign` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`task_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `tbm_team_assignments_work_type_id_foreign` FOREIGN KEY (`work_type_id`) REFERENCES `work_types` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `tbm_team_assignments_worker_id_foreign` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`), + CONSTRAINT `tbm_team_assignments_workplace_category_id_foreign` FOREIGN KEY (`workplace_category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `tbm_team_assignments_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tbm_team_assignments` +-- + +LOCK TABLES `tbm_team_assignments` WRITE; +/*!40000 ALTER TABLE `tbm_team_assignments` DISABLE KEYS */; +/*!40000 ALTER TABLE `tbm_team_assignments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tbm_weather_records` +-- + +DROP TABLE IF EXISTS `tbm_weather_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tbm_weather_records` ( + `record_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` int(10) unsigned NOT NULL, + `weather_date` date NOT NULL, + `temperature` decimal(4,1) DEFAULT NULL, + `humidity` int(11) DEFAULT NULL, + `wind_speed` decimal(4,1) DEFAULT NULL, + `precipitation` decimal(5,1) DEFAULT NULL, + `sky_condition` varchar(50) DEFAULT NULL, + `weather_condition` varchar(50) DEFAULT NULL, + `weather_conditions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`weather_conditions`)), + `data_source` varchar(50) DEFAULT 'api', + `fetched_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`record_id`), + UNIQUE KEY `tbm_weather_records_session_id_unique` (`session_id`), + KEY `tbm_weather_records_weather_date_index` (`weather_date`), + CONSTRAINT `tbm_weather_records_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `tbm_sessions` (`session_id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tbm_weather_records` +-- + +LOCK TABLES `tbm_weather_records` WRITE; +/*!40000 ALTER TABLE `tbm_weather_records` DISABLE KEYS */; +INSERT INTO `tbm_weather_records` VALUES +(1,12,'2026-02-02',20.0,50,2.0,0.0,NULL,'clear','[\"clear\"]','api','2026-02-02 04:00:40','2026-02-02 04:00:40'); +/*!40000 ALTER TABLE `tbm_weather_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `team_handovers` +-- + +DROP TABLE IF EXISTS `team_handovers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `team_handovers` ( + `handover_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` int(10) unsigned NOT NULL COMMENT 'TBM 세션 ID', + `from_leader_id` int(11) NOT NULL COMMENT '인계자 worker_id', + `to_leader_id` int(11) NOT NULL COMMENT '인수자 worker_id', + `handover_date` date NOT NULL COMMENT '인계 날짜', + `handover_time` time DEFAULT NULL COMMENT '인계 시간', + `reason` enum('half_day','early_leave','emergency','other') NOT NULL COMMENT '인계 사유', + `handover_notes` text DEFAULT NULL COMMENT '인계 내용', + `worker_ids` text DEFAULT NULL COMMENT '인계하는 작업자 IDs (JSON array)', + `is_confirmed` tinyint(1) DEFAULT 0 COMMENT '인수 확인 여부', + `confirmed_at` timestamp NULL DEFAULT NULL COMMENT '인수 확인 시간', + `confirmed_by` int(11) DEFAULT NULL COMMENT '인수 확인자 user_id', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`handover_id`), + KEY `team_handovers_session_id_handover_date_index` (`session_id`,`handover_date`), + KEY `team_handovers_from_leader_id_foreign` (`from_leader_id`), + KEY `team_handovers_to_leader_id_foreign` (`to_leader_id`), + KEY `team_handovers_confirmed_by_foreign` (`confirmed_by`), + CONSTRAINT `team_handovers_confirmed_by_foreign` FOREIGN KEY (`confirmed_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `team_handovers_from_leader_id_foreign` FOREIGN KEY (`from_leader_id`) REFERENCES `workers` (`worker_id`), + CONSTRAINT `team_handovers_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `tbm_sessions` (`session_id`) ON DELETE CASCADE, + CONSTRAINT `team_handovers_to_leader_id_foreign` FOREIGN KEY (`to_leader_id`) REFERENCES `workers` (`worker_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `team_handovers` +-- + +LOCK TABLES `team_handovers` WRITE; +/*!40000 ALTER TABLE `team_handovers` DISABLE KEYS */; +/*!40000 ALTER TABLE `team_handovers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `uploaded_documents` +-- + +DROP TABLE IF EXISTS `uploaded_documents`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `uploaded_documents` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL, + `tags` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `original_name` varchar(255) DEFAULT NULL, + `stored_name` varchar(255) NOT NULL, + `file_path` varchar(500) DEFAULT NULL, + `file_type` varchar(50) DEFAULT NULL, + `file_size` int(11) DEFAULT NULL, + `submitted_by` varchar(100) DEFAULT NULL, + `dt_imported` tinyint(1) DEFAULT 0, + `dt_uuid` varchar(100) DEFAULT NULL, + `of_task_created` tinyint(1) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `uploaded_documents` +-- + +LOCK TABLES `uploaded_documents` WRITE; +/*!40000 ALTER TABLE `uploaded_documents` DISABLE KEYS */; +/*!40000 ALTER TABLE `uploaded_documents` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `user_page_access` +-- + +DROP TABLE IF EXISTS `user_page_access`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user_page_access` ( + `user_id` int(11) NOT NULL, + `page_id` int(10) unsigned NOT NULL, + `can_access` tinyint(1) DEFAULT 1, + `granted_at` timestamp NOT NULL DEFAULT current_timestamp(), + `granted_by` int(11) DEFAULT NULL, + PRIMARY KEY (`user_id`,`page_id`), + KEY `user_page_access_page_id_foreign` (`page_id`), + KEY `user_page_access_granted_by_foreign` (`granted_by`), + CONSTRAINT `user_page_access_granted_by_foreign` FOREIGN KEY (`granted_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL, + CONSTRAINT `user_page_access_page_id_foreign` FOREIGN KEY (`page_id`) REFERENCES `pages` (`id`) ON DELETE CASCADE, + CONSTRAINT `user_page_access_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user_page_access` +-- + +LOCK TABLES `user_page_access` WRITE; +/*!40000 ALTER TABLE `user_page_access` DISABLE KEYS */; +INSERT INTO `user_page_access` VALUES +(1,26,1,'2026-01-28 05:55:06',1), +(1,27,1,'2026-01-28 05:55:06',1), +(1,29,1,'2026-01-28 05:55:06',1), +(27,12,1,'2026-02-02 01:01:57',NULL), +(27,13,1,'2026-02-02 01:01:57',NULL), +(27,14,0,'2026-02-02 01:01:57',NULL), +(27,15,0,'2026-02-02 01:01:57',NULL), +(27,16,0,'2026-02-02 01:01:57',NULL), +(27,18,0,'2026-02-02 01:01:57',NULL), +(27,19,0,'2026-02-02 01:01:57',NULL), +(27,20,0,'2026-02-02 01:01:57',NULL), +(27,21,0,'2026-02-02 01:01:57',NULL), +(27,22,1,'2026-02-02 01:01:57',NULL), +(27,25,0,'2026-02-02 01:01:57',NULL), +(27,26,0,'2026-02-02 01:01:57',NULL), +(27,27,0,'2026-02-02 01:01:57',NULL), +(27,29,0,'2026-02-02 01:01:57',NULL), +(27,34,0,'2026-02-02 01:01:57',NULL), +(27,35,0,'2026-02-02 01:01:57',NULL), +(27,36,0,'2026-02-02 01:01:57',NULL), +(27,37,0,'2026-02-02 01:01:57',NULL), +(27,38,0,'2026-02-02 01:01:57',NULL), +(27,39,0,'2026-02-02 01:01:57',NULL), +(27,40,0,'2026-02-02 01:01:57',NULL), +(27,41,0,'2026-02-02 01:01:57',NULL), +(27,42,0,'2026-02-02 01:01:57',NULL), +(27,43,0,'2026-02-02 01:01:57',NULL); +/*!40000 ALTER TABLE `user_page_access` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `user_permissions` +-- + +DROP TABLE IF EXISTS `user_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user_permissions` ( + `user_id` int(10) unsigned NOT NULL, + `permission_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`user_id`,`permission_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user_permissions` +-- + +LOCK TABLES `user_permissions` WRITE; +/*!40000 ALTER TABLE `user_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `user_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users` ( + `user_id` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(100) NOT NULL, + `password` varchar(255) NOT NULL, + `_role_old` varchar(30) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `_access_level_old` varchar(30) DEFAULT NULL, + `worker_id` int(11) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `last_login_at` datetime DEFAULT NULL, + `password_changed_at` datetime DEFAULT NULL, + `failed_login_attempts` int(11) DEFAULT 0, + `locked_until` datetime DEFAULT NULL, + `name` varchar(50) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `role_id` int(10) unsigned DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`user_id`), + UNIQUE KEY `username` (`username`), + UNIQUE KEY `email` (`email`), + KEY `fk_worker` (`worker_id`), + KEY `idx_username` (`username`), + KEY `idx_active_users` (`is_active`,`_access_level_old`), + KEY `users_role_id_foreign` (`role_id`), + CONSTRAINT `fk_worker` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`), + CONSTRAINT `users_role_id_foreign` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES +(1,'hyungi','$2b$10$lwSfKipx0fQ.9nfMUBmzt.WXzerdxuT5MVX4b3YhFeHxyYlUjM7bi',NULL,'2025-05-06 05:03:02','system',NULL,1,'2026-02-05 22:40:53','2025-05-06 05:03:02',0,NULL,'안현기',NULL,2,'2026-02-05 22:40:53'), +(3,'김두수','$2a$10$z3i2EVOotRFBj.KHzx5LQOKlXD0QHLNFEvJcd6FlO6/1TCYGk6SSu',NULL,'2025-06-07 23:48:35',NULL,1,1,'2026-02-03 05:43:08','2025-06-15 07:40:39',0,NULL,'김두수',NULL,4,'2026-02-03 21:44:25'), +(5,'임영규','$2a$10$66ps/MEEi4BVABfJc5P0y.yCap09NhTMyd1A/7rFVxESytQGlB3wC',NULL,'2025-06-15 07:41:02',NULL,2,1,'2025-12-10 15:55:48','2025-06-15 07:41:02',0,NULL,'임영규',NULL,4,'2026-02-03 21:44:32'), +(6,'반치원','$2a$10$jcn6f7flRLZlr5yKQcXDIePodRK0rsM4deNnNGjuOlredeTVsRYZ6',NULL,'2025-06-15 07:41:32',NULL,3,1,'2025-11-05 01:56:13','2025-06-15 07:41:32',5,'2025-11-25 16:22:46','반치원',NULL,4,'2026-02-03 21:44:36'), +(7,'khahn','$2a$10$vQcJ3C37TPGweYF8rok2quzN2DK9lgxiqDAXV38vvPVjRdz3l6M8y',NULL,'2025-11-05 02:18:15',NULL,NULL,1,'2025-11-05 15:56:23',NULL,0,NULL,'khahn',NULL,2,'2025-11-05 06:56:23'); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vacation_balance_details` +-- + +DROP TABLE IF EXISTS `vacation_balance_details`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `vacation_balance_details` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `vacation_type_id` int(10) unsigned NOT NULL COMMENT '휴가 유형 ID', + `year` int(11) NOT NULL COMMENT '연도', + `total_days` decimal(4,1) DEFAULT 0.0 COMMENT '총 발생 일수', + `used_days` decimal(4,1) DEFAULT 0.0 COMMENT '사용 일수', + `notes` text DEFAULT NULL COMMENT '비고', + `created_by` int(11) NOT NULL COMMENT '생성자 ID', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + `remaining_days` decimal(4,1) GENERATED ALWAYS AS (`total_days` - `used_days`) STORED COMMENT '잔여 일수', + PRIMARY KEY (`id`), + UNIQUE KEY `unique_worker_vacation_year` (`worker_id`,`vacation_type_id`,`year`), + KEY `idx_worker_year` (`worker_id`,`year`), + KEY `idx_vacation_type` (`vacation_type_id`), + KEY `vacation_balance_details_created_by_foreign` (`created_by`), + CONSTRAINT `vacation_balance_details_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `vacation_balance_details_vacation_type_id_foreign` FOREIGN KEY (`vacation_type_id`) REFERENCES `vacation_types` (`id`), + CONSTRAINT `vacation_balance_details_worker_id_foreign` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vacation_balance_details` +-- + +LOCK TABLES `vacation_balance_details` WRITE; +/*!40000 ALTER TABLE `vacation_balance_details` DISABLE KEYS */; +INSERT INTO `vacation_balance_details` VALUES +(1,1,1,2026,17.0,0.0,NULL,1,'2026-01-19 01:40:31','2026-02-05 06:17:09',17.0), +(2,2,1,2026,17.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',17.0), +(3,4,1,2026,17.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',17.0), +(4,5,1,2026,16.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',16.0), +(5,6,1,2026,17.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',17.0), +(6,7,1,2026,15.0,0.0,'Migrated from worker_vacation_balance',1,'2026-01-19 01:40:56','2026-01-19 01:40:56',15.0), +(7,8,1,2026,16.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',16.0), +(8,9,1,2026,15.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',15.0), +(9,10,1,2026,15.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',15.0), +(10,12,1,2026,15.0,0.0,'Migrated from worker_vacation_balance',1,'2026-01-19 01:40:56','2026-01-19 01:40:56',15.0), +(14,3,1,2026,16.0,0.0,NULL,1,'2026-02-05 06:12:39','2026-02-05 06:17:09',16.0), +(16,11,1,2026,11.0,0.0,NULL,1,'2026-02-05 06:12:39','2026-02-05 06:17:09',11.0), +(31,1,6,2026,2.3,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',2.3), +(33,1,7,2026,3.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',3.0), +(34,6,6,2026,3.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',3.0), +(36,6,7,2026,3.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',3.0), +(37,9,6,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(39,9,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(40,3,6,2026,1.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',1.0), +(42,3,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(43,2,6,2026,1.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',1.0), +(45,2,7,2026,3.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',3.0), +(46,11,6,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(48,11,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(49,10,6,2026,-0.8,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',-0.8), +(51,10,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(52,8,6,2026,2.3,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',2.3), +(54,8,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(55,5,6,2026,2.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',2.0), +(57,5,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(58,4,6,2026,0.8,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.8), +(60,4,7,2026,3.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',3.0); +/*!40000 ALTER TABLE `vacation_balance_details` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vacation_requests` +-- + +DROP TABLE IF EXISTS `vacation_requests`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `vacation_requests` ( + `request_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '휴가 신청 ID', + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `vacation_type_id` int(10) unsigned NOT NULL COMMENT '휴가 유형 ID', + `start_date` date NOT NULL COMMENT '휴가 시작일', + `end_date` date NOT NULL COMMENT '휴가 종료일', + `days_used` decimal(4,1) NOT NULL COMMENT '사용 일수 (0.5일 단위)', + `reason` text DEFAULT NULL COMMENT '휴가 사유', + `status` enum('pending','approved','rejected') NOT NULL DEFAULT 'pending' COMMENT '승인 상태: pending(대기), approved(승인), rejected(거부)', + `requested_by` int(11) NOT NULL COMMENT '신청자 user_id', + `reviewed_by` int(11) DEFAULT NULL COMMENT '승인/거부자 user_id', + `reviewed_at` timestamp NULL DEFAULT NULL COMMENT '승인/거부 일시', + `review_note` text DEFAULT NULL COMMENT '승인/거부 메모', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '신청 일시', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '수정 일시', + PRIMARY KEY (`request_id`), + KEY `vacation_requests_vacation_type_id_foreign` (`vacation_type_id`), + KEY `vacation_requests_requested_by_foreign` (`requested_by`), + KEY `vacation_requests_reviewed_by_foreign` (`reviewed_by`), + KEY `idx_vacation_requests_worker` (`worker_id`), + KEY `idx_vacation_requests_status` (`status`), + KEY `idx_vacation_requests_dates` (`start_date`,`end_date`), + CONSTRAINT `vacation_requests_requested_by_foreign` FOREIGN KEY (`requested_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `vacation_requests_reviewed_by_foreign` FOREIGN KEY (`reviewed_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL, + CONSTRAINT `vacation_requests_vacation_type_id_foreign` FOREIGN KEY (`vacation_type_id`) REFERENCES `vacation_types` (`id`), + CONSTRAINT `vacation_requests_worker_id_foreign` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vacation_requests` +-- + +LOCK TABLES `vacation_requests` WRITE; +/*!40000 ALTER TABLE `vacation_requests` DISABLE KEYS */; +/*!40000 ALTER TABLE `vacation_requests` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vacation_types` +-- + +DROP TABLE IF EXISTS `vacation_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `vacation_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `type_code` varchar(20) NOT NULL COMMENT '휴가 코드', + `type_name` varchar(50) NOT NULL COMMENT '휴가 이름', + `deduct_days` decimal(3,1) DEFAULT 1.0 COMMENT '차감 일수', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + `is_special` tinyint(1) DEFAULT 0 COMMENT '특별 휴가 여부 (장기근속, 출산 등)', + `priority` int(11) DEFAULT 99 COMMENT '차감 우선순위 (낮을수록 먼저 차감)', + `description` text DEFAULT NULL COMMENT '휴가 설명', + `is_system` tinyint(1) DEFAULT 1 COMMENT '시스템 기본 휴가 (삭제 불가)', + PRIMARY KEY (`id`), + UNIQUE KEY `vacation_types_type_code_unique` (`type_code`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vacation_types` +-- + +LOCK TABLES `vacation_types` WRITE; +/*!40000 ALTER TABLE `vacation_types` DISABLE KEYS */; +INSERT INTO `vacation_types` VALUES +(1,'ANNUAL_FULL','연차',1.0,1,'2025-11-03 06:48:45','2025-11-03 06:48:45',0,1,'하루 전체 연차',1), +(2,'ANNUAL_HALF','반차',0.5,1,'2025-11-03 06:48:45','2025-11-03 06:48:45',0,2,'반일 연차',1), +(3,'ANNUAL_QUARTER','반반차',0.3,1,'2025-11-03 06:48:45','2025-11-03 06:48:45',0,3,'1/4일 연차',1), +(4,'SICK_FULL','병가',1.0,1,'2025-11-03 06:48:45','2025-11-03 06:48:45',0,4,'하루 전체 병가',1), +(5,'SICK_HALF','반일병가',0.5,1,'2025-11-03 06:48:45','2025-11-03 06:48:45',0,5,'반일 병가',1), +(6,'CARRYOVER','이월',1.0,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',1,1,NULL,0), +(7,'LONG_SERVICE','장기근속',1.0,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',1,3,NULL,0); +/*!40000 ALTER TABLE `vacation_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `visit_purpose_types` +-- + +DROP TABLE IF EXISTS `visit_purpose_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `visit_purpose_types` ( + `purpose_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '방문 목적 ID', + `purpose_name` varchar(100) NOT NULL COMMENT '방문 목적명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`purpose_id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `visit_purpose_types` +-- + +LOCK TABLES `visit_purpose_types` WRITE; +/*!40000 ALTER TABLE `visit_purpose_types` DISABLE KEYS */; +INSERT INTO `visit_purpose_types` VALUES +(1,'외주작업',1,1,'2026-01-29 05:26:17'), +(2,'검사',2,1,'2026-01-29 05:26:17'), +(3,'견학',3,1,'2026-01-29 05:26:17'), +(4,'기타',99,1,'2026-01-29 05:26:17'); +/*!40000 ALTER TABLE `visit_purpose_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `weather_conditions` +-- + +DROP TABLE IF EXISTS `weather_conditions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `weather_conditions` ( + `condition_code` varchar(50) NOT NULL, + `condition_name` varchar(100) NOT NULL, + `description` text DEFAULT NULL, + `icon` varchar(50) DEFAULT NULL, + `temp_threshold_min` decimal(4,1) DEFAULT NULL, + `temp_threshold_max` decimal(4,1) DEFAULT NULL, + `wind_threshold` decimal(4,1) DEFAULT NULL, + `precip_threshold` decimal(5,1) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `display_order` int(11) DEFAULT 0, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`condition_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `weather_conditions` +-- + +LOCK TABLES `weather_conditions` WRITE; +/*!40000 ALTER TABLE `weather_conditions` DISABLE KEYS */; +INSERT INTO `weather_conditions` VALUES +('clear','맑음','맑은 날씨','sunny',NULL,NULL,NULL,NULL,1,1,'2026-02-02 01:44:54'), +('cold','한파','기온 영하 10도 이하','cold',NULL,-10.0,NULL,NULL,1,5,'2026-02-02 01:44:54'), +('dust','미세먼지','미세먼지 나쁨 이상','dusty',NULL,NULL,NULL,NULL,1,8,'2026-02-02 01:44:54'), +('fog','안개','시정 1km 미만','foggy',NULL,NULL,NULL,NULL,1,7,'2026-02-02 01:44:54'), +('heat','폭염','기온 35도 이상','hot',35.0,NULL,NULL,NULL,1,4,'2026-02-02 01:44:54'), +('rain','비','비 오는 날씨','rainy',NULL,NULL,NULL,0.1,1,2,'2026-02-02 01:44:54'), +('snow','눈','눈 오는 날씨','snowy',NULL,NULL,NULL,NULL,1,3,'2026-02-02 01:44:54'), +('wind','강풍','풍속 10m/s 이상','windy',NULL,NULL,10.0,NULL,1,6,'2026-02-02 01:44:54'); +/*!40000 ALTER TABLE `weather_conditions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_attendance_types` +-- + +DROP TABLE IF EXISTS `work_attendance_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_attendance_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `type_code` varchar(20) NOT NULL COMMENT '유형 코드', + `type_name` varchar(50) NOT NULL COMMENT '유형 이름', + `description` text DEFAULT NULL COMMENT '설명', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `work_attendance_types_type_code_unique` (`type_code`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_attendance_types` +-- + +LOCK TABLES `work_attendance_types` WRITE; +/*!40000 ALTER TABLE `work_attendance_types` DISABLE KEYS */; +INSERT INTO `work_attendance_types` VALUES +(1,'REGULAR','정시근로','8시간 정규 근무',1,'2025-11-03 06:48:45','2025-11-03 06:48:45'), +(2,'OVERTIME','연장근로','8시간 초과 근무',1,'2025-11-03 06:48:45','2025-11-03 06:48:45'), +(3,'PARTIAL','부분근로','8시간 미만 근무',1,'2025-11-03 06:48:45','2025-11-03 06:48:45'), +(4,'VACATION','휴가근로','휴가와 함께하는 부분 근무',1,'2025-11-03 06:48:45','2025-11-03 06:48:45'); +/*!40000 ALTER TABLE `work_attendance_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_issue_reports` +-- + +DROP TABLE IF EXISTS `work_issue_reports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_issue_reports` ( + `report_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '신고 ID', + `reporter_id` int(11) NOT NULL COMMENT '신고자 user_id', + `report_date` datetime DEFAULT current_timestamp() COMMENT '신고 일시', + `factory_category_id` int(10) unsigned DEFAULT NULL COMMENT '공장 카테고리 ID (지도 외 위치 시 null)', + `workplace_id` int(10) unsigned DEFAULT NULL COMMENT '작업장 ID (지도 외 위치 시 null)', + `custom_location` varchar(200) DEFAULT NULL COMMENT '기타 위치 (지도 외 선택 시)', + `tbm_session_id` int(10) unsigned DEFAULT NULL COMMENT '연결된 TBM 세션', + `visit_request_id` int(10) unsigned DEFAULT NULL COMMENT '연결된 출입 신청', + `equipment_id` int(10) unsigned DEFAULT NULL COMMENT '관련 설비 ID', + `issue_category_id` int(10) unsigned NOT NULL COMMENT '신고 카테고리 ID', + `issue_item_id` int(10) unsigned DEFAULT NULL COMMENT '사전 정의 신고 항목 ID', + `additional_description` text DEFAULT NULL COMMENT '추가 설명', + `photo_path1` varchar(255) DEFAULT NULL COMMENT '사진 1', + `photo_path2` varchar(255) DEFAULT NULL COMMENT '사진 2', + `photo_path3` varchar(255) DEFAULT NULL COMMENT '사진 3', + `photo_path4` varchar(255) DEFAULT NULL COMMENT '사진 4', + `photo_path5` varchar(255) DEFAULT NULL COMMENT '사진 5', + `status` enum('reported','received','in_progress','completed','closed') DEFAULT 'reported' COMMENT '상태: 신고→접수→처리중→완료→종료', + `assigned_department` varchar(100) DEFAULT NULL COMMENT '담당 부서', + `assigned_user_id` int(11) DEFAULT NULL COMMENT '담당자 user_id', + `assigned_at` datetime DEFAULT NULL COMMENT '배정 일시', + `assigned_by` int(11) DEFAULT NULL COMMENT '배정자 user_id', + `resolution_notes` text DEFAULT NULL COMMENT '처리 내용', + `resolution_photo_path1` varchar(255) DEFAULT NULL COMMENT '처리 완료 사진 1', + `resolution_photo_path2` varchar(255) DEFAULT NULL COMMENT '처리 완료 사진 2', + `resolved_at` datetime DEFAULT NULL COMMENT '처리 완료 일시', + `resolved_by` int(11) DEFAULT NULL COMMENT '처리 완료자 user_id', + `modification_history` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '수정 이력 추적' CHECK (json_valid(`modification_history`)), + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`report_id`), + KEY `work_issue_reports_workplace_id_foreign` (`workplace_id`), + KEY `work_issue_reports_issue_item_id_foreign` (`issue_item_id`), + KEY `work_issue_reports_assigned_by_foreign` (`assigned_by`), + KEY `work_issue_reports_resolved_by_foreign` (`resolved_by`), + KEY `idx_wir_reporter_id` (`reporter_id`), + KEY `idx_wir_status` (`status`), + KEY `idx_wir_report_date` (`report_date`), + KEY `idx_wir_workplace` (`factory_category_id`,`workplace_id`), + KEY `idx_wir_issue_category` (`issue_category_id`), + KEY `idx_wir_assigned_user` (`assigned_user_id`), + KEY `idx_wir_equipment_id` (`equipment_id`), + CONSTRAINT `fk_wir_equipment` FOREIGN KEY (`equipment_id`) REFERENCES `equipments` (`equipment_id`) ON DELETE SET NULL, + CONSTRAINT `work_issue_reports_assigned_by_foreign` FOREIGN KEY (`assigned_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_assigned_user_id_foreign` FOREIGN KEY (`assigned_user_id`) REFERENCES `users` (`user_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_factory_category_id_foreign` FOREIGN KEY (`factory_category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_issue_category_id_foreign` FOREIGN KEY (`issue_category_id`) REFERENCES `issue_report_categories` (`category_id`) ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_issue_item_id_foreign` FOREIGN KEY (`issue_item_id`) REFERENCES `issue_report_items` (`item_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_reporter_id_foreign` FOREIGN KEY (`reporter_id`) REFERENCES `users` (`user_id`) ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_resolved_by_foreign` FOREIGN KEY (`resolved_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_issue_reports` +-- + +LOCK TABLES `work_issue_reports` WRITE; +/*!40000 ALTER TABLE `work_issue_reports` DISABLE KEYS */; +INSERT INTO `work_issue_reports` VALUES +(7,1,'2026-02-04 05:35:54',NULL,2,NULL,NULL,NULL,18,11,38,'전원인 안들어옴(Test)',NULL,NULL,NULL,NULL,NULL,'reported',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-02-04 05:35:54','2026-02-04 05:35:54'); +/*!40000 ALTER TABLE `work_issue_reports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_issue_status_logs` +-- + +DROP TABLE IF EXISTS `work_issue_status_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_issue_status_logs` ( + `log_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '로그 ID', + `report_id` int(10) unsigned NOT NULL COMMENT '신고 ID', + `previous_status` varchar(50) DEFAULT NULL COMMENT '이전 상태', + `new_status` varchar(50) NOT NULL COMMENT '새 상태', + `changed_by` int(11) NOT NULL COMMENT '변경자 user_id', + `change_reason` text DEFAULT NULL COMMENT '변경 사유', + `changed_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`log_id`), + KEY `work_issue_status_logs_changed_by_foreign` (`changed_by`), + KEY `idx_wisl_report_id` (`report_id`), + KEY `idx_wisl_changed_at` (`changed_at`), + CONSTRAINT `work_issue_status_logs_changed_by_foreign` FOREIGN KEY (`changed_by`) REFERENCES `users` (`user_id`) ON UPDATE CASCADE, + CONSTRAINT `work_issue_status_logs_report_id_foreign` FOREIGN KEY (`report_id`) REFERENCES `work_issue_reports` (`report_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_issue_status_logs` +-- + +LOCK TABLES `work_issue_status_logs` WRITE; +/*!40000 ALTER TABLE `work_issue_status_logs` DISABLE KEYS */; +INSERT INTO `work_issue_status_logs` VALUES +(1,1,NULL,'reported',1,NULL,'2026-02-02 22:16:33'), +(2,2,NULL,'reported',1,NULL,'2026-02-02 22:44:48'), +(3,3,NULL,'reported',1,NULL,'2026-02-02 23:39:13'), +(4,4,NULL,'reported',1,NULL,'2026-02-03 00:10:10'), +(5,5,NULL,'reported',1,NULL,'2026-02-03 00:10:39'), +(6,6,NULL,'reported',1,NULL,'2026-02-03 00:11:29'); +/*!40000 ALTER TABLE `work_issue_status_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_report_audit_log` +-- + +DROP TABLE IF EXISTS `work_report_audit_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_report_audit_log` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `action` enum('ADD_ACCUMULATE','DELETE_SINGLE','UPDATE','DELETE','CREATE','DELETE_BATCH') NOT NULL COMMENT '작업 유형', + `report_id` int(11) DEFAULT NULL COMMENT '관련 보고서 ID', + `old_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 전 값' CHECK (json_valid(`old_values`)), + `new_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 후 값' CHECK (json_valid(`new_values`)), + `changed_by` int(11) NOT NULL COMMENT '변경자 ID', + `change_reason` varchar(500) DEFAULT NULL COMMENT '변경 사유', + `ip_address` varchar(45) DEFAULT NULL COMMENT 'IP 주소', + `user_agent` text DEFAULT NULL COMMENT '사용자 에이전트', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '변경 시간', + PRIMARY KEY (`log_id`), + KEY `idx_action_date` (`action`,`created_at`), + KEY `idx_changed_by` (`changed_by`), + KEY `idx_report_id` (`report_id`) +) ENGINE=InnoDB AUTO_INCREMENT=880 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_report_audit_log` +-- + +LOCK TABLES `work_report_audit_log` WRITE; +/*!40000 ALTER TABLE `work_report_audit_log` DISABLE KEYS */; +INSERT INTO `work_report_audit_log` VALUES +(1,'ADD_ACCUMULATE',12,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-16 02:56:12'), +(2,'DELETE_SINGLE',12,'{\"worker_name\":\"김두수\",\"project_name\":\"MP7 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-06-16 03:17:36'), +(3,'DELETE_SINGLE',11,'{\"worker_name\":\"김두수\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-06-16 03:17:39'), +(4,'DELETE_SINGLE',7,'{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-06-16 03:17:41'), +(5,'ADD_ACCUMULATE',13,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":1,\"my_total\":\"1.00\",\"grand_total\":1,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"1.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 03:18:37'), +(6,'DELETE_SINGLE',13,'{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,5,'개별 항목 삭제',NULL,NULL,'2025-06-16 03:19:23'), +(7,'ADD_ACCUMULATE',14,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(8,'ADD_ACCUMULATE',15,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(9,'ADD_ACCUMULATE',16,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(10,'ADD_ACCUMULATE',17,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(11,'ADD_ACCUMULATE',18,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(12,'ADD_ACCUMULATE',19,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(13,'ADD_ACCUMULATE',20,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:47'), +(14,'ADD_ACCUMULATE',21,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(15,'ADD_ACCUMULATE',22,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(16,'ADD_ACCUMULATE',23,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(17,'ADD_ACCUMULATE',24,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(18,'ADD_ACCUMULATE',25,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(19,'ADD_ACCUMULATE',26,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(20,'ADD_ACCUMULATE',27,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:07'), +(21,'ADD_ACCUMULATE',28,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:07'), +(22,'ADD_ACCUMULATE',29,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:07'), +(23,'ADD_ACCUMULATE',30,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(24,'ADD_ACCUMULATE',31,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(25,'ADD_ACCUMULATE',32,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(26,'ADD_ACCUMULATE',33,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(27,'ADD_ACCUMULATE',34,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(28,'ADD_ACCUMULATE',35,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(29,'ADD_ACCUMULATE',36,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:13:56'), +(30,'ADD_ACCUMULATE',37,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:13:56'), +(31,'ADD_ACCUMULATE',38,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:13:56'), +(32,'ADD_ACCUMULATE',39,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:13:56'), +(33,'ADD_ACCUMULATE',40,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:12:01'), +(34,'ADD_ACCUMULATE',41,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:12:01'), +(35,'ADD_ACCUMULATE',42,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:12:01'), +(36,'ADD_ACCUMULATE',43,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:12:01'), +(37,'DELETE_SINGLE',42,'{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,5,'개별 항목 삭제',NULL,NULL,'2025-06-16 06:12:33'), +(38,'ADD_ACCUMULATE',44,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:13:02'), +(39,'ADD_ACCUMULATE',45,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:13:50'), +(40,'DELETE_SINGLE',41,'{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,5,'개별 항목 삭제',NULL,NULL,'2025-06-16 06:14:48'), +(41,'ADD_ACCUMULATE',46,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:15:22'), +(42,'DELETE_SINGLE',1,'{\"worker_name\":\"김두수\",\"project_name\":\"25년 안전보건시설설비\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-01T00:00:00.000Z\"}',NULL,1,'개별 항목 삭제',NULL,NULL,'2025-06-16 06:20:38'), +(43,'ADD_ACCUMULATE',48,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-16 06:46:44'), +(44,'ADD_ACCUMULATE',49,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-16 06:46:44'), +(45,'ADD_ACCUMULATE',50,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-16 06:46:44'), +(46,'DELETE_SINGLE',49,'{\"worker_name\":\"박현수\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-06-16 06:47:54'), +(47,'ADD_ACCUMULATE',51,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-16 06:48:29'), +(48,'ADD_ACCUMULATE',52,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-16 06:50:09'), +(49,'ADD_ACCUMULATE',54,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-16 06:50:09'), +(50,'ADD_ACCUMULATE',56,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-17 08:23:41'), +(51,'ADD_ACCUMULATE',58,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-17 08:23:41'), +(52,'ADD_ACCUMULATE',60,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-17 08:24:33'), +(53,'ADD_ACCUMULATE',62,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-17 08:24:33'), +(54,'ADD_ACCUMULATE',64,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:24:44'), +(55,'ADD_ACCUMULATE',65,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:25:24'), +(56,'DELETE_SINGLE',64,'{\"worker_name\":\"황인용\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-17T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-06-17 08:26:17'), +(57,'ADD_ACCUMULATE',66,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:27:06'), +(58,'ADD_ACCUMULATE',67,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:27:06'), +(59,'ADD_ACCUMULATE',68,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:31:06'), +(60,'ADD_ACCUMULATE',69,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:31:06'), +(61,'ADD_ACCUMULATE',70,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:31:06'), +(62,'ADD_ACCUMULATE',71,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:33:06'), +(63,'ADD_ACCUMULATE',72,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:33:06'), +(64,'ADD_ACCUMULATE',73,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:33:06'), +(65,'ADD_ACCUMULATE',74,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-17 08:34:11'), +(66,'ADD_ACCUMULATE',76,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-17 08:34:11'), +(67,'ADD_ACCUMULATE',78,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:40:27'), +(68,'ADD_ACCUMULATE',79,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:40:27'), +(69,'ADD_ACCUMULATE',80,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:40:27'), +(70,'ADD_ACCUMULATE',81,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:41:02'), +(71,'ADD_ACCUMULATE',82,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:41:03'), +(72,'ADD_ACCUMULATE',83,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:41:03'), +(73,'ADD_ACCUMULATE',84,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:41:45'), +(74,'ADD_ACCUMULATE',86,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-18 08:47:55'), +(75,'ADD_ACCUMULATE',88,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-18 08:47:55'), +(76,'ADD_ACCUMULATE',90,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-18 08:50:19'), +(77,'ADD_ACCUMULATE',92,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-18 08:50:19'), +(78,'ADD_ACCUMULATE',94,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-18 08:50:19'), +(79,'ADD_ACCUMULATE',96,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-18 09:00:17'), +(80,'ADD_ACCUMULATE',98,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-19 06:37:59'), +(81,'ADD_ACCUMULATE',99,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-19 06:37:59'), +(82,'ADD_ACCUMULATE',100,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-19 06:59:36'), +(83,'ADD_ACCUMULATE',101,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-19 06:59:36'), +(84,'ADD_ACCUMULATE',102,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-19 06:59:36'), +(85,'ADD_ACCUMULATE',103,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-19 07:01:02'), +(86,'ADD_ACCUMULATE',105,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-19 07:01:02'), +(87,'ADD_ACCUMULATE',107,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-19 07:01:02'), +(88,'ADD_ACCUMULATE',109,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-19 07:01:02'), +(89,'ADD_ACCUMULATE',111,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-19 07:01:02'), +(90,'ADD_ACCUMULATE',113,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:01'), +(91,'ADD_ACCUMULATE',115,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:01'), +(92,'ADD_ACCUMULATE',117,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:01'), +(93,'ADD_ACCUMULATE',119,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:02'), +(94,'ADD_ACCUMULATE',121,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:02'), +(95,'ADD_ACCUMULATE',123,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:02'), +(96,'ADD_ACCUMULATE',125,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-20 06:45:30'), +(97,'ADD_ACCUMULATE',126,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-20 06:45:31'), +(98,'ADD_ACCUMULATE',127,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-23 06:42:58'), +(99,'ADD_ACCUMULATE',128,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-23 06:42:58'), +(100,'ADD_ACCUMULATE',129,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(101,'ADD_ACCUMULATE',131,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(102,'ADD_ACCUMULATE',133,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(103,'ADD_ACCUMULATE',135,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(104,'ADD_ACCUMULATE',137,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(105,'ADD_ACCUMULATE',139,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(106,'ADD_ACCUMULATE',141,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-24 11:10:32'), +(107,'ADD_ACCUMULATE',142,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-24 11:10:32'), +(108,'ADD_ACCUMULATE',143,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(109,'ADD_ACCUMULATE',145,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(110,'ADD_ACCUMULATE',147,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(111,'ADD_ACCUMULATE',149,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(112,'ADD_ACCUMULATE',151,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(113,'ADD_ACCUMULATE',153,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(114,'ADD_ACCUMULATE',155,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:05'), +(115,'ADD_ACCUMULATE',157,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:05'), +(116,'ADD_ACCUMULATE',159,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-25 11:08:04'), +(117,'ADD_ACCUMULATE',161,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-25 11:08:05'), +(118,'ADD_ACCUMULATE',163,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-25 11:11:30'), +(119,'ADD_ACCUMULATE',164,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-25 11:11:30'), +(120,'ADD_ACCUMULATE',165,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-25 11:11:30'), +(121,'ADD_ACCUMULATE',166,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-25 11:11:30'), +(122,'ADD_ACCUMULATE',167,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-26 10:29:38'), +(123,'ADD_ACCUMULATE',168,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-26 10:29:38'), +(124,'ADD_ACCUMULATE',169,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-26 10:29:38'), +(125,'ADD_ACCUMULATE',170,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-26 10:29:38'), +(126,'ADD_ACCUMULATE',171,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-26 10:29:38'), +(127,'ADD_ACCUMULATE',172,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-26 11:11:31'), +(128,'ADD_ACCUMULATE',174,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-26 11:11:32'), +(129,'ADD_ACCUMULATE',176,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-26 11:11:32'), +(130,'ADD_ACCUMULATE',178,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-26 11:19:34'), +(131,'ADD_ACCUMULATE',179,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-26 11:19:34'), +(132,'ADD_ACCUMULATE',180,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-27 01:54:21'), +(133,'ADD_ACCUMULATE',181,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-27 01:54:21'), +(134,'ADD_ACCUMULATE',182,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-27 01:54:40'), +(135,'ADD_ACCUMULATE',183,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(136,'ADD_ACCUMULATE',184,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(137,'ADD_ACCUMULATE',185,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(138,'ADD_ACCUMULATE',186,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(139,'ADD_ACCUMULATE',187,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(140,'ADD_ACCUMULATE',188,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(141,'ADD_ACCUMULATE',189,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-27 06:49:08'), +(142,'ADD_ACCUMULATE',190,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-27 06:49:08'), +(143,'DELETE_SINGLE',190,'{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}',NULL,6,'개별 항목 삭제',NULL,NULL,'2025-06-27 06:58:25'), +(144,'ADD_ACCUMULATE',191,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"4.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-27 06:58:46'), +(145,'DELETE_SINGLE',181,'{\"worker_name\":\"박현수\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}',NULL,5,'개별 항목 삭제',NULL,NULL,'2025-06-27 06:59:37'), +(146,'DELETE_SINGLE',180,'{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}',NULL,5,'개별 항목 삭제',NULL,NULL,'2025-06-27 06:59:42'), +(147,'ADD_ACCUMULATE',192,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"6.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-27 07:00:10'), +(148,'ADD_ACCUMULATE',193,NULL,'{\"report_date\":\"2025-06-30\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:37:29'), +(149,'ADD_ACCUMULATE',195,NULL,'{\"report_date\":\"2025-06-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:38:19'), +(150,'ADD_ACCUMULATE',196,NULL,'{\"report_date\":\"2025-06-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:38:19'), +(151,'ADD_ACCUMULATE',197,NULL,'{\"report_date\":\"2025-06-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:38:19'), +(152,'ADD_ACCUMULATE',198,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(153,'ADD_ACCUMULATE',199,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(154,'ADD_ACCUMULATE',200,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(155,'ADD_ACCUMULATE',201,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(156,'ADD_ACCUMULATE',202,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(157,'ADD_ACCUMULATE',203,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(158,'ADD_ACCUMULATE',204,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:48'), +(159,'ADD_ACCUMULATE',205,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:48'), +(160,'ADD_ACCUMULATE',206,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:48'), +(161,'ADD_ACCUMULATE',207,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:48'), +(162,'ADD_ACCUMULATE',208,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:40:10'), +(163,'ADD_ACCUMULATE',209,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:40:10'), +(164,'ADD_ACCUMULATE',210,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:42:57'), +(165,'ADD_ACCUMULATE',212,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:42:57'), +(166,'ADD_ACCUMULATE',214,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:42:57'), +(167,'ADD_ACCUMULATE',216,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:42:57'), +(168,'ADD_ACCUMULATE',218,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(169,'ADD_ACCUMULATE',219,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(170,'ADD_ACCUMULATE',220,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(171,'ADD_ACCUMULATE',221,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(172,'ADD_ACCUMULATE',222,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(173,'ADD_ACCUMULATE',223,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(174,'ADD_ACCUMULATE',224,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(175,'ADD_ACCUMULATE',225,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:44:11'), +(176,'ADD_ACCUMULATE',227,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:44:11'), +(177,'ADD_ACCUMULATE',229,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:44:11'), +(178,'ADD_ACCUMULATE',231,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:45:44'), +(179,'ADD_ACCUMULATE',232,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:45:45'), +(180,'ADD_ACCUMULATE',233,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:45:45'), +(181,'ADD_ACCUMULATE',234,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:45:45'), +(182,'ADD_ACCUMULATE',235,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:07'), +(183,'ADD_ACCUMULATE',236,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:07'), +(184,'ADD_ACCUMULATE',237,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:08'), +(185,'ADD_ACCUMULATE',238,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:08'), +(186,'ADD_ACCUMULATE',239,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:08'), +(187,'ADD_ACCUMULATE',240,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:08'), +(188,'ADD_ACCUMULATE',241,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(189,'ADD_ACCUMULATE',243,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(190,'ADD_ACCUMULATE',245,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(191,'ADD_ACCUMULATE',247,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(192,'ADD_ACCUMULATE',249,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(193,'ADD_ACCUMULATE',251,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(194,'ADD_ACCUMULATE',253,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(195,'ADD_ACCUMULATE',255,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(196,'ADD_ACCUMULATE',257,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(197,'ADD_ACCUMULATE',259,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(198,'ADD_ACCUMULATE',261,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:38'), +(199,'ADD_ACCUMULATE',262,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:38'), +(200,'ADD_ACCUMULATE',263,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:39'), +(201,'ADD_ACCUMULATE',264,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:39'), +(202,'ADD_ACCUMULATE',265,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:39'), +(203,'ADD_ACCUMULATE',266,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:39'), +(204,'ADD_ACCUMULATE',267,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(205,'ADD_ACCUMULATE',268,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(206,'ADD_ACCUMULATE',269,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(207,'ADD_ACCUMULATE',270,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(208,'ADD_ACCUMULATE',271,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(209,'ADD_ACCUMULATE',272,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(210,'ADD_ACCUMULATE',273,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(211,'ADD_ACCUMULATE',274,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(212,'ADD_ACCUMULATE',275,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(213,'ADD_ACCUMULATE',276,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(214,'ADD_ACCUMULATE',277,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(215,'ADD_ACCUMULATE',278,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(216,'ADD_ACCUMULATE',279,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(217,'ADD_ACCUMULATE',280,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(218,'ADD_ACCUMULATE',281,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(219,'ADD_ACCUMULATE',282,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(220,'ADD_ACCUMULATE',283,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(221,'ADD_ACCUMULATE',284,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(222,'ADD_ACCUMULATE',285,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:57'), +(223,'ADD_ACCUMULATE',286,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(224,'ADD_ACCUMULATE',287,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(225,'ADD_ACCUMULATE',288,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(226,'ADD_ACCUMULATE',289,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(227,'ADD_ACCUMULATE',290,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(228,'ADD_ACCUMULATE',291,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(229,'ADD_ACCUMULATE',292,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(230,'ADD_ACCUMULATE',293,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(231,'ADD_ACCUMULATE',294,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(232,'ADD_ACCUMULATE',295,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:40'), +(233,'ADD_ACCUMULATE',296,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:40'), +(234,'ADD_ACCUMULATE',297,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:40'), +(235,'ADD_ACCUMULATE',298,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:41'), +(236,'ADD_ACCUMULATE',299,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:41'), +(237,'ADD_ACCUMULATE',300,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:41'), +(238,'ADD_ACCUMULATE',301,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:42'), +(239,'ADD_ACCUMULATE',302,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:42'), +(240,'ADD_ACCUMULATE',303,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:42'), +(241,'ADD_ACCUMULATE',304,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:09:10'), +(242,'ADD_ACCUMULATE',305,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:58'), +(243,'ADD_ACCUMULATE',306,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:58'), +(244,'ADD_ACCUMULATE',307,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:58'), +(245,'ADD_ACCUMULATE',308,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(246,'ADD_ACCUMULATE',309,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(247,'ADD_ACCUMULATE',310,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(248,'ADD_ACCUMULATE',311,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(249,'ADD_ACCUMULATE',312,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(250,'ADD_ACCUMULATE',313,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(251,'ADD_ACCUMULATE',314,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(252,'ADD_ACCUMULATE',315,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(253,'ADD_ACCUMULATE',316,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(254,'ADD_ACCUMULATE',317,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(255,'ADD_ACCUMULATE',318,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(256,'ADD_ACCUMULATE',319,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(257,'ADD_ACCUMULATE',320,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(258,'ADD_ACCUMULATE',321,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(259,'ADD_ACCUMULATE',322,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:30'), +(260,'ADD_ACCUMULATE',323,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(261,'ADD_ACCUMULATE',324,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(262,'ADD_ACCUMULATE',325,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(263,'ADD_ACCUMULATE',326,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(264,'ADD_ACCUMULATE',327,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(265,'ADD_ACCUMULATE',328,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(266,'ADD_ACCUMULATE',329,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(267,'ADD_ACCUMULATE',330,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(268,'ADD_ACCUMULATE',331,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:57:06'), +(269,'ADD_ACCUMULATE',332,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:57:06'), +(270,'ADD_ACCUMULATE',333,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:57:47'), +(271,'ADD_ACCUMULATE',335,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(272,'ADD_ACCUMULATE',336,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(273,'ADD_ACCUMULATE',337,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(274,'ADD_ACCUMULATE',338,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(275,'ADD_ACCUMULATE',339,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(276,'ADD_ACCUMULATE',340,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(277,'ADD_ACCUMULATE',341,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-15 06:57:26'), +(278,'ADD_ACCUMULATE',342,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":4,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:46:46'), +(279,'ADD_ACCUMULATE',345,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":5,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:46:46'), +(280,'ADD_ACCUMULATE',348,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":10,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:47:53'), +(281,'ADD_ACCUMULATE',351,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":6,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:47:53'), +(282,'ADD_ACCUMULATE',354,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:48:32'), +(283,'ADD_ACCUMULATE',355,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:48:32'), +(284,'ADD_ACCUMULATE',356,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:48:32'), +(285,'ADD_ACCUMULATE',357,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:48:32'), +(286,'ADD_ACCUMULATE',358,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-16 06:51:31'), +(287,'ADD_ACCUMULATE',359,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-16 06:51:31'), +(288,'ADD_ACCUMULATE',360,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-17 06:45:22'), +(289,'ADD_ACCUMULATE',361,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:46:48'), +(290,'ADD_ACCUMULATE',363,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:46:48'), +(291,'ADD_ACCUMULATE',365,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:46:48'), +(292,'ADD_ACCUMULATE',367,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(293,'ADD_ACCUMULATE',368,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(294,'ADD_ACCUMULATE',369,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(295,'ADD_ACCUMULATE',370,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(296,'ADD_ACCUMULATE',371,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(297,'ADD_ACCUMULATE',372,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(298,'ADD_ACCUMULATE',373,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"2.00\",\"grand_total\":2,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"2.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-18 05:54:47'), +(299,'ADD_ACCUMULATE',374,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"2.00\",\"grand_total\":2,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"2.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-18 05:54:48'), +(300,'ADD_ACCUMULATE',375,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":5,\"work_entries_count\":3,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-18 05:58:33'), +(301,'DELETE_SINGLE',375,'{\"worker_name\":\"표영진\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"2.00\",\"report_date\":\"2025-07-18T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-07-18 05:58:49'), +(302,'ADD_ACCUMULATE',378,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-18 05:59:42'), +(303,'ADD_ACCUMULATE',379,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-18 06:00:15'), +(304,'ADD_ACCUMULATE',380,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(305,'ADD_ACCUMULATE',381,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(306,'ADD_ACCUMULATE',382,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(307,'ADD_ACCUMULATE',383,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(308,'ADD_ACCUMULATE',384,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(309,'ADD_ACCUMULATE',385,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(310,'ADD_ACCUMULATE',386,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(311,'ADD_ACCUMULATE',387,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:08'), +(312,'ADD_ACCUMULATE',389,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:08'), +(313,'ADD_ACCUMULATE',391,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(314,'ADD_ACCUMULATE',392,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(315,'ADD_ACCUMULATE',393,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(316,'ADD_ACCUMULATE',394,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(317,'ADD_ACCUMULATE',395,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(318,'ADD_ACCUMULATE',396,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(319,'ADD_ACCUMULATE',397,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(320,'ADD_ACCUMULATE',398,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-21 06:53:37'), +(321,'ADD_ACCUMULATE',399,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:47'), +(322,'ADD_ACCUMULATE',400,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(323,'ADD_ACCUMULATE',401,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(324,'ADD_ACCUMULATE',402,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(325,'ADD_ACCUMULATE',403,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(326,'ADD_ACCUMULATE',404,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(327,'ADD_ACCUMULATE',405,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(328,'ADD_ACCUMULATE',406,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:46:11'), +(329,'ADD_ACCUMULATE',407,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-22 06:46:11'), +(330,'ADD_ACCUMULATE',408,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-22 06:46:11'), +(331,'ADD_ACCUMULATE',409,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:06'), +(332,'ADD_ACCUMULATE',410,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:28'), +(333,'ADD_ACCUMULATE',411,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:28'), +(334,'ADD_ACCUMULATE',412,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(335,'ADD_ACCUMULATE',413,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(336,'ADD_ACCUMULATE',414,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(337,'ADD_ACCUMULATE',415,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(338,'ADD_ACCUMULATE',416,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(339,'ADD_ACCUMULATE',417,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(340,'ADD_ACCUMULATE',418,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:36:55'), +(341,'ADD_ACCUMULATE',419,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(342,'ADD_ACCUMULATE',420,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(343,'ADD_ACCUMULATE',421,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(344,'ADD_ACCUMULATE',422,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(345,'ADD_ACCUMULATE',423,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(346,'ADD_ACCUMULATE',424,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(347,'ADD_ACCUMULATE',425,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-24 06:47:04'), +(348,'ADD_ACCUMULATE',426,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-24 06:47:04'), +(349,'ADD_ACCUMULATE',427,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:44:23'), +(350,'ADD_ACCUMULATE',428,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(351,'ADD_ACCUMULATE',429,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(352,'ADD_ACCUMULATE',430,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(353,'ADD_ACCUMULATE',431,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(354,'ADD_ACCUMULATE',432,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(355,'ADD_ACCUMULATE',433,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(356,'ADD_ACCUMULATE',434,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:18'), +(357,'ADD_ACCUMULATE',435,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:19'), +(358,'ADD_ACCUMULATE',436,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:19'), +(359,'ADD_ACCUMULATE',437,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-28 06:30:39'), +(360,'ADD_ACCUMULATE',438,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-28 06:30:39'), +(361,'ADD_ACCUMULATE',439,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-28 06:30:39'), +(362,'ADD_ACCUMULATE',440,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:08'), +(363,'ADD_ACCUMULATE',442,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(364,'ADD_ACCUMULATE',443,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(365,'ADD_ACCUMULATE',444,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(366,'ADD_ACCUMULATE',445,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(367,'ADD_ACCUMULATE',446,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(368,'ADD_ACCUMULATE',447,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(369,'ADD_ACCUMULATE',448,NULL,'{\"report_date\":\"2025-07-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-29 06:39:13'), +(370,'ADD_ACCUMULATE',449,NULL,'{\"report_date\":\"2025-07-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-29 06:39:13'), +(371,'ADD_ACCUMULATE',450,NULL,'{\"report_date\":\"2025-07-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-29 06:39:13'), +(372,'ADD_ACCUMULATE',451,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-30 06:50:30'), +(373,'ADD_ACCUMULATE',452,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-30 06:50:30'), +(374,'ADD_ACCUMULATE',453,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-30 06:50:30'), +(375,'ADD_ACCUMULATE',454,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(376,'ADD_ACCUMULATE',455,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(377,'ADD_ACCUMULATE',456,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(378,'ADD_ACCUMULATE',457,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(379,'ADD_ACCUMULATE',458,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(380,'ADD_ACCUMULATE',459,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(381,'ADD_ACCUMULATE',460,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(382,'ADD_ACCUMULATE',461,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:42:56'), +(383,'ADD_ACCUMULATE',462,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:43:32'), +(384,'ADD_ACCUMULATE',464,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:43:32'), +(385,'ADD_ACCUMULATE',466,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(386,'ADD_ACCUMULATE',467,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(387,'ADD_ACCUMULATE',468,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(388,'ADD_ACCUMULATE',469,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(389,'ADD_ACCUMULATE',470,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(390,'ADD_ACCUMULATE',471,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(391,'ADD_ACCUMULATE',472,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(392,'ADD_ACCUMULATE',473,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(393,'ADD_ACCUMULATE',474,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(394,'ADD_ACCUMULATE',475,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(395,'ADD_ACCUMULATE',476,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(396,'ADD_ACCUMULATE',477,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(397,'ADD_ACCUMULATE',478,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(398,'ADD_ACCUMULATE',479,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(399,'ADD_ACCUMULATE',480,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(400,'ADD_ACCUMULATE',481,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(401,'ADD_ACCUMULATE',482,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(402,'ADD_ACCUMULATE',483,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(403,'ADD_ACCUMULATE',484,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(404,'ADD_ACCUMULATE',485,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(405,'ADD_ACCUMULATE',486,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(406,'ADD_ACCUMULATE',487,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(407,'ADD_ACCUMULATE',488,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(408,'ADD_ACCUMULATE',489,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:48'), +(409,'ADD_ACCUMULATE',490,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-01 05:02:28'), +(410,'ADD_ACCUMULATE',492,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-01 05:02:28'), +(411,'ADD_ACCUMULATE',494,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:42:39'), +(412,'ADD_ACCUMULATE',496,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:42:39'), +(413,'ADD_ACCUMULATE',498,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:14'), +(414,'ADD_ACCUMULATE',499,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:15'), +(415,'ADD_ACCUMULATE',500,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:15'), +(416,'ADD_ACCUMULATE',501,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:39'), +(417,'ADD_ACCUMULATE',502,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:39'), +(418,'ADD_ACCUMULATE',503,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:39'), +(419,'ADD_ACCUMULATE',504,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:52'), +(420,'ADD_ACCUMULATE',505,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-08 06:45:20'), +(421,'ADD_ACCUMULATE',506,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:58:42'), +(422,'ADD_ACCUMULATE',507,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:58:42'), +(423,'ADD_ACCUMULATE',508,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:59:18'), +(424,'ADD_ACCUMULATE',509,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:59:19'), +(425,'ADD_ACCUMULATE',510,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:59:19'), +(426,'ADD_ACCUMULATE',511,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:59:19'), +(427,'ADD_ACCUMULATE',512,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:59:19'), +(428,'ADD_ACCUMULATE',513,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-11 06:27:37'), +(429,'ADD_ACCUMULATE',514,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"16.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"16.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-11 06:27:37'), +(430,'ADD_ACCUMULATE',515,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:23'), +(431,'ADD_ACCUMULATE',516,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:23'), +(432,'ADD_ACCUMULATE',517,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:49'), +(433,'ADD_ACCUMULATE',518,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:49'), +(434,'ADD_ACCUMULATE',519,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:50'), +(435,'ADD_ACCUMULATE',520,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:50'), +(436,'ADD_ACCUMULATE',521,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:50'), +(437,'ADD_ACCUMULATE',522,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:50'), +(438,'ADD_ACCUMULATE',523,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(439,'ADD_ACCUMULATE',524,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(440,'ADD_ACCUMULATE',525,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(441,'ADD_ACCUMULATE',526,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(442,'ADD_ACCUMULATE',527,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(443,'ADD_ACCUMULATE',528,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(444,'ADD_ACCUMULATE',529,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(445,'ADD_ACCUMULATE',530,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(446,'ADD_ACCUMULATE',531,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-13 06:31:32'), +(447,'ADD_ACCUMULATE',532,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:13'), +(448,'ADD_ACCUMULATE',534,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(449,'ADD_ACCUMULATE',535,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(450,'ADD_ACCUMULATE',536,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(451,'ADD_ACCUMULATE',537,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(452,'ADD_ACCUMULATE',538,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(453,'ADD_ACCUMULATE',539,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(454,'ADD_ACCUMULATE',540,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(455,'ADD_ACCUMULATE',541,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:37:19'), +(456,'ADD_ACCUMULATE',542,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-14 06:35:27'), +(457,'ADD_ACCUMULATE',544,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:39:03'), +(458,'ADD_ACCUMULATE',546,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:39:44'), +(459,'ADD_ACCUMULATE',548,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(460,'ADD_ACCUMULATE',549,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(461,'ADD_ACCUMULATE',550,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(462,'ADD_ACCUMULATE',551,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(463,'ADD_ACCUMULATE',552,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(464,'ADD_ACCUMULATE',553,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(465,'ADD_ACCUMULATE',554,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-18 06:21:36'), +(466,'ADD_ACCUMULATE',555,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-18 06:21:36'), +(467,'ADD_ACCUMULATE',556,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-18 06:22:01'), +(468,'ADD_ACCUMULATE',557,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-18 06:22:53'), +(469,'ADD_ACCUMULATE',559,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-18 06:23:34'), +(470,'ADD_ACCUMULATE',561,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:41:24'), +(471,'ADD_ACCUMULATE',562,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:41:24'), +(472,'ADD_ACCUMULATE',563,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:41:24'), +(473,'ADD_ACCUMULATE',564,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:43:10'), +(474,'ADD_ACCUMULATE',565,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:43:10'), +(475,'ADD_ACCUMULATE',566,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:43:10'), +(476,'ADD_ACCUMULATE',567,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-18 06:43:35'), +(477,'ADD_ACCUMULATE',568,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-18 06:43:35'), +(478,'ADD_ACCUMULATE',569,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"6.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:02:49'), +(479,'ADD_ACCUMULATE',570,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:03:30'), +(480,'ADD_ACCUMULATE',571,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:03:30'), +(481,'ADD_ACCUMULATE',572,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:03:30'), +(482,'ADD_ACCUMULATE',573,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:03:30'), +(483,'ADD_ACCUMULATE',574,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:04:05'), +(484,'ADD_ACCUMULATE',575,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:04:05'), +(485,'ADD_ACCUMULATE',576,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:04:05'), +(486,'ADD_ACCUMULATE',577,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:04:05'), +(487,'ADD_ACCUMULATE',578,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:04:05'), +(488,'ADD_ACCUMULATE',579,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-19 08:36:51'), +(489,'ADD_ACCUMULATE',580,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-19 08:36:51'), +(490,'ADD_ACCUMULATE',581,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-19 08:36:51'), +(491,'ADD_ACCUMULATE',582,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-20 06:19:36'), +(492,'ADD_ACCUMULATE',583,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-20 06:21:28'), +(493,'ADD_ACCUMULATE',585,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-20 06:21:28'), +(494,'ADD_ACCUMULATE',587,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:43:46'), +(495,'ADD_ACCUMULATE',588,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:23'), +(496,'ADD_ACCUMULATE',589,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:23'), +(497,'ADD_ACCUMULATE',590,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:23'), +(498,'ADD_ACCUMULATE',591,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:24'), +(499,'ADD_ACCUMULATE',592,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:24'), +(500,'ADD_ACCUMULATE',593,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:24'), +(501,'ADD_ACCUMULATE',594,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:26'), +(502,'ADD_ACCUMULATE',595,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:26'), +(503,'ADD_ACCUMULATE',596,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-21 06:30:36'), +(504,'ADD_ACCUMULATE',597,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-21 06:30:36'), +(505,'ADD_ACCUMULATE',598,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:50:38'), +(506,'ADD_ACCUMULATE',599,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:50:38'), +(507,'ADD_ACCUMULATE',600,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:51:23'), +(508,'ADD_ACCUMULATE',602,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:51:23'), +(509,'ADD_ACCUMULATE',604,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:51:23'), +(510,'ADD_ACCUMULATE',606,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:51:23'), +(511,'ADD_ACCUMULATE',608,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:54:46'), +(512,'ADD_ACCUMULATE',610,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:55:25'), +(513,'ADD_ACCUMULATE',612,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-21 08:24:50'), +(514,'ADD_ACCUMULATE',613,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-21 08:24:50'), +(515,'ADD_ACCUMULATE',614,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-22 06:21:15'), +(516,'ADD_ACCUMULATE',615,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-22 06:23:12'), +(517,'ADD_ACCUMULATE',617,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-22 06:23:55'), +(518,'ADD_ACCUMULATE',618,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:27:43'), +(519,'ADD_ACCUMULATE',619,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(520,'ADD_ACCUMULATE',620,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(521,'ADD_ACCUMULATE',621,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(522,'ADD_ACCUMULATE',622,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(523,'ADD_ACCUMULATE',623,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(524,'ADD_ACCUMULATE',624,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(525,'ADD_ACCUMULATE',625,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:02'), +(526,'ADD_ACCUMULATE',627,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:25'), +(527,'ADD_ACCUMULATE',628,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(528,'ADD_ACCUMULATE',629,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(529,'ADD_ACCUMULATE',630,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(530,'ADD_ACCUMULATE',631,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(531,'ADD_ACCUMULATE',632,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(532,'ADD_ACCUMULATE',633,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(533,'ADD_ACCUMULATE',634,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(534,'ADD_ACCUMULATE',635,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(535,'ADD_ACCUMULATE',636,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(536,'ADD_ACCUMULATE',637,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(537,'ADD_ACCUMULATE',638,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(538,'ADD_ACCUMULATE',639,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(539,'ADD_ACCUMULATE',640,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(540,'ADD_ACCUMULATE',641,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(541,'ADD_ACCUMULATE',642,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(542,'ADD_ACCUMULATE',643,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(543,'ADD_ACCUMULATE',644,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(544,'ADD_ACCUMULATE',645,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-25 06:49:16'), +(545,'ADD_ACCUMULATE',646,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-25 06:49:17'), +(546,'ADD_ACCUMULATE',647,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:28:03'), +(547,'ADD_ACCUMULATE',649,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:28:35'), +(548,'ADD_ACCUMULATE',650,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(549,'ADD_ACCUMULATE',651,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(550,'ADD_ACCUMULATE',652,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(551,'ADD_ACCUMULATE',653,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(552,'ADD_ACCUMULATE',654,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(553,'ADD_ACCUMULATE',655,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(554,'ADD_ACCUMULATE',656,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(555,'ADD_ACCUMULATE',657,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:03'), +(556,'ADD_ACCUMULATE',658,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-26 08:22:12'), +(557,'ADD_ACCUMULATE',659,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-26 08:22:12'), +(558,'ADD_ACCUMULATE',660,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-26 08:22:12'), +(559,'ADD_ACCUMULATE',661,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(560,'ADD_ACCUMULATE',662,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(561,'ADD_ACCUMULATE',663,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(562,'ADD_ACCUMULATE',664,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(563,'ADD_ACCUMULATE',665,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(564,'ADD_ACCUMULATE',666,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(565,'ADD_ACCUMULATE',667,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(566,'ADD_ACCUMULATE',668,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:48'), +(567,'ADD_ACCUMULATE',669,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-27 06:45:32'), +(568,'ADD_ACCUMULATE',671,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-27 06:45:32'), +(569,'ADD_ACCUMULATE',673,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-28 08:31:42'), +(570,'ADD_ACCUMULATE',675,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-28 08:31:42'), +(571,'ADD_ACCUMULATE',677,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-28 08:31:42'), +(572,'ADD_ACCUMULATE',679,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-28 08:31:42'), +(573,'ADD_ACCUMULATE',681,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:37:46'), +(574,'ADD_ACCUMULATE',683,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:38:15'), +(575,'ADD_ACCUMULATE',685,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:38:50'), +(576,'ADD_ACCUMULATE',687,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:39:24'), +(577,'ADD_ACCUMULATE',688,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(578,'ADD_ACCUMULATE',689,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(579,'ADD_ACCUMULATE',690,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(580,'ADD_ACCUMULATE',691,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(581,'ADD_ACCUMULATE',692,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(582,'ADD_ACCUMULATE',693,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(583,'ADD_ACCUMULATE',694,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:44:56'), +(584,'ADD_ACCUMULATE',695,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:44:56'), +(585,'ADD_ACCUMULATE',696,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:44:56'), +(586,'ADD_ACCUMULATE',697,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(587,'ADD_ACCUMULATE',698,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(588,'ADD_ACCUMULATE',699,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(589,'ADD_ACCUMULATE',700,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(590,'ADD_ACCUMULATE',701,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(591,'ADD_ACCUMULATE',702,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(592,'DELETE',693,'{\"id\":693,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:05'), +(593,'DELETE',702,'{\"id\":702,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:16'), +(594,'DELETE',697,'{\"id\":697,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:26'), +(595,'DELETE',688,'{\"id\":688,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:32'), +(596,'DELETE',691,'{\"id\":691,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:41'), +(597,'DELETE',700,'{\"id\":700,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:48'), +(598,'DELETE',692,'{\"id\":692,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:56'), +(599,'DELETE',701,'{\"id\":701,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:47:01'), +(600,'ADD_ACCUMULATE',703,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(601,'ADD_ACCUMULATE',704,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(602,'ADD_ACCUMULATE',705,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(603,'ADD_ACCUMULATE',706,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(604,'ADD_ACCUMULATE',707,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(605,'ADD_ACCUMULATE',708,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(606,'ADD_ACCUMULATE',709,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(607,'ADD_ACCUMULATE',710,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(608,'ADD_ACCUMULATE',711,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:35'), +(609,'ADD_ACCUMULATE',713,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:35'), +(610,'ADD_ACCUMULATE',715,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:35'), +(611,'ADD_ACCUMULATE',717,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:35'), +(612,'DELETE',705,'{\"id\":705,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":8,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:55:28'), +(613,'ADD_ACCUMULATE',719,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-29 21:55:56'), +(614,'ADD_ACCUMULATE',720,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-29 21:55:56'), +(615,'ADD_ACCUMULATE',721,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-29 21:55:56'), +(616,'DELETE',711,'{\"id\":711,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"6.00\",\"created_at\":\"2025-08-29T06:47:35.000Z\",\"updated_at\":\"2025-08-29T06:47:35.000Z\",\"created_by\":6,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:56:26'), +(617,'DELETE',712,'{\"id\":712,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":1,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-29T06:47:35.000Z\",\"updated_at\":\"2025-08-29T06:47:35.000Z\",\"created_by\":6,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:56:43'), +(618,'DELETE',707,'{\"id\":707,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:57:03'), +(619,'DELETE',708,'{\"id\":708,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:57:16'), +(620,'DELETE',709,'{\"id\":709,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:57:26'), +(621,'ADD_ACCUMULATE',722,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-30 05:12:03'), +(622,'ADD_ACCUMULATE',723,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-30 05:12:03'), +(623,'ADD_ACCUMULATE',724,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-30 05:12:03'), +(624,'ADD_ACCUMULATE',725,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(625,'ADD_ACCUMULATE',726,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(626,'ADD_ACCUMULATE',727,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(627,'ADD_ACCUMULATE',728,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(628,'ADD_ACCUMULATE',729,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(629,'ADD_ACCUMULATE',730,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(630,'ADD_ACCUMULATE',731,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(631,'ADD_ACCUMULATE',732,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:18:28'), +(632,'ADD_ACCUMULATE',733,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:18:28'), +(633,'ADD_ACCUMULATE',734,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:11'), +(634,'ADD_ACCUMULATE',735,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:11'), +(635,'ADD_ACCUMULATE',736,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:11'), +(636,'ADD_ACCUMULATE',737,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:35'), +(637,'ADD_ACCUMULATE',738,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:35'), +(638,'ADD_ACCUMULATE',739,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:35'), +(639,'ADD_ACCUMULATE',740,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:20:03'), +(640,'DELETE',650,'{\"id\":650,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:13:55'), +(641,'DELETE',654,'{\"id\":654,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:14:02'), +(642,'DELETE',656,'{\"id\":656,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:14:11'), +(643,'DELETE',572,'{\"id\":572,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":7,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:15:09'), +(644,'DELETE',571,'{\"id\":571,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:15:17'), +(645,'DELETE',570,'{\"id\":570,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:15:27'), +(646,'DELETE',599,'{\"id\":599,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":7,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:50:38.000Z\",\"updated_at\":\"2025-08-21T07:50:38.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:15:59'), +(647,'DELETE',604,'{\"id\":604,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:16:14'), +(648,'DELETE',605,'{\"id\":605,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:16:19'), +(649,'DELETE',606,'{\"id\":606,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:16:28'), +(650,'DELETE',607,'{\"id\":607,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:16:33'), +(651,'DELETE',598,'{\"id\":598,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":1,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:50:38.000Z\",\"updated_at\":\"2025-08-21T07:50:38.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:16:54'), +(652,'ADD_ACCUMULATE',741,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 23:18:03'), +(653,'ADD_ACCUMULATE',742,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 23:18:03'), +(654,'DELETE',588,'{\"id\":588,\"report_date\":\"2025-08-20T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-20T06:44:23.000Z\",\"updated_at\":\"2025-08-20T06:44:23.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:26:52'), +(655,'DELETE',592,'{\"id\":592,\"report_date\":\"2025-08-20T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-20T06:44:24.000Z\",\"updated_at\":\"2025-08-20T06:44:24.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:26:58'), +(656,'DELETE',639,'{\"id\":639,\"report_date\":\"2025-08-25T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-25T06:48:34.000Z\",\"updated_at\":\"2025-08-25T06:48:34.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:27:26'), +(657,'DELETE',642,'{\"id\":642,\"report_date\":\"2025-08-25T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-25T06:48:34.000Z\",\"updated_at\":\"2025-08-25T06:48:34.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:27:31'), +(658,'ADD_ACCUMULATE',743,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:34:20'), +(659,'ADD_ACCUMULATE',744,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:34:20'), +(660,'DELETE_SINGLE',744,'{\"worker_name\":\"이창호\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-09-02T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-09-02 07:35:18'), +(661,'DELETE_SINGLE',743,'{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-09-02T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-09-02 07:35:21'), +(662,'ADD_ACCUMULATE',745,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(663,'ADD_ACCUMULATE',746,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(664,'ADD_ACCUMULATE',747,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(665,'ADD_ACCUMULATE',748,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(666,'ADD_ACCUMULATE',749,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(667,'ADD_ACCUMULATE',750,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(668,'ADD_ACCUMULATE',751,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(669,'ADD_ACCUMULATE',752,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(670,'ADD_ACCUMULATE',753,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(671,'ADD_ACCUMULATE',754,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(672,'ADD_ACCUMULATE',755,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(673,'ADD_ACCUMULATE',756,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(674,'ADD_ACCUMULATE',757,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:37:19'), +(675,'ADD_ACCUMULATE',758,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:37:19'), +(676,'ADD_ACCUMULATE',759,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-02 08:16:14'), +(677,'ADD_ACCUMULATE',761,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-02 08:16:14'), +(678,'ADD_ACCUMULATE',763,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:47'), +(679,'ADD_ACCUMULATE',764,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:47'), +(680,'ADD_ACCUMULATE',765,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(681,'ADD_ACCUMULATE',766,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(682,'ADD_ACCUMULATE',767,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(683,'ADD_ACCUMULATE',768,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(684,'ADD_ACCUMULATE',769,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(685,'ADD_ACCUMULATE',770,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(686,'ADD_ACCUMULATE',771,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-03 06:44:18'), +(687,'ADD_ACCUMULATE',772,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:32'), +(688,'ADD_ACCUMULATE',773,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:32'), +(689,'ADD_ACCUMULATE',774,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:32'), +(690,'ADD_ACCUMULATE',775,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:32'), +(691,'ADD_ACCUMULATE',776,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:33'), +(692,'ADD_ACCUMULATE',777,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:33'), +(693,'ADD_ACCUMULATE',778,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:33'), +(694,'ADD_ACCUMULATE',779,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:33'), +(695,'ADD_ACCUMULATE',780,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-04 06:48:34'), +(696,'ADD_ACCUMULATE',781,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-04 06:48:34'), +(697,'ADD_ACCUMULATE',782,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:30'), +(698,'ADD_ACCUMULATE',783,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:30'), +(699,'ADD_ACCUMULATE',784,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:30'), +(700,'ADD_ACCUMULATE',785,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:31'), +(701,'ADD_ACCUMULATE',786,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:31'), +(702,'ADD_ACCUMULATE',787,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:31'), +(703,'ADD_ACCUMULATE',788,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:31'), +(704,'ADD_ACCUMULATE',789,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-05 22:09:55'), +(705,'ADD_ACCUMULATE',790,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-05 22:09:55'), +(706,'ADD_ACCUMULATE',791,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-05 22:09:55'), +(707,'ADD_ACCUMULATE',792,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-06 04:21:10'), +(708,'ADD_ACCUMULATE',793,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-06 04:21:10'), +(709,'ADD_ACCUMULATE',794,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-06 04:21:10'), +(710,'ADD_ACCUMULATE',795,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:18'), +(711,'ADD_ACCUMULATE',796,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:18'), +(712,'ADD_ACCUMULATE',797,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:18'), +(713,'ADD_ACCUMULATE',798,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:19'), +(714,'ADD_ACCUMULATE',799,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:19'), +(715,'ADD_ACCUMULATE',800,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:19'), +(716,'ADD_ACCUMULATE',801,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:19'), +(717,'ADD_ACCUMULATE',802,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(718,'ADD_ACCUMULATE',803,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(719,'ADD_ACCUMULATE',804,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(720,'ADD_ACCUMULATE',805,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(721,'ADD_ACCUMULATE',806,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(722,'ADD_ACCUMULATE',807,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(723,'ADD_ACCUMULATE',808,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(724,'ADD_ACCUMULATE',809,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-08 06:47:37'), +(725,'ADD_ACCUMULATE',810,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-08 06:47:37'), +(726,'ADD_ACCUMULATE',811,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-08 06:47:37'), +(727,'ADD_ACCUMULATE',812,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(728,'ADD_ACCUMULATE',813,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(729,'ADD_ACCUMULATE',814,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(730,'ADD_ACCUMULATE',815,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(731,'ADD_ACCUMULATE',816,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(732,'ADD_ACCUMULATE',817,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(733,'ADD_ACCUMULATE',818,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(734,'ADD_ACCUMULATE',819,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-09 06:44:29'), +(735,'ADD_ACCUMULATE',820,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-09 06:44:29'), +(736,'ADD_ACCUMULATE',821,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-09 06:44:29'), +(737,'ADD_ACCUMULATE',822,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(738,'ADD_ACCUMULATE',823,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(739,'ADD_ACCUMULATE',824,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(740,'ADD_ACCUMULATE',825,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(741,'ADD_ACCUMULATE',826,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(742,'ADD_ACCUMULATE',827,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(743,'ADD_ACCUMULATE',828,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(744,'ADD_ACCUMULATE',829,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-10 06:48:43'), +(745,'ADD_ACCUMULATE',830,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-10 06:48:43'), +(746,'ADD_ACCUMULATE',831,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-10 06:48:43'), +(747,'ADD_ACCUMULATE',832,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:37:11'), +(748,'ADD_ACCUMULATE',834,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":4,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:38:24'), +(749,'ADD_ACCUMULATE',837,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:39:38'), +(750,'ADD_ACCUMULATE',838,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:40:48'), +(751,'ADD_ACCUMULATE',839,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:46'), +(752,'ADD_ACCUMULATE',840,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:47'), +(753,'ADD_ACCUMULATE',841,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:47'), +(754,'ADD_ACCUMULATE',842,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:47'), +(755,'ADD_ACCUMULATE',843,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:47'), +(756,'ADD_ACCUMULATE',844,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:47'), +(757,'ADD_ACCUMULATE',845,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:51'), +(758,'ADD_ACCUMULATE',847,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:51'), +(759,'ADD_ACCUMULATE',849,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:51'), +(760,'DELETE',849,'{\"id\":849,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"4.00\",\"created_at\":\"2025-09-11T06:41:51.000Z\",\"updated_at\":\"2025-09-11T06:41:51.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-09-11 06:42:40'), +(761,'DELETE',850,'{\"id\":850,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"4.00\",\"created_at\":\"2025-09-11T06:41:51.000Z\",\"updated_at\":\"2025-09-11T06:41:51.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-09-11 06:42:49'), +(762,'DELETE',839,'{\"id\":839,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-11T06:41:46.000Z\",\"updated_at\":\"2025-09-11T06:41:46.000Z\",\"created_by\":6,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-09-11 06:43:07'), +(763,'DELETE',837,'{\"id\":837,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":8,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-11T06:39:38.000Z\",\"updated_at\":\"2025-09-11T06:39:38.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-09-11 06:43:16'), +(764,'ADD_ACCUMULATE',851,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(765,'ADD_ACCUMULATE',852,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(766,'ADD_ACCUMULATE',853,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(767,'ADD_ACCUMULATE',854,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(768,'ADD_ACCUMULATE',855,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(769,'ADD_ACCUMULATE',856,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(770,'ADD_ACCUMULATE',857,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(771,'ADD_ACCUMULATE',858,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(772,'ADD_ACCUMULATE',859,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(773,'ADD_ACCUMULATE',860,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(774,'ADD_ACCUMULATE',861,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(775,'ADD_ACCUMULATE',862,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(776,'ADD_ACCUMULATE',863,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(777,'ADD_ACCUMULATE',864,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(778,'ADD_ACCUMULATE',865,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(779,'ADD_ACCUMULATE',866,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(780,'ADD_ACCUMULATE',867,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(781,'ADD_ACCUMULATE',868,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(782,'ADD_ACCUMULATE',869,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(783,'ADD_ACCUMULATE',870,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:40'), +(784,'ADD_ACCUMULATE',871,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:40'), +(785,'ADD_ACCUMULATE',872,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:40'), +(786,'ADD_ACCUMULATE',873,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:40'), +(787,'ADD_ACCUMULATE',874,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:41'), +(788,'ADD_ACCUMULATE',875,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:41'), +(789,'ADD_ACCUMULATE',876,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:41'), +(790,'ADD_ACCUMULATE',877,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:41'), +(791,'ADD_ACCUMULATE',878,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:41'), +(792,'ADD_ACCUMULATE',879,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:00'), +(793,'ADD_ACCUMULATE',880,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:00'), +(794,'ADD_ACCUMULATE',881,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:00'), +(795,'ADD_ACCUMULATE',882,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:00'), +(796,'ADD_ACCUMULATE',883,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(797,'ADD_ACCUMULATE',884,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(798,'ADD_ACCUMULATE',885,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(799,'ADD_ACCUMULATE',886,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(800,'ADD_ACCUMULATE',887,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(801,'ADD_ACCUMULATE',888,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(802,'ADD_ACCUMULATE',889,NULL,'{\"report_date\":\"2025-09-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-16 06:51:19'), +(803,'ADD_ACCUMULATE',890,NULL,'{\"report_date\":\"2025-09-16\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-16 06:51:19'), +(804,'ADD_ACCUMULATE',891,NULL,'{\"report_date\":\"2025-09-16\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-16 06:52:12'), +(805,'ADD_ACCUMULATE',893,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-17 06:43:08'), +(806,'ADD_ACCUMULATE',894,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-17 06:43:08'), +(807,'ADD_ACCUMULATE',895,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(808,'ADD_ACCUMULATE',896,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(809,'ADD_ACCUMULATE',897,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(810,'ADD_ACCUMULATE',898,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(811,'ADD_ACCUMULATE',899,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(812,'ADD_ACCUMULATE',900,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(813,'ADD_ACCUMULATE',901,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(814,'ADD_ACCUMULATE',902,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(815,'ADD_ACCUMULATE',903,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:43:40'), +(816,'ADD_ACCUMULATE',904,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:43:40'), +(817,'ADD_ACCUMULATE',905,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:44:42'), +(818,'ADD_ACCUMULATE',906,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:44:42'), +(819,'ADD_ACCUMULATE',907,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:44:42'), +(820,'ADD_ACCUMULATE',908,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:44:42'), +(821,'ADD_ACCUMULATE',909,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:44:42'), +(822,'ADD_ACCUMULATE',910,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:46:39'), +(823,'ADD_ACCUMULATE',911,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-18 06:54:48'), +(824,'ADD_ACCUMULATE',912,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-18 06:54:48'), +(825,'ADD_ACCUMULATE',913,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:51:40'), +(826,'ADD_ACCUMULATE',914,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:51:40'), +(827,'ADD_ACCUMULATE',915,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:05'), +(828,'ADD_ACCUMULATE',916,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:05'), +(829,'ADD_ACCUMULATE',917,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:05'), +(830,'ADD_ACCUMULATE',918,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:05'), +(831,'ADD_ACCUMULATE',919,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:05'), +(832,'ADD_ACCUMULATE',920,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:23'), +(833,'ADD_ACCUMULATE',921,NULL,'{\"report_date\":\"2025-09-20\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-20 05:30:19'), +(834,'ADD_ACCUMULATE',922,NULL,'{\"report_date\":\"2025-09-20\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-20 05:30:19'), +(835,'ADD_ACCUMULATE',923,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(836,'ADD_ACCUMULATE',924,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(837,'ADD_ACCUMULATE',925,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(838,'ADD_ACCUMULATE',926,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(839,'ADD_ACCUMULATE',927,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(840,'ADD_ACCUMULATE',928,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(841,'ADD_ACCUMULATE',929,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-22 06:50:29'), +(842,'ADD_ACCUMULATE',930,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-22 06:50:29'), +(843,'ADD_ACCUMULATE',931,NULL,'{\"report_date\":\"2025-09-23\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-23 05:46:40'), +(844,'ADD_ACCUMULATE',932,NULL,'{\"report_date\":\"2025-09-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-23 05:46:40'), +(845,'ADD_ACCUMULATE',933,NULL,'{\"report_date\":\"2025-09-24\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-25 01:14:58'), +(846,'ADD_ACCUMULATE',934,NULL,'{\"report_date\":\"2025-09-24\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-25 01:14:58'), +(847,'ADD_ACCUMULATE',935,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:07'), +(848,'ADD_ACCUMULATE',936,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:07'), +(849,'ADD_ACCUMULATE',937,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(850,'ADD_ACCUMULATE',938,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(851,'ADD_ACCUMULATE',939,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(852,'ADD_ACCUMULATE',940,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(853,'ADD_ACCUMULATE',941,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(854,'ADD_ACCUMULATE',942,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(855,'ADD_ACCUMULATE',943,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(856,'ADD_ACCUMULATE',944,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(857,'ADD_ACCUMULATE',945,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(858,'ADD_ACCUMULATE',946,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(859,'ADD_ACCUMULATE',947,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(860,'ADD_ACCUMULATE',948,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(861,'ADD_ACCUMULATE',949,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(862,'ADD_ACCUMULATE',950,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(863,'ADD_ACCUMULATE',951,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:27'), +(864,'ADD_ACCUMULATE',952,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:27'), +(865,'ADD_ACCUMULATE',953,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:27'), +(866,'DELETE',952,'{\"id\":952,\"report_date\":\"2025-09-30T00:00:00.000Z\",\"worker_id\":2,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-30T06:52:27.000Z\",\"updated_at\":\"2025-09-30T06:52:27.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-09-30 06:56:36'), +(867,'ADD_ACCUMULATE',954,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-30 06:56:55'), +(868,'ADD_ACCUMULATE',955,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 05:25:58'), +(869,'ADD_ACCUMULATE',956,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 05:25:59'), +(870,'ADD_ACCUMULATE',957,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:32'), +(871,'ADD_ACCUMULATE',958,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:32'), +(872,'ADD_ACCUMULATE',959,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:32'), +(873,'ADD_ACCUMULATE',960,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:32'), +(874,'ADD_ACCUMULATE',961,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:33'), +(875,'ADD_ACCUMULATE',962,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:33'), +(876,'ADD_ACCUMULATE',963,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:33'), +(877,'ADD_ACCUMULATE',964,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-10 23:35:07'), +(878,'ADD_ACCUMULATE',965,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-10 23:35:07'), +(879,'ADD_ACCUMULATE',966,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-10 23:35:07'); +/*!40000 ALTER TABLE `work_report_audit_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_report_defects` +-- + +DROP TABLE IF EXISTS `work_report_defects`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_report_defects` ( + `defect_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `report_id` int(11) NOT NULL COMMENT 'daily_work_reports의 id', + `error_type_id` int(11) DEFAULT NULL COMMENT 'error_types의 id (부적합 원인) - 레거시, issue_report_id 사용 권장', + `issue_report_id` int(10) unsigned DEFAULT NULL COMMENT 'work_issue_reports의 report_id (신고된 이슈 연결)', + `category_id` int(10) unsigned DEFAULT NULL COMMENT 'issue_report_categories의 category_id (직접 입력 시)', + `item_id` int(10) unsigned DEFAULT NULL COMMENT 'issue_report_items의 item_id (직접 입력 시)', + `defect_hours` decimal(4,1) NOT NULL DEFAULT 0.0 COMMENT '해당 원인의 부적합 시간', + `note` text DEFAULT NULL COMMENT '추가 메모', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`defect_id`), + UNIQUE KEY `work_report_defects_report_issue_unique` (`report_id`,`issue_report_id`), + KEY `work_report_defects_report_id_index` (`report_id`), + KEY `work_report_defects_error_type_id_index` (`error_type_id`), + KEY `work_report_defects_issue_report_id_index` (`issue_report_id`), + KEY `work_report_defects_category_id_foreign` (`category_id`), + KEY `work_report_defects_item_id_foreign` (`item_id`), + CONSTRAINT `work_report_defects_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `issue_report_categories` (`category_id`) ON DELETE SET NULL, + CONSTRAINT `work_report_defects_issue_report_id_foreign` FOREIGN KEY (`issue_report_id`) REFERENCES `work_issue_reports` (`report_id`) ON DELETE SET NULL, + CONSTRAINT `work_report_defects_item_id_foreign` FOREIGN KEY (`item_id`) REFERENCES `issue_report_items` (`item_id`) ON DELETE SET NULL, + CONSTRAINT `work_report_defects_report_id_foreign` FOREIGN KEY (`report_id`) REFERENCES `daily_work_reports` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_report_defects` +-- + +LOCK TABLES `work_report_defects` WRITE; +/*!40000 ALTER TABLE `work_report_defects` DISABLE KEYS */; +INSERT INTO `work_report_defects` VALUES +(1,970,1,NULL,NULL,NULL,2.0,NULL,'2026-01-27 05:00:13'), +(2,972,1,NULL,NULL,NULL,4.0,NULL,'2026-01-27 05:09:53'), +(3,991,1,NULL,NULL,NULL,2.0,NULL,'2026-01-30 00:13:02'), +(4,973,5,NULL,NULL,NULL,4.0,NULL,'2026-01-27 05:11:47'), +(5,987,5,NULL,NULL,NULL,2.0,NULL,'2026-01-29 22:16:36'), +(6,990,5,NULL,NULL,NULL,2.0,NULL,'2026-01-29 22:16:36'), +(8,995,NULL,NULL,2,6,2.0,'치수가 nmm 안맞음(포인트 많이 고침)','2026-02-03 00:29:52'), +(9,995,NULL,3,NULL,NULL,1.0,NULL,'2026-02-03 00:29:52'), +(10,1639,NULL,3,NULL,NULL,1.0,NULL,'2026-02-03 04:28:40'), +(11,1639,NULL,NULL,1,2,2.0,NULL,'2026-02-03 04:28:40'), +(12,1644,NULL,NULL,5,42,4.0,NULL,'2026-02-04 22:52:41'), +(13,1676,NULL,NULL,13,43,2.0,NULL,'2026-02-04 23:22:54'), +(14,1679,NULL,NULL,4,44,8.0,'잘못된 정보를 전달함','2026-02-04 23:22:54'), +(15,1706,NULL,NULL,4,15,4.0,NULL,'2026-02-04 23:36:37'), +(16,1707,NULL,NULL,4,15,8.0,'설치 지연','2026-02-04 23:36:37'), +(17,1708,NULL,NULL,4,15,8.0,'설치 지연','2026-02-04 23:36:37'), +(18,1719,NULL,NULL,13,43,8.0,NULL,'2026-02-04 23:44:26'), +(19,1792,NULL,NULL,4,15,8.0,NULL,'2026-02-05 00:37:01'), +(20,1793,NULL,NULL,4,15,8.0,NULL,'2026-02-05 00:37:02'); +/*!40000 ALTER TABLE `work_report_defects` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_status_types` +-- + +DROP TABLE IF EXISTS `work_status_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_status_types` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL COMMENT '상태명', + `description` text DEFAULT NULL COMMENT '상태 설명', + `is_error` tinyint(1) DEFAULT 0 COMMENT '에러 상태 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_status_types` +-- + +LOCK TABLES `work_status_types` WRITE; +/*!40000 ALTER TABLE `work_status_types` DISABLE KEYS */; +INSERT INTO `work_status_types` VALUES +(1,'정규','정상적으로 완료된 작업',0,'2025-06-16 02:21:16'), +(2,'에러','오류가 발생한 작업',1,'2025-06-16 02:21:16'); +/*!40000 ALTER TABLE `work_status_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_types` +-- + +DROP TABLE IF EXISTS `work_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_types` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL COMMENT '작업 유형명', + `description` text DEFAULT NULL COMMENT '작업 유형 설명', + `category` varchar(50) DEFAULT NULL COMMENT '작업 카테고리', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_types` +-- + +LOCK TABLES `work_types` WRITE; +/*!40000 ALTER TABLE `work_types` DISABLE KEYS */; +INSERT INTO `work_types` VALUES +(1,'Base(구조물)',NULL,NULL,'2025-06-16 02:21:32','2025-06-16 03:03:42'), +(2,'Vessel(용기)',NULL,NULL,'2025-06-16 02:21:32','2025-06-16 03:03:47'), +(3,'Piping Assembly(배관)',NULL,NULL,'2025-06-16 02:21:32','2025-06-16 03:03:50'), +(4,'작업대기',NULL,NULL,'2025-06-16 02:21:32','2025-06-16 03:03:56'), +(11,'휴무','연차사용 등',NULL,'2025-11-04 05:53:46','2025-11-04 05:53:46'), +(12,'시설설비',NULL,NULL,'2026-02-04 21:52:07','2026-02-04 21:52:07'); +/*!40000 ALTER TABLE `work_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `worker_groups` +-- + +DROP TABLE IF EXISTS `worker_groups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `worker_groups` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `group_leader_id` int(11) NOT NULL, + `worker_id` int(11) NOT NULL, + `group_name` varchar(100) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uk_leader_worker` (`group_leader_id`,`worker_id`), + KEY `idx_group_leader` (`group_leader_id`), + KEY `idx_worker` (`worker_id`), + KEY `idx_is_active` (`is_active`), + CONSTRAINT `fk_group_leader` FOREIGN KEY (`group_leader_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE, + CONSTRAINT `fk_group_worker` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `worker_groups` +-- + +LOCK TABLES `worker_groups` WRITE; +/*!40000 ALTER TABLE `worker_groups` DISABLE KEYS */; +/*!40000 ALTER TABLE `worker_groups` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `worker_vacation_balance` +-- + +DROP TABLE IF EXISTS `worker_vacation_balance`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `worker_vacation_balance` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `worker_id` int(11) NOT NULL, + `year` int(11) NOT NULL, + `total_annual_leave` decimal(4,1) DEFAULT 15.0, + `used_annual_leave` decimal(4,1) DEFAULT 0.0, + `notes` text DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `unique_worker_year` (`worker_id`,`year`), + CONSTRAINT `worker_vacation_balance_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `worker_vacation_balance` +-- + +LOCK TABLES `worker_vacation_balance` WRITE; +/*!40000 ALTER TABLE `worker_vacation_balance` DISABLE KEYS */; +INSERT INTO `worker_vacation_balance` VALUES +(1,1,2026,15.0,0.0,NULL,'2026-01-19 01:40:31','2026-01-19 01:40:31'), +(11,2,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(12,4,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(13,5,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(14,6,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(15,7,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(16,8,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(17,9,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(18,10,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(19,12,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'); +/*!40000 ALTER TABLE `worker_vacation_balance` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workers` +-- + +DROP TABLE IF EXISTS `workers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workers` ( + `worker_id` int(11) NOT NULL AUTO_INCREMENT, + `worker_name` varchar(100) NOT NULL, + `join_date` date DEFAULT NULL, + `job_type` varchar(100) DEFAULT NULL, + `salary` decimal(10,2) DEFAULT NULL, + `annual_leave` int(11) DEFAULT NULL, + `status` enum('active','inactive') DEFAULT 'active' COMMENT '작업자 상태 (active: 활성, inactive: 비활성)', + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `phone_number` varchar(20) DEFAULT NULL COMMENT '전화번호', + `email` varchar(100) DEFAULT NULL COMMENT '이메일', + `hire_date` date DEFAULT NULL COMMENT '입사일', + `department` varchar(100) DEFAULT NULL COMMENT '부서', + `department_id` int(11) DEFAULT NULL, + `notes` text DEFAULT NULL COMMENT '비고', + `employment_status` enum('employed','resigned') NOT NULL DEFAULT 'employed' COMMENT '재직 상태 (employed: 재직, resigned: 퇴사)', + PRIMARY KEY (`worker_id`), + KEY `idx_workers_status` (`status`), + KEY `idx_workers_hire_date` (`hire_date`), + KEY `department_id` (`department_id`), + CONSTRAINT `workers_ibfk_1` FOREIGN KEY (`department_id`) REFERENCES `departments` (`department_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workers` +-- + +LOCK TABLES `workers` WRITE; +/*!40000 ALTER TABLE `workers` DISABLE KEYS */; +INSERT INTO `workers` VALUES +(1,'김두수',NULL,'leader',NULL,NULL,'active','2025-04-15 13:23:17','2025-04-15 13:23:17',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(2,'임영규',NULL,'leader',NULL,NULL,'active','2025-04-15 13:23:17','2025-04-15 13:23:17',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(3,'반치원',NULL,'worker',NULL,NULL,'active','2025-04-15 13:23:22','2025-04-15 13:23:22',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(4,'황인용',NULL,'worker',NULL,NULL,'active','2025-04-15 13:23:33','2025-04-15 13:23:33',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(5,'표영진',NULL,'worker',NULL,NULL,'active','2025-04-15 13:23:38','2025-04-15 13:23:38',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(6,'김윤섭',NULL,'worker',NULL,NULL,'active','2025-04-15 13:23:46','2025-04-15 13:23:46',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(7,'이창호',NULL,'worker',NULL,NULL,'inactive','2025-04-15 13:23:51','2025-04-15 13:23:51',NULL,NULL,NULL,NULL,1,NULL,'resigned'), +(8,'최광욱',NULL,'worker',NULL,NULL,'active','2025-04-15 13:23:57','2025-04-15 13:23:57',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(9,'박현수',NULL,'worker',NULL,NULL,'active','2025-04-15 13:24:01','2025-04-15 13:24:01',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(10,'조윤호',NULL,'worker',NULL,NULL,'active','2025-04-15 13:24:07','2025-04-15 13:24:07',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(11,'조승민',NULL,'worker',NULL,NULL,'active','2026-01-06 06:18:27','2026-01-06 06:18:27',NULL,NULL,'2026-01-05','생산팀',1,'용접사','employed'); +/*!40000 ALTER TABLE `workers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplace_categories` +-- + +DROP TABLE IF EXISTS `workplace_categories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplace_categories` ( + `category_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '카테고리 ID', + `category_name` varchar(100) NOT NULL COMMENT '카테고리명 (예: 제 1공장)', + `description` text DEFAULT NULL COMMENT '설명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성화 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '생성일시', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '수정일시', + `layout_image` varchar(500) DEFAULT NULL COMMENT '공장 배치도 이미지 경로', + PRIMARY KEY (`category_id`), + KEY `workplace_categories_is_active_index` (`is_active`), + KEY `workplace_categories_display_order_index` (`display_order`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplace_categories` +-- + +LOCK TABLES `workplace_categories` WRITE; +/*!40000 ALTER TABLE `workplace_categories` DISABLE KEYS */; +INSERT INTO `workplace_categories` VALUES +(1,'제 1공장',NULL,1,1,'2026-01-26 05:28:52','2026-01-27 03:52:45','/uploads/workplace-layout-1769485965188-143426330.jpg'), +(2,'제 2공장',NULL,2,1,'2026-01-26 05:28:59','2026-01-26 05:28:59',NULL); +/*!40000 ALTER TABLE `workplace_categories` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplace_items` +-- + +DROP TABLE IF EXISTS `workplace_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplace_items` ( + `item_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `workplace_id` int(10) unsigned NOT NULL COMMENT '작업장 ID', + `patrol_session_id` int(10) unsigned DEFAULT NULL COMMENT '등록한 순회점검 세션', + `project_id` int(11) DEFAULT NULL COMMENT '관련 프로젝트', + `item_type` enum('container','plate','material','tool','other') NOT NULL COMMENT '물품 유형', + `item_name` varchar(100) DEFAULT NULL COMMENT '물품명/설명', + `quantity` int(11) DEFAULT 1 COMMENT '수량', + `x_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 X 위치 (%)', + `y_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 Y 위치 (%)', + `width_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 너비 (%)', + `height_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 높이 (%)', + `is_active` tinyint(1) DEFAULT 1 COMMENT '현재 존재 여부', + `created_by` int(11) NOT NULL COMMENT '등록자 user_id', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_by` int(11) DEFAULT NULL COMMENT '최종 수정자 user_id', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`item_id`), + KEY `workplace_items_workplace_id_is_active_index` (`workplace_id`,`is_active`), + KEY `workplace_items_project_id_index` (`project_id`), + KEY `workplace_items_patrol_session_id_foreign` (`patrol_session_id`), + KEY `workplace_items_created_by_foreign` (`created_by`), + KEY `workplace_items_updated_by_foreign` (`updated_by`), + CONSTRAINT `workplace_items_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `workplace_items_patrol_session_id_foreign` FOREIGN KEY (`patrol_session_id`) REFERENCES `daily_patrol_sessions` (`session_id`) ON DELETE SET NULL, + CONSTRAINT `workplace_items_project_id_foreign` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) ON DELETE SET NULL, + CONSTRAINT `workplace_items_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `workplace_items_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplace_items` +-- + +LOCK TABLES `workplace_items` WRITE; +/*!40000 ALTER TABLE `workplace_items` DISABLE KEYS */; +/*!40000 ALTER TABLE `workplace_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplace_map_regions` +-- + +DROP TABLE IF EXISTS `workplace_map_regions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplace_map_regions` ( + `region_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '영역 ID', + `workplace_id` int(10) unsigned NOT NULL COMMENT '작업장 ID', + `category_id` int(10) unsigned NOT NULL COMMENT '공장 카테고리 ID', + `x_start` decimal(5,2) NOT NULL COMMENT '시작 X 좌표 (%)', + `y_start` decimal(5,2) NOT NULL COMMENT '시작 Y 좌표 (%)', + `x_end` decimal(5,2) NOT NULL COMMENT '끝 X 좌표 (%)', + `y_end` decimal(5,2) NOT NULL COMMENT '끝 Y 좌표 (%)', + `shape` varchar(20) DEFAULT 'rect' COMMENT '영역 모양 (rect, circle, polygon)', + `polygon_points` text DEFAULT NULL COMMENT '다각형인 경우 좌표 배열 (JSON)', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`region_id`), + KEY `workplace_map_regions_workplace_id_foreign` (`workplace_id`), + KEY `workplace_map_regions_category_id_foreign` (`category_id`), + CONSTRAINT `workplace_map_regions_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `workplace_map_regions_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplace_map_regions` +-- + +LOCK TABLES `workplace_map_regions` WRITE; +/*!40000 ALTER TABLE `workplace_map_regions` DISABLE KEYS */; +INSERT INTO `workplace_map_regions` VALUES +(1,12,1,29.43,57.36,34.43,66.06,'rect',NULL,'2026-01-26 23:05:13','2026-01-26 23:05:13'), +(2,11,1,46.05,7.85,51.68,24.75,'rect',NULL,'2026-01-26 23:05:23','2026-01-26 23:05:23'), +(3,4,1,35.18,0.12,46.05,23.79,'rect',NULL,'2026-01-26 23:05:53','2026-01-26 23:05:53'), +(4,9,1,50.68,29.10,54.93,38.52,'rect',NULL,'2026-01-26 23:06:03','2026-01-26 23:06:03'), +(5,10,1,50.80,43.35,55.05,52.05,'rect',NULL,'2026-01-26 23:06:08','2026-01-26 23:06:08'), +(6,5,1,55.30,8.33,58.55,24.27,'rect',NULL,'2026-01-26 23:06:15','2026-01-26 23:06:15'), +(7,3,1,59.30,8.09,80.93,55.67,'rect',NULL,'2026-01-26 23:06:29','2026-01-26 23:06:29'), +(8,1,1,58.93,62.92,72.93,74.03,'rect',NULL,'2026-01-26 23:06:37','2026-01-26 23:06:37'), +(9,8,1,56.43,28.38,58.55,39.25,'rect',NULL,'2026-01-26 23:06:46','2026-01-26 23:06:46'), +(10,7,1,0.18,1.32,25.68,21.37,'rect',NULL,'2026-01-26 23:06:51','2026-01-26 23:06:51'), +(11,2,1,34.93,29.10,47.93,61.95,'rect',NULL,'2026-01-26 23:06:59','2026-01-26 23:06:59'); +/*!40000 ALTER TABLE `workplace_map_regions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplace_visit_requests` +-- + +DROP TABLE IF EXISTS `workplace_visit_requests`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplace_visit_requests` ( + `request_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '신청 ID', + `requester_id` int(11) NOT NULL COMMENT '신청자 user_id', + `visitor_company` varchar(200) NOT NULL COMMENT '방문자 소속 (회사명 또는 "일용직")', + `visitor_count` int(11) DEFAULT 1 COMMENT '방문 인원', + `category_id` int(10) unsigned NOT NULL COMMENT '방문 구역 (공장)', + `workplace_id` int(10) unsigned NOT NULL COMMENT '방문 작업장', + `visit_date` date NOT NULL COMMENT '방문 날짜', + `visit_time` time NOT NULL COMMENT '방문 시간', + `purpose_id` int(10) unsigned NOT NULL COMMENT '방문 목적 ID', + `notes` text DEFAULT NULL COMMENT '비고', + `status` enum('pending','approved','rejected','training_completed') DEFAULT 'pending' COMMENT '신청 상태', + `approved_by` int(11) DEFAULT NULL COMMENT '승인자 user_id', + `approved_at` timestamp NULL DEFAULT NULL COMMENT '승인 시간', + `rejection_reason` text DEFAULT NULL COMMENT '반려 사유', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`request_id`), + KEY `workplace_visit_requests_requester_id_foreign` (`requester_id`), + KEY `workplace_visit_requests_category_id_foreign` (`category_id`), + KEY `workplace_visit_requests_workplace_id_foreign` (`workplace_id`), + KEY `workplace_visit_requests_purpose_id_foreign` (`purpose_id`), + KEY `workplace_visit_requests_approved_by_foreign` (`approved_by`), + KEY `idx_visit_date` (`visit_date`), + KEY `idx_status` (`status`), + KEY `idx_visit_date_status` (`visit_date`,`status`), + CONSTRAINT `workplace_visit_requests_approved_by_foreign` FOREIGN KEY (`approved_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `workplace_visit_requests_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `workplace_categories` (`category_id`) ON UPDATE CASCADE, + CONSTRAINT `workplace_visit_requests_purpose_id_foreign` FOREIGN KEY (`purpose_id`) REFERENCES `visit_purpose_types` (`purpose_id`) ON UPDATE CASCADE, + CONSTRAINT `workplace_visit_requests_requester_id_foreign` FOREIGN KEY (`requester_id`) REFERENCES `users` (`user_id`) ON UPDATE CASCADE, + CONSTRAINT `workplace_visit_requests_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplace_visit_requests` +-- + +LOCK TABLES `workplace_visit_requests` WRITE; +/*!40000 ALTER TABLE `workplace_visit_requests` DISABLE KEYS */; +INSERT INTO `workplace_visit_requests` VALUES +(1,1,'test',1,1,2,'2026-01-29','15:48:00',3,NULL,'approved',1,'2026-01-29 05:54:04',NULL,'2026-01-29 05:48:54','2026-01-29 05:54:04'), +(2,1,'테스트',2,1,1,'2026-01-29','16:11:00',2,NULL,'training_completed',1,'2026-01-29 06:11:38',NULL,'2026-01-29 06:11:23','2026-01-29 06:12:11'), +(3,1,'test',2,1,2,'2026-01-30','10:13:00',1,NULL,'approved',1,'2026-01-30 00:13:57',NULL,'2026-01-30 00:13:49','2026-01-30 00:13:57'); +/*!40000 ALTER TABLE `workplace_visit_requests` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplace_zone_items` +-- + +DROP TABLE IF EXISTS `workplace_zone_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplace_zone_items` ( + `item_id` int(11) NOT NULL AUTO_INCREMENT, + `workplace_id` int(11) NOT NULL, + `item_name` varchar(200) NOT NULL COMMENT '물품/시설물 명칭', + `item_type` varchar(50) DEFAULT 'general' COMMENT '유형 (heavy_equipment, hazardous, storage, general 등)', + `description` text DEFAULT NULL COMMENT '상세 설명', + `x_percent` decimal(5,2) NOT NULL COMMENT '영역 시작 X 좌표 (%)', + `y_percent` decimal(5,2) NOT NULL COMMENT '영역 시작 Y 좌표 (%)', + `width_percent` decimal(5,2) DEFAULT 10.00 COMMENT '영역 너비 (%)', + `height_percent` decimal(5,2) DEFAULT 10.00 COMMENT '영역 높이 (%)', + `color` varchar(20) DEFAULT '#3b82f6' COMMENT '표시 색상', + `warning_level` varchar(20) DEFAULT 'normal' COMMENT '주의 수준 (normal, caution, danger)', + `quantity` int(11) DEFAULT 1 COMMENT '수량', + `unit` varchar(20) DEFAULT '개' COMMENT '단위', + `weight_kg` decimal(10,2) DEFAULT NULL COMMENT '중량 (kg)', + `is_active` tinyint(1) DEFAULT 1, + `created_by` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`item_id`), + KEY `idx_workplace` (`workplace_id`), + KEY `idx_type` (`item_type`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='구역 내 등록 물품/시설물'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplace_zone_items` +-- + +LOCK TABLES `workplace_zone_items` WRITE; +/*!40000 ALTER TABLE `workplace_zone_items` DISABLE KEYS */; +INSERT INTO `workplace_zone_items` VALUES +(1,2,'용기 동체(대기중)','temp_storage','',21.28,1.37,77.27,29.64,'#3b82f6','good',1,'개',NULL,1,1,'2026-02-05 06:28:36','2026-02-05 06:28:36'); +/*!40000 ALTER TABLE `workplace_zone_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplaces` +-- + +DROP TABLE IF EXISTS `workplaces`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplaces` ( + `workplace_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '작업장 ID', + `category_id` int(10) unsigned DEFAULT NULL COMMENT '카테고리 ID (공장)', + `workplace_name` varchar(255) NOT NULL COMMENT '작업장명', + `description` text DEFAULT NULL COMMENT '설명', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성화 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '생성일시', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '수정일시', + `workplace_purpose` varchar(50) DEFAULT NULL COMMENT '작업장 용도 (작업구역, 설비, 휴게시설, 회의실 등)', + `display_priority` int(11) DEFAULT 0 COMMENT '표시 우선순위 (숫자가 작을수록 먼저 표시)', + `layout_image` varchar(500) DEFAULT NULL COMMENT '작업장 레이아웃 이미지 경로', + PRIMARY KEY (`workplace_id`), + KEY `workplaces_category_id_index` (`category_id`), + KEY `workplaces_is_active_index` (`is_active`), + CONSTRAINT `workplaces_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplaces` +-- + +LOCK TABLES `workplaces` WRITE; +/*!40000 ALTER TABLE `workplaces` DISABLE KEYS */; +INSERT INTO `workplaces` VALUES +(1,1,'서스작업장',NULL,1,'2026-01-26 05:29:18','2026-01-26 23:28:46','작업구역',1,NULL), +(2,1,'조립구역',NULL,1,'2026-01-26 05:29:30','2026-02-04 00:26:04','작업구역',0,'/uploads/workplace-layout-1770162560033-681774067.jpg'), +(3,1,'외부작업장',NULL,1,'2026-01-26 05:29:36','2026-01-26 23:28:35','작업구역',2,NULL), +(4,1,'입고장',NULL,1,'2026-01-26 05:29:41','2026-01-26 23:28:30','작업구역',2,NULL), +(5,1,'생산팀 창고',NULL,1,'2026-01-26 05:29:48','2026-01-26 23:28:16','창고',3,NULL), +(6,1,'검사장비 창고',NULL,1,'2026-01-26 05:29:57','2026-01-26 23:28:21','창고',3,NULL), +(7,1,'2층 가공장',NULL,1,'2026-01-26 05:30:04','2026-01-26 23:28:08','작업구역',2,NULL), +(8,1,'1층 가공장',NULL,1,'2026-01-26 05:30:09','2026-01-26 23:25:00','작업구역',2,NULL), +(9,1,'조방A',NULL,1,'2026-01-26 05:30:17','2026-01-26 23:24:56','작업구역',1,NULL), +(10,1,'조방B',NULL,1,'2026-01-26 05:30:26','2026-01-26 23:24:51','작업구역',1,NULL), +(11,1,'NDE룸',NULL,1,'2026-01-26 05:30:36','2026-01-26 23:24:45','설비',2,NULL), +(12,1,'휴게실',NULL,1,'2026-01-26 05:30:44','2026-01-26 23:24:38','휴게시설',3,NULL), +(13,NULL,'테스트 구역',NULL,1,'2026-02-05 06:48:37','2026-02-05 06:48:37','설비',0,NULL); +/*!40000 ALTER TABLE `workplaces` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Dumping routines for database 'hyungi' +-- +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2026-02-05 23:53:06 diff --git a/deploy/deploy.sh b/deploy/deploy.sh new file mode 100755 index 0000000..1157b20 --- /dev/null +++ b/deploy/deploy.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# ============================================================================= +# TK-FB-Project Synology NAS 배포 스크립트 +# ============================================================================= + +set -e + +echo "==========================================" +echo "TK-FB-Project 배포 시작" +echo "==========================================" + +# 1. 환경 변수 파일 확인 +if [ ! -f .env ]; then + echo "❌ .env 파일이 없습니다." + echo " .env.synology 파일을 복사하고 값을 수정하세요:" + echo " cp .env.synology .env" + exit 1 +fi + +# 2. Cloudflare Tunnel 토큰 확인 +if grep -q "여기에_터널_토큰_입력" .env; then + echo "⚠️ Cloudflare Tunnel 토큰이 설정되지 않았습니다." + echo " .env 파일에서 CLOUDFLARE_TUNNEL_TOKEN을 설정하세요." +fi + +# 3. Docker 이미지 빌드 +echo "" +echo "🔨 Docker 이미지 빌드 중..." +docker-compose -f docker-compose.synology.yml build --no-cache + +# 4. 기존 컨테이너 중지 +echo "" +echo "🛑 기존 컨테이너 중지 중..." +docker-compose -f docker-compose.synology.yml down 2>/dev/null || true + +# 5. 컨테이너 시작 +echo "" +echo "🚀 컨테이너 시작 중..." +docker-compose -f docker-compose.synology.yml up -d + +# 6. DB 초기화 대기 +echo "" +echo "⏳ 데이터베이스 초기화 대기 중 (30초)..." +sleep 30 + +# 7. 데이터베이스 복원 (백업 파일이 있는 경우) +BACKUP_FILE=$(ls -t backup_*.sql 2>/dev/null | head -1) +if [ -n "$BACKUP_FILE" ]; then + echo "" + echo "📦 데이터베이스 복원 중: $BACKUP_FILE" + docker exec -i tkfb_db mysql -u root -p"$MYSQL_ROOT_PASSWORD" < "$BACKUP_FILE" + echo "✅ 데이터베이스 복원 완료" +fi + +# 8. 상태 확인 +echo "" +echo "==========================================" +echo "📊 컨테이너 상태" +echo "==========================================" +docker-compose -f docker-compose.synology.yml ps + +echo "" +echo "==========================================" +echo "✅ 배포 완료!" +echo "==========================================" +echo "" +echo "접속 URL:" +echo " - Web UI: http://localhost:80" +echo " - API: http://localhost:3005" +echo " - phpMyAdmin: http://localhost:8080" +echo "" +echo "Cloudflare Tunnel 설정 시:" +echo " - 외부 접속: https://your-domain.com" +echo "" diff --git a/deploy/docker-compose.synology.yml b/deploy/docker-compose.synology.yml new file mode 100644 index 0000000..6adf764 --- /dev/null +++ b/deploy/docker-compose.synology.yml @@ -0,0 +1,150 @@ +version: "3.8" + +services: + # MariaDB 데이터베이스 + db: + image: mariadb:10.9 + container_name: tkfb_db + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE:-hyungi} + - MYSQL_USER=${MYSQL_USER:-hyungi_user} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + volumes: + - db_data:/var/lib/mysql + - ./init-db:/docker-entrypoint-initdb.d + ports: + - "3306:3306" + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + timeout: 20s + retries: 10 + networks: + - tkfb_network + + # Node.js API 서버 + api: + build: + context: ./api.hyungi.net + dockerfile: Dockerfile + container_name: tkfb_api + env_file: + - ./.env + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + restart: unless-stopped + ports: + - "3005:3005" + environment: + - NODE_ENV=production + - PORT=3005 + - DB_HOST=db + - DB_PORT=3306 + - DB_USER=${MYSQL_USER:-hyungi_user} + - DB_PASSWORD=${MYSQL_PASSWORD} + - DB_NAME=${MYSQL_DATABASE:-hyungi} + - DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - JWT_SECRET=${JWT_SECRET} + - JWT_EXPIRES_IN=${JWT_EXPIRES_IN:-7d} + - JWT_REFRESH_SECRET=${JWT_REFRESH_SECRET} + - JWT_REFRESH_EXPIRES_IN=${JWT_REFRESH_EXPIRES_IN:-30d} + - REDIS_HOST=redis + - REDIS_PORT=6379 + - WEATHER_API_URL=${WEATHER_API_URL:-} + - WEATHER_API_KEY=${WEATHER_API_KEY:-} + volumes: + - ./api.hyungi.net/uploads:/usr/src/app/uploads + - ./api.hyungi.net/logs:/usr/src/app/logs + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + networks: + - tkfb_network + + # Web UI (Nginx) + web: + build: + context: ./web-ui + dockerfile: Dockerfile + container_name: tkfb_web + restart: unless-stopped + ports: + - "80:80" + volumes: + - ./web-ui:/usr/share/nginx/html:ro + depends_on: + - api + networks: + - tkfb_network + + # FastAPI Bridge + fastapi: + build: + context: ./fastapi-bridge + dockerfile: Dockerfile + container_name: tkfb_fastapi + restart: unless-stopped + ports: + - "8000:8000" + environment: + - API_BASE_URL=http://api:3005 + depends_on: + - api + networks: + - tkfb_network + + # Redis Cache + redis: + image: redis:6-alpine + container_name: tkfb_redis + restart: unless-stopped + expose: + - "6379" + networks: + - tkfb_network + + # Cloudflare Tunnel + cloudflared: + image: cloudflare/cloudflared:latest + container_name: tkfb_cloudflared + restart: unless-stopped + command: tunnel --no-autoupdate run + environment: + - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN} + depends_on: + - web + - api + networks: + - tkfb_network + + # phpMyAdmin (선택사항 - 보안상 제거 권장) + phpmyadmin: + image: phpmyadmin/phpmyadmin:latest + container_name: tkfb_phpmyadmin + depends_on: + - db + restart: unless-stopped + ports: + - "8080:80" + environment: + - PMA_HOST=db + - PMA_USER=root + - PMA_PASSWORD=${MYSQL_ROOT_PASSWORD} + - UPLOAD_LIMIT=50M + networks: + - tkfb_network + +volumes: + db_data: + driver: local + +networks: + tkfb_network: + driver: bridge + name: tkfb_network diff --git a/deploy/package.sh b/deploy/package.sh new file mode 100755 index 0000000..bb53dd9 --- /dev/null +++ b/deploy/package.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# ============================================================================= +# 배포 패키지 생성 스크립트 +# ============================================================================= + +set -e +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_DIR="$(dirname "$SCRIPT_DIR")" +DEPLOY_DIR="$SCRIPT_DIR" +PACKAGE_DIR="$DEPLOY_DIR/tkfb-package" + +echo "==========================================" +echo "배포 패키지 생성" +echo "==========================================" + +# 기존 패키지 삭제 +rm -rf "$PACKAGE_DIR" +mkdir -p "$PACKAGE_DIR" + +# 1. Docker 설정 파일 +echo "📦 Docker 설정 복사..." +cp "$DEPLOY_DIR/docker-compose.synology.yml" "$PACKAGE_DIR/docker-compose.yml" +cp "$DEPLOY_DIR/.env.synology" "$PACKAGE_DIR/.env.example" +cp "$DEPLOY_DIR/deploy.sh" "$PACKAGE_DIR/" +cp "$DEPLOY_DIR/README.md" "$PACKAGE_DIR/" + +# 2. 데이터베이스 백업 +echo "📦 DB 백업 복사..." +cp "$DEPLOY_DIR"/backup_*.sql "$PACKAGE_DIR/" 2>/dev/null || echo "⚠️ DB 백업 파일 없음" + +# 3. 소스 코드 +echo "📦 소스 코드 복사..." + +# API +mkdir -p "$PACKAGE_DIR/api.hyungi.net" +rsync -a --exclude='node_modules' --exclude='logs/*' --exclude='.git' \ + "$PROJECT_DIR/api.hyungi.net/" "$PACKAGE_DIR/api.hyungi.net/" + +# Web UI +mkdir -p "$PACKAGE_DIR/web-ui" +rsync -a --exclude='.git' \ + "$PROJECT_DIR/web-ui/" "$PACKAGE_DIR/web-ui/" +# 프로덕션 config 복사 +cp "$DEPLOY_DIR/web-ui-config.js" "$PACKAGE_DIR/web-ui/js/config.js" + +# FastAPI +mkdir -p "$PACKAGE_DIR/fastapi-bridge" +rsync -a --exclude='__pycache__' --exclude='.git' --exclude='venv' \ + "$PROJECT_DIR/fastapi-bridge/" "$PACKAGE_DIR/fastapi-bridge/" + +# 4. init-db 폴더 생성 (초기 스키마용) +mkdir -p "$PACKAGE_DIR/init-db" +echo "-- 초기 데이터베이스 생성 완료 시 실행됨" > "$PACKAGE_DIR/init-db/README.txt" + +# 5. 압축 +echo "📦 압축 중..." +cd "$DEPLOY_DIR" +TIMESTAMP=$(date +%Y%m%d_%H%M%S) +tar -czf "tkfb-deploy-$TIMESTAMP.tar.gz" -C "$DEPLOY_DIR" tkfb-package + +# 크기 확인 +echo "" +echo "==========================================" +echo "✅ 패키지 생성 완료!" +echo "==========================================" +ls -lh "$DEPLOY_DIR/tkfb-deploy-$TIMESTAMP.tar.gz" +echo "" +echo "파일: $DEPLOY_DIR/tkfb-deploy-$TIMESTAMP.tar.gz" +echo "" +echo "Synology NAS로 전송:" +echo " scp $DEPLOY_DIR/tkfb-deploy-$TIMESTAMP.tar.gz admin@nas:/volume1/docker/" diff --git a/deploy/tkfb-package/.env.example b/deploy/tkfb-package/.env.example new file mode 100644 index 0000000..b1cd8fb --- /dev/null +++ b/deploy/tkfb-package/.env.example @@ -0,0 +1,34 @@ +# ============================================================================= +# Synology NAS 배포용 환경 변수 +# ============================================================================= + +# 데이터베이스 설정 +MYSQL_ROOT_PASSWORD=변경필수_강력한비밀번호 +MYSQL_DATABASE=hyungi +MYSQL_USER=hyungi_user +MYSQL_PASSWORD=변경필수_강력한비밀번호 + +# API 서버 설정 +NODE_ENV=production +PORT=3005 +DB_HOST=db +DB_PORT=3306 +DB_USER=hyungi_user +DB_PASSWORD=변경필수_강력한비밀번호 +DB_NAME=hyungi + +# JWT 인증 설정 (새로 생성 권장: openssl rand -base64 32) +JWT_SECRET=변경필수_최소32자이상_랜덤문자열 +JWT_EXPIRES_IN=7d +JWT_REFRESH_SECRET=변경필수_최소32자이상_랜덤문자열 +JWT_REFRESH_EXPIRES_IN=30d + +# FastAPI 설정 +API_BASE_URL=http://api:3005 + +# Cloudflare Tunnel 토큰 (Cloudflare 대시보드에서 발급) +CLOUDFLARE_TUNNEL_TOKEN=여기에_터널_토큰_입력 + +# 기상청 API (선택사항) +WEATHER_API_URL=https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0 +WEATHER_API_KEY= diff --git a/deploy/tkfb-package/README.md b/deploy/tkfb-package/README.md new file mode 100644 index 0000000..cbc692a --- /dev/null +++ b/deploy/tkfb-package/README.md @@ -0,0 +1,137 @@ +# TK-FB-Project Synology NAS 배포 가이드 + +## 사전 준비 + +### 1. Synology NAS 요구사항 +- DSM 7.0 이상 +- Docker 패키지 설치 +- 최소 4GB RAM 권장 +- 10GB 이상 저장공간 + +### 2. Cloudflare Tunnel 설정 + +1. **Cloudflare 대시보드 접속** + - https://dash.cloudflare.com 로그인 + - Zero Trust > Access > Tunnels 이동 + +2. **터널 생성** + - "Create a tunnel" 클릭 + - 이름 입력 (예: tkfb-nas) + - 환경: Docker 선택 + - 표시되는 토큰을 `.env` 파일의 `CLOUDFLARE_TUNNEL_TOKEN`에 입력 + +3. **Public hostname 설정** + - 터널 설정에서 "Public Hostnames" 추가 + + | Subdomain | Domain | Service | + |-----------|--------|---------| + | tkfb | yourdomain.com | http://web:80 | + | api.tkfb | yourdomain.com | http://api:3005 | + +## 배포 순서 + +### 1. 파일 전송 +Synology NAS의 docker 폴더에 다음 파일들을 업로드: + +``` +/volume1/docker/tkfb/ +├── docker-compose.synology.yml (→ docker-compose.yml로 이름 변경) +├── .env (→ .env.synology 복사 후 수정) +├── backup_YYYYMMDD_HHMMSS.sql +├── api.hyungi.net/ +├── web-ui/ +└── fastapi-bridge/ +``` + +### 2. 환경 변수 설정 +```bash +cd /volume1/docker/tkfb +cp .env.synology .env +# .env 파일 편집하여 비밀번호, 토큰 등 수정 +``` + +### 3. Docker Compose 실행 +```bash +# SSH로 NAS 접속 후 +cd /volume1/docker/tkfb + +# 이미지 빌드 및 시작 +docker-compose up -d --build + +# 로그 확인 +docker-compose logs -f +``` + +### 4. 데이터베이스 복원 +```bash +# DB 컨테이너가 시작된 후 (약 30초 대기) +docker exec -i tkfb_db mysql -u root -p'비밀번호' < backup_YYYYMMDD_HHMMSS.sql +``` + +## 포트 설정 + +| 서비스 | 내부포트 | 외부포트 | 설명 | +|--------|----------|----------|------| +| web | 80 | 80 | Web UI | +| api | 3005 | 3005 | Node.js API | +| fastapi | 8000 | 8000 | FastAPI Bridge | +| db | 3306 | 3306 | MariaDB | +| phpmyadmin | 80 | 8080 | DB 관리도구 | + +## Cloudflare Tunnel 사용 시 + +Cloudflare Tunnel을 사용하면 포트 포워딩 없이 외부 접속이 가능합니다: +- 방화벽 포트 개방 불필요 +- 자동 HTTPS 인증서 +- DDoS 보호 + +### web-ui의 API 주소 변경 + +`web-ui/js/config.js` 또는 관련 설정 파일에서 API URL을 변경: + +```javascript +// 로컬 테스트 +const API_URL = 'http://localhost:3005'; + +// Cloudflare Tunnel 사용 시 +const API_URL = 'https://api.tkfb.yourdomain.com'; +``` + +## 문제 해결 + +### 1. 컨테이너 상태 확인 +```bash +docker-compose ps +docker-compose logs api # API 로그 +docker-compose logs db # DB 로그 +``` + +### 2. 데이터베이스 연결 오류 +```bash +# DB 컨테이너 재시작 +docker-compose restart db + +# DB 상태 확인 +docker exec tkfb_db mysqladmin -u root -p ping +``` + +### 3. 권한 오류 +```bash +# 볼륨 권한 설정 +chmod -R 755 /volume1/docker/tkfb +chown -R 1000:1000 /volume1/docker/tkfb/api.hyungi.net/uploads +``` + +## 업데이트 + +```bash +cd /volume1/docker/tkfb + +# 최신 코드 다운로드 후 +docker-compose down +docker-compose up -d --build + +# 캐시 포함 전체 재빌드 +docker-compose build --no-cache +docker-compose up -d +``` diff --git a/deploy/tkfb-package/api.hyungi.net/.dockerignore b/deploy/tkfb-package/api.hyungi.net/.dockerignore new file mode 100644 index 0000000..edd83c0 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/.dockerignore @@ -0,0 +1,4 @@ +node_modules +npm-debug.log +Dockerfile +.dockerignore \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/DEPLOY.md b/deploy/tkfb-package/api.hyungi.net/DEPLOY.md new file mode 100644 index 0000000..9f8a4b0 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/DEPLOY.md @@ -0,0 +1,199 @@ +# API 서버 배포 가이드 + +## 자동 배포 (권장) + +### 1. 배포 스크립트 실행 + +```bash +cd api.hyungi.net + +# 처음 한 번만: 실행 권한 부여 +chmod +x deploy.sh + +# 배포 실행 +./deploy.sh +``` + +배포 스크립트는 다음을 자동으로 처리합니다: +1. ✅ Git Pull +2. ✅ NPM Install (package.json 변경 시) +3. ✅ 데이터베이스 마이그레이션 (확인 후 실행) +4. ✅ PM2 서버 재시작 +5. ✅ 상태 확인 + +--- + +## 수동 배포 + +### 1. Git Pull +```bash +cd api.hyungi.net +git pull +``` + +### 2. 의존성 설치 (package.json 변경 시) +```bash +npm install +``` + +### 3. 데이터베이스 마이그레이션 + +⚠️ **중요**: 마이그레이션 전 데이터베이스 백업을 권장합니다! + +```bash +# 마이그레이션 실행 +npm run db:migrate + +# 마이그레이션 롤백 (문제 발생 시) +npm run db:rollback +``` + +### 4. PM2 서버 재시작 + +```bash +# 무중단 재시작 (권장) +pm2 reload ecosystem.config.js --env production + +# 또는 일반 재시작 +pm2 restart hyungi-api + +# 서버 중지 후 시작 +pm2 stop hyungi-api +pm2 start ecosystem.config.js --env production +``` + +--- + +## 배포 후 확인사항 + +### 1. 서버 상태 확인 +```bash +# PM2 프로세스 목록 +pm2 list + +# 실시간 로그 확인 +pm2 logs hyungi-api + +# 에러 로그만 확인 +pm2 logs hyungi-api --err +``` + +### 2. API 응답 확인 +```bash +# Health Check +curl http://localhost:20005/health + +# 또는 +curl http://api.hyungi.net/health +``` + +### 3. 마이그레이션 상태 확인 +```bash +# 현재 마이그레이션 버전 확인 +npx knex migrate:currentVersion --knexfile knexfile.js + +# 적용된 마이그레이션 목록 +npx knex migrate:list --knexfile knexfile.js +``` + +--- + +## 문제 해결 + +### 마이그레이션 실패 시 + +1. **에러 로그 확인** + ```bash + pm2 logs hyungi-api --err + ``` + +2. **마이그레이션 롤백** + ```bash + npm run db:rollback + ``` + +3. **특정 마이그레이션만 실행** + ```bash + npx knex migrate:up 20260119095549_add_worker_display_fields.js --knexfile knexfile.js + ``` + +### 서버 시작 실패 시 + +1. **포트 충돌 확인** + ```bash + lsof -i :20005 + ``` + +2. **PM2 프로세스 완전 삭제 후 재시작** + ```bash + pm2 delete hyungi-api + pm2 start ecosystem.config.js --env production + ``` + +3. **환경변수 확인** + ```bash + cat .env + ``` + +--- + +## 환경별 배포 + +### Development (개발) +```bash +NODE_ENV=development npm run db:migrate +pm2 reload ecosystem.config.js --env development +``` + +### Production (운영) +```bash +NODE_ENV=production npm run db:migrate +pm2 reload ecosystem.config.js --env production +``` + +--- + +## 데이터베이스 백업 + +### 백업 생성 +```bash +# MySQL 백업 +mysqldump -h DB_HOST -u DB_USER -p DB_NAME > backup_$(date +%Y%m%d_%H%M%S).sql +``` + +### 백업 복구 +```bash +mysql -h DB_HOST -u DB_USER -p DB_NAME < backup_20260119_120000.sql +``` + +--- + +## CI/CD 자동화 (향후 개선안) + +GitHub Actions 또는 GitLab CI/CD를 사용한 자동 배포: + +```yaml +# .github/workflows/deploy.yml 예시 +name: Deploy to Production + +on: + push: + branches: [ master ] + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: SSH and Deploy + run: | + ssh user@server 'cd /path/to/api.hyungi.net && ./deploy.sh' +``` + +--- + +## 참고사항 + +- **마이그레이션은 한 방향으로만 진행** (forward-only) +- **rollback은 개발 환경에서만 사용 권장** +- **운영 환경에서는 반드시 백업 후 마이그레이션** +- **PM2 reload는 무중단 재시작** (downtime 없음) diff --git a/deploy/tkfb-package/api.hyungi.net/Dockerfile b/deploy/tkfb-package/api.hyungi.net/Dockerfile new file mode 100644 index 0000000..5ce8317 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/Dockerfile @@ -0,0 +1,33 @@ +# Node.js 공식 이미지 사용 +FROM node:18-alpine + +# 작업 디렉토리 설정 +WORKDIR /usr/src/app + +# 패키지 파일 복사 (캐싱 최적화) +COPY package*.json ./ + +# 프로덕션 의존성만 설치 +RUN npm ci --only=production + +# 앱 소스 복사 +COPY . . + +# 로그 디렉토리 생성 +RUN mkdir -p logs uploads + +# 실행 권한 설정 +RUN chown -R node:node /usr/src/app + +# 보안을 위해 non-root 사용자로 실행 +USER node + +# 포트 노출 +EXPOSE 3005 + +# 헬스체크 추가 +HEALTHCHECK --interval=30s --timeout=3s --start-period=40s --retries=3 \ + CMD node -e "require('http').get('http://localhost:3005/api/health', (res) => { process.exit(res.statusCode === 200 ? 0 : 1); })" + +# 앱 시작 +CMD ["node", "index.js"] \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/config/cors.js b/deploy/tkfb-package/api.hyungi.net/config/cors.js new file mode 100644 index 0000000..a6ba58f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/config/cors.js @@ -0,0 +1,89 @@ +/** + * CORS 설정 + * + * Cross-Origin Resource Sharing 설정 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const logger = require('../utils/logger'); + +/** + * 허용된 Origin 목록 + */ +const allowedOrigins = [ + 'http://localhost:20000', // 웹 UI + 'http://localhost:3005', // API 서버 + 'http://localhost:3000', // 개발 포트 + 'http://127.0.0.1:20000', // 로컬호스트 대체 + 'http://127.0.0.1:3005', + 'http://127.0.0.1:3000' +]; + +/** + * CORS 설정 옵션 + */ +const corsOptions = { + /** + * Origin 검증 함수 + */ + origin: function (origin, callback) { + // Origin이 없는 경우 (직접 접근, Postman 등) + if (!origin) { + logger.debug('CORS: Origin 없음 - 허용'); + return callback(null, true); + } + + // 허용된 Origin 확인 + if (allowedOrigins.includes(origin)) { + logger.debug('CORS: 허용된 Origin', { origin }); + return callback(null, true); + } + + // 개발 환경에서는 모든 localhost 허용 + if (process.env.NODE_ENV === 'development') { + if (origin.includes('localhost') || origin.includes('127.0.0.1')) { + logger.debug('CORS: 로컬호스트 허용 (개발 모드)', { origin }); + return callback(null, true); + } + } + + // 로컬 네트워크 IP 자동 허용 (192.168.x.x) + if (origin.match(/^http:\/\/192\.168\.\d+\.\d+(:\d+)?$/)) { + logger.debug('CORS: 로컬 네트워크 IP 허용', { origin }); + return callback(null, true); + } + + // 차단 + logger.warn('CORS: 차단된 Origin', { origin }); + callback(new Error(`CORS 정책에 의해 차단됨: ${origin}`)); + }, + + /** + * 인증 정보 포함 허용 + */ + credentials: true, + + /** + * 허용된 HTTP 메소드 + */ + methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'], + + /** + * 허용된 헤더 + */ + allowedHeaders: ['Content-Type', 'Authorization', 'X-Requested-With'], + + /** + * 노출할 헤더 + */ + exposedHeaders: ['Content-Range', 'X-Content-Range'], + + /** + * Preflight 요청 캐시 시간 (초) + */ + maxAge: 86400 // 24시간 +}; + +module.exports = corsOptions; diff --git a/deploy/tkfb-package/api.hyungi.net/config/database.js b/deploy/tkfb-package/api.hyungi.net/config/database.js new file mode 100644 index 0000000..f7200ac --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/config/database.js @@ -0,0 +1,79 @@ +/** + * 데이터베이스 연결 설정 + * + * MySQL/MariaDB 커넥션 풀 관리 + * - 환경 변수 기반 설정 + * - 자동 재연결 (최대 5회 재시도) + * - UTF-8MB4 문자셋 지원 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +require('dotenv').config(); +const mysql = require('mysql2/promise'); +const retry = require('async-retry'); +const logger = require('../utils/logger'); + +let pool = null; + +async function initPool() { + if (pool) return pool; + + const { + DB_HOST, DB_PORT, DB_USER, + DB_PASSWORD, DB_NAME, + DB_SOCKET, DB_CONN_LIMIT = '10' + } = process.env; + + if (!DB_USER || !DB_PASSWORD || !DB_NAME) { + throw new Error('필수 환경변수(DB_USER, DB_PASSWORD, DB_NAME)가 없습니다.'); + } + if (!DB_SOCKET && !DB_HOST) { + throw new Error('DB_SOCKET이 없으면 DB_HOST가 반드시 필요합니다.'); + } + + await retry(async () => { + const config = { + user: DB_USER, + password: DB_PASSWORD, + database: DB_NAME, + waitForConnections: true, + connectionLimit: parseInt(DB_CONN_LIMIT, 10), + queueLimit: 0, + charset: 'utf8mb4' + }; + if (DB_SOCKET) { + config.socketPath = DB_SOCKET; + } else { + config.host = DB_HOST; + config.port = parseInt(DB_PORT, 10); + } + + pool = mysql.createPool(config); + + // 첫 연결 검증 + const conn = await pool.getConnection(); + await conn.query('SET NAMES utf8mb4'); + conn.release(); + + const connectionInfo = DB_SOCKET ? `socket=${DB_SOCKET}` : `${DB_HOST}:${DB_PORT}`; + logger.info('MariaDB 연결 성공', { + connection: connectionInfo, + database: DB_NAME, + connectionLimit: parseInt(DB_CONN_LIMIT, 10) + }); + }, { + retries: 5, + factor: 2, + minTimeout: 1000 + }); + + return pool; +} + +async function getDb() { + return initPool(); +} + +module.exports = { getDb }; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/config/middleware.js b/deploy/tkfb-package/api.hyungi.net/config/middleware.js new file mode 100644 index 0000000..83b8eb6 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/config/middleware.js @@ -0,0 +1,115 @@ +/** + * 미들웨어 설정 + * + * Express 애플리케이션의 모든 미들웨어를 등록하는 중앙화된 설정 파일 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const express = require('express'); +const cors = require('cors'); +const helmet = require('helmet'); +const compression = require('compression'); +const path = require('path'); +const helmetOptions = require('./security'); +const corsOptions = require('./cors'); +const { responseMiddleware } = require('../utils/responseFormatter'); +const logger = require('../utils/logger'); + +/** + * 모든 미들웨어를 Express 앱에 등록 + * @param {Express.Application} app - Express 애플리케이션 인스턴스 + */ +function setupMiddlewares(app) { + // 보안 헤더 설정 (Helmet) + app.use(helmet(helmetOptions)); + + // 성능 최적화 - Compression + app.use(compression({ + filter: (req, res) => { + if (req.headers['x-no-compression']) { + return false; + } + return compression.filter(req, res); + }, + level: 6, // 압축 레벨 (1-9, 6이 기본값) + threshold: 1024 // 1KB 이상만 압축 + })); + + // 요청 바디 파싱 - 용량 제한 확장 + app.use(express.urlencoded({ extended: true, limit: '50mb' })); + app.use(express.json({ limit: '50mb' })); + + // 응답 포맷터 미들웨어 + app.use(responseMiddleware); + + // CORS 설정 + app.use(cors(corsOptions)); + + // 정적 파일 서빙 + app.use(express.static(path.join(__dirname, '../public'))); + app.use('/uploads', express.static(path.join(__dirname, '../uploads'))); + + // Rate Limiting - API 요청 제한 + const rateLimit = require('express-rate-limit'); + + // 일반 API 요청 제한 + const apiLimiter = rateLimit({ + windowMs: 15 * 60 * 1000, // 15분 + max: 1000, // IP당 최대 1000 요청 (일괄 처리 지원) + message: { + success: false, + error: '너무 많은 요청입니다. 잠시 후 다시 시도해주세요.', + code: 'RATE_LIMIT_EXCEEDED' + }, + standardHeaders: true, + legacyHeaders: false, + // 인증된 사용자는 더 많은 요청 허용 + skip: (req) => { + // Authorization 헤더가 있으면 Rate Limit 완화 + return req.headers.authorization && req.headers.authorization.startsWith('Bearer '); + } + }); + + // 로그인 시도 제한 (브루트포스 방지) + const loginLimiter = rateLimit({ + windowMs: 15 * 60 * 1000, // 15분 + max: 10, // IP당 최대 10회 로그인 시도 + message: { + success: false, + error: '로그인 시도 횟수를 초과했습니다. 15분 후 다시 시도해주세요.', + code: 'LOGIN_RATE_LIMIT_EXCEEDED' + }, + standardHeaders: true, + legacyHeaders: false + }); + + // Rate limiter 적용 + app.use('/api/', apiLimiter); + app.use('/api/auth/login', loginLimiter); + + logger.info('Rate Limiting 설정 완료'); + + // CSRF Protection (선택적 - 필요 시 주석 해제) + // const { verifyCsrfToken, getCsrfToken } = require('../middlewares/csrf'); + // + // CSRF 토큰 발급 엔드포인트 + // app.get('/api/csrf-token', getCsrfToken); + // + // CSRF 검증 미들웨어 (로그인 등 일부 경로 제외) + // app.use('/api/', verifyCsrfToken({ + // ignorePaths: [ + // '/api/auth/login', + // '/api/auth/register', + // '/api/health', + // '/api/csrf-token' + // ] + // })); + // + // logger.info('CSRF Protection 설정 완료'); + + logger.info('미들웨어 설정 완료'); +} + +module.exports = setupMiddlewares; diff --git a/deploy/tkfb-package/api.hyungi.net/config/routes.js b/deploy/tkfb-package/api.hyungi.net/config/routes.js new file mode 100644 index 0000000..f5cdb88 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/config/routes.js @@ -0,0 +1,192 @@ +/** + * 라우트 설정 + * + * 애플리케이션의 모든 라우트를 등록하는 중앙화된 설정 파일 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const swaggerUi = require('swagger-ui-express'); +const swaggerSpec = require('./swagger'); +const { verifyToken } = require('../middlewares/authMiddleware'); +const { activityLogger } = require('../middlewares/activityLogger'); +const logger = require('../utils/logger'); + +/** + * 모든 라우트를 Express 앱에 등록 + * @param {Express.Application} app - Express 애플리케이션 인스턴스 + */ +function setupRoutes(app) { + // 라우터 가져오기 + const authRoutes = require('../routes/authRoutes'); + const projectRoutes = require('../routes/projectRoutes'); + const workerRoutes = require('../routes/workerRoutes'); + const workReportRoutes = require('../routes/workReportRoutes'); + const toolsRoute = require('../routes/toolsRoute'); + const uploadRoutes = require('../routes/uploadRoutes'); + const uploadBgRoutes = require('../routes/uploadBgRoutes'); + const dailyIssueReportRoutes = require('../routes/dailyIssueReportRoutes'); + const issueTypeRoutes = require('../routes/issueTypeRoutes'); + const healthRoutes = require('../routes/healthRoutes'); + const dailyWorkReportRoutes = require('../routes/dailyWorkReportRoutes'); + const workAnalysisRoutes = require('../routes/workAnalysisRoutes'); + const analysisRoutes = require('../routes/analysisRoutes'); + const systemRoutes = require('../routes/systemRoutes'); + const performanceRoutes = require('../routes/performanceRoutes'); + const userRoutes = require('../routes/userRoutes'); + const setupRoutes = require('../routes/setupRoutes'); + const workReportAnalysisRoutes = require('../routes/workReportAnalysisRoutes'); + const attendanceRoutes = require('../routes/attendanceRoutes'); + const monthlyStatusRoutes = require('../routes/monthlyStatusRoutes'); + const pageAccessRoutes = require('../routes/pageAccessRoutes'); + const workplaceRoutes = require('../routes/workplaceRoutes'); + const equipmentRoutes = require('../routes/equipmentRoutes'); + const taskRoutes = require('../routes/taskRoutes'); + const tbmRoutes = require('../routes/tbmRoutes'); + const vacationRequestRoutes = require('../routes/vacationRequestRoutes'); + const vacationTypeRoutes = require('../routes/vacationTypeRoutes'); + const vacationBalanceRoutes = require('../routes/vacationBalanceRoutes'); + const visitRequestRoutes = require('../routes/visitRequestRoutes'); + const workIssueRoutes = require('../routes/workIssueRoutes'); + const departmentRoutes = require('../routes/departmentRoutes'); + const patrolRoutes = require('../routes/patrolRoutes'); + const notificationRoutes = require('../routes/notificationRoutes'); + const notificationRecipientRoutes = require('../routes/notificationRecipientRoutes'); + + // Rate Limiters 설정 + const rateLimit = require('express-rate-limit'); + + const loginLimiter = rateLimit({ + windowMs: 15 * 60 * 1000, // 15분 + max: 5, // 최대 5회 + message: '너무 많은 로그인 시도가 있었습니다. 잠시 후 다시 시도해주세요.', + standardHeaders: true, + legacyHeaders: false + }); + + const apiLimiter = rateLimit({ + windowMs: 1 * 60 * 1000, // 1분 + max: 1000, // 최대 1000회 (기존 100회에서 대폭 증가) + message: 'API 요청 한도를 초과했습니다. 잠시 후 다시 시도해주세요.', + standardHeaders: true, + legacyHeaders: false, + // 관리자 및 시스템 계정은 rate limit 제외 + skip: (req) => { + // 인증된 사용자 정보 확인 + if (req.user && (req.user.access_level === 'system' || req.user.access_level === 'admin')) { + return true; // rate limit 건너뛰기 + } + return false; + } + }); + + // 모든 API 요청에 활동 로거 적용 + app.use('/api/*', activityLogger); + + // 인증 불필요 경로 - 로그인 + app.use('/api/auth', loginLimiter, authRoutes); + + // DB 설정 라우트 (개발용) + app.use('/api/setup', setupRoutes); + + // Health check + app.use('/api/health', healthRoutes); + + // 인증이 필요 없는 공개 경로 목록 + const publicPaths = [ + '/api/auth/login', + '/api/auth/refresh-token', + '/api/auth/check-password-strength', + '/api/health', + '/api/ping', + '/api/status', + '/api/setup/setup-attendance-db', + '/api/setup/setup-monthly-status', + '/api/setup/add-overtime-warning', + '/api/setup/migrate-existing-data', + '/api/setup/check-data-status', + '/api/monthly-status/calendar', + '/api/monthly-status/daily-details', + '/api/migrate-work-type-id', // 임시 마이그레이션 - 실행 후 삭제! + '/api/diagnose-work-type-id', // 임시 진단 - 실행 후 삭제! + '/api/test-analysis' // 임시 분석 테스트 - 실행 후 삭제! + ]; + + // 인증 미들웨어 - 공개 경로를 제외한 모든 API (rate limiter보다 먼저 실행) + app.use('/api/*', (req, res, next) => { + const isPublicPath = publicPaths.some(path => { + return req.originalUrl === path || + req.originalUrl.startsWith(path + '?') || + req.originalUrl.startsWith(path + '/'); + }); + + if (isPublicPath) { + logger.debug('공개 경로 허용', { url: req.originalUrl }); + return next(); + } + + logger.debug('인증 필요 경로', { url: req.originalUrl }); + verifyToken(req, res, next); + }); + + // 인증 후 일반 API에 속도 제한 적용 (인증된 사용자 정보로 skip 판단) + app.use('/api/', apiLimiter); + + // 인증된 사용자만 접근 가능한 라우트들 + app.use('/api/issue-reports', dailyIssueReportRoutes); + app.use('/api/issue-types', issueTypeRoutes); + app.use('/api/workers', workerRoutes); + 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', workReportAnalysisRoutes); + app.use('/api/attendance', attendanceRoutes); + app.use('/api/monthly-status', monthlyStatusRoutes); + app.use('/api/workreports', workReportRoutes); + app.use('/api/system', systemRoutes); + app.use('/api/uploads', uploadRoutes); + app.use('/api/performance', performanceRoutes); + app.use('/api/projects', projectRoutes); + app.use('/api/tools', toolsRoute); + app.use('/api/users', userRoutes); + app.use('/api/workplaces', workplaceRoutes); + app.use('/api/equipments', equipmentRoutes); + app.use('/api/tasks', taskRoutes); + app.use('/api/vacation-requests', vacationRequestRoutes); // 휴가 신청 관리 + app.use('/api/vacation-types', vacationTypeRoutes); // 휴가 유형 관리 + app.use('/api/vacation-balances', vacationBalanceRoutes); // 휴가 잔액 관리 + app.use('/api/workplace-visits', visitRequestRoutes); // 출입 신청 및 안전교육 관리 + app.use('/api', pageAccessRoutes); // 페이지 접근 권한 관리 + app.use('/api/tbm', tbmRoutes); // TBM 시스템 + app.use('/api/work-issues', workIssueRoutes); // 문제 신고 시스템 + app.use('/api/departments', departmentRoutes); // 부서 관리 + app.use('/api/patrol', patrolRoutes); // 일일순회점검 시스템 + app.use('/api/notifications', notificationRoutes); // 알림 시스템 + app.use('/api/notification-recipients', notificationRecipientRoutes); // 알림 수신자 설정 + app.use('/api', uploadBgRoutes); + + // Swagger API 문서 + app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec, { + explorer: true, + customCss: '.swagger-ui .topbar { display: none }', + customSiteTitle: 'TK Work Management API', + swaggerOptions: { + persistAuthorization: true, + displayRequestDuration: true, + docExpansion: 'none', + filter: true, + showExtensions: true, + showCommonExtensions: true + } + })); + + app.get('/api-docs.json', (req, res) => { + res.setHeader('Content-Type', 'application/json'); + res.send(swaggerSpec); + }); + + logger.info('라우트 설정 완료'); +} + +module.exports = setupRoutes; diff --git a/deploy/tkfb-package/api.hyungi.net/config/security.js b/deploy/tkfb-package/api.hyungi.net/config/security.js new file mode 100644 index 0000000..e58037e --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/config/security.js @@ -0,0 +1,101 @@ +/** + * 보안 설정 (Helmet) + * + * HTTP 헤더 보안 설정 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +/** + * Helmet 보안 설정 옵션 + */ +const helmetOptions = { + /** + * Content Security Policy + * XSS 공격 방지 + */ + contentSecurityPolicy: { + directives: { + defaultSrc: ["'self'"], + styleSrc: ["'self'", "'unsafe-inline'", "https://fonts.googleapis.com"], + scriptSrc: ["'self'", "'unsafe-inline'", "'unsafe-eval'"], // 개발 중 unsafe-eval 허용 + imgSrc: ["'self'", "data:", "https:", "blob:"], + fontSrc: ["'self'", "https://fonts.gstatic.com"], + connectSrc: ["'self'", "https://api.technicalkorea.com"], + frameSrc: ["'none'"], + objectSrc: ["'none'"] + } + }, + + /** + * HTTP Strict Transport Security (HSTS) + * HTTPS 강제 사용 + */ + hsts: { + maxAge: 31536000, // 1년 + includeSubDomains: true, + preload: true + }, + + /** + * X-Frame-Options + * 클릭재킹 공격 방지 + */ + frameguard: { + action: 'deny' + }, + + /** + * X-Content-Type-Options + * MIME 타입 스니핑 방지 + */ + noSniff: true, + + /** + * X-XSS-Protection + * XSS 필터 활성화 + */ + xssFilter: true, + + /** + * Referrer-Policy + * 리퍼러 정보 제어 + */ + referrerPolicy: { + policy: 'strict-origin-when-cross-origin' + }, + + /** + * X-DNS-Prefetch-Control + * DNS prefetching 제어 + */ + dnsPrefetchControl: { + allow: false + }, + + /** + * X-Download-Options + * IE8+ 다운로드 옵션 + */ + ieNoOpen: true, + + /** + * X-Permitted-Cross-Domain-Policies + * Adobe 제품의 크로스 도메인 정책 + */ + permittedCrossDomainPolicies: { + permittedPolicies: 'none' + }, + + /** + * Cross-Origin-Resource-Policy + * 크로스 오리진 리소스 공유 설정 + * 이미지 등 정적 파일을 다른 포트에서 로드할 수 있도록 허용 + */ + crossOriginResourcePolicy: { + policy: 'cross-origin' + } +}; + +module.exports = helmetOptions; diff --git a/deploy/tkfb-package/api.hyungi.net/config/swagger.js b/deploy/tkfb-package/api.hyungi.net/config/swagger.js new file mode 100644 index 0000000..ce2621a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/config/swagger.js @@ -0,0 +1,497 @@ +// config/swagger.js - Swagger/OpenAPI 설정 + +const swaggerJSDoc = require('swagger-jsdoc'); + +const swaggerDefinition = { + openapi: '3.0.0', + info: { + title: 'Technical Korea Work Management API', + version: '2.1.0', + description: '보안이 강화된 생산관리 시스템 API - 작업자, 프로젝트, 일일 작업 보고서 관리', + contact: { + name: 'Technical Korea', + email: 'admin@technicalkorea.com' + }, + license: { + name: 'MIT', + url: 'https://opensource.org/licenses/MIT' + } + }, + servers: [ + { + url: 'http://localhost:20005', + description: '개발 서버 (Docker)' + }, + { + url: 'http://localhost:3005', + description: '로컬 개발 서버' + } + ], + components: { + securitySchemes: { + bearerAuth: { + type: 'http', + scheme: 'bearer', + bearerFormat: 'JWT', + description: 'JWT 토큰을 사용한 인증. 로그인 후 받은 토큰을 "Bearer {token}" 형식으로 입력하세요.' + } + }, + schemas: { + // 공통 응답 스키마 + SuccessResponse: { + type: 'object', + properties: { + success: { + type: 'boolean', + example: true + }, + message: { + type: 'string', + example: '요청이 성공적으로 처리되었습니다.' + }, + data: { + type: 'object', + description: '응답 데이터' + }, + timestamp: { + type: 'string', + format: 'date-time', + example: '2024-01-01T00:00:00.000Z' + } + } + }, + ErrorResponse: { + type: 'object', + properties: { + success: { + type: 'boolean', + example: false + }, + error: { + type: 'string', + example: '오류 메시지' + }, + timestamp: { + type: 'string', + format: 'date-time', + example: '2024-01-01T00:00:00.000Z' + } + } + }, + PaginatedResponse: { + type: 'object', + properties: { + success: { + type: 'boolean', + example: true + }, + message: { + type: 'string', + example: '데이터 조회 성공' + }, + data: { + type: 'array', + items: { + type: 'object' + } + }, + meta: { + type: 'object', + properties: { + pagination: { + type: 'object', + properties: { + currentPage: { type: 'integer', example: 1 }, + totalPages: { type: 'integer', example: 10 }, + totalCount: { type: 'integer', example: 100 }, + limit: { type: 'integer', example: 10 }, + hasNextPage: { type: 'boolean', example: true }, + hasPrevPage: { type: 'boolean', example: false } + } + } + } + }, + timestamp: { + type: 'string', + format: 'date-time' + } + } + }, + + // 사용자 관련 스키마 + User: { + type: 'object', + properties: { + user_id: { + type: 'integer', + example: 1, + description: '사용자 ID' + }, + username: { + type: 'string', + example: 'admin', + description: '사용자명' + }, + name: { + type: 'string', + example: '관리자', + description: '실명' + }, + email: { + type: 'string', + format: 'email', + example: 'admin@technicalkorea.com', + description: '이메일 주소' + }, + role: { + type: 'string', + example: 'admin', + description: '역할' + }, + access_level: { + type: 'string', + enum: ['user', 'admin', 'system'], + example: 'admin', + description: '접근 권한 레벨' + }, + worker_id: { + type: 'integer', + example: 1, + description: '연결된 작업자 ID' + }, + is_active: { + type: 'boolean', + example: true, + description: '활성 상태' + }, + last_login_at: { + type: 'string', + format: 'date-time', + description: '마지막 로그인 시간' + }, + created_at: { + type: 'string', + format: 'date-time', + description: '생성 시간' + }, + updated_at: { + type: 'string', + format: 'date-time', + description: '수정 시간' + } + } + }, + + // 작업자 관련 스키마 + Worker: { + type: 'object', + properties: { + worker_id: { + type: 'integer', + example: 1, + description: '작업자 ID' + }, + worker_name: { + type: 'string', + example: '김철수', + description: '작업자 이름' + }, + position: { + type: 'string', + example: '용접공', + description: '직책' + }, + department: { + type: 'string', + example: '생산부', + description: '부서' + }, + phone: { + type: 'string', + example: '010-1234-5678', + description: '전화번호' + }, + email: { + type: 'string', + format: 'email', + example: 'worker@technicalkorea.com', + description: '이메일' + }, + hire_date: { + type: 'string', + format: 'date', + example: '2024-01-01', + description: '입사일' + }, + is_active: { + type: 'boolean', + example: true, + description: '활성 상태' + }, + created_at: { + type: 'string', + format: 'date-time', + description: '생성 시간' + }, + updated_at: { + type: 'string', + format: 'date-time', + description: '수정 시간' + } + } + }, + + // 프로젝트 관련 스키마 + Project: { + type: 'object', + properties: { + project_id: { + type: 'integer', + example: 1, + description: '프로젝트 ID' + }, + project_name: { + type: 'string', + example: '신규 플랜트 건설', + description: '프로젝트 이름' + }, + description: { + type: 'string', + example: '대형 화학 플랜트 건설 프로젝트', + description: '프로젝트 설명' + }, + start_date: { + type: 'string', + format: 'date', + example: '2024-01-01', + description: '시작일' + }, + end_date: { + type: 'string', + format: 'date', + example: '2024-12-31', + description: '종료일' + }, + status: { + type: 'string', + example: 'active', + description: '프로젝트 상태' + }, + created_at: { + type: 'string', + format: 'date-time', + description: '생성 시간' + }, + updated_at: { + type: 'string', + format: 'date-time', + description: '수정 시간' + } + } + }, + + // 작업 관련 스키마 + Task: { + type: 'object', + properties: { + task_id: { + type: 'integer', + example: 1, + description: '작업 ID' + }, + task_name: { + type: 'string', + example: '용접 작업', + description: '작업 이름' + }, + description: { + type: 'string', + example: '파이프 용접 작업', + description: '작업 설명' + }, + category: { + type: 'string', + example: '용접', + description: '작업 카테고리' + }, + is_active: { + type: 'boolean', + example: true, + description: '활성 상태' + }, + created_at: { + type: 'string', + format: 'date-time', + description: '생성 시간' + }, + updated_at: { + type: 'string', + format: 'date-time', + description: '수정 시간' + } + } + }, + + // 일일 작업 보고서 관련 스키마 + DailyWorkReport: { + type: 'object', + properties: { + id: { + type: 'integer', + example: 1, + description: '보고서 ID' + }, + report_date: { + type: 'string', + format: 'date', + example: '2024-01-01', + description: '작업 날짜' + }, + worker_id: { + type: 'integer', + example: 1, + description: '작업자 ID' + }, + project_id: { + type: 'integer', + example: 1, + description: '프로젝트 ID' + }, + work_type_id: { + type: 'integer', + example: 1, + description: '작업 유형 ID' + }, + work_status_id: { + type: 'integer', + example: 1, + description: '작업 상태 ID (1:정규, 2:에러)' + }, + error_type_id: { + type: 'integer', + example: null, + description: '에러 유형 ID (에러일 때만)' + }, + work_hours: { + type: 'number', + format: 'decimal', + example: 8.5, + description: '작업 시간' + }, + created_by: { + type: 'integer', + example: 1, + description: '작성자 user_id' + }, + created_at: { + type: 'string', + format: 'date-time', + description: '생성 시간' + }, + updated_at: { + type: 'string', + format: 'date-time', + description: '수정 시간' + }, + // 조인된 데이터 + worker_name: { + type: 'string', + example: '김철수', + description: '작업자 이름' + }, + project_name: { + type: 'string', + example: '신규 플랜트 건설', + description: '프로젝트 이름' + }, + work_type_name: { + type: 'string', + example: '용접', + description: '작업 유형 이름' + }, + work_status_name: { + type: 'string', + example: '정규', + description: '작업 상태 이름' + }, + error_type_name: { + type: 'string', + example: null, + description: '에러 유형 이름' + } + } + }, + + // 로그인 관련 스키마 + LoginRequest: { + type: 'object', + required: ['username', 'password'], + properties: { + username: { + type: 'string', + example: 'admin', + description: '사용자명' + }, + password: { + type: 'string', + example: 'password123', + description: '비밀번호' + } + } + }, + LoginResponse: { + type: 'object', + properties: { + success: { + type: 'boolean', + example: true + }, + message: { + type: 'string', + example: '로그인 성공' + }, + data: { + type: 'object', + properties: { + user: { + $ref: '#/components/schemas/User' + }, + token: { + type: 'string', + example: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', + description: 'JWT 토큰' + }, + redirectUrl: { + type: 'string', + example: '/pages/dashboard/group-leader.html', + description: '리다이렉트 URL' + } + } + }, + timestamp: { + type: 'string', + format: 'date-time' + } + } + } + } + }, + security: [ + { + bearerAuth: [] + } + ] +}; + +const options = { + definition: swaggerDefinition, + apis: [ + './routes/*.js', + './controllers/*.js', + './index.js' + ] +}; + +const swaggerSpec = swaggerJSDoc(options); + +module.exports = swaggerSpec; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/analysisController.js b/deploy/tkfb-package/api.hyungi.net/controllers/analysisController.js new file mode 100644 index 0000000..7d8bdf4 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/analysisController.js @@ -0,0 +1,29 @@ +/** + * 프로젝트 분석 컨트롤러 + * + * 기간별 프로젝트 분석 API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const analysisService = require('../services/analysisService'); +const { asyncHandler } = require('../middlewares/errorHandler'); + +/** + * 프로젝트 분석 데이터 조회 + */ +const getAnalysisData = asyncHandler(async (req, res) => { + const { startDate, endDate } = req.query; + const data = await analysisService.getAnalysisService(startDate, endDate); + + res.json({ + success: true, + data, + message: '분석 데이터 조회 성공' + }); +}); + +module.exports = { + getAnalysisData +}; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/attendanceController.js b/deploy/tkfb-package/api.hyungi.net/controllers/attendanceController.js new file mode 100644 index 0000000..124a4cd --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/attendanceController.js @@ -0,0 +1,212 @@ +/** + * 근태 관리 컨트롤러 + * + * 근태 기록 API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const attendanceService = require('../services/attendanceService'); +const { asyncHandler } = require('../middlewares/errorHandler'); + +/** + * 일일 근태 현황 조회 (대시보드용) + */ +const getDailyAttendanceStatus = asyncHandler(async (req, res) => { + const { date } = req.query; + const data = await attendanceService.getDailyAttendanceStatusService(date); + + res.json({ + success: true, + data, + message: '근태 현황을 성공적으로 조회했습니다' + }); +}); + +/** + * 일일 근태 기록 조회 + */ +const getDailyAttendanceRecords = asyncHandler(async (req, res) => { + const { date, worker_id } = req.query; + const data = await attendanceService.getDailyAttendanceRecordsService(date, worker_id); + + res.json({ + success: true, + data, + message: '근태 기록을 성공적으로 조회했습니다' + }); +}); + +/** + * 기간별 근태 기록 조회 (월별 조회용) + */ +const getAttendanceRecordsByRange = asyncHandler(async (req, res) => { + const { start_date, end_date, worker_id } = req.query; + const data = await attendanceService.getAttendanceRecordsByRangeService(start_date, end_date, worker_id); + + res.json({ + success: true, + data, + message: '근태 기록을 성공적으로 조회했습니다' + }); +}); + +/** + * 근태 기록 생성/업데이트 + */ +const upsertAttendanceRecord = asyncHandler(async (req, res) => { + const recordData = { + ...req.body, + created_by: req.user?.user_id || req.user?.id + }; + + const result = await attendanceService.upsertAttendanceRecordService(recordData); + + res.json({ + success: true, + data: result, + message: '근태 기록이 성공적으로 저장되었습니다' + }); +}); + +/** + * 휴가 처리 + */ +const processVacation = asyncHandler(async (req, res) => { + const vacationData = { + record_date: req.body.date, + worker_id: req.body.worker_id, + vacation_type_id: req.body.vacation_type, + created_by: req.user?.user_id || req.user?.id + }; + + const result = await attendanceService.processVacationService(vacationData); + + res.json({ + success: true, + data: result, + message: '휴가 처리가 성공적으로 완료되었습니다' + }); +}); + +/** + * 초과근무 승인 + */ +const approveOvertime = asyncHandler(async (req, res) => { + const overtimeData = { + record_date: req.body.date, + worker_id: req.body.worker_id, + overtime_approved: true, + approved_by: req.user?.user_id || req.user?.id + }; + + const result = await attendanceService.approveOvertimeService(overtimeData); + + res.json({ + success: true, + data: result, + message: '초과근무가 성공적으로 승인되었습니다' + }); +}); + +/** + * 근로 유형 목록 조회 + */ +const getAttendanceTypes = asyncHandler(async (req, res) => { + const data = await attendanceService.getAttendanceTypesService(); + + res.json({ + success: true, + data, + message: '근로 유형 목록을 성공적으로 조회했습니다' + }); +}); + +/** + * 휴가 유형 목록 조회 + */ +const getVacationTypes = asyncHandler(async (req, res) => { + const data = await attendanceService.getVacationTypesService(); + + res.json({ + success: true, + data, + message: '휴가 유형 목록을 성공적으로 조회했습니다' + }); +}); + +/** + * 작업자 휴가 잔여 조회 + */ +const getWorkerVacationBalance = asyncHandler(async (req, res) => { + const { worker_id } = req.params; + const data = await attendanceService.getWorkerVacationBalanceService(parseInt(worker_id)); + + res.json({ + success: true, + data, + message: '휴가 잔여 정보를 성공적으로 조회했습니다' + }); +}); + +/** + * 월별 근태 통계 + */ +const getMonthlyAttendanceStats = asyncHandler(async (req, res) => { + const { year, month, worker_id } = req.query; + const data = await attendanceService.getMonthlyAttendanceStatsService( + parseInt(year), + parseInt(month), + worker_id ? parseInt(worker_id) : null + ); + + res.json({ + success: true, + data, + message: '월별 근태 통계를 성공적으로 조회했습니다' + }); +}); + +/** + * 출근 체크 목록 조회 (아침용, 휴가 정보 포함) + */ +const getCheckinList = asyncHandler(async (req, res) => { + const { date } = req.query; + const data = await attendanceService.getCheckinListService(date); + + res.json({ + success: true, + data, + message: '출근 체크 목록을 성공적으로 조회했습니다' + }); +}); + +/** + * 출근 체크 저장 (일괄 처리) + */ +const saveCheckins = asyncHandler(async (req, res) => { + const { date, checkins } = req.body; // checkins: [{worker_id, is_present}, ...] + const result = await attendanceService.saveCheckinsService(date, checkins); + + res.json({ + success: true, + data: result, + message: '출근 체크가 성공적으로 저장되었습니다' + }); +}); + +module.exports = { + getDailyAttendanceStatus, + getDailyAttendanceRecords, + getAttendanceRecordsByRange, + upsertAttendanceRecord, + processVacation, + approveOvertime, + getAttendanceTypes, + getVacationTypes, + getWorkerVacationBalance, + getMonthlyAttendanceStats, + getCheckinList, + saveCheckins +}; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/authController.js b/deploy/tkfb-package/api.hyungi.net/controllers/authController.js new file mode 100644 index 0000000..adb2047 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/authController.js @@ -0,0 +1,161 @@ +const { getDb } = require('../dbPool'); +const bcrypt = require('bcryptjs'); +const jwt = require('jsonwebtoken'); +const authService = require('../services/auth.service'); +const { asyncHandler } = require('../utils/errorHandler'); +const { AuthenticationError, ValidationError } = require('../utils/errors'); +const { validateSchema, schemas } = require('../utils/validator'); + +const login = asyncHandler(async (req, res) => { + const { username, password } = req.body; + const ipAddress = req.ip || req.connection.remoteAddress; + const userAgent = req.headers['user-agent']; + + // 유효성 검사 + if (!username || !password) { + throw new ValidationError('사용자명과 비밀번호를 입력해주세요.'); + } + + const result = await authService.loginService(username, password, ipAddress, userAgent); + + if (!result.success) { + throw new AuthenticationError(result.error); + } + + // 로그인 성공 후, 메인 대시보드로 리다이렉트 + const user = result.data.user; + const redirectUrl = '/pages/dashboard.html'; // 메인 대시보드로 리다이렉트 + + // 새로운 응답 포맷터 사용 + res.auth(user, result.data.token, redirectUrl, '로그인 성공'); +}); + +// ✅ 사용자 등록 기능 추가 +const register = async (req, res) => { + try { + const { username, password, name, access_level, worker_id } = req.body; + const db = await getDb(); + + // 필수 필드 검증 + if (!username || !password || !name || !access_level) { + return res.status(400).json({ + success: false, + error: '필수 정보가 누락되었습니다.' + }); + } + + // 중복 아이디 확인 + const [existing] = await db.query( + 'SELECT user_id FROM users WHERE username = ?', + [username] + ); + + if (existing.length > 0) { + return res.status(409).json({ + success: false, + error: '이미 존재하는 아이디입니다.' + }); + } + + // 비밀번호 해시화 + const hashedPassword = await bcrypt.hash(password, 10); + + // role 설정 (access_level에 따라) + const roleMap = { + 'admin': 'admin', + 'system': 'system', // 시스템 계정은 system role로 설정 + 'group_leader': 'leader', + 'support_team': 'support', + 'worker': 'user' + }; + const role = roleMap[access_level] || 'user'; + + // 사용자 등록 + const [result] = await db.query( + `INSERT INTO users (username, password, name, role, access_level, worker_id) + VALUES (?, ?, ?, ?, ?, ?)`, + [username, hashedPassword, name, role, access_level, worker_id] + ); + + console.log('[사용자 등록 성공]', username); + + return res.status(201).json({ + success: true, + message: '사용자 등록이 완료되었습니다.', + user_id: result.insertId + }); + + } catch (err) { + console.error('[사용자 등록 오류]', err); + return res.status(500).json({ + success: false, + error: '서버 오류가 발생했습니다.', + detail: err.message + }); + } +}; + +// ✅ 사용자 삭제 기능 추가 +const deleteUser = async (req, res) => { + try { + const { id } = req.params; + const db = await getDb(); + + // 사용자 존재 확인 + const [user] = await db.query( + 'SELECT user_id FROM users WHERE user_id = ?', + [id] + ); + + if (user.length === 0) { + return res.status(404).json({ + success: false, + error: '해당 사용자를 찾을 수 없습니다.' + }); + } + + // 사용자 삭제 + await db.query('DELETE FROM users WHERE user_id = ?', [id]); + + console.log('[사용자 삭제 성공] ID:', id); + + return res.status(200).json({ + success: true, + message: '사용자가 삭제되었습니다.' + }); + + } catch (err) { + console.error('[사용자 삭제 오류]', err); + return res.status(500).json({ + success: false, + error: '서버 오류가 발생했습니다.', + detail: err.message + }); + } +}; + +// 모든 사용자 목록 조회 +const getAllUsers = async (req, res) => { + try { + const db = await getDb(); + + // 비밀번호 제외하고 조회 + const [rows] = await db.query( + `SELECT user_id, username, name, role, access_level, worker_id, created_at + FROM users + ORDER BY created_at DESC` + ); + + res.status(200).json(rows); + } catch (err) { + console.error('[사용자 목록 조회 실패]', err); + res.status(500).json({ error: '서버 오류' }); + } +}; + +module.exports = { + login, + register, + deleteUser, + getAllUsers +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/dailyIssueReportController.js b/deploy/tkfb-package/api.hyungi.net/controllers/dailyIssueReportController.js new file mode 100644 index 0000000..6dca260 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/dailyIssueReportController.js @@ -0,0 +1,64 @@ +/** + * 일일 이슈 보고서 관리 컨트롤러 + * + * 일일 이슈 보고서 CRUD API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const dailyIssueReportService = require('../services/dailyIssueReportService'); +const { asyncHandler } = require('../middlewares/errorHandler'); + +/** + * 일일 이슈 보고서 생성 + */ +const createDailyIssueReport = asyncHandler(async (req, res) => { + // 프론트엔드에서 worker_ids 또는 worker_id로 보낼 수 있음 + const issueData = { + ...req.body, + worker_ids: req.body.worker_ids || req.body.worker_id + }; + + const result = await dailyIssueReportService.createDailyIssueReportService(issueData); + + res.status(201).json({ + success: true, + data: result, + message: result.message + }); +}); + +/** + * 날짜별 이슈 조회 + */ +const getDailyIssuesByDate = asyncHandler(async (req, res) => { + const { date } = req.query; + const issues = await dailyIssueReportService.getDailyIssuesByDateService(date); + + res.json({ + success: true, + data: issues, + message: '이슈 보고서 조회 성공' + }); +}); + +/** + * 이슈 보고서 삭제 + */ +const removeDailyIssue = asyncHandler(async (req, res) => { + const { id } = req.params; + const result = await dailyIssueReportService.removeDailyIssueService(id); + + res.json({ + success: true, + data: result, + message: result.message + }); +}); + +module.exports = { + createDailyIssueReport, + getDailyIssuesByDate, + removeDailyIssue +}; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/dailyWorkReportController.js b/deploy/tkfb-package/api.hyungi.net/controllers/dailyWorkReportController.js new file mode 100644 index 0000000..9c79629 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/dailyWorkReportController.js @@ -0,0 +1,934 @@ +/** + * 일일 작업 보고서 컨트롤러 + * + * 작업 보고서 API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const dailyWorkReportModel = require('../models/dailyWorkReportModel'); +const dailyWorkReportService = require('../services/dailyWorkReportService'); +const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); +const { asyncHandler } = require('../middlewares/errorHandler'); +const logger = require('../utils/logger'); + +/** + * 📝 작업보고서 생성 (V2 - Service Layer 사용) + */ +const createDailyWorkReport = asyncHandler(async (req, res) => { + const reportData = { + ...req.body, + created_by: req.user?.user_id || req.user?.id, + created_by_name: req.user?.name || req.user?.username || '알 수 없는 사용자' + }; + + const result = await dailyWorkReportService.createDailyWorkReportService(reportData); + + res.status(201).json({ + success: true, + data: result, + message: '작업보고서가 성공적으로 생성되었습니다' + }); +}); + +/** + * 📊 기여자별 요약 조회 (새로운 기능) + */ +const getContributorsSummary = asyncHandler(async (req, res) => { + const { date, worker_id } = req.query; + + if (!date || !worker_id) { + throw new ApiError('date와 worker_id가 필요합니다.', 400); + } + + console.log(`📊 기여자별 요약 조회: date=${date}, worker_id=${worker_id}`); + + try { + const data = await new Promise((resolve, reject) => { + dailyWorkReportModel.getContributorsByDate(date, worker_id, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + const totalHours = data.reduce((sum, contributor) => sum + parseFloat(contributor.total_hours || 0), 0); + + console.log(`📊 기여자별 요약: ${data.length}명, 총 ${totalHours}시간`); + + const result = { + date, + worker_id, + contributors: data, + total_contributors: data.length, + grand_total_hours: totalHours + }; + + res.success(result, '기여자별 요약 조회 성공'); + } catch (err) { + handleDatabaseError(err, '기여자별 요약 조회'); + } +}); + +/** + * 📊 개인 누적 현황 조회 (새로운 기능) + */ +const getMyAccumulatedData = (req, res) => { + const { date, worker_id } = req.query; + const created_by = req.user?.user_id || req.user?.id; + + if (!date || !worker_id) { + return res.status(400).json({ + error: 'date와 worker_id가 필요합니다.', + example: 'date=2024-06-16&worker_id=1' + }); + } + + if (!created_by) { + return res.status(401).json({ + error: '사용자 인증 정보가 없습니다.' + }); + } + + console.log(`📊 개인 누적 현황 조회: date=${date}, worker_id=${worker_id}, created_by=${created_by}`); + + dailyWorkReportModel.getMyAccumulatedHours(date, worker_id, created_by, (err, data) => { + if (err) { + console.error('개인 누적 현황 조회 오류:', err); + return res.status(500).json({ + error: '개인 누적 현황 조회 중 오류가 발생했습니다.', + details: err.message + }); + } + + console.log(`📊 개인 누적: ${data.my_entry_count}개 항목, ${data.my_total_hours}시간`); + res.json({ + date, + worker_id, + created_by, + my_data: data, + timestamp: new Date().toISOString() + }); + }); +}; + +/** + * 🗑️ 개별 항목 삭제 (본인 작성분만 - 새로운 기능) + */ +const removeMyEntry = (req, res) => { + const { id } = req.params; + const deleted_by = req.user?.user_id || req.user?.id; + + if (!deleted_by) { + return res.status(401).json({ + error: '사용자 인증 정보가 없습니다.' + }); + } + + console.log(`🗑️ 개별 항목 삭제 요청: id=${id}, 삭제자=${deleted_by}`); + + dailyWorkReportModel.removeSpecificEntry(id, deleted_by, (err, result) => { + if (err) { + console.error('개별 항목 삭제 오류:', err); + return res.status(500).json({ + error: '항목 삭제 중 오류가 발생했습니다.', + details: err.message + }); + } + + console.log(`✅ 개별 항목 삭제 완료: id=${id}`); + res.json({ + message: '항목이 성공적으로 삭제되었습니다.', + id: id, + deleted_by, + timestamp: new Date().toISOString(), + ...result + }); + }); +}; + +/** + * 📊 작업보고서 조회 (V2 - Service Layer 사용) + */ +const getDailyWorkReports = async (req, res) => { + try { + const userInfo = { + user_id: req.user?.user_id || req.user?.id, + role: req.user?.role || 'user' // 기본값을 'user'로 설정하여 안전하게 처리 + }; + + if (!userInfo.user_id) { + return res.status(401).json({ error: '사용자 인증 정보가 없습니다.' }); + } + + const reports = await dailyWorkReportService.getDailyWorkReportsService(req.query, userInfo); + + res.json(reports); + + } catch (error) { + console.error('💥 작업보고서 조회 컨트롤러 오류:', error.message); + res.status(400).json({ + success: false, + error: '작업보고서 조회에 실패했습니다.', + details: error.message + }); + } +}; + +/** + * 📊 날짜별 작업보고서 조회 (경로 파라미터 - 권한별 전체 조회 지원) + */ +const getDailyWorkReportsByDate = (req, res) => { + const { date } = req.params; + const current_user_id = req.user?.user_id || req.user?.id; + const user_access_level = req.user?.access_level; + const user_job_type = req.user?.job_type; + + if (!current_user_id) { + return res.status(401).json({ + error: '사용자 인증 정보가 없습니다.' + }); + } + + const isAdmin = user_access_level === 'system' || user_access_level === 'admin' || user_access_level === 'leader' || user_job_type === 'leader'; + + console.log(`📊 날짜별 조회 (경로): date=${date}, user=${current_user_id}, 권한=${user_access_level}, 직책=${user_job_type}, 관리자=${isAdmin}`); + console.log(`🔍 사용자 정보 상세:`, req.user); + + dailyWorkReportModel.getByDate(date, (err, data) => { + if (err) { + console.error('날짜별 작업보고서 조회 오류:', err); + return res.status(500).json({ + error: '작업보고서 조회 중 오류가 발생했습니다.', + details: err.message + }); + } + + // 🎯 권한별 필터링 (임시로 비활성화) + let finalData = data; + console.log(`📊 임시로 모든 사용자에게 전체 조회 허용: ${data.length}개`); + console.log(`📊 권한 정보: access_level=${user_access_level}, job_type=${user_job_type}, isAdmin=${isAdmin}`); + + // if (!isAdmin) { + // finalData = data.filter(report => report.created_by === current_user_id); + // console.log(`📊 권한 필터링: 전체 ${data.length}개 → ${finalData.length}개`); + // } else { + // console.log(`📊 관리자 권한으로 전체 조회: ${data.length}개`); + // } + + res.json(finalData); + }); +}; + +/** + * 🔍 작업보고서 검색 (페이지네이션 포함) + */ +const searchWorkReports = (req, res) => { + const { start_date, end_date, worker_id, project_id, work_status_id, page = 1, limit = 20 } = req.query; + const created_by = req.user?.user_id || req.user?.id; + + if (!start_date || !end_date) { + return res.status(400).json({ + error: 'start_date와 end_date가 필요합니다.', + example: 'start_date=2024-01-01&end_date=2024-01-31', + optional: ['worker_id', 'project_id', 'work_status_id', 'page', 'limit'] + }); + } + + if (!created_by) { + return res.status(401).json({ + error: '사용자 인증 정보가 없습니다.' + }); + } + + const searchParams = { + start_date, + end_date, + worker_id: worker_id ? parseInt(worker_id) : null, + project_id: project_id ? parseInt(project_id) : null, + work_status_id: work_status_id ? parseInt(work_status_id) : null, + created_by, // 작성자 필터링 추가 + page: parseInt(page), + limit: parseInt(limit) + }; + + console.log('🔍 작업보고서 검색 요청:', searchParams); + + dailyWorkReportModel.searchWithDetails(searchParams, (err, data) => { + if (err) { + console.error('작업보고서 검색 오류:', err); + return res.status(500).json({ + error: '작업보고서 검색 중 오류가 발생했습니다.', + details: err.message + }); + } + + console.log(`🔍 검색 결과: ${data.reports?.length || 0}개 (전체: ${data.total || 0}개)`); + res.json(data); + }); +}; + +/** + * 📈 통계 조회 (V2 - Service Layer 사용) + */ +const getWorkReportStats = async (req, res) => { + try { + const statsData = await dailyWorkReportService.getStatisticsService(req.query); + res.json(statsData); + } catch (error) { + console.error('💥 통계 조회 컨트롤러 오류:', error.message); + res.status(400).json({ + success: false, + error: '통계 조회에 실패했습니다.', + details: error.message + }); + } +}; + +/** + * 📊 일일 근무 요약 조회 (V2 - Service Layer 사용) + */ +const getDailySummary = async (req, res) => { + try { + const summaryData = await dailyWorkReportService.getSummaryService(req.query); + res.json(summaryData); + } catch (error) { + console.error('💥 일일 요약 조회 컨트롤러 오류:', error.message); + res.status(400).json({ + success: false, + error: '일일 요약 조회에 실패했습니다.', + details: error.message + }); + } +}; + +/** + * 📅 월간 요약 조회 + */ +const getMonthlySummary = (req, res) => { + const { year, month } = req.query; + + if (!year || !month) { + return res.status(400).json({ + error: 'year와 month가 필요합니다.', + example: 'year=2024&month=01', + note: 'month는 01, 02, ..., 12 형식으로 입력하세요.' + }); + } + + console.log(`📅 월간 요약 조회: ${year}-${month}`); + + dailyWorkReportModel.getMonthlySummary(year, month, (err, data) => { + if (err) { + console.error('월간 요약 조회 오류:', err); + return res.status(500).json({ + error: '월간 요약 조회 중 오류가 발생했습니다.', + details: err.message + }); + } + + res.json({ + year: parseInt(year), + month: parseInt(month), + summary: data, + total_entries: data.length, + timestamp: new Date().toISOString() + }); + }); +}; + +/** + * ✏️ 작업보고서 수정 (V2 - Service Layer 사용) + */ +const updateWorkReport = async (req, res) => { + try { + const { id: reportId } = req.params; + const updateData = req.body; + const userInfo = { + user_id: req.user?.user_id || req.user?.id, + role: req.user?.role || 'user' + }; + + if (!userInfo.user_id) { + return res.status(401).json({ error: '사용자 인증 정보가 없습니다.' }); + } + + const result = await dailyWorkReportService.updateWorkReportService(reportId, updateData, userInfo); + + res.json({ + success: true, + timestamp: new Date().toISOString(), + ...result + }); + + } catch (error) { + console.error(`💥 작업보고서 수정 컨트롤러 오류 (id: ${req.params.id}):`, error.message); + const statusCode = error.statusCode || 400; + res.status(statusCode).json({ + success: false, + error: '작업보고서 수정에 실패했습니다.', + details: error.message + }); + } +}; + +/** + * 🗑️ 특정 작업보고서 삭제 (V2 - Service Layer 사용) + * 권한: 그룹장(group_leader), 시스템(system), 관리자(admin)만 가능 + */ +const removeDailyWorkReport = async (req, res) => { + try { + const { id: reportId } = req.params; + const userInfo = { + user_id: req.user?.user_id || req.user?.id, + access_level: req.user?.access_level || req.user?.role, + }; + + if (!userInfo.user_id) { + return res.status(401).json({ error: '사용자 인증 정보가 없습니다.' }); + } + + // 권한 체크: 그룹장, 시스템, 관리자만 삭제 가능 + const allowedRoles = ['admin', 'system', 'group_leader']; + if (!allowedRoles.includes(userInfo.access_level)) { + return res.status(403).json({ + error: '작업보고서 삭제 권한이 없습니다.', + details: '그룹장 이상의 권한이 필요합니다.' + }); + } + + const result = await dailyWorkReportService.removeDailyWorkReportService(reportId, userInfo); + + res.json({ + success: true, + timestamp: new Date().toISOString(), + ...result + }); + + } catch (error) { + console.error(`💥 작업보고서 삭제 컨트롤러 오류 (id: ${req.params.id}):`, error.message); + const statusCode = error.statusCode || 400; + res.status(statusCode).json({ + success: false, + error: '작업보고서 삭제에 실패했습니다.', + details: error.message + }); + } +}; + +/** + * ��️ 작업자의 특정 날짜 전체 삭제 + */ +const removeDailyWorkReportByDateAndWorker = (req, res) => { + const { date, worker_id } = req.params; + const deleted_by = req.user?.user_id || req.user?.id; + const access_level = req.user?.access_level || req.user?.role; + + if (!deleted_by) { + return res.status(401).json({ + error: '사용자 인증 정보가 없습니다.' + }); + } + + // 권한 체크: 그룹장, 시스템, 관리자만 삭제 가능 + const allowedRoles = ['admin', 'system', 'group_leader']; + if (!allowedRoles.includes(access_level)) { + return res.status(403).json({ + error: '작업보고서 삭제 권한이 없습니다.', + details: '그룹장 이상의 권한이 필요합니다.' + }); + } + + console.log(`🗑️ 날짜+작업자별 전체 삭제 요청: date=${date}, worker_id=${worker_id}, 삭제자=${deleted_by}`); + + dailyWorkReportModel.removeByDateAndWorker(date, worker_id, deleted_by, (err, affectedRows) => { + if (err) { + console.error('작업보고서 전체 삭제 오류:', err); + return res.status(500).json({ + error: '작업보고서 삭제 중 오류가 발생했습니다.', + details: err.message + }); + } + + if (affectedRows === 0) { + return res.status(404).json({ + error: '삭제할 작업보고서를 찾을 수 없습니다.', + date: date, + worker_id: worker_id + }); + } + + console.log(`✅ 날짜+작업자별 전체 삭제 완료: ${affectedRows}개`); + res.json({ + message: `${date} 날짜의 작업자 ${worker_id} 작업보고서 ${affectedRows}개가 삭제되었습니다.`, + date, + worker_id, + affected_rows: affectedRows, + deleted_by, + timestamp: new Date().toISOString() + }); + }); +}; + +/** + * 📋 마스터 데이터 조회 함수들 + */ +const getWorkTypes = (req, res) => { + console.log('📋 작업 유형 조회 요청'); + dailyWorkReportModel.getAllWorkTypes((err, data) => { + if (err) { + console.error('작업 유형 조회 오류:', err); + return res.status(500).json({ + success: false, + error: { + message: '작업 유형 조회 중 오류가 발생했습니다.', + code: 'DATABASE_ERROR' + } + }); + } + console.log(`📋 작업 유형 조회 결과: ${data.length}개`); + res.json({ + success: true, + data: data, + message: '작업 유형 조회 성공' + }); + }); +}; + +const getWorkStatusTypes = (req, res) => { + console.log('📋 업무 상태 유형 조회 요청'); + dailyWorkReportModel.getAllWorkStatusTypes((err, data) => { + if (err) { + console.error('업무 상태 유형 조회 오류:', err); + return res.status(500).json({ + error: '업무 상태 유형 조회 중 오류가 발생했습니다.', + details: err.message + }); + } + console.log(`📋 업무 상태 유형 조회 결과: ${data.length}개`); + res.json(data); + }); +}; + +const getErrorTypes = (req, res) => { + console.log('📋 에러 유형 조회 요청'); + dailyWorkReportModel.getAllErrorTypes((err, data) => { + if (err) { + console.error('에러 유형 조회 오류:', err); + return res.status(500).json({ + error: '에러 유형 조회 중 오류가 발생했습니다.', + details: err.message + }); + } + console.log(`📋 에러 유형 조회 결과: ${data.length}개`); + res.json(data); + }); +}; + +// ========== 작업 유형 CRUD ========== + +/** + * 📝 작업 유형 생성 + */ +const createWorkType = asyncHandler(async (req, res) => { + const { name, description, category } = req.body; + + if (!name) { + throw new ApiError('작업 유형 이름이 필요합니다.', 400); + } + + console.log('📝 작업 유형 생성:', { name, description, category }); + + try { + const result = await new Promise((resolve, reject) => { + dailyWorkReportModel.createWorkType({ name, description, category }, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + res.created(result, '작업 유형이 성공적으로 생성되었습니다.'); + } catch (err) { + handleDatabaseError(err, '작업 유형 생성'); + } +}); + +/** + * ✏️ 작업 유형 수정 + */ +const updateWorkType = asyncHandler(async (req, res) => { + const { id } = req.params; + const { name, description, category } = req.body; + + if (!id) { + throw new ApiError('작업 유형 ID가 필요합니다.', 400); + } + + console.log('✏️ 작업 유형 수정:', { id, name, description, category }); + + try { + const result = await new Promise((resolve, reject) => { + dailyWorkReportModel.updateWorkType(id, { name, description, category }, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + if (result.affectedRows === 0) { + throw new ApiError('수정할 작업 유형을 찾을 수 없습니다.', 404); + } + + res.success(result, '작업 유형이 성공적으로 수정되었습니다.'); + } catch (err) { + handleDatabaseError(err, '작업 유형 수정'); + } +}); + +/** + * 🗑️ 작업 유형 삭제 + */ +const deleteWorkType = asyncHandler(async (req, res) => { + const { id } = req.params; + + if (!id) { + throw new ApiError('작업 유형 ID가 필요합니다.', 400); + } + + console.log('🗑️ 작업 유형 삭제:', id); + + try { + const result = await new Promise((resolve, reject) => { + dailyWorkReportModel.deleteWorkType(id, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + if (result.affectedRows === 0) { + throw new ApiError('삭제할 작업 유형을 찾을 수 없습니다.', 404); + } + + res.success(result, '작업 유형이 성공적으로 삭제되었습니다.'); + } catch (err) { + handleDatabaseError(err, '작업 유형 삭제'); + } +}); + +// ========== 작업 상태 CRUD ========== + +/** + * 📝 작업 상태 생성 + */ +const createWorkStatus = asyncHandler(async (req, res) => { + const { name, description, is_error } = req.body; + + if (!name) { + throw new ApiError('작업 상태 이름이 필요합니다.', 400); + } + + console.log('📝 작업 상태 생성:', { name, description, is_error }); + + try { + const result = await new Promise((resolve, reject) => { + dailyWorkReportModel.createWorkStatus({ name, description, is_error }, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + res.created(result, '작업 상태가 성공적으로 생성되었습니다.'); + } catch (err) { + handleDatabaseError(err, '작업 상태 생성'); + } +}); + +/** + * ✏️ 작업 상태 수정 + */ +const updateWorkStatus = asyncHandler(async (req, res) => { + const { id } = req.params; + const { name, description, is_error } = req.body; + + if (!id) { + throw new ApiError('작업 상태 ID가 필요합니다.', 400); + } + + console.log('✏️ 작업 상태 수정:', { id, name, description, is_error }); + + try { + const result = await new Promise((resolve, reject) => { + dailyWorkReportModel.updateWorkStatus(id, { name, description, is_error }, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + if (result.affectedRows === 0) { + throw new ApiError('수정할 작업 상태를 찾을 수 없습니다.', 404); + } + + res.success(result, '작업 상태가 성공적으로 수정되었습니다.'); + } catch (err) { + handleDatabaseError(err, '작업 상태 수정'); + } +}); + +/** + * 🗑️ 작업 상태 삭제 + */ +const deleteWorkStatus = asyncHandler(async (req, res) => { + const { id } = req.params; + + if (!id) { + throw new ApiError('작업 상태 ID가 필요합니다.', 400); + } + + console.log('🗑️ 작업 상태 삭제:', id); + + try { + const result = await new Promise((resolve, reject) => { + dailyWorkReportModel.deleteWorkStatus(id, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + if (result.affectedRows === 0) { + throw new ApiError('삭제할 작업 상태를 찾을 수 없습니다.', 404); + } + + res.success(result, '작업 상태가 성공적으로 삭제되었습니다.'); + } catch (err) { + handleDatabaseError(err, '작업 상태 삭제'); + } +}); + +// ========== 오류 유형 CRUD ========== + +/** + * 📝 오류 유형 생성 + */ +const createErrorType = asyncHandler(async (req, res) => { + const { name, description, severity } = req.body; + + if (!name) { + throw new ApiError('오류 유형 이름이 필요합니다.', 400); + } + + console.log('📝 오류 유형 생성:', { name, description, severity }); + + try { + const result = await new Promise((resolve, reject) => { + dailyWorkReportModel.createErrorType({ name, description, severity }, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + res.created(result, '오류 유형이 성공적으로 생성되었습니다.'); + } catch (err) { + handleDatabaseError(err, '오류 유형 생성'); + } +}); + +/** + * ✏️ 오류 유형 수정 + */ +const updateErrorType = asyncHandler(async (req, res) => { + const { id } = req.params; + const { name, description, severity } = req.body; + + if (!id) { + throw new ApiError('오류 유형 ID가 필요합니다.', 400); + } + + console.log('✏️ 오류 유형 수정:', { id, name, description, severity }); + + try { + const result = await new Promise((resolve, reject) => { + dailyWorkReportModel.updateErrorType(id, { name, description, severity }, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + if (result.affectedRows === 0) { + throw new ApiError('수정할 오류 유형을 찾을 수 없습니다.', 404); + } + + res.success(result, '오류 유형이 성공적으로 수정되었습니다.'); + } catch (err) { + handleDatabaseError(err, '오류 유형 수정'); + } +}); + +/** + * 🗑️ 오류 유형 삭제 + */ +const deleteErrorType = asyncHandler(async (req, res) => { + const { id } = req.params; + + if (!id) { + throw new ApiError('오류 유형 ID가 필요합니다.', 400); + } + + console.log('🗑️ 오류 유형 삭제:', id); + + try { + const result = await new Promise((resolve, reject) => { + dailyWorkReportModel.deleteErrorType(id, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + if (result.affectedRows === 0) { + throw new ApiError('삭제할 오류 유형을 찾을 수 없습니다.', 404); + } + + res.success(result, '오류 유형이 성공적으로 삭제되었습니다.'); + } catch (err) { + handleDatabaseError(err, '오류 유형 삭제'); + } +}); + +/** + * 📊 누적 현황 조회 + */ +const getAccumulatedReports = (req, res) => { + const { date, worker_id } = req.query; + + if (!date || !worker_id) { + return res.status(400).json({ + error: 'date와 worker_id가 필요합니다.', + example: 'date=2024-06-16&worker_id=1' + }); + } + + console.log(`📊 누적 현황 조회: date=${date}, worker_id=${worker_id}`); + + dailyWorkReportModel.getAccumulatedReportsByDate(date, worker_id, (err, data) => { + if (err) { + console.error('누적 현황 조회 오류:', err); + return res.status(500).json({ + error: '누적 현황 조회 중 오류가 발생했습니다.', + details: err.message + }); + } + + console.log(`📊 누적 현황 조회 결과: ${data.length}개`); + res.json({ + date, + worker_id, + total_entries: data.length, + accumulated_data: data, + timestamp: new Date().toISOString() + }); + }); +}; + +/** + * TBM 배정 기반 작업보고서 생성 + */ +const createFromTbm = async (req, res) => { + try { + const { + tbm_assignment_id, + tbm_session_id, + worker_id, + project_id, + work_type_id, + report_date, + start_time, + end_time, + total_hours, + error_hours, + error_type_id, + work_status_id + } = req.body; + + // 필수 필드 검증 + if (!tbm_assignment_id || !tbm_session_id || !worker_id || !report_date || !total_hours) { + return res.status(400).json({ + success: false, + message: '필수 필드가 누락되었습니다. (assignment_id, session_id, worker_id, report_date, total_hours)' + }); + } + + // regular_hours 계산 + const regular_hours = total_hours - (error_hours || 0); + + const reportData = { + tbm_assignment_id, + tbm_session_id, + worker_id, + project_id, + work_type_id, + report_date, + start_time, + end_time, + total_hours, + error_hours: error_hours || 0, + regular_hours, + work_status_id: work_status_id || (error_hours > 0 ? 2 : 1), // error_hours가 있으면 상태 2 (부적합) + error_type_id, + created_by: req.user.user_id + }; + + const result = await dailyWorkReportModel.createFromTbmAssignment(reportData); + + res.status(201).json({ + success: true, + message: '작업보고서가 생성되었습니다.', + data: result + }); + + } catch (err) { + console.error('TBM 작업보고서 생성 오류:', err); + console.error('Error stack:', err.stack); + res.status(500).json({ + success: false, + message: 'TBM 작업보고서 생성 중 오류가 발생했습니다.', + error: err.message, + stack: process.env.NODE_ENV === 'development' ? err.stack : undefined + }); + } +}; + +// 모든 컨트롤러 함수 내보내기 (리팩토링된 함수 위주로 재구성) +module.exports = { + // 📝 V2 핵심 CRUD 함수 + createDailyWorkReport, + getDailyWorkReports, + updateWorkReport, + removeDailyWorkReport, + createFromTbm, + + // 📊 V2 통계 및 요약 함수 + getWorkReportStats, + getDailySummary, + + // 🔽 아직 리팩토링되지 않은 레거시 함수들 + getAccumulatedReports, + getContributorsSummary, + getMyAccumulatedData, + removeMyEntry, + getDailyWorkReportsByDate, + searchWorkReports, + getMonthlySummary, + removeDailyWorkReportByDateAndWorker, + getWorkTypes, + getWorkStatusTypes, + getErrorTypes, + + // 🔽 마스터 데이터 CRUD + createWorkType, + updateWorkType, + deleteWorkType, + createWorkStatus, + updateWorkStatus, + deleteWorkStatus, + createErrorType, + updateErrorType, + deleteErrorType +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/departmentController.js b/deploy/tkfb-package/api.hyungi.net/controllers/departmentController.js new file mode 100644 index 0000000..e44574b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/departmentController.js @@ -0,0 +1,241 @@ +// controllers/departmentController.js +const departmentModel = require('../models/departmentModel'); + +const departmentController = { + // 모든 부서 조회 + async getAll(req, res) { + try { + const { active_only } = req.query; + const departments = active_only === 'true' + ? await departmentModel.getActive() + : await departmentModel.getAll(); + + res.json({ + success: true, + data: departments + }); + } catch (error) { + console.error('부서 목록 조회 오류:', error); + res.status(500).json({ + success: false, + error: '부서 목록을 불러오는데 실패했습니다.' + }); + } + }, + + // 부서 상세 조회 + async getById(req, res) { + try { + const { id } = req.params; + const department = await departmentModel.getById(id); + + if (!department) { + return res.status(404).json({ + success: false, + error: '부서를 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + data: department + }); + } catch (error) { + console.error('부서 조회 오류:', error); + res.status(500).json({ + success: false, + error: '부서 정보를 불러오는데 실패했습니다.' + }); + } + }, + + // 부서 생성 + async create(req, res) { + try { + const { department_name, parent_id, description, is_active, display_order } = req.body; + + if (!department_name) { + return res.status(400).json({ + success: false, + error: '부서명은 필수입니다.' + }); + } + + const departmentId = await departmentModel.create({ + department_name, + parent_id, + description, + is_active, + display_order + }); + + const newDepartment = await departmentModel.getById(departmentId); + + res.status(201).json({ + success: true, + message: '부서가 생성되었습니다.', + data: newDepartment + }); + } catch (error) { + console.error('부서 생성 오류:', error); + res.status(500).json({ + success: false, + error: '부서 생성에 실패했습니다.' + }); + } + }, + + // 부서 수정 + async update(req, res) { + try { + const { id } = req.params; + const { department_name, parent_id, description, is_active, display_order } = req.body; + + if (!department_name) { + return res.status(400).json({ + success: false, + error: '부서명은 필수입니다.' + }); + } + + // 자기 자신을 상위 부서로 지정하는 것 방지 + if (parent_id && parseInt(parent_id) === parseInt(id)) { + return res.status(400).json({ + success: false, + error: '자기 자신을 상위 부서로 지정할 수 없습니다.' + }); + } + + const updated = await departmentModel.update(id, { + department_name, + parent_id, + description, + is_active, + display_order + }); + + if (!updated) { + return res.status(404).json({ + success: false, + error: '부서를 찾을 수 없습니다.' + }); + } + + const updatedDepartment = await departmentModel.getById(id); + + res.json({ + success: true, + message: '부서 정보가 수정되었습니다.', + data: updatedDepartment + }); + } catch (error) { + console.error('부서 수정 오류:', error); + res.status(500).json({ + success: false, + error: '부서 수정에 실패했습니다.' + }); + } + }, + + // 부서 삭제 + async delete(req, res) { + try { + const { id } = req.params; + + await departmentModel.delete(id); + + res.json({ + success: true, + message: '부서가 삭제되었습니다.' + }); + } catch (error) { + console.error('부서 삭제 오류:', error); + res.status(400).json({ + success: false, + error: error.message || '부서 삭제에 실패했습니다.' + }); + } + }, + + // 부서별 작업자 조회 + async getWorkers(req, res) { + try { + const { id } = req.params; + const workers = await departmentModel.getWorkersByDepartment(id); + + res.json({ + success: true, + data: workers + }); + } catch (error) { + console.error('부서 작업자 조회 오류:', error); + res.status(500).json({ + success: false, + error: '작업자 목록을 불러오는데 실패했습니다.' + }); + } + }, + + // 작업자 부서 이동 + async moveWorker(req, res) { + try { + const { workerId, departmentId } = req.body; + + if (!workerId || !departmentId) { + return res.status(400).json({ + success: false, + error: '작업자 ID와 부서 ID가 필요합니다.' + }); + } + + await departmentModel.moveWorker(workerId, departmentId); + + res.json({ + success: true, + message: '작업자 부서가 변경되었습니다.' + }); + } catch (error) { + console.error('작업자 부서 이동 오류:', error); + res.status(500).json({ + success: false, + error: '작업자 부서 변경에 실패했습니다.' + }); + } + }, + + // 여러 작업자 부서 일괄 이동 + async moveWorkers(req, res) { + try { + const { workerIds, departmentId } = req.body; + + if (!workerIds || !Array.isArray(workerIds) || workerIds.length === 0) { + return res.status(400).json({ + success: false, + error: '이동할 작업자를 선택하세요.' + }); + } + + if (!departmentId) { + return res.status(400).json({ + success: false, + error: '대상 부서를 선택하세요.' + }); + } + + const count = await departmentModel.moveWorkers(workerIds, departmentId); + + res.json({ + success: true, + message: `${count}명의 작업자 부서가 변경되었습니다.` + }); + } catch (error) { + console.error('작업자 일괄 이동 오류:', error); + res.status(500).json({ + success: false, + error: '작업자 부서 변경에 실패했습니다.' + }); + } + } +}; + +module.exports = departmentController; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/equipmentController.js b/deploy/tkfb-package/api.hyungi.net/controllers/equipmentController.js new file mode 100644 index 0000000..896eb75 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/equipmentController.js @@ -0,0 +1,945 @@ +// controllers/equipmentController.js +const EquipmentModel = require('../models/equipmentModel'); +const imageUploadService = require('../services/imageUploadService'); + +const EquipmentController = { + // CREATE - 설비 생성 + createEquipment: async (req, res) => { + try { + const equipmentData = req.body; + + // 필수 필드 검증 + if (!equipmentData.equipment_code || !equipmentData.equipment_name) { + return res.status(400).json({ + success: false, + message: '설비 코드와 설비명은 필수입니다.' + }); + } + + // 설비 코드 중복 확인 + EquipmentModel.checkDuplicateCode(equipmentData.equipment_code, null, (error, isDuplicate) => { + if (error) { + console.error('설비 코드 중복 확인 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 코드 중복 확인 중 오류가 발생했습니다.' + }); + } + + if (isDuplicate) { + return res.status(409).json({ + success: false, + message: '이미 사용 중인 설비 코드입니다.' + }); + } + + // 설비 생성 + EquipmentModel.create(equipmentData, (error, result) => { + if (error) { + console.error('설비 생성 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 생성 중 오류가 발생했습니다.' + }); + } + + res.status(201).json({ + success: true, + message: '설비가 성공적으로 생성되었습니다.', + data: result + }); + }); + }); + } catch (error) { + console.error('설비 생성 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // READ ALL - 모든 설비 조회 (필터링 가능) + getAllEquipments: (req, res) => { + try { + const filters = { + workplace_id: req.query.workplace_id, + equipment_type: req.query.equipment_type, + status: req.query.status, + search: req.query.search + }; + + EquipmentModel.getAll(filters, (error, results) => { + if (error) { + console.error('설비 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('설비 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // READ ONE - 특정 설비 조회 + getEquipmentById: (req, res) => { + try { + const equipmentId = req.params.id; + + EquipmentModel.getById(equipmentId, (error, result) => { + if (error) { + console.error('설비 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 조회 중 오류가 발생했습니다.' + }); + } + + if (!result) { + return res.status(404).json({ + success: false, + message: '설비를 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + data: result + }); + }); + } catch (error) { + console.error('설비 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // READ BY WORKPLACE - 특정 작업장의 설비 조회 + getEquipmentsByWorkplace: (req, res) => { + try { + const workplaceId = req.params.workplaceId; + + EquipmentModel.getByWorkplace(workplaceId, (error, results) => { + if (error) { + console.error('작업장 설비 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '작업장 설비 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('작업장 설비 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // READ ACTIVE - 활성 설비만 조회 + getActiveEquipments: (req, res) => { + try { + EquipmentModel.getActive((error, results) => { + if (error) { + console.error('활성 설비 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '활성 설비 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('활성 설비 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // UPDATE - 설비 수정 + updateEquipment: async (req, res) => { + try { + const equipmentId = req.params.id; + const equipmentData = req.body; + + // 필수 필드 검증 + if (!equipmentData.equipment_code || !equipmentData.equipment_name) { + return res.status(400).json({ + success: false, + message: '설비 코드와 설비명은 필수입니다.' + }); + } + + // 설비 존재 확인 + EquipmentModel.getById(equipmentId, (error, existingEquipment) => { + if (error) { + console.error('설비 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 조회 중 오류가 발생했습니다.' + }); + } + + if (!existingEquipment) { + return res.status(404).json({ + success: false, + message: '설비를 찾을 수 없습니다.' + }); + } + + // 설비 코드 중복 확인 (자신 제외) + EquipmentModel.checkDuplicateCode(equipmentData.equipment_code, equipmentId, (error, isDuplicate) => { + if (error) { + console.error('설비 코드 중복 확인 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 코드 중복 확인 중 오류가 발생했습니다.' + }); + } + + if (isDuplicate) { + return res.status(409).json({ + success: false, + message: '이미 사용 중인 설비 코드입니다.' + }); + } + + // 설비 수정 + EquipmentModel.update(equipmentId, equipmentData, (error, result) => { + if (error) { + console.error('설비 수정 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 수정 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + message: '설비가 성공적으로 수정되었습니다.', + data: result + }); + }); + }); + }); + } catch (error) { + console.error('설비 수정 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // UPDATE MAP POSITION - 지도상 위치 업데이트 + updateMapPosition: (req, res) => { + try { + const equipmentId = req.params.id; + const positionData = { + map_x_percent: req.body.map_x_percent, + map_y_percent: req.body.map_y_percent, + map_width_percent: req.body.map_width_percent, + map_height_percent: req.body.map_height_percent + }; + + // workplace_id가 있으면 포함 (설비를 다른 작업장으로 이동 가능) + if (req.body.workplace_id !== undefined) { + positionData.workplace_id = req.body.workplace_id; + } + + EquipmentModel.updateMapPosition(equipmentId, positionData, (error, result) => { + if (error) { + console.error('설비 위치 업데이트 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 위치 업데이트 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + message: '설비 위치가 성공적으로 업데이트되었습니다.', + data: result + }); + }); + } catch (error) { + console.error('설비 위치 업데이트 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // DELETE - 설비 삭제 + deleteEquipment: (req, res) => { + try { + const equipmentId = req.params.id; + + EquipmentModel.delete(equipmentId, (error, result) => { + if (error) { + console.error('설비 삭제 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 삭제 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + message: '설비가 성공적으로 삭제되었습니다.', + data: result + }); + }); + } catch (error) { + console.error('설비 삭제 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // GET EQUIPMENT TYPES - 사용 중인 설비 유형 목록 조회 + getEquipmentTypes: (req, res) => { + try { + EquipmentModel.getEquipmentTypes((error, results) => { + if (error) { + console.error('설비 유형 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 유형 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('설비 유형 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // GET NEXT EQUIPMENT CODE - 다음 관리번호 자동 생성 + getNextEquipmentCode: (req, res) => { + try { + const prefix = req.query.prefix || 'TKP'; + + EquipmentModel.getNextEquipmentCode(prefix, (error, nextCode) => { + if (error) { + console.error('다음 관리번호 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '다음 관리번호 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: { + next_code: nextCode, + prefix: prefix + } + }); + }); + } catch (error) { + console.error('다음 관리번호 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // ========================================== + // 설비 사진 관리 + // ========================================== + + // ADD PHOTO - 설비 사진 추가 + addPhoto: async (req, res) => { + try { + const equipmentId = req.params.id; + const { photo_base64, description, display_order } = req.body; + + if (!photo_base64) { + return res.status(400).json({ + success: false, + message: '사진 데이터가 필요합니다.' + }); + } + + // Base64 이미지를 파일로 저장 + const photoPath = await imageUploadService.saveBase64Image( + photo_base64, + 'equipment', + 'equipments' + ); + + if (!photoPath) { + return res.status(500).json({ + success: false, + message: '사진 저장에 실패했습니다.' + }); + } + + // DB에 사진 정보 저장 + const photoData = { + photo_path: photoPath, + description: description || null, + display_order: display_order || 0, + uploaded_by: req.user?.user_id || null + }; + + EquipmentModel.addPhoto(equipmentId, photoData, (error, result) => { + if (error) { + console.error('사진 정보 저장 오류:', error); + return res.status(500).json({ + success: false, + message: '사진 정보 저장 중 오류가 발생했습니다.' + }); + } + + res.status(201).json({ + success: true, + message: '사진이 성공적으로 추가되었습니다.', + data: result + }); + }); + } catch (error) { + console.error('사진 추가 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // GET PHOTOS - 설비 사진 조회 + getPhotos: (req, res) => { + try { + const equipmentId = req.params.id; + + EquipmentModel.getPhotos(equipmentId, (error, results) => { + if (error) { + console.error('사진 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '사진 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('사진 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // DELETE PHOTO - 설비 사진 삭제 + deletePhoto: async (req, res) => { + try { + const photoId = req.params.photoId; + + EquipmentModel.deletePhoto(photoId, async (error, result) => { + if (error) { + if (error.message === 'Photo not found') { + return res.status(404).json({ + success: false, + message: '사진을 찾을 수 없습니다.' + }); + } + console.error('사진 삭제 오류:', error); + return res.status(500).json({ + success: false, + message: '사진 삭제 중 오류가 발생했습니다.' + }); + } + + // 파일 시스템에서 사진 삭제 + if (result.photo_path) { + await imageUploadService.deleteFile(result.photo_path); + } + + res.json({ + success: true, + message: '사진이 성공적으로 삭제되었습니다.', + data: { photo_id: photoId } + }); + }); + } catch (error) { + console.error('사진 삭제 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // ========================================== + // 설비 임시 이동 + // ========================================== + + // MOVE TEMPORARILY - 설비 임시 이동 + moveTemporarily: (req, res) => { + try { + const equipmentId = req.params.id; + const moveData = { + target_workplace_id: req.body.target_workplace_id, + target_x_percent: req.body.target_x_percent, + target_y_percent: req.body.target_y_percent, + target_width_percent: req.body.target_width_percent, + target_height_percent: req.body.target_height_percent, + from_workplace_id: req.body.from_workplace_id, + from_x_percent: req.body.from_x_percent, + from_y_percent: req.body.from_y_percent, + reason: req.body.reason, + moved_by: req.user?.user_id || null + }; + + if (!moveData.target_workplace_id || moveData.target_x_percent === undefined || moveData.target_y_percent === undefined) { + return res.status(400).json({ + success: false, + message: '이동할 작업장과 위치가 필요합니다.' + }); + } + + EquipmentModel.moveTemporarily(equipmentId, moveData, (error, result) => { + if (error) { + console.error('설비 이동 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 이동 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + message: '설비가 임시 이동되었습니다.', + data: result + }); + }); + } catch (error) { + console.error('설비 이동 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // RETURN TO ORIGINAL - 설비 원위치 복귀 + returnToOriginal: (req, res) => { + try { + const equipmentId = req.params.id; + const userId = req.user?.user_id || null; + + EquipmentModel.returnToOriginal(equipmentId, userId, (error, result) => { + if (error) { + if (error.message === 'Equipment not found') { + return res.status(404).json({ + success: false, + message: '설비를 찾을 수 없습니다.' + }); + } + console.error('설비 복귀 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 복귀 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + message: '설비가 원위치로 복귀되었습니다.', + data: result + }); + }); + } catch (error) { + console.error('설비 복귀 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // GET TEMPORARILY MOVED - 임시 이동된 설비 목록 + getTemporarilyMoved: (req, res) => { + try { + EquipmentModel.getTemporarilyMoved((error, results) => { + if (error) { + console.error('임시 이동 설비 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '임시 이동 설비 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('임시 이동 설비 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // GET MOVE LOGS - 설비 이동 이력 조회 + getMoveLogs: (req, res) => { + try { + const equipmentId = req.params.id; + + EquipmentModel.getMoveLogs(equipmentId, (error, results) => { + if (error) { + console.error('이동 이력 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '이동 이력 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('이동 이력 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // ========================================== + // 설비 외부 반출/반입 + // ========================================== + + // EXPORT EQUIPMENT - 설비 외부 반출 + exportEquipment: (req, res) => { + try { + const equipmentId = req.params.id; + const exportData = { + equipment_id: equipmentId, + export_date: req.body.export_date, + expected_return_date: req.body.expected_return_date, + destination: req.body.destination, + reason: req.body.reason, + notes: req.body.notes, + is_repair: req.body.is_repair || false, + exported_by: req.user?.user_id || null + }; + + EquipmentModel.exportEquipment(exportData, (error, result) => { + if (error) { + console.error('설비 반출 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 반출 중 오류가 발생했습니다.' + }); + } + + res.status(201).json({ + success: true, + message: '설비가 외부로 반출되었습니다.', + data: result + }); + }); + } catch (error) { + console.error('설비 반출 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // RETURN EQUIPMENT - 설비 반입 (외부에서 복귀) + returnEquipment: (req, res) => { + try { + const logId = req.params.logId; + const returnData = { + return_date: req.body.return_date, + new_status: req.body.new_status || 'active', + notes: req.body.notes, + returned_by: req.user?.user_id || null + }; + + EquipmentModel.returnEquipment(logId, returnData, (error, result) => { + if (error) { + if (error.message === 'Export log not found') { + return res.status(404).json({ + success: false, + message: '반출 기록을 찾을 수 없습니다.' + }); + } + console.error('설비 반입 오류:', error); + return res.status(500).json({ + success: false, + message: '설비 반입 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + message: '설비가 반입되었습니다.', + data: result + }); + }); + } catch (error) { + console.error('설비 반입 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // GET EXTERNAL LOGS - 설비 외부 반출 이력 조회 + getExternalLogs: (req, res) => { + try { + const equipmentId = req.params.id; + + EquipmentModel.getExternalLogs(equipmentId, (error, results) => { + if (error) { + console.error('반출 이력 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '반출 이력 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('반출 이력 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // GET EXPORTED EQUIPMENTS - 현재 외부 반출 중인 설비 목록 + getExportedEquipments: (req, res) => { + try { + EquipmentModel.getExportedEquipments((error, results) => { + if (error) { + console.error('반출 중 설비 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '반출 중 설비 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('반출 중 설비 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // ========================================== + // 설비 수리 신청 + // ========================================== + + // CREATE REPAIR REQUEST - 수리 신청 + createRepairRequest: async (req, res) => { + try { + const equipmentId = req.params.id; + const { photo_base64_list, description, item_id, workplace_id } = req.body; + + // 사진 저장 (있는 경우) + let photoPaths = []; + if (photo_base64_list && photo_base64_list.length > 0) { + for (const base64 of photo_base64_list) { + const path = await imageUploadService.saveBase64Image(base64, 'repair', 'issues'); + if (path) photoPaths.push(path); + } + } + + const requestData = { + equipment_id: equipmentId, + item_id: item_id || null, + workplace_id: workplace_id || null, + description: description || null, + photo_paths: photoPaths.length > 0 ? photoPaths : null, + reported_by: req.user?.user_id || null + }; + + EquipmentModel.createRepairRequest(requestData, (error, result) => { + if (error) { + if (error.message === '설비 수리 카테고리가 없습니다') { + return res.status(400).json({ + success: false, + message: error.message + }); + } + console.error('수리 신청 오류:', error); + return res.status(500).json({ + success: false, + message: '수리 신청 중 오류가 발생했습니다.' + }); + } + + res.status(201).json({ + success: true, + message: '수리 신청이 접수되었습니다.', + data: result + }); + }); + } catch (error) { + console.error('수리 신청 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // GET REPAIR HISTORY - 설비 수리 이력 조회 + getRepairHistory: (req, res) => { + try { + const equipmentId = req.params.id; + + EquipmentModel.getRepairHistory(equipmentId, (error, results) => { + if (error) { + console.error('수리 이력 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '수리 이력 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('수리 이력 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // GET REPAIR CATEGORIES - 설비 수리 항목 목록 조회 + getRepairCategories: (req, res) => { + try { + EquipmentModel.getRepairCategories((error, results) => { + if (error) { + console.error('수리 항목 조회 오류:', error); + return res.status(500).json({ + success: false, + message: '수리 항목 조회 중 오류가 발생했습니다.' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('수리 항목 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + }, + + // ADD REPAIR CATEGORY - 새 수리 항목 추가 + addRepairCategory: (req, res) => { + try { + const { item_name } = req.body; + + if (!item_name || !item_name.trim()) { + return res.status(400).json({ + success: false, + message: '수리 유형 이름을 입력하세요.' + }); + } + + EquipmentModel.addRepairCategory(item_name.trim(), (error, result) => { + if (error) { + console.error('수리 항목 추가 오류:', error); + return res.status(500).json({ + success: false, + message: '수리 항목 추가 중 오류가 발생했습니다.' + }); + } + + res.status(201).json({ + success: true, + message: result.isNew ? '새 수리 유형이 추가되었습니다.' : '기존 수리 유형을 사용합니다.', + data: result + }); + }); + } catch (error) { + console.error('수리 항목 추가 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다.' + }); + } + } +}; + +module.exports = EquipmentController; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/issueTypeController.js b/deploy/tkfb-package/api.hyungi.net/controllers/issueTypeController.js new file mode 100644 index 0000000..96cb434 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/issueTypeController.js @@ -0,0 +1,65 @@ +/** + * 이슈 유형 관리 컨트롤러 + * + * 이슈 유형(카테고리/서브카테고리) CRUD API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const issueTypeService = require('../services/issueTypeService'); +const { asyncHandler } = require('../middlewares/errorHandler'); + +/** + * 이슈 유형 생성 + */ +exports.createIssueType = asyncHandler(async (req, res) => { + const result = await issueTypeService.createIssueTypeService(req.body); + + res.status(201).json({ + success: true, + data: result, + message: '이슈 유형이 성공적으로 생성되었습니다' + }); +}); + +/** + * 전체 이슈 유형 조회 + */ +exports.getAllIssueTypes = asyncHandler(async (req, res) => { + const rows = await issueTypeService.getAllIssueTypesService(); + + res.json({ + success: true, + data: rows, + message: '이슈 유형 목록 조회 성공' + }); +}); + +/** + * 이슈 유형 수정 + */ +exports.updateIssueType = asyncHandler(async (req, res) => { + const id = parseInt(req.params.id, 10); + const result = await issueTypeService.updateIssueTypeService(id, req.body); + + res.json({ + success: true, + data: result, + message: '이슈 유형이 성공적으로 수정되었습니다' + }); +}); + +/** + * 이슈 유형 삭제 + */ +exports.removeIssueType = asyncHandler(async (req, res) => { + const id = parseInt(req.params.id, 10); + const result = await issueTypeService.removeIssueTypeService(id); + + res.json({ + success: true, + data: result, + message: '이슈 유형이 성공적으로 삭제되었습니다' + }); +}); diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/monthlyStatusController.js b/deploy/tkfb-package/api.hyungi.net/controllers/monthlyStatusController.js new file mode 100644 index 0000000..c34c5df --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/monthlyStatusController.js @@ -0,0 +1,231 @@ +/** + * 월별 작업자 상태 집계 컨트롤러 + * + * 월별 캘린더 및 작업자 상태 집계 API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const MonthlyStatusModel = require('../models/monthlyStatusModel'); +const { ValidationError, ForbiddenError, DatabaseError } = require('../utils/errors'); +const { asyncHandler } = require('../middlewares/errorHandler'); +const logger = require('../utils/logger'); + +/** + * 월별 캘린더 데이터 조회 + */ +const getMonthlyCalendarData = asyncHandler(async (req, res) => { + const { year, month } = req.query; + + if (!year || !month) { + throw new ValidationError('연도(year)와 월(month)이 필요합니다', { + required: ['year', 'month'], + received: { year, month } + }); + } + + const yearNum = parseInt(year); + const monthNum = parseInt(month); + + if (yearNum < 2020 || yearNum > 2030 || monthNum < 1 || monthNum > 12) { + throw new ValidationError('유효하지 않은 연도 또는 월입니다', { + received: { year: yearNum, month: monthNum } + }); + } + + logger.info('월별 캘린더 데이터 조회 요청', { year: yearNum, month: monthNum }); + + try { + const summaryData = await MonthlyStatusModel.getMonthlySummary(yearNum, monthNum); + + // 날짜별 객체로 변환 + const calendarData = {}; + summaryData.forEach(day => { + const dateKey = day.date.toISOString().split('T')[0]; + calendarData[dateKey] = { + totalWorkers: day.total_workers, + workingWorkers: day.working_workers, + hasIssues: day.has_issues, + hasErrors: day.has_errors, + hasOvertimeWarning: day.has_overtime_warning, + incompleteWorkers: day.incomplete_workers, + partialWorkers: day.partial_workers, + errorWorkers: day.error_workers, + overtimeWarningWorkers: day.overtime_warning_workers, + totalHours: parseFloat(day.total_work_hours || 0), + totalTasks: day.total_work_count, + errorCount: day.total_error_count, + lastUpdated: day.last_updated + }; + }); + + logger.info('월별 캘린더 데이터 조회 성공', { + year: yearNum, + month: monthNum, + dayCount: Object.keys(calendarData).length + }); + + res.json({ + success: true, + data: calendarData, + message: `${year}년 ${month}월 캘린더 데이터를 성공적으로 조회했습니다` + }); + } catch (error) { + logger.error('월별 캘린더 데이터 조회 실패', { + year: yearNum, + month: monthNum, + error: error.message + }); + throw new DatabaseError('월별 캘린더 데이터 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 특정 날짜의 작업자별 상세 상태 조회 + */ +const getDailyWorkerDetails = asyncHandler(async (req, res) => { + const { date } = req.query; + + if (!date) { + throw new ValidationError('날짜(date)가 필요합니다', { + required: ['date'], + received: { date } + }); + } + + logger.info('일별 작업자 상세 조회 요청', { date }); + + try { + const workerDetails = await MonthlyStatusModel.getDailyWorkerStatus(date); + + // 데이터 변환 + const formattedData = workerDetails.map(worker => ({ + workerId: worker.worker_id, + workerName: worker.worker_name, + jobType: worker.job_type, + totalHours: parseFloat(worker.total_work_hours || 0), + actualWorkHours: parseFloat(worker.actual_work_hours || 0), + vacationHours: parseFloat(worker.vacation_hours || 0), + totalWorkCount: worker.total_work_count, + regularWorkCount: worker.regular_work_count, + errorWorkCount: worker.error_work_count, + status: worker.work_status, + hasVacation: worker.has_vacation, + hasError: worker.has_error, + hasIssues: worker.has_issues, + lastUpdated: worker.last_updated + })); + + // 요약 정보 계산 + const summary = { + totalWorkers: formattedData.length, + totalHours: formattedData.reduce((sum, w) => sum + w.totalHours, 0), + totalTasks: formattedData.reduce((sum, w) => sum + w.totalWorkCount, 0), + errorCount: formattedData.reduce((sum, w) => sum + w.errorWorkCount, 0) + }; + + logger.info('일별 작업자 상세 조회 성공', { + date, + workerCount: formattedData.length, + totalHours: summary.totalHours + }); + + res.json({ + success: true, + data: { + workers: formattedData, + summary + }, + message: `${date} 작업자 상세 정보를 성공적으로 조회했습니다` + }); + } catch (error) { + logger.error('일별 작업자 상세 조회 실패', { + date, + error: error.message + }); + throw new DatabaseError('일별 작업자 상세 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 월별 집계 재계산 (관리자용) + */ +const recalculateMonth = asyncHandler(async (req, res) => { + const { year, month } = req.body; + + if (!year || !month) { + throw new ValidationError('연도(year)와 월(month)이 필요합니다', { + required: ['year', 'month'], + received: { year, month } + }); + } + + // 관리자 권한 확인 + if (req.user.role !== 'admin' && req.user.role !== 'system') { + throw new ForbiddenError('관리자 권한이 필요합니다'); + } + + logger.info('월별 집계 재계산 시작', { + year, + month, + requestedBy: req.user.username + }); + + try { + const result = await MonthlyStatusModel.recalculateMonth(parseInt(year), parseInt(month)); + + logger.info('월별 집계 재계산 성공', { year, month, result }); + + res.json({ + success: true, + data: result, + message: `${year}년 ${month}월 집계 재계산이 완료되었습니다` + }); + } catch (error) { + logger.error('월별 집계 재계산 실패', { + year, + month, + error: error.message + }); + throw new DatabaseError('월별 집계 재계산 중 오류가 발생했습니다'); + } +}); + +/** + * 집계 테이블 상태 확인 (관리자용) + */ +const getStatusInfo = asyncHandler(async (req, res) => { + // 관리자 권한 확인 + if (req.user.role !== 'admin' && req.user.role !== 'system') { + throw new ForbiddenError('관리자 권한이 필요합니다'); + } + + logger.info('집계 테이블 상태 확인 요청', { + requestedBy: req.user.username + }); + + try { + const statusInfo = await MonthlyStatusModel.getStatusInfo(); + + logger.info('집계 테이블 상태 확인 성공'); + + res.json({ + success: true, + data: statusInfo, + message: '집계 테이블 상태 정보를 성공적으로 조회했습니다' + }); + } catch (error) { + logger.error('집계 테이블 상태 확인 실패', { + error: error.message + }); + throw new DatabaseError('집계 테이블 상태 확인 중 오류가 발생했습니다'); + } +}); + +module.exports = { + getMonthlyCalendarData, + getDailyWorkerDetails, + recalculateMonth, + getStatusInfo +}; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/notificationController.js b/deploy/tkfb-package/api.hyungi.net/controllers/notificationController.js new file mode 100644 index 0000000..2863a19 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/notificationController.js @@ -0,0 +1,165 @@ +// controllers/notificationController.js +const notificationModel = require('../models/notificationModel'); + +const notificationController = { + // 읽지 않은 알림 조회 + async getUnread(req, res) { + try { + const userId = req.user?.id || null; + const notifications = await notificationModel.getUnread(userId); + + res.json({ + success: true, + data: notifications + }); + } catch (error) { + console.error('읽지 않은 알림 조회 오류:', error); + res.status(500).json({ + success: false, + message: '알림 조회 중 오류가 발생했습니다.' + }); + } + }, + + // 전체 알림 조회 + async getAll(req, res) { + try { + const userId = req.user?.id || null; + const page = parseInt(req.query.page) || 1; + const limit = parseInt(req.query.limit) || 20; + + const result = await notificationModel.getAll(userId, page, limit); + + res.json({ + success: true, + data: result.notifications, + pagination: { + total: result.total, + page: result.page, + limit: result.limit, + totalPages: Math.ceil(result.total / result.limit) + } + }); + } catch (error) { + console.error('알림 목록 조회 오류:', error); + res.status(500).json({ + success: false, + message: '알림 조회 중 오류가 발생했습니다.' + }); + } + }, + + // 읽지 않은 알림 개수 + async getUnreadCount(req, res) { + try { + const userId = req.user?.id || null; + const count = await notificationModel.getUnreadCount(userId); + + res.json({ + success: true, + data: { count } + }); + } catch (error) { + console.error('알림 개수 조회 오류:', error); + res.status(500).json({ + success: false, + message: '알림 개수 조회 중 오류가 발생했습니다.' + }); + } + }, + + // 알림 읽음 처리 + async markAsRead(req, res) { + try { + const { id } = req.params; + const success = await notificationModel.markAsRead(id); + + res.json({ + success, + message: success ? '알림을 읽음 처리했습니다.' : '알림을 찾을 수 없습니다.' + }); + } catch (error) { + console.error('알림 읽음 처리 오류:', error); + res.status(500).json({ + success: false, + message: '알림 처리 중 오류가 발생했습니다.' + }); + } + }, + + // 모든 알림 읽음 처리 + async markAllAsRead(req, res) { + try { + const userId = req.user?.id || null; + const count = await notificationModel.markAllAsRead(userId); + + res.json({ + success: true, + message: `${count}개의 알림을 읽음 처리했습니다.`, + data: { count } + }); + } catch (error) { + console.error('전체 읽음 처리 오류:', error); + res.status(500).json({ + success: false, + message: '알림 처리 중 오류가 발생했습니다.' + }); + } + }, + + // 알림 삭제 + async delete(req, res) { + try { + const { id } = req.params; + const success = await notificationModel.delete(id); + + res.json({ + success, + message: success ? '알림을 삭제했습니다.' : '알림을 찾을 수 없습니다.' + }); + } catch (error) { + console.error('알림 삭제 오류:', error); + res.status(500).json({ + success: false, + message: '알림 삭제 중 오류가 발생했습니다.' + }); + } + }, + + // 알림 생성 (시스템용) + async create(req, res) { + try { + const { type, title, message, link_url, user_id } = req.body; + + if (!title) { + return res.status(400).json({ + success: false, + message: '알림 제목은 필수입니다.' + }); + } + + const notificationId = await notificationModel.create({ + user_id, + type, + title, + message, + link_url, + created_by: req.user?.id + }); + + res.json({ + success: true, + message: '알림이 생성되었습니다.', + data: { notification_id: notificationId } + }); + } catch (error) { + console.error('알림 생성 오류:', error); + res.status(500).json({ + success: false, + message: '알림 생성 중 오류가 발생했습니다.' + }); + } + } +}; + +module.exports = notificationController; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/notificationRecipientController.js b/deploy/tkfb-package/api.hyungi.net/controllers/notificationRecipientController.js new file mode 100644 index 0000000..e3b4a00 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/notificationRecipientController.js @@ -0,0 +1,91 @@ +// controllers/notificationRecipientController.js +const notificationRecipientModel = require('../models/notificationRecipientModel'); + +const notificationRecipientController = { + // 알림 유형 목록 + getTypes: async (req, res) => { + try { + const types = notificationRecipientModel.getTypes(); + res.json({ success: true, data: types }); + } catch (error) { + console.error('알림 유형 조회 오류:', error); + res.status(500).json({ success: false, error: '알림 유형 조회 실패' }); + } + }, + + // 전체 수신자 목록 (유형별 그룹화) + getAll: async (req, res) => { + try { + console.log('🔔 알림 수신자 목록 조회 시작'); + const recipients = await notificationRecipientModel.getAll(); + console.log('✅ 알림 수신자 목록 조회 완료:', recipients); + res.json({ success: true, data: recipients }); + } catch (error) { + console.error('❌ 수신자 목록 조회 오류:', error.message); + console.error('❌ 스택:', error.stack); + res.status(500).json({ success: false, error: '수신자 목록 조회 실패', detail: error.message }); + } + }, + + // 유형별 수신자 조회 + getByType: async (req, res) => { + try { + const { type } = req.params; + const recipients = await notificationRecipientModel.getByType(type); + res.json({ success: true, data: recipients }); + } catch (error) { + console.error('수신자 조회 오류:', error); + res.status(500).json({ success: false, error: '수신자 조회 실패' }); + } + }, + + // 수신자 추가 + add: async (req, res) => { + try { + const { notification_type, user_id } = req.body; + + if (!notification_type || !user_id) { + return res.status(400).json({ success: false, error: '알림 유형과 사용자 ID가 필요합니다.' }); + } + + await notificationRecipientModel.add(notification_type, user_id, req.user?.user_id); + res.json({ success: true, message: '수신자가 추가되었습니다.' }); + } catch (error) { + console.error('수신자 추가 오류:', error); + res.status(500).json({ success: false, error: '수신자 추가 실패' }); + } + }, + + // 수신자 제거 + remove: async (req, res) => { + try { + const { type, userId } = req.params; + + await notificationRecipientModel.remove(type, userId); + res.json({ success: true, message: '수신자가 제거되었습니다.' }); + } catch (error) { + console.error('수신자 제거 오류:', error); + res.status(500).json({ success: false, error: '수신자 제거 실패' }); + } + }, + + // 유형별 수신자 일괄 설정 + setRecipients: async (req, res) => { + try { + const { type } = req.params; + const { user_ids } = req.body; + + if (!Array.isArray(user_ids)) { + return res.status(400).json({ success: false, error: 'user_ids 배열이 필요합니다.' }); + } + + await notificationRecipientModel.setRecipients(type, user_ids, req.user?.user_id); + res.json({ success: true, message: '수신자가 설정되었습니다.' }); + } catch (error) { + console.error('수신자 설정 오류:', error); + res.status(500).json({ success: false, error: '수신자 설정 실패' }); + } + } +}; + +module.exports = notificationRecipientController; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/pageAccessController.js b/deploy/tkfb-package/api.hyungi.net/controllers/pageAccessController.js new file mode 100644 index 0000000..0448e39 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/pageAccessController.js @@ -0,0 +1,200 @@ +// controllers/pageAccessController.js +const PageAccessModel = require('../models/pageAccessModel'); + +const PageAccessController = { + // 사용자의 페이지 권한 조회 + getUserPageAccess: (req, res) => { + const userId = parseInt(req.params.userId); + + if (isNaN(userId)) { + return res.status(400).json({ + success: false, + message: '유효하지 않은 사용자 ID입니다.' + }); + } + + PageAccessModel.getUserPageAccess(userId, (err, results) => { + if (err) { + console.error('페이지 권한 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '페이지 권한 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + }, + + // 모든 페이지 목록 조회 + getAllPages: (req, res) => { + PageAccessModel.getAllPages((err, results) => { + if (err) { + console.error('페이지 목록 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '페이지 목록 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + }, + + // 페이지 권한 부여 + grantPageAccess: (req, res) => { + const userId = parseInt(req.params.userId); + const { pageId } = req.body; + const grantedBy = req.user.user_id; + + if (isNaN(userId) || !pageId) { + return res.status(400).json({ + success: false, + message: '필수 파라미터가 누락되었습니다.' + }); + } + + PageAccessModel.grantPageAccess(userId, pageId, grantedBy, (err, result) => { + if (err) { + console.error('페이지 권한 부여 오류:', err); + return res.status(500).json({ + success: false, + message: '페이지 권한 부여 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + message: '페이지 권한이 부여되었습니다.', + data: result + }); + }); + }, + + // 페이지 권한 회수 + revokePageAccess: (req, res) => { + const userId = parseInt(req.params.userId); + const pageId = parseInt(req.params.pageId); + + if (isNaN(userId) || isNaN(pageId)) { + return res.status(400).json({ + success: false, + message: '유효하지 않은 파라미터입니다.' + }); + } + + PageAccessModel.revokePageAccess(userId, pageId, (err, result) => { + if (err) { + console.error('페이지 권한 회수 오류:', err); + return res.status(500).json({ + success: false, + message: '페이지 권한 회수 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + message: '페이지 권한이 회수되었습니다.', + data: result + }); + }); + }, + + // 사용자 페이지 권한 일괄 설정 + setUserPageAccess: (req, res) => { + const userId = parseInt(req.params.userId); + const { pageIds } = req.body; + const grantedBy = req.user.user_id; + + if (isNaN(userId)) { + return res.status(400).json({ + success: false, + message: '유효하지 않은 사용자 ID입니다.' + }); + } + + if (!Array.isArray(pageIds)) { + return res.status(400).json({ + success: false, + message: 'pageIds는 배열이어야 합니다.' + }); + } + + PageAccessModel.setUserPageAccess(userId, pageIds, grantedBy, (err, result) => { + if (err) { + console.error('페이지 권한 설정 오류:', err); + return res.status(500).json({ + success: false, + message: '페이지 권한 설정 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + message: '페이지 권한이 설정되었습니다.', + data: result + }); + }); + }, + + // 특정 페이지 접근 권한 확인 + checkPageAccess: (req, res) => { + const userId = req.user.user_id; + const { pageKey } = req.params; + + if (!pageKey) { + return res.status(400).json({ + success: false, + message: '페이지 키가 필요합니다.' + }); + } + + PageAccessModel.checkPageAccess(userId, pageKey, (err, result) => { + if (err) { + console.error('페이지 접근 권한 확인 오류:', err); + return res.status(500).json({ + success: false, + message: '페이지 접근 권한 확인 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: result + }); + }); + }, + + // 계정이 있는 사용자 목록 조회 (권한 관리용) + getUsersWithAccounts: (req, res) => { + PageAccessModel.getUsersWithAccounts((err, results) => { + if (err) { + console.error('사용자 목록 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '사용자 목록 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + } +}; + +module.exports = PageAccessController; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/patrolController.js b/deploy/tkfb-package/api.hyungi.net/controllers/patrolController.js new file mode 100644 index 0000000..daff992 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/patrolController.js @@ -0,0 +1,796 @@ +// patrolController.js +// 일일순회점검 시스템 컨트롤러 + +const PatrolModel = require('../models/patrolModel'); + +const PatrolController = { + // ==================== 순회점검 세션 ==================== + + // 세션 시작/조회 + getOrCreateSession: async (req, res) => { + try { + const { patrol_date, patrol_time, category_id } = req.body; + const inspectorId = req.user.user_id; + + if (!patrol_date || !patrol_time || !category_id) { + return res.status(400).json({ success: false, message: '필수 정보가 누락되었습니다.' }); + } + + const session = await PatrolModel.getOrCreateSession(patrol_date, patrol_time, category_id, inspectorId); + res.json({ success: true, data: session }); + } catch (error) { + console.error('세션 생성/조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 세션 상세 조회 + getSession: async (req, res) => { + try { + const { sessionId } = req.params; + const session = await PatrolModel.getSession(sessionId); + + if (!session) { + return res.status(404).json({ success: false, message: '세션을 찾을 수 없습니다.' }); + } + + res.json({ success: true, data: session }); + } catch (error) { + console.error('세션 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 세션 목록 조회 + getSessions: async (req, res) => { + try { + const { patrol_date, patrol_time, category_id, status, limit } = req.query; + const sessions = await PatrolModel.getSessions({ + patrol_date, + patrol_time, + category_id, + status, + limit + }); + res.json({ success: true, data: sessions }); + } catch (error) { + console.error('세션 목록 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 세션 완료 + completeSession: async (req, res) => { + try { + const { sessionId } = req.params; + await PatrolModel.completeSession(sessionId); + res.json({ success: true, message: '순회점검이 완료되었습니다.' }); + } catch (error) { + console.error('세션 완료 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 세션 메모 업데이트 + updateSessionNotes: async (req, res) => { + try { + const { sessionId } = req.params; + const { notes } = req.body; + await PatrolModel.updateSessionNotes(sessionId, notes); + res.json({ success: true, message: '메모가 저장되었습니다.' }); + } catch (error) { + console.error('메모 저장 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // ==================== 체크리스트 항목 ==================== + + // 체크리스트 항목 조회 + getChecklistItems: async (req, res) => { + try { + const { category_id, workplace_id } = req.query; + const items = await PatrolModel.getChecklistItems(category_id, workplace_id); + + // 카테고리별로 그룹화 + const grouped = {}; + items.forEach(item => { + if (!grouped[item.check_category]) { + grouped[item.check_category] = []; + } + grouped[item.check_category].push(item); + }); + + res.json({ success: true, data: { items, grouped } }); + } catch (error) { + console.error('체크리스트 항목 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 체크리스트 항목 추가 + createChecklistItem: async (req, res) => { + try { + const itemId = await PatrolModel.createChecklistItem(req.body); + res.json({ success: true, data: { item_id: itemId }, message: '항목이 추가되었습니다.' }); + } catch (error) { + console.error('항목 추가 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 체크리스트 항목 수정 + updateChecklistItem: async (req, res) => { + try { + const { itemId } = req.params; + await PatrolModel.updateChecklistItem(itemId, req.body); + res.json({ success: true, message: '항목이 수정되었습니다.' }); + } catch (error) { + console.error('항목 수정 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 체크리스트 항목 삭제 + deleteChecklistItem: async (req, res) => { + try { + const { itemId } = req.params; + await PatrolModel.deleteChecklistItem(itemId); + res.json({ success: true, message: '항목이 삭제되었습니다.' }); + } catch (error) { + console.error('항목 삭제 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // ==================== 체크 기록 ==================== + + // 작업장별 체크 기록 조회 + getCheckRecords: async (req, res) => { + try { + const { sessionId } = req.params; + const { workplace_id } = req.query; + const records = await PatrolModel.getCheckRecords(sessionId, workplace_id); + res.json({ success: true, data: records }); + } catch (error) { + console.error('체크 기록 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 체크 기록 저장 + saveCheckRecord: async (req, res) => { + try { + const { sessionId } = req.params; + const { workplace_id, check_item_id, is_checked, check_result, note } = req.body; + + if (!workplace_id || !check_item_id) { + return res.status(400).json({ success: false, message: '필수 정보가 누락되었습니다.' }); + } + + await PatrolModel.saveCheckRecord(sessionId, workplace_id, check_item_id, is_checked, check_result, note); + res.json({ success: true, message: '저장되었습니다.' }); + } catch (error) { + console.error('체크 기록 저장 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 체크 기록 일괄 저장 + saveCheckRecords: async (req, res) => { + try { + const { sessionId } = req.params; + const { workplace_id, records } = req.body; + + if (!workplace_id || !records || !Array.isArray(records)) { + return res.status(400).json({ success: false, message: '필수 정보가 누락되었습니다.' }); + } + + await PatrolModel.saveCheckRecords(sessionId, workplace_id, records); + res.json({ success: true, message: '저장되었습니다.' }); + } catch (error) { + console.error('체크 기록 일괄 저장 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // ==================== 작업장 물품 현황 ==================== + + // 작업장 물품 조회 + getWorkplaceItems: async (req, res) => { + try { + const { workplaceId } = req.params; + const { include_inactive } = req.query; + const items = await PatrolModel.getWorkplaceItems(workplaceId, include_inactive !== 'true'); + res.json({ success: true, data: items }); + } catch (error) { + console.error('물품 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 물품 추가 + createWorkplaceItem: async (req, res) => { + try { + const { workplaceId } = req.params; + const data = { ...req.body, workplace_id: workplaceId, created_by: req.user.user_id }; + const itemId = await PatrolModel.createWorkplaceItem(data); + res.json({ success: true, data: { item_id: itemId }, message: '물품이 추가되었습니다.' }); + } catch (error) { + console.error('물품 추가 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 물품 수정 + updateWorkplaceItem: async (req, res) => { + try { + const { itemId } = req.params; + await PatrolModel.updateWorkplaceItem(itemId, req.body, req.user.user_id); + res.json({ success: true, message: '물품이 수정되었습니다.' }); + } catch (error) { + console.error('물품 수정 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 물품 삭제 + deleteWorkplaceItem: async (req, res) => { + try { + const { itemId } = req.params; + const { permanent } = req.query; + + if (permanent === 'true') { + await PatrolModel.hardDeleteWorkplaceItem(itemId); + } else { + await PatrolModel.deleteWorkplaceItem(itemId, req.user.user_id); + } + res.json({ success: true, message: '물품이 삭제되었습니다.' }); + } catch (error) { + console.error('물품 삭제 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // ==================== 물품 유형 ==================== + + // 물품 유형 목록 + getItemTypes: async (req, res) => { + try { + const types = await PatrolModel.getItemTypes(); + res.json({ success: true, data: types }); + } catch (error) { + console.error('물품 유형 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // ==================== 대시보드/통계 ==================== + + // 오늘 순회점검 현황 + getTodayStatus: async (req, res) => { + try { + const { category_id } = req.query; + const status = await PatrolModel.getTodayPatrolStatus(category_id); + res.json({ success: true, data: status }); + } catch (error) { + console.error('오늘 현황 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 작업장별 점검 현황 + getWorkplaceCheckStatus: async (req, res) => { + try { + const { sessionId } = req.params; + const status = await PatrolModel.getWorkplaceCheckStatus(sessionId); + res.json({ success: true, data: status }); + } catch (error) { + console.error('작업장별 점검 현황 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // ==================== 작업장 상세 정보 (통합) ==================== + + // 작업장 상세 정보 조회 (시설물, 안전신고, 부적합, 출입, TBM) + getWorkplaceDetail: async (req, res) => { + try { + const { workplaceId } = req.params; + const { date } = req.query; // 기본: 오늘 + const targetDate = date || new Date().toISOString().slice(0, 10); + const { getDb } = require('../dbPool'); + const db = await getDb(); + + // 1. 작업장 기본 정보 (카테고리 지도 이미지 포함) + const [workplaceInfo] = await db.query(` + SELECT w.*, wc.category_name, wc.layout_image as category_layout_image + FROM workplaces w + LEFT JOIN workplace_categories wc ON w.category_id = wc.category_id + WHERE w.workplace_id = ? + `, [workplaceId]); + + if (!workplaceInfo.length) { + return res.status(404).json({ success: false, message: '작업장을 찾을 수 없습니다.' }); + } + + // 2. 설비 현황 (해당 작업장 - 원래 위치 또는 현재 위치) + let equipments = []; + try { + const [eqResult] = await db.query(` + SELECT e.equipment_id, e.equipment_name, e.equipment_code, e.equipment_type, + e.status, e.notes, e.workplace_id, + e.map_x_percent, e.map_y_percent, e.map_width_percent, e.map_height_percent, + e.is_temporarily_moved, e.current_workplace_id, + e.current_map_x_percent, e.current_map_y_percent, + e.current_map_width_percent, e.current_map_height_percent, + e.moved_at, + ow.workplace_name as original_workplace_name, + cw.workplace_name as current_workplace_name, + CASE + WHEN e.status IN ('maintenance', 'repair_needed', 'repair_external') THEN 1 + WHEN e.is_temporarily_moved = 1 THEN 1 + ELSE 0 + END as needs_attention + FROM equipments e + LEFT JOIN workplaces ow ON e.workplace_id = ow.workplace_id + LEFT JOIN workplaces cw ON e.current_workplace_id = cw.workplace_id + WHERE (e.workplace_id = ? OR e.current_workplace_id = ?) + AND e.status != 'inactive' + ORDER BY needs_attention DESC, e.equipment_name + `, [workplaceId, workplaceId]); + equipments = eqResult; + } catch (eqError) { + console.log('설비 조회 스킵 (테이블 없음 또는 오류):', eqError.message); + } + + // 3. 수리 요청 현황 (미완료) - 테이블 존재 여부 확인 후 조회 + let repairRequests = []; + try { + const [repairResult] = await db.query(` + SELECT er.request_id, er.request_date, er.repair_category, er.description, + er.priority, er.status, e.equipment_name, e.equipment_code + FROM equipment_repair_requests er + JOIN equipments e ON er.equipment_id = e.equipment_id + WHERE e.workplace_id = ? AND er.status NOT IN ('completed', 'cancelled') + ORDER BY + CASE er.priority WHEN 'emergency' THEN 1 WHEN 'high' THEN 2 WHEN 'normal' THEN 3 ELSE 4 END, + er.request_date DESC + LIMIT 10 + `, [workplaceId]); + repairRequests = repairResult; + } catch (repairError) { + console.log('수리요청 조회 스킵 (테이블 없음 또는 오류):', repairError.message); + } + + // 4. 안전 신고 및 부적합 사항 - 테이블 존재 여부 확인 후 조회 + let workIssues = []; + try { + const [issueResult] = await db.query(` + SELECT wi.report_id, wi.issue_type, wi.title, wi.description, + wi.status, wi.severity, wi.created_at, wi.resolved_at, + wic.category_name, wic.issue_type as category_type, + u.name as reporter_name + FROM work_issue_reports wi + LEFT JOIN work_issue_categories wic ON wi.category_id = wic.category_id + LEFT JOIN Users u ON wi.reporter_id = u.user_id + WHERE wi.workplace_id = ? + AND wi.created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY) + ORDER BY wi.created_at DESC + LIMIT 20 + `, [workplaceId]); + workIssues = issueResult; + } catch (issueError) { + console.log('신고 조회 스킵 (테이블 없음 또는 오류):', issueError.message); + } + + // 5. 오늘의 출입 기록 (해당 공장 카테고리) + const categoryId = workplaceInfo[0].category_id; + let visitRecords = []; + try { + const [visitResult] = await db.query(` + SELECT vr.request_id, vr.visitor_name, vr.visitor_company, vr.visit_purpose, + vr.visit_date, vr.visit_time_from, vr.visit_time_to, vr.status, + vr.vehicle_number, vr.companion_count, + vp.purpose_name, u.name as requester_name + FROM visit_requests vr + LEFT JOIN visit_purposes vp ON vr.purpose_id = vp.purpose_id + LEFT JOIN Users u ON vr.requester_id = u.user_id + WHERE vr.category_id = ? AND vr.visit_date = ? AND vr.status = 'approved' + ORDER BY vr.visit_time_from + `, [categoryId, targetDate]); + visitRecords = visitResult; + } catch (visitError) { + console.log('출입기록 조회 스킵 (테이블 없음 또는 오류):', visitError.message); + } + + // 6. 오늘의 TBM 세션 (해당 공장 카테고리) + let tbmSessions = []; + try { + const [tbmResult] = await db.query(` + SELECT ts.session_id, ts.session_date, ts.work_location, ts.status, + ts.work_content, ts.safety_measures, ts.team_size, + t.task_name, wt.name as work_type_name, + u.name as leader_name, w.worker_name as leader_worker_name + FROM tbm_sessions ts + LEFT JOIN tasks t ON ts.task_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + LEFT JOIN Users u ON ts.leader_id = u.user_id + LEFT JOIN workers w ON ts.leader_worker_id = w.worker_id + WHERE ts.category_id = ? AND ts.session_date = ? + ORDER BY ts.created_at DESC + `, [categoryId, targetDate]); + tbmSessions = tbmResult; + } catch (tbmError) { + console.log('TBM 조회 스킵 (테이블 없음 또는 오류):', tbmError.message); + } + + // 7. TBM 팀원 정보 (세션별) + let tbmWithTeams = []; + try { + tbmWithTeams = await Promise.all(tbmSessions.map(async (session) => { + const [team] = await db.query(` + SELECT tta.assignment_id, w.worker_name, w.occupation, + tta.attendance_status, tta.signature_image + FROM tbm_team_assignments tta + JOIN workers w ON tta.worker_id = w.worker_id + WHERE tta.session_id = ? + ORDER BY w.worker_name + `, [session.session_id]); + return { ...session, team }; + })); + } catch (teamError) { + console.log('TBM 팀원 조회 스킵:', teamError.message); + tbmWithTeams = tbmSessions.map(s => ({ ...s, team: [] })); + } + + // 8. 최근 순회점검 결과 (해당 작업장) + let recentPatrol = []; + try { + const [patrolResult] = await db.query(` + SELECT ps.session_id, ps.patrol_date, ps.patrol_time, ps.status, + ps.notes, u.name as inspector_name, + (SELECT COUNT(*) FROM patrol_check_records pcr + WHERE pcr.session_id = ps.session_id AND pcr.workplace_id = ?) as checked_count, + (SELECT COUNT(*) FROM patrol_check_records pcr + WHERE pcr.session_id = ps.session_id AND pcr.workplace_id = ? + AND pcr.check_result IN ('warning', 'bad')) as issue_count + FROM patrol_sessions ps + LEFT JOIN Users u ON ps.inspector_id = u.user_id + WHERE ps.category_id = ? AND ps.patrol_date >= DATE_SUB(NOW(), INTERVAL 7 DAY) + ORDER BY ps.patrol_date DESC, ps.patrol_time DESC + LIMIT 5 + `, [workplaceId, workplaceId, categoryId]); + recentPatrol = patrolResult; + } catch (patrolError) { + console.log('순회점검 조회 스킵 (테이블 없음 또는 오류):', patrolError.message); + } + + res.json({ + success: true, + data: { + workplace: workplaceInfo[0], + equipments: equipments, + repairRequests: repairRequests, + workIssues: { + safety: workIssues.filter(i => i.category_type === 'safety'), + nonconformity: workIssues.filter(i => i.category_type === 'nonconformity'), + all: workIssues + }, + visitRecords: visitRecords, + tbmSessions: tbmWithTeams, + recentPatrol: recentPatrol, + summary: { + equipmentCount: equipments.length, + needsAttention: equipments.filter(e => e.needs_attention).length, + pendingRepairs: repairRequests.length, + openIssues: workIssues.filter(i => i.status !== 'closed').length, + todayVisitors: visitRecords.reduce((sum, v) => sum + 1 + (v.companion_count || 0), 0), + todayTbmSessions: tbmSessions.length + } + } + }); + } catch (error) { + console.error('작업장 상세 정보 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // ==================== 구역 내 등록 물품/시설물 ==================== + + // 구역 내 물품/시설물 목록 조회 + getZoneItems: async (req, res) => { + try { + const { workplaceId } = req.params; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + // 테이블이 없으면 생성 + await db.query(` + CREATE TABLE IF NOT EXISTS workplace_zone_items ( + item_id INT AUTO_INCREMENT PRIMARY KEY, + workplace_id INT NOT NULL, + item_name VARCHAR(200) NOT NULL COMMENT '물품/시설물 명칭', + item_type VARCHAR(50) DEFAULT 'general' COMMENT '유형 (heavy_equipment, hazardous, storage, general 등)', + description TEXT COMMENT '상세 설명', + x_percent DECIMAL(5,2) NOT NULL COMMENT '영역 시작 X 좌표 (%)', + y_percent DECIMAL(5,2) NOT NULL COMMENT '영역 시작 Y 좌표 (%)', + width_percent DECIMAL(5,2) DEFAULT 10 COMMENT '영역 너비 (%)', + height_percent DECIMAL(5,2) DEFAULT 10 COMMENT '영역 높이 (%)', + color VARCHAR(20) DEFAULT '#3b82f6' COMMENT '표시 색상', + warning_level VARCHAR(20) DEFAULT 'normal' COMMENT '주의 수준 (normal, caution, danger)', + quantity INT DEFAULT 1 COMMENT '수량', + unit VARCHAR(20) DEFAULT '개' COMMENT '단위', + weight_kg DECIMAL(10,2) DEFAULT NULL COMMENT '중량 (kg)', + is_active BOOLEAN DEFAULT TRUE, + created_by INT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + INDEX idx_workplace (workplace_id), + INDEX idx_type (item_type) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='구역 내 등록 물품/시설물' + `); + + // 새 컬럼 추가 (없으면) + try { + await db.query(`ALTER TABLE workplace_zone_items ADD COLUMN project_type VARCHAR(20) DEFAULT 'non_project'`); + } catch (e) { /* 이미 존재 */ } + try { + await db.query(`ALTER TABLE workplace_zone_items ADD COLUMN project_id INT NULL`); + } catch (e) { /* 이미 존재 */ } + + const [items] = await db.query(` + SELECT zi.*, p.project_name + FROM workplace_zone_items zi + LEFT JOIN projects p ON zi.project_id = p.project_id + WHERE zi.workplace_id = ? AND zi.is_active = TRUE + ORDER BY zi.warning_level DESC, zi.item_name + `, [workplaceId]); + + // 사진 테이블 존재 확인 및 사진 조회 + try { + for (const item of items) { + const [photos] = await db.query(` + SELECT photo_id, photo_url, created_at + FROM zone_item_photos + WHERE item_id = ? + ORDER BY created_at DESC + `, [item.item_id]); + item.photos = photos || []; + } + } catch (e) { + // 사진 테이블이 없으면 무시 + items.forEach(item => item.photos = []); + } + + res.json({ success: true, data: items }); + } catch (error) { + console.error('구역 물품 목록 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 구역 현황 등록 + createZoneItem: async (req, res) => { + try { + const { workplaceId } = req.params; + const { item_name, item_type, description, x_percent, y_percent, width_percent, height_percent, + color, warning_level, project_type, project_id } = req.body; + const createdBy = req.user?.user_id; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + if (!item_name || x_percent === undefined || y_percent === undefined) { + return res.status(400).json({ success: false, message: '필수 정보가 누락되었습니다.' }); + } + + // 테이블에 새 컬럼 추가 (없으면) + try { + await db.query(`ALTER TABLE workplace_zone_items ADD COLUMN project_type VARCHAR(20) DEFAULT 'non_project'`); + } catch (e) { /* 이미 존재 */ } + try { + await db.query(`ALTER TABLE workplace_zone_items ADD COLUMN project_id INT NULL`); + } catch (e) { /* 이미 존재 */ } + + const [result] = await db.query(` + INSERT INTO workplace_zone_items + (workplace_id, item_name, item_type, description, x_percent, y_percent, width_percent, height_percent, + color, warning_level, project_type, project_id, created_by) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, [workplaceId, item_name, item_type || 'working', description, x_percent, y_percent, + width_percent || 5, height_percent || 5, color || '#3b82f6', warning_level || 'good', + project_type || 'non_project', project_id || null, createdBy]); + + const newItemId = result.insertId; + + // 등록 이력 저장 + try { + await db.query(` + INSERT INTO zone_item_history (item_id, action_type, new_values, changed_by) + VALUES (?, 'created', ?, ?) + `, [newItemId, JSON.stringify({ item_name, item_type, warning_level, project_type }), createdBy]); + } catch (e) { /* 테이블 없으면 무시 */ } + + res.json({ + success: true, + data: { item_id: newItemId }, + message: '현황이 등록되었습니다.' + }); + } catch (error) { + console.error('구역 현황 등록 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 구역 현황 수정 + updateZoneItem: async (req, res) => { + try { + const { itemId } = req.params; + const { item_name, item_type, description, x_percent, y_percent, width_percent, height_percent, + color, warning_level, project_type, project_id } = req.body; + const userId = req.user?.user_id; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + // 이력 테이블 생성 (없으면) + await db.query(` + CREATE TABLE IF NOT EXISTS zone_item_history ( + history_id INT AUTO_INCREMENT PRIMARY KEY, + item_id INT NOT NULL, + action_type VARCHAR(20) NOT NULL COMMENT 'created, updated, deleted', + changed_fields TEXT COMMENT '변경된 필드 JSON', + old_values TEXT COMMENT '이전 값 JSON', + new_values TEXT COMMENT '새 값 JSON', + changed_by INT, + changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + INDEX idx_item (item_id), + INDEX idx_date (changed_at) + ) + `); + + // 기존 데이터 조회 (이력용) + const [oldData] = await db.query(`SELECT * FROM workplace_zone_items WHERE item_id = ?`, [itemId]); + const oldItem = oldData[0]; + + // 업데이트 + await db.query(` + UPDATE workplace_zone_items SET + item_name = COALESCE(?, item_name), + item_type = COALESCE(?, item_type), + description = ?, + x_percent = COALESCE(?, x_percent), + y_percent = COALESCE(?, y_percent), + width_percent = COALESCE(?, width_percent), + height_percent = COALESCE(?, height_percent), + color = COALESCE(?, color), + warning_level = COALESCE(?, warning_level), + project_type = COALESCE(?, project_type), + project_id = ? + WHERE item_id = ? + `, [item_name, item_type, description, x_percent, y_percent, width_percent, height_percent, + color, warning_level, project_type, project_id, itemId]); + + // 변경 이력 저장 + if (oldItem) { + const changedFields = []; + const oldValues = {}; + const newValues = {}; + + const fieldMap = { item_name, item_type, description, warning_level, project_type, project_id }; + for (const [key, newVal] of Object.entries(fieldMap)) { + if (newVal !== undefined && oldItem[key] !== newVal) { + changedFields.push(key); + oldValues[key] = oldItem[key]; + newValues[key] = newVal; + } + } + + if (changedFields.length > 0) { + await db.query(` + INSERT INTO zone_item_history (item_id, action_type, changed_fields, old_values, new_values, changed_by) + VALUES (?, 'updated', ?, ?, ?, ?) + `, [itemId, JSON.stringify(changedFields), JSON.stringify(oldValues), JSON.stringify(newValues), userId]); + } + } + + res.json({ success: true, message: '현황이 수정되었습니다.' }); + } catch (error) { + console.error('구역 현황 수정 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 구역 현황 사진 업로드 + uploadZoneItemPhoto: async (req, res) => { + try { + const { item_id } = req.body; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + if (!req.file) { + return res.status(400).json({ success: false, message: '파일이 없습니다.' }); + } + + // 사진 테이블 생성 (없으면) + await db.query(` + CREATE TABLE IF NOT EXISTS zone_item_photos ( + photo_id INT AUTO_INCREMENT PRIMARY KEY, + item_id INT NOT NULL, + photo_url VARCHAR(500) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + INDEX idx_item_id (item_id) + ) + `); + + const photoUrl = `/uploads/${req.file.filename}`; + const [result] = await db.query( + `INSERT INTO zone_item_photos (item_id, photo_url) VALUES (?, ?)`, + [item_id, photoUrl] + ); + + res.json({ + success: true, + data: { photo_id: result.insertId, photo_url: photoUrl }, + message: '사진이 업로드되었습니다.' + }); + } catch (error) { + console.error('사진 업로드 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 구역 현황 삭제 + deleteZoneItem: async (req, res) => { + try { + const { itemId } = req.params; + const userId = req.user?.user_id; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + // 기존 데이터 조회 (이력용) + const [oldData] = await db.query(`SELECT * FROM workplace_zone_items WHERE item_id = ?`, [itemId]); + const oldItem = oldData[0]; + + // 소프트 삭제 + await db.query(`UPDATE workplace_zone_items SET is_active = FALSE WHERE item_id = ?`, [itemId]); + + // 삭제 이력 저장 + if (oldItem) { + await db.query(` + INSERT INTO zone_item_history (item_id, action_type, old_values, changed_by) + VALUES (?, 'deleted', ?, ?) + `, [itemId, JSON.stringify({ item_name: oldItem.item_name, item_type: oldItem.item_type }), userId]); + } + + res.json({ success: true, message: '현황이 삭제되었습니다.' }); + } catch (error) { + console.error('구역 현황 삭제 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + }, + + // 구역 현황 이력 조회 + getZoneItemHistory: async (req, res) => { + try { + const { itemId } = req.params; + const { getDb } = require('../dbPool'); + const db = await getDb(); + + const [history] = await db.query(` + SELECT h.*, u.full_name as changed_by_name + FROM zone_item_history h + LEFT JOIN users u ON h.changed_by = u.user_id + WHERE h.item_id = ? + ORDER BY h.changed_at DESC + LIMIT 50 + `, [itemId]); + + res.json({ success: true, data: history }); + } catch (error) { + console.error('현황 이력 조회 오류:', error); + res.status(500).json({ success: false, message: '서버 오류가 발생했습니다.' }); + } + } +}; + +module.exports = PatrolController; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/projectController.js b/deploy/tkfb-package/api.hyungi.net/controllers/projectController.js new file mode 100644 index 0000000..0eccedb --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/projectController.js @@ -0,0 +1,142 @@ +/** + * 프로젝트 관리 컨트롤러 + * + * 프로젝트 CRUD API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const projectModel = require('../models/projectModel'); +const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); +const { asyncHandler } = require('../middlewares/errorHandler'); +const logger = require('../utils/logger'); +const cache = require('../utils/cache'); + +/** + * 프로젝트 생성 + */ +exports.createProject = asyncHandler(async (req, res) => { + const projectData = req.body; + + logger.info('프로젝트 생성 요청', { name: projectData.name }); + + const id = await projectModel.create(projectData); + + // 프로젝트 캐시 무효화 + await cache.invalidateCache.project(); + + logger.info('프로젝트 생성 성공', { project_id: id }); + + res.status(201).json({ + success: true, + data: { project_id: id }, + message: '프로젝트가 성공적으로 생성되었습니다' + }); +}); + +/** + * 전체 프로젝트 조회 + */ +exports.getAllProjects = asyncHandler(async (req, res) => { + const rows = await projectModel.getAll(); + + res.json({ + success: true, + data: rows, + message: '프로젝트 목록 조회 성공' + }); +}); + +/** + * 활성 프로젝트만 조회 (작업보고서용) + */ +exports.getActiveProjects = asyncHandler(async (req, res) => { + const rows = await projectModel.getActiveProjects(); + + res.json({ + success: true, + data: rows, + message: '활성 프로젝트 목록 조회 성공' + }); +}); + +/** + * 단일 프로젝트 조회 + */ +exports.getProjectById = asyncHandler(async (req, res) => { + const id = parseInt(req.params.project_id, 10); + + if (isNaN(id)) { + throw new ValidationError('유효하지 않은 프로젝트 ID입니다'); + } + + const row = await projectModel.getById(id); + + if (!row) { + throw new NotFoundError('프로젝트를 찾을 수 없습니다'); + } + + res.json({ + success: true, + data: row, + message: '프로젝트 조회 성공' + }); +}); + +/** + * 프로젝트 수정 + */ +exports.updateProject = asyncHandler(async (req, res) => { + const id = parseInt(req.params.project_id, 10); + + if (isNaN(id)) { + throw new ValidationError('유효하지 않은 프로젝트 ID입니다'); + } + + const data = { ...req.body, project_id: id }; + + const changes = await projectModel.update(data); + + if (changes === 0) { + throw new NotFoundError('프로젝트를 찾을 수 없습니다'); + } + + // 프로젝트 캐시 무효화 + await cache.invalidateCache.project(); + + logger.info('프로젝트 수정 성공', { project_id: id }); + + res.json({ + success: true, + data: { changes }, + message: '프로젝트 정보가 성공적으로 수정되었습니다' + }); +}); + +/** + * 프로젝트 삭제 + */ +exports.removeProject = asyncHandler(async (req, res) => { + const id = parseInt(req.params.project_id, 10); + + if (isNaN(id)) { + throw new ValidationError('유효하지 않은 프로젝트 ID입니다'); + } + + const changes = await projectModel.remove(id); + + if (changes === 0) { + throw new NotFoundError('프로젝트를 찾을 수 없습니다'); + } + + // 프로젝트 캐시 무효화 + await cache.invalidateCache.project(); + + logger.info('프로젝트 삭제 성공', { project_id: id }); + + res.json({ + success: true, + message: '프로젝트가 성공적으로 삭제되었습니다' + }); +}); diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/systemController.js b/deploy/tkfb-package/api.hyungi.net/controllers/systemController.js new file mode 100644 index 0000000..d03da90 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/systemController.js @@ -0,0 +1,467 @@ +// 시스템 관리 컨트롤러 +const { getDb } = require('../dbPool'); +const bcrypt = require('bcryptjs'); +const { ApiError, asyncHandler, handleDatabaseError } = require('../utils/errorHandler'); +const { validateSchema, schemas } = require('../utils/validator'); + +/** + * 시스템 상태 확인 + */ +exports.getSystemStatus = asyncHandler(async (req, res) => { + try { + const db = await getDb(); + + // 데이터베이스 연결 상태 확인 + const [dbStatus] = await db.query('SELECT 1 as status'); + + // 시스템 상태 정보 + const systemStatus = { + server: 'online', + database: dbStatus.length > 0 ? 'online' : 'offline' + }; + + res.health('healthy', systemStatus); + + } catch (error) { + handleDatabaseError(error, '시스템 상태 확인'); + } +}); + +/** + * 데이터베이스 상태 확인 + */ +exports.getDatabaseStatus = asyncHandler(async (req, res) => { + try { + const db = await getDb(); + + // 데이터베이스 연결 수 확인 + const [connections] = await db.query('SHOW STATUS LIKE "Threads_connected"'); + const [maxConnections] = await db.query('SHOW VARIABLES LIKE "max_connections"'); + + // 데이터베이스 크기 확인 + const [dbSize] = await db.query(` + SELECT + ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS size_mb + FROM information_schema.tables + WHERE table_schema = DATABASE() + `); + + const dbStatus = { + status: 'online', + connections: parseInt(connections[0]?.Value || 0), + max_connections: parseInt(maxConnections[0]?.Value || 0), + size_mb: dbSize[0]?.size_mb || 0 + }; + + res.success(dbStatus, '데이터베이스 상태 조회 성공'); + + } catch (error) { + handleDatabaseError(error, '데이터베이스 상태 확인'); + } +}); + +/** + * 시스템 알림 조회 + */ +exports.getSystemAlerts = async (req, res) => { + try { + const db = await getDb(); + + // 최근 실패한 로그인 시도 + const [failedLogins] = await db.query(` + SELECT COUNT(*) as count + FROM login_logs + WHERE login_status = 'failed' + AND login_time > DATE_SUB(NOW(), INTERVAL 1 HOUR) + `); + + // 비활성 사용자 수 + const [inactiveusers] = await db.query(` + SELECT COUNT(*) as count + FROM users + WHERE is_active = 0 + `); + + const alerts = []; + + if (failedLogins[0]?.count > 5) { + alerts.push({ + type: 'security', + level: 'warning', + message: `최근 1시간 동안 ${failedLogins[0].count}회의 로그인 실패가 발생했습니다.`, + timestamp: new Date().toISOString() + }); + } + + if (inactiveusers[0]?.count > 0) { + alerts.push({ + type: 'user', + level: 'info', + message: `${inactiveusers[0].count}명의 비활성 사용자가 있습니다.`, + timestamp: new Date().toISOString() + }); + } + + res.json({ + success: true, + alerts: alerts + }); + + } catch (error) { + console.error('시스템 알림 조회 오류:', error); + res.status(500).json({ + success: false, + error: '시스템 알림을 조회할 수 없습니다.' + }); + } +}; + +/** + * 최근 시스템 활동 조회 + */ +exports.getRecentActivities = async (req, res) => { + try { + const db = await getDb(); + + // 최근 로그인 활동 + const [loginActivities] = await db.query(` + SELECT + ll.login_time as created_at, + u.name as user_name, + ll.login_status, + ll.ip_address, + 'login' as activity_type + FROM login_logs ll + LEFT JOIN users u ON ll.user_id = u.user_id + ORDER BY ll.login_time DESC + LIMIT 10 + `); + + // 비밀번호 변경 활동 + const [passwordActivities] = await db.query(` + SELECT + pcl.changed_at as created_at, + u.name as user_name, + pcl.change_type, + 'password_change' as activity_type + FROM password_change_logs pcl + LEFT JOIN users u ON pcl.user_id = u.user_id + ORDER BY pcl.changed_at DESC + LIMIT 5 + `); + + // 활동 통합 및 정렬 + const activities = [ + ...loginActivities.map(activity => ({ + type: activity.login_status === 'success' ? 'login' : 'login_failed', + title: activity.login_status === 'success' + ? `${activity.user_name || '알 수 없는 사용자'} 로그인` + : `로그인 실패 (${activity.ip_address})`, + description: activity.login_status === 'success' + ? `IP: ${activity.ip_address}` + : `사용자: ${activity.user_name || '알 수 없음'}`, + created_at: activity.created_at + })), + ...passwordActivities.map(activity => ({ + type: 'password_change', + title: `${activity.user_name || '알 수 없는 사용자'} 비밀번호 변경`, + description: `변경 유형: ${activity.change_type}`, + created_at: activity.created_at + })) + ]; + + // 시간순 정렬 + activities.sort((a, b) => new Date(b.created_at) - new Date(a.created_at)); + + res.json({ + success: true, + data: activities.slice(0, 15) + }); + + } catch (error) { + console.error('최근 활동 조회 오류:', error); + res.status(500).json({ + success: false, + error: '최근 활동을 조회할 수 없습니다.' + }); + } +}; + +/** + * 사용자 통계 조회 + */ +exports.getUserStats = async (req, res) => { + try { + const db = await getDb(); + + // 전체 사용자 수 + const [totalusers] = await db.query('SELECT COUNT(*) as count FROM users'); + + // 활성 사용자 수 + const [activeusers] = await db.query('SELECT COUNT(*) as count FROM users WHERE is_active = 1'); + + // 최근 24시간 로그인 사용자 수 + const [recentLogins] = await db.query(` + SELECT COUNT(DISTINCT user_id) as count + FROM login_logs + WHERE login_status = 'success' + AND login_time > DATE_SUB(NOW(), INTERVAL 24 HOUR) + `); + + // 권한별 사용자 수 + const [roleStats] = await db.query(` + SELECT role, COUNT(*) as count + FROM users + WHERE is_active = 1 + GROUP BY role + `); + + res.json({ + success: true, + data: { + total: totalusers[0]?.count || 0, + active: activeusers[0]?.count || 0, + recent_logins: recentLogins[0]?.count || 0, + by_role: roleStats + } + }); + + } catch (error) { + console.error('사용자 통계 조회 오류:', error); + res.status(500).json({ + success: false, + error: '사용자 통계를 조회할 수 없습니다.' + }); + } +}; + +/** + * 모든 사용자 목록 조회 (시스템 관리자용) + */ +exports.getAllUsers = asyncHandler(async (req, res) => { + try { + const db = await getDb(); + + const [users] = await db.query(` + SELECT + user_id, + username, + name, + email, + role, + access_level, + worker_id, + is_active, + last_login_at, + failed_login_attempts, + locked_until, + created_at, + updated_at + FROM users + ORDER BY created_at DESC + `); + + res.list(users, '사용자 목록 조회 성공'); + + } catch (error) { + handleDatabaseError(error, '사용자 목록 조회'); + } +}); + +/** + * 사용자 생성 + */ +exports.createUser = asyncHandler(async (req, res) => { + const { username, password, name, email, role, access_level, worker_id } = req.body; + + // 스키마 기반 유효성 검사 + validateSchema(req.body, schemas.createUser); + + try { + const db = await getDb(); + + // 사용자명 중복 확인 + const [existing] = await db.query('SELECT user_id FROM users WHERE username = ?', [username]); + if (existing.length > 0) { + throw new ApiError('이미 존재하는 사용자명입니다.', 409); + } + + // 이메일 중복 확인 (이메일이 제공된 경우) + if (email) { + const [existingEmail] = await db.query('SELECT user_id FROM users WHERE email = ?', [email]); + if (existingEmail.length > 0) { + throw new ApiError('이미 사용 중인 이메일입니다.', 409); + } + } + + // 비밀번호 해시화 + const hashedPassword = await bcrypt.hash(password, 10); + + // 사용자 생성 + const [result] = await db.query(` + INSERT INTO users (username, password, name, email, role, access_level, worker_id, is_active, created_at, password_changed_at) + VALUES (?, ?, ?, ?, ?, ?, ?, 1, NOW(), NOW()) + `, [username, hashedPassword, name, email || null, role, access_level || role, worker_id || null]); + + // 비밀번호 변경 로그 기록 + await db.query(` + INSERT INTO password_change_logs (user_id, changed_by_user_id, changed_at, change_type) + VALUES (?, ?, NOW(), 'initial') + `, [result.insertId, req.user.user_id]); + + res.created({ user_id: result.insertId }, '사용자가 성공적으로 생성되었습니다.'); + + } catch (error) { + handleDatabaseError(error, '사용자 생성'); + } +}); + +/** + * 사용자 수정 + */ +exports.updateUser = async (req, res) => { + try { + const { id } = req.params; + const { name, email, role, access_level, is_active, worker_id } = req.body; + const db = await getDb(); + + // 사용자 존재 확인 + const [user] = await db.query('SELECT user_id FROM users WHERE user_id = ?', [id]); + if (user.length === 0) { + return res.status(404).json({ + success: false, + error: '해당 사용자를 찾을 수 없습니다.' + }); + } + + // 이메일 중복 확인 (다른 사용자가 사용 중인지) + if (email) { + const [existingEmail] = await db.query( + 'SELECT user_id FROM users WHERE email = ? AND user_id != ?', + [email, id] + ); + if (existingEmail.length > 0) { + return res.status(409).json({ + success: false, + error: '이미 사용 중인 이메일입니다.' + }); + } + } + + // 사용자 정보 업데이트 + await db.query(` + UPDATE users + SET name = ?, email = ?, role = ?, access_level = ?, is_active = ?, worker_id = ?, updated_at = NOW() + WHERE user_id = ? + `, [name, email || null, role, access_level || role, is_active ? 1 : 0, worker_id || null, id]); + + res.json({ + success: true, + message: '사용자 정보가 성공적으로 업데이트되었습니다.' + }); + + } catch (error) { + console.error('사용자 수정 오류:', error); + res.status(500).json({ + success: false, + error: '사용자 수정 중 오류가 발생했습니다.' + }); + } +}; + +/** + * 사용자 삭제 + */ +exports.deleteUser = async (req, res) => { + try { + const { id } = req.params; + const db = await getDb(); + + // 자기 자신 삭제 방지 + if (parseInt(id) === req.user.user_id) { + return res.status(400).json({ + success: false, + error: '자기 자신은 삭제할 수 없습니다.' + }); + } + + // 사용자 존재 확인 + const [user] = await db.query('SELECT user_id, username FROM users WHERE user_id = ?', [id]); + if (user.length === 0) { + return res.status(404).json({ + success: false, + error: '해당 사용자를 찾을 수 없습니다.' + }); + } + + // 사용자 삭제 (관련 로그는 유지) + await db.query('DELETE FROM users WHERE user_id = ?', [id]); + + res.json({ + success: true, + message: `사용자 '${user[0].username}'가 성공적으로 삭제되었습니다.` + }); + + } catch (error) { + console.error('사용자 삭제 오류:', error); + res.status(500).json({ + success: false, + error: '사용자 삭제 중 오류가 발생했습니다.' + }); + } +}; + +/** + * 사용자 비밀번호 재설정 + */ +exports.resetUserPassword = async (req, res) => { + try { + const { id } = req.params; + const { new_password } = req.body; + const db = await getDb(); + + if (!new_password || new_password.length < 6) { + return res.status(400).json({ + success: false, + error: '비밀번호는 최소 6자 이상이어야 합니다.' + }); + } + + // 사용자 존재 확인 + const [user] = await db.query('SELECT user_id, username FROM users WHERE user_id = ?', [id]); + if (user.length === 0) { + return res.status(404).json({ + success: false, + error: '해당 사용자를 찾을 수 없습니다.' + }); + } + + // 비밀번호 해시화 + const hashedPassword = await bcrypt.hash(new_password, 10); + + // 비밀번호 업데이트 + await db.query(` + UPDATE users + SET password = ?, password_changed_at = NOW(), failed_login_attempts = 0, locked_until = NULL + WHERE user_id = ? + `, [hashedPassword, id]); + + // 비밀번호 변경 로그 기록 + await db.query(` + INSERT INTO password_change_logs (user_id, changed_by_user_id, changed_at, change_type) + VALUES (?, ?, NOW(), 'admin') + `, [id, req.user.user_id]); + + res.json({ + success: true, + message: `사용자 '${user[0].username}'의 비밀번호가 재설정되었습니다.` + }); + + } catch (error) { + console.error('비밀번호 재설정 오류:', error); + res.status(500).json({ + success: false, + error: '비밀번호 재설정 중 오류가 발생했습니다.' + }); + } +}; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/taskController.js b/deploy/tkfb-package/api.hyungi.net/controllers/taskController.js new file mode 100644 index 0000000..d9cdc30 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/taskController.js @@ -0,0 +1,152 @@ +/** + * 작업 관리 컨트롤러 + * + * 작업 CRUD API 엔드포인트 핸들러 + * (공정=work_types에 속하는 세부 작업) + * + * @author TK-FB-Project + * @since 2026-01-26 + */ + +const taskModel = require('../models/taskModel'); +const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); +const { asyncHandler } = require('../middlewares/errorHandler'); +const logger = require('../utils/logger'); + +// ==================== 작업 CRUD ==================== + +/** + * 작업 생성 + */ +exports.createTask = asyncHandler(async (req, res) => { + const taskData = req.body; + + if (!taskData.task_name) { + throw new ValidationError('작업명은 필수 입력 항목입니다'); + } + + logger.info('작업 생성 요청', { name: taskData.task_name }); + + const id = await taskModel.createTask(taskData); + + logger.info('작업 생성 성공', { task_id: id }); + + res.status(201).json({ + success: true, + data: { task_id: id }, + message: '작업이 성공적으로 생성되었습니다' + }); +}); + +/** + * 전체 작업 조회 (work_type_id 필터 지원) + */ +exports.getAllTasks = asyncHandler(async (req, res) => { + const { work_type_id } = req.query; + + let rows; + if (work_type_id) { + // 특정 공정의 활성 작업만 조회 + rows = await taskModel.getTasksByWorkType(work_type_id); + } else { + rows = await taskModel.getAllTasks(); + } + + res.json({ + success: true, + data: rows, + message: '작업 목록 조회 성공' + }); +}); + +/** + * 활성 작업만 조회 + */ +exports.getActiveTasks = asyncHandler(async (req, res) => { + const rows = await taskModel.getActiveTasks(); + + res.json({ + success: true, + data: rows, + message: '활성 작업 목록 조회 성공' + }); +}); + +/** + * 공정별 작업 조회 + */ +exports.getTasksByWorkType = asyncHandler(async (req, res) => { + const workTypeId = req.params.work_type_id || req.query.work_type_id; + + if (!workTypeId) { + throw new ValidationError('공정 ID가 필요합니다'); + } + + const rows = await taskModel.getTasksByWorkType(workTypeId); + + res.json({ + success: true, + data: rows, + message: '공정별 작업 목록 조회 성공' + }); +}); + +/** + * 단일 작업 조회 + */ +exports.getTaskById = asyncHandler(async (req, res) => { + const taskId = req.params.id; + + const task = await taskModel.getTaskById(taskId); + + if (!task) { + throw new NotFoundError('작업을 찾을 수 없습니다'); + } + + res.json({ + success: true, + data: task, + message: '작업 조회 성공' + }); +}); + +/** + * 작업 수정 + */ +exports.updateTask = asyncHandler(async (req, res) => { + const taskId = req.params.id; + const taskData = req.body; + + if (!taskData.task_name) { + throw new ValidationError('작업명은 필수 입력 항목입니다'); + } + + logger.info('작업 수정 요청', { task_id: taskId }); + + await taskModel.updateTask(taskId, taskData); + + logger.info('작업 수정 성공', { task_id: taskId }); + + res.json({ + success: true, + message: '작업이 성공적으로 수정되었습니다' + }); +}); + +/** + * 작업 삭제 + */ +exports.deleteTask = asyncHandler(async (req, res) => { + const taskId = req.params.id; + + logger.info('작업 삭제 요청', { task_id: taskId }); + + await taskModel.deleteTask(taskId); + + logger.info('작업 삭제 성공', { task_id: taskId }); + + res.json({ + success: true, + message: '작업이 성공적으로 삭제되었습니다' + }); +}); diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/tbmController.js b/deploy/tkfb-package/api.hyungi.net/controllers/tbmController.js new file mode 100644 index 0000000..dd6fd39 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/tbmController.js @@ -0,0 +1,893 @@ +// controllers/tbmController.js - TBM 시스템 컨트롤러 +const TbmModel = require('../models/tbmModel'); + +const TbmController = { + // ==================== TBM 세션 관련 ==================== + + /** + * TBM 세션 생성 + */ + createSession: (req, res) => { + const sessionData = { + session_date: req.body.session_date, + leader_id: req.body.leader_id || null, + project_id: req.body.project_id || null, + work_location: req.body.work_location || null, + work_description: req.body.work_description || null, + safety_notes: req.body.safety_notes || null, + start_time: req.body.start_time || null, + created_by: req.user.user_id + }; + + // 필수 필드 검증 (날짜만 필수, leader_id는 관리자의 경우 null 허용) + if (!sessionData.session_date) { + return res.status(400).json({ + success: false, + message: 'TBM 날짜는 필수입니다.' + }); + } + + TbmModel.createSession(sessionData, (err, result) => { + if (err) { + console.error('TBM 세션 생성 오류:', err); + return res.status(500).json({ + success: false, + message: 'TBM 세션 생성 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.status(201).json({ + success: true, + message: 'TBM 세션이 생성되었습니다.', + data: { + session_id: result.insertId, + ...sessionData + } + }); + }); + }, + + /** + * 특정 날짜의 TBM 세션 목록 조회 + */ + getSessionsByDate: (req, res) => { + const { date } = req.params; + + if (!date) { + return res.status(400).json({ + success: false, + message: '날짜 정보가 필요합니다.' + }); + } + + TbmModel.getSessionsByDate(date, (err, results) => { + if (err) { + console.error('TBM 세션 조회 오류:', err); + return res.status(500).json({ + success: false, + message: 'TBM 세션 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + }, + + /** + * TBM 세션 상세 조회 + */ + getSessionById: (req, res) => { + const { sessionId } = req.params; + + TbmModel.getSessionById(sessionId, (err, results) => { + if (err) { + console.error('TBM 세션 상세 조회 오류:', err); + return res.status(500).json({ + success: false, + message: 'TBM 세션 상세 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (results.length === 0) { + return res.status(404).json({ + success: false, + message: 'TBM 세션을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + data: results[0] + }); + }); + }, + + /** + * TBM 세션 수정 + */ + updateSession: (req, res) => { + const { sessionId } = req.params; + const sessionData = { + project_id: req.body.project_id, + work_location: req.body.work_location, + work_description: req.body.work_description, + safety_notes: req.body.safety_notes, + status: req.body.status || 'draft' + }; + + TbmModel.updateSession(sessionId, sessionData, (err, result) => { + if (err) { + console.error('TBM 세션 수정 오류:', err); + return res.status(500).json({ + success: false, + message: 'TBM 세션 수정 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: 'TBM 세션을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: 'TBM 세션이 수정되었습니다.' + }); + }); + }, + + /** + * TBM 세션 완료 처리 + */ + completeSession: (req, res) => { + const { sessionId } = req.params; + const endTime = req.body.end_time || new Date().toTimeString().slice(0, 8); + + TbmModel.completeSession(sessionId, endTime, (err, result) => { + if (err) { + console.error('TBM 세션 완료 처리 오류:', err); + return res.status(500).json({ + success: false, + message: 'TBM 세션 완료 처리 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: 'TBM 세션을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: 'TBM 세션이 완료되었습니다.' + }); + }); + }, + + // ==================== 팀 구성 관련 ==================== + + /** + * 팀원 추가 (작업자별 상세 정보 포함) + */ + addTeamMember: (req, res) => { + const assignmentData = { + session_id: req.params.sessionId, + worker_id: req.body.worker_id, + assigned_role: req.body.assigned_role || null, + work_detail: req.body.work_detail || null, + is_present: req.body.is_present, + absence_reason: req.body.absence_reason || null, + project_id: req.body.project_id || null, + work_type_id: req.body.work_type_id || null, + task_id: req.body.task_id || null, + workplace_category_id: req.body.workplace_category_id || null, + workplace_id: req.body.workplace_id || null + }; + + if (!assignmentData.worker_id) { + return res.status(400).json({ + success: false, + message: '작업자 ID가 필요합니다.' + }); + } + + TbmModel.addTeamMember(assignmentData, (err, result) => { + if (err) { + console.error('팀원 추가 오류:', err); + return res.status(500).json({ + success: false, + message: '팀원 추가 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + message: '팀원이 추가되었습니다.' + }); + }); + }, + + /** + * 팀 구성 일괄 추가 + */ + addTeamMembers: (req, res) => { + const { sessionId } = req.params; + const { members } = req.body; + + if (!Array.isArray(members) || members.length === 0) { + return res.status(400).json({ + success: false, + message: '팀원 목록이 필요합니다.' + }); + } + + TbmModel.addTeamMembers(sessionId, members, (err, result) => { + if (err) { + console.error('팀 구성 일괄 추가 오류:', err); + return res.status(500).json({ + success: false, + message: '팀 구성 추가 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + message: `${members.length}명의 팀원이 추가되었습니다.`, + data: { count: members.length } + }); + }); + }, + + /** + * TBM 세션의 팀 구성 조회 + */ + getTeamMembers: (req, res) => { + const { sessionId } = req.params; + + TbmModel.getTeamMembers(sessionId, (err, results) => { + if (err) { + console.error('팀 구성 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '팀 구성 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + }, + + /** + * 팀원 제거 + */ + removeTeamMember: (req, res) => { + const { sessionId, workerId } = req.params; + + TbmModel.removeTeamMember(sessionId, workerId, (err, result) => { + if (err) { + console.error('팀원 제거 오류:', err); + return res.status(500).json({ + success: false, + message: '팀원 제거 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '팀원을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '팀원이 제거되었습니다.' + }); + }); + }, + + /** + * 세션의 모든 팀원 삭제 (수정 시 사용) + */ + clearAllTeamMembers: (req, res) => { + const { sessionId } = req.params; + + TbmModel.clearAllTeamMembers(sessionId, (err, result) => { + if (err) { + console.error('팀원 전체 삭제 오류:', err); + return res.status(500).json({ + success: false, + message: '팀원 전체 삭제 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + message: '모든 팀원이 삭제되었습니다.', + data: { deletedCount: result.affectedRows } + }); + }); + }, + + // ==================== 안전 체크리스트 관련 ==================== + + /** + * 모든 안전 체크 항목 조회 + */ + getAllSafetyChecks: (req, res) => { + TbmModel.getAllSafetyChecks((err, results) => { + if (err) { + console.error('안전 체크 항목 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '안전 체크 항목 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + }, + + /** + * TBM 세션의 안전 체크 기록 조회 + */ + getSafetyRecords: (req, res) => { + const { sessionId } = req.params; + + TbmModel.getSafetyRecords(sessionId, (err, results) => { + if (err) { + console.error('안전 체크 기록 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '안전 체크 기록 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + }, + + /** + * 안전 체크 일괄 저장 + */ + saveSafetyRecords: (req, res) => { + const { sessionId } = req.params; + const { records } = req.body; + + if (!Array.isArray(records) || records.length === 0) { + return res.status(400).json({ + success: false, + message: '안전 체크 기록이 필요합니다.' + }); + } + + const checkedBy = req.user.user_id; + + TbmModel.saveSafetyRecords(sessionId, records, checkedBy, (err, result) => { + if (err) { + console.error('안전 체크 저장 오류:', err); + return res.status(500).json({ + success: false, + message: '안전 체크 저장 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + message: '안전 체크가 저장되었습니다.', + data: { count: records.length } + }); + }); + }, + + // ==================== 필터링된 안전 체크리스트 (확장) ==================== + + /** + * 세션에 맞는 필터링된 안전 체크 항목 조회 + * 기본 + 날씨 + 작업별 체크항목 통합 + */ + getFilteredSafetyChecks: async (req, res) => { + const { sessionId } = req.params; + + try { + // 날씨 정보 확인 (이미 저장된 경우 사용, 없으면 새로 조회) + const weatherService = require('../services/weatherService'); + let weatherRecord = await weatherService.getWeatherRecord(sessionId); + let weatherConditions = []; + + if (weatherRecord && weatherRecord.weather_conditions) { + weatherConditions = weatherRecord.weather_conditions; + } else { + // 날씨 정보가 없으면 현재 날씨 조회 + const currentWeather = await weatherService.getCurrentWeather(); + weatherConditions = await weatherService.determineWeatherConditions(currentWeather); + // 날씨 기록 저장 + await weatherService.saveWeatherRecord(sessionId, currentWeather, weatherConditions); + } + + TbmModel.getFilteredSafetyChecks(sessionId, weatherConditions, (err, results) => { + if (err) { + console.error('필터링된 안전 체크 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '안전 체크리스트 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('필터링된 안전 체크 조회 오류:', error); + res.status(500).json({ + success: false, + message: '안전 체크리스트 조회 중 오류가 발생했습니다.', + error: error.message + }); + } + }, + + /** + * 현재 날씨 조회 + */ + getCurrentWeather: async (req, res) => { + try { + const weatherService = require('../services/weatherService'); + const { nx, ny } = req.query; + + const weatherData = await weatherService.getCurrentWeather(nx, ny); + const conditions = await weatherService.determineWeatherConditions(weatherData); + const conditionList = await weatherService.getWeatherConditionList(); + + // 현재 조건의 상세 정보 매핑 + const activeConditions = conditionList.filter(c => conditions.includes(c.condition_code)); + + res.json({ + success: true, + data: { + ...weatherData, + conditions, + conditionDetails: activeConditions + } + }); + } catch (error) { + console.error('날씨 조회 오류:', error); + res.status(500).json({ + success: false, + message: '날씨 조회 중 오류가 발생했습니다.', + error: error.message + }); + } + }, + + /** + * 세션 날씨 정보 저장 + */ + saveSessionWeather: async (req, res) => { + const { sessionId } = req.params; + const { weatherConditions } = req.body; + + try { + const weatherService = require('../services/weatherService'); + + // 현재 날씨 조회 + const weatherData = await weatherService.getCurrentWeather(); + const conditions = weatherConditions || await weatherService.determineWeatherConditions(weatherData); + + // 저장 + await weatherService.saveWeatherRecord(sessionId, weatherData, conditions); + + res.json({ + success: true, + message: '날씨 정보가 저장되었습니다.', + data: { conditions } + }); + } catch (error) { + console.error('날씨 저장 오류:', error); + res.status(500).json({ + success: false, + message: '날씨 저장 중 오류가 발생했습니다.', + error: error.message + }); + } + }, + + /** + * 세션 날씨 정보 조회 + */ + getSessionWeather: async (req, res) => { + const { sessionId } = req.params; + + try { + const weatherService = require('../services/weatherService'); + const weatherRecord = await weatherService.getWeatherRecord(sessionId); + + if (!weatherRecord) { + return res.status(404).json({ + success: false, + message: '날씨 기록이 없습니다.' + }); + } + + res.json({ + success: true, + data: weatherRecord + }); + } catch (error) { + console.error('날씨 조회 오류:', error); + res.status(500).json({ + success: false, + message: '날씨 조회 중 오류가 발생했습니다.', + error: error.message + }); + } + }, + + /** + * 날씨 조건 목록 조회 + */ + getWeatherConditions: async (req, res) => { + try { + const weatherService = require('../services/weatherService'); + const conditions = await weatherService.getWeatherConditionList(); + + res.json({ + success: true, + data: conditions + }); + } catch (error) { + console.error('날씨 조건 조회 오류:', error); + res.status(500).json({ + success: false, + message: '날씨 조건 조회 중 오류가 발생했습니다.', + error: error.message + }); + } + }, + + // ==================== 안전 체크항목 관리 (관리자용) ==================== + + /** + * 안전 체크 항목 생성 + */ + createSafetyCheck: (req, res) => { + const checkData = req.body; + + if (!checkData.check_category || !checkData.check_item) { + return res.status(400).json({ + success: false, + message: '카테고리와 체크 항목은 필수입니다.' + }); + } + + TbmModel.createSafetyCheck(checkData, (err, result) => { + if (err) { + console.error('안전 체크 항목 생성 오류:', err); + return res.status(500).json({ + success: false, + message: '안전 체크 항목 생성 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.status(201).json({ + success: true, + message: '안전 체크 항목이 생성되었습니다.', + data: { check_id: result.insertId } + }); + }); + }, + + /** + * 안전 체크 항목 수정 + */ + updateSafetyCheck: (req, res) => { + const { checkId } = req.params; + const checkData = req.body; + + TbmModel.updateSafetyCheck(checkId, checkData, (err, result) => { + if (err) { + console.error('안전 체크 항목 수정 오류:', err); + return res.status(500).json({ + success: false, + message: '안전 체크 항목 수정 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '안전 체크 항목을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '안전 체크 항목이 수정되었습니다.' + }); + }); + }, + + /** + * 안전 체크 항목 삭제 (비활성화) + */ + deleteSafetyCheck: (req, res) => { + const { checkId } = req.params; + + TbmModel.deleteSafetyCheck(checkId, (err, result) => { + if (err) { + console.error('안전 체크 항목 삭제 오류:', err); + return res.status(500).json({ + success: false, + message: '안전 체크 항목 삭제 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '안전 체크 항목을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '안전 체크 항목이 삭제되었습니다.' + }); + }); + }, + + // ==================== 작업 인계 관련 ==================== + + /** + * 작업 인계 생성 + */ + createHandover: (req, res) => { + const handoverData = { + session_id: req.body.session_id, + from_leader_id: req.body.from_leader_id, + to_leader_id: req.body.to_leader_id, + handover_date: req.body.handover_date, + handover_time: req.body.handover_time || null, + reason: req.body.reason, + handover_notes: req.body.handover_notes || null, + worker_ids: req.body.worker_ids || [] + }; + + // 필수 필드 검증 + if (!handoverData.session_id || !handoverData.from_leader_id || + !handoverData.to_leader_id || !handoverData.handover_date || !handoverData.reason) { + return res.status(400).json({ + success: false, + message: '필수 정보가 누락되었습니다.' + }); + } + + TbmModel.createHandover(handoverData, (err, result) => { + if (err) { + console.error('작업 인계 생성 오류:', err); + return res.status(500).json({ + success: false, + message: '작업 인계 생성 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.status(201).json({ + success: true, + message: '작업 인계가 생성되었습니다.', + data: { handover_id: result.insertId } + }); + }); + }, + + /** + * 작업 인계 확인 + */ + confirmHandover: (req, res) => { + const { handoverId } = req.params; + const confirmedBy = req.user.user_id; + + TbmModel.confirmHandover(handoverId, confirmedBy, (err, result) => { + if (err) { + console.error('작업 인계 확인 오류:', err); + return res.status(500).json({ + success: false, + message: '작업 인계 확인 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '작업 인계 건을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '작업 인계가 확인되었습니다.' + }); + }); + }, + + /** + * 특정 날짜의 작업 인계 목록 조회 + */ + getHandoversByDate: (req, res) => { + const { date } = req.params; + + TbmModel.getHandoversByDate(date, (err, results) => { + if (err) { + console.error('작업 인계 목록 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '작업 인계 목록 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + }, + + /** + * 나에게 온 미확인 인계 건 조회 + */ + getMyPendingHandovers: (req, res) => { + // worker_id는 req.user에서 가져옴 + const toLeaderId = req.user.worker_id; + + if (!toLeaderId) { + return res.status(400).json({ + success: false, + message: '작업자 정보를 찾을 수 없습니다.' + }); + } + + TbmModel.getPendingHandovers(toLeaderId, (err, results) => { + if (err) { + console.error('미확인 인계 건 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '미확인 인계 건 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + }, + + // ==================== 통계 및 리포트 ==================== + + /** + * TBM 통계 조회 + */ + getTbmStatistics: (req, res) => { + const { startDate, endDate } = req.query; + + if (!startDate || !endDate) { + return res.status(400).json({ + success: false, + message: '시작일과 종료일이 필요합니다.' + }); + } + + TbmModel.getTbmStatistics(startDate, endDate, (err, results) => { + if (err) { + console.error('TBM 통계 조회 오류:', err); + return res.status(500).json({ + success: false, + message: 'TBM 통계 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + }, + + /** + * 리더별 TBM 진행 현황 조회 + */ + getLeaderStatistics: (req, res) => { + const { startDate, endDate } = req.query; + + if (!startDate || !endDate) { + return res.status(400).json({ + success: false, + message: '시작일과 종료일이 필요합니다.' + }); + } + + TbmModel.getLeaderStatistics(startDate, endDate, (err, results) => { + if (err) { + console.error('리더 통계 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '리더 통계 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + }, + + /** + * 작업보고서가 작성되지 않은 TBM 팀 배정 조회 + */ + getIncompleteWorkReports: (req, res) => { + const userId = req.user.user_id; + const accessLevel = req.user.access_level; + + // 관리자는 모든 TBM 조회, 일반 사용자는 본인이 작성한 것만 조회 + const filterUserId = (accessLevel === 'system' || accessLevel === 'admin') ? null : userId; + + TbmModel.getIncompleteWorkReports(filterUserId, (err, results) => { + if (err) { + console.error('미완료 작업보고서 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '미완료 작업보고서 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: results + }); + }); + } +}; + +module.exports = TbmController; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/toolsController.js b/deploy/tkfb-package/api.hyungi.net/controllers/toolsController.js new file mode 100644 index 0000000..3480886 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/toolsController.js @@ -0,0 +1,75 @@ +/** + * 도구 관리 컨트롤러 + * + * 도구(공구) 재고 및 위치 관리 API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const toolsService = require('../services/toolsService'); +const { asyncHandler } = require('../middlewares/errorHandler'); + +/** + * 전체 도구 조회 + */ +exports.getAll = asyncHandler(async (req, res) => { + const rows = await toolsService.getAllToolsService(); + + res.json({ + success: true, + data: rows, + message: '도구 목록 조회 성공' + }); +}); + +/** + * 단일 도구 조회 + */ +exports.getById = asyncHandler(async (req, res) => { + const id = parseInt(req.params.id, 10); + const row = await toolsService.getToolByIdService(id); + + res.json({ + success: true, + data: row, + message: '도구 조회 성공' + }); +}); + +/** + * 도구 생성 + */ +exports.create = asyncHandler(async (req, res) => { + const result = await toolsService.createToolService(req.body); + + res.status(201).json({ + success: true, + data: result, + message: '도구가 성공적으로 생성되었습니다' + }); +}); + +/** + * 도구 수정 + */ +exports.update = asyncHandler(async (req, res) => { + const id = parseInt(req.params.id, 10); + const result = await toolsService.updateToolService(id, req.body); + + res.json({ + success: true, + data: result, + message: '도구 정보가 성공적으로 수정되었습니다' + }); +}); + +/** + * 도구 삭제 + */ +exports.delete = asyncHandler(async (req, res) => { + const id = parseInt(req.params.id, 10); + await toolsService.deleteToolService(id); + + res.status(204).send(); +}); diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/uploadController.js b/deploy/tkfb-package/api.hyungi.net/controllers/uploadController.js new file mode 100644 index 0000000..8d2b75c --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/uploadController.js @@ -0,0 +1,38 @@ +/** + * 문서 업로드 관리 컨트롤러 + * + * 파일 업로드 및 문서 메타데이터 CRUD API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const uploadService = require('../services/uploadService'); +const { asyncHandler } = require('../middlewares/errorHandler'); + +/** + * 문서 업로드 + */ +exports.createUpload = asyncHandler(async (req, res) => { + const doc = req.body; + const result = await uploadService.createUploadService(doc); + + res.status(201).json({ + success: true, + data: result, + message: '문서가 성공적으로 업로드되었습니다' + }); +}); + +/** + * 전체 업로드 문서 조회 + */ +exports.getUploads = asyncHandler(async (req, res) => { + const rows = await uploadService.getAllUploadsService(); + + res.json({ + success: true, + data: rows, + message: '업로드 문서 목록 조회 성공' + }); +}); diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/userController.js b/deploy/tkfb-package/api.hyungi.net/controllers/userController.js new file mode 100644 index 0000000..3873f90 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/userController.js @@ -0,0 +1,739 @@ +/** + * 사용자 관리 컨트롤러 + * + * 사용자 CRUD 및 상태 관리 기능을 제공하는 컨트롤러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const bcrypt = require('bcrypt'); +const { ValidationError, ForbiddenError, NotFoundError, ConflictError, DatabaseError } = require('../utils/errors'); +const { asyncHandler } = require('../middlewares/errorHandler'); +const logger = require('../utils/logger'); + +/** + * 관리자 권한 확인 헬퍼 함수 + */ +const checkAdminPermission = (user) => { + if (!user || !['admin', 'system'].includes(user.access_level)) { + throw new ForbiddenError('관리자 권한이 필요합니다'); + } +}; + +/** + * 모든 사용자 조회 + */ +const getAllUsers = asyncHandler(async (req, res) => { + checkAdminPermission(req.user); + + logger.info('사용자 목록 조회 요청', { requestedBy: req.user?.username }); + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + try { + const query = ` + SELECT + u.user_id, + u.username, + u.name, + u.email, + u.role_id, + r.name as role, + u._access_level_old as access_level, + u.is_active, + u.worker_id, + w.worker_name, + w.department_id, + d.department_name, + u.created_at, + u.updated_at, + u.last_login_at as last_login + FROM users u + LEFT JOIN roles r ON u.role_id = r.id + LEFT JOIN workers w ON u.worker_id = w.worker_id + LEFT JOIN departments d ON w.department_id = d.department_id + ORDER BY u.created_at DESC + `; + + const [users] = await db.execute(query); + + logger.info('사용자 목록 조회 성공', { count: users.length }); + + res.json({ + success: true, + data: users, + message: '사용자 목록 조회 성공' + }); + } catch (error) { + logger.error('사용자 목록 조회 실패', { error: error.message }); + throw new DatabaseError('사용자 목록을 조회하는데 실패했습니다'); + } +}); + +/** + * 특정 사용자 조회 + */ +const getUserById = asyncHandler(async (req, res) => { + const { id } = req.params; + + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 사용자 ID입니다'); + } + + logger.info('사용자 조회 요청', { userId: id }); + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + try { + const query = ` + SELECT + user_id, + username, + name, + email, + phone, + role, + access_level, + is_active, + created_at, + updated_at, + last_login + FROM users + WHERE user_id = ? + `; + + const [users] = await db.execute(query, [id]); + + if (users.length === 0) { + throw new NotFoundError('사용자를 찾을 수 없습니다'); + } + + logger.info('사용자 조회 성공', { userId: id, username: users[0].username }); + + res.json({ + success: true, + data: users[0], + message: '사용자 조회 성공' + }); + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + logger.error('사용자 조회 실패', { userId: id, error: error.message }); + throw new DatabaseError('사용자를 조회하는데 실패했습니다'); + } +}); + +/** + * 새 사용자 생성 + */ +const createUser = asyncHandler(async (req, res) => { + checkAdminPermission(req.user); + + const { username, name, email, phone, role, password } = req.body; + + logger.info('사용자 생성 요청', { username, name, role }); + + // 필수 필드 검증 + if (!username || !name || !role || !password) { + throw new ValidationError('필수 필드가 누락되었습니다', { + required: ['username', 'name', 'role', 'password'], + received: { username, name, role, password: '***' } + }); + } + + // 사용자명 유효성 검증 + if (username.length < 3 || username.length > 20) { + throw new ValidationError('사용자명은 3-20자 사이여야 합니다'); + } + + // 비밀번호 유효성 검증 + if (password.length < 6) { + throw new ValidationError('비밀번호는 최소 6자 이상이어야 합니다'); + } + + // 권한 레벨 검증 + const validRoles = ['admin', 'group_leader', 'worker']; + if (!validRoles.includes(role)) { + throw new ValidationError('유효하지 않은 권한입니다', { + valid: validRoles, + received: role + }); + } + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + try { + // 사용자명 중복 확인 + const checkQuery = 'SELECT user_id FROM users WHERE username = ?'; + const [existing] = await db.execute(checkQuery, [username]); + + if (existing.length > 0) { + throw new ConflictError('이미 존재하는 사용자명입니다'); + } + + // 비밀번호 해시화 + const hashedPassword = await bcrypt.hash(password, 10); + + // 사용자 생성 + const insertQuery = ` + INSERT INTO users (username, name, email, phone, role, access_level, password_hash, is_active, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, 1, NOW()) + `; + + const [result] = await db.execute(insertQuery, [ + username, + name, + email || null, + phone || null, + role, + role, // access_level을 role과 동일하게 설정 + hashedPassword + ]); + + logger.info('사용자 생성 성공', { + userId: result.insertId, + username, + name, + role, + createdBy: req.user.username + }); + + res.status(201).json({ + success: true, + data: { user_id: result.insertId }, + message: '사용자가 성공적으로 생성되었습니다' + }); + } catch (error) { + if (error instanceof ConflictError) { + throw error; + } + logger.error('사용자 생성 실패', { username, error: error.message }); + throw new DatabaseError('사용자를 생성하는데 실패했습니다'); + } +}); + +/** + * 사용자 정보 수정 + */ +const updateUser = asyncHandler(async (req, res) => { + checkAdminPermission(req.user); + + const { id } = req.params; + const { username, name, email, role, role_id, password, worker_id } = req.body; + + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 사용자 ID입니다'); + } + + logger.info('사용자 수정 요청', { userId: id, body: req.body }); + + // 최소 하나의 수정 필드가 필요 + if (!username && !name && email === undefined && !role && !role_id && !password && worker_id === undefined) { + throw new ValidationError('수정할 필드가 없습니다'); + } + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + try { + // 사용자 존재 확인 + const checkQuery = 'SELECT user_id, username, is_active FROM users WHERE user_id = ?'; + const [existing] = await db.execute(checkQuery, [id]); + + if (existing.length === 0) { + throw new NotFoundError('사용자를 찾을 수 없습니다'); + } + + if (existing[0].is_active === 0) { + throw new ValidationError('비활성화된 사용자는 수정할 수 없습니다'); + } + + // 업데이트할 필드들 + const updates = []; + const values = []; + + if (username) { + if (username.length < 3 || username.length > 20) { + throw new ValidationError('사용자명은 3-20자 사이여야 합니다'); + } + + // 사용자명 중복 확인 (자신 제외) + const dupQuery = 'SELECT user_id FROM users WHERE username = ? AND user_id != ?'; + const [duplicate] = await db.execute(dupQuery, [username, id]); + + if (duplicate.length > 0) { + throw new ConflictError('이미 존재하는 사용자명입니다'); + } + + updates.push('username = ?'); + values.push(username); + } + + if (name) { + updates.push('name = ?'); + values.push(name); + } + + if (email !== undefined) { + updates.push('email = ?'); + values.push(email || null); + } + + // role_id 또는 role 문자열 처리 + if (role_id) { + // role_id가 유효한지 확인 + const [roleCheck] = await db.execute('SELECT id, name FROM roles WHERE id = ?', [role_id]); + if (roleCheck.length === 0) { + throw new ValidationError('유효하지 않은 역할 ID입니다'); + } + updates.push('role_id = ?'); + values.push(role_id); + logger.info('role_id로 역할 변경', { userId: id, role_id, role_name: roleCheck[0].name }); + } else if (role) { + // role 문자열을 role_id로 변환 (하위 호환성) + const roleNameMap = { + 'admin': 'Admin', + 'system': 'System Admin', + 'user': 'User', + 'guest': 'Guest', + 'group_leader': 'User', // 임시 매핑 + 'worker': 'User' // 임시 매핑 + }; + const roleName = roleNameMap[role.toLowerCase()] || role; + const [roleCheck] = await db.execute('SELECT id FROM roles WHERE name = ?', [roleName]); + + if (roleCheck.length === 0) { + throw new ValidationError(`유효하지 않은 권한입니다: ${role}`); + } + updates.push('role_id = ?'); + values.push(roleCheck[0].id); + logger.info('role 문자열로 역할 변경', { userId: id, role, role_id: roleCheck[0].id }); + } + + if (password) { + if (password.length < 6) { + throw new ValidationError('비밀번호는 최소 6자 이상이어야 합니다'); + } + const hashedPassword = await bcrypt.hash(password, 10); + updates.push('password = ?'); + values.push(hashedPassword); + } + + // worker_id 업데이트 (null도 허용 - 연결 해제) + if (worker_id !== undefined) { + if (worker_id !== null) { + // worker_id가 유효한지 확인 + const [workerCheck] = await db.execute('SELECT worker_id, worker_name FROM workers WHERE worker_id = ?', [worker_id]); + if (workerCheck.length === 0) { + throw new ValidationError('유효하지 않은 작업자 ID입니다'); + } + logger.info('작업자 연결', { userId: id, worker_id, worker_name: workerCheck[0].worker_name }); + } else { + logger.info('작업자 연결 해제', { userId: id }); + } + updates.push('worker_id = ?'); + values.push(worker_id); + } + + updates.push('updated_at = NOW()'); + values.push(id); + + const updateQuery = `UPDATE users SET ${updates.join(', ')} WHERE user_id = ?`; + + logger.info('실행할 UPDATE 쿼리', { query: updateQuery, values }); + await db.execute(updateQuery, values); + + logger.info('사용자 수정 성공', { + userId: id, + username: existing[0].username, + updatedFields: Object.keys(req.body), + updatedBy: req.user.username + }); + + res.json({ + success: true, + data: { user_id: id }, + message: '사용자 정보가 성공적으로 수정되었습니다' + }); + } catch (error) { + if (error instanceof NotFoundError || error instanceof ValidationError || error instanceof ConflictError) { + throw error; + } + logger.error('사용자 수정 실패', { userId: id, error: error.message, stack: error.stack }); + throw new DatabaseError('사용자 정보를 수정하는데 실패했습니다'); + } +}); + +/** + * 사용자 상태 변경 (활성화/비활성화) + */ +const updateUserStatus = asyncHandler(async (req, res) => { + checkAdminPermission(req.user); + + const { id } = req.params; + const { is_active } = req.body; + + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 사용자 ID입니다'); + } + + if (is_active === undefined || ![0, 1, true, false].includes(is_active)) { + throw new ValidationError('유효하지 않은 활성 상태 값입니다'); + } + + const activeValue = is_active === true || is_active === 1 ? 1 : 0; + + // 자기 자신 비활성화 방지 + if (parseInt(id) === req.user.user_id && activeValue === 0) { + throw new ValidationError('자기 자신을 비활성화할 수 없습니다'); + } + + logger.info('사용자 상태 변경 요청', { userId: id, is_active: activeValue }); + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + try { + // 사용자 존재 확인 + const checkQuery = 'SELECT user_id, username, is_active FROM users WHERE user_id = ?'; + const [users] = await db.execute(checkQuery, [id]); + + if (users.length === 0) { + throw new NotFoundError('사용자를 찾을 수 없습니다'); + } + + // 상태 변경이 필요한지 확인 + if (users[0].is_active === activeValue) { + const status = activeValue === 1 ? '활성' : '비활성'; + throw new ValidationError(`사용자가 이미 ${status} 상태입니다`); + } + + const query = 'UPDATE users SET is_active = ?, updated_at = NOW() WHERE user_id = ?'; + await db.execute(query, [activeValue, id]); + + const statusText = activeValue === 1 ? '활성화' : '비활성화'; + + logger.info(`사용자 ${statusText} 성공`, { + userId: id, + username: users[0].username, + newStatus: activeValue, + updatedBy: req.user.username + }); + + res.json({ + success: true, + data: { user_id: id, is_active: activeValue }, + message: `사용자가 성공적으로 ${statusText}되었습니다` + }); + } catch (error) { + if (error instanceof NotFoundError || error instanceof ValidationError) { + throw error; + } + logger.error('사용자 상태 변경 실패', { userId: id, error: error.message }); + throw new DatabaseError('사용자 상태를 변경하는데 실패했습니다'); + } +}); + +/** + * 사용자 삭제 (Soft Delete) + */ +const deleteUser = asyncHandler(async (req, res) => { + checkAdminPermission(req.user); + + const { id } = req.params; + + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 사용자 ID입니다'); + } + + // 자기 자신 삭제 방지 + if (req.user && req.user.user_id == id) { + throw new ValidationError('자기 자신은 삭제할 수 없습니다'); + } + + logger.info('사용자 삭제 요청', { userId: id }); + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + try { + // 사용자 존재 확인 + const checkQuery = 'SELECT user_id, username, is_active FROM users WHERE user_id = ?'; + const [users] = await db.execute(checkQuery, [id]); + + if (users.length === 0) { + throw new NotFoundError('사용자를 찾을 수 없습니다'); + } + + if (users[0].is_active === 0) { + throw new ValidationError('이미 비활성화된 사용자입니다'); + } + + // Soft Delete (is_active = 0) + const query = 'UPDATE users SET is_active = 0, updated_at = NOW() WHERE user_id = ?'; + await db.execute(query, [id]); + + logger.info('사용자 비활성화 성공', { + userId: id, + username: users[0].username, + deletedBy: req.user.username + }); + + res.json({ + success: true, + data: { user_id: id }, + message: '사용자가 성공적으로 비활성화되었습니다' + }); + } catch (error) { + if (error instanceof NotFoundError || error instanceof ValidationError) { + throw error; + } + logger.error('사용자 비활성화 실패', { userId: id, error: error.message }); + throw new DatabaseError('사용자를 비활성화하는데 실패했습니다'); + } +}); + +/** + * 사용자 영구 삭제 (Hard Delete) + */ +const permanentDeleteUser = asyncHandler(async (req, res) => { + checkAdminPermission(req.user); + + const { id } = req.params; + + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 사용자 ID입니다'); + } + + // 자기 자신 삭제 방지 + if (req.user && req.user.user_id == id) { + throw new ValidationError('자기 자신은 삭제할 수 없습니다'); + } + + logger.info('사용자 영구 삭제 요청', { userId: id }); + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + try { + // 사용자 존재 확인 + const checkQuery = 'SELECT user_id, username FROM users WHERE user_id = ?'; + const [users] = await db.execute(checkQuery, [id]); + + if (users.length === 0) { + throw new NotFoundError('사용자를 찾을 수 없습니다'); + } + + const username = users[0].username; + + // 관련 데이터 삭제 (외래 키 제약 조건 때문에 순서 중요) + // 1. 로그인 로그 삭제 + await db.execute('DELETE FROM login_logs WHERE user_id = ?', [id]); + + // 2. 페이지 접근 권한 삭제 + await db.execute('DELETE FROM user_page_access WHERE user_id = ?', [id]); + + // 3. 사용자 삭제 + await db.execute('DELETE FROM users WHERE user_id = ?', [id]); + + logger.info('사용자 영구 삭제 성공', { + userId: id, + username: username, + deletedBy: req.user.username + }); + + res.json({ + success: true, + data: { user_id: id }, + message: `사용자 "${username}"이(가) 영구적으로 삭제되었습니다` + }); + } catch (error) { + if (error instanceof NotFoundError || error instanceof ValidationError) { + throw error; + } + logger.error('사용자 영구 삭제 실패', { userId: id, error: error.message }); + throw new DatabaseError('사용자를 영구 삭제하는데 실패했습니다'); + } +}); + +/** + * 사용자의 페이지 접근 권한 조회 + */ +const getUserPageAccess = asyncHandler(async (req, res) => { + const { id } = req.params; + + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 사용자 ID입니다'); + } + + logger.info('사용자 페이지 권한 조회 요청', { userId: id }); + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + try { + // 권한 조회: user_page_access에 명시적 권한이 있으면 사용, 없으면 is_default_accessible 사용 + const query = ` + SELECT + p.id as page_id, + p.page_key, + p.page_name, + p.page_path, + p.category, + p.is_default_accessible, + COALESCE(upa.can_access, p.is_default_accessible) as can_access + FROM pages p + LEFT JOIN user_page_access upa ON p.id = upa.page_id AND upa.user_id = ? + ORDER BY p.category, p.display_order + `; + + const [pageAccess] = await db.execute(query, [id]); + + logger.info('사용자 페이지 권한 조회 성공', { userId: id, pageCount: pageAccess.length }); + + res.json({ + success: true, + data: { + pageAccess + }, + message: '페이지 권한 조회 성공' + }); + } catch (error) { + logger.error('사용자 페이지 권한 조회 실패', { userId: id, error: error.message }); + throw new DatabaseError('페이지 권한을 조회하는데 실패했습니다'); + } +}); + +/** + * 사용자의 페이지 접근 권한 업데이트 + */ +const updateUserPageAccess = asyncHandler(async (req, res) => { + checkAdminPermission(req.user); + + const { id } = req.params; + const { pageAccess } = req.body; + + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 사용자 ID입니다'); + } + + if (!Array.isArray(pageAccess)) { + throw new ValidationError('pageAccess는 배열이어야 합니다'); + } + + logger.info('사용자 페이지 권한 업데이트 요청', { + userId: id, + pageCount: pageAccess.length, + updatedBy: req.user.username + }); + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + try { + // 트랜잭션 시작 + await db.query('START TRANSACTION'); + + // 기존 권한 삭제 + await db.execute('DELETE FROM user_page_access WHERE user_id = ?', [id]); + + // 새 권한 삽입 + if (pageAccess.length > 0) { + const values = pageAccess.map(p => [id, p.page_id, p.can_access]); + const placeholders = values.map(() => '(?, ?, ?)').join(', '); + const flatValues = values.flat(); + + await db.execute( + `INSERT INTO user_page_access (user_id, page_id, can_access) VALUES ${placeholders}`, + flatValues + ); + } + + // 커밋 + await db.query('COMMIT'); + + logger.info('사용자 페이지 권한 업데이트 성공', { + userId: id, + pageCount: pageAccess.length, + updatedBy: req.user.username + }); + + res.json({ + success: true, + data: { user_id: id }, + message: '페이지 권한이 성공적으로 업데이트되었습니다' + }); + } catch (error) { + // 롤백 + await db.query('ROLLBACK'); + logger.error('사용자 페이지 권한 업데이트 실패', { userId: id, error: error.message }); + throw new DatabaseError('페이지 권한을 업데이트하는데 실패했습니다'); + } +}); + +/** + * 사용자 비밀번호 초기화 (000000) + */ +const resetUserPassword = asyncHandler(async (req, res) => { + checkAdminPermission(req.user); + + const { id } = req.params; + + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 사용자 ID입니다'); + } + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + try { + // 사용자 존재 확인 + const [existing] = await db.execute('SELECT user_id, username FROM users WHERE user_id = ?', [id]); + + if (existing.length === 0) { + throw new NotFoundError('사용자를 찾을 수 없습니다'); + } + + // 비밀번호를 000000으로 초기화 + const hashedPassword = await bcrypt.hash('000000', 10); + await db.execute( + 'UPDATE users SET password = ?, password_changed_at = NULL, updated_at = NOW() WHERE user_id = ?', + [hashedPassword, id] + ); + + logger.info('사용자 비밀번호 초기화 성공', { + userId: id, + username: existing[0].username, + resetBy: req.user.username + }); + + res.json({ + success: true, + message: '비밀번호가 000000으로 초기화되었습니다' + }); + } catch (error) { + if (error instanceof NotFoundError || error instanceof ValidationError) { + throw error; + } + logger.error('비밀번호 초기화 실패', { userId: id, error: error.message }); + throw new DatabaseError('비밀번호 초기화에 실패했습니다'); + } +}); + +module.exports = { + getAllUsers, + getUserById, + createUser, + updateUser, + updateUserStatus, + deleteUser, + permanentDeleteUser, + getUserPageAccess, + updateUserPageAccess, + resetUserPassword +}; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/vacationBalanceController.js b/deploy/tkfb-package/api.hyungi.net/controllers/vacationBalanceController.js new file mode 100644 index 0000000..4eeaa3a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/vacationBalanceController.js @@ -0,0 +1,421 @@ +/** + * vacationBalanceController.js + * 휴가 잔액 관련 컨트롤러 + */ + +const vacationBalanceModel = require('../models/vacationBalanceModel'); +const vacationTypeModel = require('../models/vacationTypeModel'); + +const vacationBalanceController = { + /** + * 특정 작업자의 휴가 잔액 조회 (특정 연도) + * GET /api/vacation-balances/worker/:workerId/year/:year + */ + async getByWorkerAndYear(req, res) { + try { + const { workerId, year } = req.params; + + vacationBalanceModel.getByWorkerAndYear(workerId, year, (err, results) => { + if (err) { + console.error('휴가 잔액 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 잔액을 조회하는 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('getByWorkerAndYear 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 모든 작업자의 휴가 잔액 조회 (특정 연도) + * GET /api/vacation-balances/year/:year + */ + async getAllByYear(req, res) { + try { + const { year } = req.params; + + vacationBalanceModel.getAllByYear(year, (err, results) => { + if (err) { + console.error('전체 휴가 잔액 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '전체 휴가 잔액을 조회하는 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('getAllByYear 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 잔액 생성 + * POST /api/vacation-balances + */ + async createBalance(req, res) { + try { + const { + worker_id, + vacation_type_id, + year, + total_days, + used_days, + notes + } = req.body; + const created_by = req.user.user_id; + + // 필수 필드 검증 + if (!worker_id || !vacation_type_id || !year || total_days === undefined) { + return res.status(400).json({ + success: false, + message: '필수 필드가 누락되었습니다 (worker_id, vacation_type_id, year, total_days)' + }); + } + + // 중복 체크 + vacationBalanceModel.getByWorkerTypeYear(worker_id, vacation_type_id, year, (err, existing) => { + if (err) { + console.error('중복 체크 오류:', err); + return res.status(500).json({ + success: false, + message: '중복 체크 중 오류가 발생했습니다' + }); + } + + if (existing && existing.length > 0) { + return res.status(400).json({ + success: false, + message: '이미 해당 작업자의 해당 연도 휴가 잔액이 존재합니다' + }); + } + + const balanceData = { + worker_id, + vacation_type_id, + year, + total_days, + used_days: used_days || 0, + notes: notes || null, + created_by + }; + + vacationBalanceModel.create(balanceData, (err, result) => { + if (err) { + console.error('휴가 잔액 생성 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 잔액을 생성하는 중 오류가 발생했습니다' + }); + } + + res.status(201).json({ + success: true, + message: '휴가 잔액이 생성되었습니다', + data: { id: result.insertId } + }); + }); + }); + } catch (error) { + console.error('createBalance 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 잔액 수정 + * PUT /api/vacation-balances/:id + */ + async updateBalance(req, res) { + try { + const { id } = req.params; + const { total_days, used_days, notes } = req.body; + + const updateData = {}; + if (total_days !== undefined) updateData.total_days = total_days; + if (used_days !== undefined) updateData.used_days = used_days; + if (notes !== undefined) updateData.notes = notes; + updateData.updated_at = new Date(); + + if (Object.keys(updateData).length === 1) { + return res.status(400).json({ + success: false, + message: '수정할 데이터가 없습니다' + }); + } + + vacationBalanceModel.update(id, updateData, (err, result) => { + if (err) { + console.error('휴가 잔액 수정 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 잔액을 수정하는 중 오류가 발생했습니다' + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '휴가 잔액을 찾을 수 없습니다' + }); + } + + res.json({ + success: true, + message: '휴가 잔액이 수정되었습니다' + }); + }); + } catch (error) { + console.error('updateBalance 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 잔액 삭제 + * DELETE /api/vacation-balances/:id + */ + async deleteBalance(req, res) { + try { + const { id } = req.params; + + vacationBalanceModel.delete(id, (err, result) => { + if (err) { + console.error('휴가 잔액 삭제 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 잔액을 삭제하는 중 오류가 발생했습니다' + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '휴가 잔액을 찾을 수 없습니다' + }); + } + + res.json({ + success: true, + message: '휴가 잔액이 삭제되었습니다' + }); + }); + } catch (error) { + console.error('deleteBalance 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 근속년수 기반 연차 자동 계산 및 생성 + * POST /api/vacation-balances/auto-calculate + */ + async autoCalculateAndCreate(req, res) { + try { + const { worker_id, hire_date, year } = req.body; + const created_by = req.user.user_id; + + if (!worker_id || !hire_date || !year) { + return res.status(400).json({ + success: false, + message: '필수 필드가 누락되었습니다 (worker_id, hire_date, year)' + }); + } + + // 연차 일수 계산 + const annualDays = vacationBalanceModel.calculateAnnualLeaveDays(hire_date, year); + + // ANNUAL 휴가 유형 ID 조회 + vacationTypeModel.getByCode('ANNUAL', (err, types) => { + if (err || !types || types.length === 0) { + console.error('ANNUAL 휴가 유형 조회 오류:', err); + return res.status(500).json({ + success: false, + message: 'ANNUAL 휴가 유형을 찾을 수 없습니다' + }); + } + + const annualTypeId = types[0].id; + + // 중복 체크 + vacationBalanceModel.getByWorkerTypeYear(worker_id, annualTypeId, year, (err, existing) => { + if (err) { + console.error('중복 체크 오류:', err); + return res.status(500).json({ + success: false, + message: '중복 체크 중 오류가 발생했습니다' + }); + } + + if (existing && existing.length > 0) { + return res.status(400).json({ + success: false, + message: '이미 해당 작업자의 해당 연도 연차가 존재합니다' + }); + } + + const balanceData = { + worker_id, + vacation_type_id: annualTypeId, + year, + total_days: annualDays, + used_days: 0, + notes: `근속년수 기반 자동 계산 (입사일: ${hire_date})`, + created_by + }; + + vacationBalanceModel.create(balanceData, (err, result) => { + if (err) { + console.error('휴가 잔액 생성 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 잔액을 생성하는 중 오류가 발생했습니다' + }); + } + + res.status(201).json({ + success: true, + message: `${annualDays}일의 연차가 자동으로 생성되었습니다`, + data: { + id: result.insertId, + calculated_days: annualDays + } + }); + }); + }); + }); + } catch (error) { + console.error('autoCalculateAndCreate 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 잔액 일괄 저장 (upsert) + * POST /api/vacation-balances/bulk-upsert + */ + async bulkUpsert(req, res) { + try { + const { balances } = req.body; + const created_by = req.user.user_id; + + if (!balances || !Array.isArray(balances) || balances.length === 0) { + return res.status(400).json({ + success: false, + message: '저장할 데이터가 없습니다' + }); + } + + const { getDb } = require('../dbPool'); + const db = await getDb(); + + let successCount = 0; + let errorCount = 0; + + for (const balance of balances) { + const { worker_id, vacation_type_id, year, total_days, notes } = balance; + + if (!worker_id || !vacation_type_id || !year || total_days === undefined) { + errorCount++; + continue; + } + + try { + // Upsert 쿼리 + const query = ` + INSERT INTO vacation_balance_details + (worker_id, vacation_type_id, year, total_days, used_days, notes, created_by) + VALUES (?, ?, ?, ?, 0, ?, ?) + ON DUPLICATE KEY UPDATE + total_days = VALUES(total_days), + notes = VALUES(notes), + updated_at = NOW() + `; + + await db.query(query, [worker_id, vacation_type_id, year, total_days, notes || null, created_by]); + successCount++; + } catch (err) { + console.error('휴가 잔액 저장 오류:', err); + errorCount++; + } + } + + res.json({ + success: true, + message: `${successCount}건 저장 완료${errorCount > 0 ? `, ${errorCount}건 실패` : ''}`, + data: { successCount, errorCount } + }); + } catch (error) { + console.error('bulkUpsert 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 작업자의 사용 가능한 휴가 일수 조회 + * GET /api/vacation-balances/worker/:workerId/year/:year/available + */ + async getAvailableDays(req, res) { + try { + const { workerId, year } = req.params; + + vacationBalanceModel.getAvailableVacationDays(workerId, year, (err, results) => { + if (err) { + console.error('사용 가능 휴가 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '사용 가능 휴가를 조회하는 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('getAvailableDays 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + } +}; + +module.exports = vacationBalanceController; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/vacationRequestController.js b/deploy/tkfb-package/api.hyungi.net/controllers/vacationRequestController.js new file mode 100644 index 0000000..8d4df9f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/vacationRequestController.js @@ -0,0 +1,565 @@ +/** + * vacationRequestController.js + * 휴가 신청 관련 컨트롤러 + */ + +const vacationRequestModel = require('../models/vacationRequestModel'); +// TODO: workerVacationBalanceModel 구현 필요 +// const workerVacationBalanceModel = require('../models/workerVacationBalanceModel'); + +const vacationRequestController = { + /** + * 휴가 신청 생성 + */ + async createRequest(req, res) { + try { + const { worker_id, vacation_type_id, start_date, end_date, days_used, reason } = req.body; + const requested_by = req.user.user_id; + + // 필수 필드 검증 + if (!worker_id || !vacation_type_id || !start_date || !end_date || !days_used) { + return res.status(400).json({ + success: false, + message: '필수 필드가 누락되었습니다' + }); + } + + // 날짜 유효성 검증 + const startDate = new Date(start_date); + const endDate = new Date(end_date); + + if (endDate < startDate) { + return res.status(400).json({ + success: false, + message: '종료일은 시작일보다 이후여야 합니다' + }); + } + + // 기간 중복 체크 + vacationRequestModel.checkOverlap(worker_id, start_date, end_date, null, (err, results) => { + if (err) { + console.error('기간 중복 체크 오류:', err); + return res.status(500).json({ + success: false, + message: '기간 중복 체크 중 오류가 발생했습니다' + }); + } + + if (results[0].count > 0) { + return res.status(400).json({ + success: false, + message: '해당 기간에 이미 신청된 휴가가 있습니다' + }); + } + + // TODO: 잔여 연차 확인 로직 구현 필요 + // 현재는 잔여 연차 확인 없이 신청 가능 + + // 휴가 신청 생성 + const requestData = { + worker_id, + vacation_type_id, + start_date, + end_date, + days_used, + reason: reason || null, + status: 'pending', + requested_by + }; + + vacationRequestModel.create(requestData, (err, result) => { + if (err) { + console.error('휴가 신청 생성 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 신청 생성 중 오류가 발생했습니다' + }); + } + + res.status(201).json({ + success: true, + message: '휴가 신청이 완료되었습니다', + data: { + request_id: result.insertId + } + }); + }); + }); + } catch (error) { + console.error('휴가 신청 생성 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 신청 목록 조회 + */ + async getAllRequests(req, res) { + try { + const filters = { + worker_id: req.query.worker_id, + status: req.query.status, + start_date: req.query.start_date, + end_date: req.query.end_date, + vacation_type_id: req.query.vacation_type_id + }; + + // 일반 사용자는 자신의 신청만 조회 가능 + if (req.user.access_level !== 'system') { + if (req.user.worker_id) { + filters.worker_id = req.user.worker_id; + } else { + return res.status(403).json({ + success: false, + message: '권한이 없습니다' + }); + } + } + + vacationRequestModel.getAll(filters, (err, results) => { + if (err) { + console.error('휴가 신청 목록 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 신청 목록 조회 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('휴가 신청 목록 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 특정 휴가 신청 조회 + */ + async getRequestById(req, res) { + try { + const { id } = req.params; + + vacationRequestModel.getById(id, (err, results) => { + if (err) { + console.error('휴가 신청 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 신청 조회 중 오류가 발생했습니다' + }); + } + + if (results.length === 0) { + return res.status(404).json({ + success: false, + message: '해당 휴가 신청을 찾을 수 없습니다' + }); + } + + const request = results[0]; + + // 권한 검증: 관리자 또는 본인만 조회 가능 + if (req.user.access_level !== 'system' && req.user.worker_id !== request.worker_id) { + return res.status(403).json({ + success: false, + message: '권한이 없습니다' + }); + } + + res.json({ + success: true, + data: request + }); + }); + } catch (error) { + console.error('휴가 신청 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 신청 수정 (대기 중인 신청만) + */ + async updateRequest(req, res) { + try { + const { id } = req.params; + const { start_date, end_date, days_used, reason } = req.body; + + // 기존 신청 조회 + vacationRequestModel.getById(id, (err, results) => { + if (err) { + console.error('휴가 신청 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 신청 조회 중 오류가 발생했습니다' + }); + } + + if (results.length === 0) { + return res.status(404).json({ + success: false, + message: '해당 휴가 신청을 찾을 수 없습니다' + }); + } + + const existingRequest = results[0]; + + // 권한 검증 + if (req.user.access_level !== 'system' && req.user.worker_id !== existingRequest.worker_id) { + return res.status(403).json({ + success: false, + message: '권한이 없습니다' + }); + } + + // 대기 중인 신청만 수정 가능 + if (existingRequest.status !== 'pending') { + return res.status(400).json({ + success: false, + message: '승인/거부된 신청은 수정할 수 없습니다' + }); + } + + const updateData = {}; + if (start_date) updateData.start_date = start_date; + if (end_date) updateData.end_date = end_date; + if (days_used) updateData.days_used = days_used; + if (reason !== undefined) updateData.reason = reason; + + // 날짜가 변경된 경우 중복 체크 + if (start_date || end_date) { + const newStartDate = start_date || existingRequest.start_date; + const newEndDate = end_date || existingRequest.end_date; + + vacationRequestModel.checkOverlap( + existingRequest.worker_id, + newStartDate, + newEndDate, + id, + (err, overlapResults) => { + if (err) { + console.error('기간 중복 체크 오류:', err); + return res.status(500).json({ + success: false, + message: '기간 중복 체크 중 오류가 발생했습니다' + }); + } + + if (overlapResults[0].count > 0) { + return res.status(400).json({ + success: false, + message: '해당 기간에 이미 신청된 휴가가 있습니다' + }); + } + + // 수정 실행 + vacationRequestModel.update(id, updateData, (err, result) => { + if (err) { + console.error('휴가 신청 수정 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 신청 수정 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + message: '휴가 신청이 수정되었습니다' + }); + }); + } + ); + } else { + // 날짜 변경 없이 바로 수정 + vacationRequestModel.update(id, updateData, (err, result) => { + if (err) { + console.error('휴가 신청 수정 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 신청 수정 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + message: '휴가 신청이 수정되었습니다' + }); + }); + } + }); + } catch (error) { + console.error('휴가 신청 수정 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 신청 삭제 (대기 중인 신청만) + */ + async deleteRequest(req, res) { + try { + const { id } = req.params; + + // 기존 신청 조회 + vacationRequestModel.getById(id, (err, results) => { + if (err) { + console.error('휴가 신청 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 신청 조회 중 오류가 발생했습니다' + }); + } + + if (results.length === 0) { + return res.status(404).json({ + success: false, + message: '해당 휴가 신청을 찾을 수 없습니다' + }); + } + + const existingRequest = results[0]; + + // 권한 검증 + if (req.user.access_level !== 'system' && req.user.worker_id !== existingRequest.worker_id) { + return res.status(403).json({ + success: false, + message: '권한이 없습니다' + }); + } + + // 대기 중인 신청만 삭제 가능 + if (existingRequest.status !== 'pending') { + return res.status(400).json({ + success: false, + message: '승인/거부된 신청은 삭제할 수 없습니다' + }); + } + + vacationRequestModel.delete(id, (err, result) => { + if (err) { + console.error('휴가 신청 삭제 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 신청 삭제 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + message: '휴가 신청이 삭제되었습니다' + }); + }); + }); + } catch (error) { + console.error('휴가 신청 삭제 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 신청 승인 (관리자만) + */ + async approveRequest(req, res) { + try { + const { id } = req.params; + const { review_note } = req.body; + const reviewed_by = req.user.user_id; + + // 관리자 권한 확인 + if (req.user.access_level !== 'system') { + return res.status(403).json({ + success: false, + message: '관리자만 승인할 수 있습니다' + }); + } + + // 기존 신청 조회 + vacationRequestModel.getById(id, (err, results) => { + if (err) { + console.error('휴가 신청 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 신청 조회 중 오류가 발생했습니다' + }); + } + + if (results.length === 0) { + return res.status(404).json({ + success: false, + message: '해당 휴가 신청을 찾을 수 없습니다' + }); + } + + const request = results[0]; + + if (request.status !== 'pending') { + return res.status(400).json({ + success: false, + message: '이미 처리된 신청입니다' + }); + } + + // 상태 업데이트 + const statusData = { + status: 'approved', + reviewed_by, + review_note + }; + + vacationRequestModel.updateStatus(id, statusData, (err, result) => { + if (err) { + console.error('휴가 승인 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 승인 중 오류가 발생했습니다' + }); + } + + // TODO: 잔여 연차에서 차감 로직 구현 필요 + // 현재는 연차 차감 없이 승인만 처리 + + res.json({ + success: true, + message: '휴가 신청이 승인되었습니다' + }); + }); + }); + } catch (error) { + console.error('휴가 승인 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 신청 거부 (관리자만) + */ + async rejectRequest(req, res) { + try { + const { id } = req.params; + const { review_note } = req.body; + const reviewed_by = req.user.user_id; + + // 관리자 권한 확인 + if (req.user.access_level !== 'system') { + return res.status(403).json({ + success: false, + message: '관리자만 거부할 수 있습니다' + }); + } + + // 기존 신청 조회 + vacationRequestModel.getById(id, (err, results) => { + if (err) { + console.error('휴가 신청 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 신청 조회 중 오류가 발생했습니다' + }); + } + + if (results.length === 0) { + return res.status(404).json({ + success: false, + message: '해당 휴가 신청을 찾을 수 없습니다' + }); + } + + const request = results[0]; + + if (request.status !== 'pending') { + return res.status(400).json({ + success: false, + message: '이미 처리된 신청입니다' + }); + } + + // 상태 업데이트 + const statusData = { + status: 'rejected', + reviewed_by, + review_note + }; + + vacationRequestModel.updateStatus(id, statusData, (err, result) => { + if (err) { + console.error('휴가 거부 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 거부 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + message: '휴가 신청이 거부되었습니다' + }); + }); + }); + } catch (error) { + console.error('휴가 거부 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 대기 중인 휴가 신청 목록 (관리자용) + */ + async getPendingRequests(req, res) { + try { + // 관리자 권한 확인 + if (req.user.access_level !== 'system') { + return res.status(403).json({ + success: false, + message: '관리자만 조회할 수 있습니다' + }); + } + + vacationRequestModel.getAllPending((err, results) => { + if (err) { + console.error('대기 중인 휴가 신청 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '대기 중인 휴가 신청 조회 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('대기 중인 휴가 신청 조회 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + } +}; + +module.exports = vacationRequestController; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/vacationTypeController.js b/deploy/tkfb-package/api.hyungi.net/controllers/vacationTypeController.js new file mode 100644 index 0000000..9eddaeb --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/vacationTypeController.js @@ -0,0 +1,333 @@ +/** + * vacationTypeController.js + * 휴가 유형 관련 컨트롤러 + */ + +const vacationTypeModel = require('../models/vacationTypeModel'); + +const vacationTypeController = { + /** + * 모든 활성 휴가 유형 조회 + * GET /api/vacation-types + */ + async getAllTypes(req, res) { + try { + vacationTypeModel.getAll((err, results) => { + if (err) { + console.error('휴가 유형 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 유형을 조회하는 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('getAllTypes 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 시스템 기본 휴가 유형 조회 + * GET /api/vacation-types/system + */ + async getSystemTypes(req, res) { + try { + vacationTypeModel.getSystemTypes((err, results) => { + if (err) { + console.error('시스템 휴가 유형 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '시스템 휴가 유형을 조회하는 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('getSystemTypes 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 특별 휴가 유형 조회 + * GET /api/vacation-types/special + */ + async getSpecialTypes(req, res) { + try { + vacationTypeModel.getSpecialTypes((err, results) => { + if (err) { + console.error('특별 휴가 유형 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '특별 휴가 유형을 조회하는 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + data: results + }); + }); + } catch (error) { + console.error('getSpecialTypes 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 특별 휴가 유형 생성 (관리자만) + * POST /api/vacation-types + */ + async createType(req, res) { + try { + const { + type_code, + type_name, + deduct_days, + priority, + description + } = req.body; + + // 필수 필드 검증 + if (!type_code || !type_name || !deduct_days) { + return res.status(400).json({ + success: false, + message: '필수 필드가 누락되었습니다 (type_code, type_name, deduct_days)' + }); + } + + // type_code 중복 체크 + vacationTypeModel.getByCode(type_code, (err, existingTypes) => { + if (err) { + console.error('type_code 중복 체크 오류:', err); + return res.status(500).json({ + success: false, + message: 'type_code 중복 체크 중 오류가 발생했습니다' + }); + } + + if (existingTypes && existingTypes.length > 0) { + return res.status(400).json({ + success: false, + message: '이미 존재하는 type_code입니다' + }); + } + + // 특별 휴가 유형으로 생성 + const typeData = { + type_code, + type_name, + deduct_days, + priority: priority || 50, + description: description || null, + is_special: true, + is_system: false, + is_active: true + }; + + vacationTypeModel.create(typeData, (err, result) => { + if (err) { + console.error('휴가 유형 생성 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 유형을 생성하는 중 오류가 발생했습니다' + }); + } + + res.status(201).json({ + success: true, + message: '특별 휴가 유형이 생성되었습니다', + data: { id: result.insertId } + }); + }); + }); + } catch (error) { + console.error('createType 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 유형 수정 (관리자만) + * PUT /api/vacation-types/:id + */ + async updateType(req, res) { + try { + const { id } = req.params; + const { + type_name, + deduct_days, + priority, + description, + is_active + } = req.body; + + // 먼저 해당 유형 조회 + vacationTypeModel.getById(id, (err, types) => { + if (err) { + console.error('휴가 유형 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 유형을 조회하는 중 오류가 발생했습니다' + }); + } + + if (!types || types.length === 0) { + return res.status(404).json({ + success: false, + message: '휴가 유형을 찾을 수 없습니다' + }); + } + + const type = types[0]; + + // 시스템 기본 휴가의 경우 제한적으로만 수정 가능 + const updateData = {}; + if (type.is_system) { + // 시스템 휴가는 priority와 description만 수정 가능 + if (priority !== undefined) updateData.priority = priority; + if (description !== undefined) updateData.description = description; + } else { + // 특별 휴가는 모든 필드 수정 가능 + if (type_name) updateData.type_name = type_name; + if (deduct_days !== undefined) updateData.deduct_days = deduct_days; + if (priority !== undefined) updateData.priority = priority; + if (description !== undefined) updateData.description = description; + if (is_active !== undefined) updateData.is_active = is_active; + } + + if (Object.keys(updateData).length === 0) { + return res.status(400).json({ + success: false, + message: '수정할 데이터가 없습니다' + }); + } + + updateData.updated_at = new Date(); + + vacationTypeModel.update(id, updateData, (err, result) => { + if (err) { + console.error('휴가 유형 수정 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 유형을 수정하는 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + message: '휴가 유형이 수정되었습니다' + }); + }); + }); + } catch (error) { + console.error('updateType 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 특별 휴가 유형 삭제 (관리자만, 시스템 기본 휴가는 삭제 불가) + * DELETE /api/vacation-types/:id + */ + async deleteType(req, res) { + try { + const { id } = req.params; + + vacationTypeModel.delete(id, (err, result) => { + if (err) { + console.error('휴가 유형 삭제 오류:', err); + return res.status(500).json({ + success: false, + message: '휴가 유형을 삭제하는 중 오류가 발생했습니다' + }); + } + + if (result.affectedRows === 0) { + return res.status(400).json({ + success: false, + message: '삭제할 수 없습니다. 시스템 기본 휴가이거나 존재하지 않는 휴가 유형입니다' + }); + } + + res.json({ + success: true, + message: '휴가 유형이 삭제되었습니다' + }); + }); + } catch (error) { + console.error('deleteType 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + }, + + /** + * 휴가 유형 우선순위 일괄 업데이트 (관리자만) + * PUT /api/vacation-types/priorities + */ + async updatePriorities(req, res) { + try { + const { priorities } = req.body; + + // priorities = [{ id: 1, priority: 10 }, { id: 2, priority: 20 }, ...] + if (!priorities || !Array.isArray(priorities)) { + return res.status(400).json({ + success: false, + message: 'priorities 배열이 필요합니다' + }); + } + + vacationTypeModel.updatePriorities(priorities, (err, result) => { + if (err) { + console.error('우선순위 업데이트 오류:', err); + return res.status(500).json({ + success: false, + message: '우선순위를 업데이트하는 중 오류가 발생했습니다' + }); + } + + res.json({ + success: true, + message: '우선순위가 업데이트되었습니다', + data: { updated: result.affectedRows } + }); + }); + } catch (error) { + console.error('updatePriorities 오류:', error); + res.status(500).json({ + success: false, + message: '서버 오류가 발생했습니다' + }); + } + } +}; + +module.exports = vacationTypeController; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/visitRequestController.js b/deploy/tkfb-package/api.hyungi.net/controllers/visitRequestController.js new file mode 100644 index 0000000..8a7e5b6 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/visitRequestController.js @@ -0,0 +1,555 @@ +const visitRequestModel = require('../models/visitRequestModel'); + +// ==================== 출입 신청 관리 ==================== + +/** + * 출입 신청 생성 + */ +exports.createVisitRequest = (req, res) => { + const requester_id = req.user.user_id; + const requestData = { + requester_id, + ...req.body + }; + + // 필수 필드 검증 + const requiredFields = ['visitor_company', 'category_id', 'workplace_id', 'visit_date', 'visit_time', 'purpose_id']; + for (const field of requiredFields) { + if (!requestData[field]) { + return res.status(400).json({ + success: false, + message: `${field}는 필수 입력 항목입니다.` + }); + } + } + + visitRequestModel.createVisitRequest(requestData, (err, requestId) => { + if (err) { + console.error('출입 신청 생성 오류:', err); + return res.status(500).json({ + success: false, + message: '출입 신청 생성 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.status(201).json({ + success: true, + message: '출입 신청이 성공적으로 생성되었습니다.', + data: { request_id: requestId } + }); + }); +}; + +/** + * 출입 신청 목록 조회 + */ +exports.getAllVisitRequests = (req, res) => { + const filters = { + status: req.query.status, + visit_date: req.query.visit_date, + start_date: req.query.start_date, + end_date: req.query.end_date, + requester_id: req.query.requester_id, + category_id: req.query.category_id + }; + + visitRequestModel.getAllVisitRequests(filters, (err, requests) => { + if (err) { + console.error('출입 신청 목록 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '출입 신청 목록 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: requests + }); + }); +}; + +/** + * 출입 신청 상세 조회 + */ +exports.getVisitRequestById = (req, res) => { + const requestId = req.params.id; + + visitRequestModel.getVisitRequestById(requestId, (err, request) => { + if (err) { + console.error('출입 신청 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '출입 신청 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (!request) { + return res.status(404).json({ + success: false, + message: '출입 신청을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + data: request + }); + }); +}; + +/** + * 출입 신청 수정 + */ +exports.updateVisitRequest = (req, res) => { + const requestId = req.params.id; + const requestData = req.body; + + visitRequestModel.updateVisitRequest(requestId, requestData, (err, result) => { + if (err) { + console.error('출입 신청 수정 오류:', err); + return res.status(500).json({ + success: false, + message: '출입 신청 수정 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '출입 신청을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '출입 신청이 수정되었습니다.' + }); + }); +}; + +/** + * 출입 신청 삭제 + */ +exports.deleteVisitRequest = (req, res) => { + const requestId = req.params.id; + + visitRequestModel.deleteVisitRequest(requestId, (err, result) => { + if (err) { + console.error('출입 신청 삭제 오류:', err); + return res.status(500).json({ + success: false, + message: '출입 신청 삭제 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '출입 신청을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '출입 신청이 삭제되었습니다.' + }); + }); +}; + +/** + * 출입 신청 승인 + */ +exports.approveVisitRequest = (req, res) => { + const requestId = req.params.id; + const approvedBy = req.user.user_id; + + visitRequestModel.approveVisitRequest(requestId, approvedBy, (err, result) => { + if (err) { + console.error('출입 신청 승인 오류:', err); + return res.status(500).json({ + success: false, + message: '출입 신청 승인 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '출입 신청을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '출입 신청이 승인되었습니다.' + }); + }); +}; + +/** + * 출입 신청 반려 + */ +exports.rejectVisitRequest = (req, res) => { + const requestId = req.params.id; + const approvedBy = req.user.user_id; + const rejectionReason = req.body.rejection_reason || '사유 없음'; + + const rejectionData = { + approved_by: approvedBy, + rejection_reason: rejectionReason + }; + + visitRequestModel.rejectVisitRequest(requestId, rejectionData, (err, result) => { + if (err) { + console.error('출입 신청 반려 오류:', err); + return res.status(500).json({ + success: false, + message: '출입 신청 반려 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '출입 신청을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '출입 신청이 반려되었습니다.' + }); + }); +}; + +// ==================== 방문 목적 관리 ==================== + +/** + * 모든 방문 목적 조회 + */ +exports.getAllVisitPurposes = (req, res) => { + visitRequestModel.getAllVisitPurposes((err, purposes) => { + if (err) { + console.error('방문 목적 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '방문 목적 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: purposes + }); + }); +}; + +/** + * 활성 방문 목적만 조회 + */ +exports.getActiveVisitPurposes = (req, res) => { + visitRequestModel.getActiveVisitPurposes((err, purposes) => { + if (err) { + console.error('활성 방문 목적 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '활성 방문 목적 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: purposes + }); + }); +}; + +/** + * 방문 목적 추가 + */ +exports.createVisitPurpose = (req, res) => { + const purposeData = req.body; + + if (!purposeData.purpose_name) { + return res.status(400).json({ + success: false, + message: 'purpose_name은 필수 입력 항목입니다.' + }); + } + + visitRequestModel.createVisitPurpose(purposeData, (err, purposeId) => { + if (err) { + console.error('방문 목적 추가 오류:', err); + return res.status(500).json({ + success: false, + message: '방문 목적 추가 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.status(201).json({ + success: true, + message: '방문 목적이 추가되었습니다.', + data: { purpose_id: purposeId } + }); + }); +}; + +/** + * 방문 목적 수정 + */ +exports.updateVisitPurpose = (req, res) => { + const purposeId = req.params.id; + const purposeData = req.body; + + visitRequestModel.updateVisitPurpose(purposeId, purposeData, (err, result) => { + if (err) { + console.error('방문 목적 수정 오류:', err); + return res.status(500).json({ + success: false, + message: '방문 목적 수정 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '방문 목적을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '방문 목적이 수정되었습니다.' + }); + }); +}; + +/** + * 방문 목적 삭제 + */ +exports.deleteVisitPurpose = (req, res) => { + const purposeId = req.params.id; + + visitRequestModel.deleteVisitPurpose(purposeId, (err, result) => { + if (err) { + console.error('방문 목적 삭제 오류:', err); + return res.status(500).json({ + success: false, + message: '방문 목적 삭제 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '방문 목적을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '방문 목적이 삭제되었습니다.' + }); + }); +}; + +// ==================== 안전교육 기록 관리 ==================== + +/** + * 안전교육 기록 생성 + */ +exports.createTrainingRecord = (req, res) => { + const trainerId = req.user.user_id; + const trainingData = { + trainer_id: trainerId, + ...req.body + }; + + // 필수 필드 검증 + const requiredFields = ['request_id', 'training_date', 'training_start_time']; + for (const field of requiredFields) { + if (!trainingData[field]) { + return res.status(400).json({ + success: false, + message: `${field}는 필수 입력 항목입니다.` + }); + } + } + + visitRequestModel.createTrainingRecord(trainingData, (err, trainingId) => { + if (err) { + console.error('안전교육 기록 생성 오류:', err); + return res.status(500).json({ + success: false, + message: '안전교육 기록 생성 중 오류가 발생했습니다.', + error: err.message + }); + } + + // 안전교육 기록이 생성되면 출입 신청 상태를 training_completed로 변경 + console.log(`[교육 완료] request_id=${trainingData.request_id} 상태를 training_completed로 변경 중...`); + visitRequestModel.updateVisitRequestStatus(trainingData.request_id, 'training_completed', (statusErr) => { + if (statusErr) { + console.error('출입 신청 상태 업데이트 오류:', statusErr); + // 에러가 발생해도 교육 기록은 생성되었으므로 성공 응답 + } else { + console.log(`[교육 완료] request_id=${trainingData.request_id} 상태 변경 성공`); + } + + res.status(201).json({ + success: true, + message: '안전교육 기록이 생성되었습니다.', + data: { training_id: trainingId } + }); + }); + }); +}; + +/** + * 특정 출입 신청의 안전교육 기록 조회 + */ +exports.getTrainingRecordByRequestId = (req, res) => { + const requestId = req.params.requestId; + + visitRequestModel.getTrainingRecordByRequestId(requestId, (err, record) => { + if (err) { + console.error('안전교육 기록 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '안전교육 기록 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: record || null + }); + }); +}; + +/** + * 안전교육 기록 수정 + */ +exports.updateTrainingRecord = (req, res) => { + const trainingId = req.params.id; + const trainingData = req.body; + + visitRequestModel.updateTrainingRecord(trainingId, trainingData, (err, result) => { + if (err) { + console.error('안전교육 기록 수정 오류:', err); + return res.status(500).json({ + success: false, + message: '안전교육 기록 수정 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '안전교육 기록을 찾을 수 없습니다.' + }); + } + + res.json({ + success: true, + message: '안전교육 기록이 수정되었습니다.' + }); + }); +}; + +/** + * 안전교육 완료 (서명 포함) + */ +exports.completeTraining = (req, res) => { + const trainingId = req.params.id; + const signatureData = req.body.signature_data; + + if (!signatureData) { + return res.status(400).json({ + success: false, + message: '서명 데이터가 필요합니다.' + }); + } + + visitRequestModel.completeTraining(trainingId, signatureData, (err, result) => { + if (err) { + console.error('안전교육 완료 처리 오류:', err); + return res.status(500).json({ + success: false, + message: '안전교육 완료 처리 중 오류가 발생했습니다.', + error: err.message + }); + } + + if (result.affectedRows === 0) { + return res.status(404).json({ + success: false, + message: '안전교육 기록을 찾을 수 없습니다.' + }); + } + + // 교육 완료 후 출입 신청 상태를 'training_completed'로 변경 + visitRequestModel.getTrainingRecordByRequestId(trainingId, (err, record) => { + if (err || !record) { + return res.json({ + success: true, + message: '안전교육이 완료되었습니다.' + }); + } + + visitRequestModel.updateVisitRequestStatus(record.request_id, 'training_completed', (err) => { + if (err) { + console.error('출입 신청 상태 업데이트 오류:', err); + } + + res.json({ + success: true, + message: '안전교육이 완료되었습니다.' + }); + }); + }); + }); +}; + +/** + * 안전교육 기록 목록 조회 + */ +exports.getTrainingRecords = (req, res) => { + const filters = { + training_date: req.query.training_date, + start_date: req.query.start_date, + end_date: req.query.end_date, + trainer_id: req.query.trainer_id + }; + + visitRequestModel.getTrainingRecords(filters, (err, records) => { + if (err) { + console.error('안전교육 기록 목록 조회 오류:', err); + return res.status(500).json({ + success: false, + message: '안전교육 기록 목록 조회 중 오류가 발생했습니다.', + error: err.message + }); + } + + res.json({ + success: true, + data: records + }); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/workAnalysisController.js b/deploy/tkfb-package/api.hyungi.net/controllers/workAnalysisController.js new file mode 100644 index 0000000..506e003 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/workAnalysisController.js @@ -0,0 +1,490 @@ +/** + * 작업 분석 컨트롤러 + * + * 작업 보고서 다차원 분석 API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const WorkAnalysis = require('../models/WorkAnalysis'); +const { getDb } = require('../dbPool'); +const { ValidationError, DatabaseError } = require('../utils/errors'); +const { asyncHandler } = require('../middlewares/errorHandler'); +const logger = require('../utils/logger'); + +/** + * 날짜 유효성 검사 헬퍼 함수 + */ +const validateDateRange = (startDate, endDate) => { + if (!startDate || !endDate) { + throw new ValidationError('시작일과 종료일을 입력해주세요', { + required: ['start', 'end'], + received: { start: startDate, end: endDate } + }); + } + + const start = new Date(startDate); + const end = new Date(endDate); + + if (isNaN(start.getTime()) || isNaN(end.getTime())) { + throw new ValidationError('올바른 날짜 형식을 입력해주세요', { + format: 'YYYY-MM-DD', + received: { start: startDate, end: endDate } + }); + } + + if (start > end) { + throw new ValidationError('시작일이 종료일보다 늦을 수 없습니다', { + start: startDate, + end: endDate + }); + } + + // 너무 긴 기간 방지 (1년 제한) + const diffTime = Math.abs(end - start); + const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); + if (diffDays > 365) { + throw new ValidationError('조회 기간은 1년을 초과할 수 없습니다', { + days: diffDays, + max: 365 + }); + } + + return { start, end }; +}; + +/** + * 기본 통계 조회 + */ +const getStats = asyncHandler(async (req, res) => { + const { start, end } = req.query; + validateDateRange(start, end); + + logger.info('기본 통계 조회 요청', { start, end }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + const stats = await workAnalysis.getBasicStats(start, end); + + logger.info('기본 통계 조회 성공', { start, end }); + + res.json({ + success: true, + data: stats, + message: '기본 통계 조회 완료' + }); + } catch (error) { + logger.error('기본 통계 조회 실패', { start, end, error: error.message }); + throw new DatabaseError('기본 통계 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 일별 작업시간 추이 조회 + */ +const getDailyTrend = asyncHandler(async (req, res) => { + const { start, end } = req.query; + validateDateRange(start, end); + + logger.info('일별 추이 조회 요청', { start, end }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + const trendData = await workAnalysis.getDailyTrend(start, end); + + logger.info('일별 추이 조회 성공', { start, end, dataPoints: trendData.length }); + + res.json({ + success: true, + data: trendData, + message: '일별 추이 조회 완료' + }); + } catch (error) { + logger.error('일별 추이 조회 실패', { start, end, error: error.message }); + throw new DatabaseError('일별 추이 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 작업자별 통계 조회 + */ +const getWorkerStats = asyncHandler(async (req, res) => { + const { start, end } = req.query; + validateDateRange(start, end); + + logger.info('작업자별 통계 조회 요청', { start, end }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + const workerStats = await workAnalysis.getWorkerStats(start, end); + + logger.info('작업자별 통계 조회 성공', { + start, + end, + workerCount: workerStats.length + }); + + res.json({ + success: true, + data: workerStats, + message: '작업자별 통계 조회 완료' + }); + } catch (error) { + logger.error('작업자별 통계 조회 실패', { start, end, error: error.message }); + throw new DatabaseError('작업자별 통계 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 프로젝트별 통계 조회 + */ +const getProjectStats = asyncHandler(async (req, res) => { + const { start, end } = req.query; + validateDateRange(start, end); + + logger.info('프로젝트별 통계 조회 요청', { start, end }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + const projectStats = await workAnalysis.getProjectStats(start, end); + + logger.info('프로젝트별 통계 조회 성공', { + start, + end, + projectCount: projectStats.length + }); + + res.json({ + success: true, + data: projectStats, + message: '프로젝트별 통계 조회 완료' + }); + } catch (error) { + logger.error('프로젝트별 통계 조회 실패', { start, end, error: error.message }); + throw new DatabaseError('프로젝트별 통계 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 작업유형별 통계 조회 + */ +const getWorkTypeStats = asyncHandler(async (req, res) => { + const { start, end } = req.query; + validateDateRange(start, end); + + logger.info('작업유형별 통계 조회 요청', { start, end }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + const workTypeStats = await workAnalysis.getWorkTypeStats(start, end); + + logger.info('작업유형별 통계 조회 성공', { + start, + end, + workTypeCount: workTypeStats.length + }); + + res.json({ + success: true, + data: workTypeStats, + message: '작업유형별 통계 조회 완료' + }); + } catch (error) { + logger.error('작업유형별 통계 조회 실패', { start, end, error: error.message }); + throw new DatabaseError('작업유형별 통계 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 최근 작업 현황 조회 + */ +const getRecentWork = asyncHandler(async (req, res) => { + const { start, end, limit = 10 } = req.query; + validateDateRange(start, end); + + // limit 유효성 검사 (최대 5000까지 허용) + const limitNum = parseInt(limit); + if (isNaN(limitNum) || limitNum < 1 || limitNum > 5000) { + throw new ValidationError('limit은 1~5000 사이의 숫자여야 합니다', { + received: limit, + min: 1, + max: 5000 + }); + } + + logger.info('최근 작업 현황 조회 요청', { start, end, limit: limitNum }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + const recentWork = await workAnalysis.getRecentWork(start, end, limitNum); + + logger.info('최근 작업 현황 조회 성공', { + start, + end, + limit: limitNum, + resultCount: recentWork.length + }); + + res.json({ + success: true, + data: recentWork, + message: '최근 작업 현황 조회 완료' + }); + } catch (error) { + logger.error('최근 작업 현황 조회 실패', { + start, + end, + limit: limitNum, + error: error.message + }); + throw new DatabaseError('최근 작업 현황 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 요일별 패턴 분석 조회 + */ +const getWeekdayPattern = asyncHandler(async (req, res) => { + const { start, end } = req.query; + validateDateRange(start, end); + + logger.info('요일별 패턴 분석 요청', { start, end }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + const weekdayPattern = await workAnalysis.getWeekdayPattern(start, end); + + logger.info('요일별 패턴 분석 성공', { start, end }); + + res.json({ + success: true, + data: weekdayPattern, + message: '요일별 패턴 분석 완료' + }); + } catch (error) { + logger.error('요일별 패턴 분석 실패', { start, end, error: error.message }); + throw new DatabaseError('요일별 패턴 분석 중 오류가 발생했습니다'); + } +}); + +/** + * 에러 분석 조회 + */ +const getErrorAnalysis = asyncHandler(async (req, res) => { + const { start, end } = req.query; + validateDateRange(start, end); + + logger.info('에러 분석 요청', { start, end }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + const errorAnalysis = await workAnalysis.getErrorAnalysis(start, end); + + logger.info('에러 분석 성공', { start, end }); + + res.json({ + success: true, + data: errorAnalysis, + message: '에러 분석 완료' + }); + } catch (error) { + logger.error('에러 분석 실패', { start, end, error: error.message }); + throw new DatabaseError('에러 분석 중 오류가 발생했습니다'); + } +}); + +/** + * 월별 비교 분석 조회 + */ +const getMonthlyComparison = asyncHandler(async (req, res) => { + const { year = new Date().getFullYear() } = req.query; + + const yearNum = parseInt(year); + if (isNaN(yearNum) || yearNum < 2000 || yearNum > 2050) { + throw new ValidationError('올바른 연도를 입력해주세요', { + received: year, + min: 2000, + max: 2050 + }); + } + + logger.info('월별 비교 분석 요청', { year: yearNum }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + const monthlyData = await workAnalysis.getMonthlyComparison(yearNum); + + logger.info('월별 비교 분석 성공', { year: yearNum }); + + res.json({ + success: true, + data: monthlyData, + message: '월별 비교 분석 완료' + }); + } catch (error) { + logger.error('월별 비교 분석 실패', { year: yearNum, error: error.message }); + throw new DatabaseError('월별 비교 분석 중 오류가 발생했습니다'); + } +}); + +/** + * 작업자별 전문분야 분석 조회 + */ +const getWorkerSpecialization = asyncHandler(async (req, res) => { + const { start, end } = req.query; + validateDateRange(start, end); + + logger.info('작업자별 전문분야 분석 요청', { start, end }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + const specializationData = await workAnalysis.getWorkerSpecialization(start, end); + + // 작업자별로 그룹화하여 정리 + const groupedData = specializationData.reduce((acc, item) => { + if (!acc[item.worker_id]) { + acc[item.worker_id] = []; + } + acc[item.worker_id].push({ + work_type_id: item.work_type_id, + project_id: item.project_id, + totalHours: item.totalHours, + totalReports: item.totalReports, + percentage: item.percentage + }); + return acc; + }, {}); + + logger.info('작업자별 전문분야 분석 성공', { + start, + end, + workerCount: Object.keys(groupedData).length + }); + + res.json({ + success: true, + data: groupedData, + message: '작업자별 전문분야 분석 완료' + }); + } catch (error) { + logger.error('작업자별 전문분야 분석 실패', { start, end, error: error.message }); + throw new DatabaseError('작업자별 전문분야 분석 중 오류가 발생했습니다'); + } +}); + +/** + * 대시보드용 종합 데이터 조회 + */ +const getDashboardData = asyncHandler(async (req, res) => { + const { start, end } = req.query; + validateDateRange(start, end); + + logger.info('대시보드 데이터 조회 요청', { start, end }); + + try { + const db = await getDb(); + const workAnalysis = new WorkAnalysis(db); + + // 병렬로 여러 데이터 조회 + const [ + stats, + dailyTrend, + workerStats, + projectStats, + workTypeStats, + recentWork + ] = await Promise.all([ + workAnalysis.getBasicStats(start, end), + workAnalysis.getDailyTrend(start, end), + workAnalysis.getWorkerStats(start, end), + workAnalysis.getProjectStats(start, end), + workAnalysis.getWorkTypeStats(start, end), + workAnalysis.getRecentWork(start, end, 10) + ]); + + logger.info('대시보드 데이터 조회 성공', { start, end }); + + res.json({ + success: true, + data: { + stats, + dailyTrend, + workerStats, + projectStats, + workTypeStats, + recentWork + }, + message: '대시보드 데이터 조회 완료' + }); + } catch (error) { + logger.error('대시보드 데이터 조회 실패', { start, end, error: error.message }); + throw new DatabaseError('대시보드 데이터 조회 중 오류가 발생했습니다'); + } +}); + +const workAnalysisService = require('../services/workAnalysisService'); + +/** + * 프로젝트별-작업별 시간 분석 (총시간, 정규시간, 에러시간) + */ +const getProjectWorkTypeAnalysis = asyncHandler(async (req, res) => { + const { start, end } = req.query; + validateDateRange(start, end); + + logger.info('프로젝트별-작업별 시간 분석 요청', { start, end }); + + try { + const result = await workAnalysisService.getProjectWorkTypeAnalysis(start, end); + + logger.info('프로젝트별-작업별 시간 분석 성공', { + start, + end, + projectCount: result.summary.total_projects, + workTypeCount: result.summary.total_work_types, + totalHours: result.summary.grand_total_hours + }); + + res.json({ + success: true, + data: result, + message: '프로젝트별-작업별 시간 분석 완료' + }); + } catch (error) { + logger.error('프로젝트별-작업별 시간 분석 실패', { + start, + end, + error: error.message + }); + // Service throws DatabaseError wrapper or Error + if (error.name === 'DatabaseError') { + throw error; + } + throw new DatabaseError('프로젝트별-작업별 시간 분석 중 오류가 발생했습니다'); + } +}); + +module.exports = { + getStats, + getDailyTrend, + getWorkerStats, + getProjectStats, + getWorkTypeStats, + getRecentWork, + getWeekdayPattern, + getErrorAnalysis, + getMonthlyComparison, + getWorkerSpecialization, + getDashboardData, + getProjectWorkTypeAnalysis +}; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/workIssueController.js b/deploy/tkfb-package/api.hyungi.net/controllers/workIssueController.js new file mode 100644 index 0000000..0811be6 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/workIssueController.js @@ -0,0 +1,674 @@ +/** + * 작업 중 문제 신고 컨트롤러 + */ + +const workIssueModel = require('../models/workIssueModel'); +const imageUploadService = require('../services/imageUploadService'); + +// ==================== 신고 카테고리 관리 ==================== + +/** + * 모든 카테고리 조회 + */ +exports.getAllCategories = (req, res) => { + workIssueModel.getAllCategories((err, categories) => { + if (err) { + console.error('카테고리 조회 실패:', err); + return res.status(500).json({ success: false, error: '카테고리 조회 실패' }); + } + res.json({ success: true, data: categories }); + }); +}; + +/** + * 타입별 카테고리 조회 + */ +exports.getCategoriesByType = (req, res) => { + const { type } = req.params; + + if (!['nonconformity', 'safety'].includes(type)) { + return res.status(400).json({ success: false, error: '유효하지 않은 카테고리 타입입니다.' }); + } + + workIssueModel.getCategoriesByType(type, (err, categories) => { + if (err) { + console.error('카테고리 조회 실패:', err); + return res.status(500).json({ success: false, error: '카테고리 조회 실패' }); + } + res.json({ success: true, data: categories }); + }); +}; + +/** + * 카테고리 생성 + */ +exports.createCategory = (req, res) => { + const { category_type, category_name, description, display_order } = req.body; + + if (!category_type || !category_name) { + return res.status(400).json({ success: false, error: '카테고리 타입과 이름은 필수입니다.' }); + } + + workIssueModel.createCategory( + { category_type, category_name, description, display_order }, + (err, categoryId) => { + if (err) { + console.error('카테고리 생성 실패:', err); + return res.status(500).json({ success: false, error: '카테고리 생성 실패' }); + } + res.status(201).json({ + success: true, + message: '카테고리가 생성되었습니다.', + data: { category_id: categoryId } + }); + } + ); +}; + +/** + * 카테고리 수정 + */ +exports.updateCategory = (req, res) => { + const { id } = req.params; + const { category_name, description, display_order, is_active } = req.body; + + workIssueModel.updateCategory( + id, + { category_name, description, display_order, is_active }, + (err, result) => { + if (err) { + console.error('카테고리 수정 실패:', err); + return res.status(500).json({ success: false, error: '카테고리 수정 실패' }); + } + res.json({ success: true, message: '카테고리가 수정되었습니다.' }); + } + ); +}; + +/** + * 카테고리 삭제 + */ +exports.deleteCategory = (req, res) => { + const { id } = req.params; + + workIssueModel.deleteCategory(id, (err, result) => { + if (err) { + console.error('카테고리 삭제 실패:', err); + return res.status(500).json({ success: false, error: '카테고리 삭제 실패' }); + } + res.json({ success: true, message: '카테고리가 삭제되었습니다.' }); + }); +}; + +// ==================== 사전 정의 항목 관리 ==================== + +/** + * 카테고리별 항목 조회 + */ +exports.getItemsByCategory = (req, res) => { + const { categoryId } = req.params; + + workIssueModel.getItemsByCategory(categoryId, (err, items) => { + if (err) { + console.error('항목 조회 실패:', err); + return res.status(500).json({ success: false, error: '항목 조회 실패' }); + } + res.json({ success: true, data: items }); + }); +}; + +/** + * 모든 항목 조회 + */ +exports.getAllItems = (req, res) => { + workIssueModel.getAllItems((err, items) => { + if (err) { + console.error('항목 조회 실패:', err); + return res.status(500).json({ success: false, error: '항목 조회 실패' }); + } + res.json({ success: true, data: items }); + }); +}; + +/** + * 항목 생성 + */ +exports.createItem = (req, res) => { + const { category_id, item_name, description, severity, display_order } = req.body; + + if (!category_id || !item_name) { + return res.status(400).json({ success: false, error: '카테고리 ID와 항목명은 필수입니다.' }); + } + + workIssueModel.createItem( + { category_id, item_name, description, severity, display_order }, + (err, itemId) => { + if (err) { + console.error('항목 생성 실패:', err); + return res.status(500).json({ success: false, error: '항목 생성 실패' }); + } + res.status(201).json({ + success: true, + message: '항목이 생성되었습니다.', + data: { item_id: itemId } + }); + } + ); +}; + +/** + * 항목 수정 + */ +exports.updateItem = (req, res) => { + const { id } = req.params; + const { item_name, description, severity, display_order, is_active } = req.body; + + workIssueModel.updateItem( + id, + { item_name, description, severity, display_order, is_active }, + (err, result) => { + if (err) { + console.error('항목 수정 실패:', err); + return res.status(500).json({ success: false, error: '항목 수정 실패' }); + } + res.json({ success: true, message: '항목이 수정되었습니다.' }); + } + ); +}; + +/** + * 항목 삭제 + */ +exports.deleteItem = (req, res) => { + const { id } = req.params; + + workIssueModel.deleteItem(id, (err, result) => { + if (err) { + console.error('항목 삭제 실패:', err); + return res.status(500).json({ success: false, error: '항목 삭제 실패' }); + } + res.json({ success: true, message: '항목이 삭제되었습니다.' }); + }); +}; + +// ==================== 문제 신고 관리 ==================== + +/** + * 신고 생성 + */ +exports.createReport = async (req, res) => { + try { + const { + factory_category_id, + workplace_id, + custom_location, + tbm_session_id, + visit_request_id, + issue_category_id, + issue_item_id, + custom_item_name, // 직접 입력한 항목명 + additional_description, + photos = [] + } = req.body; + + const reporter_id = req.user.user_id; + + if (!issue_category_id) { + return res.status(400).json({ success: false, error: '신고 카테고리는 필수입니다.' }); + } + + // 위치 정보 검증 (지도 선택 또는 기타 위치) + if (!factory_category_id && !custom_location) { + return res.status(400).json({ success: false, error: '위치 정보는 필수입니다.' }); + } + + // 항목 검증 (기존 항목 또는 직접 입력) + if (!issue_item_id && !custom_item_name) { + return res.status(400).json({ success: false, error: '신고 항목은 필수입니다.' }); + } + + // 직접 입력한 항목이 있으면 DB에 저장 + let finalItemId = issue_item_id; + if (custom_item_name && !issue_item_id) { + try { + finalItemId = await new Promise((resolve, reject) => { + workIssueModel.createItem( + { + category_id: issue_category_id, + item_name: custom_item_name, + description: '사용자 직접 입력', + severity: 'medium', + display_order: 999 // 마지막에 표시 + }, + (err, itemId) => { + if (err) reject(err); + else resolve(itemId); + } + ); + }); + } catch (itemErr) { + console.error('커스텀 항목 생성 실패:', itemErr); + return res.status(500).json({ success: false, error: '항목 저장 실패' }); + } + } + + // 사진 저장 (최대 5장) + const photoPaths = { + photo_path1: null, + photo_path2: null, + photo_path3: null, + photo_path4: null, + photo_path5: null + }; + + for (let i = 0; i < Math.min(photos.length, 5); i++) { + if (photos[i]) { + const savedPath = await imageUploadService.saveBase64Image(photos[i], 'issue'); + if (savedPath) { + photoPaths[`photo_path${i + 1}`] = savedPath; + } + } + } + + const reportData = { + reporter_id, + factory_category_id: factory_category_id || null, + workplace_id: workplace_id || null, + custom_location: custom_location || null, + tbm_session_id: tbm_session_id || null, + visit_request_id: visit_request_id || null, + issue_category_id, + issue_item_id: finalItemId || null, + additional_description: additional_description || null, + ...photoPaths + }; + + workIssueModel.createReport(reportData, (err, reportId) => { + if (err) { + console.error('신고 생성 실패:', err); + return res.status(500).json({ success: false, error: '신고 생성 실패' }); + } + res.status(201).json({ + success: true, + message: '문제 신고가 등록되었습니다.', + data: { report_id: reportId } + }); + }); + } catch (error) { + console.error('신고 생성 에러:', error); + res.status(500).json({ success: false, error: '서버 오류가 발생했습니다.' }); + } +}; + +/** + * 신고 목록 조회 + */ +exports.getAllReports = (req, res) => { + const filters = { + status: req.query.status, + category_type: req.query.category_type, + issue_category_id: req.query.issue_category_id, + factory_category_id: req.query.factory_category_id, + workplace_id: req.query.workplace_id, + assigned_user_id: req.query.assigned_user_id, + start_date: req.query.start_date, + end_date: req.query.end_date, + search: req.query.search, + limit: req.query.limit, + offset: req.query.offset + }; + + // 일반 사용자는 자신의 신고만 조회 (관리자 제외) + const userLevel = req.user.access_level; + if (!['admin', 'system', 'support_team'].includes(userLevel)) { + filters.reporter_id = req.user.user_id; + } + + workIssueModel.getAllReports(filters, (err, reports) => { + if (err) { + console.error('신고 목록 조회 실패:', err); + return res.status(500).json({ success: false, error: '신고 목록 조회 실패' }); + } + res.json({ success: true, data: reports }); + }); +}; + +/** + * 신고 상세 조회 + */ +exports.getReportById = (req, res) => { + const { id } = req.params; + + workIssueModel.getReportById(id, (err, report) => { + if (err) { + console.error('신고 상세 조회 실패:', err); + return res.status(500).json({ success: false, error: '신고 상세 조회 실패' }); + } + + if (!report) { + return res.status(404).json({ success: false, error: '신고를 찾을 수 없습니다.' }); + } + + // 권한 확인: 본인, 담당자, 또는 관리자 + const userLevel = req.user.access_level; + const isOwner = report.reporter_id === req.user.user_id; + const isAssignee = report.assigned_user_id === req.user.user_id; + const isManager = ['admin', 'system', 'support_team'].includes(userLevel); + + if (!isOwner && !isAssignee && !isManager) { + return res.status(403).json({ success: false, error: '권한이 없습니다.' }); + } + + res.json({ success: true, data: report }); + }); +}; + +/** + * 신고 수정 + */ +exports.updateReport = async (req, res) => { + try { + const { id } = req.params; + + // 기존 신고 확인 + workIssueModel.getReportById(id, async (err, report) => { + if (err) { + console.error('신고 조회 실패:', err); + return res.status(500).json({ success: false, error: '신고 조회 실패' }); + } + + if (!report) { + return res.status(404).json({ success: false, error: '신고를 찾을 수 없습니다.' }); + } + + // 권한 확인 + const userLevel = req.user.access_level; + const isOwner = report.reporter_id === req.user.user_id; + const isManager = ['admin', 'system'].includes(userLevel); + + if (!isOwner && !isManager) { + return res.status(403).json({ success: false, error: '수정 권한이 없습니다.' }); + } + + // 상태 확인: reported 상태에서만 수정 가능 (관리자 제외) + if (!isManager && report.status !== 'reported') { + return res.status(400).json({ success: false, error: '이미 접수된 신고는 수정할 수 없습니다.' }); + } + + const { + factory_category_id, + workplace_id, + custom_location, + issue_category_id, + issue_item_id, + additional_description, + photos = [] + } = req.body; + + // 사진 업데이트 처리 + const photoPaths = {}; + for (let i = 0; i < Math.min(photos.length, 5); i++) { + if (photos[i]) { + // 기존 사진 삭제 + const oldPath = report[`photo_path${i + 1}`]; + if (oldPath) { + await imageUploadService.deleteFile(oldPath); + } + // 새 사진 저장 + const savedPath = await imageUploadService.saveBase64Image(photos[i], 'issue'); + if (savedPath) { + photoPaths[`photo_path${i + 1}`] = savedPath; + } + } + } + + const updateData = { + factory_category_id, + workplace_id, + custom_location, + issue_category_id, + issue_item_id, + additional_description, + ...photoPaths + }; + + workIssueModel.updateReport(id, updateData, req.user.user_id, (updateErr, result) => { + if (updateErr) { + console.error('신고 수정 실패:', updateErr); + return res.status(500).json({ success: false, error: '신고 수정 실패' }); + } + res.json({ success: true, message: '신고가 수정되었습니다.' }); + }); + }); + } catch (error) { + console.error('신고 수정 에러:', error); + res.status(500).json({ success: false, error: '서버 오류가 발생했습니다.' }); + } +}; + +/** + * 신고 삭제 + */ +exports.deleteReport = async (req, res) => { + const { id } = req.params; + + workIssueModel.getReportById(id, async (err, report) => { + if (err) { + console.error('신고 조회 실패:', err); + return res.status(500).json({ success: false, error: '신고 조회 실패' }); + } + + if (!report) { + return res.status(404).json({ success: false, error: '신고를 찾을 수 없습니다.' }); + } + + // 권한 확인 + const userLevel = req.user.access_level; + const isOwner = report.reporter_id === req.user.user_id; + const isManager = ['admin', 'system'].includes(userLevel); + + if (!isOwner && !isManager) { + return res.status(403).json({ success: false, error: '삭제 권한이 없습니다.' }); + } + + workIssueModel.deleteReport(id, async (deleteErr, { result, photos }) => { + if (deleteErr) { + console.error('신고 삭제 실패:', deleteErr); + return res.status(500).json({ success: false, error: '신고 삭제 실패' }); + } + + // 사진 파일 삭제 + if (photos) { + const allPhotos = [ + photos.photo_path1, photos.photo_path2, photos.photo_path3, + photos.photo_path4, photos.photo_path5, + photos.resolution_photo_path1, photos.resolution_photo_path2 + ].filter(Boolean); + await imageUploadService.deleteMultipleFiles(allPhotos); + } + + res.json({ success: true, message: '신고가 삭제되었습니다.' }); + }); + }); +}; + +// ==================== 상태 관리 ==================== + +/** + * 신고 접수 + */ +exports.receiveReport = (req, res) => { + const { id } = req.params; + + workIssueModel.receiveReport(id, req.user.user_id, (err, result) => { + if (err) { + console.error('신고 접수 실패:', err); + return res.status(400).json({ success: false, error: err.message || '신고 접수 실패' }); + } + res.json({ success: true, message: '신고가 접수되었습니다.' }); + }); +}; + +/** + * 담당자 배정 + */ +exports.assignReport = (req, res) => { + const { id } = req.params; + const { assigned_department, assigned_user_id } = req.body; + + if (!assigned_user_id) { + return res.status(400).json({ success: false, error: '담당자는 필수입니다.' }); + } + + workIssueModel.assignReport(id, { + assigned_department, + assigned_user_id, + assigned_by: req.user.user_id + }, (err, result) => { + if (err) { + console.error('담당자 배정 실패:', err); + return res.status(400).json({ success: false, error: err.message || '담당자 배정 실패' }); + } + res.json({ success: true, message: '담당자가 배정되었습니다.' }); + }); +}; + +/** + * 처리 시작 + */ +exports.startProcessing = (req, res) => { + const { id } = req.params; + + workIssueModel.startProcessing(id, req.user.user_id, (err, result) => { + if (err) { + console.error('처리 시작 실패:', err); + return res.status(400).json({ success: false, error: err.message || '처리 시작 실패' }); + } + res.json({ success: true, message: '처리가 시작되었습니다.' }); + }); +}; + +/** + * 처리 완료 + */ +exports.completeReport = async (req, res) => { + try { + const { id } = req.params; + const { resolution_notes, resolution_photos = [] } = req.body; + + // 완료 사진 저장 + let resolution_photo_path1 = null; + let resolution_photo_path2 = null; + + if (resolution_photos[0]) { + resolution_photo_path1 = await imageUploadService.saveBase64Image(resolution_photos[0], 'resolution'); + } + if (resolution_photos[1]) { + resolution_photo_path2 = await imageUploadService.saveBase64Image(resolution_photos[1], 'resolution'); + } + + workIssueModel.completeReport(id, { + resolution_notes, + resolution_photo_path1, + resolution_photo_path2, + resolved_by: req.user.user_id + }, (err, result) => { + if (err) { + console.error('처리 완료 실패:', err); + return res.status(400).json({ success: false, error: err.message || '처리 완료 실패' }); + } + res.json({ success: true, message: '처리가 완료되었습니다.' }); + }); + } catch (error) { + console.error('처리 완료 에러:', error); + res.status(500).json({ success: false, error: '서버 오류가 발생했습니다.' }); + } +}; + +/** + * 신고 종료 + */ +exports.closeReport = (req, res) => { + const { id } = req.params; + + workIssueModel.closeReport(id, req.user.user_id, (err, result) => { + if (err) { + console.error('신고 종료 실패:', err); + return res.status(400).json({ success: false, error: err.message || '신고 종료 실패' }); + } + res.json({ success: true, message: '신고가 종료되었습니다.' }); + }); +}; + +/** + * 상태 변경 이력 조회 + */ +exports.getStatusLogs = (req, res) => { + const { id } = req.params; + + workIssueModel.getStatusLogs(id, (err, logs) => { + if (err) { + console.error('상태 이력 조회 실패:', err); + return res.status(500).json({ success: false, error: '상태 이력 조회 실패' }); + } + res.json({ success: true, data: logs }); + }); +}; + +// ==================== 통계 ==================== + +/** + * 통계 요약 + */ +exports.getStatsSummary = (req, res) => { + const filters = { + start_date: req.query.start_date, + end_date: req.query.end_date, + factory_category_id: req.query.factory_category_id + }; + + workIssueModel.getStatsSummary(filters, (err, stats) => { + if (err) { + console.error('통계 조회 실패:', err); + return res.status(500).json({ success: false, error: '통계 조회 실패' }); + } + res.json({ success: true, data: stats }); + }); +}; + +/** + * 카테고리별 통계 + */ +exports.getStatsByCategory = (req, res) => { + const filters = { + start_date: req.query.start_date, + end_date: req.query.end_date + }; + + workIssueModel.getStatsByCategory(filters, (err, stats) => { + if (err) { + console.error('카테고리별 통계 조회 실패:', err); + return res.status(500).json({ success: false, error: '통계 조회 실패' }); + } + res.json({ success: true, data: stats }); + }); +}; + +/** + * 작업장별 통계 + */ +exports.getStatsByWorkplace = (req, res) => { + const filters = { + start_date: req.query.start_date, + end_date: req.query.end_date, + factory_category_id: req.query.factory_category_id + }; + + workIssueModel.getStatsByWorkplace(filters, (err, stats) => { + if (err) { + console.error('작업장별 통계 조회 실패:', err); + return res.status(500).json({ success: false, error: '통계 조회 실패' }); + } + res.json({ success: true, data: stats }); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/workReportAnalysisController.js b/deploy/tkfb-package/api.hyungi.net/controllers/workReportAnalysisController.js new file mode 100644 index 0000000..2e376ac --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/workReportAnalysisController.js @@ -0,0 +1,429 @@ +/** + * 데일리 워크 레포트 분석 컨트롤러 + * + * 작업 보고서 종합 분석 API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const { getDb } = require('../dbPool'); +const { ValidationError, DatabaseError } = require('../utils/errors'); +const { asyncHandler } = require('../middlewares/errorHandler'); +const logger = require('../utils/logger'); + +/** + * 분석용 필터 데이터 조회 (프로젝트, 작업자, 작업유형 목록) + */ +const getAnalysisFilters = asyncHandler(async (req, res) => { + logger.info('분석 필터 데이터 조회 요청'); + + const db = await getDb(); + + try { + // 프로젝트 목록 + const [projects] = await db.query(` + SELECT DISTINCT p.project_id, p.project_name + FROM projects p + INNER JOIN daily_work_reports dwr ON p.project_id = dwr.project_id + ORDER BY p.project_name + `); + + // 작업자 목록 + const [workers] = await db.query(` + SELECT DISTINCT w.worker_id, w.worker_name + FROM workers w + INNER JOIN daily_work_reports dwr ON w.worker_id = dwr.worker_id + ORDER BY w.worker_name + `); + + // 작업 유형 목록 + const [workTypes] = await db.query(` + SELECT DISTINCT wt.id as work_type_id, wt.name as work_type_name + FROM work_types wt + INNER JOIN daily_work_reports dwr ON wt.id = dwr.work_type_id + ORDER BY wt.name + `); + + // 날짜 범위 + const [dateRange] = await db.query(` + SELECT + MIN(report_date) as min_date, + MAX(report_date) as max_date + FROM daily_work_reports + `); + + logger.info('분석 필터 데이터 조회 성공', { + projects: projects.length, + workers: workers.length, + workTypes: workTypes.length + }); + + res.json({ + success: true, + data: { + projects, + workers, + workTypes, + dateRange: dateRange[0] + }, + message: '분석 필터 데이터 조회 성공' + }); + } catch (error) { + logger.error('분석 필터 데이터 조회 실패', { error: error.message }); + throw new DatabaseError('필터 데이터 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 기간별 작업 분석 데이터 조회 + */ +const getAnalyticsByPeriod = asyncHandler(async (req, res) => { + const { start_date, end_date, project_id, worker_id } = req.query; + + if (!start_date || !end_date) { + throw new ValidationError('start_date와 end_date가 필요합니다', { + required: ['start_date', 'end_date'], + received: { start_date, end_date }, + example: 'start_date=2025-08-01&end_date=2025-08-31' + }); + } + + logger.info('기간별 분석 데이터 조회 요청', { + start_date, + end_date, + project_id, + worker_id + }); + + const db = await getDb(); + + try { + // 기본 조건 + let whereConditions = ['dwr.report_date BETWEEN ? AND ?']; + let queryParams = [start_date, end_date]; + + if (project_id) { + whereConditions.push('dwr.project_id = ?'); + queryParams.push(project_id); + } + + if (worker_id) { + whereConditions.push('dwr.worker_id = ?'); + queryParams.push(worker_id); + } + + const whereClause = whereConditions.join(' AND '); + + // 1. 전체 요약 통계 + const overallSql = ` + SELECT + COUNT(*) as total_entries, + SUM(dwr.work_hours) as total_hours, + COUNT(DISTINCT dwr.worker_id) as unique_workers, + COUNT(DISTINCT dwr.project_id) as unique_projects, + COUNT(DISTINCT dwr.report_date) as working_days, + AVG(dwr.work_hours) as avg_hours_per_entry, + COUNT(DISTINCT dwr.created_by) as contributors, + COUNT(CASE WHEN dwr.error_type_id IS NOT NULL THEN 1 END) as error_entries, + ROUND((COUNT(CASE WHEN dwr.error_type_id IS NOT NULL THEN 1 END) / COUNT(*)) * 100, 2) as error_rate + FROM daily_work_reports dwr + WHERE ${whereClause} + `; + + const [overallStats] = await db.query(overallSql, queryParams); + + // 2. 일별 통계 + const dailyStatsSql = ` + SELECT + dwr.report_date, + SUM(dwr.work_hours) as daily_hours, + COUNT(*) as daily_entries, + COUNT(DISTINCT dwr.worker_id) as daily_workers + FROM daily_work_reports dwr + WHERE ${whereClause} + GROUP BY dwr.report_date + ORDER BY dwr.report_date ASC + `; + + const [dailyStats] = await db.query(dailyStatsSql, queryParams); + + // 3. 일별 에러 통계 + const dailyErrorStatsSql = ` + SELECT + dwr.report_date, + COUNT(CASE WHEN dwr.error_type_id IS NOT NULL THEN 1 END) as daily_errors, + COUNT(*) as daily_total, + ROUND((COUNT(CASE WHEN dwr.error_type_id IS NOT NULL THEN 1 END) / COUNT(*)) * 100, 2) as daily_error_rate + FROM daily_work_reports dwr + WHERE ${whereClause} + GROUP BY dwr.report_date + ORDER BY dwr.report_date ASC + `; + + const [dailyErrorStats] = await db.query(dailyErrorStatsSql, queryParams); + + // 4. 에러 유형별 분석 + const errorAnalysisSql = ` + SELECT + et.id as error_type_id, + et.name as error_type_name, + COUNT(*) as error_count, + SUM(dwr.work_hours) as error_hours, + ROUND((COUNT(*) / (SELECT COUNT(*) FROM daily_work_reports WHERE error_type_id IS NOT NULL)) * 100, 2) as error_percentage + FROM daily_work_reports dwr + LEFT JOIN error_types et ON dwr.error_type_id = et.id + WHERE ${whereClause} AND dwr.error_type_id IS NOT NULL + GROUP BY et.id, et.name + ORDER BY error_count DESC + `; + + const [errorAnalysis] = await db.query(errorAnalysisSql, queryParams); + + // 5. 작업 유형별 분석 + const workTypeAnalysisSql = ` + SELECT + wt.id as work_type_id, + wt.name as work_type_name, + COUNT(*) as work_count, + SUM(dwr.work_hours) as total_hours, + AVG(dwr.work_hours) as avg_hours, + COUNT(CASE WHEN dwr.error_type_id IS NOT NULL THEN 1 END) as error_count, + ROUND((COUNT(CASE WHEN dwr.error_type_id IS NOT NULL THEN 1 END) / COUNT(*)) * 100, 2) as error_rate + FROM daily_work_reports dwr + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + WHERE ${whereClause} + GROUP BY wt.id, wt.name + ORDER BY total_hours DESC + `; + + const [workTypeAnalysis] = await db.query(workTypeAnalysisSql, queryParams); + + // 6. 작업자별 성과 분석 + const workerAnalysisSql = ` + SELECT + w.worker_id, + w.worker_name, + COUNT(*) as total_entries, + SUM(dwr.work_hours) as total_hours, + AVG(dwr.work_hours) as avg_hours_per_entry, + COUNT(DISTINCT dwr.project_id) as projects_worked, + COUNT(DISTINCT dwr.report_date) as working_days, + COUNT(CASE WHEN dwr.error_type_id IS NOT NULL THEN 1 END) as error_count, + ROUND((COUNT(CASE WHEN dwr.error_type_id IS NOT NULL THEN 1 END) / COUNT(*)) * 100, 2) as error_rate + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE ${whereClause} + GROUP BY w.worker_id, w.worker_name + ORDER BY total_hours DESC + `; + + const [workerAnalysis] = await db.query(workerAnalysisSql, queryParams); + + // 7. 프로젝트별 분석 + const projectAnalysisSql = ` + SELECT + p.project_id, + p.project_name, + COUNT(*) as total_entries, + SUM(dwr.work_hours) as total_hours, + COUNT(DISTINCT dwr.worker_id) as workers_count, + COUNT(DISTINCT dwr.report_date) as working_days, + AVG(dwr.work_hours) as avg_hours_per_entry, + COUNT(CASE WHEN dwr.error_type_id IS NOT NULL THEN 1 END) as error_count, + ROUND((COUNT(CASE WHEN dwr.error_type_id IS NOT NULL THEN 1 END) / COUNT(*)) * 100, 2) as error_rate + FROM daily_work_reports dwr + LEFT JOIN projects p ON dwr.project_id = p.project_id + WHERE ${whereClause} + GROUP BY p.project_id, p.project_name + ORDER BY total_hours DESC + `; + + const [projectAnalysis] = await db.query(projectAnalysisSql, queryParams); + + logger.info('기간별 분석 데이터 조회 성공', { + start_date, + end_date, + total_entries: overallStats[0].total_entries, + total_hours: overallStats[0].total_hours + }); + + res.json({ + success: true, + data: { + summary: overallStats[0], + dailyStats, + dailyErrorStats, + errorAnalysis, + workTypeAnalysis, + workerAnalysis, + projectAnalysis, + period: { start_date, end_date }, + filters: { project_id, worker_id } + }, + message: '기간별 분석 데이터 조회 성공' + }); + } catch (error) { + logger.error('기간별 분석 데이터 조회 실패', { + start_date, + end_date, + error: error.message + }); + throw new DatabaseError('기간별 분석 데이터 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 프로젝트별 상세 분석 + */ +const getProjectAnalysis = asyncHandler(async (req, res) => { + const { start_date, end_date, project_id } = req.query; + + if (!start_date || !end_date) { + throw new ValidationError('start_date와 end_date가 필요합니다', { + required: ['start_date', 'end_date'], + received: { start_date, end_date } + }); + } + + logger.info('프로젝트별 분석 조회 요청', { + start_date, + end_date, + project_id + }); + + const db = await getDb(); + + try { + let whereConditions = ['dwr.report_date BETWEEN ? AND ?']; + let queryParams = [start_date, end_date]; + + if (project_id) { + whereConditions.push('dwr.project_id = ?'); + queryParams.push(project_id); + } + + const whereClause = whereConditions.join(' AND '); + + const projectStatsSql = ` + SELECT + dwr.project_id, + p.project_name, + SUM(dwr.work_hours) as total_hours, + COUNT(*) as total_entries, + COUNT(DISTINCT dwr.worker_id) as workers_count, + COUNT(DISTINCT dwr.report_date) as working_days, + AVG(dwr.work_hours) as avg_hours_per_entry + FROM daily_work_reports dwr + LEFT JOIN projects p ON dwr.project_id = p.project_id + WHERE ${whereClause} + GROUP BY dwr.project_id + ORDER BY total_hours DESC + `; + + const [projectStats] = await db.query(projectStatsSql, queryParams); + + logger.info('프로젝트별 분석 조회 성공', { + start_date, + end_date, + projectCount: projectStats.length + }); + + res.json({ + success: true, + data: { + projectStats, + period: { start_date, end_date } + }, + message: '프로젝트별 분석 조회 성공' + }); + } catch (error) { + logger.error('프로젝트별 분석 조회 실패', { + start_date, + end_date, + error: error.message + }); + throw new DatabaseError('프로젝트별 분석 데이터 조회 중 오류가 발생했습니다'); + } +}); + +/** + * 작업자별 상세 분석 + */ +const getWorkerAnalysis = asyncHandler(async (req, res) => { + const { start_date, end_date, worker_id } = req.query; + + if (!start_date || !end_date) { + throw new ValidationError('start_date와 end_date가 필요합니다', { + required: ['start_date', 'end_date'], + received: { start_date, end_date } + }); + } + + logger.info('작업자별 분석 조회 요청', { + start_date, + end_date, + worker_id + }); + + const db = await getDb(); + + try { + let whereConditions = ['dwr.report_date BETWEEN ? AND ?']; + let queryParams = [start_date, end_date]; + + if (worker_id) { + whereConditions.push('dwr.worker_id = ?'); + queryParams.push(worker_id); + } + + const whereClause = whereConditions.join(' AND '); + + const workerStatsSql = ` + SELECT + dwr.worker_id, + w.worker_name, + SUM(dwr.work_hours) as total_hours, + COUNT(*) as total_entries, + COUNT(DISTINCT dwr.project_id) as projects_worked, + COUNT(DISTINCT dwr.report_date) as working_days, + AVG(dwr.work_hours) as avg_hours_per_entry + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE ${whereClause} + GROUP BY dwr.worker_id + ORDER BY total_hours DESC + `; + + const [workerStats] = await db.query(workerStatsSql, queryParams); + + logger.info('작업자별 분석 조회 성공', { + start_date, + end_date, + workerCount: workerStats.length + }); + + res.json({ + success: true, + data: { + workerStats, + period: { start_date, end_date } + }, + message: '작업자별 분석 조회 성공' + }); + } catch (error) { + logger.error('작업자별 분석 조회 실패', { + start_date, + end_date, + error: error.message + }); + throw new DatabaseError('작업자별 분석 데이터 조회 중 오류가 발생했습니다'); + } +}); + +module.exports = { + getAnalysisFilters, + getAnalyticsByPeriod, + getProjectAnalysis, + getWorkerAnalysis +}; diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/workReportController.js b/deploy/tkfb-package/api.hyungi.net/controllers/workReportController.js new file mode 100644 index 0000000..2b3d555 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/workReportController.js @@ -0,0 +1,175 @@ +/** + * 작업 보고서 관리 컨트롤러 + * + * 작업 보고서 CRUD API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const workReportService = require('../services/workReportService'); +const { asyncHandler } = require('../middlewares/errorHandler'); + +/** + * 작업 보고서 생성 (단일 또는 다중) + */ +exports.createWorkReport = asyncHandler(async (req, res) => { + const result = await workReportService.createWorkReportService(req.body); + + res.json({ + success: true, + data: result, + message: '작업 보고서가 성공적으로 생성되었습니다' + }); +}); + +/** + * 날짜별 작업 보고서 조회 + */ +exports.getWorkReportsByDate = asyncHandler(async (req, res) => { + const { date } = req.params; + const rows = await workReportService.getWorkReportsByDateService(date); + + res.json({ + success: true, + data: rows, + message: '작업 보고서 조회 성공' + }); +}); + +/** + * 기간별 작업 보고서 조회 + */ +exports.getWorkReportsInRange = asyncHandler(async (req, res) => { + const { start, end } = req.query; + const rows = await workReportService.getWorkReportsInRangeService(start, end); + + res.json({ + success: true, + data: rows, + message: '작업 보고서 조회 성공' + }); +}); + +/** + * 단일 작업 보고서 조회 + */ +exports.getWorkReportById = asyncHandler(async (req, res) => { + const { id } = req.params; + const row = await workReportService.getWorkReportByIdService(id); + + res.json({ + success: true, + data: row, + message: '작업 보고서 조회 성공' + }); +}); + +/** + * 작업 보고서 수정 + */ +exports.updateWorkReport = asyncHandler(async (req, res) => { + const { id } = req.params; + const result = await workReportService.updateWorkReportService(id, req.body); + + res.json({ + success: true, + data: result, + message: '작업 보고서가 성공적으로 수정되었습니다' + }); +}); + +/** + * 작업 보고서 삭제 + */ +exports.removeWorkReport = asyncHandler(async (req, res) => { + const { id } = req.params; + const result = await workReportService.removeWorkReportService(id); + + res.json({ + success: true, + data: result, + message: '작업 보고서가 성공적으로 삭제되었습니다' + }); +}); + +/** + * 월간 요약 조회 + */ +exports.getSummary = asyncHandler(async (req, res) => { + const { year, month } = req.query; + const rows = await workReportService.getSummaryService(year, month); + + res.json({ + success: true, + data: rows, + message: '월간 요약 조회 성공' + }); +}); + +// ========== 부적합 원인 관리 API ========== + +/** + * 작업 보고서의 부적합 원인 목록 조회 + */ +exports.getReportDefects = asyncHandler(async (req, res) => { + const { reportId } = req.params; + const rows = await workReportService.getReportDefectsService(reportId); + + res.json({ + success: true, + data: rows, + message: '부적합 원인 조회 성공' + }); +}); + +/** + * 부적합 원인 저장 (전체 교체) + * 기존 부적합 원인을 모두 삭제하고 새로 저장 + */ +exports.saveReportDefects = asyncHandler(async (req, res) => { + const { reportId } = req.params; + const { defects } = req.body; // [{ error_type_id, defect_hours, note }] + + const result = await workReportService.saveReportDefectsService(reportId, defects); + + res.json({ + success: true, + data: result, + message: '부적합 원인이 저장되었습니다' + }); +}); + +/** + * 부적합 원인 추가 (단일) + */ +exports.addReportDefect = asyncHandler(async (req, res) => { + const { reportId } = req.params; + const { error_type_id, defect_hours, note } = req.body; + + const result = await workReportService.addReportDefectService(reportId, { + error_type_id, + defect_hours, + note + }); + + res.json({ + success: true, + data: result, + message: '부적합 원인이 추가되었습니다' + }); +}); + +/** + * 부적합 원인 삭제 + */ +exports.removeReportDefect = asyncHandler(async (req, res) => { + const { defectId } = req.params; + const result = await workReportService.removeReportDefectService(defectId); + + res.json({ + success: true, + data: result, + message: '부적합 원인이 삭제되었습니다' + }); +}); diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/workerController.js b/deploy/tkfb-package/api.hyungi.net/controllers/workerController.js new file mode 100644 index 0000000..27ed407 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/workerController.js @@ -0,0 +1,278 @@ +/** + * 작업자 관리 컨트롤러 + * + * 작업자 CRUD API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const workerModel = require('../models/workerModel'); +const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); +const { asyncHandler } = require('../middlewares/errorHandler'); +const logger = require('../utils/logger'); +const cache = require('../utils/cache'); +const { optimizedQueries } = require('../utils/queryOptimizer'); +const { hangulToRoman, generateUniqueUsername } = require('../utils/hangulToRoman'); +const bcrypt = require('bcrypt'); +const { getDb } = require('../dbPool'); + +/** + * 작업자 생성 + */ +exports.createWorker = asyncHandler(async (req, res) => { + const workerData = req.body; + const createAccount = req.body.create_account; + + logger.info('작업자 생성 요청', { name: workerData.worker_name, create_account: createAccount }); + + const lastID = await workerModel.create(workerData); + + // 계정 생성 요청이 있으면 users 테이블에 계정 생성 + if (createAccount && workerData.worker_name) { + try { + const db = await getDb(); + const username = await generateUniqueUsername(workerData.worker_name, db); + const hashedPassword = await bcrypt.hash('1234', 10); + + // User 역할 조회 + const [userRole] = await db.query('SELECT id FROM roles WHERE name = ?', ['User']); + + if (userRole && userRole.length > 0) { + await db.query( + `INSERT INTO users (username, password, name, worker_id, role_id, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, NOW(), NOW())`, + [username, hashedPassword, workerData.worker_name, lastID, userRole[0].id] + ); + + logger.info('작업자 계정 자동 생성 성공', { worker_id: lastID, username }); + } + } catch (accountError) { + logger.error('계정 생성 실패 (작업자는 생성됨)', { worker_id: lastID, error: accountError.message }); + } + } + + // 작업자 관련 캐시 무효화 + await cache.invalidateCache.worker(); + + logger.info('작업자 생성 성공', { worker_id: lastID }); + + res.status(201).json({ + success: true, + data: { worker_id: lastID }, + message: '작업자가 성공적으로 생성되었습니다' + }); +}); + +/** + * 전체 작업자 조회 (캐싱 및 페이지네이션 적용) + */ +exports.getAllWorkers = asyncHandler(async (req, res) => { + const { page = 1, limit = 100, search = '', status = '', department_id = null } = req.query; + + const cacheKey = cache.createKey('workers', 'list', page, limit, search, status, department_id); + + // 캐시에서 조회 + const cachedData = await cache.get(cacheKey); + if (cachedData) { + logger.debug('캐시 히트', { cacheKey }); + return res.json({ + success: true, + data: cachedData.data, + pagination: cachedData.pagination, + message: '작업자 목록 조회 성공 (캐시)' + }); + } + + // 최적화된 쿼리 사용 + const result = await optimizedQueries.getWorkersPaged(page, limit, search, status, department_id); + + // 캐시에 저장 (5분) + await cache.set(cacheKey, result, cache.TTL.MEDIUM); + logger.debug('캐시 저장', { cacheKey }); + + res.json({ + success: true, + data: result.data, + pagination: result.pagination, + message: '작업자 목록 조회 성공' + }); +}); + +/** + * 단일 작업자 조회 + */ +exports.getWorkerById = asyncHandler(async (req, res) => { + const id = parseInt(req.params.worker_id, 10); + + if (isNaN(id)) { + throw new ValidationError('유효하지 않은 작업자 ID입니다'); + } + + const row = await workerModel.getById(id); + + if (!row) { + throw new NotFoundError('작업자를 찾을 수 없습니다'); + } + + res.json({ + success: true, + data: row, + message: '작업자 조회 성공' + }); +}); + +/** + * 작업자 수정 + */ +exports.updateWorker = asyncHandler(async (req, res) => { + const id = parseInt(req.params.worker_id, 10); + + if (isNaN(id)) { + throw new ValidationError('유효하지 않은 작업자 ID입니다'); + } + + const workerData = { ...req.body, worker_id: id }; + const createAccount = req.body.create_account; + + console.log('🔧 작업자 수정 요청:', { + worker_id: id, + 받은데이터: req.body, + 처리할데이터: workerData, + create_account: createAccount + }); + + // 먼저 현재 작업자 정보 조회 (계정 여부 확인용) + const currentWorker = await workerModel.getById(id); + + if (!currentWorker) { + throw new NotFoundError('작업자를 찾을 수 없습니다'); + } + + // 작업자 정보 업데이트 + const changes = await workerModel.update(workerData); + + // 계정 생성/해제 처리 + const db = await getDb(); + const hasAccount = currentWorker.user_id !== null && currentWorker.user_id !== undefined; + let accountAction = null; + let accountUsername = null; + + console.log('🔍 계정 생성 체크:', { + createAccount, + hasAccount, + currentWorker_user_id: currentWorker.user_id, + worker_name: workerData.worker_name + }); + + if (createAccount && !hasAccount && workerData.worker_name) { + // 계정 생성 + console.log('✅ 계정 생성 로직 시작'); + try { + console.log('🔑 사용자명 생성 중...'); + const username = await generateUniqueUsername(workerData.worker_name, db); + console.log('🔑 생성된 사용자명:', username); + + const hashedPassword = await bcrypt.hash('1234', 10); + console.log('🔒 비밀번호 해싱 완료'); + + // User 역할 조회 + console.log('👤 User 역할 조회 중...'); + const [userRole] = await db.query('SELECT id FROM roles WHERE name = ?', ['User']); + console.log('👤 User 역할 조회 결과:', userRole); + + if (userRole && userRole.length > 0) { + console.log('💾 계정 DB 삽입 시작...'); + await db.query( + `INSERT INTO users (username, password, name, worker_id, role_id, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, NOW(), NOW())`, + [username, hashedPassword, workerData.worker_name, id, userRole[0].id] + ); + console.log('✅ 계정 DB 삽입 완료'); + + accountAction = 'created'; + accountUsername = username; + logger.info('작업자 계정 생성 성공', { worker_id: id, username }); + } else { + console.log('❌ User 역할을 찾을 수 없음'); + } + } catch (accountError) { + console.error('❌ 계정 생성 오류:', accountError); + logger.error('계정 생성 실패', { worker_id: id, error: accountError.message }); + accountAction = 'failed'; + } + } else { + console.log('⏭️ 계정 생성 조건 불만족:', { createAccount, hasAccount, hasWorkerName: !!workerData.worker_name }); + } + + if (!createAccount && hasAccount) { + // 계정 연동 해제 (users.worker_id = NULL) + try { + await db.query('UPDATE users SET worker_id = NULL WHERE worker_id = ?', [id]); + accountAction = 'unlinked'; + logger.info('작업자 계정 연동 해제 성공', { worker_id: id }); + } catch (unlinkError) { + logger.error('계정 연동 해제 실패', { worker_id: id, error: unlinkError.message }); + accountAction = 'unlink_failed'; + } + } else if (createAccount && hasAccount) { + accountAction = 'already_exists'; + } + + // 작업자 관련 캐시 무효화 + logger.info('작업자 수정 후 캐시 무효화', { worker_id: id }); + await cache.invalidateCache.worker(); + + logger.info('작업자 수정 성공', { worker_id: id }); + + // 응답 메시지 구성 + let message = '작업자 정보가 성공적으로 수정되었습니다'; + if (accountAction === 'created') { + message += ` (계정 생성 완료: ${accountUsername}, 초기 비밀번호: 1234)`; + } else if (accountAction === 'unlinked') { + message += ' (계정 연동 해제 완료)'; + } else if (accountAction === 'already_exists') { + message += ' (이미 계정이 존재합니다)'; + } else if (accountAction === 'failed') { + message += ' (계정 생성 실패)'; + } + + res.json({ + success: true, + data: { + changes, + account_action: accountAction, + account_username: accountUsername + }, + message + }); +}); + +/** + * 작업자 삭제 + */ +exports.removeWorker = asyncHandler(async (req, res) => { + const id = parseInt(req.params.worker_id, 10); + + if (isNaN(id)) { + throw new ValidationError('유효하지 않은 작업자 ID입니다'); + } + + const changes = await workerModel.remove(id); + + if (changes === 0) { + throw new NotFoundError('작업자를 찾을 수 없습니다'); + } + + // 작업자 관련 캐시 무효화 + logger.info('작업자 삭제 후 캐시 무효화 시작', { worker_id: id }); + await cache.invalidateCache.worker(); + await cache.delPattern('workers:*'); + await cache.flush(); + logger.info('작업자 삭제 후 캐시 무효화 완료', { worker_id: id }); + + res.json({ + success: true, + message: '작업자가 성공적으로 삭제되었습니다' + }); +}); \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/controllers/workplaceController.js b/deploy/tkfb-package/api.hyungi.net/controllers/workplaceController.js new file mode 100644 index 0000000..b384529 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/controllers/workplaceController.js @@ -0,0 +1,575 @@ +/** + * 작업장 관리 컨트롤러 + * + * 작업장 카테고리(공장) 및 작업장 CRUD API 엔드포인트 핸들러 + * + * @author TK-FB-Project + * @since 2026-01-26 + */ + +const workplaceModel = require('../models/workplaceModel'); +const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); +const { asyncHandler } = require('../middlewares/errorHandler'); +const logger = require('../utils/logger'); + +// ==================== 카테고리(공장) 관련 ==================== + +/** + * 카테고리 생성 + */ +exports.createCategory = asyncHandler(async (req, res) => { + const categoryData = req.body; + + if (!categoryData.category_name) { + throw new ValidationError('카테고리명은 필수 입력 항목입니다'); + } + + logger.info('카테고리 생성 요청', { name: categoryData.category_name }); + + const id = await new Promise((resolve, reject) => { + workplaceModel.createCategory(categoryData, (err, lastID) => { + if (err) reject(new DatabaseError('카테고리 생성 중 오류가 발생했습니다')); + else resolve(lastID); + }); + }); + + logger.info('카테고리 생성 성공', { category_id: id }); + + res.status(201).json({ + success: true, + data: { category_id: id }, + message: '카테고리가 성공적으로 생성되었습니다' + }); +}); + +/** + * 전체 카테고리 조회 + */ +exports.getAllCategories = asyncHandler(async (req, res) => { + const rows = await new Promise((resolve, reject) => { + workplaceModel.getAllCategories((err, data) => { + if (err) reject(new DatabaseError('카테고리 목록 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + res.json({ + success: true, + data: rows, + message: '카테고리 목록 조회 성공' + }); +}); + +/** + * 활성 카테고리만 조회 + */ +exports.getActiveCategories = asyncHandler(async (req, res) => { + const rows = await new Promise((resolve, reject) => { + workplaceModel.getActiveCategories((err, data) => { + if (err) reject(new DatabaseError('활성 카테고리 목록 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + res.json({ + success: true, + data: rows, + message: '활성 카테고리 목록 조회 성공' + }); +}); + +/** + * 단일 카테고리 조회 + */ +exports.getCategoryById = asyncHandler(async (req, res) => { + const categoryId = req.params.id; + + const category = await new Promise((resolve, reject) => { + workplaceModel.getCategoryById(categoryId, (err, data) => { + if (err) reject(new DatabaseError('카테고리 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + if (!category) { + throw new NotFoundError('카테고리를 찾을 수 없습니다'); + } + + res.json({ + success: true, + data: category, + message: '카테고리 조회 성공' + }); +}); + +/** + * 카테고리 수정 + */ +exports.updateCategory = asyncHandler(async (req, res) => { + const categoryId = req.params.id; + const categoryData = req.body; + + if (!categoryData.category_name) { + throw new ValidationError('카테고리명은 필수 입력 항목입니다'); + } + + logger.info('카테고리 수정 요청', { category_id: categoryId }); + + // 기존 카테고리 정보 가져오기 + const existingCategory = await new Promise((resolve, reject) => { + workplaceModel.getCategoryById(categoryId, (err, data) => { + if (err) reject(new DatabaseError('카테고리 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + if (!existingCategory) { + throw new NotFoundError('카테고리를 찾을 수 없습니다'); + } + + // layout_image가 요청에 없거나 null이면 기존 값 보존 + const updateData = { + ...categoryData, + layout_image: (categoryData.layout_image !== undefined && categoryData.layout_image !== null) + ? categoryData.layout_image + : existingCategory.layout_image + }; + + await new Promise((resolve, reject) => { + workplaceModel.updateCategory(categoryId, updateData, (err, result) => { + if (err) reject(new DatabaseError('카테고리 수정 중 오류가 발생했습니다')); + else resolve(result); + }); + }); + + logger.info('카테고리 수정 성공', { category_id: categoryId }); + + res.json({ + success: true, + message: '카테고리가 성공적으로 수정되었습니다' + }); +}); + +/** + * 카테고리 삭제 + */ +exports.deleteCategory = asyncHandler(async (req, res) => { + const categoryId = req.params.id; + + logger.info('카테고리 삭제 요청', { category_id: categoryId }); + + await new Promise((resolve, reject) => { + workplaceModel.deleteCategory(categoryId, (err, result) => { + if (err) reject(new DatabaseError('카테고리 삭제 중 오류가 발생했습니다')); + else resolve(result); + }); + }); + + logger.info('카테고리 삭제 성공', { category_id: categoryId }); + + res.json({ + success: true, + message: '카테고리가 성공적으로 삭제되었습니다' + }); +}); + +// ==================== 작업장 관련 ==================== + +/** + * 작업장 생성 + */ +exports.createWorkplace = asyncHandler(async (req, res) => { + const workplaceData = req.body; + + if (!workplaceData.workplace_name) { + throw new ValidationError('작업장명은 필수 입력 항목입니다'); + } + + logger.info('작업장 생성 요청', { name: workplaceData.workplace_name }); + + const id = await new Promise((resolve, reject) => { + workplaceModel.createWorkplace(workplaceData, (err, lastID) => { + if (err) reject(new DatabaseError('작업장 생성 중 오류가 발생했습니다')); + else resolve(lastID); + }); + }); + + logger.info('작업장 생성 성공', { workplace_id: id }); + + res.status(201).json({ + success: true, + data: { workplace_id: id }, + message: '작업장이 성공적으로 생성되었습니다' + }); +}); + +/** + * 전체 작업장 조회 + */ +exports.getAllWorkplaces = asyncHandler(async (req, res) => { + const categoryId = req.query.category_id; + + // 카테고리별 필터링 + if (categoryId) { + const rows = await new Promise((resolve, reject) => { + workplaceModel.getWorkplacesByCategory(categoryId, (err, data) => { + if (err) reject(new DatabaseError('작업장 목록 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + return res.json({ + success: true, + data: rows, + message: '작업장 목록 조회 성공' + }); + } + + // 전체 조회 + const rows = await new Promise((resolve, reject) => { + workplaceModel.getAllWorkplaces((err, data) => { + if (err) reject(new DatabaseError('작업장 목록 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + res.json({ + success: true, + data: rows, + message: '작업장 목록 조회 성공' + }); +}); + +/** + * 활성 작업장만 조회 + */ +exports.getActiveWorkplaces = asyncHandler(async (req, res) => { + const rows = await new Promise((resolve, reject) => { + workplaceModel.getActiveWorkplaces((err, data) => { + if (err) reject(new DatabaseError('활성 작업장 목록 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + res.json({ + success: true, + data: rows, + message: '활성 작업장 목록 조회 성공' + }); +}); + +/** + * 단일 작업장 조회 + */ +exports.getWorkplaceById = asyncHandler(async (req, res) => { + const workplaceId = req.params.id; + + const workplace = await new Promise((resolve, reject) => { + workplaceModel.getWorkplaceById(workplaceId, (err, data) => { + if (err) reject(new DatabaseError('작업장 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + if (!workplace) { + throw new NotFoundError('작업장을 찾을 수 없습니다'); + } + + res.json({ + success: true, + data: workplace, + message: '작업장 조회 성공' + }); +}); + +/** + * 작업장 수정 + */ +exports.updateWorkplace = asyncHandler(async (req, res) => { + const workplaceId = req.params.id; + const workplaceData = req.body; + + if (!workplaceData.workplace_name) { + throw new ValidationError('작업장명은 필수 입력 항목입니다'); + } + + logger.info('작업장 수정 요청', { workplace_id: workplaceId }); + + // 기존 작업장 정보 가져오기 + const existingWorkplace = await new Promise((resolve, reject) => { + workplaceModel.getWorkplaceById(workplaceId, (err, data) => { + if (err) reject(new DatabaseError('작업장 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + if (!existingWorkplace) { + throw new NotFoundError('작업장을 찾을 수 없습니다'); + } + + // layout_image가 요청에 없거나 null이면 기존 값 보존 + const updateData = { + ...workplaceData, + layout_image: (workplaceData.layout_image !== undefined && workplaceData.layout_image !== null) + ? workplaceData.layout_image + : existingWorkplace.layout_image + }; + + await new Promise((resolve, reject) => { + workplaceModel.updateWorkplace(workplaceId, updateData, (err, result) => { + if (err) reject(new DatabaseError('작업장 수정 중 오류가 발생했습니다')); + else resolve(result); + }); + }); + + logger.info('작업장 수정 성공', { workplace_id: workplaceId }); + + res.json({ + success: true, + message: '작업장이 성공적으로 수정되었습니다' + }); +}); + +/** + * 작업장 삭제 + */ +exports.deleteWorkplace = asyncHandler(async (req, res) => { + const workplaceId = req.params.id; + + logger.info('작업장 삭제 요청', { workplace_id: workplaceId }); + + await new Promise((resolve, reject) => { + workplaceModel.deleteWorkplace(workplaceId, (err, result) => { + if (err) reject(new DatabaseError('작업장 삭제 중 오류가 발생했습니다')); + else resolve(result); + }); + }); + + logger.info('작업장 삭제 성공', { workplace_id: workplaceId }); + + res.json({ + success: true, + message: '작업장이 성공적으로 삭제되었습니다' + }); +}); + +// ==================== 작업장 지도 영역 관련 ==================== + +/** + * 카테고리 레이아웃 이미지 업로드 + */ +exports.uploadCategoryLayoutImage = asyncHandler(async (req, res) => { + const categoryId = req.params.id; + + if (!req.file) { + throw new ValidationError('이미지 파일이 필요합니다'); + } + + const imagePath = `/uploads/${req.file.filename}`; + + logger.info('카테고리 레이아웃 이미지 업로드 요청', { category_id: categoryId, path: imagePath }); + + // 현재 카테고리 정보 가져오기 + const category = await new Promise((resolve, reject) => { + workplaceModel.getCategoryById(categoryId, (err, data) => { + if (err) reject(new DatabaseError('카테고리 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + if (!category) { + throw new NotFoundError('카테고리를 찾을 수 없습니다'); + } + + // 카테고리 정보 업데이트 (이미지 경로만 변경) + const updatedData = { + category_name: category.category_name, + description: category.description, + display_order: category.display_order, + is_active: category.is_active, + layout_image: imagePath + }; + + await new Promise((resolve, reject) => { + workplaceModel.updateCategory(categoryId, updatedData, (err, result) => { + if (err) reject(new DatabaseError('이미지 경로 저장 중 오류가 발생했습니다')); + else resolve(result); + }); + }); + + logger.info('레이아웃 이미지 업로드 성공', { category_id: categoryId }); + + res.json({ + success: true, + data: { image_path: imagePath }, + message: '레이아웃 이미지가 성공적으로 업로드되었습니다' + }); +}); + +/** + * 작업장 레이아웃 이미지 업로드 + */ +exports.uploadWorkplaceLayoutImage = asyncHandler(async (req, res) => { + const workplaceId = req.params.id; + + if (!req.file) { + throw new ValidationError('이미지 파일이 필요합니다'); + } + + const imagePath = `/uploads/${req.file.filename}`; + + logger.info('작업장 레이아웃 이미지 업로드 요청', { workplace_id: workplaceId, path: imagePath }); + + // 현재 작업장 정보 가져오기 + const workplace = await new Promise((resolve, reject) => { + workplaceModel.getWorkplaceById(workplaceId, (err, data) => { + if (err) reject(new DatabaseError('작업장 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + if (!workplace) { + throw new NotFoundError('작업장을 찾을 수 없습니다'); + } + + // 작업장 정보 업데이트 (이미지 경로만 변경) + const updatedData = { + workplace_name: workplace.workplace_name, + category_id: workplace.category_id, + description: workplace.description, + workplace_purpose: workplace.workplace_purpose, + display_priority: workplace.display_priority, + is_active: workplace.is_active, + layout_image: imagePath + }; + + await new Promise((resolve, reject) => { + workplaceModel.updateWorkplace(workplaceId, updatedData, (err, result) => { + if (err) reject(new DatabaseError('이미지 경로 저장 중 오류가 발생했습니다')); + else resolve(result); + }); + }); + + logger.info('작업장 레이아웃 이미지 업로드 성공', { workplace_id: workplaceId }); + + res.json({ + success: true, + data: { image_path: imagePath }, + message: '작업장 레이아웃 이미지가 성공적으로 업로드되었습니다' + }); +}); + +/** + * 지도 영역 생성 + */ +exports.createMapRegion = asyncHandler(async (req, res) => { + const regionData = req.body; + + if (!regionData.workplace_id || !regionData.category_id) { + throw new ValidationError('작업장 ID와 카테고리 ID는 필수 입력 항목입니다'); + } + + logger.info('지도 영역 생성 요청', { workplace_id: regionData.workplace_id }); + + const id = await new Promise((resolve, reject) => { + workplaceModel.createMapRegion(regionData, (err, lastID) => { + if (err) reject(new DatabaseError('지도 영역 생성 중 오류가 발생했습니다')); + else resolve(lastID); + }); + }); + + logger.info('지도 영역 생성 성공', { region_id: id }); + + res.status(201).json({ + success: true, + data: { region_id: id }, + message: '지도 영역이 성공적으로 생성되었습니다' + }); +}); + +/** + * 카테고리별 지도 영역 조회 (작업장 정보 포함) + */ +exports.getMapRegionsByCategory = asyncHandler(async (req, res) => { + const categoryId = req.params.categoryId; + + const rows = await new Promise((resolve, reject) => { + workplaceModel.getMapRegionsByCategory(categoryId, (err, data) => { + if (err) reject(new DatabaseError('지도 영역 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + res.json({ + success: true, + data: rows, + message: '지도 영역 조회 성공' + }); +}); + +/** + * 작업장별 지도 영역 조회 + */ +exports.getMapRegionByWorkplace = asyncHandler(async (req, res) => { + const workplaceId = req.params.workplaceId; + + const region = await new Promise((resolve, reject) => { + workplaceModel.getMapRegionByWorkplace(workplaceId, (err, data) => { + if (err) reject(new DatabaseError('지도 영역 조회 중 오류가 발생했습니다')); + else resolve(data); + }); + }); + + res.json({ + success: true, + data: region, + message: '지도 영역 조회 성공' + }); +}); + +/** + * 지도 영역 수정 + */ +exports.updateMapRegion = asyncHandler(async (req, res) => { + const regionId = req.params.id; + const regionData = req.body; + + logger.info('지도 영역 수정 요청', { region_id: regionId }); + + await new Promise((resolve, reject) => { + workplaceModel.updateMapRegion(regionId, regionData, (err, result) => { + if (err) reject(new DatabaseError('지도 영역 수정 중 오류가 발생했습니다')); + else resolve(result); + }); + }); + + logger.info('지도 영역 수정 성공', { region_id: regionId }); + + res.json({ + success: true, + message: '지도 영역이 성공적으로 수정되었습니다' + }); +}); + +/** + * 지도 영역 삭제 + */ +exports.deleteMapRegion = asyncHandler(async (req, res) => { + const regionId = req.params.id; + + logger.info('지도 영역 삭제 요청', { region_id: regionId }); + + await new Promise((resolve, reject) => { + workplaceModel.deleteMapRegion(regionId, (err, result) => { + if (err) reject(new DatabaseError('지도 영역 삭제 중 오류가 발생했습니다')); + else resolve(result); + }); + }); + + logger.info('지도 영역 삭제 성공', { region_id: regionId }); + + res.json({ + success: true, + message: '지도 영역이 성공적으로 삭제되었습니다' + }); +}); diff --git a/deploy/tkfb-package/api.hyungi.net/create-attendance-tables.js b/deploy/tkfb-package/api.hyungi.net/create-attendance-tables.js new file mode 100644 index 0000000..f9901b7 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/create-attendance-tables.js @@ -0,0 +1,193 @@ +// 근태 관리 테이블 생성 스크립트 +const mysql = require('mysql2/promise'); + +async function createAttendanceTables() { + let connection; + + try { + // 로컬 MySQL 연결 (기본 설정) + connection = await mysql.createConnection({ + host: 'localhost', + user: 'root', + password: '', // 비밀번호가 있다면 여기에 입력 + database: 'hyungi' + }); + + console.log('✅ MySQL 연결 성공'); + + // 1. 근로 유형 테이블 생성 + console.log('📋 근로 유형 테이블 생성 중...'); + await connection.execute(` + CREATE TABLE IF NOT EXISTS work_attendance_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + type_code VARCHAR(20) NOT NULL UNIQUE COMMENT '근로 유형 코드', + type_name VARCHAR(50) NOT NULL COMMENT '근로 유형명', + description TEXT COMMENT '설명', + is_active BOOLEAN DEFAULT TRUE COMMENT '활성 상태', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + ) COMMENT='근로 유형 관리 테이블' + `); + + // 2. 휴가 유형 테이블 생성 + console.log('🏖️ 휴가 유형 테이블 생성 중...'); + await connection.execute(` + CREATE TABLE IF NOT EXISTS vacation_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + type_code VARCHAR(20) NOT NULL UNIQUE COMMENT '휴가 유형 코드', + type_name VARCHAR(50) NOT NULL COMMENT '휴가 유형명', + hours_deduction DECIMAL(4,2) NOT NULL COMMENT '차감 시간', + description TEXT COMMENT '설명', + is_active BOOLEAN DEFAULT TRUE COMMENT '활성 상태', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + ) COMMENT='휴가 유형 관리 테이블' + `); + + // 3. 일일 근태 기록 테이블 생성 + console.log('📊 일일 근태 기록 테이블 생성 중...'); + await connection.execute(` + CREATE TABLE IF NOT EXISTS daily_attendance_records ( + id INT PRIMARY KEY AUTO_INCREMENT, + record_date DATE NOT NULL COMMENT '기록 날짜', + worker_id INT NOT NULL COMMENT '작업자 ID', + total_work_hours DECIMAL(4,2) DEFAULT 0 COMMENT '총 작업 시간', + attendance_type_id INT COMMENT '근로 유형 ID', + vacation_type_id INT NULL COMMENT '휴가 유형 ID', + is_vacation_processed BOOLEAN DEFAULT FALSE COMMENT '휴가 처리 여부', + overtime_approved BOOLEAN DEFAULT FALSE COMMENT '초과근무 승인 여부', + overtime_approved_by INT NULL COMMENT '초과근무 승인자 ID', + overtime_approved_at TIMESTAMP NULL COMMENT '초과근무 승인 시간', + status ENUM('incomplete', 'partial', 'complete', 'overtime', 'vacation', 'error') DEFAULT 'incomplete' COMMENT '상태', + notes TEXT COMMENT '비고', + created_by INT NOT NULL DEFAULT 1 COMMENT '생성자 ID', + updated_by INT NULL COMMENT '수정자 ID', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + UNIQUE KEY unique_worker_date (worker_id, record_date), + INDEX idx_record_date (record_date), + INDEX idx_worker_date (worker_id, record_date), + INDEX idx_status (status) + ) COMMENT='일일 근태 기록 테이블' + `); + + // 4. 작업자 휴가 잔여 관리 테이블 생성 + console.log('📅 휴가 잔여 관리 테이블 생성 중...'); + await connection.execute(` + CREATE TABLE IF NOT EXISTS worker_vacation_balance ( + id INT PRIMARY KEY AUTO_INCREMENT, + worker_id INT NOT NULL COMMENT '작업자 ID', + year YEAR NOT NULL COMMENT '연도', + total_annual_leave DECIMAL(4,2) DEFAULT 15.0 COMMENT '연간 총 연차 (일)', + used_annual_leave DECIMAL(4,2) DEFAULT 0 COMMENT '사용한 연차 (일)', + remaining_annual_leave DECIMAL(4,2) GENERATED ALWAYS AS (total_annual_leave - used_annual_leave) STORED COMMENT '잔여 연차 (일)', + notes TEXT COMMENT '비고', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + UNIQUE KEY unique_worker_year (worker_id, year), + INDEX idx_worker_year (worker_id, year) + ) COMMENT='작업자별 휴가 잔여 관리 테이블' + `); + + // 5. 기본 데이터 삽입 + console.log('📝 기본 데이터 삽입 중...'); + + // 근로 유형 기본 데이터 + await connection.execute(` + INSERT IGNORE INTO work_attendance_types (type_code, type_name, description) VALUES + ('REGULAR', '정시근로', '8시간 정규 근무'), + ('OVERTIME', '연장근로', '8시간 초과 근무'), + ('PARTIAL', '부분근로', '8시간 미만 근무'), + ('VACATION', '휴가근로', '휴가와 함께하는 부분 근무') + `); + + // 휴가 유형 기본 데이터 + await connection.execute(` + INSERT IGNORE INTO vacation_types (type_code, type_name, hours_deduction, description) VALUES + ('ANNUAL_FULL', '연차', 8.0, '하루 전체 연차'), + ('ANNUAL_HALF', '반차', 4.0, '반일 연차'), + ('ANNUAL_QUARTER', '반반차', 2.0, '1/4일 연차'), + ('SICK_FULL', '병가', 8.0, '하루 전체 병가'), + ('SICK_HALF', '반일병가', 4.0, '반일 병가'), + ('PERSONAL_FULL', '개인사유', 8.0, '개인사유로 인한 휴가'), + ('PERSONAL_HALF', '반일개인사유', 4.0, '반일 개인사유 휴가') + `); + + // 6. 휴가 전용 작업 유형 추가 + console.log('🏖️ 휴가 전용 작업 유형 추가 중...'); + await connection.execute(` + INSERT IGNORE INTO work_types (name, description, is_active) VALUES + ('휴가', '연차, 반차, 병가 등 휴가 처리용', TRUE) + `); + + // 7. daily_work_reports 테이블에 근태 기록 연결 컬럼 추가 (이미 있으면 무시) + try { + await connection.execute(` + ALTER TABLE daily_work_reports + ADD COLUMN attendance_record_id INT NULL COMMENT '근태 기록 ID' AFTER updated_by + `); + console.log('✅ daily_work_reports 테이블에 attendance_record_id 컬럼 추가됨'); + } catch (error) { + if (error.code !== 'ER_DUP_FIELDNAME') { + console.log('⚠️ attendance_record_id 컬럼 추가 실패:', error.message); + } else { + console.log('✅ attendance_record_id 컬럼이 이미 존재함'); + } + } + + // 8. 인덱스 추가 + try { + await connection.execute(`CREATE INDEX idx_attendance_record ON daily_work_reports(attendance_record_id)`); + console.log('✅ attendance_record_id 인덱스 추가됨'); + } catch (error) { + console.log('⚠️ 인덱스 추가 실패 (이미 존재할 수 있음):', error.message); + } + + console.log('🎉 근태 관리 DB 설정 완료!'); + console.log(''); + console.log('📋 생성된 테이블:'); + console.log(' - work_attendance_types (근로 유형)'); + console.log(' - vacation_types (휴가 유형)'); + console.log(' - daily_attendance_records (일일 근태 기록)'); + console.log(' - worker_vacation_balance (휴가 잔여 관리)'); + console.log(''); + console.log('✅ 기본 데이터도 모두 삽입되었습니다.'); + + } catch (error) { + console.error('❌ DB 설정 중 오류 발생:', error); + + // 다른 연결 정보로 시도 + if (error.code === 'ECONNREFUSED' || error.code === 'ER_ACCESS_DENIED_ERROR') { + console.log(''); + console.log('💡 다른 DB 연결 정보를 시도해보세요:'); + console.log(' - host: localhost 또는 127.0.0.1'); + console.log(' - port: 3306 (기본값)'); + console.log(' - user: root 또는 다른 사용자'); + console.log(' - password: 설정된 비밀번호'); + console.log(' - database: hyungi'); + } + + throw error; + } finally { + if (connection) { + await connection.end(); + } + } +} + +// 직접 실행 +if (require.main === module) { + createAttendanceTables() + .then(() => { + console.log('✅ 설정 완료'); + process.exit(0); + }) + .catch((error) => { + console.error('❌ 설정 실패:', error); + process.exit(1); + }); +} + +module.exports = { createAttendanceTables }; diff --git a/deploy/tkfb-package/api.hyungi.net/db.js b/deploy/tkfb-package/api.hyungi.net/db.js new file mode 100644 index 0000000..e099cab --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db.js @@ -0,0 +1,35 @@ +require('dotenv').config(); +const mysql = require('mysql2/promise'); +const retry = require('async-retry'); + +// 초기화된 pool을 export 하기 위한 변수 +let pool = null; + +const initPool = async () => { + if (pool) return pool; // 이미 초기화된 경우 재사용 + + await retry(async () => { + pool = mysql.createPool({ + host: process.env.DB_HOST, + port: process.env.DB_PORT || 3306, + user: process.env.DB_USER, + password: process.env.DB_PASS, + database: process.env.DB_NAME, + waitForConnections: true, + connectionLimit: 10, + queueLimit: 0 + }); + + const conn = await pool.getConnection(); + await conn.query('SET FOREIGN_KEY_CHECKS = 1'); + console.log(`✅ MariaDB 연결 성공: ${process.env.DB_HOST}:${process.env.DB_PORT || 3306}/${process.env.DB_NAME}`); + conn.release(); + }, { + retries: 10, + minTimeout: 3000 + }); + + return pool; +}; + +module.exports = initPool; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/db/connection.js b/deploy/tkfb-package/api.hyungi.net/db/connection.js new file mode 100644 index 0000000..9ad0597 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/connection.js @@ -0,0 +1,17 @@ +// db/connection.js - 레거시 콜백 방식 DB 래퍼 +const { getDb } = require('../dbPool'); + +// 콜백 방식 쿼리 래퍼 +const query = async (sql, params, callback) => { + try { + const db = await getDb(); + const [results] = await db.query(sql, params); + callback(null, results); + } catch (error) { + callback(error); + } +}; + +module.exports = { + query +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20251219003210_20251219_initial_schema.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20251219003210_20251219_initial_schema.js new file mode 100644 index 0000000..8b22422 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20251219003210_20251219_initial_schema.js @@ -0,0 +1,49 @@ +const fs = require('fs'); +const path = require('path'); + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.up = function(knex) { + const schemaSql = fs.readFileSync(path.join(__dirname, '../../hyungi_schema_v2.sql'), 'utf8'); + return knex.raw(schemaSql); +}; + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.down = function(knex) { + // down 마이그레이션은 모든 테이블을 역순으로 삭제하도록 구현합니다. + const tables = [ + 'cutting_plans', + 'daily_issue_reports', + 'daily_work_reports', + 'codes', + 'code_types', + 'factory_info', + 'equipment_list', + 'pipe_specs', + 'tasks', + 'worker_groups', + 'workers', + 'projects', + 'password_change_logs', + 'login_logs', + 'users' + ]; + + // 외래 키 제약 조건을 먼저 비활성화합니다. + return knex.raw('SET FOREIGN_KEY_CHECKS = 0;') + .then(() => { + // 각 테이블을 순회하며 drop table if exists를 실행합니다. + return tables.reduce((promise, tableName) => { + return promise.then(() => knex.schema.dropTableIfExists(tableName)); + }, Promise.resolve()); + }) + .finally(() => { + // 외래 키 제약 조건을 다시 활성화합니다. + return knex.raw('SET FOREIGN_KEY_CHECKS = 1;'); + }); +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20251219010000_add_columns_to_projects.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20251219010000_add_columns_to_projects.js new file mode 100644 index 0000000..c618cc6 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20251219010000_add_columns_to_projects.js @@ -0,0 +1,23 @@ +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.up = function(knex) { + return knex.schema.table('projects', function (table) { + table.boolean('is_active').defaultTo(true).after('pm'); + table.string('project_status').defaultTo('active').after('is_active'); + table.date('completed_date').nullable().after('project_status'); + }); +}; + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.down = function(knex) { + return knex.schema.table('projects', function (table) { + table.dropColumn('is_active'); + table.dropColumn('project_status'); + table.dropColumn('completed_date'); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260106083251_create_permissions_tables.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260106083251_create_permissions_tables.js new file mode 100644 index 0000000..a53dfac --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260106083251_create_permissions_tables.js @@ -0,0 +1,57 @@ +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.up = function(knex) { + return knex.schema + // 1. roles 테이블 생성 + .createTable('roles', function(table) { + table.increments('id').primary(); + table.string('name', 50).notNullable().unique(); + table.string('description', 255); + table.timestamps(true, true); + }) + // 2. permissions 테이블 생성 + .createTable('permissions', function(table) { + table.increments('id').primary(); + table.string('name', 100).notNullable().unique(); // 예: 'user:create' + table.string('description', 255); + table.timestamps(true, true); + }) + // 3. role_permissions (역할-권한) 조인 테이블 생성 + .createTable('role_permissions', function(table) { + table.integer('role_id').unsigned().notNullable().references('id').inTable('roles').onDelete('CASCADE'); + table.integer('permission_id').unsigned().notNullable().references('id').inTable('permissions').onDelete('CASCADE'); + table.primary(['role_id', 'permission_id']); + }) + // 4. users 테이블에 role_id 추가 및 기존 컬럼 삭제 + .table('users', function(table) { + table.integer('role_id').unsigned().references('id').inTable('roles').onDelete('SET NULL').after('email'); + // 기존 컬럼들은 삭제 또는 비활성화 (데이터 보존을 위해 일단 이름 변경) + table.renameColumn('role', '_role_old'); + table.renameColumn('access_level', '_access_level_old'); + }) + // 5. user_permissions (사용자-개별 권한) 조인 테이블 생성 + .createTable('user_permissions', function(table) { + table.integer('user_id').notNullable().references('user_id').inTable('users').onDelete('CASCADE'); + table.integer('permission_id').unsigned().notNullable().references('id').inTable('permissions').onDelete('CASCADE'); + table.primary(['user_id', 'permission_id']); + }); +}; + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.down = function(knex) { + return knex.schema + .dropTableIfExists('user_permissions') + .dropTableIfExists('role_permissions') + .dropTableIfExists('permissions') + .dropTableIfExists('roles') + .table('users', function(table) { + table.dropColumn('role_id'); + table.renameColumn('_role_old', 'role'); + table.renameColumn('_access_level_old', 'access_level'); + }); +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260106083318_populate_permissions_data.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260106083318_populate_permissions_data.js new file mode 100644 index 0000000..353c94f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260106083318_populate_permissions_data.js @@ -0,0 +1,103 @@ +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.up = async function(knex) { + // 1. Roles 생성 + await knex('roles').insert([ + { id: 1, name: 'System Admin', description: '시스템 전체 관리자. 모든 권한을 가짐.' }, + { id: 2, name: 'Admin', description: '관리자. 사용자 및 프로젝트 관리 등 대부분의 권한을 가짐.' }, + { id: 3, name: 'Leader', description: '그룹장. 팀원 작업 현황 조회 등 중간 관리자 권한.' }, + { id: 4, name: 'Worker', description: '일반 작업자. 자신의 작업 보고서 작성 및 조회 권한.' }, + ]); + + // 2. Permissions 생성 (예시) + const permissions = [ + // User + { name: 'user:create', description: '사용자 생성' }, + { name: 'user:read', description: '사용자 정보 조회' }, + { name: 'user:update', description: '사용자 정보 수정' }, + { name: 'user:delete', description: '사용자 삭제' }, + // Project + { name: 'project:create', description: '프로젝트 생성' }, + { name: 'project:read', description: '프로젝트 조회' }, + { name: 'project:update', description: '프로젝트 수정' }, + { name: 'project:delete', description: '프로젝트 삭제' }, + // Work Report + { name: 'work-report:create', description: '작업 보고서 생성' }, + { name: 'work-report:read-own', description: '자신의 작업 보고서 조회' }, + { name: 'work-report:read-team', description: '팀의 작업 보고서 조회' }, + { name: 'work-report:read-all', description: '모든 작업 보고서 조회' }, + { name: 'work-report:update', description: '작업 보고서 수정' }, + { name: 'work-report:delete', description: '작업 보고서 삭제' }, + // System + { name: 'system:read-logs', description: '시스템 로그 조회' }, + { name: 'system:manage-settings', description: '시스템 설정 관리' }, + ]; + await knex('permissions').insert(permissions); + + // 3. Role-Permissions 매핑 + const allPermissions = await knex('permissions').select('id', 'name'); + const permissionMap = allPermissions.reduce((acc, p) => { + acc[p.name] = p.id; + return acc; + }, {}); + + const rolePermissions = { + // System Admin (모든 권한) + 'System Admin': allPermissions.map(p => p.id), + // Admin + 'Admin': [ + permissionMap['user:create'], permissionMap['user:read'], permissionMap['user:update'], permissionMap['user:delete'], + permissionMap['project:create'], permissionMap['project:read'], permissionMap['project:update'], permissionMap['project:delete'], + permissionMap['work-report:read-all'], permissionMap['work-report:update'], permissionMap['work-report:delete'], + ], + // Leader + 'Leader': [ + permissionMap['user:read'], + permissionMap['project:read'], + permissionMap['work-report:read-team'], + permissionMap['work-report:read-own'], + permissionMap['work-report:create'], + ], + // Worker + 'Worker': [ + permissionMap['work-report:create'], + permissionMap['work-report:read-own'], + ], + }; + + const rolePermissionInserts = []; + for (const roleName in rolePermissions) { + const roleId = (await knex('roles').where('name', roleName).first()).id; + rolePermissions[roleName].forEach(permissionId => { + rolePermissionInserts.push({ role_id: roleId, permission_id: permissionId }); + }); + } + await knex('role_permissions').insert(rolePermissionInserts); + + // 4. 기존 사용자에게 역할 부여 (예: 기존 admin -> Admin, leader -> Leader, user -> Worker) + await knex.raw(` + UPDATE users SET role_id = + CASE + WHEN _role_old = 'system' THEN (SELECT id FROM roles WHERE name = 'System Admin') + WHEN _role_old = 'admin' THEN (SELECT id FROM roles WHERE name = 'Admin') + WHEN _role_old = 'leader' THEN (SELECT id FROM roles WHERE name = 'Leader') + ELSE (SELECT id FROM roles WHERE name = 'Worker') + END + `); +}; + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.down = async function(knex) { + await knex('role_permissions').del(); + await knex('user_permissions').del(); + await knex('roles').del(); + await knex('permissions').del(); + + // 역할 롤백 (단순화된 버전) + await knex.raw("UPDATE users SET _role_old = 'user' WHERE role_id IS NOT NULL"); +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260107140000_update_worker_schema.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260107140000_update_worker_schema.js new file mode 100644 index 0000000..1592c7d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260107140000_update_worker_schema.js @@ -0,0 +1,62 @@ + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.up = async function (knex) { + const hasHireDate = await knex.schema.hasColumn('workers', 'hire_date'); + + if (!hasHireDate) { + await knex.schema.alterTable('workers', function (table) { + // Modify status to ENUM + // Note: Knex might not support modifying to ENUM easily across DBs, but valid for MySQL + // We use raw SQL for status modification to be safe with existing data + + // Add new columns + table.string('phone_number', 20).nullable().comment('전화번호'); + table.string('email', 100).nullable().comment('이메일'); + table.date('hire_date').nullable().comment('입사일'); + table.string('department', 100).nullable().comment('부서'); + table.text('notes').nullable().comment('비고'); + }); + + // Update status column using raw query + await knex.raw(` + ALTER TABLE workers + MODIFY COLUMN status ENUM('active', 'inactive') DEFAULT 'active' COMMENT '작업자 상태 (active: 활성, inactive: 비활성)' + `); + + // Add indexes + await knex.raw(`CREATE INDEX IF NOT EXISTS idx_workers_status ON workers(status)`); + await knex.raw(`CREATE INDEX IF NOT EXISTS idx_workers_hire_date ON workers(hire_date)`); + + // Set NULL status to active + await knex('workers').whereNull('status').update({ status: 'active' }); + } +}; + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.down = async function (knex) { + // We generally don't want to lose data on rollback of this critical schema fix, + // but technically we should revert changes. + // For safety, we might skip dropping columns or implement it carefully. + + const hasHireDate = await knex.schema.hasColumn('workers', 'hire_date'); + if (hasHireDate) { + await knex.schema.alterTable('workers', function (table) { + table.dropColumn('phone_number'); + table.dropColumn('email'); + table.dropColumn('hire_date'); + table.dropColumn('department'); + table.dropColumn('notes'); + }); + + await knex.raw(` + ALTER TABLE workers + MODIFY COLUMN status VARCHAR(20) DEFAULT 'active' COMMENT '상태 (active, inactive)' + `); + } +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119000000_simplify_permissions_and_add_page_access.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119000000_simplify_permissions_and_add_page_access.js new file mode 100644 index 0000000..8c77102 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119000000_simplify_permissions_and_add_page_access.js @@ -0,0 +1,151 @@ +/** + * 권한 시스템 단순화 및 페이지 접근 권한 추가 + * - Leader와 Worker를 User로 통합 + * - 페이지 접근 권한 테이블 생성 + * - Admin이 사용자별 페이지 접근 권한을 설정할 수 있도록 함 + * + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.up = async function(knex) { + // 1. 페이지 목록 테이블 생성 + await knex.schema.createTable('pages', function(table) { + table.increments('id').primary(); + table.string('page_key', 100).notNullable().unique(); // 예: 'worker-management', 'project-management' + table.string('page_name', 100).notNullable(); // 예: '작업자 관리', '프로젝트 관리' + table.string('page_path', 255).notNullable(); // 예: '/pages/management/worker-management.html' + table.string('category', 50); // 예: 'management', 'dashboard', 'admin' + table.string('description', 255); + table.boolean('is_admin_only').defaultTo(false); // Admin 전용 페이지 여부 + table.integer('display_order').defaultTo(0); // 표시 순서 + table.timestamps(true, true); + }); + + // 2. 사용자별 페이지 접근 권한 테이블 생성 + await knex.schema.createTable('user_page_access', function(table) { + table.integer('user_id').notNullable() + .references('user_id').inTable('users').onDelete('CASCADE'); + table.integer('page_id').unsigned().notNullable() + .references('id').inTable('pages').onDelete('CASCADE'); + table.boolean('can_access').defaultTo(true); // 접근 가능 여부 + table.timestamp('granted_at').defaultTo(knex.fn.now()); + table.integer('granted_by') // 권한을 부여한 Admin의 user_id + .references('user_id').inTable('users').onDelete('SET NULL'); + table.primary(['user_id', 'page_id']); + }); + + // 3. 기본 페이지 목록 삽입 + await knex('pages').insert([ + // Dashboard + { page_key: 'dashboard-user', page_name: '사용자 대시보드', page_path: '/pages/dashboard/user.html', category: 'dashboard', is_admin_only: false, display_order: 1 }, + { page_key: 'dashboard-leader', page_name: '그룹장 대시보드', page_path: '/pages/dashboard/group-leader.html', category: 'dashboard', is_admin_only: false, display_order: 2 }, + + // Management + { page_key: 'worker-management', page_name: '작업자 관리', page_path: '/pages/management/worker-management.html', category: 'management', is_admin_only: false, display_order: 10 }, + { page_key: 'project-management', page_name: '프로젝트 관리', page_path: '/pages/management/project-management.html', category: 'management', is_admin_only: false, display_order: 11 }, + { page_key: 'work-management', page_name: '작업 관리', page_path: '/pages/management/work-management.html', category: 'management', is_admin_only: false, display_order: 12 }, + { page_key: 'code-management', page_name: '코드 관리', page_path: '/pages/management/code-management.html', category: 'management', is_admin_only: false, display_order: 13 }, + + // Common + { page_key: 'daily-work-report', page_name: '작업 현황 확인', page_path: '/pages/common/daily-work-report-viewer.html', category: 'common', is_admin_only: false, display_order: 20 }, + + // Admin + { page_key: 'user-management', page_name: '사용자 관리', page_path: '/pages/admin/manage-user.html', category: 'admin', is_admin_only: true, display_order: 100 }, + ]); + + // 4. roles 테이블 업데이트: Leader와 Worker를 User로 통합 + // Leader와 Worker 역할을 가진 사용자를 모두 User로 변경 + const userRoleId = await knex('roles').where('name', 'Worker').first().then(r => r.id); + const leaderRoleId = await knex('roles').where('name', 'Leader').first().then(r => r ? r.id : null); + + if (leaderRoleId) { + // Leader를 User로 변경 + await knex('users').where('role_id', leaderRoleId).update({ role_id: userRoleId }); + } + + // 5. role_permissions 업데이트: Worker 권한을 확장하여 모든 일반 기능 사용 가능하게 + const allPermissions = await knex('permissions').select('id', 'name'); + const permissionMap = allPermissions.reduce((acc, p) => { + acc[p.name] = p.id; + return acc; + }, {}); + + // Worker 역할의 기존 권한 삭제 + await knex('role_permissions').where('role_id', userRoleId).del(); + + // Worker(이제 User) 역할에 모든 일반 권한 부여 (Admin/System 권한 제외) + const userPermissions = [ + permissionMap['user:read'], + permissionMap['project:read'], + permissionMap['project:create'], + permissionMap['project:update'], + permissionMap['work-report:create'], + permissionMap['work-report:read-own'], + permissionMap['work-report:read-team'], + permissionMap['work-report:read-all'], + permissionMap['work-report:update'], + permissionMap['work-report:delete'], + ].filter(Boolean); // undefined 제거 + + const rolePermissionInserts = userPermissions.map(permissionId => ({ + role_id: userRoleId, + permission_id: permissionId + })); + + await knex('role_permissions').insert(rolePermissionInserts); + + // 6. Leader 역할 삭제 (더 이상 사용하지 않음) + if (leaderRoleId) { + await knex('role_permissions').where('role_id', leaderRoleId).del(); + await knex('roles').where('id', leaderRoleId).del(); + } + + // 7. Worker 역할 이름을 'User'로 변경 + await knex('roles').where('id', userRoleId).update({ + name: 'User', + description: '일반 사용자. 작업 보고서 및 프로젝트 관리 등 모든 일반 기능을 사용할 수 있음.' + }); + + // 8. 모든 일반 사용자에게 모든 페이지 접근 권한 부여 (Admin 페이지 제외) + const normalPages = await knex('pages').where('is_admin_only', false).select('id'); + const normalUsers = await knex('users').where('role_id', userRoleId).select('user_id'); + + const userPageAccessInserts = []; + normalUsers.forEach(user => { + normalPages.forEach(page => { + userPageAccessInserts.push({ + user_id: user.user_id, + page_id: page.id, + can_access: true + }); + }); + }); + + if (userPageAccessInserts.length > 0) { + await knex('user_page_access').insert(userPageAccessInserts); + } +}; + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.down = async function(knex) { + // 테이블 삭제 (역순) + await knex.schema.dropTableIfExists('user_page_access'); + await knex.schema.dropTableIfExists('pages'); + + // User 역할을 다시 Worker로 변경 + const userRoleId = await knex('roles').where('name', 'User').first().then(r => r ? r.id : null); + if (userRoleId) { + await knex('roles').where('id', userRoleId).update({ + name: 'Worker', + description: '일반 작업자. 자신의 작업 보고서 작성 및 조회 권한.' + }); + } + + // Leader 역할 재생성 + await knex('roles').insert([ + { id: 3, name: 'Leader', description: '그룹장. 팀원 작업 현황 조회 등 중간 관리자 권한.' } + ]); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119095549_add_worker_display_fields.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119095549_add_worker_display_fields.js new file mode 100644 index 0000000..4cb664d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119095549_add_worker_display_fields.js @@ -0,0 +1,27 @@ +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.up = async function(knex) { + await knex.schema.alterTable('workers', (table) => { + // 재직 상태 (employed: 재직, resigned: 퇴사) + table.enum('employment_status', ['employed', 'resigned']) + .defaultTo('employed') + .notNullable() + .comment('재직 상태 (employed: 재직, resigned: 퇴사)'); + }); + + console.log('✅ workers 테이블에 employment_status 컬럼 추가 완료'); +}; + +/** + * @param { import("knex").Knex } knex + * @returns { Promise } + */ +exports.down = async function(knex) { + await knex.schema.alterTable('workers', (table) => { + table.dropColumn('employment_status'); + }); + + console.log('✅ workers 테이블에서 employment_status 컬럼 삭제 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120000_add_worker_fields.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120000_add_worker_fields.js new file mode 100644 index 0000000..607564b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120000_add_worker_fields.js @@ -0,0 +1,33 @@ +/** + * 마이그레이션: Workers 테이블에 급여 및 기본 연차 컬럼 추가 + * 작성일: 2026-01-19 + * + * 변경사항: + * - salary 컬럼 추가 (NULL 허용, 선택 사항) + * - base_annual_leave 컬럼 추가 (기본값: 15일) + */ + +exports.up = async function(knex) { + console.log('⏳ Workers 테이블에 salary, base_annual_leave 컬럼 추가 중...'); + + await knex.schema.alterTable('workers', (table) => { + // 급여 정보 (선택 사항, NULL 허용) + table.decimal('salary', 12, 2).nullable().comment('급여 (선택)'); + + // 기본 연차 일수 (기본값: 15일) + table.integer('base_annual_leave').defaultTo(15).notNullable().comment('기본 연차 일수'); + }); + + console.log('✅ Workers 테이블 컬럼 추가 완료'); +}; + +exports.down = async function(knex) { + console.log('⏳ Workers 테이블에서 salary, base_annual_leave 컬럼 제거 중...'); + + await knex.schema.alterTable('workers', (table) => { + table.dropColumn('salary'); + table.dropColumn('base_annual_leave'); + }); + + console.log('✅ Workers 테이블 컬럼 제거 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120001_create_attendance_tables.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120001_create_attendance_tables.js new file mode 100644 index 0000000..b94cb86 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120001_create_attendance_tables.js @@ -0,0 +1,112 @@ +/** + * 마이그레이션: 출근/근태 관련 테이블 생성 + * 작성일: 2026-01-19 + * + * 생성 테이블: + * - work_attendance_types: 출근 유형 (정상, 지각, 조퇴, 결근, 휴가) + * - vacation_types: 휴가 유형 (연차, 반차, 병가, 경조사) + * - daily_attendance_records: 일일 출근 기록 + * - worker_vacation_balance: 작업자 연차 잔액 (연도별) + */ + +exports.up = async function(knex) { + console.log('⏳ 출근/근태 관련 테이블 생성 중...'); + + // 1. 출근 유형 테이블 + await knex.schema.createTable('work_attendance_types', (table) => { + table.increments('id').primary(); + table.string('type_code', 20).unique().notNullable().comment('유형 코드'); + table.string('type_name', 50).notNullable().comment('유형 이름'); + table.text('description').nullable().comment('설명'); + table.boolean('is_active').defaultTo(true).comment('활성 여부'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + }); + console.log('✅ work_attendance_types 테이블 생성 완료'); + + // 초기 데이터 입력 + await knex('work_attendance_types').insert([ + { type_code: 'NORMAL', type_name: '정상 출근', description: '정상 출근' }, + { type_code: 'LATE', type_name: '지각', description: '지각' }, + { type_code: 'EARLY_LEAVE', type_name: '조퇴', description: '조퇴' }, + { type_code: 'ABSENT', type_name: '결근', description: '무단 결근' }, + { type_code: 'VACATION', type_name: '휴가', description: '승인된 휴가' } + ]); + console.log('✅ work_attendance_types 초기 데이터 입력 완료'); + + // 2. 휴가 유형 테이블 + await knex.schema.createTable('vacation_types', (table) => { + table.increments('id').primary(); + table.string('type_code', 20).unique().notNullable().comment('휴가 코드'); + table.string('type_name', 50).notNullable().comment('휴가 이름'); + table.decimal('deduct_days', 3, 1).defaultTo(1.0).comment('차감 일수'); + table.boolean('is_active').defaultTo(true).comment('활성 여부'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + }); + console.log('✅ vacation_types 테이블 생성 완료'); + + // 초기 데이터 입력 + await knex('vacation_types').insert([ + { type_code: 'ANNUAL', type_name: '연차', deduct_days: 1.0 }, + { type_code: 'HALF_ANNUAL', type_name: '반차', deduct_days: 0.5 }, + { type_code: 'SICK', type_name: '병가', deduct_days: 1.0 }, + { type_code: 'SPECIAL', type_name: '경조사', deduct_days: 0 } + ]); + console.log('✅ vacation_types 초기 데이터 입력 완료'); + + // 3. 일일 출근 기록 테이블 + await knex.schema.createTable('daily_attendance_records', (table) => { + table.increments('id').primary(); + table.integer('worker_id').unsigned().notNullable().comment('작업자 ID'); + table.date('record_date').notNullable().comment('기록 날짜'); + table.integer('attendance_type_id').unsigned().notNullable().comment('출근 유형 ID'); + table.integer('vacation_type_id').unsigned().nullable().comment('휴가 유형 ID'); + table.time('check_in_time').nullable().comment('출근 시간'); + table.time('check_out_time').nullable().comment('퇴근 시간'); + table.decimal('total_work_hours', 4, 2).defaultTo(0).comment('총 근무 시간'); + table.boolean('is_overtime_approved').defaultTo(false).comment('초과근무 승인 여부'); + table.text('notes').nullable().comment('비고'); + table.integer('created_by').unsigned().notNullable().comment('등록자 user_id'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + // 인덱스 및 제약조건 + table.unique(['worker_id', 'record_date']); + table.foreign('worker_id').references('workers.worker_id').onDelete('CASCADE'); + table.foreign('attendance_type_id').references('work_attendance_types.id'); + table.foreign('vacation_type_id').references('vacation_types.id'); + table.foreign('created_by').references('users.user_id'); + }); + console.log('✅ daily_attendance_records 테이블 생성 완료'); + + // 4. 작업자 연차 잔액 테이블 + await knex.schema.createTable('worker_vacation_balance', (table) => { + table.increments('id').primary(); + table.integer('worker_id').unsigned().notNullable().comment('작업자 ID'); + table.integer('year').notNullable().comment('연도'); + table.decimal('total_annual_leave', 4, 1).defaultTo(15.0).comment('총 연차'); + table.decimal('used_annual_leave', 4, 1).defaultTo(0).comment('사용 연차'); + // remaining_annual_leave는 애플리케이션 레벨에서 계산 + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + // 인덱스 및 제약조건 + table.unique(['worker_id', 'year']); + table.foreign('worker_id').references('workers.worker_id').onDelete('CASCADE'); + }); + console.log('✅ worker_vacation_balance 테이블 생성 완료'); + + console.log('✅ 모든 출근/근태 관련 테이블 생성 완료'); +}; + +exports.down = async function(knex) { + console.log('⏳ 출근/근태 관련 테이블 제거 중...'); + + await knex.schema.dropTableIfExists('worker_vacation_balance'); + await knex.schema.dropTableIfExists('daily_attendance_records'); + await knex.schema.dropTableIfExists('vacation_types'); + await knex.schema.dropTableIfExists('work_attendance_types'); + + console.log('✅ 모든 출근/근태 관련 테이블 제거 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120002_create_accounts_for_existing_workers.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120002_create_accounts_for_existing_workers.js new file mode 100644 index 0000000..6a45e11 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120002_create_accounts_for_existing_workers.js @@ -0,0 +1,104 @@ +/** + * 마이그레이션: 기존 작업자에게 계정 자동 생성 + * 작성일: 2026-01-19 + * + * 작업 내용: + * 1. 계정이 없는 기존 작업자 조회 + * 2. 각 작업자에 대해 users 테이블에 계정 생성 + * 3. username은 이름 기반으로 자동 생성 (예: 홍길동 → hong.gildong) + * 4. 초기 비밀번호는 '1234'로 통일 (첫 로그인 시 변경 권장) + * 5. 현재 연도 연차 잔액 초기화 (workers.annual_leave 사용) + */ + +const bcrypt = require('bcrypt'); +const { generateUniqueUsername } = require('../../utils/hangulToRoman'); + +exports.up = async function(knex) { + console.log('⏳ 기존 작업자들에게 계정 자동 생성 중...'); + + // 1. 계정이 없는 작업자 조회 + const workersWithoutAccount = await knex('workers') + .leftJoin('users', 'workers.worker_id', 'users.worker_id') + .whereNull('users.user_id') + .select( + 'workers.worker_id', + 'workers.worker_name', + 'workers.email', + 'workers.status', + 'workers.annual_leave' + ); + + console.log(`📊 계정이 없는 작업자: ${workersWithoutAccount.length}명`); + + if (workersWithoutAccount.length === 0) { + console.log('ℹ️ 계정이 필요한 작업자가 없습니다.'); + return; + } + + // 2. 각 작업자에 대해 계정 생성 + const initialPassword = '1234'; // 초기 비밀번호 + const hashedPassword = await bcrypt.hash(initialPassword, 10); + + // User 역할 ID 조회 + const userRole = await knex('roles') + .where('name', 'User') + .first(); + + if (!userRole) { + throw new Error('User 역할이 존재하지 않습니다. 권한 마이그레이션을 먼저 실행하세요.'); + } + + let successCount = 0; + let errorCount = 0; + + for (const worker of workersWithoutAccount) { + try { + // username 생성 (중복 체크 포함) + const username = await generateUniqueUsername(worker.worker_name, knex); + + // 계정 생성 + await knex('users').insert({ + username: username, + password: hashedPassword, + name: worker.worker_name, + email: worker.email, + worker_id: worker.worker_id, + role_id: userRole.id, + is_active: worker.status === 'active' ? 1 : 0, + created_at: knex.fn.now(), + updated_at: knex.fn.now() + }); + + console.log(`✅ ${worker.worker_name} (ID: ${worker.worker_id}) → username: ${username}`); + successCount++; + + // 현재 연도 연차 잔액 초기화 + const currentYear = new Date().getFullYear(); + await knex('worker_vacation_balance').insert({ + worker_id: worker.worker_id, + year: currentYear, + total_annual_leave: worker.annual_leave || 15, + used_annual_leave: 0, + created_at: knex.fn.now(), + updated_at: knex.fn.now() + }); + + } catch (error) { + console.error(`❌ ${worker.worker_name} 계정 생성 실패:`, error.message); + errorCount++; + } + } + + console.log(`\n📊 작업 완료: 성공 ${successCount}명, 실패 ${errorCount}명`); + console.log(`🔐 초기 비밀번호: ${initialPassword} (모든 계정 공통)`); + console.log('⚠️ 사용자들에게 첫 로그인 후 비밀번호를 변경하도록 안내해주세요!'); +}; + +exports.down = async function(knex) { + console.log('⏳ 자동 생성된 계정 제거 중...'); + + // 이 마이그레이션으로 생성된 계정은 구분하기 어려우므로 + // rollback 시 주의가 필요합니다. + console.log('⚠️ 경고: 이 마이그레이션의 rollback은 권장하지 않습니다.'); + console.log('ℹ️ 필요시 수동으로 users 테이블을 관리하세요.'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120003_add_guest_role.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120003_add_guest_role.js new file mode 100644 index 0000000..29a00fb --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260119120003_add_guest_role.js @@ -0,0 +1,51 @@ +/** + * 마이그레이션: 게스트 역할 추가 + * 작성일: 2026-01-19 + * + * 변경사항: + * - Guest 역할 추가 (계정 없이 특정 기능 접근 가능) + * - 게스트 전용 페이지 추가 (신고 채널 등) + */ + +exports.up = async function(knex) { + console.log('⏳ 게스트 역할 추가 중...'); + + // 1. Guest 역할 추가 + const [guestRoleId] = await knex('roles').insert({ + name: 'Guest', + description: '게스트 (계정 없이 특정 기능 접근 가능)', + created_at: knex.fn.now(), + updated_at: knex.fn.now() + }); + console.log(`✅ Guest 역할 추가 완료 (ID: ${guestRoleId})`); + + // 2. 게스트 전용 페이지 추가 + await knex('pages').insert({ + page_key: 'guest_report', + page_name: '신고 채널', + page_path: '/pages/guest/report.html', + category: 'guest', + is_admin_only: false, + created_at: knex.fn.now(), + updated_at: knex.fn.now() + }); + console.log('✅ 게스트 전용 페이지 추가 완료 (신고 채널)'); + + console.log('✅ 게스트 역할 추가 완료'); +}; + +exports.down = async function(knex) { + console.log('⏳ 게스트 역할 제거 중...'); + + // 페이지 제거 + await knex('pages') + .where('page_key', 'guest_report') + .delete(); + + // 역할 제거 + await knex('roles') + .where('name', 'Guest') + .delete(); + + console.log('✅ 게스트 역할 제거 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260120000000_create_tbm_system.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260120000000_create_tbm_system.js new file mode 100644 index 0000000..4ee0a02 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260120000000_create_tbm_system.js @@ -0,0 +1,158 @@ +/** + * 마이그레이션: TBM (Tool Box Meeting) 시스템 + * 작성일: 2026-01-20 + * + * 생성 테이블: + * - tbm_sessions: TBM 세션 (아침 미팅 기록) + * - tbm_team_assignments: TBM 팀 구성 (리더가 선택한 작업자들) + * - tbm_safety_checks: TBM 안전 체크리스트 + * - tbm_safety_records: TBM 안전 체크 기록 + * - team_handovers: 작업 인계 기록 (반차/조퇴 시) + */ + +exports.up = async function(knex) { + console.log('⏳ TBM 시스템 테이블 생성 중...'); + + // 1. TBM 세션 테이블 (아침 미팅) + await knex.schema.createTable('tbm_sessions', (table) => { + table.increments('session_id').primary(); + table.date('session_date').notNullable().comment('TBM 날짜'); + table.integer('leader_id').notNullable().comment('팀장 worker_id'); + table.integer('project_id').nullable().comment('프로젝트 ID'); + table.string('work_location', 200).nullable().comment('작업 장소'); + table.text('work_description').nullable().comment('작업 내용'); + table.text('safety_notes').nullable().comment('안전 관련 특이사항'); + table.enum('status', ['draft', 'completed', 'cancelled']).defaultTo('draft').comment('상태'); + table.time('start_time').nullable().comment('TBM 시작 시간'); + table.time('end_time').nullable().comment('TBM 종료 시간'); + table.integer('created_by').notNullable().comment('생성자 user_id'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + // 인덱스 및 제약조건 + table.index(['session_date', 'leader_id']); + table.foreign('leader_id').references('workers.worker_id'); + table.foreign('project_id').references('projects.project_id').onDelete('SET NULL'); + table.foreign('created_by').references('users.user_id'); + }); + console.log('✅ tbm_sessions 테이블 생성 완료'); + + // 2. TBM 팀 구성 테이블 (리더가 선택한 팀원들) + await knex.schema.createTable('tbm_team_assignments', (table) => { + table.increments('assignment_id').primary(); + table.integer('session_id').unsigned().notNullable().comment('TBM 세션 ID'); + table.integer('worker_id').notNullable().comment('팀원 worker_id'); + table.string('assigned_role', 100).nullable().comment('역할/담당'); + table.text('work_detail').nullable().comment('세부 작업 내용'); + table.boolean('is_present').defaultTo(true).comment('출석 여부'); + table.text('absence_reason').nullable().comment('결석 사유'); + table.timestamp('assigned_at').defaultTo(knex.fn.now()); + + // 인덱스 및 제약조건 + table.unique(['session_id', 'worker_id']); + table.foreign('session_id').references('tbm_sessions.session_id').onDelete('CASCADE'); + table.foreign('worker_id').references('workers.worker_id'); + }); + console.log('✅ tbm_team_assignments 테이블 생성 완료'); + + // 3. TBM 안전 체크리스트 마스터 테이블 + await knex.schema.createTable('tbm_safety_checks', (table) => { + table.increments('check_id').primary(); + table.string('check_category', 50).notNullable().comment('카테고리 (장비, PPE, 환경 등)'); + table.string('check_item', 200).notNullable().comment('체크 항목'); + table.text('description').nullable().comment('설명'); + table.integer('display_order').defaultTo(0).comment('표시 순서'); + table.boolean('is_required').defaultTo(true).comment('필수 체크 여부'); + table.boolean('is_active').defaultTo(true).comment('활성 여부'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + table.index('check_category'); + }); + console.log('✅ tbm_safety_checks 테이블 생성 완료'); + + // 초기 안전 체크리스트 데이터 + await knex('tbm_safety_checks').insert([ + // PPE (개인 보호 장비) + { check_category: 'PPE', check_item: '안전모 착용 확인', display_order: 1, is_required: true }, + { check_category: 'PPE', check_item: '안전화 착용 확인', display_order: 2, is_required: true }, + { check_category: 'PPE', check_item: '안전조끼 착용 확인', display_order: 3, is_required: true }, + { check_category: 'PPE', check_item: '안전벨트 착용 확인 (고소작업 시)', display_order: 4, is_required: false }, + { check_category: 'PPE', check_item: '보안경/마스크 착용 확인', display_order: 5, is_required: false }, + + // 장비 점검 + { check_category: 'EQUIPMENT', check_item: '작업 도구 점검 완료', display_order: 10, is_required: true }, + { check_category: 'EQUIPMENT', check_item: '전동공구 안전 점검', display_order: 11, is_required: true }, + { check_category: 'EQUIPMENT', check_item: '사다리/비계 안전 확인', display_order: 12, is_required: false }, + { check_category: 'EQUIPMENT', check_item: '차량/중장비 점검 완료', display_order: 13, is_required: false }, + + // 작업 환경 + { check_category: 'ENVIRONMENT', check_item: '작업 장소 정리정돈 확인', display_order: 20, is_required: true }, + { check_category: 'ENVIRONMENT', check_item: '위험 구역 표시 확인', display_order: 21, is_required: true }, + { check_category: 'ENVIRONMENT', check_item: '기상 상태 확인 (우천, 강풍 등)', display_order: 22, is_required: true }, + { check_category: 'ENVIRONMENT', check_item: '작업 동선 안전 확인', display_order: 23, is_required: true }, + + // 비상 대응 + { check_category: 'EMERGENCY', check_item: '비상연락망 공유 완료', display_order: 30, is_required: true }, + { check_category: 'EMERGENCY', check_item: '소화기 위치 확인', display_order: 31, is_required: true }, + { check_category: 'EMERGENCY', check_item: '응급처치 키트 위치 확인', display_order: 32, is_required: true }, + ]); + console.log('✅ tbm_safety_checks 초기 데이터 입력 완료'); + + // 4. TBM 안전 체크 기록 테이블 + await knex.schema.createTable('tbm_safety_records', (table) => { + table.increments('record_id').primary(); + table.integer('session_id').unsigned().notNullable().comment('TBM 세션 ID'); + table.integer('check_id').unsigned().notNullable().comment('체크 항목 ID'); + table.boolean('is_checked').defaultTo(false).comment('체크 여부'); + table.text('notes').nullable().comment('비고/특이사항'); + table.integer('checked_by').nullable().comment('체크한 user_id'); + table.timestamp('checked_at').nullable().comment('체크 시간'); + + // 인덱스 및 제약조건 + table.unique(['session_id', 'check_id']); + table.foreign('session_id').references('tbm_sessions.session_id').onDelete('CASCADE'); + table.foreign('check_id').references('tbm_safety_checks.check_id'); + table.foreign('checked_by').references('users.user_id'); + }); + console.log('✅ tbm_safety_records 테이블 생성 완료'); + + // 5. 작업 인계 테이블 (반차/조퇴 시) + await knex.schema.createTable('team_handovers', (table) => { + table.increments('handover_id').primary(); + table.integer('session_id').unsigned().notNullable().comment('TBM 세션 ID'); + table.integer('from_leader_id').notNullable().comment('인계자 worker_id'); + table.integer('to_leader_id').notNullable().comment('인수자 worker_id'); + table.date('handover_date').notNullable().comment('인계 날짜'); + table.time('handover_time').nullable().comment('인계 시간'); + table.enum('reason', ['half_day', 'early_leave', 'emergency', 'other']).notNullable().comment('인계 사유'); + table.text('handover_notes').nullable().comment('인계 내용'); + table.text('worker_ids').nullable().comment('인계하는 작업자 IDs (JSON array)'); + table.boolean('is_confirmed').defaultTo(false).comment('인수 확인 여부'); + table.timestamp('confirmed_at').nullable().comment('인수 확인 시간'); + table.integer('confirmed_by').nullable().comment('인수 확인자 user_id'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + + // 인덱스 및 제약조건 + table.index(['session_id', 'handover_date']); + table.foreign('session_id').references('tbm_sessions.session_id').onDelete('CASCADE'); + table.foreign('from_leader_id').references('workers.worker_id'); + table.foreign('to_leader_id').references('workers.worker_id'); + table.foreign('confirmed_by').references('users.user_id'); + }); + console.log('✅ team_handovers 테이블 생성 완료'); + + console.log('✅ 모든 TBM 시스템 테이블 생성 완료'); +}; + +exports.down = async function(knex) { + console.log('⏳ TBM 시스템 테이블 제거 중...'); + + await knex.schema.dropTableIfExists('team_handovers'); + await knex.schema.dropTableIfExists('tbm_safety_records'); + await knex.schema.dropTableIfExists('tbm_safety_checks'); + await knex.schema.dropTableIfExists('tbm_team_assignments'); + await knex.schema.dropTableIfExists('tbm_sessions'); + + console.log('✅ 모든 TBM 시스템 테이블 제거 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260120000001_add_tbm_page.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260120000001_add_tbm_page.js new file mode 100644 index 0000000..4b3c9bb --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260120000001_add_tbm_page.js @@ -0,0 +1,33 @@ +/** + * 마이그레이션: TBM 페이지 등록 + * 작성일: 2026-01-20 + * + * pages 테이블에 TBM 페이지 추가 + */ + +exports.up = async function(knex) { + console.log('⏳ TBM 페이지 등록 중...'); + + // TBM 페이지 추가 + await knex('pages').insert([ + { + page_key: 'tbm', + page_name: 'TBM 관리', + page_path: '/pages/work/tbm.html', + category: 'work', + description: 'Tool Box Meeting - 아침 안전 회의 및 팀 구성 관리', + is_admin_only: false, + display_order: 10 + } + ]); + + console.log('✅ TBM 페이지 등록 완료'); +}; + +exports.down = async function(knex) { + console.log('⏳ TBM 페이지 제거 중...'); + + await knex('pages').where('page_key', 'tbm').del(); + + console.log('✅ TBM 페이지 제거 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126000001_create_workplace_categories.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126000001_create_workplace_categories.js new file mode 100644 index 0000000..2b000a1 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126000001_create_workplace_categories.js @@ -0,0 +1,24 @@ +/** + * 작업장 카테고리(공장) 테이블 생성 마이그레이션 + * 대분류: 제 1공장, 제 2공장 등 + */ + +exports.up = function(knex) { + return knex.schema.createTable('workplace_categories', function(table) { + table.increments('category_id').primary().comment('카테고리 ID'); + table.string('category_name', 100).notNullable().comment('카테고리명 (예: 제 1공장)'); + table.text('description').nullable().comment('설명'); + table.integer('display_order').defaultTo(0).comment('표시 순서'); + table.boolean('is_active').defaultTo(true).comment('활성화 여부'); + table.timestamp('created_at').defaultTo(knex.fn.now()).comment('생성일시'); + table.timestamp('updated_at').defaultTo(knex.fn.now()).comment('수정일시'); + + // 인덱스 + table.index('is_active'); + table.index('display_order'); + }); +}; + +exports.down = function(knex) { + return knex.schema.dropTableIfExists('workplace_categories'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126000002_create_workplaces.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126000002_create_workplaces.js new file mode 100644 index 0000000..6751b74 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126000002_create_workplaces.js @@ -0,0 +1,31 @@ +/** + * 작업장(작업 구역) 테이블 생성 마이그레이션 + * 소분류: 서스작업장, 조립구역 등 + */ + +exports.up = function(knex) { + return knex.schema.createTable('workplaces', function(table) { + table.increments('workplace_id').primary().comment('작업장 ID'); + table.integer('category_id').unsigned().nullable().comment('카테고리 ID (공장)'); + table.string('workplace_name', 255).notNullable().comment('작업장명'); + table.text('description').nullable().comment('설명'); + table.boolean('is_active').defaultTo(true).comment('활성화 여부'); + table.timestamp('created_at').defaultTo(knex.fn.now()).comment('생성일시'); + table.timestamp('updated_at').defaultTo(knex.fn.now()).comment('수정일시'); + + // 외래키 + table.foreign('category_id') + .references('category_id') + .inTable('workplace_categories') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + // 인덱스 + table.index('category_id'); + table.index('is_active'); + }); +}; + +exports.down = function(knex) { + return knex.schema.dropTableIfExists('workplaces'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010002_create_tasks.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010002_create_tasks.js new file mode 100644 index 0000000..aeb4bfc --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010002_create_tasks.js @@ -0,0 +1,36 @@ +/** + * 작업 테이블 생성 (공정=work_types에 속함) + * + * @param {import('knex').Knex} knex + */ +exports.up = function(knex) { + return knex.schema.createTable('tasks', function(table) { + table.increments('task_id').primary().comment('작업 ID'); + table.integer('work_type_id').nullable().comment('공정 ID (work_types 참조)'); + table.string('task_name', 255).notNullable().comment('작업명'); + table.text('description').nullable().comment('작업 설명'); + table.boolean('is_active').defaultTo(true).comment('활성화 여부'); + table.timestamp('created_at').defaultTo(knex.fn.now()).comment('생성일시'); + table.timestamp('updated_at').defaultTo(knex.fn.now()).comment('수정일시'); + + // 외래키 (work_types 테이블 참조) + table.foreign('work_type_id') + .references('id') + .inTable('work_types') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + // 인덱스 + table.index('work_type_id'); + table.index('is_active'); + }).then(() => { + console.log('✅ tasks 테이블 생성 완료'); + }); +}; + +/** + * @param {import('knex').Knex} knex + */ +exports.down = function(knex) { + return knex.schema.dropTableIfExists('tasks'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010003_add_work_type_task_to_tbm.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010003_add_work_type_task_to_tbm.js new file mode 100644 index 0000000..45d11bd --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010003_add_work_type_task_to_tbm.js @@ -0,0 +1,42 @@ +/** + * TBM 세션에 공정/작업 컬럼 추가 + * + * @param {import('knex').Knex} knex + */ +exports.up = function(knex) { + return knex.schema.table('tbm_sessions', function(table) { + table.integer('work_type_id').nullable().comment('공정 ID (work_types 참조)'); + table.integer('task_id').unsigned().nullable().comment('작업 ID (tasks 참조)'); + + // 외래키 추가 + table.foreign('work_type_id') + .references('id') + .inTable('work_types') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + table.foreign('task_id') + .references('task_id') + .inTable('tasks') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + // 인덱스 추가 + table.index('work_type_id'); + table.index('task_id'); + }).then(() => { + console.log('✅ tbm_sessions 테이블에 work_type_id, task_id 컬럼 추가 완료'); + }); +}; + +/** + * @param {import('knex').Knex} knex + */ +exports.down = function(knex) { + return knex.schema.table('tbm_sessions', function(table) { + table.dropForeign('work_type_id'); + table.dropForeign('task_id'); + table.dropColumn('work_type_id'); + table.dropColumn('task_id'); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010004_add_work_details_to_team_assignments.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010004_add_work_details_to_team_assignments.js new file mode 100644 index 0000000..3e4f6f6 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260126010004_add_work_details_to_team_assignments.js @@ -0,0 +1,37 @@ +/** + * 마이그레이션: tbm_team_assignments 테이블 확장 + * 작업자별 프로젝트/공정/작업/작업장 정보 저장 가능하도록 컬럼 추가 및 외래키 설정 + */ + +exports.up = async function(knex) { + // 1. workplace_category_id와 workplace_id를 UNSIGNED로 변경 + await knex.raw(` + ALTER TABLE tbm_team_assignments + MODIFY COLUMN workplace_category_id INT UNSIGNED NULL COMMENT '작업자별 작업장 대분류 (공장)', + MODIFY COLUMN workplace_id INT UNSIGNED NULL COMMENT '작업자별 작업장 ID' + `); + + // 2. 외래키 제약조건 추가 + return knex.schema.alterTable('tbm_team_assignments', function(table) { + // 외래키 제약조건 추가 + table.foreign('workplace_category_id') + .references('category_id') + .inTable('workplace_categories') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + table.foreign('workplace_id') + .references('workplace_id') + .inTable('workplaces') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + }); +}; + +exports.down = function(knex) { + return knex.schema.alterTable('tbm_team_assignments', function(table) { + // 외래키 제약조건 제거 + table.dropForeign('workplace_category_id'); + table.dropForeign('workplace_id'); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127000001_remove_unused_tbm_fields.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127000001_remove_unused_tbm_fields.js new file mode 100644 index 0000000..1850a27 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127000001_remove_unused_tbm_fields.js @@ -0,0 +1,20 @@ +/** + * 마이그레이션: tbm_sessions 테이블에서 불필요한 컬럼 제거 + * work_description, safety_notes, start_time 컬럼 제거 + */ + +exports.up = function(knex) { + return knex.schema.alterTable('tbm_sessions', function(table) { + table.dropColumn('work_description'); + table.dropColumn('safety_notes'); + table.dropColumn('start_time'); + }); +}; + +exports.down = function(knex) { + return knex.schema.alterTable('tbm_sessions', function(table) { + table.text('work_description').nullable().comment('작업 내용'); + table.text('safety_notes').nullable().comment('안전 관련 특이사항'); + table.time('start_time').nullable().comment('시작 시간'); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127000002_add_workplace_map_images.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127000002_add_workplace_map_images.js new file mode 100644 index 0000000..2d276eb --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127000002_add_workplace_map_images.js @@ -0,0 +1,53 @@ +/** + * 마이그레이션: 작업장 지도 이미지 기능 추가 + * - workplace_categories에 layout_image 필드 추가 + * - workplace_map_regions 테이블 생성 (클릭 가능한 영역 정의) + */ + +exports.up = async function(knex) { + // 1. workplace_categories 테이블에 layout_image 필드 추가 + await knex.schema.alterTable('workplace_categories', function(table) { + table.string('layout_image', 500).nullable().comment('공장 배치도 이미지 경로'); + }); + + // 2. 작업장 지도 클릭 영역 정의 테이블 생성 + await knex.schema.createTable('workplace_map_regions', function(table) { + table.increments('region_id').primary().comment('영역 ID'); + table.integer('workplace_id').unsigned().notNullable().comment('작업장 ID'); + table.integer('category_id').unsigned().notNullable().comment('공장 카테고리 ID'); + + // 좌표 정보 (비율 기반: 0~100%) + table.decimal('x_start', 5, 2).notNullable().comment('시작 X 좌표 (%)'); + table.decimal('y_start', 5, 2).notNullable().comment('시작 Y 좌표 (%)'); + table.decimal('x_end', 5, 2).notNullable().comment('끝 X 좌표 (%)'); + table.decimal('y_end', 5, 2).notNullable().comment('끝 Y 좌표 (%)'); + + table.string('shape', 20).defaultTo('rect').comment('영역 모양 (rect, circle, polygon)'); + table.text('polygon_points').nullable().comment('다각형인 경우 좌표 배열 (JSON)'); + + table.timestamps(true, true); + + // 외래키 + table.foreign('workplace_id') + .references('workplace_id') + .inTable('workplaces') + .onDelete('CASCADE') + .onUpdate('CASCADE'); + + table.foreign('category_id') + .references('category_id') + .inTable('workplace_categories') + .onDelete('CASCADE') + .onUpdate('CASCADE'); + }); +}; + +exports.down = async function(knex) { + // 테이블 삭제 + await knex.schema.dropTableIfExists('workplace_map_regions'); + + // 필드 제거 + await knex.schema.alterTable('workplace_categories', function(table) { + table.dropColumn('layout_image'); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127010000_add_workplace_purpose_fields.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127010000_add_workplace_purpose_fields.js new file mode 100644 index 0000000..022ed3d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127010000_add_workplace_purpose_fields.js @@ -0,0 +1,17 @@ +/** + * 마이그레이션: 작업장 용도 및 표시 순서 필드 추가 + */ + +exports.up = function(knex) { + return knex.schema.alterTable('workplaces', function(table) { + table.string('workplace_purpose', 50).nullable().comment('작업장 용도 (작업구역, 설비, 휴게시설, 회의실 등)'); + table.integer('display_priority').defaultTo(0).comment('표시 우선순위 (숫자가 작을수록 먼저 표시)'); + }); +}; + +exports.down = function(knex) { + return knex.schema.alterTable('workplaces', function(table) { + table.dropColumn('workplace_purpose'); + table.dropColumn('display_priority'); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127020000_make_leader_id_nullable.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127020000_make_leader_id_nullable.js new file mode 100644 index 0000000..f05ed42 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127020000_make_leader_id_nullable.js @@ -0,0 +1,30 @@ +/** + * leader_id를 nullable로 변경 + * 관리자가 TBM을 입력할 때 leader_id를 NULL로 설정하고 created_by를 사용 + */ + +exports.up = async function(knex) { + // 1. 외래 키 제약조건 삭제 (존재하는 경우에만) + try { + await knex.raw('ALTER TABLE tbm_sessions DROP FOREIGN KEY tbm_sessions_leader_id_foreign'); + } catch (err) { + console.log('외래 키가 이미 존재하지 않음 (정상)'); + } + + // 2. leader_id를 nullable로 변경 (UNSIGNED 제거하여 workers.worker_id와 타입 일치) + await knex.raw('ALTER TABLE tbm_sessions MODIFY leader_id INT(11) NULL'); + + // 3. 외래 키 제약조건 다시 추가 (nullable 허용) + await knex.raw('ALTER TABLE tbm_sessions ADD CONSTRAINT tbm_sessions_leader_id_foreign FOREIGN KEY (leader_id) REFERENCES workers(worker_id) ON DELETE SET NULL'); +}; + +exports.down = async function(knex) { + // 1. 외래 키 제약조건 삭제 + await knex.raw('ALTER TABLE tbm_sessions DROP FOREIGN KEY tbm_sessions_leader_id_foreign'); + + // 2. leader_id를 NOT NULL로 되돌림 + await knex.raw('ALTER TABLE tbm_sessions MODIFY leader_id INT(11) NOT NULL'); + + // 3. 외래 키 제약조건 다시 추가 + await knex.raw('ALTER TABLE tbm_sessions ADD CONSTRAINT tbm_sessions_leader_id_foreign FOREIGN KEY (leader_id) REFERENCES workers(worker_id) ON DELETE CASCADE'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127030000_add_tbm_fields_to_work_reports.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127030000_add_tbm_fields_to_work_reports.js new file mode 100644 index 0000000..6d6ac4e --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127030000_add_tbm_fields_to_work_reports.js @@ -0,0 +1,55 @@ +/** + * daily_work_reports 테이블에 TBM 연동 필드 추가 + * - TBM 세션 및 팀 배정과 연결 + * - 작업 시간 및 오류 시간 추적 + */ + +exports.up = async function(knex) { + await knex.schema.table('daily_work_reports', (table) => { + // TBM 연동 필드 + table.integer('tbm_session_id').unsigned().nullable() + .comment('연결된 TBM 세션 ID'); + table.integer('tbm_assignment_id').unsigned().nullable() + .comment('연결된 TBM 팀 배정 ID'); + + // 작업 시간 추적 + table.time('start_time').nullable() + .comment('작업 시작 시간'); + table.time('end_time').nullable() + .comment('작업 종료 시간'); + table.decimal('total_hours', 5, 2).nullable() + .comment('총 작업 시간'); + table.decimal('regular_hours', 5, 2).nullable() + .comment('정규 작업 시간 (총 시간 - 오류 시간)'); + table.decimal('error_hours', 5, 2).nullable() + .comment('부적합 사항 처리 시간'); + + // 외래 키 제약조건 + table.foreign('tbm_session_id') + .references('session_id') + .inTable('tbm_sessions') + .onDelete('SET NULL'); + + table.foreign('tbm_assignment_id') + .references('assignment_id') + .inTable('tbm_team_assignments') + .onDelete('SET NULL'); + }); +}; + +exports.down = async function(knex) { + await knex.schema.table('daily_work_reports', (table) => { + // 외래 키 제약조건 삭제 + table.dropForeign('tbm_session_id'); + table.dropForeign('tbm_assignment_id'); + + // 컬럼 삭제 + table.dropColumn('tbm_session_id'); + table.dropColumn('tbm_assignment_id'); + table.dropColumn('start_time'); + table.dropColumn('end_time'); + table.dropColumn('total_hours'); + table.dropColumn('regular_hours'); + table.dropColumn('error_hours'); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127040000_update_pages_for_current_system.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127040000_update_pages_for_current_system.js new file mode 100644 index 0000000..4a19ab6 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260127040000_update_pages_for_current_system.js @@ -0,0 +1,152 @@ +/** + * 현재 사용 중인 페이지를 pages 테이블에 업데이트 + */ + +exports.up = async function(knex) { + // 기존 페이지 모두 삭제 + await knex('pages').del(); + + // 현재 사용 중인 페이지들을 등록 + await knex('pages').insert([ + // 공통 페이지 + { + page_key: 'dashboard', + page_name: '대시보드', + page_path: '/pages/dashboard.html', + category: 'common', + description: '전체 현황 대시보드', + is_admin_only: 0, + display_order: 1 + }, + + // 작업 관련 페이지 + { + page_key: 'work.tbm', + page_name: 'TBM', + page_path: '/pages/work/tbm.html', + category: 'work', + description: 'TBM (Tool Box Meeting) 관리', + is_admin_only: 0, + display_order: 10 + }, + { + page_key: 'work.report_create', + page_name: '작업보고서 작성', + page_path: '/pages/work/report-create.html', + category: 'work', + description: '일일 작업보고서 작성', + is_admin_only: 0, + display_order: 11 + }, + { + page_key: 'work.report_view', + page_name: '작업보고서 조회', + page_path: '/pages/work/report-view.html', + category: 'work', + description: '작업보고서 조회 및 검색', + is_admin_only: 0, + display_order: 12 + }, + { + page_key: 'work.analysis', + page_name: '작업 분석', + page_path: '/pages/work/analysis.html', + category: 'work', + description: '작업 통계 및 분석', + is_admin_only: 0, + display_order: 13 + }, + + // Admin 페이지 + { + page_key: 'admin.accounts', + page_name: '계정 관리', + page_path: '/pages/admin/accounts.html', + category: 'admin', + description: '사용자 계정 관리', + is_admin_only: 1, + display_order: 20 + }, + { + page_key: 'admin.page_access', + page_name: '페이지 권한 관리', + page_path: '/pages/admin/page-access.html', + category: 'admin', + description: '사용자별 페이지 접근 권한 관리', + is_admin_only: 1, + display_order: 21 + }, + { + page_key: 'admin.workers', + page_name: '작업자 관리', + page_path: '/pages/admin/workers.html', + category: 'admin', + description: '작업자 정보 관리', + is_admin_only: 1, + display_order: 22 + }, + { + page_key: 'admin.projects', + page_name: '프로젝트 관리', + page_path: '/pages/admin/projects.html', + category: 'admin', + description: '프로젝트 관리', + is_admin_only: 1, + display_order: 23 + }, + { + page_key: 'admin.workplaces', + page_name: '작업장 관리', + page_path: '/pages/admin/workplaces.html', + category: 'admin', + description: '작업장소 관리', + is_admin_only: 1, + display_order: 24 + }, + { + page_key: 'admin.codes', + page_name: '코드 관리', + page_path: '/pages/admin/codes.html', + category: 'admin', + description: '시스템 코드 관리', + is_admin_only: 1, + display_order: 25 + }, + { + page_key: 'admin.tasks', + page_name: '작업 관리', + page_path: '/pages/admin/tasks.html', + category: 'admin', + description: '작업 유형 관리', + is_admin_only: 1, + display_order: 26 + }, + + // 프로필 페이지 + { + page_key: 'profile.info', + page_name: '내 정보', + page_path: '/pages/profile/info.html', + category: 'profile', + description: '내 프로필 정보', + is_admin_only: 0, + display_order: 30 + }, + { + page_key: 'profile.password', + page_name: '비밀번호 변경', + page_path: '/pages/profile/password.html', + category: 'profile', + description: '비밀번호 변경', + is_admin_only: 0, + display_order: 31 + } + ]); + + console.log('✅ 현재 사용 중인 페이지 목록 업데이트 완료'); +}; + +exports.down = async function(knex) { + await knex('pages').del(); + console.log('✅ 페이지 목록 삭제 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260128000000_add_layout_image_to_workplaces.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260128000000_add_layout_image_to_workplaces.js new file mode 100644 index 0000000..c4a5db4 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260128000000_add_layout_image_to_workplaces.js @@ -0,0 +1,22 @@ +/** + * 작업장 테이블에 레이아웃 이미지 컬럼 추가 + * + * @author TK-FB-Project + * @since 2026-01-28 + */ + +exports.up = async function(knex) { + await knex.schema.table('workplaces', (table) => { + table.string('layout_image', 500).nullable().comment('작업장 레이아웃 이미지 경로'); + }); + + console.log('✅ workplaces 테이블에 layout_image 컬럼 추가 완료'); +}; + +exports.down = async function(knex) { + await knex.schema.table('workplaces', (table) => { + table.dropColumn('layout_image'); + }); + + console.log('✅ workplaces 테이블에서 layout_image 컬럼 제거 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260128010000_create_equipments_table.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260128010000_create_equipments_table.js new file mode 100644 index 0000000..c1fb50b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260128010000_create_equipments_table.js @@ -0,0 +1,48 @@ +/** + * 설비 관리 테이블 생성 + * + * @author TK-FB-Project + * @since 2026-01-28 + */ + +exports.up = async function(knex) { + await knex.schema.createTable('equipments', (table) => { + table.increments('equipment_id').primary().comment('설비 ID'); + table.string('equipment_code', 50).notNullable().unique().comment('설비 코드 (예: CNC-01, LATHE-A)'); + table.string('equipment_name', 100).notNullable().comment('설비명'); + table.string('equipment_type', 50).nullable().comment('설비 유형 (예: CNC, 선반, 밀링 등)'); + table.string('model_name', 100).nullable().comment('모델명'); + table.string('manufacturer', 100).nullable().comment('제조사'); + table.date('installation_date').nullable().comment('설치일'); + table.string('serial_number', 100).nullable().comment('시리얼 번호'); + table.text('specifications').nullable().comment('사양 정보 (JSON 형태로 저장 가능)'); + table.enum('status', ['active', 'maintenance', 'inactive']).defaultTo('active').comment('설비 상태'); + table.text('notes').nullable().comment('비고'); + + // 작업장 연결 + table.integer('workplace_id').unsigned().nullable().comment('연결된 작업장 ID'); + table.foreign('workplace_id').references('workplace_id').inTable('workplaces').onDelete('SET NULL'); + + // 지도상 위치 정보 (백분율 기반) + table.decimal('map_x_percent', 5, 2).nullable().comment('지도상 X 위치 (%)'); + table.decimal('map_y_percent', 5, 2).nullable().comment('지도상 Y 위치 (%)'); + table.decimal('map_width_percent', 5, 2).nullable().comment('지도상 영역 너비 (%)'); + table.decimal('map_height_percent', 5, 2).nullable().comment('지도상 영역 높이 (%)'); + + // 타임스탬프 + table.timestamp('created_at').defaultTo(knex.fn.now()).comment('생성일시'); + table.timestamp('updated_at').defaultTo(knex.fn.now()).comment('수정일시'); + + // 인덱스 + table.index('workplace_id'); + table.index('equipment_type'); + table.index('status'); + }); + + console.log('✅ equipments 테이블 생성 완료'); +}; + +exports.down = async function(knex) { + await knex.schema.dropTableIfExists('equipments'); + console.log('✅ equipments 테이블 삭제 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000000_create_vacation_requests.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000000_create_vacation_requests.js new file mode 100644 index 0000000..3cdc18d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000000_create_vacation_requests.js @@ -0,0 +1,57 @@ +/** + * Migration: Create vacation_requests table + * Purpose: Track vacation request workflow (request, approval/rejection) + * Date: 2026-01-29 + */ + +exports.up = async function(knex) { + // Create vacation_requests table + await knex.schema.createTable('vacation_requests', (table) => { + table.increments('request_id').primary().comment('휴가 신청 ID'); + + // 작업자 정보 + table.integer('worker_id').notNullable().comment('작업자 ID'); + table.foreign('worker_id').references('worker_id').inTable('workers').onDelete('CASCADE'); + + // 휴가 정보 + table.integer('vacation_type_id').unsigned().notNullable().comment('휴가 유형 ID'); + table.foreign('vacation_type_id').references('id').inTable('vacation_types').onDelete('RESTRICT'); + + table.date('start_date').notNullable().comment('휴가 시작일'); + table.date('end_date').notNullable().comment('휴가 종료일'); + table.decimal('days_used', 4, 1).notNullable().comment('사용 일수 (0.5일 단위)'); + + table.text('reason').nullable().comment('휴가 사유'); + + // 신청 및 승인 정보 + table.enum('status', ['pending', 'approved', 'rejected']) + .notNullable() + .defaultTo('pending') + .comment('승인 상태: pending(대기), approved(승인), rejected(거부)'); + + table.integer('requested_by').notNullable().comment('신청자 user_id'); + table.foreign('requested_by').references('user_id').inTable('users').onDelete('RESTRICT'); + + table.integer('reviewed_by').nullable().comment('승인/거부자 user_id'); + table.foreign('reviewed_by').references('user_id').inTable('users').onDelete('SET NULL'); + + table.timestamp('reviewed_at').nullable().comment('승인/거부 일시'); + table.text('review_note').nullable().comment('승인/거부 메모'); + + // 타임스탬프 + table.timestamp('created_at').defaultTo(knex.fn.now()).comment('신청 일시'); + table.timestamp('updated_at').defaultTo(knex.fn.now()).comment('수정 일시'); + + // 인덱스 + table.index('worker_id', 'idx_vacation_requests_worker'); + table.index('status', 'idx_vacation_requests_status'); + table.index(['start_date', 'end_date'], 'idx_vacation_requests_dates'); + }); + + console.log('✅ vacation_requests 테이블 생성 완료'); +}; + +exports.down = async function(knex) { + await knex.schema.dropTableIfExists('vacation_requests'); + console.log('✅ vacation_requests 테이블 삭제 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000001_register_attendance_pages.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000001_register_attendance_pages.js new file mode 100644 index 0000000..e9ee5c9 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000001_register_attendance_pages.js @@ -0,0 +1,84 @@ +/** + * Migration: Register attendance management pages + * Purpose: Add 4 new pages to pages table for attendance management system + * Date: 2026-01-29 + */ + +exports.up = async function(knex) { + // 페이지 등록 (실제 pages 테이블 컬럼에 맞춤) + await knex('pages').insert([ + { + page_key: 'daily-attendance', + page_name: '일일 출퇴근 입력', + page_path: '/pages/common/daily-attendance.html', + description: '일일 출퇴근 기록 입력 페이지 (관리자/조장)', + category: 'common', + is_admin_only: false, + display_order: 50 + }, + { + page_key: 'monthly-attendance', + page_name: '월별 출퇴근 현황', + page_path: '/pages/common/monthly-attendance.html', + description: '월별 출퇴근 현황 조회 페이지', + category: 'common', + is_admin_only: false, + display_order: 51 + }, + { + page_key: 'vacation-management', + page_name: '휴가 관리', + page_path: '/pages/common/vacation-management.html', + description: '휴가 신청 및 승인 관리 페이지', + category: 'common', + is_admin_only: false, + display_order: 52 + }, + { + page_key: 'attendance-report-comparison', + page_name: '출퇴근-작업보고서 대조', + page_path: '/pages/admin/attendance-report-comparison.html', + description: '출퇴근 기록과 작업보고서 대조 페이지 (관리자)', + category: 'admin', + is_admin_only: true, + display_order: 120 + } + ]); + + console.log('✅ 출퇴근 관리 페이지 4개 등록 완료'); + + // Admin 사용자(user_id=1)에게 페이지 접근 권한 부여 + const adminUserId = 1; + const pages = await knex('pages') + .whereIn('page_key', [ + 'daily-attendance', + 'monthly-attendance', + 'vacation-management', + 'attendance-report-comparison' + ]) + .select('id'); + + const accessRecords = pages.map(page => ({ + user_id: adminUserId, + page_id: page.id, + can_access: true, + granted_by: adminUserId + })); + + await knex('user_page_access').insert(accessRecords); + console.log('✅ Admin 사용자에게 출퇴근 관리 페이지 접근 권한 부여 완료'); +}; + +exports.down = async function(knex) { + // 페이지 삭제 (user_page_access는 FK CASCADE로 자동 삭제됨) + await knex('pages') + .whereIn('page_key', [ + 'daily-attendance', + 'monthly-attendance', + 'vacation-management', + 'attendance-report-comparison' + ]) + .delete(); + + console.log('✅ 출퇴근 관리 페이지 삭제 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000002_add_attendance_is_present.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000002_add_attendance_is_present.js new file mode 100644 index 0000000..0ebafd3 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000002_add_attendance_is_present.js @@ -0,0 +1,35 @@ +/** + * 출퇴근 출근 여부 필드 추가 + * 아침 출근 확인용 간단한 필드 + */ + +exports.up = async function(knex) { + // 컬럼 존재 여부 확인 + const hasColumn = await knex.schema.hasColumn('daily_attendance_records', 'is_present'); + + if (!hasColumn) { + await knex.schema.table('daily_attendance_records', (table) => { + // 출근 여부 (아침에 체크) + table.boolean('is_present').defaultTo(true).comment('출근 여부'); + }); + + // 기존 데이터는 모두 출근으로 처리 + await knex('daily_attendance_records') + .whereNotNull('id') + .update({ is_present: true }); + + console.log('✅ is_present 컬럼 추가 완료'); + } else { + console.log('⏭️ is_present 컬럼이 이미 존재합니다'); + } +}; + +exports.down = async function(knex) { + const hasColumn = await knex.schema.hasColumn('daily_attendance_records', 'is_present'); + + if (hasColumn) { + await knex.schema.table('daily_attendance_records', (table) => { + table.dropColumn('is_present'); + }); + } +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000003_update_vacation_pages.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000003_update_vacation_pages.js new file mode 100644 index 0000000..54b57c9 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000003_update_vacation_pages.js @@ -0,0 +1,57 @@ +/** + * 휴가 관리 페이지 분리 및 등록 + * - 기존 vacation-management.html을 2개 페이지로 분리 + * - vacation-request.html: 작업자 휴가 신청 및 본인 내역 확인 + * - vacation-management.html: 관리자 휴가 승인/직접입력/전체내역 (3개 탭) + */ + +exports.up = async function(knex) { + // 기존 vacation-management 페이지 삭제 + await knex('pages') + .where('page_key', 'vacation-management') + .del(); + + // 새로운 휴가 관리 페이지 2개 등록 + await knex('pages').insert([ + { + page_key: 'vacation-request', + page_name: '휴가 신청', + page_path: '/pages/common/vacation-request.html', + category: 'common', + description: '작업자가 휴가를 신청하고 본인의 신청 내역을 확인하는 페이지', + is_admin_only: 0, + display_order: 51 + }, + { + page_key: 'vacation-management', + page_name: '휴가 관리', + page_path: '/pages/common/vacation-management.html', + category: 'common', + description: '관리자가 휴가 승인, 직접 입력, 전체 내역을 관리하는 페이지', + is_admin_only: 1, + display_order: 52 + } + ]); + + console.log('✅ 휴가 관리 페이지 분리 완료 (기존 1개 → 신규 2개)'); +}; + +exports.down = async function(knex) { + // 새로운 페이지 삭제 + await knex('pages') + .whereIn('page_key', ['vacation-request', 'vacation-management']) + .del(); + + // 기존 vacation-management 페이지 복원 + await knex('pages').insert({ + page_key: 'vacation-management', + page_name: '휴가 관리', + page_path: '/pages/common/vacation-management.html.old', + category: 'common', + description: '휴가 신청 및 승인 관리', + is_admin_only: 0, + display_order: 50 + }); + + console.log('✅ 휴가 관리 페이지 롤백 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000004_extend_vacation_types.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000004_extend_vacation_types.js new file mode 100644 index 0000000..0672e80 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000004_extend_vacation_types.js @@ -0,0 +1,55 @@ +/** + * vacation_types 테이블 확장 + * - 특별 휴가 유형 추가 기능 + * - 차감 우선순위 관리 + * - 시스템 기본 휴가 보호 + */ + +exports.up = async function(knex) { + // vacation_types 테이블 확장 + await knex.schema.table('vacation_types', (table) => { + table.boolean('is_special').defaultTo(false).comment('특별 휴가 여부 (장기근속, 출산 등)'); + table.integer('priority').defaultTo(99).comment('차감 우선순위 (낮을수록 먼저 차감)'); + table.text('description').nullable().comment('휴가 설명'); + table.boolean('is_system').defaultTo(true).comment('시스템 기본 휴가 (삭제 불가)'); + }); + + // 기존 휴가 유형에 우선순위 설정 + await knex('vacation_types').where('type_code', 'ANNUAL').update({ + priority: 10, + is_system: true, + description: '근로기준법에 따른 연차 유급휴가' + }); + + await knex('vacation_types').where('type_code', 'HALF_ANNUAL').update({ + priority: 10, + is_system: true, + description: '반일 연차 (0.5일)' + }); + + await knex('vacation_types').where('type_code', 'SICK').update({ + priority: 20, + is_system: true, + description: '병가' + }); + + await knex('vacation_types').where('type_code', 'SPECIAL').update({ + priority: 0, + is_system: true, + description: '경조사 휴가 (무급)' + }); + + console.log('✅ vacation_types 테이블 확장 완료'); +}; + +exports.down = async function(knex) { + // 컬럼 삭제 + await knex.schema.table('vacation_types', (table) => { + table.dropColumn('is_special'); + table.dropColumn('priority'); + table.dropColumn('description'); + table.dropColumn('is_system'); + }); + + console.log('✅ vacation_types 테이블 롤백 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000005_create_vacation_balance_details.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000005_create_vacation_balance_details.js new file mode 100644 index 0000000..75b8f7b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000005_create_vacation_balance_details.js @@ -0,0 +1,87 @@ +/** + * vacation_balance_details 테이블 생성 및 데이터 마이그레이션 + * - 작업자별, 휴가 유형별, 연도별 휴가 잔액 관리 + * - 기존 worker_vacation_balance 데이터 이관 + */ + +exports.up = async function(knex) { + // vacation_balance_details 테이블 생성 + await knex.schema.createTable('vacation_balance_details', (table) => { + table.increments('id').primary(); + table.integer('worker_id').notNullable().comment('작업자 ID'); + table.integer('vacation_type_id').unsigned().notNullable().comment('휴가 유형 ID'); + table.integer('year').notNullable().comment('연도'); + table.decimal('total_days', 4, 1).defaultTo(0).comment('총 발생 일수'); + table.decimal('used_days', 4, 1).defaultTo(0).comment('사용 일수'); + table.text('notes').nullable().comment('비고'); + table.integer('created_by').notNullable().comment('생성자 ID'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + // 인덱스 + table.unique(['worker_id', 'vacation_type_id', 'year'], 'unique_worker_vacation_year'); + table.index(['worker_id', 'year'], 'idx_worker_year'); + table.index('vacation_type_id', 'idx_vacation_type'); + + // 외래키 + table.foreign('worker_id').references('worker_id').inTable('workers').onDelete('CASCADE'); + table.foreign('vacation_type_id').references('id').inTable('vacation_types').onDelete('RESTRICT'); + table.foreign('created_by').references('user_id').inTable('users'); + }); + + // remaining_days를 generated column으로 추가 (Raw SQL) + await knex.raw(` + ALTER TABLE vacation_balance_details + ADD COLUMN remaining_days DECIMAL(4,1) + GENERATED ALWAYS AS (total_days - used_days) STORED + COMMENT '잔여 일수' + `); + + console.log('✅ vacation_balance_details 테이블 생성 완료'); + + // 기존 worker_vacation_balance 데이터를 vacation_balance_details로 마이그레이션 + const existingBalances = await knex('worker_vacation_balance').select('*'); + + if (existingBalances.length > 0) { + // ANNUAL 휴가 유형 ID 조회 + const annualType = await knex('vacation_types') + .where('type_code', 'ANNUAL') + .first(); + + if (!annualType) { + throw new Error('ANNUAL 휴가 유형을 찾을 수 없습니다'); + } + + // 관리자 사용자 ID 조회 (created_by 용) + // role_id 1 = System Admin, 2 = Admin + const adminUser = await knex('users') + .whereIn('role_id', [1, 2]) + .first(); + + const createdById = adminUser ? adminUser.user_id : 1; + + // 데이터 변환 및 삽입 + const balanceDetails = existingBalances.map(balance => ({ + worker_id: balance.worker_id, + vacation_type_id: annualType.id, + year: balance.year, + total_days: balance.total_annual_leave || 0, + used_days: balance.used_annual_leave || 0, + notes: 'Migrated from worker_vacation_balance', + created_by: createdById, + created_at: balance.created_at, + updated_at: balance.updated_at + })); + + await knex('vacation_balance_details').insert(balanceDetails); + + console.log(`✅ ${balanceDetails.length}건의 기존 휴가 데이터 마이그레이션 완료`); + } +}; + +exports.down = async function(knex) { + // vacation_balance_details 테이블 삭제 + await knex.schema.dropTableIfExists('vacation_balance_details'); + + console.log('✅ vacation_balance_details 테이블 롤백 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000006_register_vacation_pages.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000006_register_vacation_pages.js new file mode 100644 index 0000000..0773a7f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129000006_register_vacation_pages.js @@ -0,0 +1,38 @@ +/** + * 새로운 휴가 관리 페이지 등록 + * - annual-vacation-overview: 연간 연차 현황 (차트) + * - vacation-allocation: 휴가 발생 입력 및 관리 + */ + +exports.up = async function(knex) { + await knex('pages').insert([ + { + page_key: 'annual-vacation-overview', + page_name: '연간 연차 현황', + page_path: '/pages/common/annual-vacation-overview.html', + category: 'common', + description: '모든 작업자의 연간 연차 현황을 차트로 시각화', + is_admin_only: 1, + display_order: 54 + }, + { + page_key: 'vacation-allocation', + page_name: '휴가 발생 입력', + page_path: '/pages/common/vacation-allocation.html', + category: 'common', + description: '작업자별 휴가 발생 입력 및 특별 휴가 관리', + is_admin_only: 1, + display_order: 55 + } + ]); + + console.log('✅ 휴가 관리 신규 페이지 2개 등록 완료'); +}; + +exports.down = async function(knex) { + await knex('pages') + .whereIn('page_key', ['annual-vacation-overview', 'vacation-allocation']) + .del(); + + console.log('✅ 휴가 관리 페이지 롤백 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129010000_create_visit_request_system.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129010000_create_visit_request_system.js new file mode 100644 index 0000000..ae65516 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129010000_create_visit_request_system.js @@ -0,0 +1,153 @@ +/** + * 마이그레이션: 출입 신청 및 안전교육 시스템 + * - 방문 목적 타입 테이블 + * - 출입 신청 테이블 + * - 안전교육 기록 테이블 + */ + +exports.up = async function(knex) { + // 1. 방문 목적 타입 테이블 생성 + await knex.schema.createTable('visit_purpose_types', function(table) { + table.increments('purpose_id').primary().comment('방문 목적 ID'); + table.string('purpose_name', 100).notNullable().comment('방문 목적명'); + table.integer('display_order').defaultTo(0).comment('표시 순서'); + table.boolean('is_active').defaultTo(true).comment('활성 여부'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + }); + + // 초기 데이터 삽입 + await knex('visit_purpose_types').insert([ + { purpose_name: '외주작업', display_order: 1, is_active: true }, + { purpose_name: '검사', display_order: 2, is_active: true }, + { purpose_name: '견학', display_order: 3, is_active: true }, + { purpose_name: '기타', display_order: 99, is_active: true } + ]); + + // 2. 출입 신청 테이블 생성 + await knex.schema.createTable('workplace_visit_requests', function(table) { + table.increments('request_id').primary().comment('신청 ID'); + + // 신청자 정보 + table.integer('requester_id').notNullable().comment('신청자 user_id'); + + // 방문자 정보 + table.string('visitor_company', 200).notNullable().comment('방문자 소속 (회사명 또는 "일용직")'); + table.integer('visitor_count').defaultTo(1).comment('방문 인원'); + + // 방문 장소 + table.integer('category_id').unsigned().notNullable().comment('방문 구역 (공장)'); + table.integer('workplace_id').unsigned().notNullable().comment('방문 작업장'); + + // 방문 일시 + table.date('visit_date').notNullable().comment('방문 날짜'); + table.time('visit_time').notNullable().comment('방문 시간'); + + // 방문 목적 + table.integer('purpose_id').unsigned().notNullable().comment('방문 목적 ID'); + table.text('notes').nullable().comment('비고'); + + // 상태 관리 + table.enum('status', ['pending', 'approved', 'rejected', 'training_completed']) + .defaultTo('pending') + .comment('신청 상태'); + + // 승인 정보 + table.integer('approved_by').nullable().comment('승인자 user_id'); + table.timestamp('approved_at').nullable().comment('승인 시간'); + table.text('rejection_reason').nullable().comment('반려 사유'); + + // 타임스탬프 + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + // 외래키 + table.foreign('requester_id') + .references('user_id') + .inTable('users') + .onDelete('RESTRICT') + .onUpdate('CASCADE'); + + table.foreign('category_id') + .references('category_id') + .inTable('workplace_categories') + .onDelete('RESTRICT') + .onUpdate('CASCADE'); + + table.foreign('workplace_id') + .references('workplace_id') + .inTable('workplaces') + .onDelete('RESTRICT') + .onUpdate('CASCADE'); + + table.foreign('purpose_id') + .references('purpose_id') + .inTable('visit_purpose_types') + .onDelete('RESTRICT') + .onUpdate('CASCADE'); + + table.foreign('approved_by') + .references('user_id') + .inTable('users') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + // 인덱스 + table.index('visit_date', 'idx_visit_date'); + table.index('status', 'idx_status'); + table.index(['visit_date', 'status'], 'idx_visit_date_status'); + }); + + // 3. 안전교육 기록 테이블 생성 + await knex.schema.createTable('safety_training_records', function(table) { + table.increments('training_id').primary().comment('교육 기록 ID'); + + table.integer('request_id').unsigned().notNullable().comment('출입 신청 ID'); + + // 교육 진행 정보 + table.integer('trainer_id').notNullable().comment('교육 진행자 user_id'); + table.date('training_date').notNullable().comment('교육 날짜'); + table.time('training_start_time').notNullable().comment('교육 시작 시간'); + table.time('training_end_time').nullable().comment('교육 종료 시간'); + + // 교육 내용 + table.text('training_topics').nullable().comment('교육 내용 (JSON 배열)'); + + // 서명 데이터 (Base64 이미지) + table.text('signature_data', 'longtext').nullable().comment('교육 이수자 서명 (Base64 PNG)'); + + // 완료 정보 + table.timestamp('completed_at').nullable().comment('교육 완료 시간'); + + // 타임스탬프 + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + // 외래키 + table.foreign('request_id') + .references('request_id') + .inTable('workplace_visit_requests') + .onDelete('CASCADE') + .onUpdate('CASCADE'); + + table.foreign('trainer_id') + .references('user_id') + .inTable('users') + .onDelete('RESTRICT') + .onUpdate('CASCADE'); + + // 인덱스 + table.index('training_date', 'idx_training_date'); + table.index('request_id', 'idx_request_id'); + }); + + console.log('✅ 출입 신청 및 안전교육 시스템 테이블 생성 완료'); +}; + +exports.down = async function(knex) { + // 역순으로 테이블 삭제 + await knex.schema.dropTableIfExists('safety_training_records'); + await knex.schema.dropTableIfExists('workplace_visit_requests'); + await knex.schema.dropTableIfExists('visit_purpose_types'); + + console.log('✅ 출입 신청 및 안전교육 시스템 테이블 삭제 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129010001_register_visit_pages.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129010001_register_visit_pages.js new file mode 100644 index 0000000..6721083 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260129010001_register_visit_pages.js @@ -0,0 +1,50 @@ +/** + * 마이그레이션: 출입 신청 및 안전관리 페이지 등록 + */ + +exports.up = async function(knex) { + // 1. 출입 신청 페이지 등록 + await knex('pages').insert({ + page_key: 'visit-request', + page_name: '출입 신청', + page_path: '/pages/work/visit-request.html', + category: 'work', + description: '작업장 출입 신청 및 안전교육 신청', + is_admin_only: 0, + display_order: 15 + }); + + // 2. 안전관리 대시보드 페이지 등록 + await knex('pages').insert({ + page_key: 'safety-management', + page_name: '안전관리', + page_path: '/pages/admin/safety-management.html', + category: 'admin', + description: '출입 신청 승인 및 안전교육 관리', + is_admin_only: 0, + display_order: 60 + }); + + // 3. 안전교육 진행 페이지 등록 + await knex('pages').insert({ + page_key: 'safety-training-conduct', + page_name: '안전교육 진행', + page_path: '/pages/admin/safety-training-conduct.html', + category: 'admin', + description: '안전교육 실시 및 서명 관리', + is_admin_only: 0, + display_order: 61 + }); + + console.log('✅ 출입 신청 및 안전관리 페이지 등록 완료'); +}; + +exports.down = async function(knex) { + await knex('pages').whereIn('page_key', [ + 'visit-request', + 'safety-management', + 'safety-training-conduct' + ]).delete(); + + console.log('✅ 출입 신청 및 안전관리 페이지 삭제 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260130000001_create_work_issue_system.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260130000001_create_work_issue_system.js new file mode 100644 index 0000000..73af1b1 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260130000001_create_work_issue_system.js @@ -0,0 +1,266 @@ +/** + * 마이그레이션: 작업 중 문제 신고 시스템 + * - 신고 카테고리 테이블 (부적합/안전) + * - 사전 정의 신고 항목 테이블 + * - 문제 신고 메인 테이블 + * - 상태 변경 이력 테이블 + */ + +exports.up = async function(knex) { + // 1. 신고 카테고리 테이블 생성 + await knex.schema.createTable('issue_report_categories', function(table) { + table.increments('category_id').primary().comment('카테고리 ID'); + table.enum('category_type', ['nonconformity', 'safety']).notNullable().comment('카테고리 유형 (부적합/안전)'); + table.string('category_name', 100).notNullable().comment('카테고리명'); + table.text('description').nullable().comment('카테고리 설명'); + table.integer('display_order').defaultTo(0).comment('표시 순서'); + table.boolean('is_active').defaultTo(true).comment('활성 여부'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + + table.index('category_type', 'idx_irc_category_type'); + table.index('is_active', 'idx_irc_is_active'); + }); + + // 카테고리 초기 데이터 삽입 + await knex('issue_report_categories').insert([ + // 부적합 사항 + { category_type: 'nonconformity', category_name: '자재누락', display_order: 1, is_active: true }, + { category_type: 'nonconformity', category_name: '설계미스', display_order: 2, is_active: true }, + { category_type: 'nonconformity', category_name: '입고불량', display_order: 3, is_active: true }, + { category_type: 'nonconformity', category_name: '검사미스', display_order: 4, is_active: true }, + { category_type: 'nonconformity', category_name: '기타 부적합', display_order: 99, is_active: true }, + // 안전 관련 + { category_type: 'safety', category_name: '보호구 미착용', display_order: 1, is_active: true }, + { category_type: 'safety', category_name: '위험구역 출입', display_order: 2, is_active: true }, + { category_type: 'safety', category_name: '안전시설 파손', display_order: 3, is_active: true }, + { category_type: 'safety', category_name: '안전수칙 위반', display_order: 4, is_active: true }, + { category_type: 'safety', category_name: '기타 안전', display_order: 99, is_active: true } + ]); + + // 2. 사전 정의 신고 항목 테이블 생성 + await knex.schema.createTable('issue_report_items', function(table) { + table.increments('item_id').primary().comment('항목 ID'); + table.integer('category_id').unsigned().notNullable().comment('소속 카테고리 ID'); + table.string('item_name', 200).notNullable().comment('신고 항목명'); + table.text('description').nullable().comment('항목 설명'); + table.enum('severity', ['low', 'medium', 'high', 'critical']).defaultTo('medium').comment('심각도'); + table.integer('display_order').defaultTo(0).comment('표시 순서'); + table.boolean('is_active').defaultTo(true).comment('활성 여부'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + + table.foreign('category_id') + .references('category_id') + .inTable('issue_report_categories') + .onDelete('CASCADE') + .onUpdate('CASCADE'); + + table.index('category_id', 'idx_iri_category_id'); + table.index('is_active', 'idx_iri_is_active'); + }); + + // 사전 정의 항목 초기 데이터 삽입 + await knex('issue_report_items').insert([ + // 자재누락 (category_id: 1) + { category_id: 1, item_name: '배관 자재 미입고', severity: 'high', display_order: 1 }, + { category_id: 1, item_name: '피팅류 부족', severity: 'medium', display_order: 2 }, + { category_id: 1, item_name: '밸브류 미입고', severity: 'high', display_order: 3 }, + { category_id: 1, item_name: '가스켓/볼트류 부족', severity: 'low', display_order: 4 }, + { category_id: 1, item_name: '서포트 자재 부족', severity: 'medium', display_order: 5 }, + + // 설계미스 (category_id: 2) + { category_id: 2, item_name: '도면 치수 오류', severity: 'high', display_order: 1 }, + { category_id: 2, item_name: '스펙 불일치', severity: 'high', display_order: 2 }, + { category_id: 2, item_name: '누락된 상세도', severity: 'medium', display_order: 3 }, + { category_id: 2, item_name: '간섭 발생', severity: 'critical', display_order: 4 }, + + // 입고불량 (category_id: 3) + { category_id: 3, item_name: '외관 불량', severity: 'medium', display_order: 1 }, + { category_id: 3, item_name: '치수 불량', severity: 'high', display_order: 2 }, + { category_id: 3, item_name: '수량 부족', severity: 'medium', display_order: 3 }, + { category_id: 3, item_name: '재질 불일치', severity: 'critical', display_order: 4 }, + + // 검사미스 (category_id: 4) + { category_id: 4, item_name: '치수 검사 누락', severity: 'high', display_order: 1 }, + { category_id: 4, item_name: '외관 검사 누락', severity: 'medium', display_order: 2 }, + { category_id: 4, item_name: '용접 검사 누락', severity: 'critical', display_order: 3 }, + { category_id: 4, item_name: '도장 검사 누락', severity: 'medium', display_order: 4 }, + + // 보호구 미착용 (category_id: 6) + { category_id: 6, item_name: '안전모 미착용', severity: 'high', display_order: 1 }, + { category_id: 6, item_name: '안전화 미착용', severity: 'high', display_order: 2 }, + { category_id: 6, item_name: '보안경 미착용', severity: 'medium', display_order: 3 }, + { category_id: 6, item_name: '안전대 미착용', severity: 'critical', display_order: 4 }, + { category_id: 6, item_name: '귀마개 미착용', severity: 'low', display_order: 5 }, + { category_id: 6, item_name: '안전장갑 미착용', severity: 'medium', display_order: 6 }, + + // 위험구역 출입 (category_id: 7) + { category_id: 7, item_name: '통제구역 무단 출입', severity: 'critical', display_order: 1 }, + { category_id: 7, item_name: '고소 작업 구역 무단 출입', severity: 'critical', display_order: 2 }, + { category_id: 7, item_name: '밀폐공간 무단 진입', severity: 'critical', display_order: 3 }, + { category_id: 7, item_name: '장비 가동 구역 무단 접근', severity: 'high', display_order: 4 }, + + // 안전시설 파손 (category_id: 8) + { category_id: 8, item_name: '안전난간 파손', severity: 'high', display_order: 1 }, + { category_id: 8, item_name: '경고 표지판 훼손', severity: 'medium', display_order: 2 }, + { category_id: 8, item_name: '안전망 파손', severity: 'high', display_order: 3 }, + { category_id: 8, item_name: '비상조명 고장', severity: 'medium', display_order: 4 }, + { category_id: 8, item_name: '소화설비 파손', severity: 'critical', display_order: 5 }, + + // 안전수칙 위반 (category_id: 9) + { category_id: 9, item_name: '지정 통로 미사용', severity: 'medium', display_order: 1 }, + { category_id: 9, item_name: '고소 작업 안전 미준수', severity: 'critical', display_order: 2 }, + { category_id: 9, item_name: '화기 작업 절차 미준수', severity: 'critical', display_order: 3 }, + { category_id: 9, item_name: '정리정돈 미흡', severity: 'low', display_order: 4 }, + { category_id: 9, item_name: '장비 조작 절차 미준수', severity: 'high', display_order: 5 } + ]); + + // 3. 문제 신고 메인 테이블 생성 + await knex.schema.createTable('work_issue_reports', function(table) { + table.increments('report_id').primary().comment('신고 ID'); + + // 신고자 정보 + table.integer('reporter_id').notNullable().comment('신고자 user_id'); + table.datetime('report_date').defaultTo(knex.fn.now()).comment('신고 일시'); + + // 위치 정보 + table.integer('factory_category_id').unsigned().nullable().comment('공장 카테고리 ID (지도 외 위치 시 null)'); + table.integer('workplace_id').unsigned().nullable().comment('작업장 ID (지도 외 위치 시 null)'); + table.string('custom_location', 200).nullable().comment('기타 위치 (지도 외 선택 시)'); + + // 작업 연결 정보 (선택적) + table.integer('tbm_session_id').unsigned().nullable().comment('연결된 TBM 세션'); + table.integer('visit_request_id').unsigned().nullable().comment('연결된 출입 신청'); + + // 신고 내용 + table.integer('issue_category_id').unsigned().notNullable().comment('신고 카테고리 ID'); + table.integer('issue_item_id').unsigned().nullable().comment('사전 정의 신고 항목 ID'); + table.text('additional_description').nullable().comment('추가 설명'); + + // 사진 (최대 5장) + table.string('photo_path1', 255).nullable().comment('사진 1'); + table.string('photo_path2', 255).nullable().comment('사진 2'); + table.string('photo_path3', 255).nullable().comment('사진 3'); + table.string('photo_path4', 255).nullable().comment('사진 4'); + table.string('photo_path5', 255).nullable().comment('사진 5'); + + // 상태 관리 + table.enum('status', ['reported', 'received', 'in_progress', 'completed', 'closed']) + .defaultTo('reported') + .comment('상태: 신고→접수→처리중→완료→종료'); + + // 담당자 배정 + table.string('assigned_department', 100).nullable().comment('담당 부서'); + table.integer('assigned_user_id').nullable().comment('담당자 user_id'); + table.datetime('assigned_at').nullable().comment('배정 일시'); + table.integer('assigned_by').nullable().comment('배정자 user_id'); + + // 처리 정보 + table.text('resolution_notes').nullable().comment('처리 내용'); + table.string('resolution_photo_path1', 255).nullable().comment('처리 완료 사진 1'); + table.string('resolution_photo_path2', 255).nullable().comment('처리 완료 사진 2'); + table.datetime('resolved_at').nullable().comment('처리 완료 일시'); + table.integer('resolved_by').nullable().comment('처리 완료자 user_id'); + + // 수정 이력 (JSON) + table.json('modification_history').nullable().comment('수정 이력 추적'); + + // 타임스탬프 + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + // 외래키 + table.foreign('reporter_id') + .references('user_id') + .inTable('users') + .onDelete('RESTRICT') + .onUpdate('CASCADE'); + + table.foreign('factory_category_id') + .references('category_id') + .inTable('workplace_categories') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + table.foreign('workplace_id') + .references('workplace_id') + .inTable('workplaces') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + table.foreign('issue_category_id') + .references('category_id') + .inTable('issue_report_categories') + .onDelete('RESTRICT') + .onUpdate('CASCADE'); + + table.foreign('issue_item_id') + .references('item_id') + .inTable('issue_report_items') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + table.foreign('assigned_user_id') + .references('user_id') + .inTable('users') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + table.foreign('assigned_by') + .references('user_id') + .inTable('users') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + table.foreign('resolved_by') + .references('user_id') + .inTable('users') + .onDelete('SET NULL') + .onUpdate('CASCADE'); + + // 인덱스 + table.index('reporter_id', 'idx_wir_reporter_id'); + table.index('status', 'idx_wir_status'); + table.index('report_date', 'idx_wir_report_date'); + table.index(['factory_category_id', 'workplace_id'], 'idx_wir_workplace'); + table.index('issue_category_id', 'idx_wir_issue_category'); + table.index('assigned_user_id', 'idx_wir_assigned_user'); + }); + + // 4. 상태 변경 이력 테이블 생성 + await knex.schema.createTable('work_issue_status_logs', function(table) { + table.increments('log_id').primary().comment('로그 ID'); + table.integer('report_id').unsigned().notNullable().comment('신고 ID'); + table.string('previous_status', 50).nullable().comment('이전 상태'); + table.string('new_status', 50).notNullable().comment('새 상태'); + table.integer('changed_by').notNullable().comment('변경자 user_id'); + table.text('change_reason').nullable().comment('변경 사유'); + table.timestamp('changed_at').defaultTo(knex.fn.now()); + + table.foreign('report_id') + .references('report_id') + .inTable('work_issue_reports') + .onDelete('CASCADE') + .onUpdate('CASCADE'); + + table.foreign('changed_by') + .references('user_id') + .inTable('users') + .onDelete('RESTRICT') + .onUpdate('CASCADE'); + + table.index('report_id', 'idx_wisl_report_id'); + table.index('changed_at', 'idx_wisl_changed_at'); + }); + + console.log('작업 중 문제 신고 시스템 테이블 생성 완료'); +}; + +exports.down = async function(knex) { + // 역순으로 테이블 삭제 + await knex.schema.dropTableIfExists('work_issue_status_logs'); + await knex.schema.dropTableIfExists('work_issue_reports'); + await knex.schema.dropTableIfExists('issue_report_items'); + await knex.schema.dropTableIfExists('issue_report_categories'); + + console.log('작업 중 문제 신고 시스템 테이블 삭제 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260130000002_register_issue_pages.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260130000002_register_issue_pages.js new file mode 100644 index 0000000..602e1be --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260130000002_register_issue_pages.js @@ -0,0 +1,50 @@ +/** + * 마이그레이션: 문제 신고 관련 페이지 등록 + */ + +exports.up = async function(knex) { + // 문제 신고 등록 페이지 + await knex('pages').insert({ + page_key: 'issue-report', + page_name: '문제 신고', + page_path: '/pages/work/issue-report.html', + category: 'work', + description: '작업 중 문제(부적합/안전) 신고 등록', + is_admin_only: 0, + display_order: 16 + }); + + // 신고 목록 페이지 + await knex('pages').insert({ + page_key: 'issue-list', + page_name: '신고 목록', + page_path: '/pages/work/issue-list.html', + category: 'work', + description: '문제 신고 목록 조회 및 관리', + is_admin_only: 0, + display_order: 17 + }); + + // 신고 상세 페이지 + await knex('pages').insert({ + page_key: 'issue-detail', + page_name: '신고 상세', + page_path: '/pages/work/issue-detail.html', + category: 'work', + description: '문제 신고 상세 조회', + is_admin_only: 0, + display_order: 18 + }); + + console.log('✅ 문제 신고 페이지 등록 완료'); +}; + +exports.down = async function(knex) { + await knex('pages').whereIn('page_key', [ + 'issue-report', + 'issue-list', + 'issue-detail' + ]).delete(); + + console.log('✅ 문제 신고 페이지 삭제 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260202000001_create_work_report_defects.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260202000001_create_work_report_defects.js new file mode 100644 index 0000000..15d4d84 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260202000001_create_work_report_defects.js @@ -0,0 +1,47 @@ +/** + * 작업보고서 부적합 상세 테이블 마이그레이션 + * + * 기존: error_hours, error_type_id (단일 값) + * 변경: 여러 부적합 원인 + 각 원인별 시간 저장 가능 + */ + +exports.up = function(knex) { + return knex.schema + // 1. work_report_defects 테이블 생성 + .createTable('work_report_defects', function(table) { + table.increments('defect_id').primary(); + table.integer('report_id').notNullable() + .comment('daily_work_reports의 id'); + table.integer('error_type_id').notNullable() + .comment('error_types의 id (부적합 원인)'); + table.decimal('defect_hours', 4, 1).notNullable().defaultTo(0) + .comment('해당 원인의 부적합 시간'); + table.text('note').nullable() + .comment('추가 메모'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + + // 외래키 + table.foreign('report_id').references('id').inTable('daily_work_reports').onDelete('CASCADE'); + table.foreign('error_type_id').references('id').inTable('error_types'); + + // 인덱스 + table.index('report_id'); + table.index('error_type_id'); + + // 같은 보고서에 같은 원인이 중복되지 않도록 + table.unique(['report_id', 'error_type_id']); + }) + // 2. 기존 데이터 마이그레이션 (error_hours > 0인 경우) + .then(function() { + return knex.raw(` + INSERT INTO work_report_defects (report_id, error_type_id, defect_hours, created_at) + SELECT id, error_type_id, error_hours, created_at + FROM daily_work_reports + WHERE error_hours > 0 AND error_type_id IS NOT NULL + `); + }); +}; + +exports.down = function(knex) { + return knex.schema.dropTableIfExists('work_report_defects'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260202100000_expand_safety_checklist.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260202100000_expand_safety_checklist.js new file mode 100644 index 0000000..62d303d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260202100000_expand_safety_checklist.js @@ -0,0 +1,141 @@ +/** + * 안전 체크리스트 확장 마이그레이션 + * + * 1. tbm_safety_checks 테이블 확장 (check_type, weather_condition, task_id) + * 2. weather_conditions 테이블 생성 (날씨 조건 코드) + * 3. tbm_weather_records 테이블 생성 (세션별 날씨 기록) + * 4. 초기 날씨별 체크항목 데이터 + * + * @since 2026-02-02 + */ + +exports.up = function(knex) { + return knex.schema + // 1. tbm_safety_checks 테이블 확장 + .alterTable('tbm_safety_checks', function(table) { + table.enum('check_type', ['basic', 'weather', 'task']).defaultTo('basic').after('check_category'); + table.string('weather_condition', 50).nullable().after('check_type'); + table.integer('task_id').unsigned().nullable().after('weather_condition'); + + // 인덱스 추가 + table.index('check_type'); + table.index('weather_condition'); + table.index('task_id'); + }) + + // 2. weather_conditions 테이블 생성 + .createTable('weather_conditions', function(table) { + table.string('condition_code', 50).primary(); + table.string('condition_name', 100).notNullable(); + table.text('description').nullable(); + table.string('icon', 50).nullable(); + table.decimal('temp_threshold_min', 4, 1).nullable(); // 최소 기온 기준 + table.decimal('temp_threshold_max', 4, 1).nullable(); // 최대 기온 기준 + table.decimal('wind_threshold', 4, 1).nullable(); // 풍속 기준 (m/s) + table.decimal('precip_threshold', 5, 1).nullable(); // 강수량 기준 (mm) + table.boolean('is_active').defaultTo(true); + table.integer('display_order').defaultTo(0); + table.timestamp('created_at').defaultTo(knex.fn.now()); + }) + + // 3. tbm_weather_records 테이블 생성 + .createTable('tbm_weather_records', function(table) { + table.increments('record_id').primary(); + table.integer('session_id').unsigned().notNullable(); + table.date('weather_date').notNullable(); + table.decimal('temperature', 4, 1).nullable(); // 기온 (섭씨) + table.integer('humidity').nullable(); // 습도 (%) + table.decimal('wind_speed', 4, 1).nullable(); // 풍속 (m/s) + table.decimal('precipitation', 5, 1).nullable(); // 강수량 (mm) + table.string('sky_condition', 50).nullable(); // 하늘 상태 + table.string('weather_condition', 50).nullable(); // 주요 날씨 상태 + table.json('weather_conditions').nullable(); // 복수 조건 ['rain', 'wind'] + table.string('data_source', 50).defaultTo('api'); // 데이터 출처 + table.timestamp('fetched_at').nullable(); + table.timestamp('created_at').defaultTo(knex.fn.now()); + + // 외래키 + table.foreign('session_id').references('session_id').inTable('tbm_sessions').onDelete('CASCADE'); + + // 인덱스 + table.index('weather_date'); + table.unique(['session_id']); + }) + + // 4. 초기 데이터 삽입 + .then(function() { + // 기존 체크항목을 'basic' 유형으로 업데이트 + return knex('tbm_safety_checks').update({ check_type: 'basic' }); + }) + .then(function() { + // 날씨 조건 코드 삽입 + return knex('weather_conditions').insert([ + { condition_code: 'clear', condition_name: '맑음', description: '맑은 날씨', icon: 'sunny', display_order: 1 }, + { condition_code: 'rain', condition_name: '비', description: '비 오는 날씨', icon: 'rainy', precip_threshold: 0.1, display_order: 2 }, + { condition_code: 'snow', condition_name: '눈', description: '눈 오는 날씨', icon: 'snowy', display_order: 3 }, + { condition_code: 'heat', condition_name: '폭염', description: '기온 35도 이상', icon: 'hot', temp_threshold_min: 35, display_order: 4 }, + { condition_code: 'cold', condition_name: '한파', description: '기온 영하 10도 이하', icon: 'cold', temp_threshold_max: -10, display_order: 5 }, + { condition_code: 'wind', condition_name: '강풍', description: '풍속 10m/s 이상', icon: 'windy', wind_threshold: 10, display_order: 6 }, + { condition_code: 'fog', condition_name: '안개', description: '시정 1km 미만', icon: 'foggy', display_order: 7 }, + { condition_code: 'dust', condition_name: '미세먼지', description: '미세먼지 나쁨 이상', icon: 'dusty', display_order: 8 } + ]); + }) + .then(function() { + // 날씨별 안전 체크항목 삽입 + return knex('tbm_safety_checks').insert([ + // 비 (rain) + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'rain', check_item: '우의/우산 준비 확인', description: '비 오는 날 우의 또는 우산 준비 여부', is_required: true, display_order: 1 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'rain', check_item: '미끄럼 방지 조치 확인', description: '빗물로 인한 미끄러움 방지 조치', is_required: true, display_order: 2 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'rain', check_item: '전기 작업 중단 여부 확인', description: '우천 시 전기 작업 중단 필요성 확인', is_required: true, display_order: 3 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'rain', check_item: '배수 상태 확인', description: '작업장 배수 상태 점검', is_required: false, display_order: 4 }, + + // 눈 (snow) + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'snow', check_item: '제설 작업 완료 확인', description: '작업장 주변 제설 작업 완료 여부', is_required: true, display_order: 1 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'snow', check_item: '동파 방지 조치 확인', description: '배관 및 설비 동파 방지 조치', is_required: true, display_order: 2 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'snow', check_item: '미끄럼 방지 모래/염화칼슘 비치', description: '미끄럼 방지를 위한 모래 또는 염화칼슘 비치', is_required: true, display_order: 3 }, + + // 폭염 (heat) + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'heat', check_item: '그늘막/휴게소 확보', description: '무더위 휴식을 위한 그늘막 또는 휴게소 확보', is_required: true, display_order: 1 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'heat', check_item: '음료수/식염 포도당 비치', description: '열사병 예방을 위한 음료수 및 염분 보충제 비치', is_required: true, display_order: 2 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'heat', check_item: '무더위 휴식 시간 확보', description: '10~15시 사이 충분한 휴식 시간 확보', is_required: true, display_order: 3 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'heat', check_item: '작업자 건강 상태 확인', description: '열사병 증상 체크 및 건강 상태 확인', is_required: true, display_order: 4 }, + + // 한파 (cold) + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'cold', check_item: '방한복/방한장갑 착용 확인', description: '동상 방지를 위한 방한복 및 방한장갑 착용', is_required: true, display_order: 1 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'cold', check_item: '난방시설 가동 확인', description: '휴게 공간 난방시설 가동 상태 확인', is_required: true, display_order: 2 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'cold', check_item: '온열 음료 비치', description: '체온 유지를 위한 따뜻한 음료 비치', is_required: false, display_order: 3 }, + + // 강풍 (wind) + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'wind', check_item: '고소 작업 중단 여부 확인', description: '강풍 시 고소 작업 중단 필요성 확인', is_required: true, display_order: 1 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'wind', check_item: '자재/장비 결박 확인', description: '바람에 날릴 수 있는 자재 및 장비 고정', is_required: true, display_order: 2 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'wind', check_item: '가설물 안전 점검', description: '가설 구조물 및 비계 안전 상태 점검', is_required: true, display_order: 3 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'wind', check_item: '크레인 작업 중단 여부 확인', description: '강풍 시 크레인 작업 중단 필요성 확인', is_required: true, display_order: 4 }, + + // 안개 (fog) + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'fog', check_item: '경광등/조명 확보', description: '시정 확보를 위한 경광등 및 조명 설치', is_required: true, display_order: 1 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'fog', check_item: '차량 운행 주의 안내', description: '안개로 인한 차량 운행 주의 안내', is_required: true, display_order: 2 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'fog', check_item: '작업 구역 표시 강화', description: '시인성 확보를 위한 작업 구역 표시 강화', is_required: false, display_order: 3 }, + + // 미세먼지 (dust) + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'dust', check_item: '보호 마스크 착용 확인', description: 'KF94 이상 마스크 착용 여부 확인', is_required: true, display_order: 1 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'dust', check_item: '실외 작업 시간 조정', description: '미세먼지 농도에 따른 실외 작업 시간 조정', is_required: true, display_order: 2 }, + { check_category: 'WEATHER', check_type: 'weather', weather_condition: 'dust', check_item: '호흡기 질환자 실내 배치', description: '호흡기 질환 작업자 실내 작업 배치', is_required: false, display_order: 3 } + ]); + }); +}; + +exports.down = function(knex) { + return knex.schema + .dropTableIfExists('tbm_weather_records') + .dropTableIfExists('weather_conditions') + .then(function() { + return knex.schema.alterTable('tbm_safety_checks', function(table) { + table.dropIndex('check_type'); + table.dropIndex('weather_condition'); + table.dropIndex('task_id'); + table.dropColumn('check_type'); + table.dropColumn('weather_condition'); + table.dropColumn('task_id'); + }); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260202200000_reorganize_pages.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260202200000_reorganize_pages.js new file mode 100644 index 0000000..df21ca4 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260202200000_reorganize_pages.js @@ -0,0 +1,319 @@ +/** + * 페이지 구조 재구성 마이그레이션 + * - 페이지 경로 업데이트 (safety/, attendance/ 폴더로 이동) + * - 카테고리 재분류 + * - 역할별 기본 페이지 권한 테이블 생성 + */ + +exports.up = async function(knex) { + // 1. 페이지 경로 업데이트 - safety 폴더로 이동된 페이지들 + const safetyPageUpdates = [ + { + old_key: 'issue-report', + new_key: 'safety.issue_report', + new_path: '/pages/safety/issue-report.html', + new_category: 'safety', + new_name: '이슈 신고' + }, + { + old_key: 'issue-list', + new_key: 'safety.issue_list', + new_path: '/pages/safety/issue-list.html', + new_category: 'safety', + new_name: '이슈 목록' + }, + { + old_key: 'issue-detail', + new_key: 'safety.issue_detail', + new_path: '/pages/safety/issue-detail.html', + new_category: 'safety', + new_name: '이슈 상세' + }, + { + old_key: 'visit-request', + new_key: 'safety.visit_request', + new_path: '/pages/safety/visit-request.html', + new_category: 'safety', + new_name: '방문 요청' + }, + { + old_key: 'safety-management', + new_key: 'safety.management', + new_path: '/pages/safety/management.html', + new_category: 'safety', + new_name: '안전 관리' + }, + { + old_key: 'safety-training-conduct', + new_key: 'safety.training_conduct', + new_path: '/pages/safety/training-conduct.html', + new_category: 'safety', + new_name: '안전교육 진행' + } + ]; + + // 2. 페이지 경로 업데이트 - attendance 폴더로 이동된 페이지들 + const attendancePageUpdates = [ + { + old_key: 'daily-attendance', + new_key: 'attendance.daily', + new_path: '/pages/attendance/daily.html', + new_category: 'attendance', + new_name: '일일 출퇴근' + }, + { + old_key: 'monthly-attendance', + new_key: 'attendance.monthly', + new_path: '/pages/attendance/monthly.html', + new_category: 'attendance', + new_name: '월간 근태' + }, + { + old_key: 'annual-vacation-overview', + new_key: 'attendance.annual_overview', + new_path: '/pages/attendance/annual-overview.html', + new_category: 'attendance', + new_name: '연간 휴가 현황' + }, + { + old_key: 'vacation-request', + new_key: 'attendance.vacation_request', + new_path: '/pages/attendance/vacation-request.html', + new_category: 'attendance', + new_name: '휴가 신청' + }, + { + old_key: 'vacation-management', + new_key: 'attendance.vacation_management', + new_path: '/pages/attendance/vacation-management.html', + new_category: 'attendance', + new_name: '휴가 관리' + }, + { + old_key: 'vacation-allocation', + new_key: 'attendance.vacation_allocation', + new_path: '/pages/attendance/vacation-allocation.html', + new_category: 'attendance', + new_name: '휴가 발생 입력' + } + ]; + + // 3. admin 폴더 내 파일명 변경 + const adminPageUpdates = [ + { + old_key: 'attendance-report-comparison', + new_key: 'admin.attendance_report', + new_path: '/pages/admin/attendance-report.html', + new_category: 'admin', + new_name: '출퇴근-보고서 대조' + } + ]; + + // 모든 업데이트 실행 + const allUpdates = [...safetyPageUpdates, ...attendancePageUpdates, ...adminPageUpdates]; + + for (const update of allUpdates) { + await knex('pages') + .where('page_key', update.old_key) + .update({ + page_key: update.new_key, + page_path: update.new_path, + category: update.new_category, + page_name: update.new_name + }); + } + + // 4. 안전 체크리스트 관리 페이지 추가 (새로 생성된 페이지) + const existingChecklistPage = await knex('pages') + .where('page_key', 'safety.checklist_manage') + .orWhere('page_key', 'safety-checklist-manage') + .first(); + + if (!existingChecklistPage) { + await knex('pages').insert({ + page_key: 'safety.checklist_manage', + page_name: '안전 체크리스트 관리', + page_path: '/pages/safety/checklist-manage.html', + category: 'safety', + description: '안전 체크리스트 항목 관리', + is_admin_only: 1, + display_order: 50 + }); + } + + // 5. 휴가 승인/직접입력 페이지 추가 (새로 생성된 페이지인 경우) + const vacationPages = [ + { + page_key: 'attendance.vacation_approval', + page_name: '휴가 승인 관리', + page_path: '/pages/attendance/vacation-approval.html', + category: 'attendance', + description: '휴가 신청 승인/거부', + is_admin_only: 1, + display_order: 65 + }, + { + page_key: 'attendance.vacation_input', + page_name: '휴가 직접 입력', + page_path: '/pages/attendance/vacation-input.html', + category: 'attendance', + description: '관리자 휴가 직접 입력', + is_admin_only: 1, + display_order: 66 + } + ]; + + for (const page of vacationPages) { + const existing = await knex('pages').where('page_key', page.page_key).first(); + if (!existing) { + await knex('pages').insert(page); + } + } + + // 6. role_default_pages 테이블 생성 (역할별 기본 페이지 권한) + const tableExists = await knex.schema.hasTable('role_default_pages'); + if (!tableExists) { + await knex.schema.createTable('role_default_pages', (table) => { + table.integer('role_id').unsigned().notNullable() + .references('id').inTable('roles').onDelete('CASCADE'); + table.integer('page_id').unsigned().notNullable() + .references('id').inTable('pages').onDelete('CASCADE'); + table.primary(['role_id', 'page_id']); + table.timestamps(true, true); + }); + } + + // 7. 기본 역할-페이지 매핑 데이터 삽입 + // 역할 조회 + const roles = await knex('roles').select('id', 'name'); + const pages = await knex('pages').select('id', 'page_key', 'category'); + + const roleMap = {}; + roles.forEach(r => { roleMap[r.name] = r.id; }); + + const pageMap = {}; + pages.forEach(p => { pageMap[p.page_key] = p.id; }); + + // Worker 역할 기본 페이지 (대시보드, 작업보고서, 휴가신청) + const workerPages = [ + 'dashboard', + 'work.report_create', + 'work.report_view', + 'attendance.vacation_request' + ]; + + // Leader 역할 기본 페이지 (Worker + TBM, 안전, 근태 일부) + const leaderPages = [ + ...workerPages, + 'work.tbm', + 'work.analysis', + 'safety.issue_report', + 'safety.issue_list', + 'attendance.daily', + 'attendance.monthly' + ]; + + // SafetyManager 역할 기본 페이지 (Leader + 안전 전체) + const safetyManagerPages = [ + ...leaderPages, + 'safety.issue_detail', + 'safety.visit_request', + 'safety.management', + 'safety.training_conduct', + 'safety.checklist_manage' + ]; + + // 역할별 페이지 매핑 삽입 + const rolePageMappings = []; + + if (roleMap['Worker']) { + workerPages.forEach(pageKey => { + if (pageMap[pageKey]) { + rolePageMappings.push({ role_id: roleMap['Worker'], page_id: pageMap[pageKey] }); + } + }); + } + + if (roleMap['Leader']) { + leaderPages.forEach(pageKey => { + if (pageMap[pageKey]) { + rolePageMappings.push({ role_id: roleMap['Leader'], page_id: pageMap[pageKey] }); + } + }); + } + + if (roleMap['SafetyManager']) { + safetyManagerPages.forEach(pageKey => { + if (pageMap[pageKey]) { + rolePageMappings.push({ role_id: roleMap['SafetyManager'], page_id: pageMap[pageKey] }); + } + }); + } + + // 중복 제거 후 삽입 + for (const mapping of rolePageMappings) { + const existing = await knex('role_default_pages') + .where('role_id', mapping.role_id) + .where('page_id', mapping.page_id) + .first(); + + if (!existing) { + await knex('role_default_pages').insert(mapping); + } + } + + console.log('페이지 구조 재구성 완료'); + console.log(`- 업데이트된 페이지: ${allUpdates.length}개`); + console.log(`- 역할별 기본 페이지 매핑: ${rolePageMappings.length}개`); +}; + +exports.down = async function(knex) { + // 1. role_default_pages 테이블 삭제 + await knex.schema.dropTableIfExists('role_default_pages'); + + // 2. 페이지 경로 원복 - safety → work/admin + const safetyRevert = [ + { new_key: 'safety.issue_report', old_key: 'issue-report', old_path: '/pages/work/issue-report.html', old_category: 'work' }, + { new_key: 'safety.issue_list', old_key: 'issue-list', old_path: '/pages/work/issue-list.html', old_category: 'work' }, + { new_key: 'safety.issue_detail', old_key: 'issue-detail', old_path: '/pages/work/issue-detail.html', old_category: 'work' }, + { new_key: 'safety.visit_request', old_key: 'visit-request', old_path: '/pages/work/visit-request.html', old_category: 'work' }, + { new_key: 'safety.management', old_key: 'safety-management', old_path: '/pages/admin/safety-management.html', old_category: 'admin' }, + { new_key: 'safety.training_conduct', old_key: 'safety-training-conduct', old_path: '/pages/admin/safety-training-conduct.html', old_category: 'admin' }, + ]; + + // 3. 페이지 경로 원복 - attendance → common + const attendanceRevert = [ + { new_key: 'attendance.daily', old_key: 'daily-attendance', old_path: '/pages/common/daily-attendance.html', old_category: 'common' }, + { new_key: 'attendance.monthly', old_key: 'monthly-attendance', old_path: '/pages/common/monthly-attendance.html', old_category: 'common' }, + { new_key: 'attendance.annual_overview', old_key: 'annual-vacation-overview', old_path: '/pages/common/annual-vacation-overview.html', old_category: 'common' }, + { new_key: 'attendance.vacation_request', old_key: 'vacation-request', old_path: '/pages/common/vacation-request.html', old_category: 'common' }, + { new_key: 'attendance.vacation_management', old_key: 'vacation-management', old_path: '/pages/common/vacation-management.html', old_category: 'common' }, + { new_key: 'attendance.vacation_allocation', old_key: 'vacation-allocation', old_path: '/pages/common/vacation-allocation.html', old_category: 'common' }, + ]; + + // 4. admin 파일명 원복 + const adminRevert = [ + { new_key: 'admin.attendance_report', old_key: 'attendance-report-comparison', old_path: '/pages/admin/attendance-report-comparison.html', old_category: 'admin' } + ]; + + const allReverts = [...safetyRevert, ...attendanceRevert, ...adminRevert]; + + for (const revert of allReverts) { + await knex('pages') + .where('page_key', revert.new_key) + .update({ + page_key: revert.old_key, + page_path: revert.old_path, + category: revert.old_category + }); + } + + // 5. 새로 추가된 페이지 삭제 + await knex('pages').whereIn('page_key', [ + 'safety.checklist_manage', + 'attendance.vacation_approval', + 'attendance.vacation_input' + ]).del(); + + console.log('페이지 구조 재구성 롤백 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260203090000_add_category_to_defects.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260203090000_add_category_to_defects.js new file mode 100644 index 0000000..5ff74af --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260203090000_add_category_to_defects.js @@ -0,0 +1,43 @@ +/** + * 작업보고서 부적합에 카테고리/아이템 컬럼 추가 + * + * 변경사항: + * 1. work_report_defects 테이블에 category_id, item_id 컬럼 추가 + * 2. issue_report_categories, issue_report_items 테이블 참조 + */ + +exports.up = function(knex) { + return knex.schema + .alterTable('work_report_defects', function(table) { + // 카테고리 ID 추가 + table.integer('category_id').unsigned().nullable() + .comment('issue_report_categories의 category_id (직접 입력 시)') + .after('issue_report_id'); + + // 아이템 ID 추가 + table.integer('item_id').unsigned().nullable() + .comment('issue_report_items의 item_id (직접 입력 시)') + .after('category_id'); + + // 외래키 추가 + table.foreign('category_id') + .references('category_id') + .inTable('issue_report_categories') + .onDelete('SET NULL'); + + table.foreign('item_id') + .references('item_id') + .inTable('issue_report_items') + .onDelete('SET NULL'); + }); +}; + +exports.down = function(knex) { + return knex.schema + .alterTable('work_report_defects', function(table) { + table.dropForeign('category_id'); + table.dropForeign('item_id'); + table.dropColumn('category_id'); + table.dropColumn('item_id'); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260203100000_link_defects_to_issues.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260203100000_link_defects_to_issues.js new file mode 100644 index 0000000..e89e476 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260203100000_link_defects_to_issues.js @@ -0,0 +1,85 @@ +/** + * 작업보고서 부적합을 신고 시스템과 연동 + * + * 변경사항: + * 1. work_report_defects 테이블에 issue_report_id 컬럼 추가 + * 2. error_type_id를 NULL 허용으로 변경 (신고 연동 시 불필요) + * 3. work_issue_reports.report_id (unsigned int)와 타입 일치 필요 + */ + +exports.up = function(knex) { + return knex.schema + .alterTable('work_report_defects', function(table) { + // 1. issue_report_id 컬럼 추가 (unsigned int로 work_issue_reports.report_id와 타입 일치) + table.integer('issue_report_id').unsigned().nullable() + .comment('work_issue_reports의 report_id (신고된 이슈 연결)') + .after('error_type_id'); + + // 2. 외래키 추가 (work_issue_reports.report_id 참조) + table.foreign('issue_report_id') + .references('report_id') + .inTable('work_issue_reports') + .onDelete('SET NULL'); + + // 3. 인덱스 추가 + table.index('issue_report_id'); + }) + // 4. error_type_id를 NULL 허용으로 변경 + .then(function() { + return knex.raw(` + ALTER TABLE work_report_defects + MODIFY COLUMN error_type_id INT NULL + COMMENT 'error_types의 id (부적합 원인) - 레거시, issue_report_id 사용 권장' + `); + }) + // 5. 유니크 제약 수정 (issue_report_id도 고려) + .then(function() { + // 기존 유니크 제약 삭제 + return knex.raw(` + ALTER TABLE work_report_defects + DROP INDEX work_report_defects_report_id_error_type_id_unique + `).catch(() => { + // 인덱스가 없을 수 있음 - 무시 + }); + }) + .then(function() { + // 새 유니크 제약 추가 (report_id + issue_report_id 조합) + return knex.raw(` + ALTER TABLE work_report_defects + ADD UNIQUE INDEX work_report_defects_report_issue_unique (report_id, issue_report_id) + `).catch(() => { + // 이미 존재할 수 있음 - 무시 + }); + }); +}; + +exports.down = function(knex) { + return knex.schema + .alterTable('work_report_defects', function(table) { + // 외래키 및 인덱스 삭제 + table.dropForeign('issue_report_id'); + table.dropIndex('issue_report_id'); + table.dropColumn('issue_report_id'); + }) + // error_type_id를 다시 NOT NULL로 변경 + .then(function() { + return knex.raw(` + ALTER TABLE work_report_defects + MODIFY COLUMN error_type_id INT NOT NULL + COMMENT 'error_types의 id (부적합 원인)' + `); + }) + // 기존 유니크 제약 복원 + .then(function() { + return knex.raw(` + ALTER TABLE work_report_defects + DROP INDEX IF EXISTS work_report_defects_report_issue_unique + `).catch(() => {}); + }) + .then(function() { + return knex.raw(` + ALTER TABLE work_report_defects + ADD UNIQUE INDEX work_report_defects_report_id_error_type_id_unique (report_id, error_type_id) + `).catch(() => {}); + }); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204001000_create_notification_recipients.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204001000_create_notification_recipients.sql new file mode 100644 index 0000000..7c4e5e9 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204001000_create_notification_recipients.sql @@ -0,0 +1,23 @@ +-- 알림 수신자 설정 테이블 +-- 알림 유형별로 지정된 사용자에게만 알림이 전송됨 + +CREATE TABLE IF NOT EXISTS notification_recipients ( + id INT AUTO_INCREMENT PRIMARY KEY, + notification_type ENUM('repair', 'safety', 'nonconformity', 'equipment', 'maintenance', 'system') NOT NULL COMMENT '알림 유형', + user_id INT NOT NULL COMMENT '수신자 ID', + is_active BOOLEAN DEFAULT TRUE COMMENT '활성 여부', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + created_by INT NULL COMMENT '등록자', + UNIQUE KEY unique_type_user (notification_type, user_id), + FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE, + INDEX idx_nr_type (notification_type), + INDEX idx_nr_active (is_active) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='알림 수신자 설정'; + +-- 알림 유형 설명: +-- repair: 설비 수리 신청 +-- safety: 안전 신고 +-- nonconformity: 부적합 신고 +-- equipment: 설비 관련 +-- maintenance: 정기점검 +-- system: 시스템 알림 diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204100000_add_equipment_purchase_fields.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204100000_add_equipment_purchase_fields.js new file mode 100644 index 0000000..ac79357 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204100000_add_equipment_purchase_fields.js @@ -0,0 +1,35 @@ +/** + * 설비 테이블에 구입처 및 구입가격 컬럼 추가 + * + * @author TK-FB-Project + * @since 2026-02-04 + */ + +exports.up = async function(knex) { + // 컬럼 존재 여부 확인 + const hasSupplier = await knex.schema.hasColumn('equipments', 'supplier'); + const hasPurchasePrice = await knex.schema.hasColumn('equipments', 'purchase_price'); + + if (!hasSupplier || !hasPurchasePrice) { + await knex.schema.alterTable('equipments', (table) => { + if (!hasSupplier) { + table.string('supplier', 100).nullable().after('manufacturer').comment('구입처'); + } + if (!hasPurchasePrice) { + table.decimal('purchase_price', 15, 0).nullable().after('supplier').comment('구입가격'); + } + }); + console.log('✅ equipments 테이블에 supplier, purchase_price 컬럼 추가 완료'); + } else { + console.log('ℹ️ supplier, purchase_price 컬럼이 이미 존재합니다. 스킵합니다.'); + } +}; + +exports.down = async function(knex) { + await knex.schema.alterTable('equipments', (table) => { + table.dropColumn('supplier'); + table.dropColumn('purchase_price'); + }); + + console.log('✅ equipments 테이블에서 supplier, purchase_price 컬럼 삭제 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204100000_create_daily_patrol_system.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204100000_create_daily_patrol_system.js new file mode 100644 index 0000000..e5bac4e --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204100000_create_daily_patrol_system.js @@ -0,0 +1,166 @@ +/** + * 마이그레이션: 일일순회점검 시스템 + * 작성일: 2026-02-04 + * + * 생성 테이블: + * - patrol_checklist_items: 순회점검 체크리스트 마스터 + * - daily_patrol_sessions: 순회점검 세션 기록 + * - patrol_check_records: 순회점검 체크 결과 + * - workplace_items: 작업장 물품 현황 (용기, 플레이트 등) + */ + +exports.up = async function(knex) { + console.log('⏳ 일일순회점검 시스템 테이블 생성 중...'); + + // 1. 순회점검 체크리스트 마스터 테이블 + await knex.schema.createTable('patrol_checklist_items', (table) => { + table.increments('item_id').primary(); + table.integer('workplace_id').unsigned().nullable().comment('특정 작업장 전용 (NULL=공통)'); + table.integer('category_id').unsigned().nullable().comment('특정 공장 전용 (NULL=공통)'); + table.string('check_category', 50).notNullable().comment('분류 (안전, 정리정돈, 설비 등)'); + table.string('check_item', 200).notNullable().comment('점검 항목'); + table.text('description').nullable().comment('설명'); + table.integer('display_order').defaultTo(0).comment('표시 순서'); + table.boolean('is_required').defaultTo(true).comment('필수 체크 여부'); + table.boolean('is_active').defaultTo(true).comment('활성 여부'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + table.index('workplace_id'); + table.index('category_id'); + table.index('check_category'); + table.foreign('workplace_id').references('workplaces.workplace_id').onDelete('CASCADE'); + table.foreign('category_id').references('workplace_categories.category_id').onDelete('CASCADE'); + }); + console.log('✅ patrol_checklist_items 테이블 생성 완료'); + + // 초기 순회점검 체크리스트 데이터 + await knex('patrol_checklist_items').insert([ + // 안전 관련 + { check_category: 'SAFETY', check_item: '소화기 상태 확인', display_order: 1, is_required: true }, + { check_category: 'SAFETY', check_item: '비상구 통로 확보 확인', display_order: 2, is_required: true }, + { check_category: 'SAFETY', check_item: '안전표지판 부착 상태', display_order: 3, is_required: true }, + { check_category: 'SAFETY', check_item: '위험물 관리 상태', display_order: 4, is_required: true }, + + // 정리정돈 + { check_category: 'ORGANIZATION', check_item: '작업장 정리정돈 상태', display_order: 10, is_required: true }, + { check_category: 'ORGANIZATION', check_item: '통로 장애물 여부', display_order: 11, is_required: true }, + { check_category: 'ORGANIZATION', check_item: '폐기물 처리 상태', display_order: 12, is_required: true }, + { check_category: 'ORGANIZATION', check_item: '자재 적재 상태', display_order: 13, is_required: true }, + + // 설비 + { check_category: 'EQUIPMENT', check_item: '설비 외관 이상 여부', display_order: 20, is_required: false }, + { check_category: 'EQUIPMENT', check_item: '설비 작동 상태', display_order: 21, is_required: false }, + { check_category: 'EQUIPMENT', check_item: '설비 청결 상태', display_order: 22, is_required: false }, + + // 환경 + { check_category: 'ENVIRONMENT', check_item: '조명 상태', display_order: 30, is_required: true }, + { check_category: 'ENVIRONMENT', check_item: '환기 상태', display_order: 31, is_required: true }, + { check_category: 'ENVIRONMENT', check_item: '누수/누유 여부', display_order: 32, is_required: true }, + ]); + console.log('✅ patrol_checklist_items 초기 데이터 입력 완료'); + + // 2. 순회점검 세션 테이블 + await knex.schema.createTable('daily_patrol_sessions', (table) => { + table.increments('session_id').primary(); + table.date('patrol_date').notNullable().comment('점검 날짜'); + table.enum('patrol_time', ['morning', 'afternoon']).notNullable().comment('점검 시간대'); + table.integer('inspector_id').notNullable().comment('순찰자 user_id'); // signed (users.user_id) + table.integer('category_id').unsigned().nullable().comment('공장 ID'); + table.enum('status', ['in_progress', 'completed']).defaultTo('in_progress').comment('상태'); + table.text('notes').nullable().comment('특이사항'); + table.time('started_at').nullable().comment('점검 시작 시간'); + table.time('completed_at').nullable().comment('점검 완료 시간'); + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + table.unique(['patrol_date', 'patrol_time', 'category_id']); + table.index(['patrol_date', 'patrol_time']); + table.index('inspector_id'); + table.foreign('inspector_id').references('users.user_id'); + table.foreign('category_id').references('workplace_categories.category_id').onDelete('SET NULL'); + }); + console.log('✅ daily_patrol_sessions 테이블 생성 완료'); + + // 3. 순회점검 체크 기록 테이블 + await knex.schema.createTable('patrol_check_records', (table) => { + table.increments('record_id').primary(); + table.integer('session_id').unsigned().notNullable().comment('순회점검 세션 ID'); + table.integer('workplace_id').unsigned().notNullable().comment('작업장 ID'); + table.integer('check_item_id').unsigned().notNullable().comment('체크항목 ID'); + table.boolean('is_checked').defaultTo(false).comment('체크 여부'); + table.enum('check_result', ['good', 'warning', 'bad']).nullable().comment('점검 결과'); + table.text('note').nullable().comment('비고'); + table.timestamp('checked_at').nullable().comment('체크 시간'); + + // 인덱스명 길이 제한으로 인해 수동으로 지정 + table.unique(['session_id', 'workplace_id', 'check_item_id'], 'pcr_session_wp_item_unique'); + table.index(['session_id', 'workplace_id'], 'pcr_session_wp_idx'); + table.foreign('session_id').references('daily_patrol_sessions.session_id').onDelete('CASCADE'); + table.foreign('workplace_id').references('workplaces.workplace_id').onDelete('CASCADE'); + table.foreign('check_item_id').references('patrol_checklist_items.item_id').onDelete('CASCADE'); + }); + console.log('✅ patrol_check_records 테이블 생성 완료'); + + // 4. 작업장 물품 현황 테이블 + await knex.schema.createTable('workplace_items', (table) => { + table.increments('item_id').primary(); + table.integer('workplace_id').unsigned().notNullable().comment('작업장 ID'); + table.integer('patrol_session_id').unsigned().nullable().comment('등록한 순회점검 세션'); + table.integer('project_id').nullable().comment('관련 프로젝트'); // signed (projects.project_id) + table.enum('item_type', ['container', 'plate', 'material', 'tool', 'other']).notNullable().comment('물품 유형'); + table.string('item_name', 100).nullable().comment('물품명/설명'); + table.integer('quantity').defaultTo(1).comment('수량'); + table.decimal('x_percent', 5, 2).nullable().comment('지도상 X 위치 (%)'); + table.decimal('y_percent', 5, 2).nullable().comment('지도상 Y 위치 (%)'); + table.decimal('width_percent', 5, 2).nullable().comment('지도상 너비 (%)'); + table.decimal('height_percent', 5, 2).nullable().comment('지도상 높이 (%)'); + table.boolean('is_active').defaultTo(true).comment('현재 존재 여부'); + table.integer('created_by').notNullable().comment('등록자 user_id'); // signed (users.user_id) + table.timestamp('created_at').defaultTo(knex.fn.now()); + table.integer('updated_by').nullable().comment('최종 수정자 user_id'); // signed (users.user_id) + table.timestamp('updated_at').defaultTo(knex.fn.now()); + + table.index(['workplace_id', 'is_active']); + table.index('project_id'); + table.foreign('workplace_id').references('workplaces.workplace_id').onDelete('CASCADE'); + table.foreign('patrol_session_id').references('daily_patrol_sessions.session_id').onDelete('SET NULL'); + table.foreign('project_id').references('projects.project_id').onDelete('SET NULL'); + table.foreign('created_by').references('users.user_id'); + table.foreign('updated_by').references('users.user_id'); + }); + console.log('✅ workplace_items 테이블 생성 완료'); + + // 물품 유형 코드 테이블 (선택적 확장용) + await knex.schema.createTable('item_types', (table) => { + table.string('type_code', 20).primary(); + table.string('type_name', 50).notNullable().comment('유형명'); + table.string('icon', 10).nullable().comment('아이콘 이모지'); + table.string('color', 20).nullable().comment('표시 색상'); + table.integer('display_order').defaultTo(0); + table.boolean('is_active').defaultTo(true); + }); + + await knex('item_types').insert([ + { type_code: 'container', type_name: '용기', icon: '📦', color: '#3b82f6', display_order: 1 }, + { type_code: 'plate', type_name: '플레이트', icon: '🔲', color: '#10b981', display_order: 2 }, + { type_code: 'material', type_name: '자재', icon: '🧱', color: '#f59e0b', display_order: 3 }, + { type_code: 'tool', type_name: '공구/장비', icon: '🔧', color: '#8b5cf6', display_order: 4 }, + { type_code: 'other', type_name: '기타', icon: '📍', color: '#6b7280', display_order: 5 }, + ]); + console.log('✅ item_types 테이블 생성 및 초기 데이터 완료'); + + console.log('✅ 모든 일일순회점검 시스템 테이블 생성 완료'); +}; + +exports.down = async function(knex) { + console.log('⏳ 일일순회점검 시스템 테이블 제거 중...'); + + await knex.schema.dropTableIfExists('item_types'); + await knex.schema.dropTableIfExists('workplace_items'); + await knex.schema.dropTableIfExists('patrol_check_records'); + await knex.schema.dropTableIfExists('daily_patrol_sessions'); + await knex.schema.dropTableIfExists('patrol_checklist_items'); + + console.log('✅ 모든 일일순회점검 시스템 테이블 제거 완료'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_add_columns.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_add_columns.sql new file mode 100644 index 0000000..53ed1db --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_add_columns.sql @@ -0,0 +1,13 @@ +-- 설비 테이블 컬럼 추가 (phpMyAdmin용) +-- 현재 구조: equipment_id, factory_id, equipment_name, model, status, purchase_date, description, created_at, updated_at + +-- 필요한 컬럼 추가 +ALTER TABLE equipments ADD COLUMN equipment_code VARCHAR(50) NULL COMMENT '관리번호' AFTER equipment_id; +ALTER TABLE equipments ADD COLUMN specifications TEXT NULL COMMENT '규격' AFTER model; +ALTER TABLE equipments ADD COLUMN serial_number VARCHAR(100) NULL COMMENT '시리얼번호(S/N)' AFTER specifications; +ALTER TABLE equipments ADD COLUMN supplier VARCHAR(100) NULL COMMENT '구입처' AFTER purchase_date; +ALTER TABLE equipments ADD COLUMN purchase_price DECIMAL(15, 0) NULL COMMENT '구입가격' AFTER supplier; +ALTER TABLE equipments ADD COLUMN manufacturer VARCHAR(100) NULL COMMENT '제조사(메이커)' AFTER purchase_price; + +-- equipment_code에 유니크 인덱스 추가 +ALTER TABLE equipments ADD UNIQUE INDEX idx_equipment_code (equipment_code); diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_full_setup.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_full_setup.sql new file mode 100644 index 0000000..63b458c --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_full_setup.sql @@ -0,0 +1,138 @@ +-- 설비 관리 전체 설정 스크립트 +-- 1. 새 컬럼 추가 (supplier, purchase_price) +-- 2. 65개 설비 데이터 입력 +-- +-- 실행: mysql -u [user] -p [database] < 20260204_equipment_full_setup.sql + +-- ============================================ +-- STEP 1: 새 컬럼 추가 +-- ============================================ + +-- 컬럼이 이미 존재하는지 확인 후 추가 +SET @dbname = DATABASE(); +SET @tablename = 'equipments'; + +-- supplier 컬럼 추가 +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname +AND table_name = @tablename +AND column_name = 'supplier'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE equipments ADD COLUMN supplier VARCHAR(100) NULL COMMENT ''구입처'' AFTER manufacturer', + 'SELECT ''supplier column already exists'''); +PREPARE stmt FROM @sql; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + +-- purchase_price 컬럼 추가 +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname +AND table_name = @tablename +AND column_name = 'purchase_price'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE equipments ADD COLUMN purchase_price DECIMAL(15, 0) NULL COMMENT ''구입가격'' AFTER supplier', + 'SELECT ''purchase_price column already exists'''); +PREPARE stmt FROM @sql; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + +SELECT '컬럼 추가 완료' AS status; + +-- ============================================ +-- STEP 2: 기존 데이터 삭제 (선택사항) +-- ============================================ +-- 주의: 기존 데이터가 있으면 삭제됩니다 +DELETE FROM equipments WHERE equipment_code LIKE 'TKP-%'; + +-- ============================================ +-- STEP 3: 65개 설비 데이터 입력 +-- ============================================ + +INSERT INTO equipments (equipment_code, equipment_name, model_name, specifications, serial_number, installation_date, supplier, purchase_price, manufacturer, status) VALUES +('TKP-001', 'AIR COMPRESSOR', 'AR10E', '7.5KW(10HP)', 'K603023Y', '2016-06-01', '지티씨', NULL, '경원', 'active'), +('TKP-002', 'TURN TABLE', 'YCT-200T', '220V', NULL, '2016-05-30', '형진종합공구', 3600000, '유체기계', 'active'), +('TKP-003', 'BAND SAW(中)', 'CY300W', '1500W*380V', '20150943', '2016-05-30', '형진종합공구', 4800000, '유림싸이겐', 'active'), +('TKP-004', 'BAND SAW(小)', 'XB-180WA', '180(VICE)', NULL, '2016-05-30', '형진종합공구', 2700000, '렉스', 'active'), +('TKP-005', 'BAND SAW(小)', 'XB-180WA', '180(VICE)', NULL, '2019-05-30', NULL, NULL, '렉스', 'active'), +('TKP-006', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-001', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-007', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-002', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-008', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-003', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-009', 'CO2용접기', 'COD-500A', '500A', '10880', '2016-05-30', '형진종합공구', 2000000, '대성용접기', 'active'), +('TKP-010', 'O2용접기', 'GSORK', '220V', NULL, '2016-05-30', '형진종합공구', 620000, '재현오토닉스', 'active'), +('TKP-011', 'PIPE BEVELLING MACHINE', 'S-200LT_MT(테이블포함)', '2" ~ 8"', 'KR-17030007', '2017-03-29', 'DCS ENG', 12000000, 'DCS ENG', 'active'), +('TKP-012', 'CO2용접기', '500MX', '220/380V,500A', NULL, '2017-08-02', '현대용접기', 1800000, '현대용접기', 'active'), +('TKP-013', '프라즈마', 'Perfect-150AP', '220/380/440V,140A', NULL, '2017-08-02', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-014', '터닝로라', 'JK-5-TR', '5TON/380V', NULL, '2017-09-08', '정일기공', 5700000, '정일기공', 'active'), +('TKP-015', '터닝로라', 'JK-5-TR', '5TON/380V', NULL, '2017-09-08', '정일기공', 5700000, '정일기공', 'active'), +('TKP-016', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-005', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-017', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-006', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-018', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-007', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-019', '전해연마기', 'ONB-8000VP', '220V/MAX1200W', '8022701', '2018-03-13', '오토기전', 1450000, '메탈브라이트(오토기전)', 'active'), +('TKP-020', '지게차', '50DA-9F', '5000KGS', 'HHKHFV36JJ0000061', '2018-05-10', '현대지게차', 45000000, '현대지게차', 'active'), +('TKP-021', '조방', NULL, '3658*12190', NULL, '2018-05-11', '천우기계공업/삼덕금속', 14200000, '테크니컬코리아', 'active'), +('TKP-022', 'BAND SAW(大)', 'WBS-RC500AN', '3,300kgs / 7.88kw', 'BC50A18-005F001', '2018-05-31', '원공사', 36000000, '원공사', 'active'), +('TKP-023', 'AIR COMPRESSOR', 'AR20E', '0.95Mpa', 'AR020FE358', '2018-06-05', '경원기계', NULL, '경원기계', 'active'), +('TKP-024', 'TURN TABLE', 'YCT-200TA', '220V', NULL, '2018-06-12', '청운종합공구', 3245000, '유체기계', 'active'), +('TKP-025', 'TIG용접기', 'Perfect-500WT', '500A/AC DC', 'ADKAC017B-006', '2018-06-12', '현대용접기', 2400000, '퍼펙트대대', 'active'), +('TKP-026', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAI018B-002', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-027', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAA018B-009', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-028', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAA018B-001', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-029', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1806077', '2018-07-06', '청운종합공구', 2300000, '대산', 'active'), +('TKP-030', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1807028', '2018-07-10', '청운종합공구', 2300000, '대산', 'active'), +('TKP-031', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1807029', '2018-07-10', '청운종합공구', 2300000, '대산', 'active'), +('TKP-032', '만능탭 드릴링머신', 'SF-TDM32', '1.5KW', NULL, '2018-11-09', '㈜애스앤애프', 2927000, '㈜애스앤에프', 'active'), +('TKP-033', '지게차', '30D-9B', '2850KGS', 'HHKHHN51KK0000864', '2019-03-06', '현대지게차', 29400000, '현대지게차', 'active'), +('TKP-034', '갠츄리크레인', 'CRANE - DHG', '50/10Ton x SP20M x T/L50M x H15M', NULL, '2019-05-09', '유진산업기계', 249000000, '반도호이스트', 'active'), +('TKP-035', 'OVER HEAD CRANE', 'CRANE - DHO', '20Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 58000000, '반도호이스트', 'active'), +('TKP-036', 'OVER HEAD CRANE', 'CRANE - DHO', '20Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 58000000, '반도호이스트', 'active'), +('TKP-037', 'OVER HEAD CRANE', 'CRANE - DHO', '5Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 29000000, '반도호이스트', 'active'), +('TKP-038', 'OVER HEAD CRANE', 'CRANE - DHO', '5Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 29000000, '반도호이스트', 'active'), +('TKP-039', '고소작업대', NULL, '250 Kg', NULL, '2019-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-040', '고소작업대', NULL, '250 Kg', NULL, '2019-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-041', 'AIR CONDITIONER', '코끼리 냉장고', NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-042', 'AIR CONDITIONER', NULL, NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-043', 'AIR CONDITIONER', NULL, NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-044', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-045', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-046', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-047', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-048', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-049', '자동용접기', NULL, NULL, NULL, '2019-01-01', 'Swage-Lok', 50000000, 'Swage-Lok', 'active'), +('TKP-050', 'Magnetic Drill', NULL, NULL, NULL, '2020-01-01', '청운종합공구', NULL, 'NITTO', 'active'), +('TKP-051', 'Magnetic Drill', NULL, NULL, NULL, '2020-01-01', '청운종합공구', NULL, 'Key-Yang', 'active'), +('TKP-052', 'Tube Bending M/C', NULL, NULL, NULL, '2020-01-01', NULL, NULL, 'REMS', 'active'), +('TKP-053', 'Unit Test Panel', NULL, NULL, NULL, '2021-01-01', NULL, NULL, NULL, 'active'), +('TKP-054', '고소작업대', NULL, '500 Kg', NULL, '2021-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-055', '용접봉 건조기', '주문제작', '박스형', NULL, '2022-05-04', '진원하이텍', 2300000, '진원하이텍', 'active'), +('TKP-056', 'C&T 가공기', 'MS-CTK469', NULL, NULL, '2022-07-20', 'Swage-Lok', 7347600, 'Swage-Lok', 'active'), +('TKP-057', '테이블형 튜브 벤딩기', 'MS-BTT-K', '1/2", 1/4"', NULL, '2022-06-03', 'Swage-Lok', 20000000, 'Swage-Lok', 'active'), +('TKP-058', '자동용접기 헤드', 'SWS-10H-D-15', '1/2"', NULL, '2022-06-03', 'Swage-Lok', 20000000, 'Swage-Lok', 'active'), +('TKP-059', '천장주행크레인', 'HC-75D-13105', '7.5ton', NULL, '2023-06-09', '에이치앤씨', 22800000, '에이치앤씨', 'active'), +('TKP-060', 'AED', 'CU-SP1 Plus', '저출력심장충격기', NULL, '2023-11-09', '제이메디', 1600000, '제이메디', 'active'), +('TKP-061', '베벨머신', 'S-150', 'O.D 20mm ~ 170mm', NULL, '2023-12-12', 'DCSENG', 16000000, 'DCSENG', 'active'), +('TKP-062', '피막제거기', 'CM4_OD_GC', '최대 폭 48mm, 최대 깊이 15mm, 6"이상', NULL, '2023-12-12', 'DCSENG', 2000000, 'DCSENG', 'active'), +('TKP-063', '피막제거기', 'S-CM4_OD', '최대 폭 48mm, 최대 깊이 15mm, 1" 이상', NULL, '2023-12-12', 'DCSENG', 1200000, 'DCSENG', 'active'), +('TKP-064', '텅스텐 가공기', 'S-TGR', '0.89kg, 0.25~3.2', NULL, '2023-12-12', 'DCSENG', 800000, 'DCSENG', 'active'), +('TKP-065', '전동대차', 'LPM15', '2.0 ton', NULL, '2023-12-20', '두산산업차량', 2800000, '두산산업차량', 'active'); + +-- ============================================ +-- STEP 4: 결과 확인 +-- ============================================ +SELECT '===== 설비 데이터 입력 완료 =====' AS status; +SELECT COUNT(*) AS total_equipments FROM equipments; +SELECT + SUM(CASE WHEN purchase_price IS NOT NULL THEN purchase_price ELSE 0 END) AS total_purchase_value, + COUNT(CASE WHEN purchase_price IS NOT NULL THEN 1 END) AS equipments_with_price +FROM equipments; + +-- 최신 10개 설비 확인 +SELECT equipment_code, equipment_name, supplier, + FORMAT(purchase_price, 0) AS purchase_price_formatted, + manufacturer +FROM equipments +ORDER BY equipment_code DESC +LIMIT 10; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_insert_data.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_insert_data.sql new file mode 100644 index 0000000..d47a457 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_insert_data.sql @@ -0,0 +1,73 @@ +-- 설비 데이터 입력 (실제 테이블 구조에 맞춤) +-- 먼저 20260204_equipment_add_columns.sql 실행 후 이 파일 실행 + +-- 기존 TKP 데이터 삭제 +DELETE FROM equipments WHERE equipment_code LIKE 'TKP-%'; + +-- 65개 설비 데이터 입력 +INSERT INTO equipments (equipment_code, equipment_name, model, specifications, serial_number, purchase_date, supplier, purchase_price, manufacturer, status) VALUES +('TKP-001', 'AIR COMPRESSOR', 'AR10E', '7.5KW(10HP)', 'K603023Y', '2016-06-01', '지티씨', NULL, '경원', 'active'), +('TKP-002', 'TURN TABLE', 'YCT-200T', '220V', NULL, '2016-05-30', '형진종합공구', 3600000, '유체기계', 'active'), +('TKP-003', 'BAND SAW(中)', 'CY300W', '1500W*380V', '20150943', '2016-05-30', '형진종합공구', 4800000, '유림싸이겐', 'active'), +('TKP-004', 'BAND SAW(小)', 'XB-180WA', '180(VICE)', NULL, '2016-05-30', '형진종합공구', 2700000, '렉스', 'active'), +('TKP-005', 'BAND SAW(小)', 'XB-180WA', '180(VICE)', NULL, '2019-05-30', NULL, NULL, '렉스', 'active'), +('TKP-006', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-001', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-007', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-002', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-008', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-003', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-009', 'CO2용접기', 'COD-500A', '500A', '10880', '2016-05-30', '형진종합공구', 2000000, '대성용접기', 'active'), +('TKP-010', 'O2용접기', 'GSORK', '220V', NULL, '2016-05-30', '형진종합공구', 620000, '재현오토닉스', 'active'), +('TKP-011', 'PIPE BEVELLING MACHINE', 'S-200LT_MT(테이블포함)', '2" ~ 8"', 'KR-17030007', '2017-03-29', 'DCS ENG', 12000000, 'DCS ENG', 'active'), +('TKP-012', 'CO2용접기', '500MX', '220/380V,500A', NULL, '2017-08-02', '현대용접기', 1800000, '현대용접기', 'active'), +('TKP-013', '프라즈마', 'Perfect-150AP', '220/380/440V,140A', NULL, '2017-08-02', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-014', '터닝로라', 'JK-5-TR', '5TON/380V', NULL, '2017-09-08', '정일기공', 5700000, '정일기공', 'active'), +('TKP-015', '터닝로라', 'JK-5-TR', '5TON/380V', NULL, '2017-09-08', '정일기공', 5700000, '정일기공', 'active'), +('TKP-016', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-005', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-017', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-006', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-018', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-007', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-019', '전해연마기', 'ONB-8000VP', '220V/MAX1200W', '8022701', '2018-03-13', '오토기전', 1450000, '메탈브라이트(오토기전)', 'active'), +('TKP-020', '지게차', '50DA-9F', '5000KGS', 'HHKHFV36JJ0000061', '2018-05-10', '현대지게차', 45000000, '현대지게차', 'active'), +('TKP-021', '조방', NULL, '3658*12190', NULL, '2018-05-11', '천우기계공업/삼덕금속', 14200000, '테크니컬코리아', 'active'), +('TKP-022', 'BAND SAW(大)', 'WBS-RC500AN', '3,300kgs / 7.88kw', 'BC50A18-005F001', '2018-05-31', '원공사', 36000000, '원공사', 'active'), +('TKP-023', 'AIR COMPRESSOR', 'AR20E', '0.95Mpa', 'AR020FE358', '2018-06-05', '경원기계', NULL, '경원기계', 'active'), +('TKP-024', 'TURN TABLE', 'YCT-200TA', '220V', NULL, '2018-06-12', '청운종합공구', 3245000, '유체기계', 'active'), +('TKP-025', 'TIG용접기', 'Perfect-500WT', '500A/AC DC', 'ADKAC017B-006', '2018-06-12', '현대용접기', 2400000, '퍼펙트대대', 'active'), +('TKP-026', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAI018B-002', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-027', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAA018B-009', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-028', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAA018B-001', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-029', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1806077', '2018-07-06', '청운종합공구', 2300000, '대산', 'active'), +('TKP-030', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1807028', '2018-07-10', '청운종합공구', 2300000, '대산', 'active'), +('TKP-031', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1807029', '2018-07-10', '청운종합공구', 2300000, '대산', 'active'), +('TKP-032', '만능탭 드릴링머신', 'SF-TDM32', '1.5KW', NULL, '2018-11-09', '㈜애스앤애프', 2927000, '㈜애스앤에프', 'active'), +('TKP-033', '지게차', '30D-9B', '2850KGS', 'HHKHHN51KK0000864', '2019-03-06', '현대지게차', 29400000, '현대지게차', 'active'), +('TKP-034', '갠츄리크레인', 'CRANE - DHG', '50/10Ton x SP20M x T/L50M x H15M', NULL, '2019-05-09', '유진산업기계', 249000000, '반도호이스트', 'active'), +('TKP-035', 'OVER HEAD CRANE', 'CRANE - DHO', '20Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 58000000, '반도호이스트', 'active'), +('TKP-036', 'OVER HEAD CRANE', 'CRANE - DHO', '20Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 58000000, '반도호이스트', 'active'), +('TKP-037', 'OVER HEAD CRANE', 'CRANE - DHO', '5Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 29000000, '반도호이스트', 'active'), +('TKP-038', 'OVER HEAD CRANE', 'CRANE - DHO', '5Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 29000000, '반도호이스트', 'active'), +('TKP-039', '고소작업대', NULL, '250 Kg', NULL, '2019-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-040', '고소작업대', NULL, '250 Kg', NULL, '2019-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-041', 'AIR CONDITIONER', '코끼리 냉장고', NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-042', 'AIR CONDITIONER', NULL, NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-043', 'AIR CONDITIONER', NULL, NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-044', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-045', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-046', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-047', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-048', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-049', '자동용접기', NULL, NULL, NULL, '2019-01-01', 'Swage-Lok', 50000000, 'Swage-Lok', 'active'), +('TKP-050', 'Magnetic Drill', NULL, NULL, NULL, '2020-01-01', '청운종합공구', NULL, 'NITTO', 'active'), +('TKP-051', 'Magnetic Drill', NULL, NULL, NULL, '2020-01-01', '청운종합공구', NULL, 'Key-Yang', 'active'), +('TKP-052', 'Tube Bending M/C', NULL, NULL, NULL, '2020-01-01', NULL, NULL, 'REMS', 'active'), +('TKP-053', 'Unit Test Panel', NULL, NULL, NULL, '2021-01-01', NULL, NULL, NULL, 'active'), +('TKP-054', '고소작업대', NULL, '500 Kg', NULL, '2021-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-055', '용접봉 건조기', '주문제작', '박스형', NULL, '2022-05-04', '진원하이텍', 2300000, '진원하이텍', 'active'), +('TKP-056', 'C&T 가공기', 'MS-CTK469', NULL, NULL, '2022-07-20', 'Swage-Lok', 7347600, 'Swage-Lok', 'active'), +('TKP-057', '테이블형 튜브 벤딩기', 'MS-BTT-K', '1/2", 1/4"', NULL, '2022-06-03', 'Swage-Lok', 20000000, 'Swage-Lok', 'active'), +('TKP-058', '자동용접기 헤드', 'SWS-10H-D-15', '1/2"', NULL, '2022-06-03', 'Swage-Lok', 20000000, 'Swage-Lok', 'active'), +('TKP-059', '천장주행크레인', 'HC-75D-13105', '7.5ton', NULL, '2023-06-09', '에이치앤씨', 22800000, '에이치앤씨', 'active'), +('TKP-060', 'AED', 'CU-SP1 Plus', '저출력심장충격기', NULL, '2023-11-09', '제이메디', 1600000, '제이메디', 'active'), +('TKP-061', '베벨머신', 'S-150', 'O.D 20mm ~ 170mm', NULL, '2023-12-12', 'DCSENG', 16000000, 'DCSENG', 'active'), +('TKP-062', '피막제거기', 'CM4_OD_GC', '최대 폭 48mm, 최대 깊이 15mm, 6"이상', NULL, '2023-12-12', 'DCSENG', 2000000, 'DCSENG', 'active'), +('TKP-063', '피막제거기', 'S-CM4_OD', '최대 폭 48mm, 최대 깊이 15mm, 1" 이상', NULL, '2023-12-12', 'DCSENG', 1200000, 'DCSENG', 'active'), +('TKP-064', '텅스텐 가공기', 'S-TGR', '0.89kg, 0.25~3.2', NULL, '2023-12-12', 'DCSENG', 800000, 'DCSENG', 'active'), +('TKP-065', '전동대차', 'LPM15', '2.0 ton', NULL, '2023-12-20', '두산산업차량', 2800000, '두산산업차량', 'active'); diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_simple.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_simple.sql new file mode 100644 index 0000000..c49fc81 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260204_equipment_simple.sql @@ -0,0 +1,78 @@ +-- 설비 관리 설정 (phpMyAdmin용 단순 버전) +-- phpMyAdmin에서 가져오기로 실행 + +-- ============================================ +-- STEP 2: 기존 TKP 데이터 삭제 +-- ============================================ +DELETE FROM equipments WHERE equipment_code LIKE 'TKP-%'; + +-- ============================================ +-- STEP 3: 65개 설비 데이터 입력 +-- ============================================ + +INSERT INTO equipments (equipment_code, equipment_name, model_name, specifications, serial_number, installation_date, supplier, purchase_price, manufacturer, status) VALUES +('TKP-001', 'AIR COMPRESSOR', 'AR10E', '7.5KW(10HP)', 'K603023Y', '2016-06-01', '지티씨', NULL, '경원', 'active'), +('TKP-002', 'TURN TABLE', 'YCT-200T', '220V', NULL, '2016-05-30', '형진종합공구', 3600000, '유체기계', 'active'), +('TKP-003', 'BAND SAW(中)', 'CY300W', '1500W*380V', '20150943', '2016-05-30', '형진종합공구', 4800000, '유림싸이겐', 'active'), +('TKP-004', 'BAND SAW(小)', 'XB-180WA', '180(VICE)', NULL, '2016-05-30', '형진종합공구', 2700000, '렉스', 'active'), +('TKP-005', 'BAND SAW(小)', 'XB-180WA', '180(VICE)', NULL, '2019-05-30', NULL, NULL, '렉스', 'active'), +('TKP-006', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-001', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-007', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-002', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-008', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-003', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-009', 'CO2용접기', 'COD-500A', '500A', '10880', '2016-05-30', '형진종합공구', 2000000, '대성용접기', 'active'), +('TKP-010', 'O2용접기', 'GSORK', '220V', NULL, '2016-05-30', '형진종합공구', 620000, '재현오토닉스', 'active'), +('TKP-011', 'PIPE BEVELLING MACHINE', 'S-200LT_MT(테이블포함)', '2" ~ 8"', 'KR-17030007', '2017-03-29', 'DCS ENG', 12000000, 'DCS ENG', 'active'), +('TKP-012', 'CO2용접기', '500MX', '220/380V,500A', NULL, '2017-08-02', '현대용접기', 1800000, '현대용접기', 'active'), +('TKP-013', '프라즈마', 'Perfect-150AP', '220/380/440V,140A', NULL, '2017-08-02', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-014', '터닝로라', 'JK-5-TR', '5TON/380V', NULL, '2017-09-08', '정일기공', 5700000, '정일기공', 'active'), +('TKP-015', '터닝로라', 'JK-5-TR', '5TON/380V', NULL, '2017-09-08', '정일기공', 5700000, '정일기공', 'active'), +('TKP-016', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-005', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-017', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-006', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-018', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-007', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-019', '전해연마기', 'ONB-8000VP', '220V/MAX1200W', '8022701', '2018-03-13', '오토기전', 1450000, '메탈브라이트(오토기전)', 'active'), +('TKP-020', '지게차', '50DA-9F', '5000KGS', 'HHKHFV36JJ0000061', '2018-05-10', '현대지게차', 45000000, '현대지게차', 'active'), +('TKP-021', '조방', NULL, '3658*12190', NULL, '2018-05-11', '천우기계공업/삼덕금속', 14200000, '테크니컬코리아', 'active'), +('TKP-022', 'BAND SAW(大)', 'WBS-RC500AN', '3,300kgs / 7.88kw', 'BC50A18-005F001', '2018-05-31', '원공사', 36000000, '원공사', 'active'), +('TKP-023', 'AIR COMPRESSOR', 'AR20E', '0.95Mpa', 'AR020FE358', '2018-06-05', '경원기계', NULL, '경원기계', 'active'), +('TKP-024', 'TURN TABLE', 'YCT-200TA', '220V', NULL, '2018-06-12', '청운종합공구', 3245000, '유체기계', 'active'), +('TKP-025', 'TIG용접기', 'Perfect-500WT', '500A/AC DC', 'ADKAC017B-006', '2018-06-12', '현대용접기', 2400000, '퍼펙트대대', 'active'), +('TKP-026', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAI018B-002', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-027', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAA018B-009', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-028', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAA018B-001', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-029', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1806077', '2018-07-06', '청운종합공구', 2300000, '대산', 'active'), +('TKP-030', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1807028', '2018-07-10', '청운종합공구', 2300000, '대산', 'active'), +('TKP-031', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1807029', '2018-07-10', '청운종합공구', 2300000, '대산', 'active'), +('TKP-032', '만능탭 드릴링머신', 'SF-TDM32', '1.5KW', NULL, '2018-11-09', '㈜애스앤애프', 2927000, '㈜애스앤에프', 'active'), +('TKP-033', '지게차', '30D-9B', '2850KGS', 'HHKHHN51KK0000864', '2019-03-06', '현대지게차', 29400000, '현대지게차', 'active'), +('TKP-034', '갠츄리크레인', 'CRANE - DHG', '50/10Ton x SP20M x T/L50M x H15M', NULL, '2019-05-09', '유진산업기계', 249000000, '반도호이스트', 'active'), +('TKP-035', 'OVER HEAD CRANE', 'CRANE - DHO', '20Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 58000000, '반도호이스트', 'active'), +('TKP-036', 'OVER HEAD CRANE', 'CRANE - DHO', '20Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 58000000, '반도호이스트', 'active'), +('TKP-037', 'OVER HEAD CRANE', 'CRANE - DHO', '5Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 29000000, '반도호이스트', 'active'), +('TKP-038', 'OVER HEAD CRANE', 'CRANE - DHO', '5Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 29000000, '반도호이스트', 'active'), +('TKP-039', '고소작업대', NULL, '250 Kg', NULL, '2019-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-040', '고소작업대', NULL, '250 Kg', NULL, '2019-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-041', 'AIR CONDITIONER', '코끼리 냉장고', NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-042', 'AIR CONDITIONER', NULL, NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-043', 'AIR CONDITIONER', NULL, NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-044', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-045', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-046', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-047', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-048', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-049', '자동용접기', NULL, NULL, NULL, '2019-01-01', 'Swage-Lok', 50000000, 'Swage-Lok', 'active'), +('TKP-050', 'Magnetic Drill', NULL, NULL, NULL, '2020-01-01', '청운종합공구', NULL, 'NITTO', 'active'), +('TKP-051', 'Magnetic Drill', NULL, NULL, NULL, '2020-01-01', '청운종합공구', NULL, 'Key-Yang', 'active'), +('TKP-052', 'Tube Bending M/C', NULL, NULL, NULL, '2020-01-01', NULL, NULL, 'REMS', 'active'), +('TKP-053', 'Unit Test Panel', NULL, NULL, NULL, '2021-01-01', NULL, NULL, NULL, 'active'), +('TKP-054', '고소작업대', NULL, '500 Kg', NULL, '2021-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-055', '용접봉 건조기', '주문제작', '박스형', NULL, '2022-05-04', '진원하이텍', 2300000, '진원하이텍', 'active'), +('TKP-056', 'C&T 가공기', 'MS-CTK469', NULL, NULL, '2022-07-20', 'Swage-Lok', 7347600, 'Swage-Lok', 'active'), +('TKP-057', '테이블형 튜브 벤딩기', 'MS-BTT-K', '1/2", 1/4"', NULL, '2022-06-03', 'Swage-Lok', 20000000, 'Swage-Lok', 'active'), +('TKP-058', '자동용접기 헤드', 'SWS-10H-D-15', '1/2"', NULL, '2022-06-03', 'Swage-Lok', 20000000, 'Swage-Lok', 'active'), +('TKP-059', '천장주행크레인', 'HC-75D-13105', '7.5ton', NULL, '2023-06-09', '에이치앤씨', 22800000, '에이치앤씨', 'active'), +('TKP-060', 'AED', 'CU-SP1 Plus', '저출력심장충격기', NULL, '2023-11-09', '제이메디', 1600000, '제이메디', 'active'), +('TKP-061', '베벨머신', 'S-150', 'O.D 20mm ~ 170mm', NULL, '2023-12-12', 'DCSENG', 16000000, 'DCSENG', 'active'), +('TKP-062', '피막제거기', 'CM4_OD_GC', '최대 폭 48mm, 최대 깊이 15mm, 6"이상', NULL, '2023-12-12', 'DCSENG', 2000000, 'DCSENG', 'active'), +('TKP-063', '피막제거기', 'S-CM4_OD', '최대 폭 48mm, 최대 깊이 15mm, 1" 이상', NULL, '2023-12-12', 'DCSENG', 1200000, 'DCSENG', 'active'), +('TKP-064', '텅스텐 가공기', 'S-TGR', '0.89kg, 0.25~3.2', NULL, '2023-12-12', 'DCSENG', 800000, 'DCSENG', 'active'), +('TKP-065', '전동대차', 'LPM15', '2.0 ton', NULL, '2023-12-20', '두산산업차량', 2800000, '두산산업차량', 'active'); diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205001000_create_equipment_photos.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205001000_create_equipment_photos.sql new file mode 100644 index 0000000..bdfa74a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205001000_create_equipment_photos.sql @@ -0,0 +1,17 @@ +-- 설비 사진 테이블 생성 +-- 실행: docker exec -i tkfb_db mysql -u hyungi -p'your_password' hyungi < db/migrations/20260205001000_create_equipment_photos.sql + +CREATE TABLE IF NOT EXISTS equipment_photos ( + photo_id INT AUTO_INCREMENT PRIMARY KEY, + equipment_id INT UNSIGNED NOT NULL, + photo_path VARCHAR(255) NOT NULL COMMENT '이미지 경로', + description VARCHAR(200) COMMENT '사진 설명', + display_order INT DEFAULT 0 COMMENT '표시 순서', + uploaded_by INT COMMENT '업로드한 사용자 ID', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT fk_eq_photos_equipment FOREIGN KEY (equipment_id) + REFERENCES equipments(equipment_id) ON DELETE CASCADE, + CONSTRAINT fk_eq_photos_user FOREIGN KEY (uploaded_by) + REFERENCES users(user_id) ON DELETE SET NULL, + INDEX idx_eq_photos_equipment_id (equipment_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205002000_add_equipment_move_fields.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205002000_add_equipment_move_fields.sql new file mode 100644 index 0000000..694194a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205002000_add_equipment_move_fields.sql @@ -0,0 +1,174 @@ +-- 설비 임시이동 필드 추가 및 신고 시스템 연동 +-- 실행: docker exec -i tkfb_db mysql -u hyungi -p'your_password' hyungi < db/migrations/20260205002000_add_equipment_move_fields.sql + +SET @dbname = DATABASE(); + +-- ============================================ +-- STEP 1: equipments 테이블에 임시이동 필드 추가 +-- ============================================ + +-- current_workplace_id 컬럼 추가 +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname AND table_name = 'equipments' AND column_name = 'current_workplace_id'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE equipments ADD COLUMN current_workplace_id INT UNSIGNED NULL COMMENT ''현재 임시 위치 - 작업장 ID'' AFTER map_height_percent', + 'SELECT ''current_workplace_id already exists'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- current_map_x_percent 컬럼 추가 +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname AND table_name = 'equipments' AND column_name = 'current_map_x_percent'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE equipments ADD COLUMN current_map_x_percent DECIMAL(5,2) NULL COMMENT ''현재 위치 X%'' AFTER current_workplace_id', + 'SELECT ''current_map_x_percent already exists'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- current_map_y_percent 컬럼 추가 +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname AND table_name = 'equipments' AND column_name = 'current_map_y_percent'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE equipments ADD COLUMN current_map_y_percent DECIMAL(5,2) NULL COMMENT ''현재 위치 Y%'' AFTER current_map_x_percent', + 'SELECT ''current_map_y_percent already exists'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- current_map_width_percent 컬럼 추가 +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname AND table_name = 'equipments' AND column_name = 'current_map_width_percent'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE equipments ADD COLUMN current_map_width_percent DECIMAL(5,2) NULL COMMENT ''현재 위치 너비%'' AFTER current_map_y_percent', + 'SELECT ''current_map_width_percent already exists'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- current_map_height_percent 컬럼 추가 +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname AND table_name = 'equipments' AND column_name = 'current_map_height_percent'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE equipments ADD COLUMN current_map_height_percent DECIMAL(5,2) NULL COMMENT ''현재 위치 높이%'' AFTER current_map_width_percent', + 'SELECT ''current_map_height_percent already exists'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- is_temporarily_moved 컬럼 추가 +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname AND table_name = 'equipments' AND column_name = 'is_temporarily_moved'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE equipments ADD COLUMN is_temporarily_moved BOOLEAN DEFAULT FALSE COMMENT ''임시 이동 상태'' AFTER current_map_height_percent', + 'SELECT ''is_temporarily_moved already exists'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- moved_at 컬럼 추가 +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname AND table_name = 'equipments' AND column_name = 'moved_at'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE equipments ADD COLUMN moved_at DATETIME NULL COMMENT ''이동 일시'' AFTER is_temporarily_moved', + 'SELECT ''moved_at already exists'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- moved_by 컬럼 추가 +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname AND table_name = 'equipments' AND column_name = 'moved_by'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE equipments ADD COLUMN moved_by INT NULL COMMENT ''이동 처리자'' AFTER moved_at', + 'SELECT ''moved_by already exists'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- Foreign Key: current_workplace_id -> workplaces +SELECT COUNT(*) INTO @fk_exists +FROM information_schema.table_constraints +WHERE table_schema = @dbname AND table_name = 'equipments' AND constraint_name = 'fk_eq_current_workplace'; + +SET @sql = IF(@fk_exists = 0, + 'ALTER TABLE equipments ADD CONSTRAINT fk_eq_current_workplace FOREIGN KEY (current_workplace_id) REFERENCES workplaces(workplace_id) ON DELETE SET NULL', + 'SELECT ''fk_eq_current_workplace already exists'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SELECT 'equipments 임시이동 필드 추가 완료' AS status; + +-- ============================================ +-- STEP 2: work_issue_reports에 equipment_id 필드 추가 +-- ============================================ + +SELECT COUNT(*) INTO @col_exists +FROM information_schema.columns +WHERE table_schema = @dbname AND table_name = 'work_issue_reports' AND column_name = 'equipment_id'; + +SET @sql = IF(@col_exists = 0, + 'ALTER TABLE work_issue_reports ADD COLUMN equipment_id INT UNSIGNED NULL COMMENT ''관련 설비 ID'' AFTER visit_request_id', + 'SELECT ''equipment_id already exists in work_issue_reports'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- Foreign Key +SELECT COUNT(*) INTO @fk_exists +FROM information_schema.table_constraints +WHERE table_schema = @dbname AND table_name = 'work_issue_reports' AND constraint_name = 'fk_wir_equipment'; + +SET @sql = IF(@fk_exists = 0 AND @col_exists = 0, + 'ALTER TABLE work_issue_reports ADD CONSTRAINT fk_wir_equipment FOREIGN KEY (equipment_id) REFERENCES equipments(equipment_id) ON DELETE SET NULL', + 'SELECT ''fk_wir_equipment already exists or column not added'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +-- Index +SELECT COUNT(*) INTO @idx_exists +FROM information_schema.statistics +WHERE table_schema = @dbname AND table_name = 'work_issue_reports' AND index_name = 'idx_wir_equipment_id'; + +SET @sql = IF(@idx_exists = 0 AND @col_exists = 0, + 'ALTER TABLE work_issue_reports ADD INDEX idx_wir_equipment_id (equipment_id)', + 'SELECT ''idx_wir_equipment_id already exists'''); +PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; + +SELECT 'work_issue_reports equipment_id 추가 완료' AS status; + +-- ============================================ +-- STEP 3: 설비 수리 카테고리 추가 +-- ============================================ + +INSERT INTO issue_report_categories (category_type, category_name, description, display_order, is_active) +SELECT 'nonconformity', '설비 수리', '설비 고장 및 수리 요청', 10, 1 +WHERE NOT EXISTS ( + SELECT 1 FROM issue_report_categories WHERE category_name = '설비 수리' +); + +-- 설비 수리 카테고리에 기본 항목 추가 +SET @category_id = (SELECT category_id FROM issue_report_categories WHERE category_name = '설비 수리' LIMIT 1); + +INSERT INTO issue_report_items (category_id, item_name, description, severity, display_order, is_active) +SELECT @category_id, '기계 고장', '기계 작동 불가 또는 이상', 'high', 1, 1 +WHERE @category_id IS NOT NULL AND NOT EXISTS ( + SELECT 1 FROM issue_report_items WHERE category_id = @category_id AND item_name = '기계 고장' +); + +INSERT INTO issue_report_items (category_id, item_name, description, severity, display_order, is_active) +SELECT @category_id, '부품 교체 필요', '소모품 또는 부품 교체 필요', 'medium', 2, 1 +WHERE @category_id IS NOT NULL AND NOT EXISTS ( + SELECT 1 FROM issue_report_items WHERE category_id = @category_id AND item_name = '부품 교체 필요' +); + +INSERT INTO issue_report_items (category_id, item_name, description, severity, display_order, is_active) +SELECT @category_id, '정기 점검 필요', '예방 정비 또는 정기 점검', 'low', 3, 1 +WHERE @category_id IS NOT NULL AND NOT EXISTS ( + SELECT 1 FROM issue_report_items WHERE category_id = @category_id AND item_name = '정기 점검 필요' +); + +INSERT INTO issue_report_items (category_id, item_name, description, severity, display_order, is_active) +SELECT @category_id, '외부 수리 필요', '전문 업체 수리가 필요한 경우', 'high', 4, 1 +WHERE @category_id IS NOT NULL AND NOT EXISTS ( + SELECT 1 FROM issue_report_items WHERE category_id = @category_id AND item_name = '외부 수리 필요' +); + +SELECT '설비 수리 카테고리 및 항목 추가 완료' AS status; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205003000_create_equipment_external_logs.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205003000_create_equipment_external_logs.sql new file mode 100644 index 0000000..11a8291 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205003000_create_equipment_external_logs.sql @@ -0,0 +1,86 @@ +-- 설비 외부반출 테이블 생성 및 상태 ENUM 확장 +-- 실행: docker exec -i tkfb_db mysql -u hyungi -p'your_password' hyungi < db/migrations/20260205003000_create_equipment_external_logs.sql + +SET @dbname = DATABASE(); + +-- ============================================ +-- STEP 1: equipment_external_logs 테이블 생성 +-- ============================================ + +CREATE TABLE IF NOT EXISTS equipment_external_logs ( + log_id INT AUTO_INCREMENT PRIMARY KEY, + equipment_id INT UNSIGNED NOT NULL COMMENT '설비 ID', + log_type ENUM('export', 'return') NOT NULL COMMENT '반출/반입', + export_date DATE COMMENT '반출일', + expected_return_date DATE COMMENT '반입 예정일', + actual_return_date DATE COMMENT '실제 반입일', + destination VARCHAR(200) COMMENT '반출처 (수리업체명 등)', + reason TEXT COMMENT '반출 사유', + notes TEXT COMMENT '비고', + exported_by INT COMMENT '반출 담당자', + returned_by INT COMMENT '반입 담당자', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + CONSTRAINT fk_eel_equipment FOREIGN KEY (equipment_id) + REFERENCES equipments(equipment_id) ON DELETE CASCADE, + CONSTRAINT fk_eel_exported_by FOREIGN KEY (exported_by) + REFERENCES users(user_id) ON DELETE SET NULL, + CONSTRAINT fk_eel_returned_by FOREIGN KEY (returned_by) + REFERENCES users(user_id) ON DELETE SET NULL, + INDEX idx_eel_equipment_id (equipment_id), + INDEX idx_eel_log_type (log_type), + INDEX idx_eel_export_date (export_date) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +SELECT 'equipment_external_logs 테이블 생성 완료' AS status; + +-- ============================================ +-- STEP 2: equipments 테이블 status ENUM 확장 +-- ============================================ + +-- 현재 status 컬럼의 ENUM 값 확인 후 확장 +-- 기존: active, maintenance, repair_needed, inactive +-- 추가: external (외부 반출), repair_external (수리 외주) + +ALTER TABLE equipments +MODIFY COLUMN status ENUM( + 'active', -- 정상 가동 + 'maintenance', -- 점검 중 + 'repair_needed', -- 수리 필요 + 'inactive', -- 비활성 + 'external', -- 외부 반출 + 'repair_external' -- 수리 외주 (외부 수리) +) DEFAULT 'active' COMMENT '설비 상태'; + +SELECT 'equipments status ENUM 확장 완료' AS status; + +-- ============================================ +-- STEP 3: 설비 이동 이력 테이블 생성 (선택) +-- ============================================ + +CREATE TABLE IF NOT EXISTS equipment_move_logs ( + log_id INT AUTO_INCREMENT PRIMARY KEY, + equipment_id INT UNSIGNED NOT NULL COMMENT '설비 ID', + move_type ENUM('temporary', 'return') NOT NULL COMMENT '임시이동/복귀', + from_workplace_id INT UNSIGNED COMMENT '이전 작업장', + to_workplace_id INT UNSIGNED COMMENT '이동 작업장', + from_x_percent DECIMAL(5,2) COMMENT '이전 X좌표', + from_y_percent DECIMAL(5,2) COMMENT '이전 Y좌표', + to_x_percent DECIMAL(5,2) COMMENT '이동 X좌표', + to_y_percent DECIMAL(5,2) COMMENT '이동 Y좌표', + reason TEXT COMMENT '이동 사유', + moved_by INT COMMENT '이동 처리자', + moved_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT fk_eml_equipment FOREIGN KEY (equipment_id) + REFERENCES equipments(equipment_id) ON DELETE CASCADE, + CONSTRAINT fk_eml_from_workplace FOREIGN KEY (from_workplace_id) + REFERENCES workplaces(workplace_id) ON DELETE SET NULL, + CONSTRAINT fk_eml_to_workplace FOREIGN KEY (to_workplace_id) + REFERENCES workplaces(workplace_id) ON DELETE SET NULL, + CONSTRAINT fk_eml_moved_by FOREIGN KEY (moved_by) + REFERENCES users(user_id) ON DELETE SET NULL, + INDEX idx_eml_equipment_id (equipment_id), + INDEX idx_eml_move_type (move_type) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +SELECT 'equipment_move_logs 테이블 생성 완료' AS status; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205004000_create_notifications.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205004000_create_notifications.sql new file mode 100644 index 0000000..a1ca15e --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205004000_create_notifications.sql @@ -0,0 +1,46 @@ +-- 알림 시스템 테이블 생성 +-- 실행: docker exec -i tkfb_db mysql -u hyungi -p'your_password' hyungi < db/migrations/20260205004000_create_notifications.sql + +-- ============================================ +-- STEP 1: notifications 테이블 생성 +-- ============================================ + +CREATE TABLE IF NOT EXISTS notifications ( + notification_id INT AUTO_INCREMENT PRIMARY KEY, + user_id INT NULL COMMENT '특정 사용자에게만 표시 (NULL이면 전체)', + type ENUM('repair', 'safety', 'system', 'equipment', 'maintenance') NOT NULL DEFAULT 'system', + title VARCHAR(200) NOT NULL, + message TEXT, + link_url VARCHAR(500) COMMENT '클릭시 이동할 URL', + reference_type VARCHAR(50) COMMENT '연관 테이블 (equipment_repair_requests 등)', + reference_id INT COMMENT '연관 레코드 ID', + is_read BOOLEAN DEFAULT FALSE, + read_at DATETIME NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + created_by INT NULL, + INDEX idx_notifications_user (user_id), + INDEX idx_notifications_type (type), + INDEX idx_notifications_is_read (is_read), + INDEX idx_notifications_created (created_at DESC) +); + +-- 수리 요청 테이블 수정 (알림 연동을 위해) +-- equipment_repair_requests 테이블이 없으면 생성 +CREATE TABLE IF NOT EXISTS equipment_repair_requests ( + request_id INT AUTO_INCREMENT PRIMARY KEY, + equipment_id INT UNSIGNED NOT NULL, + repair_type VARCHAR(100) NOT NULL, + description TEXT, + urgency ENUM('low', 'normal', 'high', 'urgent') DEFAULT 'normal', + status ENUM('pending', 'in_progress', 'completed', 'cancelled') DEFAULT 'pending', + requested_by INT, + assigned_to INT NULL, + completed_at DATETIME NULL, + notes TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + FOREIGN KEY (equipment_id) REFERENCES equipments(equipment_id) ON DELETE CASCADE, + INDEX idx_err_equipment (equipment_id), + INDEX idx_err_status (status), + INDEX idx_err_created (created_at DESC) +); diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205_fix_work_type_id_data.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205_fix_work_type_id_data.js new file mode 100644 index 0000000..53c520a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260205_fix_work_type_id_data.js @@ -0,0 +1,105 @@ +/** + * 마이그레이션: TBM 기반 작업보고서의 work_type_id를 task_id로 수정 + * + * 문제: TBM에서 작업보고서 생성 시 work_type_id(공정 ID)가 저장됨 + * 해결: tbm_team_assignments 테이블의 task_id로 업데이트 + * + * 실행: node db/migrations/20260205_fix_work_type_id_data.js + */ + +const { getDb } = require('../../dbPool'); + +async function migrate() { + const db = await getDb(); + + console.log('🔄 TBM 기반 작업보고서 work_type_id 수정 시작...\n'); + + try { + // 1. 수정 대상 확인 (TBM 기반이면서 work_type_id가 task_id와 다른 경우) + const [checkResult] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id as current_work_type_id, + ta.task_id as correct_task_id, + ta.work_type_id as tbm_work_type_id, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + INNER JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + ORDER BY dwr.report_date DESC + `); + + console.log(`📊 수정 대상: ${checkResult.length}개 레코드\n`); + + if (checkResult.length === 0) { + console.log('✅ 수정할 데이터가 없습니다.'); + return; + } + + // 수정 대상 샘플 출력 + console.log('📋 수정 대상 샘플 (최대 10개):'); + console.log('─'.repeat(80)); + checkResult.slice(0, 10).forEach(row => { + console.log(` ID: ${row.id} | ${row.worker_name} | ${row.report_date}`); + console.log(` 현재 work_type_id: ${row.current_work_type_id} → 올바른 task_id: ${row.correct_task_id}`); + }); + if (checkResult.length > 10) { + console.log(` ... 외 ${checkResult.length - 10}개`); + } + console.log('─'.repeat(80)); + + // 2. 업데이트 실행 + const [updateResult] = await db.query(` + UPDATE daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + SET dwr.work_type_id = ta.task_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + `); + + console.log(`\n✅ 업데이트 완료: ${updateResult.affectedRows}개 레코드 수정됨`); + + // 3. 수정 결과 확인 + const [verifyResult] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id, + ta.task_id, + t.task_name, + wt.name as work_type_name + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + WHERE dwr.tbm_assignment_id IS NOT NULL + LIMIT 5 + `); + + console.log('\n📋 수정 후 샘플 확인:'); + console.log('─'.repeat(80)); + verifyResult.forEach(row => { + console.log(` ID: ${row.id} | work_type_id: ${row.work_type_id} | task: ${row.task_name || 'N/A'} | 공정: ${row.work_type_name || 'N/A'}`); + }); + console.log('─'.repeat(80)); + + } catch (error) { + console.error('❌ 마이그레이션 실패:', error.message); + throw error; + } +} + +// 실행 +migrate() + .then(() => { + console.log('\n🎉 마이그레이션 완료!'); + process.exit(0); + }) + .catch(err => { + console.error('\n💥 마이그레이션 실패:', err); + process.exit(1); + }); diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_final.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_final.sql new file mode 100644 index 0000000..3082a30 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_final.sql @@ -0,0 +1,56 @@ +-- ============================================ +-- error_types → issue_report_items 마이그레이션 +-- 실행 전 반드시 백업하세요! +-- ============================================ + +-- STEP 1: 현재 상태 확인 +-- ============================================ +SELECT 'Before Migration' as status; +SELECT error_type_id, COUNT(*) as cnt FROM daily_work_reports WHERE error_type_id IS NOT NULL GROUP BY error_type_id; + + +-- STEP 2: 매핑 업데이트 실행 +-- ============================================ +-- 주의: 순서가 중요! (충돌 방지를 위해 큰 숫자부터) + +-- 6 (검사불량) → 14 (치수 검사 누락) +UPDATE daily_work_reports SET error_type_id = 14 WHERE error_type_id = 6; + +-- 5 (설비고장) → 38 (기계 고장) +UPDATE daily_work_reports SET error_type_id = 38 WHERE error_type_id = 5; + +-- 4 (작업불량) → 43 (NDE 불합격) +UPDATE daily_work_reports SET error_type_id = 43 WHERE error_type_id = 4; + +-- 3 (입고지연) → 1 (배관 자재 미입고) - 이미 1이므로 충돌 가능, 임시값 사용 +UPDATE daily_work_reports SET error_type_id = 99991 WHERE error_type_id = 3; + +-- 2 (외주작업 불량) → 10 (외관 불량) +UPDATE daily_work_reports SET error_type_id = 10 WHERE error_type_id = 2; + +-- 1 (설계미스) → 6 (도면 치수 오류) - 6은 이미 업데이트됨 +UPDATE daily_work_reports SET error_type_id = 6 WHERE error_type_id = 1; + +-- 임시값 복원: 99991 → 1 +UPDATE daily_work_reports SET error_type_id = 1 WHERE error_type_id = 99991; + + +-- STEP 3: 마이그레이션 결과 확인 +-- ============================================ +SELECT 'After Migration' as status; +SELECT + dwr.error_type_id, + iri.item_name, + irc.category_name, + COUNT(*) as cnt +FROM daily_work_reports dwr +LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id +LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id +WHERE dwr.error_type_id IS NOT NULL +GROUP BY dwr.error_type_id, iri.item_name, irc.category_name; + + +-- STEP 4: error_types 테이블 삭제 (선택사항) +-- ============================================ +-- 마이그레이션 확인 후 주석 해제하여 실행 +-- DROP TABLE IF EXISTS error_types; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.js b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.js new file mode 100644 index 0000000..18659f1 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.js @@ -0,0 +1,112 @@ +/** + * 마이그레이션: error_types에서 issue_report_items로 전환 + * + * 기존 daily_work_reports.error_type_id가 error_types.id를 참조하던 것을 + * issue_report_items.item_id를 참조하도록 변경 + * + * 기존 error_types 데이터: + * id=1: 설계미스 + * id=2: 외주작업 불량 + * id=3: 입고지연 + * + * 새 issue_report_categories 데이터: + * category_id=1: 자재누락 (nonconformity) + * category_id=2: 설계미스 (nonconformity) + * category_id=3: 입고불량 (nonconformity) + * + * 매핑 전략: + * - error_types.id=1 (설계미스) → issue_report_items에서 '설계미스' 카테고리의 첫 번째 항목 + * - error_types.id=2 (외주작업 불량) → issue_report_items에서 '입고불량' 카테고리의 '외관 불량' 항목 + * - error_types.id=3 (입고지연) → issue_report_items에서 '자재누락' 카테고리의 첫 번째 항목 + */ + +exports.up = async function(knex) { + console.log('=== error_type_id 마이그레이션 시작 ==='); + + // 1. 기존 error_types 데이터와 새 issue_report_items 매핑 테이블 조회 + const [categories] = await knex.raw(` + SELECT category_id, category_name + FROM issue_report_categories + WHERE category_type = 'nonconformity' + `); + console.log('부적합 카테고리:', categories); + + const [items] = await knex.raw(` + SELECT iri.item_id, iri.item_name, iri.category_id, irc.category_name + FROM issue_report_items iri + JOIN issue_report_categories irc ON iri.category_id = irc.category_id + WHERE irc.category_type = 'nonconformity' + ORDER BY iri.category_id, iri.display_order + `); + console.log('부적합 항목:', items); + + // 2. 매핑 정의 (기존 error_type_id → 새 issue_report_items.item_id) + // 설계미스 카테고리 찾기 + const designMissCategory = categories.find(c => c.category_name === '설계미스'); + const incomingDefectCategory = categories.find(c => c.category_name === '입고불량'); + const materialShortageCategory = categories.find(c => c.category_name === '자재누락'); + + // 각 카테고리의 첫 번째 항목 찾기 + const designMissItem = items.find(i => i.category_id === designMissCategory?.category_id); + const incomingDefectItem = items.find(i => i.category_id === incomingDefectCategory?.category_id); + const materialShortageItem = items.find(i => i.category_id === materialShortageCategory?.category_id); + + console.log('매핑 결과:'); + console.log(' - 설계미스(1) → item_id:', designMissItem?.item_id); + console.log(' - 외주작업불량(2) → item_id:', incomingDefectItem?.item_id); + console.log(' - 입고지연(3) → item_id:', materialShortageItem?.item_id); + + // 3. 기존 데이터 업데이트 + if (designMissItem) { + const [result1] = await knex.raw(` + UPDATE daily_work_reports + SET error_type_id = ? + WHERE error_type_id = 1 + `, [designMissItem.item_id]); + console.log('설계미스(1) 업데이트:', result1.affectedRows, '건'); + } + + if (incomingDefectItem) { + const [result2] = await knex.raw(` + UPDATE daily_work_reports + SET error_type_id = ? + WHERE error_type_id = 2 + `, [incomingDefectItem.item_id]); + console.log('외주작업불량(2) 업데이트:', result2.affectedRows, '건'); + } + + if (materialShortageItem) { + const [result3] = await knex.raw(` + UPDATE daily_work_reports + SET error_type_id = ? + WHERE error_type_id = 3 + `, [materialShortageItem.item_id]); + console.log('입고지연(3) 업데이트:', result3.affectedRows, '건'); + } + + // 4. 매핑 안된 나머지 데이터 확인 (4 이상의 error_type_id) + const [unmapped] = await knex.raw(` + SELECT DISTINCT error_type_id, COUNT(*) as cnt + FROM daily_work_reports + WHERE error_type_id IS NOT NULL + AND error_type_id NOT IN (?, ?, ?) + GROUP BY error_type_id + `, [ + designMissItem?.item_id || 0, + incomingDefectItem?.item_id || 0, + materialShortageItem?.item_id || 0 + ]); + + if (unmapped.length > 0) { + console.log('⚠️ 매핑되지 않은 error_type_id 발견:', unmapped); + console.log(' 이 데이터는 수동으로 확인 필요'); + } + + console.log('=== error_type_id 마이그레이션 완료 ==='); +}; + +exports.down = async function(knex) { + // 롤백은 복잡하므로 로그만 출력 + console.log('⚠️ 이 마이그레이션은 자동 롤백을 지원하지 않습니다.'); + console.log(' 데이터 복구가 필요한 경우 백업에서 복원해주세요.'); +}; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.sql new file mode 100644 index 0000000..4330533 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/20260206_migrate_error_types_to_issue_items.sql @@ -0,0 +1,73 @@ +-- ============================================ +-- error_types → issue_report_items 마이그레이션 +-- ============================================ + +-- STEP 1: 현재 데이터 확인 +-- ============================================ + +-- 기존 error_types 확인 +SELECT * FROM error_types; + +-- 새 issue_report_categories 확인 (부적합만) +SELECT * FROM issue_report_categories WHERE category_type = 'nonconformity'; + +-- 새 issue_report_items 확인 (부적합만) +SELECT + iri.item_id, + iri.item_name, + iri.category_id, + irc.category_name +FROM issue_report_items iri +JOIN issue_report_categories irc ON iri.category_id = irc.category_id +WHERE irc.category_type = 'nonconformity' +ORDER BY irc.display_order, iri.display_order; + +-- 현재 daily_work_reports에서 사용 중인 error_type_id 확인 +SELECT + error_type_id, + COUNT(*) as cnt, + et.name as old_error_name +FROM daily_work_reports dwr +LEFT JOIN error_types et ON dwr.error_type_id = et.id +WHERE error_type_id IS NOT NULL +GROUP BY error_type_id +ORDER BY error_type_id; + + +-- STEP 2: 매핑 업데이트 (실제 item_id 확인 후 수정 필요!) +-- ============================================ + +-- 먼저 위 쿼리로 실제 item_id 값을 확인하세요! +-- 아래는 예시입니다. 실제 값으로 수정해서 사용하세요. + +-- 예시: 설계미스(error_type_id=1) → 설계미스 카테고리의 '도면 치수 오류' 항목 +-- UPDATE daily_work_reports SET error_type_id = 6 WHERE error_type_id = 1; + +-- 예시: 외주작업 불량(error_type_id=2) → 입고불량 카테고리의 '외관 불량' 항목 +-- UPDATE daily_work_reports SET error_type_id = 10 WHERE error_type_id = 2; + +-- 예시: 입고지연(error_type_id=3) → 자재누락 카테고리의 '배관 자재 미입고' 항목 +-- UPDATE daily_work_reports SET error_type_id = 1 WHERE error_type_id = 3; + + +-- STEP 3: 매핑 검증 +-- ============================================ + +-- 업데이트 후 확인 +SELECT + dwr.error_type_id, + iri.item_name, + irc.category_name, + COUNT(*) as cnt +FROM daily_work_reports dwr +LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id +LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id +WHERE dwr.error_type_id IS NOT NULL +GROUP BY dwr.error_type_id, iri.item_name, irc.category_name; + + +-- STEP 4: error_types 테이블 삭제 (매핑 완료 후) +-- ============================================ + +-- 주의: 반드시 STEP 2, 3 완료 후 실행! +-- DROP TABLE IF EXISTS error_types; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/add_equipment_purchase_fields.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/add_equipment_purchase_fields.sql new file mode 100644 index 0000000..3714211 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/add_equipment_purchase_fields.sql @@ -0,0 +1,13 @@ +-- 설비 테이블에 구입처 및 구입가격 컬럼 추가 +-- 실행: mysql -u [user] -p [database] < add_equipment_purchase_fields.sql + +-- 컬럼 추가 +ALTER TABLE equipments +ADD COLUMN supplier VARCHAR(100) NULL COMMENT '구입처' AFTER manufacturer, +ADD COLUMN purchase_price DECIMAL(15, 0) NULL COMMENT '구입가격' AFTER supplier; + +-- 확인 +SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT +FROM INFORMATION_SCHEMA.COLUMNS +WHERE TABLE_NAME = 'equipments' +AND COLUMN_NAME IN ('supplier', 'purchase_price'); diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/insert_equipment_data.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/insert_equipment_data.sql new file mode 100644 index 0000000..a66a252 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/insert_equipment_data.sql @@ -0,0 +1,77 @@ +-- 설비 데이터 입력 +-- 실행 전 먼저 add_equipment_purchase_fields.sql 실행 필요 +-- 실행: mysql -u [user] -p [database] < insert_equipment_data.sql + +-- 기존 데이터 삭제 (필요시 주석 해제) +-- TRUNCATE TABLE equipments; + +INSERT INTO equipments (equipment_code, equipment_name, model_name, specifications, serial_number, installation_date, supplier, purchase_price, manufacturer, status) VALUES +('TKP-001', 'AIR COMPRESSOR', 'AR10E', '7.5KW(10HP)', 'K603023Y', '2016-06-01', '지티씨', NULL, '경원', 'active'), +('TKP-002', 'TURN TABLE', 'YCT-200T', '220V', NULL, '2016-05-30', '형진종합공구', 3600000, '유체기계', 'active'), +('TKP-003', 'BAND SAW(中)', 'CY300W', '1500W*380V', '20150943', '2016-05-30', '형진종합공구', 4800000, '유림싸이겐', 'active'), +('TKP-004', 'BAND SAW(小)', 'XB-180WA', '180(VICE)', NULL, '2016-05-30', '형진종합공구', 2700000, '렉스', 'active'), +('TKP-005', 'BAND SAW(小)', 'XB-180WA', '180(VICE)', NULL, '2019-05-30', NULL, NULL, '렉스', 'active'), +('TKP-006', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-001', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-007', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-002', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-008', 'TIG용접기', 'DAESUNG-500DT', '500A', 'TEAG0168-003', '2016-05-30', '형진종합공구', 2200000, '대성용접기', 'active'), +('TKP-009', 'CO2용접기', 'COD-500A', '500A', '10880', '2016-05-30', '형진종합공구', 2000000, '대성용접기', 'active'), +('TKP-010', 'O2용접기', 'GSORK', '220V', NULL, '2016-05-30', '형진종합공구', 620000, '재현오토닉스', 'active'), +('TKP-011', 'PIPE BEVELLING MACHINE', 'S-200LT_MT(테이블포함)', '2" ~ 8"', 'KR-17030007', '2017-03-29', 'DCS ENG', 12000000, 'DCS ENG', 'active'), +('TKP-012', 'CO2용접기', '500MX', '220/380V,500A', NULL, '2017-08-02', '현대용접기', 1800000, '현대용접기', 'active'), +('TKP-013', '프라즈마', 'Perfect-150AP', '220/380/440V,140A', NULL, '2017-08-02', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-014', '터닝로라', 'JK-5-TR', '5TON/380V', NULL, '2017-09-08', '정일기공', 5700000, '정일기공', 'active'), +('TKP-015', '터닝로라', 'JK-5-TR', '5TON/380V', NULL, '2017-09-08', '정일기공', 5700000, '정일기공', 'active'), +('TKP-016', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-005', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-017', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-006', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-018', 'TIG용접기', 'Perfect-500PT', '500A/350A', 'TJAD017B-007', '2017-10-18', '현대용접기', 1600000, '퍼펙트대대', 'active'), +('TKP-019', '전해연마기', 'ONB-8000VP', '220V/MAX1200W', '8022701', '2018-03-13', '오토기전', 1450000, '메탈브라이트(오토기전)', 'active'), +('TKP-020', '지게차', '50DA-9F', '5000KGS', 'HHKHFV36JJ0000061', '2018-05-10', '현대지게차', 45000000, '현대지게차', 'active'), +('TKP-021', '조방', NULL, '3658*12190', NULL, '2018-05-11', '천우기계공업/삼덕금속', 14200000, '테크니컬코리아', 'active'), +('TKP-022', 'BAND SAW(大)', 'WBS-RC500AN', '3,300kgs / 7.88kw', 'BC50A18-005F001', '2018-05-31', '원공사', 36000000, '원공사', 'active'), +('TKP-023', 'AIR COMPRESSOR', 'AR20E', '0.95Mpa', 'AR020FE358', '2018-06-05', '경원기계', NULL, '경원기계', 'active'), +('TKP-024', 'TURN TABLE', 'YCT-200TA', '220V', NULL, '2018-06-12', '청운종합공구', 3245000, '유체기계', 'active'), +('TKP-025', 'TIG용접기', 'Perfect-500WT', '500A/AC DC', 'ADKAC017B-006', '2018-06-12', '현대용접기', 2400000, '퍼펙트대대', 'active'), +('TKP-026', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAI018B-002', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-027', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAA018B-009', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-028', 'TIG용접기', 'Perfect-500PT', '500A/DC', 'TAAA018B-001', '2018-06-12', '현대용접기', 1900000, '퍼펙트대대', 'active'), +('TKP-029', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1806077', '2018-07-06', '청운종합공구', 2300000, '대산', 'active'), +('TKP-030', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1807028', '2018-07-10', '청운종합공구', 2300000, '대산', 'active'), +('TKP-031', 'ELECTRIC CHAIN HOIST', 'DSM-2S', '3Ph-60Hz-380V', 'K1807029', '2018-07-10', '청운종합공구', 2300000, '대산', 'active'), +('TKP-032', '만능탭 드릴링머신', 'SF-TDM32', '1.5KW', NULL, '2018-11-09', '㈜애스앤애프', 2927000, '㈜애스앤에프', 'active'), +('TKP-033', '지게차', '30D-9B', '2850KGS', 'HHKHHN51KK0000864', '2019-03-06', '현대지게차', 29400000, '현대지게차', 'active'), +('TKP-034', '갠츄리크레인', 'CRANE - DHG', '50/10Ton x SP20M x T/L50M x H15M', NULL, '2019-05-09', '유진산업기계', 249000000, '반도호이스트', 'active'), +('TKP-035', 'OVER HEAD CRANE', 'CRANE - DHO', '20Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 58000000, '반도호이스트', 'active'), +('TKP-036', 'OVER HEAD CRANE', 'CRANE - DHO', '20Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 58000000, '반도호이스트', 'active'), +('TKP-037', 'OVER HEAD CRANE', 'CRANE - DHO', '5Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 29000000, '반도호이스트', 'active'), +('TKP-038', 'OVER HEAD CRANE', 'CRANE - DHO', '5Ton x SP24.0M x T/L67M x H11M', NULL, '2019-05-09', '유진산업기계', 29000000, '반도호이스트', 'active'), +('TKP-039', '고소작업대', NULL, '250 Kg', NULL, '2019-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-040', '고소작업대', NULL, '250 Kg', NULL, '2019-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-041', 'AIR CONDITIONER', '코끼리 냉장고', NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-042', 'AIR CONDITIONER', NULL, NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-043', 'AIR CONDITIONER', NULL, NULL, NULL, '2019-01-01', NULL, NULL, '㈜에스엔에프', 'active'), +('TKP-044', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-045', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-046', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-047', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-048', '용접흄집진기', NULL, '5 HP / 60 m3/Min', NULL, '2019-01-01', NULL, NULL, NULL, 'active'), +('TKP-049', '자동용접기', NULL, NULL, NULL, '2019-01-01', 'Swage-Lok', 50000000, 'Swage-Lok', 'active'), +('TKP-050', 'Magnetic Drill', NULL, NULL, NULL, '2020-01-01', '청운종합공구', NULL, 'NITTO', 'active'), +('TKP-051', 'Magnetic Drill', NULL, NULL, NULL, '2020-01-01', '청운종합공구', NULL, 'Key-Yang', 'active'), +('TKP-052', 'Tube Bending M/C', NULL, NULL, NULL, '2020-01-01', NULL, NULL, 'REMS', 'active'), +('TKP-053', 'Unit Test Panel', NULL, NULL, NULL, '2021-01-01', NULL, NULL, NULL, 'active'), +('TKP-054', '고소작업대', NULL, '500 Kg', NULL, '2021-01-01', NULL, NULL, '㈜쓰리제이테크', 'active'), +('TKP-055', '용접봉 건조기', '주문제작', '박스형', NULL, '2022-05-04', '진원하이텍', 2300000, '진원하이텍', 'active'), +('TKP-056', 'C&T 가공기', 'MS-CTK469', NULL, NULL, '2022-07-20', 'Swage-Lok', 7347600, 'Swage-Lok', 'active'), +('TKP-057', '테이블형 튜브 벤딩기', 'MS-BTT-K', '1/2", 1/4"', NULL, '2022-06-03', 'Swage-Lok', 20000000, 'Swage-Lok', 'active'), +('TKP-058', '자동용접기 헤드', 'SWS-10H-D-15', '1/2"', NULL, '2022-06-03', 'Swage-Lok', 20000000, 'Swage-Lok', 'active'), +('TKP-059', '천장주행크레인', 'HC-75D-13105', '7.5ton', NULL, '2023-06-09', '에이치앤씨', 22800000, '에이치앤씨', 'active'), +('TKP-060', 'AED', 'CU-SP1 Plus', '저출력심장충격기', NULL, '2023-11-09', '제이메디', 1600000, '제이메디', 'active'), +('TKP-061', '베벨머신', 'S-150', 'O.D 20mm ~ 170mm', NULL, '2023-12-12', 'DCSENG', 16000000, 'DCSENG', 'active'), +('TKP-062', '피막제거기', 'CM4_OD_GC', '최대 폭 48mm, 최대 깊이 15mm, 6"이상', NULL, '2023-12-12', 'DCSENG', 2000000, 'DCSENG', 'active'), +('TKP-063', '피막제거기', 'S-CM4_OD', '최대 폭 48mm, 최대 깊이 15mm, 1" 이상', NULL, '2023-12-12', 'DCSENG', 1200000, 'DCSENG', 'active'), +('TKP-064', '텅스텐 가공기', 'S-TGR', '0.89kg, 0.25~3.2', NULL, '2023-12-12', 'DCSENG', 800000, 'DCSENG', 'active'), +('TKP-065', '전동대차', 'LPM15', '2.0 ton', NULL, '2023-12-20', '두산산업차량', 2800000, '두산산업차량', 'active'); + +-- 입력 확인 +SELECT COUNT(*) AS total_count FROM equipments; +SELECT equipment_code, equipment_name, supplier, purchase_price, manufacturer FROM equipments ORDER BY equipment_code LIMIT 10; diff --git a/deploy/tkfb-package/api.hyungi.net/db/migrations/sync_production_attendance.sql b/deploy/tkfb-package/api.hyungi.net/db/migrations/sync_production_attendance.sql new file mode 100644 index 0000000..2740b71 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db/migrations/sync_production_attendance.sql @@ -0,0 +1,34 @@ +-- ===================================================== +-- daily_attendance_records 테이블 운영 DB 동기화 +-- 실행 전 백업 권장 +-- ===================================================== + +-- 1. is_present 컬럼 추가 (출근 체크용) +ALTER TABLE `daily_attendance_records` +ADD COLUMN IF NOT EXISTS `is_present` TINYINT(1) DEFAULT 1 COMMENT '출근 여부' AFTER `is_overtime_approved`; + +-- 기존 데이터는 모두 출근으로 설정 +UPDATE `daily_attendance_records` SET `is_present` = 1 WHERE `is_present` IS NULL; + +-- 2. created_by 컬럼 추가 (등록자) +ALTER TABLE `daily_attendance_records` +ADD COLUMN IF NOT EXISTS `created_by` INT NULL COMMENT '등록자 user_id' AFTER `is_present`; + +-- 기존 데이터는 시스템(1)으로 설정 +UPDATE `daily_attendance_records` SET `created_by` = 1 WHERE `created_by` IS NULL; + +-- 3. check_in_time, check_out_time 컬럼 추가 (선택사항) +ALTER TABLE `daily_attendance_records` +ADD COLUMN IF NOT EXISTS `check_in_time` TIME NULL COMMENT '출근 시간' AFTER `vacation_type_id`; + +ALTER TABLE `daily_attendance_records` +ADD COLUMN IF NOT EXISTS `check_out_time` TIME NULL COMMENT '퇴근 시간' AFTER `check_in_time`; + +-- 4. notes 컬럼 추가 +ALTER TABLE `daily_attendance_records` +ADD COLUMN IF NOT EXISTS `notes` TEXT NULL COMMENT '비고' AFTER `is_overtime_approved`; + +-- ===================================================== +-- 확인용 쿼리 +-- ===================================================== +-- DESCRIBE `daily_attendance_records`; diff --git a/deploy/tkfb-package/api.hyungi.net/dbPool.js b/deploy/tkfb-package/api.hyungi.net/dbPool.js new file mode 100644 index 0000000..79976ee --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/dbPool.js @@ -0,0 +1,11 @@ +/** + * 데이터베이스 풀 (호환성 레거시 파일) + * + * @deprecated 이 파일은 하위 호환성을 위해 유지됩니다. + * 새로운 코드에서는 './config/database'를 직접 import하세요. + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +module.exports = require('./config/database'); diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/daily_work_reports_backup_20250902_081944.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/daily_work_reports_backup_20250902_081944.sql new file mode 100644 index 0000000..b268d63 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/daily_work_reports_backup_20250902_081944.sql @@ -0,0 +1,774 @@ +-- MariaDB dump 10.19 Distrib 10.9.8-MariaDB, for debian-linux-gnu (aarch64) +-- +-- Host: localhost Database: hyungi_dev +-- ------------------------------------------------------ +-- Server version 10.9.8-MariaDB-1:10.9.8+maria~ubu2204 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `daily_work_reports` +-- + +DROP TABLE IF EXISTS `daily_work_reports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `daily_work_reports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `report_date` date NOT NULL COMMENT '작업 날짜', + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `project_id` int(11) NOT NULL COMMENT '프로젝트 ID', + `work_type_id` int(11) NOT NULL COMMENT '작업 유형 ID', + `work_status_id` int(11) DEFAULT 1 COMMENT '업무 상태 ID (1:정규, 2:에러)', + `error_type_id` int(11) DEFAULT NULL COMMENT '에러 유형 ID (에러일 때만)', + `work_hours` decimal(4,2) NOT NULL COMMENT '작업 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `created_by` int(11) NOT NULL DEFAULT 1 COMMENT '작성자 user_id', + `updated_by` int(11) DEFAULT NULL COMMENT '수정자 user_id', + PRIMARY KEY (`id`), + KEY `idx_report_date` (`report_date`), + KEY `idx_worker_date` (`worker_id`,`report_date`), + KEY `idx_project_date` (`project_id`,`report_date`), + KEY `idx_work_type` (`work_type_id`), + KEY `idx_work_status` (`work_status_id`), + KEY `idx_error_type` (`error_type_id`), + KEY `idx_created_by` (`created_by`), + KEY `idx_date_worker_creator` (`report_date`,`worker_id`,`created_by`) +) ENGINE=InnoDB AUTO_INCREMENT=741 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_work_reports` +-- + +LOCK TABLES `daily_work_reports` WRITE; +/*!40000 ALTER TABLE `daily_work_reports` DISABLE KEYS */; +INSERT INTO `daily_work_reports` VALUES +(14,'2025-06-02',1,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL), +(15,'2025-06-02',3,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL), +(16,'2025-06-02',4,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL), +(17,'2025-06-02',6,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL), +(18,'2025-06-02',7,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL), +(19,'2025-06-02',9,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL), +(20,'2025-06-02',2,3,2,1,NULL,8.00,'2025-06-16 05:10:47','2025-06-16 05:10:47',1,NULL), +(21,'2025-06-04',1,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL), +(22,'2025-06-04',3,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL), +(23,'2025-06-04',5,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL), +(24,'2025-06-04',7,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL), +(25,'2025-06-04',9,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL), +(26,'2025-06-04',10,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL), +(27,'2025-06-04',2,3,2,1,NULL,8.00,'2025-06-16 05:12:07','2025-06-16 05:12:07',1,NULL), +(28,'2025-06-04',6,3,2,1,NULL,8.00,'2025-06-16 05:12:07','2025-06-16 05:12:07',1,NULL), +(29,'2025-06-04',8,3,2,1,NULL,8.00,'2025-06-16 05:12:07','2025-06-16 05:12:07',1,NULL), +(30,'2025-06-05',1,4,3,2,1,8.00,'2025-06-16 05:12:57','2025-06-16 05:12:57',1,NULL), +(31,'2025-06-05',3,4,3,2,1,8.00,'2025-06-16 05:12:57','2025-06-16 05:12:57',1,NULL), +(32,'2025-06-05',4,4,3,2,1,8.00,'2025-06-16 05:12:57','2025-06-16 05:12:57',1,NULL), +(33,'2025-06-05',7,4,3,2,1,8.00,'2025-06-16 05:12:57','2025-06-16 05:12:57',1,NULL), +(34,'2025-06-05',10,4,3,2,1,8.00,'2025-06-16 05:12:57','2025-06-16 05:12:57',1,NULL), +(35,'2025-06-05',9,4,3,2,1,8.00,'2025-06-16 05:12:57','2025-06-16 05:12:57',1,NULL), +(36,'2025-06-05',2,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL), +(37,'2025-06-05',5,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL), +(38,'2025-06-05',6,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL), +(39,'2025-06-05',8,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL), +(40,'2025-06-16',5,3,2,1,NULL,8.00,'2025-06-16 06:12:01','2025-06-16 06:12:01',5,NULL), +(43,'2025-06-16',2,3,2,1,NULL,8.00,'2025-06-16 06:12:01','2025-06-16 06:12:01',5,NULL), +(44,'2025-06-16',6,3,2,2,4,4.00,'2025-06-16 06:13:02','2025-06-16 06:13:02',5,NULL), +(45,'2025-06-16',6,3,2,1,NULL,4.00,'2025-06-16 06:13:50','2025-06-16 06:13:50',5,NULL), +(46,'2025-06-16',8,3,2,2,4,4.00,'2025-06-16 06:15:22','2025-06-16 06:15:22',5,NULL), +(47,'2025-06-16',8,3,2,1,NULL,4.00,'2025-06-16 06:15:22','2025-06-16 06:15:22',5,NULL), +(48,'2025-06-16',4,4,3,2,1,8.00,'2025-06-16 06:46:44','2025-06-16 06:46:44',3,NULL), +(50,'2025-06-16',1,4,3,2,1,8.00,'2025-06-16 06:46:44','2025-06-16 06:46:44',3,NULL), +(51,'2025-06-16',9,4,3,1,NULL,8.00,'2025-06-16 06:48:29','2025-06-16 06:48:29',3,NULL), +(52,'2025-06-16',10,4,3,1,NULL,6.00,'2025-06-16 06:50:09','2025-06-16 06:50:09',6,NULL), +(53,'2025-06-16',10,4,3,2,1,2.00,'2025-06-16 06:50:09','2025-06-16 06:50:09',6,NULL), +(54,'2025-06-16',3,4,3,1,NULL,6.00,'2025-06-16 06:50:09','2025-06-16 06:50:09',6,NULL), +(55,'2025-06-16',3,4,3,2,1,2.00,'2025-06-16 06:50:09','2025-06-16 06:50:09',6,NULL), +(56,'2025-06-17',2,3,2,1,NULL,8.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL), +(57,'2025-06-17',2,3,2,1,NULL,2.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL), +(58,'2025-06-17',5,3,2,1,NULL,8.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL), +(59,'2025-06-17',5,3,2,1,NULL,2.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL), +(60,'2025-06-17',6,3,2,1,NULL,8.00,'2025-06-17 08:24:33','2025-06-17 08:24:33',5,NULL), +(61,'2025-06-17',6,3,2,2,4,2.00,'2025-06-17 08:24:33','2025-06-17 08:24:33',5,NULL), +(62,'2025-06-17',8,3,2,1,NULL,8.00,'2025-06-17 08:24:33','2025-06-17 08:24:33',5,NULL), +(63,'2025-06-17',8,3,2,2,4,2.00,'2025-06-17 08:24:33','2025-06-17 08:24:33',5,NULL), +(65,'2025-06-17',9,4,3,2,1,4.00,'2025-06-17 08:25:24','2025-06-17 08:25:24',3,NULL), +(66,'2025-06-17',1,4,3,2,1,4.00,'2025-06-17 08:27:06','2025-06-17 08:27:06',3,NULL), +(67,'2025-06-17',4,4,3,2,1,4.00,'2025-06-17 08:27:06','2025-06-17 08:27:06',3,NULL), +(68,'2025-06-17',1,4,3,1,NULL,4.00,'2025-06-17 08:31:06','2025-06-17 08:31:06',3,NULL), +(69,'2025-06-17',9,4,3,1,NULL,4.00,'2025-06-17 08:31:06','2025-06-17 08:31:06',3,NULL), +(70,'2025-06-17',4,4,3,1,NULL,4.00,'2025-06-17 08:31:06','2025-06-17 08:31:06',3,NULL), +(71,'2025-06-17',9,4,3,1,NULL,2.00,'2025-06-17 08:33:06','2025-06-17 08:33:06',3,NULL), +(72,'2025-06-17',4,4,3,1,NULL,2.00,'2025-06-17 08:33:06','2025-06-17 08:33:06',3,NULL), +(73,'2025-06-17',1,4,3,1,NULL,2.00,'2025-06-17 08:33:06','2025-06-17 08:33:06',3,NULL), +(74,'2025-06-17',10,4,3,1,NULL,8.00,'2025-06-17 08:34:11','2025-06-17 08:34:11',6,NULL), +(75,'2025-06-17',10,4,3,2,1,2.00,'2025-06-17 08:34:11','2025-06-17 08:34:11',6,NULL), +(76,'2025-06-17',3,4,3,1,NULL,8.00,'2025-06-17 08:34:11','2025-06-17 08:34:11',6,NULL), +(77,'2025-06-17',3,4,3,2,1,2.00,'2025-06-17 08:34:11','2025-06-17 08:34:11',6,NULL), +(78,'2025-06-18',6,3,2,1,NULL,8.00,'2025-06-18 08:40:27','2025-06-18 08:40:27',5,NULL), +(79,'2025-06-18',2,3,2,1,NULL,8.00,'2025-06-18 08:40:27','2025-06-18 08:40:27',5,NULL), +(80,'2025-06-18',8,3,2,1,NULL,8.00,'2025-06-18 08:40:27','2025-06-18 08:40:27',5,NULL), +(81,'2025-06-18',2,3,2,1,NULL,2.00,'2025-06-18 08:41:02','2025-06-18 08:41:02',5,NULL), +(82,'2025-06-18',6,3,2,1,NULL,2.00,'2025-06-18 08:41:03','2025-06-18 08:41:03',5,NULL), +(83,'2025-06-18',8,3,2,1,NULL,2.00,'2025-06-18 08:41:03','2025-06-18 08:41:03',5,NULL), +(84,'2025-06-18',5,4,3,1,NULL,8.00,'2025-06-18 08:41:45','2025-06-18 08:41:45',5,NULL), +(85,'2025-06-18',5,4,3,1,NULL,2.00,'2025-06-18 08:41:45','2025-06-18 08:41:45',5,NULL), +(86,'2025-06-18',10,4,3,1,NULL,9.00,'2025-06-18 08:47:55','2025-06-18 08:47:55',6,NULL), +(87,'2025-06-18',10,4,3,2,1,1.00,'2025-06-18 08:47:55','2025-06-18 08:47:55',6,NULL), +(88,'2025-06-18',3,4,3,1,NULL,9.00,'2025-06-18 08:47:55','2025-06-18 08:47:55',6,NULL), +(89,'2025-06-18',3,4,3,2,1,1.00,'2025-06-18 08:47:55','2025-06-18 08:47:55',6,NULL), +(90,'2025-06-18',4,4,3,2,1,4.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL), +(91,'2025-06-18',4,4,3,1,NULL,6.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL), +(92,'2025-06-18',9,4,3,2,1,4.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL), +(93,'2025-06-18',9,4,3,1,NULL,6.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL), +(94,'2025-06-18',1,4,3,2,1,4.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL), +(95,'2025-06-18',1,4,3,1,NULL,6.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL), +(96,'2025-06-18',7,4,3,2,1,4.00,'2025-06-18 09:00:17','2025-06-18 09:00:17',3,NULL), +(97,'2025-06-18',7,4,3,1,NULL,6.00,'2025-06-18 09:00:17','2025-06-18 09:00:17',3,NULL), +(98,'2025-06-19',8,3,2,1,NULL,8.00,'2025-06-19 06:37:59','2025-06-19 06:37:59',5,NULL), +(99,'2025-06-19',2,3,2,1,NULL,8.00,'2025-06-19 06:37:59','2025-06-19 06:37:59',5,NULL), +(100,'2025-06-19',10,4,3,1,NULL,8.00,'2025-06-19 06:59:36','2025-06-19 06:59:36',6,NULL), +(101,'2025-06-19',3,4,3,1,NULL,8.00,'2025-06-19 06:59:36','2025-06-19 06:59:36',6,NULL), +(102,'2025-06-19',5,4,3,1,NULL,8.00,'2025-06-19 06:59:36','2025-06-19 06:59:36',6,NULL), +(103,'2025-06-19',9,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL), +(104,'2025-06-19',9,4,3,2,1,2.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL), +(105,'2025-06-19',4,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL), +(106,'2025-06-19',4,4,3,2,1,2.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL), +(107,'2025-06-19',1,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL), +(108,'2025-06-19',1,4,3,2,1,2.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL), +(109,'2025-06-19',7,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL), +(110,'2025-06-19',7,4,3,2,1,2.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL), +(111,'2025-06-19',6,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL), +(112,'2025-06-19',6,4,3,2,1,2.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL), +(113,'2025-06-20',9,4,3,2,1,2.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL), +(114,'2025-06-20',9,4,3,1,NULL,6.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL), +(115,'2025-06-20',4,4,3,2,1,2.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL), +(116,'2025-06-20',4,4,3,1,NULL,6.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL), +(117,'2025-06-20',7,4,3,2,1,2.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL), +(118,'2025-06-20',7,4,3,1,NULL,6.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL), +(119,'2025-06-20',6,4,3,2,1,2.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL), +(120,'2025-06-20',6,4,3,1,NULL,6.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL), +(121,'2025-06-20',1,4,3,2,1,2.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL), +(122,'2025-06-20',1,4,3,1,NULL,6.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL), +(123,'2025-06-20',5,4,3,2,1,2.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL), +(124,'2025-06-20',5,4,3,1,NULL,6.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL), +(125,'2025-06-20',10,4,3,1,NULL,8.00,'2025-06-20 06:45:30','2025-06-20 06:45:30',6,NULL), +(126,'2025-06-20',3,4,3,1,NULL,8.00,'2025-06-20 06:45:31','2025-06-20 06:45:31',6,NULL), +(127,'2025-06-23',10,4,3,1,NULL,8.00,'2025-06-23 06:42:58','2025-06-23 06:42:58',6,NULL), +(128,'2025-06-23',3,4,3,1,NULL,8.00,'2025-06-23 06:42:58','2025-06-23 06:42:58',6,NULL), +(129,'2025-06-23',5,4,3,2,1,2.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(130,'2025-06-23',5,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(131,'2025-06-23',1,4,3,2,1,2.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(132,'2025-06-23',1,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(133,'2025-06-23',9,4,3,2,1,2.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(134,'2025-06-23',9,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(135,'2025-06-23',4,4,3,2,1,2.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(136,'2025-06-23',4,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(137,'2025-06-23',7,4,3,2,1,2.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(138,'2025-06-23',7,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(139,'2025-06-23',6,4,3,2,1,2.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(140,'2025-06-23',6,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL), +(141,'2025-06-24',10,4,3,1,NULL,12.00,'2025-06-24 11:10:32','2025-06-24 11:10:32',6,NULL), +(142,'2025-06-24',3,4,3,1,NULL,12.00,'2025-06-24 11:10:32','2025-06-24 11:10:32',6,NULL), +(143,'2025-06-24',9,4,3,2,1,2.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(144,'2025-06-24',9,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(145,'2025-06-24',5,4,3,2,1,2.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(146,'2025-06-24',5,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(147,'2025-06-24',4,4,3,2,1,2.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(148,'2025-06-24',4,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(149,'2025-06-24',7,4,3,2,1,2.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(150,'2025-06-24',7,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(151,'2025-06-24',6,4,3,2,1,2.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(152,'2025-06-24',6,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(153,'2025-06-24',1,4,3,2,1,2.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(154,'2025-06-24',1,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL), +(155,'2025-06-24',8,3,2,1,NULL,8.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL), +(156,'2025-06-24',8,3,2,1,NULL,4.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL), +(157,'2025-06-24',2,3,2,1,NULL,8.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL), +(158,'2025-06-24',2,3,2,1,NULL,4.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL), +(159,'2025-06-25',2,3,2,1,NULL,8.00,'2025-06-25 11:08:04','2025-06-25 11:08:04',5,NULL), +(160,'2025-06-25',2,3,2,1,NULL,4.00,'2025-06-25 11:08:04','2025-06-25 11:08:04',5,NULL), +(161,'2025-06-25',8,3,2,1,NULL,8.00,'2025-06-25 11:08:05','2025-06-25 11:08:05',5,NULL), +(162,'2025-06-25',8,3,2,1,NULL,4.00,'2025-06-25 11:08:05','2025-06-25 11:08:05',5,NULL), +(163,'2025-06-25',10,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL), +(164,'2025-06-25',9,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL), +(165,'2025-06-25',3,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL), +(166,'2025-06-25',6,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL), +(167,'2025-06-26',10,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL), +(168,'2025-06-26',5,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL), +(169,'2025-06-26',7,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL), +(170,'2025-06-26',1,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL), +(171,'2025-06-26',4,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL), +(172,'2025-06-26',8,3,2,1,NULL,8.00,'2025-06-26 11:11:31','2025-06-26 11:11:31',5,NULL), +(173,'2025-06-26',8,3,2,1,NULL,4.00,'2025-06-26 11:11:31','2025-06-26 11:11:31',5,NULL), +(174,'2025-06-26',2,3,2,1,NULL,8.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL), +(175,'2025-06-26',2,3,2,1,NULL,4.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL), +(176,'2025-06-26',9,3,2,1,NULL,8.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL), +(177,'2025-06-26',9,3,2,1,NULL,4.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL), +(178,'2025-06-26',3,3,2,1,NULL,12.00,'2025-06-26 11:19:34','2025-06-26 11:19:34',6,NULL), +(179,'2025-06-26',6,3,2,1,NULL,12.00,'2025-06-26 11:19:34','2025-06-26 11:19:34',6,NULL), +(182,'2025-06-27',2,3,2,1,NULL,4.00,'2025-06-27 01:54:40','2025-06-27 01:54:40',5,NULL), +(183,'2025-06-27',9,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL), +(184,'2025-06-27',10,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL), +(185,'2025-06-27',7,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL), +(186,'2025-06-27',5,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL), +(187,'2025-06-27',4,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL), +(188,'2025-06-27',1,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL), +(189,'2025-06-27',3,3,2,1,NULL,8.00,'2025-06-27 06:49:08','2025-06-27 06:49:08',6,NULL), +(191,'2025-06-27',6,3,2,1,NULL,4.00,'2025-06-27 06:58:46','2025-06-27 06:58:46',6,NULL), +(192,'2025-06-27',8,3,2,1,NULL,6.00,'2025-06-27 07:00:10','2025-06-27 07:00:10',5,NULL), +(193,'2025-06-30',6,3,2,2,4,2.00,'2025-07-05 01:37:29','2025-07-05 01:37:29',3,NULL), +(194,'2025-06-30',6,3,2,1,NULL,2.00,'2025-07-05 01:37:29','2025-07-07 04:15:25',3,3), +(195,'2025-06-30',2,3,2,1,NULL,4.00,'2025-07-05 01:38:19','2025-07-07 04:15:40',3,3), +(196,'2025-06-30',3,3,2,1,NULL,8.00,'2025-07-05 01:38:19','2025-07-05 01:38:19',3,NULL), +(197,'2025-06-30',8,3,2,1,NULL,6.00,'2025-07-05 01:38:19','2025-07-07 04:15:02',3,3), +(198,'2025-07-01',3,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL), +(199,'2025-07-01',2,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL), +(200,'2025-07-01',6,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL), +(201,'2025-07-01',8,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL), +(202,'2025-07-01',10,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL), +(203,'2025-07-01',9,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL), +(204,'2025-07-01',2,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:42:08',3,3), +(205,'2025-07-01',3,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:42:02',3,3), +(206,'2025-07-01',6,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:41:56',3,3), +(207,'2025-07-01',8,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:41:48',3,3), +(208,'2025-07-01',9,3,2,2,4,2.00,'2025-07-05 01:40:10','2025-07-05 01:40:10',3,NULL), +(209,'2025-07-01',10,3,2,2,4,2.00,'2025-07-05 01:40:10','2025-07-05 01:40:10',3,NULL), +(210,'2025-07-01',7,4,3,1,NULL,5.00,'2025-07-05 01:42:57','2025-07-05 01:42:57',3,NULL), +(211,'2025-07-01',7,4,3,2,2,3.00,'2025-07-05 01:42:57','2025-07-05 01:42:57',3,NULL), +(212,'2025-07-01',5,4,3,1,NULL,8.00,'2025-07-05 01:42:57','2025-07-07 04:21:24',3,3), +(213,'2025-07-01',5,4,3,2,2,4.00,'2025-07-05 01:42:57','2025-07-07 04:21:10',3,3), +(214,'2025-07-01',4,4,3,1,NULL,8.00,'2025-07-05 01:42:57','2025-07-07 04:21:41',3,3), +(215,'2025-07-01',4,4,3,2,2,4.00,'2025-07-05 01:42:57','2025-07-07 04:21:32',3,3), +(216,'2025-07-01',1,4,3,1,NULL,5.00,'2025-07-05 01:42:57','2025-07-05 01:42:57',3,NULL), +(217,'2025-07-01',1,4,3,2,2,3.00,'2025-07-05 01:42:57','2025-07-05 01:42:57',3,NULL), +(218,'2025-07-02',2,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL), +(219,'2025-07-02',3,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL), +(220,'2025-07-02',10,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL), +(221,'2025-07-02',9,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL), +(222,'2025-07-02',8,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL), +(223,'2025-07-02',6,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL), +(224,'2025-07-02',7,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL), +(225,'2025-07-02',5,4,3,2,2,4.00,'2025-07-05 01:44:11','2025-07-05 01:44:11',3,NULL), +(226,'2025-07-02',5,4,3,1,NULL,6.00,'2025-07-05 01:44:11','2025-07-05 01:44:54',3,3), +(227,'2025-07-02',4,4,3,2,2,4.00,'2025-07-05 01:44:11','2025-07-05 01:44:11',3,NULL), +(228,'2025-07-02',4,4,3,1,NULL,6.00,'2025-07-05 01:44:11','2025-07-05 01:44:59',3,3), +(229,'2025-07-02',1,4,3,2,2,4.00,'2025-07-05 01:44:11','2025-07-05 01:44:11',3,NULL), +(230,'2025-07-02',1,4,3,1,NULL,6.00,'2025-07-05 01:44:11','2025-07-05 01:45:05',3,3), +(231,'2025-07-03',2,3,2,1,NULL,10.00,'2025-07-05 01:45:44','2025-07-05 01:45:44',3,NULL), +(232,'2025-07-03',6,3,2,1,NULL,10.00,'2025-07-05 01:45:45','2025-07-05 01:45:45',3,NULL), +(233,'2025-07-03',9,3,2,1,NULL,10.00,'2025-07-05 01:45:45','2025-07-05 01:45:45',3,NULL), +(234,'2025-07-03',8,3,2,1,NULL,10.00,'2025-07-05 01:45:45','2025-07-05 01:45:45',3,NULL), +(235,'2025-07-03',7,4,3,1,NULL,10.00,'2025-07-05 01:46:07','2025-07-05 01:46:07',3,NULL), +(236,'2025-07-03',1,4,3,1,NULL,10.00,'2025-07-05 01:46:07','2025-07-05 01:46:07',3,NULL), +(237,'2025-07-03',3,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL), +(238,'2025-07-03',4,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL), +(239,'2025-07-03',5,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL), +(240,'2025-07-03',10,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL), +(241,'2025-07-04',10,4,3,2,2,2.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(242,'2025-07-04',10,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(243,'2025-07-04',5,4,3,2,2,2.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(244,'2025-07-04',5,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(245,'2025-07-04',4,4,3,2,2,2.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(246,'2025-07-04',4,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(247,'2025-07-04',9,4,3,2,2,2.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(248,'2025-07-04',9,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(249,'2025-07-04',8,4,3,2,2,2.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(250,'2025-07-04',8,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(251,'2025-07-04',3,4,3,2,2,2.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(252,'2025-07-04',3,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(253,'2025-07-04',2,4,3,2,2,2.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(254,'2025-07-04',2,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(255,'2025-07-04',7,4,3,2,2,2.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(256,'2025-07-04',7,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(257,'2025-07-04',6,4,3,2,2,2.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(258,'2025-07-04',6,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(259,'2025-07-04',1,4,3,2,2,2.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(260,'2025-07-04',1,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL), +(261,'2025-07-05',8,4,2,1,NULL,8.00,'2025-07-05 05:36:38','2025-07-05 05:36:38',5,NULL), +(262,'2025-07-05',5,4,2,1,NULL,8.00,'2025-07-05 05:36:38','2025-07-05 05:36:38',5,NULL), +(263,'2025-07-05',4,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL), +(264,'2025-07-05',3,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL), +(265,'2025-07-05',2,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL), +(266,'2025-07-05',1,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL), +(267,'2025-07-06',10,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:08',5,3), +(268,'2025-07-06',9,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:16',5,3), +(269,'2025-07-06',7,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:22',5,3), +(270,'2025-07-06',6,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:27',5,3), +(271,'2025-07-06',4,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:33',5,3), +(272,'2025-07-06',3,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:39',5,3), +(273,'2025-07-06',2,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:44',5,3), +(274,'2025-07-06',1,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:49',5,3), +(275,'2025-07-07',10,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL), +(276,'2025-07-07',9,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL), +(277,'2025-07-07',8,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL), +(278,'2025-07-07',7,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL), +(279,'2025-07-07',3,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL), +(280,'2025-07-07',4,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL), +(281,'2025-07-07',5,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL), +(282,'2025-07-07',6,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL), +(283,'2025-07-07',2,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL), +(284,'2025-07-07',1,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL), +(285,'2025-07-08',10,4,3,1,NULL,8.00,'2025-07-08 06:36:57','2025-07-08 06:36:57',3,NULL), +(286,'2025-07-08',9,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL), +(287,'2025-07-08',8,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL), +(288,'2025-07-08',7,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL), +(289,'2025-07-08',6,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL), +(290,'2025-07-08',1,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL), +(291,'2025-07-08',2,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL), +(292,'2025-07-08',3,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL), +(293,'2025-07-08',5,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL), +(294,'2025-07-08',4,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL), +(295,'2025-07-09',10,4,3,1,NULL,8.00,'2025-07-09 22:08:40','2025-07-09 22:08:40',5,NULL), +(296,'2025-07-09',9,4,3,1,NULL,8.00,'2025-07-09 22:08:40','2025-07-09 22:08:40',5,NULL), +(297,'2025-07-09',8,4,3,1,NULL,8.00,'2025-07-09 22:08:40','2025-07-09 22:08:40',5,NULL), +(298,'2025-07-09',7,4,3,1,NULL,8.00,'2025-07-09 22:08:41','2025-07-09 22:08:41',5,NULL), +(299,'2025-07-09',6,4,3,1,NULL,8.00,'2025-07-09 22:08:41','2025-07-09 22:08:41',5,NULL), +(300,'2025-07-09',2,4,3,1,NULL,8.00,'2025-07-09 22:08:41','2025-07-09 22:08:41',5,NULL), +(301,'2025-07-09',3,4,3,1,NULL,8.00,'2025-07-09 22:08:42','2025-07-09 22:08:42',5,NULL), +(302,'2025-07-09',4,4,3,1,NULL,8.00,'2025-07-09 22:08:42','2025-07-09 22:08:42',5,NULL), +(303,'2025-07-09',5,4,3,1,NULL,8.00,'2025-07-09 22:08:42','2025-07-09 22:08:42',5,NULL), +(304,'2025-07-09',1,4,3,1,NULL,4.00,'2025-07-09 22:09:10','2025-07-09 22:09:10',5,NULL), +(305,'2025-07-10',9,4,3,1,NULL,8.00,'2025-07-10 06:33:58','2025-07-10 06:33:58',3,NULL), +(306,'2025-07-10',8,4,3,1,NULL,8.00,'2025-07-10 06:33:58','2025-07-10 06:33:58',3,NULL), +(307,'2025-07-10',5,4,3,1,NULL,8.00,'2025-07-10 06:33:58','2025-07-10 06:33:58',3,NULL), +(308,'2025-07-10',6,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL), +(309,'2025-07-10',2,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL), +(310,'2025-07-10',3,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL), +(311,'2025-07-10',4,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL), +(312,'2025-07-10',1,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL), +(313,'2025-07-10',7,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL), +(314,'2025-07-10',10,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL), +(315,'2025-07-12',9,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL), +(316,'2025-07-12',8,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL), +(317,'2025-07-12',6,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL), +(318,'2025-07-12',5,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL), +(319,'2025-07-12',4,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL), +(320,'2025-07-12',2,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL), +(321,'2025-07-12',1,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL), +(322,'2025-07-14',8,4,3,1,NULL,6.00,'2025-07-14 06:46:30','2025-07-14 06:46:30',3,NULL), +(323,'2025-07-14',10,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL), +(324,'2025-07-14',9,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL), +(325,'2025-07-14',7,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL), +(326,'2025-07-14',6,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL), +(327,'2025-07-14',1,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL), +(328,'2025-07-14',2,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL), +(329,'2025-07-14',3,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL), +(330,'2025-07-14',4,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL), +(331,'2025-07-15',3,3,2,1,NULL,8.00,'2025-07-15 05:57:06','2025-07-15 05:57:06',5,NULL), +(332,'2025-07-15',9,3,2,1,NULL,8.00,'2025-07-15 05:57:06','2025-07-15 05:57:06',5,NULL), +(333,'2025-07-15',5,3,2,2,4,4.00,'2025-07-15 05:57:47','2025-07-15 05:57:47',5,NULL), +(334,'2025-07-15',5,4,3,1,NULL,4.00,'2025-07-15 05:57:47','2025-07-15 05:57:47',5,NULL), +(335,'2025-07-15',10,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL), +(336,'2025-07-15',8,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL), +(337,'2025-07-15',7,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL), +(338,'2025-07-15',6,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL), +(339,'2025-07-15',2,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL), +(340,'2025-07-15',1,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL), +(341,'2025-07-14',5,4,3,1,NULL,8.00,'2025-07-15 06:57:26','2025-07-15 06:57:26',3,NULL), +(342,'2025-07-16',4,4,3,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL), +(343,'2025-07-16',4,3,2,1,NULL,4.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL), +(344,'2025-07-16',4,3,2,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL), +(345,'2025-07-16',5,4,3,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL), +(346,'2025-07-16',5,3,2,1,NULL,4.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL), +(347,'2025-07-16',5,3,2,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL), +(348,'2025-07-16',10,4,3,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL), +(349,'2025-07-16',10,3,2,1,NULL,4.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL), +(350,'2025-07-16',10,3,2,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL), +(351,'2025-07-16',6,4,3,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL), +(352,'2025-07-16',6,3,2,1,NULL,4.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL), +(353,'2025-07-16',6,3,2,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL), +(354,'2025-07-16',9,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL), +(355,'2025-07-16',8,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL), +(356,'2025-07-16',3,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL), +(357,'2025-07-16',2,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL), +(358,'2025-07-16',1,4,3,1,NULL,8.00,'2025-07-16 06:51:31','2025-07-16 06:51:31',3,NULL), +(359,'2025-07-16',7,4,3,1,NULL,8.00,'2025-07-16 06:51:31','2025-07-16 06:51:31',3,NULL), +(360,'2025-07-17',1,3,3,1,NULL,8.00,'2025-07-17 06:45:22','2025-07-17 06:45:22',3,NULL), +(361,'2025-07-17',5,3,2,1,NULL,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL), +(362,'2025-07-17',5,3,2,2,4,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL), +(363,'2025-07-17',4,3,2,1,NULL,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL), +(364,'2025-07-17',4,3,2,2,4,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL), +(365,'2025-07-17',2,3,2,1,NULL,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL), +(366,'2025-07-17',2,3,2,2,4,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL), +(367,'2025-07-17',10,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL), +(368,'2025-07-17',9,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL), +(369,'2025-07-17',8,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL), +(370,'2025-07-17',7,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL), +(371,'2025-07-17',6,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL), +(372,'2025-07-17',3,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL), +(373,'2025-07-18',7,4,3,2,1,2.00,'2025-07-18 05:54:47','2025-07-18 05:54:47',3,NULL), +(374,'2025-07-18',1,4,3,2,1,2.00,'2025-07-18 05:54:48','2025-07-18 05:54:48',3,NULL), +(376,'2025-07-18',5,4,3,1,NULL,2.00,'2025-07-18 05:58:33','2025-07-18 05:58:33',3,NULL), +(377,'2025-07-18',5,3,2,1,NULL,6.00,'2025-07-18 05:58:33','2025-07-18 05:58:33',3,NULL), +(378,'2025-07-18',7,3,2,1,NULL,6.00,'2025-07-18 05:59:42','2025-07-18 05:59:42',3,NULL), +(379,'2025-07-18',1,3,3,1,NULL,6.00,'2025-07-18 06:00:15','2025-07-18 06:00:15',3,NULL), +(380,'2025-07-18',10,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL), +(381,'2025-07-18',9,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL), +(382,'2025-07-18',8,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL), +(383,'2025-07-18',6,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL), +(384,'2025-07-18',4,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL), +(385,'2025-07-18',3,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL), +(386,'2025-07-18',2,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL), +(387,'2025-07-21',5,4,3,2,1,4.00,'2025-07-21 06:40:08','2025-07-21 06:40:08',5,NULL), +(388,'2025-07-21',5,3,2,1,NULL,4.00,'2025-07-21 06:40:08','2025-07-21 06:40:08',5,NULL), +(389,'2025-07-21',4,4,3,2,1,4.00,'2025-07-21 06:40:08','2025-07-21 06:40:08',5,NULL), +(390,'2025-07-21',4,3,2,1,NULL,4.00,'2025-07-21 06:40:08','2025-07-21 06:40:08',5,NULL), +(391,'2025-07-21',10,3,2,1,NULL,6.00,'2025-07-21 06:40:32','2025-07-22 06:58:42',5,3), +(392,'2025-07-21',9,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL), +(393,'2025-07-21',8,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL), +(394,'2025-07-21',7,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL), +(395,'2025-07-21',6,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL), +(396,'2025-07-21',3,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL), +(397,'2025-07-21',2,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL), +(398,'2025-07-21',1,3,3,1,NULL,8.00,'2025-07-21 06:53:37','2025-07-21 06:53:37',3,NULL), +(399,'2025-07-22',10,3,2,1,NULL,8.00,'2025-07-22 06:45:47','2025-07-22 06:45:47',5,NULL), +(400,'2025-07-22',9,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL), +(401,'2025-07-22',8,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL), +(402,'2025-07-22',7,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL), +(403,'2025-07-22',6,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL), +(404,'2025-07-22',4,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL), +(405,'2025-07-22',3,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL), +(406,'2025-07-22',2,4,3,2,1,8.00,'2025-07-22 06:46:11','2025-07-22 06:46:11',5,NULL), +(407,'2025-07-22',5,3,3,1,NULL,8.00,'2025-07-22 06:46:11','2025-07-22 06:46:11',3,NULL), +(408,'2025-07-22',1,3,3,1,NULL,8.00,'2025-07-22 06:46:11','2025-07-22 06:46:11',3,NULL), +(409,'2025-07-23',4,3,3,1,NULL,8.00,'2025-07-23 06:45:06','2025-07-23 06:45:06',5,NULL), +(410,'2025-07-23',5,3,3,1,NULL,8.00,'2025-07-23 06:45:28','2025-07-23 06:45:28',3,NULL), +(411,'2025-07-23',1,3,3,1,NULL,8.00,'2025-07-23 06:45:28','2025-07-23 06:45:28',3,NULL), +(412,'2025-07-23',10,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL), +(413,'2025-07-23',9,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL), +(414,'2025-07-23',7,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL), +(415,'2025-07-23',6,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL), +(416,'2025-07-23',3,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL), +(417,'2025-07-23',2,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL), +(418,'2025-07-24',4,3,3,1,NULL,8.00,'2025-07-24 06:36:55','2025-07-24 06:36:55',5,NULL), +(419,'2025-07-24',10,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL), +(420,'2025-07-24',9,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL), +(421,'2025-07-24',7,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL), +(422,'2025-07-24',6,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL), +(423,'2025-07-24',3,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL), +(424,'2025-07-24',2,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL), +(425,'2025-07-24',5,3,3,1,NULL,8.00,'2025-07-24 06:47:04','2025-07-24 06:47:04',3,NULL), +(426,'2025-07-24',1,3,3,1,NULL,8.00,'2025-07-24 06:47:04','2025-07-24 06:47:04',3,NULL), +(427,'2025-07-25',4,3,3,1,NULL,8.00,'2025-07-25 06:44:23','2025-07-25 06:44:23',5,NULL), +(428,'2025-07-25',10,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL), +(429,'2025-07-25',9,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL), +(430,'2025-07-25',8,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL), +(431,'2025-07-25',6,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL), +(432,'2025-07-25',3,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL), +(433,'2025-07-25',2,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL), +(434,'2025-07-25',5,4,3,1,NULL,8.00,'2025-07-25 06:45:18','2025-07-25 06:45:18',3,NULL), +(435,'2025-07-25',7,4,3,1,NULL,8.00,'2025-07-25 06:45:19','2025-07-25 06:45:19',3,NULL), +(436,'2025-07-25',1,4,3,1,NULL,8.00,'2025-07-25 06:45:19','2025-07-25 06:45:19',3,NULL), +(437,'2025-07-28',5,3,3,1,NULL,8.00,'2025-07-28 06:30:39','2025-07-28 06:30:39',3,NULL), +(438,'2025-07-28',4,3,3,1,NULL,8.00,'2025-07-28 06:30:39','2025-07-28 06:30:39',3,NULL), +(439,'2025-07-28',1,3,3,1,NULL,8.00,'2025-07-28 06:30:39','2025-07-28 06:30:39',3,NULL), +(440,'2025-07-28',2,5,2,1,NULL,4.00,'2025-07-28 06:33:08','2025-07-28 06:33:08',5,NULL), +(441,'2025-07-28',2,3,2,1,NULL,4.00,'2025-07-28 06:33:08','2025-07-28 06:33:08',5,NULL), +(442,'2025-07-28',10,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL), +(443,'2025-07-28',9,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL), +(444,'2025-07-28',8,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL), +(445,'2025-07-28',7,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL), +(446,'2025-07-28',6,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL), +(447,'2025-07-28',3,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL), +(448,'2025-07-29',5,3,3,1,NULL,8.00,'2025-07-29 06:39:13','2025-07-29 06:39:13',3,NULL), +(449,'2025-07-29',4,3,3,1,NULL,8.00,'2025-07-29 06:39:13','2025-07-29 06:39:13',3,NULL), +(450,'2025-07-29',1,3,3,1,NULL,8.00,'2025-07-29 06:39:13','2025-07-29 06:39:13',3,NULL), +(451,'2025-07-30',5,3,3,1,NULL,8.00,'2025-07-30 06:50:30','2025-07-30 06:50:30',3,NULL), +(452,'2025-07-30',4,3,3,1,NULL,8.00,'2025-07-30 06:50:30','2025-07-30 06:50:30',3,NULL), +(453,'2025-07-30',1,3,3,1,NULL,8.00,'2025-07-30 06:50:30','2025-07-30 06:50:30',3,NULL), +(454,'2025-07-30',10,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL), +(455,'2025-07-30',9,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL), +(456,'2025-07-30',8,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL), +(457,'2025-07-30',7,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL), +(458,'2025-07-30',6,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL), +(459,'2025-07-30',3,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL), +(460,'2025-07-30',2,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL), +(461,'2025-07-31',1,3,3,1,NULL,4.00,'2025-07-31 06:42:56','2025-07-31 06:42:56',5,NULL), +(462,'2025-07-31',4,3,3,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL), +(463,'2025-07-31',4,3,2,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL), +(464,'2025-07-31',5,3,3,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL), +(465,'2025-07-31',5,3,2,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL), +(466,'2025-07-31',10,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL), +(467,'2025-07-31',9,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL), +(468,'2025-07-31',8,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL), +(469,'2025-07-31',7,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL), +(470,'2025-07-31',6,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL), +(471,'2025-07-31',3,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL), +(472,'2025-07-31',2,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL), +(473,'2025-07-11',10,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL), +(474,'2025-07-11',5,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL), +(475,'2025-07-11',4,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL), +(476,'2025-07-11',9,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL), +(477,'2025-07-11',8,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL), +(478,'2025-07-11',3,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL), +(479,'2025-07-11',2,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL), +(480,'2025-07-11',7,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL), +(481,'2025-07-11',6,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL), +(482,'2025-07-11',1,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL), +(483,'2025-08-01',10,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL), +(484,'2025-08-01',9,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL), +(485,'2025-08-01',8,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL), +(486,'2025-08-01',7,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL), +(487,'2025-08-01',6,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL), +(488,'2025-08-01',3,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL), +(489,'2025-08-01',2,3,2,1,NULL,8.00,'2025-08-01 04:57:48','2025-08-01 04:57:48',5,NULL), +(490,'2025-08-01',4,3,3,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL), +(491,'2025-08-01',4,5,1,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL), +(492,'2025-08-01',5,3,3,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL), +(493,'2025-08-01',5,5,1,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL), +(494,'2025-08-07',9,3,2,2,4,4.00,'2025-08-07 06:42:39','2025-08-07 06:42:39',5,NULL), +(495,'2025-08-07',9,3,2,1,NULL,4.00,'2025-08-07 06:42:39','2025-08-07 06:42:39',5,NULL), +(496,'2025-08-07',7,3,2,2,4,4.00,'2025-08-07 06:42:39','2025-08-07 06:42:39',5,NULL), +(497,'2025-08-07',7,3,2,1,NULL,4.00,'2025-08-07 06:42:39','2025-08-07 06:42:39',5,NULL), +(498,'2025-08-07',10,5,2,1,NULL,8.00,'2025-08-07 06:43:14','2025-08-07 06:43:14',5,NULL), +(499,'2025-08-07',4,5,2,1,NULL,8.00,'2025-08-07 06:43:15','2025-08-07 06:43:15',5,NULL), +(500,'2025-08-07',2,5,2,1,NULL,8.00,'2025-08-07 06:43:15','2025-08-07 06:43:15',5,NULL), +(501,'2025-08-07',6,3,2,1,NULL,8.00,'2025-08-07 06:43:39','2025-08-07 06:43:39',5,NULL), +(502,'2025-08-07',3,3,2,1,NULL,8.00,'2025-08-07 06:43:39','2025-08-07 06:43:39',5,NULL), +(503,'2025-08-07',8,3,2,1,NULL,8.00,'2025-08-07 06:43:39','2025-08-07 06:43:39',5,NULL), +(504,'2025-08-07',1,3,3,1,NULL,8.00,'2025-08-07 06:43:52','2025-08-07 06:43:52',3,NULL), +(505,'2025-08-08',1,3,3,1,NULL,8.00,'2025-08-08 06:45:20','2025-08-08 06:45:20',3,NULL), +(506,'2025-08-08',10,5,2,1,NULL,8.00,'2025-08-08 06:58:42','2025-08-08 06:58:42',5,NULL), +(507,'2025-08-08',2,5,2,1,NULL,8.00,'2025-08-08 06:58:42','2025-08-08 06:58:42',5,NULL), +(508,'2025-08-08',9,3,2,1,NULL,8.00,'2025-08-08 06:59:18','2025-08-08 06:59:18',5,NULL), +(509,'2025-08-08',8,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL), +(510,'2025-08-08',3,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL), +(511,'2025-08-08',4,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL), +(512,'2025-08-08',6,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL), +(513,'2025-08-11',1,3,3,1,NULL,8.00,'2025-08-11 06:27:37','2025-08-11 06:27:37',3,NULL), +(514,'2025-08-11',1,3,3,1,NULL,8.00,'2025-08-11 06:27:37','2025-08-11 06:27:37',3,NULL), +(515,'2025-08-11',10,5,2,1,NULL,8.00,'2025-08-11 06:46:23','2025-08-11 06:46:23',5,NULL), +(516,'2025-08-11',2,5,2,1,NULL,8.00,'2025-08-11 06:46:23','2025-08-11 06:46:23',5,NULL), +(517,'2025-08-11',8,3,2,1,NULL,8.00,'2025-08-11 06:46:49','2025-08-11 06:46:49',5,NULL), +(518,'2025-08-11',7,3,2,1,NULL,8.00,'2025-08-11 06:46:49','2025-08-11 06:46:49',5,NULL), +(519,'2025-08-11',6,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL), +(520,'2025-08-11',5,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL), +(521,'2025-08-11',4,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL), +(522,'2025-08-11',3,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL), +(523,'2025-08-12',10,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL), +(524,'2025-08-12',9,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL), +(525,'2025-08-12',8,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL), +(526,'2025-08-12',7,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL), +(527,'2025-08-12',5,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL), +(528,'2025-08-12',4,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL), +(529,'2025-08-12',3,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL), +(530,'2025-08-12',1,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL), +(531,'2025-08-13',1,3,3,1,NULL,8.00,'2025-08-13 06:31:32','2025-08-13 06:31:32',3,NULL), +(532,'2025-08-13',2,3,2,1,NULL,4.00,'2025-08-13 06:36:13','2025-08-13 06:36:13',5,NULL), +(533,'2025-08-13',2,5,2,1,NULL,4.00,'2025-08-13 06:36:13','2025-08-13 06:36:13',5,NULL), +(534,'2025-08-13',9,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL), +(535,'2025-08-13',8,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL), +(536,'2025-08-13',7,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL), +(537,'2025-08-13',6,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL), +(538,'2025-08-13',5,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL), +(539,'2025-08-13',4,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL), +(540,'2025-08-13',3,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL), +(541,'2025-08-13',10,5,2,1,NULL,8.00,'2025-08-13 06:37:19','2025-08-13 06:37:19',5,NULL), +(542,'2025-08-14',1,3,3,2,1,4.00,'2025-08-14 06:35:27','2025-08-14 06:35:27',3,NULL), +(543,'2025-08-14',1,3,3,1,NULL,4.00,'2025-08-14 06:35:27','2025-08-14 06:35:27',3,NULL), +(544,'2025-08-14',10,5,2,1,NULL,4.00,'2025-08-14 06:39:03','2025-08-14 06:39:03',5,NULL), +(545,'2025-08-14',10,5,3,1,NULL,4.00,'2025-08-14 06:39:03','2025-08-14 06:39:03',5,NULL), +(546,'2025-08-14',2,5,2,1,NULL,2.00,'2025-08-14 06:39:44','2025-08-14 06:39:44',5,NULL), +(547,'2025-08-14',2,3,2,1,NULL,6.00,'2025-08-14 06:39:44','2025-08-14 06:39:44',5,NULL), +(548,'2025-08-14',9,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL), +(549,'2025-08-14',8,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL), +(550,'2025-08-14',7,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL), +(551,'2025-08-14',6,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL), +(552,'2025-08-14',5,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL), +(553,'2025-08-14',4,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL), +(554,'2025-08-18',2,3,2,1,NULL,8.00,'2025-08-18 06:21:36','2025-08-18 06:21:36',5,NULL), +(555,'2025-08-18',8,3,2,1,NULL,8.00,'2025-08-18 06:21:36','2025-08-18 06:21:36',5,NULL), +(556,'2025-08-18',4,3,2,1,NULL,8.00,'2025-08-18 06:22:01','2025-08-18 06:22:01',5,NULL), +(557,'2025-08-18',10,5,3,1,NULL,6.00,'2025-08-18 06:22:53','2025-08-18 06:22:53',5,NULL), +(558,'2025-08-18',10,3,2,1,NULL,2.00,'2025-08-18 06:22:53','2025-08-18 06:22:53',5,NULL), +(559,'2025-08-18',9,3,2,1,NULL,4.00,'2025-08-18 06:23:34','2025-08-18 06:23:34',5,NULL), +(560,'2025-08-18',9,3,3,1,NULL,4.00,'2025-08-18 06:23:34','2025-08-18 06:23:34',5,NULL), +(561,'2025-08-18',5,3,3,2,1,4.00,'2025-08-18 06:41:24','2025-08-18 06:41:24',3,NULL), +(562,'2025-08-18',1,3,3,2,1,4.00,'2025-08-18 06:41:24','2025-08-18 06:41:24',3,NULL), +(563,'2025-08-18',7,3,3,2,1,4.00,'2025-08-18 06:41:24','2025-08-18 06:41:24',3,NULL), +(564,'2025-08-18',7,3,3,1,NULL,4.00,'2025-08-18 06:43:10','2025-08-18 06:43:10',3,NULL), +(565,'2025-08-18',5,3,3,1,NULL,4.00,'2025-08-18 06:43:10','2025-08-18 06:43:10',3,NULL), +(566,'2025-08-18',1,3,3,1,NULL,4.00,'2025-08-18 06:43:10','2025-08-18 06:43:10',3,NULL), +(567,'2025-08-18',6,3,3,1,NULL,8.00,'2025-08-18 06:43:35','2025-08-18 06:43:35',6,NULL), +(568,'2025-08-18',3,3,3,1,NULL,8.00,'2025-08-18 06:43:35','2025-08-18 06:43:35',6,NULL), +(569,'2025-08-19',1,3,3,1,NULL,6.00,'2025-08-19 08:02:49','2025-08-19 08:02:49',5,NULL), +(570,'2025-08-19',3,3,3,1,NULL,10.00,'2025-08-19 08:03:30','2025-08-19 08:03:30',5,NULL), +(571,'2025-08-19',6,3,3,1,NULL,10.00,'2025-08-19 08:03:30','2025-08-19 08:03:30',5,NULL), +(572,'2025-08-19',7,3,3,1,NULL,10.00,'2025-08-19 08:03:30','2025-08-19 08:03:30',5,NULL), +(573,'2025-08-19',9,3,3,1,NULL,10.00,'2025-08-19 08:03:30','2025-08-19 08:03:30',5,NULL), +(574,'2025-08-19',10,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL), +(575,'2025-08-19',8,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL), +(576,'2025-08-19',5,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL), +(577,'2025-08-19',4,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL), +(578,'2025-08-19',2,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL), +(579,'2025-08-19',3,3,3,1,NULL,10.00,'2025-08-19 08:36:51','2025-08-19 08:36:51',6,NULL), +(580,'2025-08-19',7,3,3,1,NULL,10.00,'2025-08-19 08:36:51','2025-08-19 08:36:51',6,NULL), +(581,'2025-08-19',6,3,3,1,NULL,10.00,'2025-08-19 08:36:51','2025-08-19 08:36:51',6,NULL), +(582,'2025-08-20',2,3,2,1,NULL,8.00,'2025-08-20 06:19:36','2025-08-20 06:19:36',5,NULL), +(583,'2025-08-20',5,3,1,1,NULL,2.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL), +(584,'2025-08-20',5,3,2,1,NULL,6.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL), +(585,'2025-08-20',4,3,1,1,NULL,2.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL), +(586,'2025-08-20',4,3,2,1,NULL,6.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL), +(587,'2025-08-20',6,3,3,1,NULL,4.00,'2025-08-20 06:43:46','2025-08-20 06:43:46',3,NULL), +(588,'2025-08-20',10,3,3,1,NULL,8.00,'2025-08-20 06:44:23','2025-08-20 06:44:23',3,NULL), +(589,'2025-08-20',9,3,3,1,NULL,8.00,'2025-08-20 06:44:23','2025-08-20 06:44:23',3,NULL), +(590,'2025-08-20',8,3,3,1,NULL,8.00,'2025-08-20 06:44:23','2025-08-20 06:44:23',3,NULL), +(591,'2025-08-20',7,3,3,1,NULL,8.00,'2025-08-20 06:44:24','2025-08-20 06:44:24',3,NULL), +(592,'2025-08-20',3,3,3,1,NULL,8.00,'2025-08-20 06:44:24','2025-08-20 06:44:24',3,NULL), +(593,'2025-08-20',1,3,3,1,NULL,8.00,'2025-08-20 06:44:24','2025-08-20 06:44:24',3,NULL), +(594,'2025-08-20',10,3,3,1,NULL,8.00,'2025-08-20 06:44:26','2025-08-20 06:44:26',6,NULL), +(595,'2025-08-20',3,3,3,1,NULL,8.00,'2025-08-20 06:44:26','2025-08-20 06:44:26',6,NULL), +(596,'2025-08-21',7,3,3,1,NULL,8.00,'2025-08-21 06:30:36','2025-08-21 06:30:36',3,NULL), +(597,'2025-08-21',1,3,3,1,NULL,8.00,'2025-08-21 06:30:36','2025-08-21 06:30:36',3,NULL), +(598,'2025-08-21',1,3,3,1,NULL,8.00,'2025-08-21 07:50:38','2025-08-21 07:50:38',5,NULL), +(599,'2025-08-21',7,3,3,1,NULL,8.00,'2025-08-21 07:50:38','2025-08-21 07:50:38',5,NULL), +(600,'2025-08-21',10,3,3,1,NULL,8.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL), +(601,'2025-08-21',10,3,3,1,NULL,2.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL), +(602,'2025-08-21',9,3,3,1,NULL,8.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL), +(603,'2025-08-21',9,3,3,1,NULL,2.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL), +(604,'2025-08-21',6,3,3,1,NULL,8.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL), +(605,'2025-08-21',6,3,3,1,NULL,2.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL), +(606,'2025-08-21',3,3,3,1,NULL,8.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL), +(607,'2025-08-21',3,3,3,1,NULL,2.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL), +(608,'2025-08-21',2,3,2,1,NULL,8.00,'2025-08-21 07:54:46','2025-08-21 07:54:46',5,NULL), +(609,'2025-08-21',2,5,2,1,NULL,2.00,'2025-08-21 07:54:46','2025-08-21 07:54:46',5,NULL), +(610,'2025-08-21',8,3,3,1,NULL,4.00,'2025-08-21 07:55:25','2025-08-21 07:55:25',5,NULL), +(611,'2025-08-21',8,3,2,1,NULL,6.00,'2025-08-21 07:55:25','2025-08-21 07:55:25',5,NULL), +(612,'2025-08-21',6,3,3,1,NULL,10.00,'2025-08-21 08:24:50','2025-08-21 08:24:50',6,NULL), +(613,'2025-08-21',3,3,3,1,NULL,10.00,'2025-08-21 08:24:50','2025-08-21 08:24:50',6,NULL), +(614,'2025-08-22',2,3,2,1,NULL,8.00,'2025-08-22 06:21:15','2025-08-22 06:21:15',5,NULL), +(615,'2025-08-22',8,3,2,1,NULL,4.00,'2025-08-22 06:23:12','2025-08-22 06:23:12',5,NULL), +(616,'2025-08-22',8,3,3,1,NULL,4.00,'2025-08-22 06:23:12','2025-08-22 06:23:12',5,NULL), +(617,'2025-08-22',5,3,3,1,NULL,8.00,'2025-08-22 06:23:55','2025-08-22 06:23:55',5,NULL), +(618,'2025-08-22',6,3,2,1,NULL,4.00,'2025-08-22 06:27:43','2025-08-22 06:27:43',3,NULL), +(619,'2025-08-22',10,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL), +(620,'2025-08-22',9,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL), +(621,'2025-08-22',7,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL), +(622,'2025-08-22',4,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL), +(623,'2025-08-22',3,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL), +(624,'2025-08-22',1,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL), +(625,'2025-08-23',4,3,2,1,NULL,2.00,'2025-08-23 04:57:02','2025-08-23 04:57:02',5,NULL), +(626,'2025-08-23',4,3,3,1,NULL,6.00,'2025-08-23 04:57:02','2025-08-23 04:57:02',5,NULL), +(627,'2025-08-23',2,3,2,1,NULL,8.00,'2025-08-23 04:57:25','2025-08-23 04:57:25',5,NULL), +(628,'2025-08-23',10,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL), +(629,'2025-08-23',9,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL), +(630,'2025-08-23',8,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL), +(631,'2025-08-23',6,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL), +(632,'2025-08-23',5,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL), +(633,'2025-08-23',3,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL), +(634,'2025-08-23',1,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL), +(635,'2025-08-25',10,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL), +(636,'2025-08-25',9,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL), +(637,'2025-08-25',8,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL), +(638,'2025-08-25',7,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL), +(639,'2025-08-25',6,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL), +(640,'2025-08-25',5,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL), +(641,'2025-08-25',4,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL), +(642,'2025-08-25',3,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL), +(643,'2025-08-25',2,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL), +(644,'2025-08-25',1,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL), +(645,'2025-08-25',6,3,3,1,NULL,8.00,'2025-08-25 06:49:16','2025-08-25 06:49:16',6,NULL), +(646,'2025-08-25',3,3,3,1,NULL,8.00,'2025-08-25 06:49:17','2025-08-25 06:49:17',6,NULL), +(647,'2025-08-26',4,8,3,1,NULL,8.00,'2025-08-26 07:28:03','2025-08-26 07:28:03',5,NULL), +(648,'2025-08-26',4,3,3,1,NULL,2.00,'2025-08-26 07:28:03','2025-08-26 07:28:03',5,NULL), +(649,'2025-08-26',2,8,3,1,NULL,10.00,'2025-08-26 07:28:35','2025-08-26 07:28:35',5,NULL), +(650,'2025-08-26',10,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL), +(651,'2025-08-26',9,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL), +(652,'2025-08-26',8,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL), +(653,'2025-08-26',7,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL), +(654,'2025-08-26',6,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL), +(655,'2025-08-26',5,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL), +(656,'2025-08-26',3,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL), +(657,'2025-08-26',1,3,3,1,NULL,10.00,'2025-08-26 07:29:03','2025-08-26 07:29:03',5,NULL), +(658,'2025-08-26',6,3,3,1,NULL,10.00,'2025-08-26 08:22:12','2025-08-26 08:22:12',6,NULL), +(659,'2025-08-26',10,3,3,1,NULL,10.00,'2025-08-26 08:22:12','2025-08-26 08:22:12',6,NULL), +(660,'2025-08-26',3,3,3,1,NULL,10.00,'2025-08-26 08:22:12','2025-08-26 08:22:12',6,NULL), +(661,'2025-08-27',10,3,3,2,5,8.00,'2025-08-27 06:44:47','2025-08-27 06:44:47',3,NULL), +(662,'2025-08-27',9,3,3,2,5,8.00,'2025-08-27 06:44:47','2025-08-27 06:44:47',3,NULL), +(663,'2025-08-27',7,3,3,2,5,8.00,'2025-08-27 06:44:47','2025-08-27 06:44:47',3,NULL), +(664,'2025-08-27',6,3,3,2,5,8.00,'2025-08-27 06:44:47','2025-08-27 06:44:47',3,NULL), +(665,'2025-08-27',5,3,3,2,5,8.00,'2025-08-27 06:44:47','2025-08-27 06:44:47',3,NULL), +(666,'2025-08-27',4,3,3,2,5,8.00,'2025-08-27 06:44:47','2025-08-27 06:44:47',3,NULL), +(667,'2025-08-27',3,3,3,2,5,8.00,'2025-08-27 06:44:47','2025-08-27 06:44:47',3,NULL), +(668,'2025-08-27',1,3,3,2,5,8.00,'2025-08-27 06:44:48','2025-08-27 06:44:48',3,NULL), +(669,'2025-08-27',2,3,3,2,1,2.00,'2025-08-27 06:45:32','2025-08-27 06:45:32',5,NULL), +(670,'2025-08-27',2,8,2,1,NULL,6.00,'2025-08-27 06:45:32','2025-08-27 06:45:32',5,NULL), +(671,'2025-08-27',8,3,3,2,1,2.00,'2025-08-27 06:45:32','2025-08-27 06:45:32',5,NULL), +(672,'2025-08-27',8,8,2,1,NULL,6.00,'2025-08-27 06:45:32','2025-08-27 06:45:32',5,NULL), +(673,'2025-08-28',10,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL), +(674,'2025-08-28',10,3,3,2,1,4.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL), +(675,'2025-08-28',5,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL), +(676,'2025-08-28',5,3,3,2,1,4.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL), +(677,'2025-08-28',6,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL), +(678,'2025-08-28',6,3,3,2,1,4.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL), +(679,'2025-08-28',3,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL), +(680,'2025-08-28',3,3,3,2,1,4.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL), +(681,'2025-08-28',4,3,3,1,NULL,4.00,'2025-08-28 08:37:46','2025-08-28 08:37:46',5,NULL), +(682,'2025-08-28',4,5,3,1,NULL,4.00,'2025-08-28 08:37:46','2025-08-28 08:37:46',5,NULL), +(683,'2025-08-28',8,8,2,1,NULL,4.00,'2025-08-28 08:38:15','2025-08-28 08:38:15',5,NULL), +(684,'2025-08-28',8,5,3,1,NULL,4.00,'2025-08-28 08:38:15','2025-08-28 08:38:15',5,NULL), +(685,'2025-08-28',2,3,3,2,1,2.00,'2025-08-28 08:38:50','2025-08-28 08:38:50',5,NULL), +(686,'2025-08-28',2,5,3,1,NULL,6.00,'2025-08-28 08:38:50','2025-08-28 08:38:50',5,NULL), +(687,'2025-08-28',1,3,3,2,1,8.00,'2025-08-28 08:39:24','2025-08-28 08:39:24',5,NULL), +(689,'2025-08-28',9,3,3,2,4,8.00,'2025-08-28 08:40:00','2025-08-28 08:40:00',5,NULL), +(690,'2025-08-28',7,3,3,2,4,8.00,'2025-08-28 08:40:00','2025-08-28 08:40:00',5,NULL), +(694,'2025-08-28',4,5,3,1,NULL,2.00,'2025-08-28 08:44:56','2025-08-28 08:44:56',5,NULL), +(695,'2025-08-28',8,5,3,1,NULL,2.00,'2025-08-28 08:44:56','2025-08-28 08:44:56',5,NULL), +(696,'2025-08-28',2,5,3,1,NULL,2.00,'2025-08-28 08:44:56','2025-08-28 08:44:56',5,NULL), +(698,'2025-08-28',9,3,3,1,NULL,2.00,'2025-08-28 08:45:19','2025-08-28 08:45:19',5,NULL), +(699,'2025-08-28',7,3,3,1,NULL,2.00,'2025-08-28 08:45:19','2025-08-28 08:45:19',5,NULL), +(703,'2025-08-29',10,3,3,2,5,8.00,'2025-08-29 06:47:02','2025-08-29 06:47:02',3,NULL), +(704,'2025-08-29',9,3,3,2,5,8.00,'2025-08-29 06:47:02','2025-08-29 06:47:02',3,NULL), +(706,'2025-08-29',7,3,3,2,5,8.00,'2025-08-29 06:47:02','2025-08-29 06:47:02',3,NULL), +(710,'2025-08-29',1,3,3,2,5,8.00,'2025-08-29 06:47:02','2025-08-29 06:47:02',3,NULL), +(713,'2025-08-29',5,3,3,1,NULL,6.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL), +(714,'2025-08-29',5,3,3,2,1,2.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL), +(715,'2025-08-29',3,3,3,1,NULL,6.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL), +(716,'2025-08-29',3,3,3,2,1,2.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL), +(717,'2025-08-29',6,3,3,1,NULL,6.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL), +(718,'2025-08-29',6,3,3,2,1,2.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL), +(719,'2025-08-29',8,5,3,1,NULL,8.00,'2025-08-29 21:55:56','2025-08-29 21:55:56',5,NULL), +(720,'2025-08-29',4,5,3,1,NULL,8.00,'2025-08-29 21:55:56','2025-08-29 21:55:56',5,NULL), +(721,'2025-08-29',2,5,3,1,NULL,8.00,'2025-08-29 21:55:56','2025-08-29 21:55:56',5,NULL), +(722,'2025-08-30',2,5,3,1,NULL,8.00,'2025-08-30 05:12:03','2025-08-30 05:12:03',5,NULL), +(723,'2025-08-30',8,5,3,1,NULL,8.00,'2025-08-30 05:12:03','2025-08-30 05:12:03',5,NULL), +(724,'2025-08-30',4,5,3,1,NULL,8.00,'2025-08-30 05:12:03','2025-08-30 05:12:03',5,NULL), +(725,'2025-08-30',10,3,3,2,1,8.00,'2025-08-30 05:36:49','2025-08-30 05:36:49',3,NULL), +(726,'2025-08-30',9,3,3,2,1,8.00,'2025-08-30 05:36:49','2025-08-30 05:36:49',3,NULL), +(727,'2025-08-30',7,3,3,2,1,8.00,'2025-08-30 05:36:49','2025-08-30 05:36:49',3,NULL), +(728,'2025-08-30',6,3,3,2,1,8.00,'2025-08-30 05:36:49','2025-08-30 05:36:49',3,NULL), +(729,'2025-08-30',5,3,3,2,1,8.00,'2025-08-30 05:36:49','2025-08-30 05:36:49',3,NULL), +(730,'2025-08-30',3,3,3,2,1,8.00,'2025-08-30 05:36:49','2025-08-30 05:36:49',3,NULL), +(731,'2025-08-30',1,3,3,2,1,8.00,'2025-08-30 05:36:49','2025-08-30 05:36:49',3,NULL), +(732,'2025-09-01',7,3,3,1,NULL,8.00,'2025-09-01 06:18:28','2025-09-01 06:18:28',3,NULL), +(733,'2025-09-01',9,3,3,1,NULL,8.00,'2025-09-01 06:18:28','2025-09-01 06:18:28',3,NULL), +(734,'2025-09-01',10,3,3,2,5,4.00,'2025-09-01 06:19:11','2025-09-01 06:19:11',3,NULL), +(735,'2025-09-01',3,3,3,2,5,4.00,'2025-09-01 06:19:11','2025-09-01 06:19:11',3,NULL), +(736,'2025-09-01',1,3,3,2,5,4.00,'2025-09-01 06:19:11','2025-09-01 06:19:11',3,NULL), +(737,'2025-09-01',10,3,3,1,NULL,4.00,'2025-09-01 06:19:35','2025-09-01 06:19:35',3,NULL), +(738,'2025-09-01',3,3,3,1,NULL,4.00,'2025-09-01 06:19:35','2025-09-01 06:19:35',3,NULL), +(739,'2025-09-01',1,3,3,1,NULL,4.00,'2025-09-01 06:19:35','2025-09-01 06:19:35',3,NULL), +(740,'2025-09-01',5,3,3,2,1,8.00,'2025-09-01 06:20:03','2025-09-01 06:20:03',3,NULL); +/*!40000 ALTER TABLE `daily_work_reports` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2025-09-01 23:19:44 diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/hyungi.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/hyungi.sql new file mode 100644 index 0000000..94c5b49 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/hyungi.sql @@ -0,0 +1,2563 @@ +작-- phpMyAdmin SQL Dump +-- version 5.2.2 +-- https://www.phpmyadmin.net/ +-- +-- 호스트: db_hyungi_net +-- 생성 시간: 25-06-27 23:07 +-- 서버 버전: 10.9.8-MariaDB-1:10.9.8+maria~ubu2204 +-- PHP 버전: 8.2.27 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- 데이터베이스: `hyungi` +-- + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `activity_logs` +-- + +CREATE TABLE `activity_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `activity_type` varchar(100) DEFAULT NULL, + `table_name` varchar(50) DEFAULT NULL, + `record_id` int(11) DEFAULT NULL, + `action` enum('create','read','update','delete') DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `CuttingPlan` +-- + +CREATE TABLE `CuttingPlan` ( + `cutting_plan_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `drawing_name` varchar(255) NOT NULL, + `area_number` varchar(100) DEFAULT NULL, + `spool_number` varchar(255) DEFAULT NULL, + `length` decimal(10,2) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `spec_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `DailyIssueReports` +-- + +CREATE TABLE `DailyIssueReports` ( + `id` int(11) NOT NULL, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `issue_type_id` int(11) DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `start_time` time NOT NULL, + `end_time` time NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `DailyIssueReports` +-- + +INSERT INTO `DailyIssueReports` (`id`, `date`, `worker_id`, `project_id`, `issue_type_id`, `description`, `created_at`, `start_time`, `end_time`) VALUES +(1, '2025-06-02', 1, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(2, '2025-06-02', 9, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(3, '2025-06-02', 7, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(4, '2025-06-04', 10, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(5, '2025-06-04', 6, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(6, '2025-06-04', 3, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(7, '2025-06-11', 10, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'), +(8, '2025-06-11', 6, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'), +(9, '2025-06-11', 3, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `daily_worker_summary` +-- + +CREATE TABLE `daily_worker_summary` ( + `id` int(11) NOT NULL, + `report_date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `total_hours` decimal(4,2) NOT NULL DEFAULT 8.00 COMMENT '총 근무시간', + `work_status` enum('normal','annual_leave','half_leave','overtime') DEFAULT 'normal' COMMENT '근무 상태', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `daily_work_reports` +-- + +CREATE TABLE `daily_work_reports` ( + `id` int(11) NOT NULL, + `report_date` date NOT NULL COMMENT '작업 날짜', + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `project_id` int(11) NOT NULL COMMENT '프로젝트 ID', + `work_type_id` int(11) NOT NULL COMMENT '작업 유형 ID', + `work_status_id` int(11) DEFAULT 1 COMMENT '업무 상태 ID (1:정규, 2:에러)', + `error_type_id` int(11) DEFAULT NULL COMMENT '에러 유형 ID (에러일 때만)', + `work_hours` decimal(4,2) NOT NULL COMMENT '작업 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `created_by` int(11) NOT NULL DEFAULT 1 COMMENT '작성자 user_id', + `updated_by` int(11) DEFAULT NULL COMMENT '수정자 user_id' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `daily_work_reports` +-- + +INSERT INTO `daily_work_reports` (`id`, `report_date`, `worker_id`, `project_id`, `work_type_id`, `work_status_id`, `error_type_id`, `work_hours`, `created_at`, `updated_at`, `created_by`, `updated_by`) VALUES +(14, '2025-06-02', 1, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(15, '2025-06-02', 3, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(16, '2025-06-02', 4, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(17, '2025-06-02', 6, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(18, '2025-06-02', 7, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(19, '2025-06-02', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(20, '2025-06-02', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:10:47', '2025-06-16 05:10:47', 1, NULL), +(21, '2025-06-04', 1, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(22, '2025-06-04', 3, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(23, '2025-06-04', 5, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(24, '2025-06-04', 7, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(25, '2025-06-04', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(26, '2025-06-04', 10, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(27, '2025-06-04', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(28, '2025-06-04', 6, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(29, '2025-06-04', 8, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(30, '2025-06-05', 1, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(31, '2025-06-05', 3, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(32, '2025-06-05', 4, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(33, '2025-06-05', 7, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(34, '2025-06-05', 10, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(35, '2025-06-05', 9, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(36, '2025-06-05', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(37, '2025-06-05', 5, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(38, '2025-06-05', 6, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(39, '2025-06-05', 8, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(40, '2025-06-16', 5, 3, 2, 1, NULL, 8.00, '2025-06-16 06:12:01', '2025-06-16 06:12:01', 5, NULL), +(43, '2025-06-16', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 06:12:01', '2025-06-16 06:12:01', 5, NULL), +(44, '2025-06-16', 6, 3, 2, 2, 4, 4.00, '2025-06-16 06:13:02', '2025-06-16 06:13:02', 5, NULL), +(45, '2025-06-16', 6, 3, 2, 1, NULL, 4.00, '2025-06-16 06:13:50', '2025-06-16 06:13:50', 5, NULL), +(46, '2025-06-16', 8, 3, 2, 2, 4, 4.00, '2025-06-16 06:15:22', '2025-06-16 06:15:22', 5, NULL), +(47, '2025-06-16', 8, 3, 2, 1, NULL, 4.00, '2025-06-16 06:15:22', '2025-06-16 06:15:22', 5, NULL), +(48, '2025-06-16', 4, 4, 3, 2, 1, 8.00, '2025-06-16 06:46:44', '2025-06-16 06:46:44', 3, NULL), +(50, '2025-06-16', 1, 4, 3, 2, 1, 8.00, '2025-06-16 06:46:44', '2025-06-16 06:46:44', 3, NULL), +(51, '2025-06-16', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 06:48:29', '2025-06-16 06:48:29', 3, NULL), +(52, '2025-06-16', 10, 4, 3, 1, NULL, 6.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(53, '2025-06-16', 10, 4, 3, 2, 1, 2.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(54, '2025-06-16', 3, 4, 3, 1, NULL, 6.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(55, '2025-06-16', 3, 4, 3, 2, 1, 2.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(56, '2025-06-17', 2, 3, 2, 1, NULL, 8.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(57, '2025-06-17', 2, 3, 2, 1, NULL, 2.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(58, '2025-06-17', 5, 3, 2, 1, NULL, 8.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(59, '2025-06-17', 5, 3, 2, 1, NULL, 2.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(60, '2025-06-17', 6, 3, 2, 1, NULL, 8.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(61, '2025-06-17', 6, 3, 2, 2, 4, 2.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(62, '2025-06-17', 8, 3, 2, 1, NULL, 8.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(63, '2025-06-17', 8, 3, 2, 2, 4, 2.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(65, '2025-06-17', 9, 4, 3, 2, 1, 4.00, '2025-06-17 08:25:24', '2025-06-17 08:25:24', 3, NULL), +(66, '2025-06-17', 1, 4, 3, 2, 1, 4.00, '2025-06-17 08:27:06', '2025-06-17 08:27:06', 3, NULL), +(67, '2025-06-17', 4, 4, 3, 2, 1, 4.00, '2025-06-17 08:27:06', '2025-06-17 08:27:06', 3, NULL), +(68, '2025-06-17', 1, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(69, '2025-06-17', 9, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(70, '2025-06-17', 4, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(71, '2025-06-17', 9, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(72, '2025-06-17', 4, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(73, '2025-06-17', 1, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(74, '2025-06-17', 10, 4, 3, 1, NULL, 8.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(75, '2025-06-17', 10, 4, 3, 2, 1, 2.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(76, '2025-06-17', 3, 4, 3, 1, NULL, 8.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(77, '2025-06-17', 3, 4, 3, 2, 1, 2.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(78, '2025-06-18', 6, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(79, '2025-06-18', 2, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(80, '2025-06-18', 8, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(81, '2025-06-18', 2, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:02', '2025-06-18 08:41:02', 5, NULL), +(82, '2025-06-18', 6, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:03', '2025-06-18 08:41:03', 5, NULL), +(83, '2025-06-18', 8, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:03', '2025-06-18 08:41:03', 5, NULL), +(84, '2025-06-18', 5, 4, 3, 1, NULL, 8.00, '2025-06-18 08:41:45', '2025-06-18 08:41:45', 5, NULL), +(85, '2025-06-18', 5, 4, 3, 1, NULL, 2.00, '2025-06-18 08:41:45', '2025-06-18 08:41:45', 5, NULL), +(86, '2025-06-18', 10, 4, 3, 1, NULL, 9.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(87, '2025-06-18', 10, 4, 3, 2, 1, 1.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(88, '2025-06-18', 3, 4, 3, 1, NULL, 9.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(89, '2025-06-18', 3, 4, 3, 2, 1, 1.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(90, '2025-06-18', 4, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(91, '2025-06-18', 4, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(92, '2025-06-18', 9, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(93, '2025-06-18', 9, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(94, '2025-06-18', 1, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(95, '2025-06-18', 1, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(96, '2025-06-18', 7, 4, 3, 2, 1, 4.00, '2025-06-18 09:00:17', '2025-06-18 09:00:17', 3, NULL), +(97, '2025-06-18', 7, 4, 3, 1, NULL, 6.00, '2025-06-18 09:00:17', '2025-06-18 09:00:17', 3, NULL), +(98, '2025-06-19', 8, 3, 2, 1, NULL, 8.00, '2025-06-19 06:37:59', '2025-06-19 06:37:59', 5, NULL), +(99, '2025-06-19', 2, 3, 2, 1, NULL, 8.00, '2025-06-19 06:37:59', '2025-06-19 06:37:59', 5, NULL), +(100, '2025-06-19', 10, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(101, '2025-06-19', 3, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(102, '2025-06-19', 5, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(103, '2025-06-19', 9, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(104, '2025-06-19', 9, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(105, '2025-06-19', 4, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(106, '2025-06-19', 4, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(107, '2025-06-19', 1, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(108, '2025-06-19', 1, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(109, '2025-06-19', 7, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(110, '2025-06-19', 7, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(111, '2025-06-19', 6, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(112, '2025-06-19', 6, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(113, '2025-06-20', 9, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(114, '2025-06-20', 9, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(115, '2025-06-20', 4, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(116, '2025-06-20', 4, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(117, '2025-06-20', 7, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(118, '2025-06-20', 7, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(119, '2025-06-20', 6, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(120, '2025-06-20', 6, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(121, '2025-06-20', 1, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(122, '2025-06-20', 1, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(123, '2025-06-20', 5, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(124, '2025-06-20', 5, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(125, '2025-06-20', 10, 4, 3, 1, NULL, 8.00, '2025-06-20 06:45:30', '2025-06-20 06:45:30', 6, NULL), +(126, '2025-06-20', 3, 4, 3, 1, NULL, 8.00, '2025-06-20 06:45:31', '2025-06-20 06:45:31', 6, NULL), +(127, '2025-06-23', 10, 4, 3, 1, NULL, 8.00, '2025-06-23 06:42:58', '2025-06-23 06:42:58', 6, NULL), +(128, '2025-06-23', 3, 4, 3, 1, NULL, 8.00, '2025-06-23 06:42:58', '2025-06-23 06:42:58', 6, NULL), +(129, '2025-06-23', 5, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(130, '2025-06-23', 5, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(131, '2025-06-23', 1, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(132, '2025-06-23', 1, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(133, '2025-06-23', 9, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(134, '2025-06-23', 9, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(135, '2025-06-23', 4, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(136, '2025-06-23', 4, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(137, '2025-06-23', 7, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(138, '2025-06-23', 7, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(139, '2025-06-23', 6, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(140, '2025-06-23', 6, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(141, '2025-06-24', 10, 4, 3, 1, NULL, 12.00, '2025-06-24 11:10:32', '2025-06-24 11:10:32', 6, NULL), +(142, '2025-06-24', 3, 4, 3, 1, NULL, 12.00, '2025-06-24 11:10:32', '2025-06-24 11:10:32', 6, NULL), +(143, '2025-06-24', 9, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(144, '2025-06-24', 9, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(145, '2025-06-24', 5, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(146, '2025-06-24', 5, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(147, '2025-06-24', 4, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(148, '2025-06-24', 4, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(149, '2025-06-24', 7, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(150, '2025-06-24', 7, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(151, '2025-06-24', 6, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(152, '2025-06-24', 6, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(153, '2025-06-24', 1, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(154, '2025-06-24', 1, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(155, '2025-06-24', 8, 3, 2, 1, NULL, 8.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(156, '2025-06-24', 8, 3, 2, 1, NULL, 4.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(157, '2025-06-24', 2, 3, 2, 1, NULL, 8.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(158, '2025-06-24', 2, 3, 2, 1, NULL, 4.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(159, '2025-06-25', 2, 3, 2, 1, NULL, 8.00, '2025-06-25 11:08:04', '2025-06-25 11:08:04', 5, NULL), +(160, '2025-06-25', 2, 3, 2, 1, NULL, 4.00, '2025-06-25 11:08:04', '2025-06-25 11:08:04', 5, NULL), +(161, '2025-06-25', 8, 3, 2, 1, NULL, 8.00, '2025-06-25 11:08:05', '2025-06-25 11:08:05', 5, NULL), +(162, '2025-06-25', 8, 3, 2, 1, NULL, 4.00, '2025-06-25 11:08:05', '2025-06-25 11:08:05', 5, NULL), +(163, '2025-06-25', 10, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(164, '2025-06-25', 9, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(165, '2025-06-25', 3, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(166, '2025-06-25', 6, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(167, '2025-06-26', 10, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(168, '2025-06-26', 5, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(169, '2025-06-26', 7, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(170, '2025-06-26', 1, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(171, '2025-06-26', 4, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(172, '2025-06-26', 8, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:31', '2025-06-26 11:11:31', 5, NULL), +(173, '2025-06-26', 8, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:31', '2025-06-26 11:11:31', 5, NULL), +(174, '2025-06-26', 2, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(175, '2025-06-26', 2, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(176, '2025-06-26', 9, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(177, '2025-06-26', 9, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(178, '2025-06-26', 3, 3, 2, 1, NULL, 12.00, '2025-06-26 11:19:34', '2025-06-26 11:19:34', 6, NULL), +(179, '2025-06-26', 6, 3, 2, 1, NULL, 12.00, '2025-06-26 11:19:34', '2025-06-26 11:19:34', 6, NULL), +(182, '2025-06-27', 2, 3, 2, 1, NULL, 4.00, '2025-06-27 01:54:40', '2025-06-27 01:54:40', 5, NULL), +(183, '2025-06-27', 9, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(184, '2025-06-27', 10, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(185, '2025-06-27', 7, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(186, '2025-06-27', 5, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(187, '2025-06-27', 4, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(188, '2025-06-27', 1, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(189, '2025-06-27', 3, 3, 2, 1, NULL, 8.00, '2025-06-27 06:49:08', '2025-06-27 06:49:08', 6, NULL), +(191, '2025-06-27', 6, 3, 2, 1, NULL, 4.00, '2025-06-27 06:58:46', '2025-06-27 06:58:46', 6, NULL), +(192, '2025-06-27', 8, 3, 2, 1, NULL, 6.00, '2025-06-27 07:00:10', '2025-06-27 07:00:10', 5, NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `EquipmentList` +-- + +CREATE TABLE `EquipmentList` ( + `equipment_id` int(11) NOT NULL, + `factory_id` int(11) DEFAULT NULL, + `equipment_name` varchar(255) NOT NULL, + `model` varchar(100) DEFAULT NULL, + `status` text DEFAULT 'operational', + `purchase_date` date DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `error_types` +-- + +CREATE TABLE `error_types` ( + `id` int(11) NOT NULL, + `name` varchar(100) NOT NULL COMMENT '에러 유형명', + `description` text DEFAULT NULL COMMENT '에러 설명', + `severity` enum('low','medium','high','critical') DEFAULT 'medium' COMMENT '심각도', + `solution_guide` text DEFAULT NULL COMMENT '해결 가이드', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `error_types` +-- + +INSERT INTO `error_types` (`id`, `name`, `description`, `severity`, `solution_guide`, `created_at`, `updated_at`) VALUES +(1, '설계미스', '설계미스', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:03'), +(2, '외주작업 불량', '입고 자재 불량', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:05'), +(3, '입고지연', '자재 미입고', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:11'), +(4, '작업불량', '작업자 실수', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:13'), +(5, '설비고장', '장비없음', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:16'), +(6, '검사불량', '검사불량', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-24 04:36:18'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `FactoryInfo` +-- + +CREATE TABLE `FactoryInfo` ( + `factory_id` int(11) NOT NULL, + `factory_name` varchar(255) NOT NULL, + `address` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `map_image_url` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `FactoryInfo` +-- + +INSERT INTO `FactoryInfo` (`factory_id`, `factory_name`, `address`, `description`, `map_image_url`, `created_at`, `updated_at`) VALUES +(3, '제1공장 휴게공간 및 작업자 사물함', '현대기아로 771-9', '개인 보관함, 컨테이너(휴게공간), 화장실, 흡연장', '/uploads/map_image-1746593523450.png', '2025-05-07 04:52:03', '2025-05-07 04:52:03'), +(4, '제 1공장 공구 및 용접봉 보관 구역', '현대기아로 771-9', '소모품, 공구류, 용접봉 보관 구역', '/uploads/map_image-1746593674259.png', '2025-05-07 04:53:59', '2025-05-07 04:53:59'), +(5, 'ee', 'ee', 'ee', NULL, '2025-06-03 22:13:23', '2025-06-03 22:13:23'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `IssueTypes` +-- + +CREATE TABLE `IssueTypes` ( + `issue_type_id` int(11) NOT NULL, + `category` varchar(100) NOT NULL, + `subcategory` varchar(100) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `IssueTypes` +-- + +INSERT INTO `IssueTypes` (`issue_type_id`, `category`, `subcategory`) VALUES +(1, '구매팀', '자재입고지연'), +(2, '구매팀', '자재전달 미흡'), +(3, '품질', '검사 내용 전달 미흡'), +(4, '품질', '검사오류'), +(5, '설계', '설계미스(치수)'), +(6, '설계', '설계미스(작업불가)'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `login_logs` +-- + +CREATE TABLE `login_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `login_time` datetime DEFAULT current_timestamp(), + `logout_time` datetime DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `login_status` enum('success','failed','locked') DEFAULT 'success', + `failure_reason` varchar(100) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `login_logs` +-- + +INSERT INTO `login_logs` (`log_id`, `user_id`, `login_time`, `logout_time`, `ip_address`, `user_agent`, `login_status`, `failure_reason`) VALUES +(1, 3, '2025-06-15 05:58:39', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(3, 4, '2025-06-15 06:04:06', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(4, 3, '2025-06-15 06:24:53', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(5, 3, '2025-06-15 06:24:55', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(6, 3, '2025-06-15 06:32:41', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(7, 3, '2025-06-15 07:03:19', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(8, 3, '2025-06-15 07:03:21', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(9, 3, '2025-06-15 07:03:25', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(10, 1, '2025-06-15 07:40:16', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(11, 6, '2025-06-15 07:42:02', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(12, 3, '2025-06-15 07:43:30', NULL, '118.235.6.135', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(13, 3, '2025-06-15 22:02:59', NULL, '118.235.6.29', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(14, 4, '2025-06-15 22:15:25', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(15, 3, '2025-06-15 22:15:34', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(16, 6, '2025-06-15 22:15:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'failed', 'invalid_password'), +(17, 6, '2025-06-15 22:15:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(18, 3, '2025-06-15 22:16:39', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(19, 3, '2025-06-15 22:17:14', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(20, 6, '2025-06-15 22:21:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(21, 1, '2025-06-15 22:21:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(22, 6, '2025-06-15 22:22:06', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(23, 5, '2025-06-15 22:22:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(24, 6, '2025-06-15 22:23:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(25, 3, '2025-06-15 22:24:49', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(26, 3, '2025-06-15 22:30:18', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(27, 3, '2025-06-15 22:31:21', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(28, 5, '2025-06-15 22:44:31', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(29, 4, '2025-06-15 22:57:51', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(30, 4, '2025-06-15 22:57:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(31, 4, '2025-06-15 22:57:54', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(32, 4, '2025-06-15 22:57:55', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(33, 4, '2025-06-15 23:11:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(34, 4, '2025-06-15 23:28:04', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(35, 3, '2025-06-15 23:33:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(36, 3, '2025-06-16 00:58:53', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(37, 3, '2025-06-16 01:15:46', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(38, 5, '2025-06-16 01:16:43', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(39, 1, '2025-06-16 01:25:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(40, 1, '2025-06-16 01:26:08', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(41, 3, '2025-06-16 02:27:20', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(42, 3, '2025-06-16 02:45:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(43, 3, '2025-06-16 03:04:13', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(44, 3, '2025-06-16 03:17:28', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(45, 5, '2025-06-16 03:17:55', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(46, 3, '2025-06-16 03:18:56', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(47, 5, '2025-06-16 03:19:13', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(48, 1, '2025-06-16 03:55:56', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(49, 1, '2025-06-16 04:24:37', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(50, 1, '2025-06-16 04:51:36', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(51, 1, '2025-06-16 05:07:05', NULL, '118.235.7.233', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(52, 1, '2025-06-16 05:07:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(53, 1, '2025-06-16 05:43:14', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(54, 5, '2025-06-16 06:11:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(55, 1, '2025-06-16 06:19:46', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(56, 1, '2025-06-16 06:23:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(57, 1, '2025-06-16 06:39:12', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(58, 3, '2025-06-16 06:45:26', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(59, 6, '2025-06-16 06:46:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(60, 1, '2025-06-16 21:18:09', NULL, '118.235.7.45', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(61, 1, '2025-06-17 08:15:45', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(62, 5, '2025-06-17 08:22:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(63, 3, '2025-06-17 08:23:05', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'failed', 'invalid_password'), +(64, 3, '2025-06-17 08:23:21', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(65, 3, '2025-06-17 08:28:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(66, 3, '2025-06-17 08:32:25', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(67, 6, '2025-06-17 08:33:07', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(68, 1, '2025-06-17 08:36:01', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(69, 5, '2025-06-17 09:00:56', NULL, '118.235.7.173', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(70, 3, '2025-06-18 02:30:13', NULL, '118.235.6.77', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(71, 1, '2025-06-18 08:07:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(72, 1, '2025-06-18 08:07:47', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(73, 5, '2025-06-18 08:39:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(74, 6, '2025-06-18 08:46:53', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(75, 3, '2025-06-18 08:47:03', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(76, 6, '2025-06-18 08:57:48', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(77, 5, '2025-06-18 08:58:14', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(78, 3, '2025-06-18 08:59:12', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(79, 5, '2025-06-19 06:37:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(80, 3, '2025-06-19 06:57:01', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(81, 6, '2025-06-19 06:57:22', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(82, 5, '2025-06-19 06:57:56', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(83, 6, '2025-06-19 06:58:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(84, 3, '2025-06-19 06:59:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(85, 3, '2025-06-20 06:42:26', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(86, 6, '2025-06-20 06:45:06', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(87, 5, '2025-06-20 06:49:26', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(88, 3, '2025-06-20 06:49:47', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(89, 6, '2025-06-20 06:50:17', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(90, 3, '2025-06-20 22:46:20', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(91, 1, '2025-06-23 05:03:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(92, 6, '2025-06-23 06:41:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(93, 3, '2025-06-23 06:49:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(94, 6, '2025-06-23 06:50:01', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(95, 5, '2025-06-23 06:50:28', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(96, 1, '2025-06-24 05:24:17', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(97, 3, '2025-06-24 05:25:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(98, 1, '2025-06-24 09:22:29', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(99, 3, '2025-06-24 11:09:38', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(100, 6, '2025-06-24 11:09:48', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(101, 5, '2025-06-24 11:10:23', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(102, 3, '2025-06-24 11:11:29', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(103, 5, '2025-06-24 11:12:06', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(104, 6, '2025-06-24 11:12:31', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(105, 3, '2025-06-24 21:41:01', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(106, 3, '2025-06-25 04:40:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(107, 3, '2025-06-25 05:24:57', NULL, '118.235.6.179', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(108, 1, '2025-06-25 07:05:20', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(109, 1, '2025-06-25 07:06:41', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(110, 3, '2025-06-25 07:09:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(111, 3, '2025-06-25 08:49:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(112, 3, '2025-06-25 09:20:05', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(113, 3, '2025-06-25 09:40:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(114, 3, '2025-06-25 09:57:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(115, 1, '2025-06-25 10:11:03', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(116, 1, '2025-06-25 10:26:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(117, 1, '2025-06-25 10:49:29', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(118, 5, '2025-06-25 11:07:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(119, 6, '2025-06-25 11:10:41', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(120, 6, '2025-06-25 11:13:55', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(121, 5, '2025-06-25 11:14:25', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(122, 6, '2025-06-25 11:20:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(123, 1, '2025-06-25 11:24:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(124, 3, '2025-06-26 10:27:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(125, 5, '2025-06-26 11:10:47', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(126, 6, '2025-06-26 11:15:57', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(127, 3, '2025-06-26 11:17:07', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(128, 5, '2025-06-26 11:17:40', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(129, 6, '2025-06-26 11:19:00', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(130, 1, '2025-06-26 22:15:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(131, 1, '2025-06-26 22:31:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(132, 1, '2025-06-26 22:47:22', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(133, 5, '2025-06-27 01:52:48', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(134, 5, '2025-06-27 01:53:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(135, 3, '2025-06-27 06:47:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(136, 6, '2025-06-27 06:48:39', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(137, 3, '2025-06-27 06:57:15', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(138, 5, '2025-06-27 06:57:34', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(139, 6, '2025-06-27 06:57:59', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(140, 3, '2025-06-27 06:59:04', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(141, 5, '2025-06-27 06:59:29', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `password_change_logs` +-- + +CREATE TABLE `password_change_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `changed_by_user_id` int(11) DEFAULT NULL, + `changed_at` datetime DEFAULT current_timestamp(), + `change_type` enum('self','admin','reset','initial') DEFAULT 'self', + `ip_address` varchar(45) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `password_change_logs` +-- + +INSERT INTO `password_change_logs` (`log_id`, `user_id`, `changed_by_user_id`, `changed_at`, `change_type`, `ip_address`) VALUES +(1, 4, NULL, '2025-06-15 06:03:42', 'admin', NULL), +(2, 3, NULL, '2025-06-15 06:03:52', 'admin', NULL), +(3, 3, 3, '2025-06-15 06:32:30', 'self', NULL), +(4, 3, 1, '2025-06-15 07:40:39', 'admin', NULL), +(5, 5, 1, '2025-06-15 07:41:02', 'initial', NULL), +(6, 6, 1, '2025-06-15 07:41:32', 'initial', NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `PipeSpecs` +-- + +CREATE TABLE `PipeSpecs` ( + `spec_id` int(11) NOT NULL, + `material` varchar(50) NOT NULL COMMENT '재질 (예: SS400, STS304)', + `diameter_in` varchar(10) NOT NULL COMMENT '직경 (inch, 예: 2")', + `schedule` varchar(50) NOT NULL COMMENT '스케줄 (예: STD, SCH10, SCH40)' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `PipeSpecs` +-- + +INSERT INTO `PipeSpecs` (`spec_id`, `material`, `diameter_in`, `schedule`) VALUES +(2, '516-70N', '1', 'SCH80'), +(1, 'A106', '3/4', 'SCH80'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Processes` +-- + +CREATE TABLE `Processes` ( + `process_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `process_name` varchar(255) NOT NULL, + `process_start` date NOT NULL, + `process_end` date DEFAULT NULL, + `planned_worker_count` int(11) NOT NULL, + `process_description` text DEFAULT NULL, + `note` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Projects` +-- + +CREATE TABLE `Projects` ( + `project_id` int(11) NOT NULL, + `job_no` varchar(50) NOT NULL, + `project_name` varchar(255) NOT NULL, + `contract_date` date DEFAULT NULL, + `due_date` date DEFAULT NULL, + `delivery_method` varchar(100) DEFAULT NULL, + `site` varchar(100) DEFAULT NULL, + `pm` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Projects` +-- + +INSERT INTO `Projects` (`project_id`, `job_no`, `project_name`, `contract_date`, `due_date`, `delivery_method`, `site`, `pm`, `created_at`, `updated_at`) VALUES +(1, 'TKO-24008P', 'YHP Project', '2024-05-16', '2025-05-16', 'FOB', 'Quang Ninh(Vietnam)', '장형태', '2025-04-15 22:40:28', '2025-04-15 22:40:28'), +(2, 'TKG-24009P', '한화에어로스페이스 순천', '2024-06-05', '2025-05-31', '.', '순천', '장형태', '2025-04-15 22:42:41', '2025-04-15 22:42:41'), +(3, 'TKG-24011P', '효성화학 에틸렌 탱크 건설공사', '2024-06-22', '2025-12-25', '.', '울산', '김길종', '2025-04-15 22:43:53', '2025-04-15 22:43:53'), +(4, 'TKG-24013P', '김천 솔라 파워 그린 수소 Project', '2024-10-08', '2025-07-25', '.', '김천', '김길종', '2025-04-15 22:44:57', '2025-04-15 22:44:57'), +(5, 'TKG-24016P', 'LG Chem P3RE Project', '2024-11-27', '2025-09-30', '.', '.', '장형태', '2025-04-15 22:46:36', '2025-04-15 22:46:36'), +(7, 'TKO-25003F', '25년 안전보건시설설비', '2025-01-03', '2025-12-31', '.', '.', '.', '2025-04-15 22:47:32', '2025-04-15 22:47:32'), +(8, 'TKG-25007P', 'P Project', '2025-01-16', '2025-10-31', '.', '오창읍', '장형태', '2025-04-15 22:48:50', '2025-04-15 22:48:50'), +(10, 'TKR-25008P', 'DIG Airgas LG CHEM', '2025-01-23', '2025-10-15', '.', '여수', '서태원', '2025-04-15 22:50:05', '2025-04-15 22:50:05'), +(11, 'TKR-25010P', 'FK FISCHER Project', '2025-03-12', '2025-11-30', '.', '울산', '전상신', '2025-04-15 22:51:12', '2025-04-15 22:51:12'), +(12, 'TKO-24007P', 'MP7 Project', '2024-07-03', '2025-01-05', '.', '.', '윤지민', '2025-04-15 23:56:26', '2025-04-15 23:56:26'), +(13, '연차/휴무', '연차/휴무', '2025-01-01', '2025-12-31', '.', '.', '.', '2025-04-16 01:58:23', '2025-04-16 01:58:23'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Tasks` +-- + +CREATE TABLE `Tasks` ( + `task_id` int(11) NOT NULL, + `category` varchar(255) NOT NULL, + `subcategory` varchar(255) DEFAULT NULL, + `task_name` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Tasks` +-- + +INSERT INTO `Tasks` (`task_id`, `category`, `subcategory`, `task_name`, `description`, `created_at`, `updated_at`) VALUES +(1, 'Base', 'Fabrication', '용접', '...', '2025-04-15 10:41:43', '2025-04-15 10:41:43'), +(3, 'Vessel', 'MI and Marking', 'Marking', '..', '2025-04-15 22:25:58', '2025-04-15 22:25:58'), +(4, 'Vessel', 'Cutting', '자재 커팅', '..', '2025-04-15 22:26:17', '2025-04-15 22:26:17'), +(5, 'Vessel', 'Fabrication', '용접', '..', '2025-04-15 22:26:43', '2025-04-15 22:26:43'), +(7, 'PKG', 'Pipe Pre-Fabrication', '취부&용접', '배관사 1명\n용접사 1명', '2025-04-15 22:37:14', '2025-04-15 22:37:14'), +(8, 'PKG', '1st Piping Assembly', '1차 조립', '.', '2025-04-15 22:38:49', '2025-04-15 22:38:49'), +(9, 'PKG', 'Re-Assembly', '재조립', '.', '2025-04-15 22:39:18', '2025-04-15 22:39:18'), +(13, '작업지원', '구매팀', '.', '.', '2025-04-16 03:03:40', '2025-04-16 03:03:40'), +(14, '기타', '시설설비제작', '.', '.', '2025-04-16 03:30:53', '2025-04-16 03:30:53'), +(15, '기타', '휴가/연차/휴무', '.', '.', '2025-04-16 05:18:13', '2025-04-16 05:18:13'), +(16, 'PKG', '제품설치', '설치작업', 'Skid, 용기 등 설치', '2025-04-29 04:39:36', '2025-04-29 04:39:36'), +(18, '작업지원', '품질팀', 'test지원', '.', '2025-06-25 07:07:08', '2025-06-25 07:07:08'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `uploaded_documents` +-- + +CREATE TABLE `uploaded_documents` ( + `id` int(11) NOT NULL, + `title` varchar(255) NOT NULL, + `tags` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `original_name` varchar(255) DEFAULT NULL, + `stored_name` varchar(255) NOT NULL, + `file_path` varchar(500) DEFAULT NULL, + `file_type` varchar(50) DEFAULT NULL, + `file_size` int(11) DEFAULT NULL, + `submitted_by` varchar(100) DEFAULT NULL, + `dt_imported` tinyint(1) DEFAULT 0, + `dt_uuid` varchar(100) DEFAULT NULL, + `of_task_created` tinyint(1) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Users` +-- + +CREATE TABLE `Users` ( + `user_id` int(11) NOT NULL, + `username` varchar(100) NOT NULL, + `password` varchar(255) NOT NULL, + `role` varchar(30) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `access_level` varchar(30) DEFAULT NULL, + `worker_id` int(11) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `last_login_at` datetime DEFAULT NULL, + `password_changed_at` datetime DEFAULT NULL, + `failed_login_attempts` int(11) DEFAULT 0, + `locked_until` datetime DEFAULT NULL, + `name` varchar(50) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Users` +-- + +INSERT INTO `Users` (`user_id`, `username`, `password`, `role`, `created_at`, `access_level`, `worker_id`, `is_active`, `last_login_at`, `password_changed_at`, `failed_login_attempts`, `locked_until`, `name`, `email`, `updated_at`) VALUES +(1, 'hyungi', '$2b$10$lwSfKipx0fQ.9nfMUBmzt.WXzerdxuT5MVX4b3YhFeHxyYlUjM7bi', 'admin', '2025-05-06 05:03:02', 'system', NULL, 1, '2025-06-26 22:47:22', '2025-05-06 05:03:02', 0, NULL, NULL, NULL, '2025-06-26 22:47:22'), +(3, '김두수', '$2a$10$z3i2EVOotRFBj.KHzx5LQOKlXD0QHLNFEvJcd6FlO6/1TCYGk6SSu', 'leader', '2025-06-07 23:48:35', 'group_leader', 1, 1, '2025-06-27 06:59:04', '2025-06-15 07:40:39', 0, NULL, '김두수', NULL, '2025-06-27 06:59:04'), +(4, '김아무개', '$2a$10$QAJIoPyi.apz91exp8GsiO/prAD5Xwanht6XImP1jvKsy/7Ba/b8.', 'user', '2025-06-11 08:03:59', 'worker', NULL, 1, '2025-06-15 23:28:04', '2025-06-15 06:03:42', 0, NULL, '김아무개', NULL, '2025-06-15 23:28:04'), +(5, '임영규', '$2a$10$66ps/MEEi4BVABfJc5P0y.yCap09NhTMyd1A/7rFVxESytQGlB3wC', NULL, '2025-06-15 07:41:02', 'group_leader', 3, 1, '2025-06-27 06:59:29', '2025-06-15 07:41:02', 0, NULL, '임영규', NULL, '2025-06-27 06:59:29'), +(6, '반치원', '$2a$10$jcn6f7flRLZlr5yKQcXDIePodRK0rsM4deNnNGjuOlredeTVsRYZ6', NULL, '2025-06-15 07:41:32', 'group_leader', 3, 1, '2025-06-27 06:57:59', '2025-06-15 07:41:32', 0, NULL, '반치원', NULL, '2025-06-27 06:57:59'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Workers` +-- + +CREATE TABLE `Workers` ( + `worker_id` int(11) NOT NULL, + `worker_name` varchar(100) NOT NULL, + `join_date` date DEFAULT NULL, + `job_type` varchar(100) DEFAULT NULL, + `salary` decimal(10,2) DEFAULT NULL, + `annual_leave` int(11) DEFAULT NULL, + `status` text DEFAULT 'active', + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Workers` +-- + +INSERT INTO `Workers` (`worker_id`, `worker_name`, `join_date`, `job_type`, `salary`, `annual_leave`, `status`, `created_at`, `updated_at`) VALUES +(1, '김두수', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:08', '2025-04-15 22:23:08'), +(2, '임영규', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:17', '2025-04-15 22:23:17'), +(3, '반치원', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:22', '2025-04-15 22:23:22'), +(4, '황인용', '2025-04-01', '가공,조공', 220000.00, 15, '..', '2025-04-15 22:23:33', '2025-04-15 22:23:33'), +(5, '표영진', '2025-04-01', '가공,조공', 220000.00, 15, '..', '2025-04-15 22:23:38', '2025-04-15 22:23:38'), +(6, '김윤섭', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:23:46', '2025-04-15 22:23:46'), +(7, '이창호', '2025-04-01', '용접,배관', 220000.00, 15, '..', '2025-04-15 22:23:51', '2025-04-15 22:23:51'), +(8, '최광욱', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:23:57', '2025-04-15 22:23:57'), +(9, '박현수', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:24:01', '2025-04-15 22:24:01'), +(10, '조윤호', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:24:07', '2025-04-15 22:24:07'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `worker_groups` +-- + +CREATE TABLE `worker_groups` ( + `id` int(11) NOT NULL, + `group_leader_id` int(11) NOT NULL, + `worker_id` int(11) NOT NULL, + `group_name` varchar(100) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `WorkReports` +-- + +CREATE TABLE `WorkReports` ( + `id` int(11) NOT NULL, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `morning_task_id` int(11) DEFAULT NULL, + `afternoon_task_id` int(11) DEFAULT NULL, + `overtime_hours` decimal(4,1) DEFAULT 0.0, + `overtime_task_id` int(11) DEFAULT NULL, + `work_details` text DEFAULT NULL, + `note` text DEFAULT NULL, + `memo` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `morning_project_id` int(11) DEFAULT NULL, + `afternoon_project_id` int(11) DEFAULT NULL, + `overtime_project_id` int(11) DEFAULT NULL, + `task_id` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `WorkReports` +-- + +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(176, '2025-01-02', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(177, '2025-01-02', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(178, '2025-01-02', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(179, '2025-01-02', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(180, '2025-01-02', 8, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(181, '2025-01-02', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(182, '2025-01-02', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(183, '2025-01-02', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 15), +(194, '2025-01-03', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(195, '2025-01-03', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(196, '2025-01-03', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 15), +(197, '2025-01-03', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(198, '2025-01-03', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 15), +(199, '2025-01-03', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(200, '2025-01-03', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(201, '2025-01-03', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(202, '2025-01-03', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(203, '2025-01-04', 7, 12, NULL, NULL, NULL, NULL, '휴일근무', NULL, NULL, '2025-04-16 05:43:25', '2025-04-16 05:43:25', NULL, NULL, NULL, 12), +(204, '2025-01-06', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:03', '2025-04-16 05:44:03', NULL, NULL, NULL, 12), +(205, '2025-01-06', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:03', '2025-04-16 05:44:03', NULL, NULL, NULL, 12), +(206, '2025-01-06', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(207, '2025-01-06', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(208, '2025-01-06', 8, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(209, '2025-01-06', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(210, '2025-01-06', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(211, '2025-01-06', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(212, '2025-01-06', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(213, '2025-01-07', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(214, '2025-01-07', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 1), +(215, '2025-01-07', 3, 12, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(216, '2025-01-07', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(217, '2025-01-07', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 1), +(218, '2025-01-07', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(219, '2025-01-07', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(220, '2025-01-07', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:25', '2025-04-16 05:45:25', NULL, NULL, NULL, 12), +(221, '2025-01-07', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:25', '2025-04-16 05:45:25', NULL, NULL, NULL, 1), +(222, '2025-01-08', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(223, '2025-01-08', 2, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(224, '2025-01-08', 3, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(225, '2025-01-08', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(226, '2025-01-08', 8, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(227, '2025-01-08', 9, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(228, '2025-01-08', 6, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(229, '2025-01-08', 4, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(230, '2025-01-08', 5, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(231, '2025-01-09', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(232, '2025-01-09', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(233, '2025-01-09', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(234, '2025-01-09', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(235, '2025-01-09', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(236, '2025-01-09', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(237, '2025-01-09', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(238, '2025-01-09', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(239, '2025-01-09', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(240, '2025-01-10', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:16', '2025-04-16 05:49:16', NULL, NULL, NULL, 13), +(241, '2025-01-10', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(242, '2025-01-10', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(243, '2025-01-10', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(244, '2025-01-10', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(245, '2025-01-10', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(246, '2025-01-10', 6, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 15), +(247, '2025-01-10', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(248, '2025-01-10', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(249, '2025-01-13', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(250, '2025-01-13', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(251, '2025-01-13', 3, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(252, '2025-01-13', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(253, '2025-01-13', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(254, '2025-01-13', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(255, '2025-01-13', 6, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(256, '2025-01-13', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 15), +(257, '2025-01-13', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(258, '2025-01-14', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(259, '2025-01-14', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(260, '2025-01-14', 3, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(261, '2025-01-14', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(262, '2025-01-14', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(263, '2025-01-14', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(265, '2025-01-14', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(266, '2025-01-14', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(267, '2025-01-14', 6, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(268, '2025-01-15', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(269, '2025-01-15', 2, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 14), +(270, '2025-01-15', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(271, '2025-01-15', 7, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 13), +(272, '2025-01-15', 8, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 14), +(273, '2025-01-15', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(275, '2025-01-15', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(276, '2025-01-15', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:38', '2025-04-16 05:52:38', NULL, NULL, NULL, 1), +(277, '2025-01-15', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:38', '2025-04-16 05:52:38', NULL, NULL, NULL, 1), +(278, '2025-01-16', 1, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(279, '2025-01-16', 2, 7, NULL, NULL, NULL, NULL, '근무', NULL, '볼트 보관함 제작', '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 14), +(280, '2025-01-16', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(281, '2025-01-16', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(282, '2025-01-16', 8, 7, NULL, NULL, NULL, NULL, '근무', NULL, '볼트 보관함 제작', '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 14), +(283, '2025-01-16', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(285, '2025-01-16', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(286, '2025-01-16', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(287, '2025-01-16', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(288, '2025-01-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(289, '2025-01-17', 2, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(290, '2025-01-17', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(291, '2025-01-17', 7, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(292, '2025-01-17', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(293, '2025-01-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(295, '2025-01-17', 4, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(296, '2025-01-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(297, '2025-01-17', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(298, '2025-01-20', 1, 7, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(299, '2025-01-20', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 8), +(300, '2025-01-20', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(301, '2025-01-20', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(302, '2025-01-20', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(303, '2025-01-20', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(304, '2025-01-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(305, '2025-01-20', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(306, '2025-01-20', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(307, '2025-01-21', 1, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 15), +(308, '2025-01-21', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 8), +(309, '2025-01-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(310, '2025-01-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(311, '2025-01-21', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 8), +(312, '2025-01-21', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 15), +(313, '2025-01-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(314, '2025-01-21', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(315, '2025-01-21', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:07', '2025-04-16 05:59:07', NULL, NULL, NULL, 1), +(316, '2025-01-22', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(317, '2025-01-22', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(318, '2025-01-22', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(319, '2025-01-22', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(320, '2025-01-22', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(321, '2025-01-22', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(322, '2025-01-22', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(323, '2025-01-22', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(324, '2025-01-22', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(325, '2025-01-23', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(326, '2025-01-23', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 8), +(327, '2025-01-23', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(328, '2025-01-23', 7, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(329, '2025-01-23', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(330, '2025-01-23', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(331, '2025-01-23', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(332, '2025-01-23', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(333, '2025-01-23', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 8), +(334, '2025-01-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(335, '2025-01-24', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 8), +(336, '2025-01-24', 3, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(337, '2025-01-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(338, '2025-01-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(339, '2025-01-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(340, '2025-01-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(341, '2025-01-24', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 8), +(342, '2025-01-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(343, '2025-02-03', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(344, '2025-02-03', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 8), +(345, '2025-02-03', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(346, '2025-02-03', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(347, '2025-02-03', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(348, '2025-02-03', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(349, '2025-02-03', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(350, '2025-02-03', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 8), +(351, '2025-02-03', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(352, '2025-02-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(353, '2025-02-04', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(354, '2025-02-04', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 8), +(355, '2025-02-04', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(356, '2025-02-04', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(357, '2025-02-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(358, '2025-02-04', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(359, '2025-02-04', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 8), +(360, '2025-02-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(361, '2025-02-05', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 8), +(362, '2025-02-05', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(363, '2025-02-05', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(364, '2025-02-05', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(365, '2025-02-05', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(366, '2025-02-05', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(367, '2025-02-05', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 1), +(368, '2025-02-05', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 8), +(369, '2025-02-05', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 1), +(370, '2025-02-06', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(371, '2025-02-06', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 15), +(372, '2025-02-06', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(373, '2025-02-06', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(374, '2025-02-06', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(375, '2025-02-06', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(376, '2025-02-06', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(377, '2025-02-06', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(378, '2025-02-06', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(379, '2025-02-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(380, '2025-02-07', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 8), +(381, '2025-02-07', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(382, '2025-02-07', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 15), +(383, '2025-02-07', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(384, '2025-02-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(385, '2025-02-07', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(386, '2025-02-07', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 8), +(387, '2025-02-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(388, '2025-02-10', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(389, '2025-02-10', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 8), +(390, '2025-02-10', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(391, '2025-02-10', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(392, '2025-02-10', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(393, '2025-02-10', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(394, '2025-02-10', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(395, '2025-02-10', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 8), +(396, '2025-02-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(397, '2025-02-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(398, '2025-02-11', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 8), +(399, '2025-02-11', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(400, '2025-02-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(401, '2025-02-11', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(402, '2025-02-11', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(403, '2025-02-11', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(404, '2025-02-11', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 8), +(405, '2025-02-11', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(406, '2025-02-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(407, '2025-02-12', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 8), +(408, '2025-02-12', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(409, '2025-02-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(410, '2025-02-12', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(411, '2025-02-12', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(412, '2025-02-12', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 15), +(413, '2025-02-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(414, '2025-02-12', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(415, '2025-02-13', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(416, '2025-02-13', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 7), +(417, '2025-02-13', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(418, '2025-02-13', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(419, '2025-02-13', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(420, '2025-02-13', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(421, '2025-02-13', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(422, '2025-02-13', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 7), +(423, '2025-02-13', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(424, '2025-02-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(425, '2025-02-14', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 7), +(426, '2025-02-14', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(427, '2025-02-14', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(428, '2025-02-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(429, '2025-02-14', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(430, '2025-02-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(431, '2025-02-14', 4, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 7), +(432, '2025-02-14', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(433, '2025-02-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:39', '2025-04-16 06:18:39', NULL, NULL, NULL, 1), +(434, '2025-02-17', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 8), +(435, '2025-02-17', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(436, '2025-02-17', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(437, '2025-02-17', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 15), +(438, '2025-02-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(439, '2025-02-17', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(440, '2025-02-17', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 8), +(441, '2025-02-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(442, '2025-02-18', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(443, '2025-02-18', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 15), +(444, '2025-02-18', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(445, '2025-02-18', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(446, '2025-02-18', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(447, '2025-02-18', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(448, '2025-02-18', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 7), +(449, '2025-02-18', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(450, '2025-02-18', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(451, '2025-02-19', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(452, '2025-02-19', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(453, '2025-02-19', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(454, '2025-02-19', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(455, '2025-02-19', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(456, '2025-02-19', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(457, '2025-02-19', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(458, '2025-02-19', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(459, '2025-02-19', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(460, '2025-02-20', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(461, '2025-02-20', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(462, '2025-02-20', 3, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(463, '2025-02-20', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(464, '2025-02-20', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(465, '2025-02-20', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(466, '2025-02-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(467, '2025-02-20', 7, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(468, '2025-02-20', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(469, '2025-02-21', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(470, '2025-02-21', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(471, '2025-02-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(472, '2025-02-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(473, '2025-02-21', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(474, '2025-02-21', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(475, '2025-02-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(476, '2025-02-21', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(477, '2025-02-21', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(478, '2025-02-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(479, '2025-02-24', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(480, '2025-02-24', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(481, '2025-02-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(482, '2025-02-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(483, '2025-02-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(484, '2025-02-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(485, '2025-02-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(486, '2025-02-24', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:33', '2025-04-16 06:24:33', NULL, NULL, NULL, 7), +(487, '2025-02-24', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, '근무시작', '2025-04-16 06:25:07', '2025-04-16 06:25:07', NULL, NULL, NULL, 7), +(488, '2025-02-25', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(489, '2025-02-25', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(490, '2025-02-25', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(491, '2025-02-25', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(492, '2025-02-25', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(493, '2025-02-25', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(494, '2025-02-25', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(495, '2025-02-25', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(496, '2025-02-25', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(497, '2025-02-25', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(498, '2025-02-26', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '당진출장 건', '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 14), +(499, '2025-02-26', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(500, '2025-02-26', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(501, '2025-02-26', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '당진출장 건', '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 14), +(502, '2025-02-26', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(503, '2025-02-26', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(504, '2025-02-26', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(505, '2025-02-26', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 15), +(506, '2025-02-26', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(507, '2025-02-26', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(508, '2025-02-27', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(509, '2025-02-27', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(510, '2025-02-27', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(511, '2025-02-27', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(512, '2025-02-27', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(513, '2025-02-27', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(514, '2025-02-27', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(515, '2025-02-27', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(516, '2025-02-27', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(517, '2025-02-27', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(518, '2025-02-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 13), +(519, '2025-02-28', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(520, '2025-02-28', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(521, '2025-02-28', 7, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 13), +(522, '2025-02-28', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(523, '2025-02-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(524, '2025-02-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(525, '2025-02-28', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(526, '2025-02-28', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 15), +(527, '2025-02-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(528, '2025-03-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(529, '2025-03-04', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(530, '2025-03-04', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 8), +(531, '2025-03-04', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 15), +(532, '2025-03-04', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(533, '2025-03-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(534, '2025-03-04', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(535, '2025-03-04', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(536, '2025-03-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(537, '2025-03-04', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 8), +(538, '2025-03-05', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(539, '2025-03-05', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(540, '2025-03-05', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 8), +(541, '2025-03-05', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(542, '2025-03-05', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(543, '2025-03-05', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(544, '2025-03-05', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(545, '2025-03-05', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 15), +(546, '2025-03-05', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(547, '2025-03-05', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 8), +(548, '2025-03-06', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(549, '2025-03-06', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(550, '2025-03-06', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 8), +(551, '2025-03-06', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 15), +(552, '2025-03-06', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(553, '2025-03-06', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(554, '2025-03-06', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(555, '2025-03-06', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(556, '2025-03-06', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(557, '2025-03-06', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 8), +(558, '2025-03-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7); +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(559, '2025-03-07', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 13), +(560, '2025-03-07', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 8), +(561, '2025-03-07', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 15), +(562, '2025-03-07', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(563, '2025-03-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(564, '2025-03-07', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(565, '2025-03-07', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 13), +(566, '2025-03-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(567, '2025-03-07', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 8), +(568, '2025-03-10', 1, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(569, '2025-03-10', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 3), +(570, '2025-03-10', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(571, '2025-03-10', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 15), +(572, '2025-03-10', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 7), +(573, '2025-03-10', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 15), +(574, '2025-03-10', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 7), +(575, '2025-03-10', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 3), +(576, '2025-03-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(577, '2025-03-10', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(578, '2025-03-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:06', '2025-04-16 06:39:06', NULL, NULL, NULL, 8), +(579, '2025-03-11', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(580, '2025-03-11', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(581, '2025-03-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(582, '2025-03-11', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(583, '2025-03-11', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 15), +(584, '2025-03-11', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(585, '2025-03-11', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(586, '2025-03-11', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(587, '2025-03-11', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(588, '2025-03-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(589, '2025-03-12', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(590, '2025-03-12', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(591, '2025-03-12', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(592, '2025-03-12', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(593, '2025-03-12', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 15), +(594, '2025-03-12', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(595, '2025-03-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(596, '2025-03-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(597, '2025-03-12', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(598, '2025-03-13', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(599, '2025-03-13', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(600, '2025-03-13', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(601, '2025-03-13', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(602, '2025-03-13', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(603, '2025-03-13', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 15), +(604, '2025-03-13', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(605, '2025-03-13', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(606, '2025-03-13', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(607, '2025-03-13', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(608, '2025-03-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(609, '2025-03-14', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 4), +(610, '2025-03-14', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(612, '2025-03-14', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(613, '2025-03-14', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 15), +(614, '2025-03-14', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(615, '2025-03-14', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(616, '2025-03-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(617, '2025-03-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(628, '2025-03-18', 1, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(629, '2025-03-18', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(630, '2025-03-18', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(631, '2025-03-18', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(632, '2025-03-18', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(633, '2025-03-18', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 15), +(634, '2025-03-18', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(635, '2025-03-18', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(636, '2025-03-18', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(637, '2025-03-18', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(648, '2025-03-17', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(649, '2025-03-17', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 4), +(650, '2025-03-17', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(651, '2025-03-17', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 4), +(652, '2025-03-17', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(653, '2025-03-17', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 15), +(654, '2025-03-17', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(655, '2025-03-17', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(656, '2025-03-17', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(657, '2025-03-17', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(658, '2025-03-19', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 4), +(659, '2025-03-19', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(660, '2025-03-19', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(661, '2025-03-19', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 4), +(662, '2025-03-19', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(663, '2025-03-19', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(664, '2025-03-19', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(665, '2025-03-19', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, '용접기 보관함 제작', '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 14), +(666, '2025-03-19', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 4), +(667, '2025-03-19', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(668, '2025-03-20', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(669, '2025-03-20', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(670, '2025-03-20', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(671, '2025-03-20', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(672, '2025-03-20', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(673, '2025-03-20', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(674, '2025-03-20', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(675, '2025-03-20', 4, 7, NULL, NULL, 2.0, NULL, '근무', NULL, '용접기 보관함 제작', '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 14), +(676, '2025-03-20', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(677, '2025-03-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(678, '2025-03-21', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:27', '2025-04-16 21:34:27', NULL, NULL, NULL, 8), +(679, '2025-03-21', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(680, '2025-03-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(681, '2025-03-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(682, '2025-03-21', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(683, '2025-03-21', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(684, '2025-03-21', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(685, '2025-03-21', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, '용기 보관함 제작', '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 14), +(686, '2025-03-21', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(687, '2025-03-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(688, '2025-03-24', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(689, '2025-03-24', 2, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(690, '2025-03-24', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(691, '2025-03-24', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(692, '2025-03-24', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(693, '2025-03-24', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(694, '2025-03-24', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(695, '2025-03-24', 4, 7, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 보관함 제작', '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 14), +(696, '2025-03-24', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(697, '2025-03-24', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(698, '2025-03-25', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(699, '2025-03-25', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(700, '2025-03-25', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(701, '2025-03-25', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(702, '2025-03-25', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(703, '2025-03-25', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(704, '2025-03-25', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(705, '2025-03-25', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 14), +(706, '2025-03-25', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(707, '2025-03-25', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(708, '2025-03-26', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 13), +(709, '2025-03-26', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 15), +(710, '2025-03-26', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(711, '2025-03-26', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(712, '2025-03-26', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(713, '2025-03-26', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(714, '2025-03-26', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(715, '2025-03-26', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 13), +(716, '2025-03-26', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(717, '2025-03-26', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(718, '2025-03-27', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(719, '2025-03-27', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(720, '2025-03-27', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(721, '2025-03-27', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(722, '2025-03-27', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(723, '2025-03-27', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(724, '2025-03-27', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 15), +(725, '2025-03-27', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(726, '2025-03-27', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(727, '2025-03-27', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(728, '2025-03-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(729, '2025-03-28', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(730, '2025-03-28', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 15), +(731, '2025-03-28', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 15), +(732, '2025-03-28', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(733, '2025-03-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(734, '2025-03-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(735, '2025-03-28', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(736, '2025-03-28', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(737, '2025-03-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(738, '2025-03-31', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(739, '2025-03-31', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 5), +(740, '2025-03-31', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(741, '2025-03-31', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(742, '2025-03-31', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(743, '2025-03-31', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(744, '2025-03-31', 10, 13, NULL, NULL, NULL, NULL, '유급', NULL, '외조모상(2일)', '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 15), +(745, '2025-03-31', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 5), +(746, '2025-03-31', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(747, '2025-03-31', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(748, '2025-03-14', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-17 01:53:24', '2025-04-17 01:53:24', NULL, NULL, NULL, 4), +(749, '2025-04-01', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(750, '2025-04-01', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(751, '2025-04-01', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(752, '2025-04-01', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(753, '2025-04-01', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(754, '2025-04-01', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(755, '2025-04-01', 10, 13, NULL, NULL, NULL, NULL, '유급', NULL, '외조모상', '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 15), +(756, '2025-04-01', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(757, '2025-04-01', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(758, '2025-04-01', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:43', '2025-04-17 04:22:43', NULL, NULL, NULL, 9), +(769, '2025-04-02', 1, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-17 04:25:55', '2025-04-17 04:25:55', NULL, NULL, NULL, 9), +(770, '2025-04-02', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(771, '2025-04-02', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(773, '2025-04-02', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(774, '2025-04-02', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(775, '2025-04-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 15), +(776, '2025-04-02', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 15), +(777, '2025-04-02', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(778, '2025-04-02', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(779, '2025-04-03', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(780, '2025-04-03', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(781, '2025-04-03', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(783, '2025-04-03', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(784, '2025-04-03', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(785, '2025-04-03', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(786, '2025-04-03', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(787, '2025-04-03', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(788, '2025-04-03', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(789, '2025-04-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(790, '2025-04-04', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(791, '2025-04-04', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(792, '2025-04-04', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(793, '2025-04-04', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(794, '2025-04-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(795, '2025-04-04', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(796, '2025-04-04', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(797, '2025-04-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(798, '2025-04-04', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(799, '2025-04-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(800, '2025-04-07', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(801, '2025-04-07', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(802, '2025-04-07', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(803, '2025-04-07', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(804, '2025-04-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(805, '2025-04-07', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(806, '2025-04-07', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(807, '2025-04-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(808, '2025-04-07', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(809, '2025-04-08', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(811, '2025-04-08', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(812, '2025-04-08', 7, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(813, '2025-04-08', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(814, '2025-04-08', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(815, '2025-04-08', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(816, '2025-04-08', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(817, '2025-04-08', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(818, '2025-04-08', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(819, '2025-04-09', 1, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-17 04:43:02', '2025-04-17 04:43:02', NULL, NULL, NULL, 9), +(820, '2025-04-09', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:02', '2025-04-17 04:43:02', NULL, NULL, NULL, 9), +(821, '2025-04-09', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(822, '2025-04-09', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(823, '2025-04-09', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(824, '2025-04-09', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(825, '2025-04-09', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(826, '2025-04-09', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(827, '2025-04-09', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(828, '2025-04-09', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(829, '2025-04-10', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(830, '2025-04-10', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(831, '2025-04-10', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(832, '2025-04-10', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(833, '2025-04-10', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(834, '2025-04-10', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(835, '2025-04-10', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(836, '2025-04-10', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(837, '2025-04-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(838, '2025-04-10', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(839, '2025-04-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 9), +(840, '2025-04-11', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 9), +(841, '2025-04-11', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 5), +(842, '2025-04-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(843, '2025-04-11', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 5), +(844, '2025-04-11', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 15), +(845, '2025-04-11', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 5), +(846, '2025-04-11', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(847, '2025-04-11', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 15), +(848, '2025-04-11', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(849, '2025-04-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(850, '2025-04-14', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(851, '2025-04-14', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 5), +(852, '2025-04-14', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(853, '2025-04-14', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 5), +(854, '2025-04-14', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(855, '2025-04-14', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(856, '2025-04-14', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(857, '2025-04-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(858, '2025-04-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(859, '2025-04-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(860, '2025-04-17', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(861, '2025-04-17', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(862, '2025-04-17', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(863, '2025-04-17', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(864, '2025-04-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(865, '2025-04-17', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(866, '2025-04-17', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(867, '2025-04-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(868, '2025-04-17', 6, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(879, '2025-04-21', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(880, '2025-04-21', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(881, '2025-04-21', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(882, '2025-04-21', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(883, '2025-04-21', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(884, '2025-04-21', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(885, '2025-04-21', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(886, '2025-04-21', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(887, '2025-04-21', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(888, '2025-04-21', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(889, '2025-04-22', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(890, '2025-04-22', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(891, '2025-04-22', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(892, '2025-04-22', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(893, '2025-04-22', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(894, '2025-04-22', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(895, '2025-04-22', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(896, '2025-04-22', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(897, '2025-04-22', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(898, '2025-04-22', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(899, '2025-04-23', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(900, '2025-04-23', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(901, '2025-04-23', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(902, '2025-04-23', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(903, '2025-04-23', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(904, '2025-04-23', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(905, '2025-04-23', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(906, '2025-04-23', 4, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(907, '2025-04-23', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(908, '2025-04-23', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(909, '2025-04-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, '벨브 부적합 관련 작업 추가', '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(910, '2025-04-24', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(911, '2025-04-24', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(912, '2025-04-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(913, '2025-04-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(914, '2025-04-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(915, '2025-04-24', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(916, '2025-04-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(917, '2025-04-24', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(918, '2025-04-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(919, '2025-04-25', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(920, '2025-04-25', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(921, '2025-04-25', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 5), +(922, '2025-04-25', 7, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(923, '2025-04-25', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(924, '2025-04-25', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(925, '2025-04-25', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(926, '2025-04-25', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '확관 작업', '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 5), +(927, '2025-04-25', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(928, '2025-04-25', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:39', '2025-04-25 04:23:39', NULL, NULL, NULL, 5), +(929, '2025-04-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:22', '2025-04-28 23:20:22', NULL, NULL, NULL, 9), +(930, '2025-04-28', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(931, '2025-04-28', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(932, '2025-04-28', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(934, '2025-04-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(935, '2025-04-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(936, '2025-04-28', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(937, '2025-04-28', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(938, '2025-04-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(939, '2025-04-29', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 9), +(940, '2025-04-29', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(941, '2025-04-29', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(942, '2025-04-29', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 9), +(943, '2025-04-29', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(944, '2025-04-29', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(945, '2025-04-29', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 14), +(946, '2025-04-29', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(947, '2025-04-29', 8, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(948, '2025-04-29', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(949, '2025-04-30', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(950, '2025-04-30', 2, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(951, '2025-04-30', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(953, '2025-04-30', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 15), +(954, '2025-04-30', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(955, '2025-04-30', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(956, '2025-04-30', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(957, '2025-04-30', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 15), +(958, '2025-04-30', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(959, '2025-04-30', 4, 7, NULL, NULL, NULL, NULL, '반반차', NULL, '제2공장 공사', '2025-04-30 04:22:04', '2025-04-30 04:22:04', NULL, NULL, NULL, 14), +(1023, '2025-04-15', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1024, '2025-04-15', 2, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1025, '2025-04-15', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1026, '2025-04-15', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1027, '2025-04-15', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1028, '2025-04-15', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1029, '2025-04-15', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1030, '2025-04-15', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1031, '2025-04-15', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1032, '2025-04-15', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1033, '2025-04-16', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1034, '2025-04-16', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1035, '2025-04-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5); +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(1036, '2025-04-16', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1037, '2025-04-16', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1038, '2025-04-16', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1039, '2025-04-16', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1040, '2025-04-16', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 15), +(1041, '2025-04-16', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1042, '2025-04-16', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1043, '2025-04-18', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1044, '2025-04-18', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1045, '2025-04-18', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1046, '2025-04-18', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1047, '2025-04-18', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 15), +(1048, '2025-04-18', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1049, '2025-04-18', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1050, '2025-04-18', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1051, '2025-04-18', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1052, '2025-04-18', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1053, '2025-04-02', 7, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-07 02:19:00', '2025-05-07 02:19:00', NULL, NULL, NULL, 9), +(1054, '2025-04-03', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 02:19:45', '2025-05-07 02:19:45', NULL, NULL, NULL, 9), +(1055, '2025-04-08', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 02:20:22', '2025-05-07 02:20:22', NULL, NULL, NULL, 9), +(1056, '2025-04-28', 8, 1, NULL, NULL, NULL, NULL, '반반차', NULL, 'NCR 벨브라인 설치', '2025-05-07 02:21:44', '2025-05-07 02:21:44', NULL, NULL, NULL, 9), +(1057, '2025-05-02', 1, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1058, '2025-05-02', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1059, '2025-05-02', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1060, '2025-05-02', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1061, '2025-05-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1062, '2025-05-02', 6, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1063, '2025-05-02', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1064, '2025-05-02', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1065, '2025-05-02', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1066, '2025-05-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1067, '2025-05-07', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1068, '2025-05-07', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1069, '2025-05-07', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1070, '2025-05-07', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1071, '2025-05-07', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1072, '2025-05-07', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1073, '2025-05-07', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1074, '2025-05-07', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1075, '2025-05-07', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1076, '2025-05-07', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1078, '2025-05-08', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1079, '2025-05-08', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1080, '2025-05-08', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1081, '2025-05-08', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1082, '2025-05-08', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1083, '2025-05-08', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1084, '2025-05-08', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1085, '2025-05-08', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1086, '2025-05-08', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1087, '2025-05-08', 1, 7, NULL, NULL, NULL, NULL, '반반차', NULL, '작업장 구역 설치', '2025-05-08 06:57:51', '2025-05-08 06:57:51', NULL, NULL, NULL, 14), +(1088, '2025-05-09', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1089, '2025-05-09', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1090, '2025-05-09', 3, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1091, '2025-05-09', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1092, '2025-05-09', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1093, '2025-05-09', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1094, '2025-05-09', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1095, '2025-05-09', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1096, '2025-05-09', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1097, '2025-05-09', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1100, '2025-05-12', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-11 21:52:46', '2025-05-11 21:52:46', NULL, NULL, NULL, 15), +(1108, '2025-05-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1111, '2025-05-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1113, '2025-05-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1115, '2025-05-12', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1116, '2025-05-12', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1117, '2025-05-13', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1118, '2025-05-13', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1119, '2025-05-13', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1120, '2025-05-13', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1121, '2025-05-13', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1122, '2025-05-13', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1123, '2025-05-13', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1124, '2025-05-13', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1125, '2025-05-13', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1126, '2025-05-13', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1127, '2025-05-12', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1128, '2025-05-12', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1129, '2025-05-12', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1130, '2025-05-12', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1131, '2025-05-14', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1132, '2025-05-14', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1133, '2025-05-14', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1134, '2025-05-14', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1135, '2025-05-14', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1136, '2025-05-14', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1137, '2025-05-14', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1138, '2025-05-14', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1139, '2025-05-14', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1140, '2025-05-14', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1141, '2025-05-15', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 14), +(1142, '2025-05-15', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1143, '2025-05-15', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1144, '2025-05-15', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1145, '2025-05-15', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1146, '2025-05-15', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1147, '2025-05-15', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 14), +(1148, '2025-05-15', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1149, '2025-05-15', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1150, '2025-05-15', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1151, '2025-05-16', 1, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1152, '2025-05-16', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1153, '2025-05-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1154, '2025-05-16', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1155, '2025-05-16', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1156, '2025-05-16', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1157, '2025-05-16', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1158, '2025-05-16', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1159, '2025-05-16', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1160, '2025-05-16', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1171, '2025-05-19', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1172, '2025-05-19', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 4), +(1173, '2025-05-19', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1174, '2025-05-19', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1175, '2025-05-19', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1176, '2025-05-19', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1177, '2025-05-19', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1179, '2025-05-19', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1180, '2025-05-19', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1181, '2025-05-21', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1183, '2025-05-21', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1184, '2025-05-21', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1185, '2025-05-21', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1186, '2025-05-21', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1187, '2025-05-21', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1188, '2025-05-21', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1189, '2025-05-21', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1190, '2025-05-21', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1191, '2025-05-20', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1192, '2025-05-20', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 3), +(1193, '2025-05-20', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1194, '2025-05-20', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1195, '2025-05-20', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1196, '2025-05-20', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1197, '2025-05-20', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1198, '2025-05-20', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1199, '2025-05-20', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1200, '2025-05-20', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1201, '2025-05-22', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1202, '2025-05-22', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 3), +(1203, '2025-05-22', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1204, '2025-05-22', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1205, '2025-05-22', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1206, '2025-05-22', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1207, '2025-05-22', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1208, '2025-05-22', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1209, '2025-05-22', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1210, '2025-05-22', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1211, '2025-05-21', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-22 04:54:12', '2025-05-22 04:54:12', NULL, NULL, NULL, 15), +(1215, '2025-05-26', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-26 06:58:00', '2025-05-26 06:58:00', NULL, NULL, NULL, 15), +(1222, '2025-05-19', 8, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-01 22:34:36', '2025-06-01 22:34:36', NULL, NULL, NULL, 3), +(1223, '2025-05-26', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1224, '2025-05-26', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1225, '2025-05-26', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1226, '2025-05-26', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1227, '2025-05-26', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1228, '2025-05-26', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1229, '2025-05-26', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1230, '2025-05-26', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1231, '2025-05-26', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1232, '2025-05-23', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1233, '2025-05-23', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 3), +(1234, '2025-05-23', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1235, '2025-05-23', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1236, '2025-05-23', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1237, '2025-05-23', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1238, '2025-05-23', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1239, '2025-05-23', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1240, '2025-05-23', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1241, '2025-05-23', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1242, '2025-05-27', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1243, '2025-05-27', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1244, '2025-05-27', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1245, '2025-05-27', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1246, '2025-05-27', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1247, '2025-05-27', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1248, '2025-05-27', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1249, '2025-05-27', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1250, '2025-05-27', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1251, '2025-05-27', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1252, '2025-05-28', 1, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-06-01 22:46:40', '2025-06-01 22:46:40', NULL, NULL, NULL, 8), +(1258, '2025-05-28', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:46:40', '2025-06-01 22:46:40', NULL, NULL, NULL, 8), +(1262, '2025-05-28', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1263, '2025-05-28', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1264, '2025-05-28', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1265, '2025-05-28', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1266, '2025-05-28', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1267, '2025-05-28', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1268, '2025-05-28', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1269, '2025-05-28', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1270, '2025-05-29', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1271, '2025-05-29', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1272, '2025-05-29', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1273, '2025-05-29', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1274, '2025-05-29', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1275, '2025-05-29', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1276, '2025-05-29', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1277, '2025-05-29', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1278, '2025-05-29', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1279, '2025-05-29', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1281, '2025-05-30', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1282, '2025-05-30', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1283, '2025-05-30', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1284, '2025-05-30', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1285, '2025-05-30', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1286, '2025-05-30', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1287, '2025-05-30', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1288, '2025-05-30', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1289, '2025-05-30', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1290, '2025-06-02', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:18', '2025-06-01 22:52:18', NULL, NULL, NULL, 8), +(1291, '2025-06-02', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 5), +(1292, '2025-06-02', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1293, '2025-06-02', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1294, '2025-06-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1295, '2025-06-02', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1296, '2025-06-02', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1297, '2025-06-02', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1298, '2025-06-02', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1299, '2025-06-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1300, '2025-05-30', 1, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-01 23:17:51', '2025-06-01 23:17:51', NULL, NULL, NULL, 8), +(1301, '2025-01-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 23:31:26', '2025-06-01 23:31:26', NULL, NULL, NULL, 15), +(1302, '2025-06-04', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1303, '2025-06-04', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1304, '2025-06-04', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1305, '2025-06-04', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 15), +(1306, '2025-06-04', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1307, '2025-06-04', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1308, '2025-06-04', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1309, '2025-06-04', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1310, '2025-06-04', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1311, '2025-06-04', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1312, '2025-06-09', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:28', NULL, NULL, NULL, 8), +(1313, '2025-06-09', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1314, '2025-06-09', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:30', NULL, NULL, NULL, 8), +(1315, '2025-06-09', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1316, '2025-06-09', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:31', NULL, NULL, NULL, 8), +(1317, '2025-06-09', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1318, '2025-06-09', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:32', NULL, NULL, NULL, 8), +(1319, '2025-06-09', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1320, '2025-06-09', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 15), +(1321, '2025-06-09', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:34', NULL, NULL, NULL, 8), +(1322, '2025-06-10', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:03', '2025-06-13 03:43:51', NULL, NULL, NULL, 8), +(1323, '2025-06-10', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:03', '2025-06-10 08:47:03', NULL, NULL, NULL, 5), +(1324, '2025-06-10', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:03', '2025-06-13 03:43:53', NULL, NULL, NULL, 8), +(1325, '2025-06-10', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:54', NULL, NULL, NULL, 8), +(1326, '2025-06-10', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1327, '2025-06-10', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1328, '2025-06-10', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:55', NULL, NULL, NULL, 8), +(1329, '2025-06-10', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1330, '2025-06-10', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:56', NULL, NULL, NULL, 8), +(1331, '2025-06-10', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:56', NULL, NULL, NULL, 8), +(1332, '2025-06-11', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:18', NULL, NULL, NULL, 8), +(1333, '2025-06-11', 2, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1334, '2025-06-11', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:19', NULL, NULL, NULL, 8), +(1335, '2025-06-11', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:20', NULL, NULL, NULL, 8), +(1336, '2025-06-11', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1337, '2025-06-11', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1338, '2025-06-11', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:22', NULL, NULL, NULL, 8), +(1339, '2025-06-11', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1340, '2025-06-11', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:23', NULL, NULL, NULL, 8), +(1341, '2025-06-11', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:23', NULL, NULL, NULL, 8), +(1342, '2025-06-13', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1343, '2025-06-13', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1344, '2025-06-13', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1345, '2025-06-13', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1346, '2025-06-13', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1347, '2025-06-13', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1348, '2025-06-13', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 15), +(1349, '2025-06-13', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1350, '2025-06-13', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1351, '2025-06-13', 10, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1352, '2025-06-05', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1353, '2025-06-05', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1354, '2025-06-05', 3, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1355, '2025-06-05', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1356, '2025-06-05', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1357, '2025-06-05', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1358, '2025-06-05', 7, 4, NULL, NULL, NULL, NULL, '반반차', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1359, '2025-06-05', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1360, '2025-06-05', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1361, '2025-06-05', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1362, '2025-06-12', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1363, '2025-06-12', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1364, '2025-06-12', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1365, '2025-06-12', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1366, '2025-06-12', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1367, '2025-06-12', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1368, '2025-06-12', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1369, '2025-06-12', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1370, '2025-06-12', 9, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1371, '2025-06-12', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1372, '2025-06-16', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:26', '2025-06-16 04:26:26', NULL, NULL, NULL, 8), +(1373, '2025-06-16', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1374, '2025-06-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1375, '2025-06-16', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1376, '2025-06-16', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1377, '2025-06-16', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'Vessel NDE 불량 수리', '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1378, '2025-06-16', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 15), +(1379, '2025-06-16', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'Vessel NDE 불량 수리', '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1380, '2025-06-16', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1381, '2025-06-16', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1382, '2025-06-17', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1383, '2025-06-17', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1384, '2025-06-17', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1385, '2025-06-17', 4, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:36:28', NULL, NULL, NULL, 5), +(1386, '2025-06-17', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1387, '2025-06-17', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 비파괴 불량', '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1388, '2025-06-17', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1389, '2025-06-17', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 비파괴 불량', '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1390, '2025-06-17', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1391, '2025-06-17', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1392, '2025-06-18', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1393, '2025-06-18', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1394, '2025-06-18', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1395, '2025-06-18', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1396, '2025-06-18', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1397, '2025-06-18', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1398, '2025-06-18', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1399, '2025-06-18', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1400, '2025-06-18', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1401, '2025-06-18', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1402, '2025-06-24', 1, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1403, '2025-06-24', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 5), +(1404, '2025-06-24', 3, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1405, '2025-06-24', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1406, '2025-06-24', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1407, '2025-06-24', 6, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1408, '2025-06-24', 7, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1409, '2025-06-24', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 5), +(1410, '2025-06-24', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1411, '2025-06-24', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1412, '2025-06-25', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1413, '2025-06-25', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 5), +(1414, '2025-06-25', 3, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1415, '2025-06-25', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1416, '2025-06-25', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1417, '2025-06-25', 6, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1418, '2025-06-25', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1419, '2025-06-25', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 5), +(1420, '2025-06-25', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1421, '2025-06-25', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1422, '2025-06-26', 1, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1423, '2025-06-26', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1424, '2025-06-26', 3, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1425, '2025-06-26', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1426, '2025-06-26', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1427, '2025-06-26', 6, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1428, '2025-06-26', 7, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1429, '2025-06-26', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1430, '2025-06-26', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1431, '2025-06-26', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1432, '2025-06-27', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1433, '2025-06-27', 2, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1434, '2025-06-27', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1435, '2025-06-27', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1436, '2025-06-27', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1437, '2025-06-27', 6, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1438, '2025-06-27', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1439, '2025-06-27', 8, 3, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1440, '2025-06-27', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1441, '2025-06-27', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_report_audit_log` +-- + +CREATE TABLE `work_report_audit_log` ( + `log_id` int(11) NOT NULL, + `action` enum('ADD_ACCUMULATE','DELETE_SINGLE','UPDATE','DELETE','CREATE','DELETE_BATCH') NOT NULL COMMENT '작업 유형', + `report_id` int(11) DEFAULT NULL COMMENT '관련 보고서 ID', + `old_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 전 값' CHECK (json_valid(`old_values`)), + `new_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 후 값' CHECK (json_valid(`new_values`)), + `changed_by` int(11) NOT NULL COMMENT '변경자 ID', + `change_reason` varchar(500) DEFAULT NULL COMMENT '변경 사유', + `ip_address` varchar(45) DEFAULT NULL COMMENT 'IP 주소', + `user_agent` text DEFAULT NULL COMMENT '사용자 에이전트', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '변경 시간' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_report_audit_log` +-- + +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(1, 'ADD_ACCUMULATE', 12, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 02:56:12'), +(2, 'DELETE_SINGLE', 12, '{\"worker_name\":\"김두수\",\"project_name\":\"MP7 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:36'), +(3, 'DELETE_SINGLE', 11, '{\"worker_name\":\"김두수\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:39'), +(4, 'DELETE_SINGLE', 7, '{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:41'), +(5, 'ADD_ACCUMULATE', 13, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":1,\"my_total\":\"1.00\",\"grand_total\":1,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"1.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 03:18:37'), +(6, 'DELETE_SINGLE', 13, '{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:19:23'), +(7, 'ADD_ACCUMULATE', 14, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(8, 'ADD_ACCUMULATE', 15, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(9, 'ADD_ACCUMULATE', 16, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(10, 'ADD_ACCUMULATE', 17, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(11, 'ADD_ACCUMULATE', 18, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(12, 'ADD_ACCUMULATE', 19, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(13, 'ADD_ACCUMULATE', 20, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:47'), +(14, 'ADD_ACCUMULATE', 21, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(15, 'ADD_ACCUMULATE', 22, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(16, 'ADD_ACCUMULATE', 23, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(17, 'ADD_ACCUMULATE', 24, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(18, 'ADD_ACCUMULATE', 25, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(19, 'ADD_ACCUMULATE', 26, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(20, 'ADD_ACCUMULATE', 27, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(21, 'ADD_ACCUMULATE', 28, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(22, 'ADD_ACCUMULATE', 29, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(23, 'ADD_ACCUMULATE', 30, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(24, 'ADD_ACCUMULATE', 31, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(25, 'ADD_ACCUMULATE', 32, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(26, 'ADD_ACCUMULATE', 33, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(27, 'ADD_ACCUMULATE', 34, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(28, 'ADD_ACCUMULATE', 35, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(29, 'ADD_ACCUMULATE', 36, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(30, 'ADD_ACCUMULATE', 37, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(31, 'ADD_ACCUMULATE', 38, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(32, 'ADD_ACCUMULATE', 39, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(33, 'ADD_ACCUMULATE', 40, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(34, 'ADD_ACCUMULATE', 41, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(35, 'ADD_ACCUMULATE', 42, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(36, 'ADD_ACCUMULATE', 43, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(37, 'DELETE_SINGLE', 42, '{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:12:33'), +(38, 'ADD_ACCUMULATE', 44, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:13:02'), +(39, 'ADD_ACCUMULATE', 45, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:13:50'), +(40, 'DELETE_SINGLE', 41, '{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:14:48'), +(41, 'ADD_ACCUMULATE', 46, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:15:22'), +(42, 'DELETE_SINGLE', 1, '{\"worker_name\":\"김두수\",\"project_name\":\"25년 안전보건시설설비\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-01T00:00:00.000Z\"}', NULL, 1, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:20:38'), +(43, 'ADD_ACCUMULATE', 48, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(44, 'ADD_ACCUMULATE', 49, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(45, 'ADD_ACCUMULATE', 50, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(46, 'DELETE_SINGLE', 49, '{\"worker_name\":\"박현수\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:47:54'), +(47, 'ADD_ACCUMULATE', 51, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:48:29'), +(48, 'ADD_ACCUMULATE', 52, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-16 06:50:09'), +(49, 'ADD_ACCUMULATE', 54, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-16 06:50:09'), +(50, 'ADD_ACCUMULATE', 56, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:23:41'), +(51, 'ADD_ACCUMULATE', 58, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:23:41'), +(52, 'ADD_ACCUMULATE', 60, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:33'), +(53, 'ADD_ACCUMULATE', 62, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:33'), +(54, 'ADD_ACCUMULATE', 64, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:44'), +(55, 'ADD_ACCUMULATE', 65, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:25:24'), +(56, 'DELETE_SINGLE', 64, '{\"worker_name\":\"황인용\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-17T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-17 08:26:17'), +(57, 'ADD_ACCUMULATE', 66, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:27:06'), +(58, 'ADD_ACCUMULATE', 67, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:27:06'), +(59, 'ADD_ACCUMULATE', 68, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(60, 'ADD_ACCUMULATE', 69, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(61, 'ADD_ACCUMULATE', 70, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(62, 'ADD_ACCUMULATE', 71, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(63, 'ADD_ACCUMULATE', 72, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(64, 'ADD_ACCUMULATE', 73, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(65, 'ADD_ACCUMULATE', 74, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-17 08:34:11'), +(66, 'ADD_ACCUMULATE', 76, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-17 08:34:11'), +(67, 'ADD_ACCUMULATE', 78, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(68, 'ADD_ACCUMULATE', 79, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(69, 'ADD_ACCUMULATE', 80, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(70, 'ADD_ACCUMULATE', 81, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:02'), +(71, 'ADD_ACCUMULATE', 82, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:03'), +(72, 'ADD_ACCUMULATE', 83, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:03'), +(73, 'ADD_ACCUMULATE', 84, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:45'), +(74, 'ADD_ACCUMULATE', 86, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-18 08:47:55'), +(75, 'ADD_ACCUMULATE', 88, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-18 08:47:55'), +(76, 'ADD_ACCUMULATE', 90, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(77, 'ADD_ACCUMULATE', 92, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(78, 'ADD_ACCUMULATE', 94, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(79, 'ADD_ACCUMULATE', 96, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 09:00:17'), +(80, 'ADD_ACCUMULATE', 98, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-19 06:37:59'), +(81, 'ADD_ACCUMULATE', 99, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-19 06:37:59'), +(82, 'ADD_ACCUMULATE', 100, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(83, 'ADD_ACCUMULATE', 101, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(84, 'ADD_ACCUMULATE', 102, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(85, 'ADD_ACCUMULATE', 103, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(86, 'ADD_ACCUMULATE', 105, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(87, 'ADD_ACCUMULATE', 107, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(88, 'ADD_ACCUMULATE', 109, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(89, 'ADD_ACCUMULATE', 111, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(90, 'ADD_ACCUMULATE', 113, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(91, 'ADD_ACCUMULATE', 115, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(92, 'ADD_ACCUMULATE', 117, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(93, 'ADD_ACCUMULATE', 119, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(94, 'ADD_ACCUMULATE', 121, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(95, 'ADD_ACCUMULATE', 123, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(96, 'ADD_ACCUMULATE', 125, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-20 06:45:30'), +(97, 'ADD_ACCUMULATE', 126, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-20 06:45:31'), +(98, 'ADD_ACCUMULATE', 127, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-23 06:42:58'), +(99, 'ADD_ACCUMULATE', 128, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-23 06:42:58'), +(100, 'ADD_ACCUMULATE', 129, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(101, 'ADD_ACCUMULATE', 131, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(102, 'ADD_ACCUMULATE', 133, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(103, 'ADD_ACCUMULATE', 135, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(104, 'ADD_ACCUMULATE', 137, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(105, 'ADD_ACCUMULATE', 139, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(106, 'ADD_ACCUMULATE', 141, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-24 11:10:32'), +(107, 'ADD_ACCUMULATE', 142, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-24 11:10:32'), +(108, 'ADD_ACCUMULATE', 143, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(109, 'ADD_ACCUMULATE', 145, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(110, 'ADD_ACCUMULATE', 147, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(111, 'ADD_ACCUMULATE', 149, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(112, 'ADD_ACCUMULATE', 151, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(113, 'ADD_ACCUMULATE', 153, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(114, 'ADD_ACCUMULATE', 155, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:05'), +(115, 'ADD_ACCUMULATE', 157, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:05'), +(116, 'ADD_ACCUMULATE', 159, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-25 11:08:04'), +(117, 'ADD_ACCUMULATE', 161, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-25 11:08:05'), +(118, 'ADD_ACCUMULATE', 163, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(119, 'ADD_ACCUMULATE', 164, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(120, 'ADD_ACCUMULATE', 165, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(121, 'ADD_ACCUMULATE', 166, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(122, 'ADD_ACCUMULATE', 167, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(123, 'ADD_ACCUMULATE', 168, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(124, 'ADD_ACCUMULATE', 169, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(125, 'ADD_ACCUMULATE', 170, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(126, 'ADD_ACCUMULATE', 171, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(127, 'ADD_ACCUMULATE', 172, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:31'), +(128, 'ADD_ACCUMULATE', 174, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:32'), +(129, 'ADD_ACCUMULATE', 176, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:32'), +(130, 'ADD_ACCUMULATE', 178, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-26 11:19:34'), +(131, 'ADD_ACCUMULATE', 179, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-26 11:19:34'), +(132, 'ADD_ACCUMULATE', 180, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:21'), +(133, 'ADD_ACCUMULATE', 181, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:21'), +(134, 'ADD_ACCUMULATE', 182, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:40'), +(135, 'ADD_ACCUMULATE', 183, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(136, 'ADD_ACCUMULATE', 184, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(137, 'ADD_ACCUMULATE', 185, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(138, 'ADD_ACCUMULATE', 186, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(139, 'ADD_ACCUMULATE', 187, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(140, 'ADD_ACCUMULATE', 188, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(141, 'ADD_ACCUMULATE', 189, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:49:08'), +(142, 'ADD_ACCUMULATE', 190, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:49:08'), +(143, 'DELETE_SINGLE', 190, '{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 6, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:58:25'), +(144, 'ADD_ACCUMULATE', 191, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"4.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:58:46'), +(145, 'DELETE_SINGLE', 181, '{\"worker_name\":\"박현수\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:59:37'), +(146, 'DELETE_SINGLE', 180, '{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:59:42'), +(147, 'ADD_ACCUMULATE', 192, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"6.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 07:00:10'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_status_types` +-- + +CREATE TABLE `work_status_types` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL COMMENT '상태명', + `description` text DEFAULT NULL COMMENT '상태 설명', + `is_error` tinyint(1) DEFAULT 0 COMMENT '에러 상태 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_status_types` +-- + +INSERT INTO `work_status_types` (`id`, `name`, `description`, `is_error`, `created_at`) VALUES +(1, '정규', '정상적으로 완료된 작업', 0, '2025-06-16 02:21:16'), +(2, '에러', '오류가 발생한 작업', 1, '2025-06-16 02:21:16'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_types` +-- + +CREATE TABLE `work_types` ( + `id` int(11) NOT NULL, + `name` varchar(100) NOT NULL COMMENT '작업 유형명', + `description` text DEFAULT NULL COMMENT '작업 유형 설명', + `category` varchar(50) DEFAULT NULL COMMENT '작업 카테고리', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_types` +-- + +INSERT INTO `work_types` (`id`, `name`, `description`, `category`, `created_at`, `updated_at`) VALUES +(1, 'Base(구조물)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:42'), +(2, 'Vessel(용기)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:47'), +(3, 'Piping Assembly(배관)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:50'), +(4, '작업대기', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:56'); + +-- +-- 덤프된 테이블의 인덱스 +-- + +-- +-- 테이블의 인덱스 `activity_logs` +-- +ALTER TABLE `activity_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_user_activity` (`user_id`,`activity_type`,`created_at`), + ADD KEY `idx_table_record` (`table_name`,`record_id`); + +-- +-- 테이블의 인덱스 `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + ADD PRIMARY KEY (`cutting_plan_id`), + ADD KEY `project_id` (`project_id`), + ADD KEY `fk_cuttingplan_spec` (`spec_id`); + +-- +-- 테이블의 인덱스 `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + ADD PRIMARY KEY (`id`), + ADD KEY `worker_id` (`worker_id`), + ADD KEY `fk_dird_project` (`project_id`), + ADD KEY `fk_dird_issuetype` (`issue_type_id`); + +-- +-- 테이블의 인덱스 `daily_worker_summary` +-- +ALTER TABLE `daily_worker_summary` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `unique_worker_date` (`worker_id`,`report_date`); + +-- +-- 테이블의 인덱스 `daily_work_reports` +-- +ALTER TABLE `daily_work_reports` + ADD PRIMARY KEY (`id`), + ADD KEY `idx_report_date` (`report_date`), + ADD KEY `idx_worker_date` (`worker_id`,`report_date`), + ADD KEY `idx_project_date` (`project_id`,`report_date`), + ADD KEY `idx_work_type` (`work_type_id`), + ADD KEY `idx_work_status` (`work_status_id`), + ADD KEY `idx_error_type` (`error_type_id`), + ADD KEY `idx_created_by` (`created_by`), + ADD KEY `idx_date_worker_creator` (`report_date`,`worker_id`,`created_by`); + +-- +-- 테이블의 인덱스 `EquipmentList` +-- +ALTER TABLE `EquipmentList` + ADD PRIMARY KEY (`equipment_id`), + ADD KEY `factory_id` (`factory_id`); + +-- +-- 테이블의 인덱스 `error_types` +-- +ALTER TABLE `error_types` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `FactoryInfo` +-- +ALTER TABLE `FactoryInfo` + ADD PRIMARY KEY (`factory_id`); + +-- +-- 테이블의 인덱스 `IssueTypes` +-- +ALTER TABLE `IssueTypes` + ADD PRIMARY KEY (`issue_type_id`); + +-- +-- 테이블의 인덱스 `login_logs` +-- +ALTER TABLE `login_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_user_login` (`user_id`,`login_time`); + +-- +-- 테이블의 인덱스 `password_change_logs` +-- +ALTER TABLE `password_change_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `changed_by_user_id` (`changed_by_user_id`), + ADD KEY `idx_user_changes` (`user_id`,`changed_at`); + +-- +-- 테이블의 인덱스 `PipeSpecs` +-- +ALTER TABLE `PipeSpecs` + ADD PRIMARY KEY (`spec_id`), + ADD UNIQUE KEY `unique_spec` (`material`,`diameter_in`,`schedule`); + +-- +-- 테이블의 인덱스 `Processes` +-- +ALTER TABLE `Processes` + ADD PRIMARY KEY (`process_id`), + ADD KEY `project_id` (`project_id`); + +-- +-- 테이블의 인덱스 `Projects` +-- +ALTER TABLE `Projects` + ADD PRIMARY KEY (`project_id`); + +-- +-- 테이블의 인덱스 `Tasks` +-- +ALTER TABLE `Tasks` + ADD PRIMARY KEY (`task_id`); + +-- +-- 테이블의 인덱스 `uploaded_documents` +-- +ALTER TABLE `uploaded_documents` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `Users` +-- +ALTER TABLE `Users` + ADD PRIMARY KEY (`user_id`), + ADD UNIQUE KEY `username` (`username`), + ADD UNIQUE KEY `email` (`email`), + ADD KEY `fk_worker` (`worker_id`), + ADD KEY `idx_username` (`username`), + ADD KEY `idx_active_users` (`is_active`,`access_level`); + +-- +-- 테이블의 인덱스 `Workers` +-- +ALTER TABLE `Workers` + ADD PRIMARY KEY (`worker_id`); + +-- +-- 테이블의 인덱스 `worker_groups` +-- +ALTER TABLE `worker_groups` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `uk_leader_worker` (`group_leader_id`,`worker_id`), + ADD KEY `idx_group_leader` (`group_leader_id`), + ADD KEY `idx_worker` (`worker_id`), + ADD KEY `idx_is_active` (`is_active`); + +-- +-- 테이블의 인덱스 `WorkReports` +-- +ALTER TABLE `WorkReports` + ADD PRIMARY KEY (`id`), + ADD KEY `worker_id` (`worker_id`), + ADD KEY `project_id` (`project_id`), + ADD KEY `morning_task_id` (`morning_task_id`), + ADD KEY `afternoon_task_id` (`afternoon_task_id`), + ADD KEY `overtime_task_id` (`overtime_task_id`); + +-- +-- 테이블의 인덱스 `work_report_audit_log` +-- +ALTER TABLE `work_report_audit_log` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_action_date` (`action`,`created_at`), + ADD KEY `idx_changed_by` (`changed_by`), + ADD KEY `idx_report_id` (`report_id`); + +-- +-- 테이블의 인덱스 `work_status_types` +-- +ALTER TABLE `work_status_types` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `work_types` +-- +ALTER TABLE `work_types` + ADD PRIMARY KEY (`id`); + +-- +-- 덤프된 테이블의 AUTO_INCREMENT +-- + +-- +-- 테이블의 AUTO_INCREMENT `activity_logs` +-- +ALTER TABLE `activity_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + MODIFY `cutting_plan_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10; + +-- +-- 테이블의 AUTO_INCREMENT `daily_worker_summary` +-- +ALTER TABLE `daily_worker_summary` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- 테이블의 AUTO_INCREMENT `daily_work_reports` +-- +ALTER TABLE `daily_work_reports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=193; + +-- +-- 테이블의 AUTO_INCREMENT `EquipmentList` +-- +ALTER TABLE `EquipmentList` + MODIFY `equipment_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `error_types` +-- +ALTER TABLE `error_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10; + +-- +-- 테이블의 AUTO_INCREMENT `FactoryInfo` +-- +ALTER TABLE `FactoryInfo` + MODIFY `factory_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; + +-- +-- 테이블의 AUTO_INCREMENT `IssueTypes` +-- +ALTER TABLE `IssueTypes` + MODIFY `issue_type_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `login_logs` +-- +ALTER TABLE `login_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=142; + +-- +-- 테이블의 AUTO_INCREMENT `password_change_logs` +-- +ALTER TABLE `password_change_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `PipeSpecs` +-- +ALTER TABLE `PipeSpecs` + MODIFY `spec_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +-- +-- 테이블의 AUTO_INCREMENT `Processes` +-- +ALTER TABLE `Processes` + MODIFY `process_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `Projects` +-- +ALTER TABLE `Projects` + MODIFY `project_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14; + +-- +-- 테이블의 AUTO_INCREMENT `Tasks` +-- +ALTER TABLE `Tasks` + MODIFY `task_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19; + +-- +-- 테이블의 AUTO_INCREMENT `uploaded_documents` +-- +ALTER TABLE `uploaded_documents` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `Users` +-- +ALTER TABLE `Users` + MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `Workers` +-- +ALTER TABLE `Workers` + MODIFY `worker_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12; + +-- +-- 테이블의 AUTO_INCREMENT `worker_groups` +-- +ALTER TABLE `worker_groups` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `WorkReports` +-- +ALTER TABLE `WorkReports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1442; + +-- +-- 테이블의 AUTO_INCREMENT `work_report_audit_log` +-- +ALTER TABLE `work_report_audit_log` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=148; + +-- +-- 테이블의 AUTO_INCREMENT `work_status_types` +-- +ALTER TABLE `work_status_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- 테이블의 AUTO_INCREMENT `work_types` +-- +ALTER TABLE `work_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11; + +-- +-- 덤프된 테이블의 제약사항 +-- + +-- +-- 테이블의 제약사항 `activity_logs` +-- +ALTER TABLE `activity_logs` + ADD CONSTRAINT `activity_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE SET NULL; + +-- +-- 테이블의 제약사항 `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + ADD CONSTRAINT `CuttingPlan_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`), + ADD CONSTRAINT `fk_cuttingplan_spec` FOREIGN KEY (`spec_id`) REFERENCES `PipeSpecs` (`spec_id`); + +-- +-- 테이블의 제약사항 `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + ADD CONSTRAINT `dailyissuereports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`), + ADD CONSTRAINT `fk_dird_issuetype` FOREIGN KEY (`issue_type_id`) REFERENCES `IssueTypes` (`issue_type_id`), + ADD CONSTRAINT `fk_dird_project` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`); + +-- +-- 테이블의 제약사항 `EquipmentList` +-- +ALTER TABLE `EquipmentList` + ADD CONSTRAINT `EquipmentList_ibfk_1` FOREIGN KEY (`factory_id`) REFERENCES `FactoryInfo` (`factory_id`); + +-- +-- 테이블의 제약사항 `login_logs` +-- +ALTER TABLE `login_logs` + ADD CONSTRAINT `login_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE; + +-- +-- 테이블의 제약사항 `password_change_logs` +-- +ALTER TABLE `password_change_logs` + ADD CONSTRAINT `password_change_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE, + ADD CONSTRAINT `password_change_logs_ibfk_2` FOREIGN KEY (`changed_by_user_id`) REFERENCES `Users` (`user_id`) ON DELETE SET NULL; + +-- +-- 테이블의 제약사항 `Processes` +-- +ALTER TABLE `Processes` + ADD CONSTRAINT `Processes_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`); + +-- +-- 테이블의 제약사항 `Users` +-- +ALTER TABLE `Users` + ADD CONSTRAINT `fk_worker` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`); + +-- +-- 테이블의 제약사항 `worker_groups` +-- +ALTER TABLE `worker_groups` + ADD CONSTRAINT `fk_group_leader` FOREIGN KEY (`group_leader_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE, + ADD CONSTRAINT `fk_group_worker` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`) ON DELETE CASCADE; + +-- +-- 테이블의 제약사항 `WorkReports` +-- +ALTER TABLE `WorkReports` + ADD CONSTRAINT `WorkReports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`), + ADD CONSTRAINT `WorkReports_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`), + ADD CONSTRAINT `WorkReports_ibfk_3` FOREIGN KEY (`morning_task_id`) REFERENCES `Tasks` (`task_id`), + ADD CONSTRAINT `WorkReports_ibfk_4` FOREIGN KEY (`afternoon_task_id`) REFERENCES `Tasks` (`task_id`), + ADD CONSTRAINT `WorkReports_ibfk_5` FOREIGN KEY (`overtime_task_id`) REFERENCES `Tasks` (`task_id`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/hyungi_fixed.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/hyungi_fixed.sql new file mode 100644 index 0000000..1f8697b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/hyungi_fixed.sql @@ -0,0 +1,2563 @@ +-- -- phpMyAdmin SQL Dump +-- version 5.2.2 +-- https://www.phpmyadmin.net/ +-- +-- 호스트: db_hyungi_net +-- 생성 시간: 25-06-27 23:07 +-- 서버 버전: 10.9.8-MariaDB-1:10.9.8+maria~ubu2204 +-- PHP 버전: 8.2.27 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- 데이터베이스: `hyungi` +-- + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `activity_logs` +-- + +CREATE TABLE `activity_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `activity_type` varchar(100) DEFAULT NULL, + `table_name` varchar(50) DEFAULT NULL, + `record_id` int(11) DEFAULT NULL, + `action` enum('create','read','update','delete') DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `CuttingPlan` +-- + +CREATE TABLE `CuttingPlan` ( + `cutting_plan_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `drawing_name` varchar(255) NOT NULL, + `area_number` varchar(100) DEFAULT NULL, + `spool_number` varchar(255) DEFAULT NULL, + `length` decimal(10,2) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `spec_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `DailyIssueReports` +-- + +CREATE TABLE `DailyIssueReports` ( + `id` int(11) NOT NULL, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `issue_type_id` int(11) DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `start_time` time NOT NULL, + `end_time` time NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `DailyIssueReports` +-- + +INSERT INTO `DailyIssueReports` (`id`, `date`, `worker_id`, `project_id`, `issue_type_id`, `description`, `created_at`, `start_time`, `end_time`) VALUES +(1, '2025-06-02', 1, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(2, '2025-06-02', 9, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(3, '2025-06-02', 7, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(4, '2025-06-04', 10, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(5, '2025-06-04', 6, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(6, '2025-06-04', 3, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(7, '2025-06-11', 10, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'), +(8, '2025-06-11', 6, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'), +(9, '2025-06-11', 3, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `daily_worker_summary` +-- + +CREATE TABLE `daily_worker_summary` ( + `id` int(11) NOT NULL, + `report_date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `total_hours` decimal(4,2) NOT NULL DEFAULT 8.00 COMMENT '총 근무시간', + `work_status` enum('normal','annual_leave','half_leave','overtime') DEFAULT 'normal' COMMENT '근무 상태', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `daily_work_reports` +-- + +CREATE TABLE `daily_work_reports` ( + `id` int(11) NOT NULL, + `report_date` date NOT NULL COMMENT '작업 날짜', + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `project_id` int(11) NOT NULL COMMENT '프로젝트 ID', + `work_type_id` int(11) NOT NULL COMMENT '작업 유형 ID', + `work_status_id` int(11) DEFAULT 1 COMMENT '업무 상태 ID (1:정규, 2:에러)', + `error_type_id` int(11) DEFAULT NULL COMMENT '에러 유형 ID (에러일 때만)', + `work_hours` decimal(4,2) NOT NULL COMMENT '작업 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `created_by` int(11) NOT NULL DEFAULT 1 COMMENT '작성자 user_id', + `updated_by` int(11) DEFAULT NULL COMMENT '수정자 user_id' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `daily_work_reports` +-- + +INSERT INTO `daily_work_reports` (`id`, `report_date`, `worker_id`, `project_id`, `work_type_id`, `work_status_id`, `error_type_id`, `work_hours`, `created_at`, `updated_at`, `created_by`, `updated_by`) VALUES +(14, '2025-06-02', 1, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(15, '2025-06-02', 3, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(16, '2025-06-02', 4, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(17, '2025-06-02', 6, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(18, '2025-06-02', 7, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(19, '2025-06-02', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(20, '2025-06-02', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:10:47', '2025-06-16 05:10:47', 1, NULL), +(21, '2025-06-04', 1, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(22, '2025-06-04', 3, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(23, '2025-06-04', 5, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(24, '2025-06-04', 7, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(25, '2025-06-04', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(26, '2025-06-04', 10, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(27, '2025-06-04', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(28, '2025-06-04', 6, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(29, '2025-06-04', 8, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(30, '2025-06-05', 1, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(31, '2025-06-05', 3, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(32, '2025-06-05', 4, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(33, '2025-06-05', 7, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(34, '2025-06-05', 10, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(35, '2025-06-05', 9, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(36, '2025-06-05', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(37, '2025-06-05', 5, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(38, '2025-06-05', 6, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(39, '2025-06-05', 8, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(40, '2025-06-16', 5, 3, 2, 1, NULL, 8.00, '2025-06-16 06:12:01', '2025-06-16 06:12:01', 5, NULL), +(43, '2025-06-16', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 06:12:01', '2025-06-16 06:12:01', 5, NULL), +(44, '2025-06-16', 6, 3, 2, 2, 4, 4.00, '2025-06-16 06:13:02', '2025-06-16 06:13:02', 5, NULL), +(45, '2025-06-16', 6, 3, 2, 1, NULL, 4.00, '2025-06-16 06:13:50', '2025-06-16 06:13:50', 5, NULL), +(46, '2025-06-16', 8, 3, 2, 2, 4, 4.00, '2025-06-16 06:15:22', '2025-06-16 06:15:22', 5, NULL), +(47, '2025-06-16', 8, 3, 2, 1, NULL, 4.00, '2025-06-16 06:15:22', '2025-06-16 06:15:22', 5, NULL), +(48, '2025-06-16', 4, 4, 3, 2, 1, 8.00, '2025-06-16 06:46:44', '2025-06-16 06:46:44', 3, NULL), +(50, '2025-06-16', 1, 4, 3, 2, 1, 8.00, '2025-06-16 06:46:44', '2025-06-16 06:46:44', 3, NULL), +(51, '2025-06-16', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 06:48:29', '2025-06-16 06:48:29', 3, NULL), +(52, '2025-06-16', 10, 4, 3, 1, NULL, 6.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(53, '2025-06-16', 10, 4, 3, 2, 1, 2.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(54, '2025-06-16', 3, 4, 3, 1, NULL, 6.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(55, '2025-06-16', 3, 4, 3, 2, 1, 2.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(56, '2025-06-17', 2, 3, 2, 1, NULL, 8.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(57, '2025-06-17', 2, 3, 2, 1, NULL, 2.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(58, '2025-06-17', 5, 3, 2, 1, NULL, 8.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(59, '2025-06-17', 5, 3, 2, 1, NULL, 2.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(60, '2025-06-17', 6, 3, 2, 1, NULL, 8.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(61, '2025-06-17', 6, 3, 2, 2, 4, 2.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(62, '2025-06-17', 8, 3, 2, 1, NULL, 8.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(63, '2025-06-17', 8, 3, 2, 2, 4, 2.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(65, '2025-06-17', 9, 4, 3, 2, 1, 4.00, '2025-06-17 08:25:24', '2025-06-17 08:25:24', 3, NULL), +(66, '2025-06-17', 1, 4, 3, 2, 1, 4.00, '2025-06-17 08:27:06', '2025-06-17 08:27:06', 3, NULL), +(67, '2025-06-17', 4, 4, 3, 2, 1, 4.00, '2025-06-17 08:27:06', '2025-06-17 08:27:06', 3, NULL), +(68, '2025-06-17', 1, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(69, '2025-06-17', 9, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(70, '2025-06-17', 4, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(71, '2025-06-17', 9, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(72, '2025-06-17', 4, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(73, '2025-06-17', 1, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(74, '2025-06-17', 10, 4, 3, 1, NULL, 8.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(75, '2025-06-17', 10, 4, 3, 2, 1, 2.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(76, '2025-06-17', 3, 4, 3, 1, NULL, 8.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(77, '2025-06-17', 3, 4, 3, 2, 1, 2.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(78, '2025-06-18', 6, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(79, '2025-06-18', 2, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(80, '2025-06-18', 8, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(81, '2025-06-18', 2, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:02', '2025-06-18 08:41:02', 5, NULL), +(82, '2025-06-18', 6, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:03', '2025-06-18 08:41:03', 5, NULL), +(83, '2025-06-18', 8, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:03', '2025-06-18 08:41:03', 5, NULL), +(84, '2025-06-18', 5, 4, 3, 1, NULL, 8.00, '2025-06-18 08:41:45', '2025-06-18 08:41:45', 5, NULL), +(85, '2025-06-18', 5, 4, 3, 1, NULL, 2.00, '2025-06-18 08:41:45', '2025-06-18 08:41:45', 5, NULL), +(86, '2025-06-18', 10, 4, 3, 1, NULL, 9.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(87, '2025-06-18', 10, 4, 3, 2, 1, 1.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(88, '2025-06-18', 3, 4, 3, 1, NULL, 9.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(89, '2025-06-18', 3, 4, 3, 2, 1, 1.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(90, '2025-06-18', 4, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(91, '2025-06-18', 4, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(92, '2025-06-18', 9, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(93, '2025-06-18', 9, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(94, '2025-06-18', 1, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(95, '2025-06-18', 1, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(96, '2025-06-18', 7, 4, 3, 2, 1, 4.00, '2025-06-18 09:00:17', '2025-06-18 09:00:17', 3, NULL), +(97, '2025-06-18', 7, 4, 3, 1, NULL, 6.00, '2025-06-18 09:00:17', '2025-06-18 09:00:17', 3, NULL), +(98, '2025-06-19', 8, 3, 2, 1, NULL, 8.00, '2025-06-19 06:37:59', '2025-06-19 06:37:59', 5, NULL), +(99, '2025-06-19', 2, 3, 2, 1, NULL, 8.00, '2025-06-19 06:37:59', '2025-06-19 06:37:59', 5, NULL), +(100, '2025-06-19', 10, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(101, '2025-06-19', 3, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(102, '2025-06-19', 5, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(103, '2025-06-19', 9, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(104, '2025-06-19', 9, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(105, '2025-06-19', 4, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(106, '2025-06-19', 4, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(107, '2025-06-19', 1, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(108, '2025-06-19', 1, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(109, '2025-06-19', 7, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(110, '2025-06-19', 7, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(111, '2025-06-19', 6, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(112, '2025-06-19', 6, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(113, '2025-06-20', 9, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(114, '2025-06-20', 9, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(115, '2025-06-20', 4, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(116, '2025-06-20', 4, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(117, '2025-06-20', 7, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(118, '2025-06-20', 7, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(119, '2025-06-20', 6, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(120, '2025-06-20', 6, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(121, '2025-06-20', 1, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(122, '2025-06-20', 1, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(123, '2025-06-20', 5, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(124, '2025-06-20', 5, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(125, '2025-06-20', 10, 4, 3, 1, NULL, 8.00, '2025-06-20 06:45:30', '2025-06-20 06:45:30', 6, NULL), +(126, '2025-06-20', 3, 4, 3, 1, NULL, 8.00, '2025-06-20 06:45:31', '2025-06-20 06:45:31', 6, NULL), +(127, '2025-06-23', 10, 4, 3, 1, NULL, 8.00, '2025-06-23 06:42:58', '2025-06-23 06:42:58', 6, NULL), +(128, '2025-06-23', 3, 4, 3, 1, NULL, 8.00, '2025-06-23 06:42:58', '2025-06-23 06:42:58', 6, NULL), +(129, '2025-06-23', 5, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(130, '2025-06-23', 5, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(131, '2025-06-23', 1, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(132, '2025-06-23', 1, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(133, '2025-06-23', 9, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(134, '2025-06-23', 9, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(135, '2025-06-23', 4, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(136, '2025-06-23', 4, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(137, '2025-06-23', 7, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(138, '2025-06-23', 7, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(139, '2025-06-23', 6, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(140, '2025-06-23', 6, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(141, '2025-06-24', 10, 4, 3, 1, NULL, 12.00, '2025-06-24 11:10:32', '2025-06-24 11:10:32', 6, NULL), +(142, '2025-06-24', 3, 4, 3, 1, NULL, 12.00, '2025-06-24 11:10:32', '2025-06-24 11:10:32', 6, NULL), +(143, '2025-06-24', 9, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(144, '2025-06-24', 9, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(145, '2025-06-24', 5, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(146, '2025-06-24', 5, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(147, '2025-06-24', 4, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(148, '2025-06-24', 4, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(149, '2025-06-24', 7, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(150, '2025-06-24', 7, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(151, '2025-06-24', 6, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(152, '2025-06-24', 6, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(153, '2025-06-24', 1, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(154, '2025-06-24', 1, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(155, '2025-06-24', 8, 3, 2, 1, NULL, 8.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(156, '2025-06-24', 8, 3, 2, 1, NULL, 4.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(157, '2025-06-24', 2, 3, 2, 1, NULL, 8.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(158, '2025-06-24', 2, 3, 2, 1, NULL, 4.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(159, '2025-06-25', 2, 3, 2, 1, NULL, 8.00, '2025-06-25 11:08:04', '2025-06-25 11:08:04', 5, NULL), +(160, '2025-06-25', 2, 3, 2, 1, NULL, 4.00, '2025-06-25 11:08:04', '2025-06-25 11:08:04', 5, NULL), +(161, '2025-06-25', 8, 3, 2, 1, NULL, 8.00, '2025-06-25 11:08:05', '2025-06-25 11:08:05', 5, NULL), +(162, '2025-06-25', 8, 3, 2, 1, NULL, 4.00, '2025-06-25 11:08:05', '2025-06-25 11:08:05', 5, NULL), +(163, '2025-06-25', 10, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(164, '2025-06-25', 9, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(165, '2025-06-25', 3, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(166, '2025-06-25', 6, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(167, '2025-06-26', 10, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(168, '2025-06-26', 5, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(169, '2025-06-26', 7, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(170, '2025-06-26', 1, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(171, '2025-06-26', 4, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(172, '2025-06-26', 8, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:31', '2025-06-26 11:11:31', 5, NULL), +(173, '2025-06-26', 8, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:31', '2025-06-26 11:11:31', 5, NULL), +(174, '2025-06-26', 2, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(175, '2025-06-26', 2, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(176, '2025-06-26', 9, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(177, '2025-06-26', 9, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(178, '2025-06-26', 3, 3, 2, 1, NULL, 12.00, '2025-06-26 11:19:34', '2025-06-26 11:19:34', 6, NULL), +(179, '2025-06-26', 6, 3, 2, 1, NULL, 12.00, '2025-06-26 11:19:34', '2025-06-26 11:19:34', 6, NULL), +(182, '2025-06-27', 2, 3, 2, 1, NULL, 4.00, '2025-06-27 01:54:40', '2025-06-27 01:54:40', 5, NULL), +(183, '2025-06-27', 9, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(184, '2025-06-27', 10, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(185, '2025-06-27', 7, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(186, '2025-06-27', 5, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(187, '2025-06-27', 4, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(188, '2025-06-27', 1, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(189, '2025-06-27', 3, 3, 2, 1, NULL, 8.00, '2025-06-27 06:49:08', '2025-06-27 06:49:08', 6, NULL), +(191, '2025-06-27', 6, 3, 2, 1, NULL, 4.00, '2025-06-27 06:58:46', '2025-06-27 06:58:46', 6, NULL), +(192, '2025-06-27', 8, 3, 2, 1, NULL, 6.00, '2025-06-27 07:00:10', '2025-06-27 07:00:10', 5, NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `EquipmentList` +-- + +CREATE TABLE `EquipmentList` ( + `equipment_id` int(11) NOT NULL, + `factory_id` int(11) DEFAULT NULL, + `equipment_name` varchar(255) NOT NULL, + `model` varchar(100) DEFAULT NULL, + `status` text DEFAULT 'operational', + `purchase_date` date DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `error_types` +-- + +CREATE TABLE `error_types` ( + `id` int(11) NOT NULL, + `name` varchar(100) NOT NULL COMMENT '에러 유형명', + `description` text DEFAULT NULL COMMENT '에러 설명', + `severity` enum('low','medium','high','critical') DEFAULT 'medium' COMMENT '심각도', + `solution_guide` text DEFAULT NULL COMMENT '해결 가이드', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `error_types` +-- + +INSERT INTO `error_types` (`id`, `name`, `description`, `severity`, `solution_guide`, `created_at`, `updated_at`) VALUES +(1, '설계미스', '설계미스', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:03'), +(2, '외주작업 불량', '입고 자재 불량', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:05'), +(3, '입고지연', '자재 미입고', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:11'), +(4, '작업불량', '작업자 실수', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:13'), +(5, '설비고장', '장비없음', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:16'), +(6, '검사불량', '검사불량', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-24 04:36:18'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `FactoryInfo` +-- + +CREATE TABLE `FactoryInfo` ( + `factory_id` int(11) NOT NULL, + `factory_name` varchar(255) NOT NULL, + `address` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `map_image_url` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `FactoryInfo` +-- + +INSERT INTO `FactoryInfo` (`factory_id`, `factory_name`, `address`, `description`, `map_image_url`, `created_at`, `updated_at`) VALUES +(3, '제1공장 휴게공간 및 작업자 사물함', '현대기아로 771-9', '개인 보관함, 컨테이너(휴게공간), 화장실, 흡연장', '/uploads/map_image-1746593523450.png', '2025-05-07 04:52:03', '2025-05-07 04:52:03'), +(4, '제 1공장 공구 및 용접봉 보관 구역', '현대기아로 771-9', '소모품, 공구류, 용접봉 보관 구역', '/uploads/map_image-1746593674259.png', '2025-05-07 04:53:59', '2025-05-07 04:53:59'), +(5, 'ee', 'ee', 'ee', NULL, '2025-06-03 22:13:23', '2025-06-03 22:13:23'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `IssueTypes` +-- + +CREATE TABLE `IssueTypes` ( + `issue_type_id` int(11) NOT NULL, + `category` varchar(100) NOT NULL, + `subcategory` varchar(100) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `IssueTypes` +-- + +INSERT INTO `IssueTypes` (`issue_type_id`, `category`, `subcategory`) VALUES +(1, '구매팀', '자재입고지연'), +(2, '구매팀', '자재전달 미흡'), +(3, '품질', '검사 내용 전달 미흡'), +(4, '품질', '검사오류'), +(5, '설계', '설계미스(치수)'), +(6, '설계', '설계미스(작업불가)'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `login_logs` +-- + +CREATE TABLE `login_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `login_time` datetime DEFAULT current_timestamp(), + `logout_time` datetime DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `login_status` enum('success','failed','locked') DEFAULT 'success', + `failure_reason` varchar(100) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `login_logs` +-- + +INSERT INTO `login_logs` (`log_id`, `user_id`, `login_time`, `logout_time`, `ip_address`, `user_agent`, `login_status`, `failure_reason`) VALUES +(1, 3, '2025-06-15 05:58:39', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(3, 4, '2025-06-15 06:04:06', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(4, 3, '2025-06-15 06:24:53', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(5, 3, '2025-06-15 06:24:55', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(6, 3, '2025-06-15 06:32:41', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(7, 3, '2025-06-15 07:03:19', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(8, 3, '2025-06-15 07:03:21', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(9, 3, '2025-06-15 07:03:25', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(10, 1, '2025-06-15 07:40:16', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(11, 6, '2025-06-15 07:42:02', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(12, 3, '2025-06-15 07:43:30', NULL, '118.235.6.135', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(13, 3, '2025-06-15 22:02:59', NULL, '118.235.6.29', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(14, 4, '2025-06-15 22:15:25', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(15, 3, '2025-06-15 22:15:34', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(16, 6, '2025-06-15 22:15:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'failed', 'invalid_password'), +(17, 6, '2025-06-15 22:15:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(18, 3, '2025-06-15 22:16:39', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(19, 3, '2025-06-15 22:17:14', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(20, 6, '2025-06-15 22:21:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(21, 1, '2025-06-15 22:21:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(22, 6, '2025-06-15 22:22:06', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(23, 5, '2025-06-15 22:22:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(24, 6, '2025-06-15 22:23:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(25, 3, '2025-06-15 22:24:49', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(26, 3, '2025-06-15 22:30:18', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(27, 3, '2025-06-15 22:31:21', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(28, 5, '2025-06-15 22:44:31', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(29, 4, '2025-06-15 22:57:51', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(30, 4, '2025-06-15 22:57:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(31, 4, '2025-06-15 22:57:54', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(32, 4, '2025-06-15 22:57:55', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(33, 4, '2025-06-15 23:11:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(34, 4, '2025-06-15 23:28:04', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(35, 3, '2025-06-15 23:33:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(36, 3, '2025-06-16 00:58:53', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(37, 3, '2025-06-16 01:15:46', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(38, 5, '2025-06-16 01:16:43', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(39, 1, '2025-06-16 01:25:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(40, 1, '2025-06-16 01:26:08', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(41, 3, '2025-06-16 02:27:20', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(42, 3, '2025-06-16 02:45:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(43, 3, '2025-06-16 03:04:13', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(44, 3, '2025-06-16 03:17:28', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(45, 5, '2025-06-16 03:17:55', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(46, 3, '2025-06-16 03:18:56', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(47, 5, '2025-06-16 03:19:13', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(48, 1, '2025-06-16 03:55:56', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(49, 1, '2025-06-16 04:24:37', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(50, 1, '2025-06-16 04:51:36', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(51, 1, '2025-06-16 05:07:05', NULL, '118.235.7.233', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(52, 1, '2025-06-16 05:07:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(53, 1, '2025-06-16 05:43:14', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(54, 5, '2025-06-16 06:11:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(55, 1, '2025-06-16 06:19:46', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(56, 1, '2025-06-16 06:23:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(57, 1, '2025-06-16 06:39:12', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(58, 3, '2025-06-16 06:45:26', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(59, 6, '2025-06-16 06:46:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(60, 1, '2025-06-16 21:18:09', NULL, '118.235.7.45', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(61, 1, '2025-06-17 08:15:45', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(62, 5, '2025-06-17 08:22:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(63, 3, '2025-06-17 08:23:05', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'failed', 'invalid_password'), +(64, 3, '2025-06-17 08:23:21', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(65, 3, '2025-06-17 08:28:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(66, 3, '2025-06-17 08:32:25', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(67, 6, '2025-06-17 08:33:07', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(68, 1, '2025-06-17 08:36:01', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(69, 5, '2025-06-17 09:00:56', NULL, '118.235.7.173', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(70, 3, '2025-06-18 02:30:13', NULL, '118.235.6.77', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(71, 1, '2025-06-18 08:07:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(72, 1, '2025-06-18 08:07:47', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(73, 5, '2025-06-18 08:39:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(74, 6, '2025-06-18 08:46:53', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(75, 3, '2025-06-18 08:47:03', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(76, 6, '2025-06-18 08:57:48', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(77, 5, '2025-06-18 08:58:14', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(78, 3, '2025-06-18 08:59:12', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(79, 5, '2025-06-19 06:37:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(80, 3, '2025-06-19 06:57:01', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(81, 6, '2025-06-19 06:57:22', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(82, 5, '2025-06-19 06:57:56', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(83, 6, '2025-06-19 06:58:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(84, 3, '2025-06-19 06:59:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(85, 3, '2025-06-20 06:42:26', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(86, 6, '2025-06-20 06:45:06', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(87, 5, '2025-06-20 06:49:26', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(88, 3, '2025-06-20 06:49:47', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(89, 6, '2025-06-20 06:50:17', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(90, 3, '2025-06-20 22:46:20', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(91, 1, '2025-06-23 05:03:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(92, 6, '2025-06-23 06:41:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(93, 3, '2025-06-23 06:49:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(94, 6, '2025-06-23 06:50:01', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(95, 5, '2025-06-23 06:50:28', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(96, 1, '2025-06-24 05:24:17', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(97, 3, '2025-06-24 05:25:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(98, 1, '2025-06-24 09:22:29', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(99, 3, '2025-06-24 11:09:38', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(100, 6, '2025-06-24 11:09:48', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(101, 5, '2025-06-24 11:10:23', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(102, 3, '2025-06-24 11:11:29', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(103, 5, '2025-06-24 11:12:06', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(104, 6, '2025-06-24 11:12:31', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(105, 3, '2025-06-24 21:41:01', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(106, 3, '2025-06-25 04:40:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(107, 3, '2025-06-25 05:24:57', NULL, '118.235.6.179', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(108, 1, '2025-06-25 07:05:20', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(109, 1, '2025-06-25 07:06:41', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(110, 3, '2025-06-25 07:09:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(111, 3, '2025-06-25 08:49:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(112, 3, '2025-06-25 09:20:05', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(113, 3, '2025-06-25 09:40:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(114, 3, '2025-06-25 09:57:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(115, 1, '2025-06-25 10:11:03', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(116, 1, '2025-06-25 10:26:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(117, 1, '2025-06-25 10:49:29', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(118, 5, '2025-06-25 11:07:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(119, 6, '2025-06-25 11:10:41', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(120, 6, '2025-06-25 11:13:55', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(121, 5, '2025-06-25 11:14:25', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(122, 6, '2025-06-25 11:20:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(123, 1, '2025-06-25 11:24:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(124, 3, '2025-06-26 10:27:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(125, 5, '2025-06-26 11:10:47', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(126, 6, '2025-06-26 11:15:57', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(127, 3, '2025-06-26 11:17:07', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(128, 5, '2025-06-26 11:17:40', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(129, 6, '2025-06-26 11:19:00', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(130, 1, '2025-06-26 22:15:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(131, 1, '2025-06-26 22:31:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(132, 1, '2025-06-26 22:47:22', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(133, 5, '2025-06-27 01:52:48', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(134, 5, '2025-06-27 01:53:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(135, 3, '2025-06-27 06:47:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(136, 6, '2025-06-27 06:48:39', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(137, 3, '2025-06-27 06:57:15', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(138, 5, '2025-06-27 06:57:34', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(139, 6, '2025-06-27 06:57:59', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(140, 3, '2025-06-27 06:59:04', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(141, 5, '2025-06-27 06:59:29', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `password_change_logs` +-- + +CREATE TABLE `password_change_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `changed_by_user_id` int(11) DEFAULT NULL, + `changed_at` datetime DEFAULT current_timestamp(), + `change_type` enum('self','admin','reset','initial') DEFAULT 'self', + `ip_address` varchar(45) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `password_change_logs` +-- + +INSERT INTO `password_change_logs` (`log_id`, `user_id`, `changed_by_user_id`, `changed_at`, `change_type`, `ip_address`) VALUES +(1, 4, NULL, '2025-06-15 06:03:42', 'admin', NULL), +(2, 3, NULL, '2025-06-15 06:03:52', 'admin', NULL), +(3, 3, 3, '2025-06-15 06:32:30', 'self', NULL), +(4, 3, 1, '2025-06-15 07:40:39', 'admin', NULL), +(5, 5, 1, '2025-06-15 07:41:02', 'initial', NULL), +(6, 6, 1, '2025-06-15 07:41:32', 'initial', NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `PipeSpecs` +-- + +CREATE TABLE `PipeSpecs` ( + `spec_id` int(11) NOT NULL, + `material` varchar(50) NOT NULL COMMENT '재질 (예: SS400, STS304)', + `diameter_in` varchar(10) NOT NULL COMMENT '직경 (inch, 예: 2")', + `schedule` varchar(50) NOT NULL COMMENT '스케줄 (예: STD, SCH10, SCH40)' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `PipeSpecs` +-- + +INSERT INTO `PipeSpecs` (`spec_id`, `material`, `diameter_in`, `schedule`) VALUES +(2, '516-70N', '1', 'SCH80'), +(1, 'A106', '3/4', 'SCH80'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Processes` +-- + +CREATE TABLE `Processes` ( + `process_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `process_name` varchar(255) NOT NULL, + `process_start` date NOT NULL, + `process_end` date DEFAULT NULL, + `planned_worker_count` int(11) NOT NULL, + `process_description` text DEFAULT NULL, + `note` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Projects` +-- + +CREATE TABLE `Projects` ( + `project_id` int(11) NOT NULL, + `job_no` varchar(50) NOT NULL, + `project_name` varchar(255) NOT NULL, + `contract_date` date DEFAULT NULL, + `due_date` date DEFAULT NULL, + `delivery_method` varchar(100) DEFAULT NULL, + `site` varchar(100) DEFAULT NULL, + `pm` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Projects` +-- + +INSERT INTO `Projects` (`project_id`, `job_no`, `project_name`, `contract_date`, `due_date`, `delivery_method`, `site`, `pm`, `created_at`, `updated_at`) VALUES +(1, 'TKO-24008P', 'YHP Project', '2024-05-16', '2025-05-16', 'FOB', 'Quang Ninh(Vietnam)', '장형태', '2025-04-15 22:40:28', '2025-04-15 22:40:28'), +(2, 'TKG-24009P', '한화에어로스페이스 순천', '2024-06-05', '2025-05-31', '.', '순천', '장형태', '2025-04-15 22:42:41', '2025-04-15 22:42:41'), +(3, 'TKG-24011P', '효성화학 에틸렌 탱크 건설공사', '2024-06-22', '2025-12-25', '.', '울산', '김길종', '2025-04-15 22:43:53', '2025-04-15 22:43:53'), +(4, 'TKG-24013P', '김천 솔라 파워 그린 수소 Project', '2024-10-08', '2025-07-25', '.', '김천', '김길종', '2025-04-15 22:44:57', '2025-04-15 22:44:57'), +(5, 'TKG-24016P', 'LG Chem P3RE Project', '2024-11-27', '2025-09-30', '.', '.', '장형태', '2025-04-15 22:46:36', '2025-04-15 22:46:36'), +(7, 'TKO-25003F', '25년 안전보건시설설비', '2025-01-03', '2025-12-31', '.', '.', '.', '2025-04-15 22:47:32', '2025-04-15 22:47:32'), +(8, 'TKG-25007P', 'P Project', '2025-01-16', '2025-10-31', '.', '오창읍', '장형태', '2025-04-15 22:48:50', '2025-04-15 22:48:50'), +(10, 'TKR-25008P', 'DIG Airgas LG CHEM', '2025-01-23', '2025-10-15', '.', '여수', '서태원', '2025-04-15 22:50:05', '2025-04-15 22:50:05'), +(11, 'TKR-25010P', 'FK FISCHER Project', '2025-03-12', '2025-11-30', '.', '울산', '전상신', '2025-04-15 22:51:12', '2025-04-15 22:51:12'), +(12, 'TKO-24007P', 'MP7 Project', '2024-07-03', '2025-01-05', '.', '.', '윤지민', '2025-04-15 23:56:26', '2025-04-15 23:56:26'), +(13, '연차/휴무', '연차/휴무', '2025-01-01', '2025-12-31', '.', '.', '.', '2025-04-16 01:58:23', '2025-04-16 01:58:23'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Tasks` +-- + +CREATE TABLE `Tasks` ( + `task_id` int(11) NOT NULL, + `category` varchar(255) NOT NULL, + `subcategory` varchar(255) DEFAULT NULL, + `task_name` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Tasks` +-- + +INSERT INTO `Tasks` (`task_id`, `category`, `subcategory`, `task_name`, `description`, `created_at`, `updated_at`) VALUES +(1, 'Base', 'Fabrication', '용접', '...', '2025-04-15 10:41:43', '2025-04-15 10:41:43'), +(3, 'Vessel', 'MI and Marking', 'Marking', '..', '2025-04-15 22:25:58', '2025-04-15 22:25:58'), +(4, 'Vessel', 'Cutting', '자재 커팅', '..', '2025-04-15 22:26:17', '2025-04-15 22:26:17'), +(5, 'Vessel', 'Fabrication', '용접', '..', '2025-04-15 22:26:43', '2025-04-15 22:26:43'), +(7, 'PKG', 'Pipe Pre-Fabrication', '취부&용접', '배관사 1명\n용접사 1명', '2025-04-15 22:37:14', '2025-04-15 22:37:14'), +(8, 'PKG', '1st Piping Assembly', '1차 조립', '.', '2025-04-15 22:38:49', '2025-04-15 22:38:49'), +(9, 'PKG', 'Re-Assembly', '재조립', '.', '2025-04-15 22:39:18', '2025-04-15 22:39:18'), +(13, '작업지원', '구매팀', '.', '.', '2025-04-16 03:03:40', '2025-04-16 03:03:40'), +(14, '기타', '시설설비제작', '.', '.', '2025-04-16 03:30:53', '2025-04-16 03:30:53'), +(15, '기타', '휴가/연차/휴무', '.', '.', '2025-04-16 05:18:13', '2025-04-16 05:18:13'), +(16, 'PKG', '제품설치', '설치작업', 'Skid, 용기 등 설치', '2025-04-29 04:39:36', '2025-04-29 04:39:36'), +(18, '작업지원', '품질팀', 'test지원', '.', '2025-06-25 07:07:08', '2025-06-25 07:07:08'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `uploaded_documents` +-- + +CREATE TABLE `uploaded_documents` ( + `id` int(11) NOT NULL, + `title` varchar(255) NOT NULL, + `tags` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `original_name` varchar(255) DEFAULT NULL, + `stored_name` varchar(255) NOT NULL, + `file_path` varchar(500) DEFAULT NULL, + `file_type` varchar(50) DEFAULT NULL, + `file_size` int(11) DEFAULT NULL, + `submitted_by` varchar(100) DEFAULT NULL, + `dt_imported` tinyint(1) DEFAULT 0, + `dt_uuid` varchar(100) DEFAULT NULL, + `of_task_created` tinyint(1) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Users` +-- + +CREATE TABLE `Users` ( + `user_id` int(11) NOT NULL, + `username` varchar(100) NOT NULL, + `password` varchar(255) NOT NULL, + `role` varchar(30) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `access_level` varchar(30) DEFAULT NULL, + `worker_id` int(11) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `last_login_at` datetime DEFAULT NULL, + `password_changed_at` datetime DEFAULT NULL, + `failed_login_attempts` int(11) DEFAULT 0, + `locked_until` datetime DEFAULT NULL, + `name` varchar(50) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Users` +-- + +INSERT INTO `Users` (`user_id`, `username`, `password`, `role`, `created_at`, `access_level`, `worker_id`, `is_active`, `last_login_at`, `password_changed_at`, `failed_login_attempts`, `locked_until`, `name`, `email`, `updated_at`) VALUES +(1, 'hyungi', '$2b$10$lwSfKipx0fQ.9nfMUBmzt.WXzerdxuT5MVX4b3YhFeHxyYlUjM7bi', 'admin', '2025-05-06 05:03:02', 'system', NULL, 1, '2025-06-26 22:47:22', '2025-05-06 05:03:02', 0, NULL, NULL, NULL, '2025-06-26 22:47:22'), +(3, '김두수', '$2a$10$z3i2EVOotRFBj.KHzx5LQOKlXD0QHLNFEvJcd6FlO6/1TCYGk6SSu', 'leader', '2025-06-07 23:48:35', 'group_leader', 1, 1, '2025-06-27 06:59:04', '2025-06-15 07:40:39', 0, NULL, '김두수', NULL, '2025-06-27 06:59:04'), +(4, '김아무개', '$2a$10$QAJIoPyi.apz91exp8GsiO/prAD5Xwanht6XImP1jvKsy/7Ba/b8.', 'user', '2025-06-11 08:03:59', 'worker', NULL, 1, '2025-06-15 23:28:04', '2025-06-15 06:03:42', 0, NULL, '김아무개', NULL, '2025-06-15 23:28:04'), +(5, '임영규', '$2a$10$66ps/MEEi4BVABfJc5P0y.yCap09NhTMyd1A/7rFVxESytQGlB3wC', NULL, '2025-06-15 07:41:02', 'group_leader', 3, 1, '2025-06-27 06:59:29', '2025-06-15 07:41:02', 0, NULL, '임영규', NULL, '2025-06-27 06:59:29'), +(6, '반치원', '$2a$10$jcn6f7flRLZlr5yKQcXDIePodRK0rsM4deNnNGjuOlredeTVsRYZ6', NULL, '2025-06-15 07:41:32', 'group_leader', 3, 1, '2025-06-27 06:57:59', '2025-06-15 07:41:32', 0, NULL, '반치원', NULL, '2025-06-27 06:57:59'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Workers` +-- + +CREATE TABLE `Workers` ( + `worker_id` int(11) NOT NULL, + `worker_name` varchar(100) NOT NULL, + `join_date` date DEFAULT NULL, + `job_type` varchar(100) DEFAULT NULL, + `salary` decimal(10,2) DEFAULT NULL, + `annual_leave` int(11) DEFAULT NULL, + `status` text DEFAULT 'active', + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Workers` +-- + +INSERT INTO `Workers` (`worker_id`, `worker_name`, `join_date`, `job_type`, `salary`, `annual_leave`, `status`, `created_at`, `updated_at`) VALUES +(1, '김두수', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:08', '2025-04-15 22:23:08'), +(2, '임영규', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:17', '2025-04-15 22:23:17'), +(3, '반치원', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:22', '2025-04-15 22:23:22'), +(4, '황인용', '2025-04-01', '가공,조공', 220000.00, 15, '..', '2025-04-15 22:23:33', '2025-04-15 22:23:33'), +(5, '표영진', '2025-04-01', '가공,조공', 220000.00, 15, '..', '2025-04-15 22:23:38', '2025-04-15 22:23:38'), +(6, '김윤섭', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:23:46', '2025-04-15 22:23:46'), +(7, '이창호', '2025-04-01', '용접,배관', 220000.00, 15, '..', '2025-04-15 22:23:51', '2025-04-15 22:23:51'), +(8, '최광욱', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:23:57', '2025-04-15 22:23:57'), +(9, '박현수', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:24:01', '2025-04-15 22:24:01'), +(10, '조윤호', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:24:07', '2025-04-15 22:24:07'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `worker_groups` +-- + +CREATE TABLE `worker_groups` ( + `id` int(11) NOT NULL, + `group_leader_id` int(11) NOT NULL, + `worker_id` int(11) NOT NULL, + `group_name` varchar(100) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `WorkReports` +-- + +CREATE TABLE `WorkReports` ( + `id` int(11) NOT NULL, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `morning_task_id` int(11) DEFAULT NULL, + `afternoon_task_id` int(11) DEFAULT NULL, + `overtime_hours` decimal(4,1) DEFAULT 0.0, + `overtime_task_id` int(11) DEFAULT NULL, + `work_details` text DEFAULT NULL, + `note` text DEFAULT NULL, + `memo` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `morning_project_id` int(11) DEFAULT NULL, + `afternoon_project_id` int(11) DEFAULT NULL, + `overtime_project_id` int(11) DEFAULT NULL, + `task_id` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `WorkReports` +-- + +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(176, '2025-01-02', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(177, '2025-01-02', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(178, '2025-01-02', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(179, '2025-01-02', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(180, '2025-01-02', 8, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(181, '2025-01-02', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(182, '2025-01-02', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(183, '2025-01-02', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 15), +(194, '2025-01-03', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(195, '2025-01-03', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(196, '2025-01-03', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 15), +(197, '2025-01-03', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(198, '2025-01-03', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 15), +(199, '2025-01-03', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(200, '2025-01-03', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(201, '2025-01-03', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(202, '2025-01-03', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(203, '2025-01-04', 7, 12, NULL, NULL, NULL, NULL, '휴일근무', NULL, NULL, '2025-04-16 05:43:25', '2025-04-16 05:43:25', NULL, NULL, NULL, 12), +(204, '2025-01-06', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:03', '2025-04-16 05:44:03', NULL, NULL, NULL, 12), +(205, '2025-01-06', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:03', '2025-04-16 05:44:03', NULL, NULL, NULL, 12), +(206, '2025-01-06', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(207, '2025-01-06', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(208, '2025-01-06', 8, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(209, '2025-01-06', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(210, '2025-01-06', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(211, '2025-01-06', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(212, '2025-01-06', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(213, '2025-01-07', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(214, '2025-01-07', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 1), +(215, '2025-01-07', 3, 12, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(216, '2025-01-07', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(217, '2025-01-07', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 1), +(218, '2025-01-07', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(219, '2025-01-07', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(220, '2025-01-07', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:25', '2025-04-16 05:45:25', NULL, NULL, NULL, 12), +(221, '2025-01-07', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:25', '2025-04-16 05:45:25', NULL, NULL, NULL, 1), +(222, '2025-01-08', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(223, '2025-01-08', 2, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(224, '2025-01-08', 3, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(225, '2025-01-08', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(226, '2025-01-08', 8, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(227, '2025-01-08', 9, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(228, '2025-01-08', 6, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(229, '2025-01-08', 4, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(230, '2025-01-08', 5, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(231, '2025-01-09', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(232, '2025-01-09', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(233, '2025-01-09', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(234, '2025-01-09', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(235, '2025-01-09', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(236, '2025-01-09', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(237, '2025-01-09', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(238, '2025-01-09', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(239, '2025-01-09', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(240, '2025-01-10', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:16', '2025-04-16 05:49:16', NULL, NULL, NULL, 13), +(241, '2025-01-10', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(242, '2025-01-10', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(243, '2025-01-10', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(244, '2025-01-10', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(245, '2025-01-10', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(246, '2025-01-10', 6, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 15), +(247, '2025-01-10', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(248, '2025-01-10', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(249, '2025-01-13', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(250, '2025-01-13', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(251, '2025-01-13', 3, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(252, '2025-01-13', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(253, '2025-01-13', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(254, '2025-01-13', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(255, '2025-01-13', 6, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(256, '2025-01-13', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 15), +(257, '2025-01-13', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(258, '2025-01-14', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(259, '2025-01-14', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(260, '2025-01-14', 3, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(261, '2025-01-14', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(262, '2025-01-14', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(263, '2025-01-14', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(265, '2025-01-14', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(266, '2025-01-14', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(267, '2025-01-14', 6, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(268, '2025-01-15', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(269, '2025-01-15', 2, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 14), +(270, '2025-01-15', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(271, '2025-01-15', 7, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 13), +(272, '2025-01-15', 8, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 14), +(273, '2025-01-15', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(275, '2025-01-15', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(276, '2025-01-15', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:38', '2025-04-16 05:52:38', NULL, NULL, NULL, 1), +(277, '2025-01-15', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:38', '2025-04-16 05:52:38', NULL, NULL, NULL, 1), +(278, '2025-01-16', 1, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(279, '2025-01-16', 2, 7, NULL, NULL, NULL, NULL, '근무', NULL, '볼트 보관함 제작', '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 14), +(280, '2025-01-16', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(281, '2025-01-16', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(282, '2025-01-16', 8, 7, NULL, NULL, NULL, NULL, '근무', NULL, '볼트 보관함 제작', '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 14), +(283, '2025-01-16', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(285, '2025-01-16', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(286, '2025-01-16', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(287, '2025-01-16', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(288, '2025-01-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(289, '2025-01-17', 2, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(290, '2025-01-17', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(291, '2025-01-17', 7, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(292, '2025-01-17', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(293, '2025-01-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(295, '2025-01-17', 4, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(296, '2025-01-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(297, '2025-01-17', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(298, '2025-01-20', 1, 7, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(299, '2025-01-20', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 8), +(300, '2025-01-20', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(301, '2025-01-20', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(302, '2025-01-20', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(303, '2025-01-20', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(304, '2025-01-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(305, '2025-01-20', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(306, '2025-01-20', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(307, '2025-01-21', 1, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 15), +(308, '2025-01-21', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 8), +(309, '2025-01-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(310, '2025-01-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(311, '2025-01-21', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 8), +(312, '2025-01-21', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 15), +(313, '2025-01-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(314, '2025-01-21', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(315, '2025-01-21', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:07', '2025-04-16 05:59:07', NULL, NULL, NULL, 1), +(316, '2025-01-22', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(317, '2025-01-22', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(318, '2025-01-22', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(319, '2025-01-22', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(320, '2025-01-22', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(321, '2025-01-22', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(322, '2025-01-22', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(323, '2025-01-22', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(324, '2025-01-22', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(325, '2025-01-23', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(326, '2025-01-23', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 8), +(327, '2025-01-23', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(328, '2025-01-23', 7, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(329, '2025-01-23', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(330, '2025-01-23', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(331, '2025-01-23', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(332, '2025-01-23', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(333, '2025-01-23', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 8), +(334, '2025-01-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(335, '2025-01-24', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 8), +(336, '2025-01-24', 3, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(337, '2025-01-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(338, '2025-01-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(339, '2025-01-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(340, '2025-01-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(341, '2025-01-24', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 8), +(342, '2025-01-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(343, '2025-02-03', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(344, '2025-02-03', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 8), +(345, '2025-02-03', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(346, '2025-02-03', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(347, '2025-02-03', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(348, '2025-02-03', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(349, '2025-02-03', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(350, '2025-02-03', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 8), +(351, '2025-02-03', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(352, '2025-02-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(353, '2025-02-04', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(354, '2025-02-04', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 8), +(355, '2025-02-04', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(356, '2025-02-04', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(357, '2025-02-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(358, '2025-02-04', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(359, '2025-02-04', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 8), +(360, '2025-02-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(361, '2025-02-05', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 8), +(362, '2025-02-05', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(363, '2025-02-05', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(364, '2025-02-05', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(365, '2025-02-05', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(366, '2025-02-05', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(367, '2025-02-05', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 1), +(368, '2025-02-05', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 8), +(369, '2025-02-05', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 1), +(370, '2025-02-06', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(371, '2025-02-06', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 15), +(372, '2025-02-06', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(373, '2025-02-06', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(374, '2025-02-06', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(375, '2025-02-06', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(376, '2025-02-06', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(377, '2025-02-06', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(378, '2025-02-06', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(379, '2025-02-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(380, '2025-02-07', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 8), +(381, '2025-02-07', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(382, '2025-02-07', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 15), +(383, '2025-02-07', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(384, '2025-02-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(385, '2025-02-07', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(386, '2025-02-07', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 8), +(387, '2025-02-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(388, '2025-02-10', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(389, '2025-02-10', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 8), +(390, '2025-02-10', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(391, '2025-02-10', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(392, '2025-02-10', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(393, '2025-02-10', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(394, '2025-02-10', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(395, '2025-02-10', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 8), +(396, '2025-02-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(397, '2025-02-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(398, '2025-02-11', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 8), +(399, '2025-02-11', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(400, '2025-02-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(401, '2025-02-11', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(402, '2025-02-11', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(403, '2025-02-11', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(404, '2025-02-11', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 8), +(405, '2025-02-11', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(406, '2025-02-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(407, '2025-02-12', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 8), +(408, '2025-02-12', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(409, '2025-02-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(410, '2025-02-12', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(411, '2025-02-12', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(412, '2025-02-12', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 15), +(413, '2025-02-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(414, '2025-02-12', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(415, '2025-02-13', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(416, '2025-02-13', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 7), +(417, '2025-02-13', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(418, '2025-02-13', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(419, '2025-02-13', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(420, '2025-02-13', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(421, '2025-02-13', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(422, '2025-02-13', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 7), +(423, '2025-02-13', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(424, '2025-02-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(425, '2025-02-14', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 7), +(426, '2025-02-14', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(427, '2025-02-14', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(428, '2025-02-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(429, '2025-02-14', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(430, '2025-02-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(431, '2025-02-14', 4, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 7), +(432, '2025-02-14', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(433, '2025-02-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:39', '2025-04-16 06:18:39', NULL, NULL, NULL, 1), +(434, '2025-02-17', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 8), +(435, '2025-02-17', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(436, '2025-02-17', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(437, '2025-02-17', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 15), +(438, '2025-02-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(439, '2025-02-17', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(440, '2025-02-17', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 8), +(441, '2025-02-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(442, '2025-02-18', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(443, '2025-02-18', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 15), +(444, '2025-02-18', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(445, '2025-02-18', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(446, '2025-02-18', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(447, '2025-02-18', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(448, '2025-02-18', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 7), +(449, '2025-02-18', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(450, '2025-02-18', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(451, '2025-02-19', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(452, '2025-02-19', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(453, '2025-02-19', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(454, '2025-02-19', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(455, '2025-02-19', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(456, '2025-02-19', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(457, '2025-02-19', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(458, '2025-02-19', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(459, '2025-02-19', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(460, '2025-02-20', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(461, '2025-02-20', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(462, '2025-02-20', 3, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(463, '2025-02-20', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(464, '2025-02-20', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(465, '2025-02-20', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(466, '2025-02-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(467, '2025-02-20', 7, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(468, '2025-02-20', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(469, '2025-02-21', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(470, '2025-02-21', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(471, '2025-02-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(472, '2025-02-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(473, '2025-02-21', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(474, '2025-02-21', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(475, '2025-02-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(476, '2025-02-21', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(477, '2025-02-21', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(478, '2025-02-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(479, '2025-02-24', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(480, '2025-02-24', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(481, '2025-02-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(482, '2025-02-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(483, '2025-02-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(484, '2025-02-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(485, '2025-02-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(486, '2025-02-24', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:33', '2025-04-16 06:24:33', NULL, NULL, NULL, 7), +(487, '2025-02-24', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, '근무시작', '2025-04-16 06:25:07', '2025-04-16 06:25:07', NULL, NULL, NULL, 7), +(488, '2025-02-25', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(489, '2025-02-25', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(490, '2025-02-25', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(491, '2025-02-25', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(492, '2025-02-25', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(493, '2025-02-25', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(494, '2025-02-25', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(495, '2025-02-25', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(496, '2025-02-25', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(497, '2025-02-25', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(498, '2025-02-26', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '당진출장 건', '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 14), +(499, '2025-02-26', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(500, '2025-02-26', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(501, '2025-02-26', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '당진출장 건', '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 14), +(502, '2025-02-26', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(503, '2025-02-26', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(504, '2025-02-26', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(505, '2025-02-26', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 15), +(506, '2025-02-26', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(507, '2025-02-26', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(508, '2025-02-27', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(509, '2025-02-27', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(510, '2025-02-27', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(511, '2025-02-27', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(512, '2025-02-27', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(513, '2025-02-27', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(514, '2025-02-27', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(515, '2025-02-27', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(516, '2025-02-27', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(517, '2025-02-27', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(518, '2025-02-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 13), +(519, '2025-02-28', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(520, '2025-02-28', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(521, '2025-02-28', 7, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 13), +(522, '2025-02-28', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(523, '2025-02-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(524, '2025-02-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(525, '2025-02-28', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(526, '2025-02-28', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 15), +(527, '2025-02-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(528, '2025-03-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(529, '2025-03-04', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(530, '2025-03-04', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 8), +(531, '2025-03-04', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 15), +(532, '2025-03-04', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(533, '2025-03-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(534, '2025-03-04', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(535, '2025-03-04', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(536, '2025-03-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(537, '2025-03-04', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 8), +(538, '2025-03-05', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(539, '2025-03-05', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(540, '2025-03-05', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 8), +(541, '2025-03-05', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(542, '2025-03-05', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(543, '2025-03-05', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(544, '2025-03-05', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(545, '2025-03-05', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 15), +(546, '2025-03-05', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(547, '2025-03-05', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 8), +(548, '2025-03-06', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(549, '2025-03-06', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(550, '2025-03-06', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 8), +(551, '2025-03-06', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 15), +(552, '2025-03-06', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(553, '2025-03-06', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(554, '2025-03-06', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(555, '2025-03-06', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(556, '2025-03-06', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(557, '2025-03-06', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 8), +(558, '2025-03-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7); +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(559, '2025-03-07', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 13), +(560, '2025-03-07', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 8), +(561, '2025-03-07', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 15), +(562, '2025-03-07', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(563, '2025-03-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(564, '2025-03-07', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(565, '2025-03-07', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 13), +(566, '2025-03-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(567, '2025-03-07', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 8), +(568, '2025-03-10', 1, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(569, '2025-03-10', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 3), +(570, '2025-03-10', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(571, '2025-03-10', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 15), +(572, '2025-03-10', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 7), +(573, '2025-03-10', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 15), +(574, '2025-03-10', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 7), +(575, '2025-03-10', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 3), +(576, '2025-03-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(577, '2025-03-10', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(578, '2025-03-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:06', '2025-04-16 06:39:06', NULL, NULL, NULL, 8), +(579, '2025-03-11', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(580, '2025-03-11', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(581, '2025-03-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(582, '2025-03-11', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(583, '2025-03-11', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 15), +(584, '2025-03-11', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(585, '2025-03-11', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(586, '2025-03-11', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(587, '2025-03-11', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(588, '2025-03-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(589, '2025-03-12', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(590, '2025-03-12', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(591, '2025-03-12', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(592, '2025-03-12', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(593, '2025-03-12', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 15), +(594, '2025-03-12', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(595, '2025-03-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(596, '2025-03-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(597, '2025-03-12', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(598, '2025-03-13', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(599, '2025-03-13', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(600, '2025-03-13', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(601, '2025-03-13', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(602, '2025-03-13', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(603, '2025-03-13', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 15), +(604, '2025-03-13', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(605, '2025-03-13', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(606, '2025-03-13', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(607, '2025-03-13', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(608, '2025-03-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(609, '2025-03-14', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 4), +(610, '2025-03-14', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(612, '2025-03-14', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(613, '2025-03-14', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 15), +(614, '2025-03-14', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(615, '2025-03-14', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(616, '2025-03-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(617, '2025-03-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(628, '2025-03-18', 1, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(629, '2025-03-18', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(630, '2025-03-18', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(631, '2025-03-18', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(632, '2025-03-18', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(633, '2025-03-18', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 15), +(634, '2025-03-18', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(635, '2025-03-18', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(636, '2025-03-18', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(637, '2025-03-18', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(648, '2025-03-17', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(649, '2025-03-17', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 4), +(650, '2025-03-17', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(651, '2025-03-17', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 4), +(652, '2025-03-17', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(653, '2025-03-17', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 15), +(654, '2025-03-17', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(655, '2025-03-17', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(656, '2025-03-17', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(657, '2025-03-17', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(658, '2025-03-19', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 4), +(659, '2025-03-19', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(660, '2025-03-19', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(661, '2025-03-19', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 4), +(662, '2025-03-19', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(663, '2025-03-19', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(664, '2025-03-19', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(665, '2025-03-19', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, '용접기 보관함 제작', '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 14), +(666, '2025-03-19', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 4), +(667, '2025-03-19', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(668, '2025-03-20', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(669, '2025-03-20', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(670, '2025-03-20', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(671, '2025-03-20', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(672, '2025-03-20', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(673, '2025-03-20', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(674, '2025-03-20', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(675, '2025-03-20', 4, 7, NULL, NULL, 2.0, NULL, '근무', NULL, '용접기 보관함 제작', '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 14), +(676, '2025-03-20', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(677, '2025-03-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(678, '2025-03-21', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:27', '2025-04-16 21:34:27', NULL, NULL, NULL, 8), +(679, '2025-03-21', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(680, '2025-03-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(681, '2025-03-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(682, '2025-03-21', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(683, '2025-03-21', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(684, '2025-03-21', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(685, '2025-03-21', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, '용기 보관함 제작', '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 14), +(686, '2025-03-21', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(687, '2025-03-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(688, '2025-03-24', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(689, '2025-03-24', 2, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(690, '2025-03-24', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(691, '2025-03-24', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(692, '2025-03-24', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(693, '2025-03-24', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(694, '2025-03-24', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(695, '2025-03-24', 4, 7, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 보관함 제작', '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 14), +(696, '2025-03-24', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(697, '2025-03-24', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(698, '2025-03-25', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(699, '2025-03-25', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(700, '2025-03-25', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(701, '2025-03-25', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(702, '2025-03-25', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(703, '2025-03-25', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(704, '2025-03-25', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(705, '2025-03-25', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 14), +(706, '2025-03-25', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(707, '2025-03-25', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(708, '2025-03-26', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 13), +(709, '2025-03-26', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 15), +(710, '2025-03-26', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(711, '2025-03-26', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(712, '2025-03-26', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(713, '2025-03-26', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(714, '2025-03-26', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(715, '2025-03-26', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 13), +(716, '2025-03-26', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(717, '2025-03-26', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(718, '2025-03-27', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(719, '2025-03-27', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(720, '2025-03-27', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(721, '2025-03-27', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(722, '2025-03-27', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(723, '2025-03-27', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(724, '2025-03-27', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 15), +(725, '2025-03-27', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(726, '2025-03-27', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(727, '2025-03-27', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(728, '2025-03-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(729, '2025-03-28', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(730, '2025-03-28', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 15), +(731, '2025-03-28', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 15), +(732, '2025-03-28', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(733, '2025-03-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(734, '2025-03-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(735, '2025-03-28', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(736, '2025-03-28', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(737, '2025-03-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(738, '2025-03-31', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(739, '2025-03-31', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 5), +(740, '2025-03-31', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(741, '2025-03-31', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(742, '2025-03-31', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(743, '2025-03-31', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(744, '2025-03-31', 10, 13, NULL, NULL, NULL, NULL, '유급', NULL, '외조모상(2일)', '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 15), +(745, '2025-03-31', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 5), +(746, '2025-03-31', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(747, '2025-03-31', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(748, '2025-03-14', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-17 01:53:24', '2025-04-17 01:53:24', NULL, NULL, NULL, 4), +(749, '2025-04-01', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(750, '2025-04-01', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(751, '2025-04-01', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(752, '2025-04-01', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(753, '2025-04-01', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(754, '2025-04-01', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(755, '2025-04-01', 10, 13, NULL, NULL, NULL, NULL, '유급', NULL, '외조모상', '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 15), +(756, '2025-04-01', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(757, '2025-04-01', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(758, '2025-04-01', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:43', '2025-04-17 04:22:43', NULL, NULL, NULL, 9), +(769, '2025-04-02', 1, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-17 04:25:55', '2025-04-17 04:25:55', NULL, NULL, NULL, 9), +(770, '2025-04-02', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(771, '2025-04-02', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(773, '2025-04-02', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(774, '2025-04-02', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(775, '2025-04-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 15), +(776, '2025-04-02', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 15), +(777, '2025-04-02', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(778, '2025-04-02', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(779, '2025-04-03', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(780, '2025-04-03', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(781, '2025-04-03', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(783, '2025-04-03', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(784, '2025-04-03', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(785, '2025-04-03', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(786, '2025-04-03', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(787, '2025-04-03', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(788, '2025-04-03', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(789, '2025-04-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(790, '2025-04-04', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(791, '2025-04-04', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(792, '2025-04-04', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(793, '2025-04-04', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(794, '2025-04-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(795, '2025-04-04', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(796, '2025-04-04', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(797, '2025-04-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(798, '2025-04-04', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(799, '2025-04-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(800, '2025-04-07', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(801, '2025-04-07', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(802, '2025-04-07', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(803, '2025-04-07', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(804, '2025-04-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(805, '2025-04-07', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(806, '2025-04-07', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(807, '2025-04-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(808, '2025-04-07', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(809, '2025-04-08', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(811, '2025-04-08', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(812, '2025-04-08', 7, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(813, '2025-04-08', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(814, '2025-04-08', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(815, '2025-04-08', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(816, '2025-04-08', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(817, '2025-04-08', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(818, '2025-04-08', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(819, '2025-04-09', 1, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-17 04:43:02', '2025-04-17 04:43:02', NULL, NULL, NULL, 9), +(820, '2025-04-09', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:02', '2025-04-17 04:43:02', NULL, NULL, NULL, 9), +(821, '2025-04-09', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(822, '2025-04-09', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(823, '2025-04-09', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(824, '2025-04-09', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(825, '2025-04-09', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(826, '2025-04-09', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(827, '2025-04-09', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(828, '2025-04-09', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(829, '2025-04-10', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(830, '2025-04-10', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(831, '2025-04-10', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(832, '2025-04-10', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(833, '2025-04-10', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(834, '2025-04-10', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(835, '2025-04-10', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(836, '2025-04-10', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(837, '2025-04-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(838, '2025-04-10', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(839, '2025-04-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 9), +(840, '2025-04-11', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 9), +(841, '2025-04-11', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 5), +(842, '2025-04-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(843, '2025-04-11', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 5), +(844, '2025-04-11', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 15), +(845, '2025-04-11', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 5), +(846, '2025-04-11', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(847, '2025-04-11', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 15), +(848, '2025-04-11', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(849, '2025-04-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(850, '2025-04-14', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(851, '2025-04-14', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 5), +(852, '2025-04-14', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(853, '2025-04-14', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 5), +(854, '2025-04-14', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(855, '2025-04-14', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(856, '2025-04-14', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(857, '2025-04-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(858, '2025-04-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(859, '2025-04-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(860, '2025-04-17', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(861, '2025-04-17', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(862, '2025-04-17', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(863, '2025-04-17', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(864, '2025-04-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(865, '2025-04-17', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(866, '2025-04-17', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(867, '2025-04-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(868, '2025-04-17', 6, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(879, '2025-04-21', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(880, '2025-04-21', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(881, '2025-04-21', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(882, '2025-04-21', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(883, '2025-04-21', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(884, '2025-04-21', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(885, '2025-04-21', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(886, '2025-04-21', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(887, '2025-04-21', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(888, '2025-04-21', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(889, '2025-04-22', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(890, '2025-04-22', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(891, '2025-04-22', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(892, '2025-04-22', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(893, '2025-04-22', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(894, '2025-04-22', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(895, '2025-04-22', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(896, '2025-04-22', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(897, '2025-04-22', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(898, '2025-04-22', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(899, '2025-04-23', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(900, '2025-04-23', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(901, '2025-04-23', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(902, '2025-04-23', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(903, '2025-04-23', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(904, '2025-04-23', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(905, '2025-04-23', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(906, '2025-04-23', 4, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(907, '2025-04-23', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(908, '2025-04-23', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(909, '2025-04-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, '벨브 부적합 관련 작업 추가', '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(910, '2025-04-24', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(911, '2025-04-24', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(912, '2025-04-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(913, '2025-04-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(914, '2025-04-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(915, '2025-04-24', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(916, '2025-04-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(917, '2025-04-24', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(918, '2025-04-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(919, '2025-04-25', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(920, '2025-04-25', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(921, '2025-04-25', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 5), +(922, '2025-04-25', 7, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(923, '2025-04-25', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(924, '2025-04-25', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(925, '2025-04-25', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(926, '2025-04-25', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '확관 작업', '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 5), +(927, '2025-04-25', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(928, '2025-04-25', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:39', '2025-04-25 04:23:39', NULL, NULL, NULL, 5), +(929, '2025-04-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:22', '2025-04-28 23:20:22', NULL, NULL, NULL, 9), +(930, '2025-04-28', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(931, '2025-04-28', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(932, '2025-04-28', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(934, '2025-04-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(935, '2025-04-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(936, '2025-04-28', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(937, '2025-04-28', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(938, '2025-04-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(939, '2025-04-29', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 9), +(940, '2025-04-29', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(941, '2025-04-29', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(942, '2025-04-29', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 9), +(943, '2025-04-29', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(944, '2025-04-29', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(945, '2025-04-29', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 14), +(946, '2025-04-29', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(947, '2025-04-29', 8, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(948, '2025-04-29', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(949, '2025-04-30', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(950, '2025-04-30', 2, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(951, '2025-04-30', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(953, '2025-04-30', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 15), +(954, '2025-04-30', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(955, '2025-04-30', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(956, '2025-04-30', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(957, '2025-04-30', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 15), +(958, '2025-04-30', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(959, '2025-04-30', 4, 7, NULL, NULL, NULL, NULL, '반반차', NULL, '제2공장 공사', '2025-04-30 04:22:04', '2025-04-30 04:22:04', NULL, NULL, NULL, 14), +(1023, '2025-04-15', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1024, '2025-04-15', 2, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1025, '2025-04-15', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1026, '2025-04-15', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1027, '2025-04-15', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1028, '2025-04-15', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1029, '2025-04-15', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1030, '2025-04-15', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1031, '2025-04-15', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1032, '2025-04-15', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1033, '2025-04-16', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1034, '2025-04-16', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1035, '2025-04-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5); +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(1036, '2025-04-16', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1037, '2025-04-16', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1038, '2025-04-16', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1039, '2025-04-16', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1040, '2025-04-16', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 15), +(1041, '2025-04-16', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1042, '2025-04-16', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1043, '2025-04-18', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1044, '2025-04-18', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1045, '2025-04-18', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1046, '2025-04-18', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1047, '2025-04-18', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 15), +(1048, '2025-04-18', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1049, '2025-04-18', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1050, '2025-04-18', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1051, '2025-04-18', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1052, '2025-04-18', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1053, '2025-04-02', 7, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-07 02:19:00', '2025-05-07 02:19:00', NULL, NULL, NULL, 9), +(1054, '2025-04-03', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 02:19:45', '2025-05-07 02:19:45', NULL, NULL, NULL, 9), +(1055, '2025-04-08', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 02:20:22', '2025-05-07 02:20:22', NULL, NULL, NULL, 9), +(1056, '2025-04-28', 8, 1, NULL, NULL, NULL, NULL, '반반차', NULL, 'NCR 벨브라인 설치', '2025-05-07 02:21:44', '2025-05-07 02:21:44', NULL, NULL, NULL, 9), +(1057, '2025-05-02', 1, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1058, '2025-05-02', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1059, '2025-05-02', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1060, '2025-05-02', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1061, '2025-05-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1062, '2025-05-02', 6, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1063, '2025-05-02', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1064, '2025-05-02', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1065, '2025-05-02', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1066, '2025-05-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1067, '2025-05-07', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1068, '2025-05-07', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1069, '2025-05-07', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1070, '2025-05-07', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1071, '2025-05-07', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1072, '2025-05-07', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1073, '2025-05-07', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1074, '2025-05-07', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1075, '2025-05-07', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1076, '2025-05-07', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1078, '2025-05-08', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1079, '2025-05-08', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1080, '2025-05-08', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1081, '2025-05-08', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1082, '2025-05-08', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1083, '2025-05-08', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1084, '2025-05-08', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1085, '2025-05-08', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1086, '2025-05-08', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1087, '2025-05-08', 1, 7, NULL, NULL, NULL, NULL, '반반차', NULL, '작업장 구역 설치', '2025-05-08 06:57:51', '2025-05-08 06:57:51', NULL, NULL, NULL, 14), +(1088, '2025-05-09', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1089, '2025-05-09', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1090, '2025-05-09', 3, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1091, '2025-05-09', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1092, '2025-05-09', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1093, '2025-05-09', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1094, '2025-05-09', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1095, '2025-05-09', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1096, '2025-05-09', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1097, '2025-05-09', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1100, '2025-05-12', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-11 21:52:46', '2025-05-11 21:52:46', NULL, NULL, NULL, 15), +(1108, '2025-05-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1111, '2025-05-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1113, '2025-05-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1115, '2025-05-12', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1116, '2025-05-12', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1117, '2025-05-13', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1118, '2025-05-13', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1119, '2025-05-13', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1120, '2025-05-13', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1121, '2025-05-13', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1122, '2025-05-13', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1123, '2025-05-13', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1124, '2025-05-13', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1125, '2025-05-13', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1126, '2025-05-13', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1127, '2025-05-12', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1128, '2025-05-12', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1129, '2025-05-12', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1130, '2025-05-12', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1131, '2025-05-14', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1132, '2025-05-14', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1133, '2025-05-14', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1134, '2025-05-14', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1135, '2025-05-14', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1136, '2025-05-14', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1137, '2025-05-14', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1138, '2025-05-14', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1139, '2025-05-14', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1140, '2025-05-14', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1141, '2025-05-15', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 14), +(1142, '2025-05-15', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1143, '2025-05-15', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1144, '2025-05-15', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1145, '2025-05-15', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1146, '2025-05-15', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1147, '2025-05-15', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 14), +(1148, '2025-05-15', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1149, '2025-05-15', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1150, '2025-05-15', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1151, '2025-05-16', 1, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1152, '2025-05-16', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1153, '2025-05-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1154, '2025-05-16', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1155, '2025-05-16', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1156, '2025-05-16', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1157, '2025-05-16', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1158, '2025-05-16', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1159, '2025-05-16', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1160, '2025-05-16', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1171, '2025-05-19', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1172, '2025-05-19', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 4), +(1173, '2025-05-19', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1174, '2025-05-19', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1175, '2025-05-19', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1176, '2025-05-19', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1177, '2025-05-19', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1179, '2025-05-19', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1180, '2025-05-19', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1181, '2025-05-21', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1183, '2025-05-21', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1184, '2025-05-21', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1185, '2025-05-21', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1186, '2025-05-21', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1187, '2025-05-21', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1188, '2025-05-21', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1189, '2025-05-21', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1190, '2025-05-21', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1191, '2025-05-20', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1192, '2025-05-20', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 3), +(1193, '2025-05-20', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1194, '2025-05-20', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1195, '2025-05-20', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1196, '2025-05-20', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1197, '2025-05-20', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1198, '2025-05-20', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1199, '2025-05-20', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1200, '2025-05-20', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1201, '2025-05-22', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1202, '2025-05-22', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 3), +(1203, '2025-05-22', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1204, '2025-05-22', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1205, '2025-05-22', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1206, '2025-05-22', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1207, '2025-05-22', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1208, '2025-05-22', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1209, '2025-05-22', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1210, '2025-05-22', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1211, '2025-05-21', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-22 04:54:12', '2025-05-22 04:54:12', NULL, NULL, NULL, 15), +(1215, '2025-05-26', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-26 06:58:00', '2025-05-26 06:58:00', NULL, NULL, NULL, 15), +(1222, '2025-05-19', 8, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-01 22:34:36', '2025-06-01 22:34:36', NULL, NULL, NULL, 3), +(1223, '2025-05-26', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1224, '2025-05-26', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1225, '2025-05-26', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1226, '2025-05-26', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1227, '2025-05-26', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1228, '2025-05-26', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1229, '2025-05-26', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1230, '2025-05-26', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1231, '2025-05-26', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1232, '2025-05-23', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1233, '2025-05-23', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 3), +(1234, '2025-05-23', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1235, '2025-05-23', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1236, '2025-05-23', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1237, '2025-05-23', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1238, '2025-05-23', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1239, '2025-05-23', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1240, '2025-05-23', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1241, '2025-05-23', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1242, '2025-05-27', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1243, '2025-05-27', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1244, '2025-05-27', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1245, '2025-05-27', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1246, '2025-05-27', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1247, '2025-05-27', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1248, '2025-05-27', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1249, '2025-05-27', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1250, '2025-05-27', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1251, '2025-05-27', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1252, '2025-05-28', 1, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-06-01 22:46:40', '2025-06-01 22:46:40', NULL, NULL, NULL, 8), +(1258, '2025-05-28', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:46:40', '2025-06-01 22:46:40', NULL, NULL, NULL, 8), +(1262, '2025-05-28', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1263, '2025-05-28', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1264, '2025-05-28', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1265, '2025-05-28', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1266, '2025-05-28', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1267, '2025-05-28', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1268, '2025-05-28', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1269, '2025-05-28', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1270, '2025-05-29', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1271, '2025-05-29', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1272, '2025-05-29', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1273, '2025-05-29', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1274, '2025-05-29', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1275, '2025-05-29', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1276, '2025-05-29', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1277, '2025-05-29', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1278, '2025-05-29', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1279, '2025-05-29', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1281, '2025-05-30', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1282, '2025-05-30', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1283, '2025-05-30', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1284, '2025-05-30', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1285, '2025-05-30', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1286, '2025-05-30', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1287, '2025-05-30', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1288, '2025-05-30', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1289, '2025-05-30', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1290, '2025-06-02', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:18', '2025-06-01 22:52:18', NULL, NULL, NULL, 8), +(1291, '2025-06-02', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 5), +(1292, '2025-06-02', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1293, '2025-06-02', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1294, '2025-06-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1295, '2025-06-02', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1296, '2025-06-02', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1297, '2025-06-02', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1298, '2025-06-02', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1299, '2025-06-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1300, '2025-05-30', 1, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-01 23:17:51', '2025-06-01 23:17:51', NULL, NULL, NULL, 8), +(1301, '2025-01-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 23:31:26', '2025-06-01 23:31:26', NULL, NULL, NULL, 15), +(1302, '2025-06-04', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1303, '2025-06-04', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1304, '2025-06-04', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1305, '2025-06-04', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 15), +(1306, '2025-06-04', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1307, '2025-06-04', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1308, '2025-06-04', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1309, '2025-06-04', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1310, '2025-06-04', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1311, '2025-06-04', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1312, '2025-06-09', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:28', NULL, NULL, NULL, 8), +(1313, '2025-06-09', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1314, '2025-06-09', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:30', NULL, NULL, NULL, 8), +(1315, '2025-06-09', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1316, '2025-06-09', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:31', NULL, NULL, NULL, 8), +(1317, '2025-06-09', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1318, '2025-06-09', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:32', NULL, NULL, NULL, 8), +(1319, '2025-06-09', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1320, '2025-06-09', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 15), +(1321, '2025-06-09', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:34', NULL, NULL, NULL, 8), +(1322, '2025-06-10', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:03', '2025-06-13 03:43:51', NULL, NULL, NULL, 8), +(1323, '2025-06-10', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:03', '2025-06-10 08:47:03', NULL, NULL, NULL, 5), +(1324, '2025-06-10', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:03', '2025-06-13 03:43:53', NULL, NULL, NULL, 8), +(1325, '2025-06-10', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:54', NULL, NULL, NULL, 8), +(1326, '2025-06-10', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1327, '2025-06-10', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1328, '2025-06-10', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:55', NULL, NULL, NULL, 8), +(1329, '2025-06-10', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1330, '2025-06-10', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:56', NULL, NULL, NULL, 8), +(1331, '2025-06-10', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:56', NULL, NULL, NULL, 8), +(1332, '2025-06-11', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:18', NULL, NULL, NULL, 8), +(1333, '2025-06-11', 2, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1334, '2025-06-11', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:19', NULL, NULL, NULL, 8), +(1335, '2025-06-11', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:20', NULL, NULL, NULL, 8), +(1336, '2025-06-11', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1337, '2025-06-11', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1338, '2025-06-11', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:22', NULL, NULL, NULL, 8), +(1339, '2025-06-11', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1340, '2025-06-11', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:23', NULL, NULL, NULL, 8), +(1341, '2025-06-11', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:23', NULL, NULL, NULL, 8), +(1342, '2025-06-13', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1343, '2025-06-13', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1344, '2025-06-13', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1345, '2025-06-13', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1346, '2025-06-13', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1347, '2025-06-13', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1348, '2025-06-13', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 15), +(1349, '2025-06-13', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1350, '2025-06-13', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1351, '2025-06-13', 10, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1352, '2025-06-05', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1353, '2025-06-05', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1354, '2025-06-05', 3, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1355, '2025-06-05', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1356, '2025-06-05', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1357, '2025-06-05', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1358, '2025-06-05', 7, 4, NULL, NULL, NULL, NULL, '반반차', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1359, '2025-06-05', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1360, '2025-06-05', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1361, '2025-06-05', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1362, '2025-06-12', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1363, '2025-06-12', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1364, '2025-06-12', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1365, '2025-06-12', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1366, '2025-06-12', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1367, '2025-06-12', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1368, '2025-06-12', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1369, '2025-06-12', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1370, '2025-06-12', 9, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1371, '2025-06-12', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1372, '2025-06-16', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:26', '2025-06-16 04:26:26', NULL, NULL, NULL, 8), +(1373, '2025-06-16', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1374, '2025-06-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1375, '2025-06-16', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1376, '2025-06-16', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1377, '2025-06-16', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'Vessel NDE 불량 수리', '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1378, '2025-06-16', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 15), +(1379, '2025-06-16', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'Vessel NDE 불량 수리', '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1380, '2025-06-16', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1381, '2025-06-16', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1382, '2025-06-17', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1383, '2025-06-17', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1384, '2025-06-17', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1385, '2025-06-17', 4, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:36:28', NULL, NULL, NULL, 5), +(1386, '2025-06-17', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1387, '2025-06-17', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 비파괴 불량', '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1388, '2025-06-17', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1389, '2025-06-17', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 비파괴 불량', '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1390, '2025-06-17', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1391, '2025-06-17', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1392, '2025-06-18', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1393, '2025-06-18', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1394, '2025-06-18', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1395, '2025-06-18', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1396, '2025-06-18', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1397, '2025-06-18', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1398, '2025-06-18', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1399, '2025-06-18', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1400, '2025-06-18', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1401, '2025-06-18', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1402, '2025-06-24', 1, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1403, '2025-06-24', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 5), +(1404, '2025-06-24', 3, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1405, '2025-06-24', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1406, '2025-06-24', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1407, '2025-06-24', 6, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1408, '2025-06-24', 7, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1409, '2025-06-24', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 5), +(1410, '2025-06-24', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1411, '2025-06-24', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1412, '2025-06-25', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1413, '2025-06-25', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 5), +(1414, '2025-06-25', 3, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1415, '2025-06-25', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1416, '2025-06-25', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1417, '2025-06-25', 6, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1418, '2025-06-25', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1419, '2025-06-25', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 5), +(1420, '2025-06-25', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1421, '2025-06-25', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1422, '2025-06-26', 1, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1423, '2025-06-26', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1424, '2025-06-26', 3, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1425, '2025-06-26', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1426, '2025-06-26', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1427, '2025-06-26', 6, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1428, '2025-06-26', 7, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1429, '2025-06-26', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1430, '2025-06-26', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1431, '2025-06-26', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1432, '2025-06-27', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1433, '2025-06-27', 2, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1434, '2025-06-27', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1435, '2025-06-27', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1436, '2025-06-27', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1437, '2025-06-27', 6, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1438, '2025-06-27', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1439, '2025-06-27', 8, 3, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1440, '2025-06-27', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1441, '2025-06-27', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_report_audit_log` +-- + +CREATE TABLE `work_report_audit_log` ( + `log_id` int(11) NOT NULL, + `action` enum('ADD_ACCUMULATE','DELETE_SINGLE','UPDATE','DELETE','CREATE','DELETE_BATCH') NOT NULL COMMENT '작업 유형', + `report_id` int(11) DEFAULT NULL COMMENT '관련 보고서 ID', + `old_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 전 값' CHECK (json_valid(`old_values`)), + `new_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 후 값' CHECK (json_valid(`new_values`)), + `changed_by` int(11) NOT NULL COMMENT '변경자 ID', + `change_reason` varchar(500) DEFAULT NULL COMMENT '변경 사유', + `ip_address` varchar(45) DEFAULT NULL COMMENT 'IP 주소', + `user_agent` text DEFAULT NULL COMMENT '사용자 에이전트', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '변경 시간' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_report_audit_log` +-- + +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(1, 'ADD_ACCUMULATE', 12, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 02:56:12'), +(2, 'DELETE_SINGLE', 12, '{\"worker_name\":\"김두수\",\"project_name\":\"MP7 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:36'), +(3, 'DELETE_SINGLE', 11, '{\"worker_name\":\"김두수\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:39'), +(4, 'DELETE_SINGLE', 7, '{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:41'), +(5, 'ADD_ACCUMULATE', 13, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":1,\"my_total\":\"1.00\",\"grand_total\":1,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"1.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 03:18:37'), +(6, 'DELETE_SINGLE', 13, '{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:19:23'), +(7, 'ADD_ACCUMULATE', 14, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(8, 'ADD_ACCUMULATE', 15, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(9, 'ADD_ACCUMULATE', 16, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(10, 'ADD_ACCUMULATE', 17, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(11, 'ADD_ACCUMULATE', 18, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(12, 'ADD_ACCUMULATE', 19, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(13, 'ADD_ACCUMULATE', 20, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:47'), +(14, 'ADD_ACCUMULATE', 21, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(15, 'ADD_ACCUMULATE', 22, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(16, 'ADD_ACCUMULATE', 23, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(17, 'ADD_ACCUMULATE', 24, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(18, 'ADD_ACCUMULATE', 25, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(19, 'ADD_ACCUMULATE', 26, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(20, 'ADD_ACCUMULATE', 27, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(21, 'ADD_ACCUMULATE', 28, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(22, 'ADD_ACCUMULATE', 29, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(23, 'ADD_ACCUMULATE', 30, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(24, 'ADD_ACCUMULATE', 31, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(25, 'ADD_ACCUMULATE', 32, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(26, 'ADD_ACCUMULATE', 33, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(27, 'ADD_ACCUMULATE', 34, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(28, 'ADD_ACCUMULATE', 35, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(29, 'ADD_ACCUMULATE', 36, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(30, 'ADD_ACCUMULATE', 37, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(31, 'ADD_ACCUMULATE', 38, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(32, 'ADD_ACCUMULATE', 39, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(33, 'ADD_ACCUMULATE', 40, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(34, 'ADD_ACCUMULATE', 41, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(35, 'ADD_ACCUMULATE', 42, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(36, 'ADD_ACCUMULATE', 43, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(37, 'DELETE_SINGLE', 42, '{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:12:33'), +(38, 'ADD_ACCUMULATE', 44, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:13:02'), +(39, 'ADD_ACCUMULATE', 45, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:13:50'), +(40, 'DELETE_SINGLE', 41, '{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:14:48'), +(41, 'ADD_ACCUMULATE', 46, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:15:22'), +(42, 'DELETE_SINGLE', 1, '{\"worker_name\":\"김두수\",\"project_name\":\"25년 안전보건시설설비\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-01T00:00:00.000Z\"}', NULL, 1, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:20:38'), +(43, 'ADD_ACCUMULATE', 48, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(44, 'ADD_ACCUMULATE', 49, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(45, 'ADD_ACCUMULATE', 50, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(46, 'DELETE_SINGLE', 49, '{\"worker_name\":\"박현수\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:47:54'), +(47, 'ADD_ACCUMULATE', 51, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:48:29'), +(48, 'ADD_ACCUMULATE', 52, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-16 06:50:09'), +(49, 'ADD_ACCUMULATE', 54, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-16 06:50:09'), +(50, 'ADD_ACCUMULATE', 56, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:23:41'), +(51, 'ADD_ACCUMULATE', 58, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:23:41'), +(52, 'ADD_ACCUMULATE', 60, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:33'), +(53, 'ADD_ACCUMULATE', 62, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:33'), +(54, 'ADD_ACCUMULATE', 64, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:44'), +(55, 'ADD_ACCUMULATE', 65, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:25:24'), +(56, 'DELETE_SINGLE', 64, '{\"worker_name\":\"황인용\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-17T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-17 08:26:17'), +(57, 'ADD_ACCUMULATE', 66, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:27:06'), +(58, 'ADD_ACCUMULATE', 67, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:27:06'), +(59, 'ADD_ACCUMULATE', 68, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(60, 'ADD_ACCUMULATE', 69, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(61, 'ADD_ACCUMULATE', 70, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(62, 'ADD_ACCUMULATE', 71, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(63, 'ADD_ACCUMULATE', 72, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(64, 'ADD_ACCUMULATE', 73, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(65, 'ADD_ACCUMULATE', 74, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-17 08:34:11'), +(66, 'ADD_ACCUMULATE', 76, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-17 08:34:11'), +(67, 'ADD_ACCUMULATE', 78, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(68, 'ADD_ACCUMULATE', 79, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(69, 'ADD_ACCUMULATE', 80, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(70, 'ADD_ACCUMULATE', 81, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:02'), +(71, 'ADD_ACCUMULATE', 82, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:03'), +(72, 'ADD_ACCUMULATE', 83, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:03'), +(73, 'ADD_ACCUMULATE', 84, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:45'), +(74, 'ADD_ACCUMULATE', 86, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-18 08:47:55'), +(75, 'ADD_ACCUMULATE', 88, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-18 08:47:55'), +(76, 'ADD_ACCUMULATE', 90, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(77, 'ADD_ACCUMULATE', 92, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(78, 'ADD_ACCUMULATE', 94, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(79, 'ADD_ACCUMULATE', 96, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 09:00:17'), +(80, 'ADD_ACCUMULATE', 98, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-19 06:37:59'), +(81, 'ADD_ACCUMULATE', 99, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-19 06:37:59'), +(82, 'ADD_ACCUMULATE', 100, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(83, 'ADD_ACCUMULATE', 101, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(84, 'ADD_ACCUMULATE', 102, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(85, 'ADD_ACCUMULATE', 103, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(86, 'ADD_ACCUMULATE', 105, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(87, 'ADD_ACCUMULATE', 107, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(88, 'ADD_ACCUMULATE', 109, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(89, 'ADD_ACCUMULATE', 111, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(90, 'ADD_ACCUMULATE', 113, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(91, 'ADD_ACCUMULATE', 115, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(92, 'ADD_ACCUMULATE', 117, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(93, 'ADD_ACCUMULATE', 119, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(94, 'ADD_ACCUMULATE', 121, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(95, 'ADD_ACCUMULATE', 123, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(96, 'ADD_ACCUMULATE', 125, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-20 06:45:30'), +(97, 'ADD_ACCUMULATE', 126, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-20 06:45:31'), +(98, 'ADD_ACCUMULATE', 127, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-23 06:42:58'), +(99, 'ADD_ACCUMULATE', 128, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-23 06:42:58'), +(100, 'ADD_ACCUMULATE', 129, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(101, 'ADD_ACCUMULATE', 131, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(102, 'ADD_ACCUMULATE', 133, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(103, 'ADD_ACCUMULATE', 135, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(104, 'ADD_ACCUMULATE', 137, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(105, 'ADD_ACCUMULATE', 139, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(106, 'ADD_ACCUMULATE', 141, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-24 11:10:32'), +(107, 'ADD_ACCUMULATE', 142, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-24 11:10:32'), +(108, 'ADD_ACCUMULATE', 143, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(109, 'ADD_ACCUMULATE', 145, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(110, 'ADD_ACCUMULATE', 147, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(111, 'ADD_ACCUMULATE', 149, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(112, 'ADD_ACCUMULATE', 151, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(113, 'ADD_ACCUMULATE', 153, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(114, 'ADD_ACCUMULATE', 155, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:05'), +(115, 'ADD_ACCUMULATE', 157, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:05'), +(116, 'ADD_ACCUMULATE', 159, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-25 11:08:04'), +(117, 'ADD_ACCUMULATE', 161, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-25 11:08:05'), +(118, 'ADD_ACCUMULATE', 163, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(119, 'ADD_ACCUMULATE', 164, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(120, 'ADD_ACCUMULATE', 165, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(121, 'ADD_ACCUMULATE', 166, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(122, 'ADD_ACCUMULATE', 167, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(123, 'ADD_ACCUMULATE', 168, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(124, 'ADD_ACCUMULATE', 169, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(125, 'ADD_ACCUMULATE', 170, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(126, 'ADD_ACCUMULATE', 171, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(127, 'ADD_ACCUMULATE', 172, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:31'), +(128, 'ADD_ACCUMULATE', 174, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:32'), +(129, 'ADD_ACCUMULATE', 176, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:32'), +(130, 'ADD_ACCUMULATE', 178, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-26 11:19:34'), +(131, 'ADD_ACCUMULATE', 179, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-26 11:19:34'), +(132, 'ADD_ACCUMULATE', 180, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:21'), +(133, 'ADD_ACCUMULATE', 181, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:21'), +(134, 'ADD_ACCUMULATE', 182, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:40'), +(135, 'ADD_ACCUMULATE', 183, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(136, 'ADD_ACCUMULATE', 184, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(137, 'ADD_ACCUMULATE', 185, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(138, 'ADD_ACCUMULATE', 186, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(139, 'ADD_ACCUMULATE', 187, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(140, 'ADD_ACCUMULATE', 188, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(141, 'ADD_ACCUMULATE', 189, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:49:08'), +(142, 'ADD_ACCUMULATE', 190, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:49:08'), +(143, 'DELETE_SINGLE', 190, '{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 6, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:58:25'), +(144, 'ADD_ACCUMULATE', 191, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"4.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:58:46'), +(145, 'DELETE_SINGLE', 181, '{\"worker_name\":\"박현수\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:59:37'), +(146, 'DELETE_SINGLE', 180, '{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:59:42'), +(147, 'ADD_ACCUMULATE', 192, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"6.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 07:00:10'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_status_types` +-- + +CREATE TABLE `work_status_types` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL COMMENT '상태명', + `description` text DEFAULT NULL COMMENT '상태 설명', + `is_error` tinyint(1) DEFAULT 0 COMMENT '에러 상태 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_status_types` +-- + +INSERT INTO `work_status_types` (`id`, `name`, `description`, `is_error`, `created_at`) VALUES +(1, '정규', '정상적으로 완료된 작업', 0, '2025-06-16 02:21:16'), +(2, '에러', '오류가 발생한 작업', 1, '2025-06-16 02:21:16'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_types` +-- + +CREATE TABLE `work_types` ( + `id` int(11) NOT NULL, + `name` varchar(100) NOT NULL COMMENT '작업 유형명', + `description` text DEFAULT NULL COMMENT '작업 유형 설명', + `category` varchar(50) DEFAULT NULL COMMENT '작업 카테고리', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_types` +-- + +INSERT INTO `work_types` (`id`, `name`, `description`, `category`, `created_at`, `updated_at`) VALUES +(1, 'Base(구조물)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:42'), +(2, 'Vessel(용기)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:47'), +(3, 'Piping Assembly(배관)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:50'), +(4, '작업대기', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:56'); + +-- +-- 덤프된 테이블의 인덱스 +-- + +-- +-- 테이블의 인덱스 `activity_logs` +-- +ALTER TABLE `activity_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_user_activity` (`user_id`,`activity_type`,`created_at`), + ADD KEY `idx_table_record` (`table_name`,`record_id`); + +-- +-- 테이블의 인덱스 `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + ADD PRIMARY KEY (`cutting_plan_id`), + ADD KEY `project_id` (`project_id`), + ADD KEY `fk_cuttingplan_spec` (`spec_id`); + +-- +-- 테이블의 인덱스 `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + ADD PRIMARY KEY (`id`), + ADD KEY `worker_id` (`worker_id`), + ADD KEY `fk_dird_project` (`project_id`), + ADD KEY `fk_dird_issuetype` (`issue_type_id`); + +-- +-- 테이블의 인덱스 `daily_worker_summary` +-- +ALTER TABLE `daily_worker_summary` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `unique_worker_date` (`worker_id`,`report_date`); + +-- +-- 테이블의 인덱스 `daily_work_reports` +-- +ALTER TABLE `daily_work_reports` + ADD PRIMARY KEY (`id`), + ADD KEY `idx_report_date` (`report_date`), + ADD KEY `idx_worker_date` (`worker_id`,`report_date`), + ADD KEY `idx_project_date` (`project_id`,`report_date`), + ADD KEY `idx_work_type` (`work_type_id`), + ADD KEY `idx_work_status` (`work_status_id`), + ADD KEY `idx_error_type` (`error_type_id`), + ADD KEY `idx_created_by` (`created_by`), + ADD KEY `idx_date_worker_creator` (`report_date`,`worker_id`,`created_by`); + +-- +-- 테이블의 인덱스 `EquipmentList` +-- +ALTER TABLE `EquipmentList` + ADD PRIMARY KEY (`equipment_id`), + ADD KEY `factory_id` (`factory_id`); + +-- +-- 테이블의 인덱스 `error_types` +-- +ALTER TABLE `error_types` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `FactoryInfo` +-- +ALTER TABLE `FactoryInfo` + ADD PRIMARY KEY (`factory_id`); + +-- +-- 테이블의 인덱스 `IssueTypes` +-- +ALTER TABLE `IssueTypes` + ADD PRIMARY KEY (`issue_type_id`); + +-- +-- 테이블의 인덱스 `login_logs` +-- +ALTER TABLE `login_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_user_login` (`user_id`,`login_time`); + +-- +-- 테이블의 인덱스 `password_change_logs` +-- +ALTER TABLE `password_change_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `changed_by_user_id` (`changed_by_user_id`), + ADD KEY `idx_user_changes` (`user_id`,`changed_at`); + +-- +-- 테이블의 인덱스 `PipeSpecs` +-- +ALTER TABLE `PipeSpecs` + ADD PRIMARY KEY (`spec_id`), + ADD UNIQUE KEY `unique_spec` (`material`,`diameter_in`,`schedule`); + +-- +-- 테이블의 인덱스 `Processes` +-- +ALTER TABLE `Processes` + ADD PRIMARY KEY (`process_id`), + ADD KEY `project_id` (`project_id`); + +-- +-- 테이블의 인덱스 `Projects` +-- +ALTER TABLE `Projects` + ADD PRIMARY KEY (`project_id`); + +-- +-- 테이블의 인덱스 `Tasks` +-- +ALTER TABLE `Tasks` + ADD PRIMARY KEY (`task_id`); + +-- +-- 테이블의 인덱스 `uploaded_documents` +-- +ALTER TABLE `uploaded_documents` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `Users` +-- +ALTER TABLE `Users` + ADD PRIMARY KEY (`user_id`), + ADD UNIQUE KEY `username` (`username`), + ADD UNIQUE KEY `email` (`email`), + ADD KEY `fk_worker` (`worker_id`), + ADD KEY `idx_username` (`username`), + ADD KEY `idx_active_users` (`is_active`,`access_level`); + +-- +-- 테이블의 인덱스 `Workers` +-- +ALTER TABLE `Workers` + ADD PRIMARY KEY (`worker_id`); + +-- +-- 테이블의 인덱스 `worker_groups` +-- +ALTER TABLE `worker_groups` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `uk_leader_worker` (`group_leader_id`,`worker_id`), + ADD KEY `idx_group_leader` (`group_leader_id`), + ADD KEY `idx_worker` (`worker_id`), + ADD KEY `idx_is_active` (`is_active`); + +-- +-- 테이블의 인덱스 `WorkReports` +-- +ALTER TABLE `WorkReports` + ADD PRIMARY KEY (`id`), + ADD KEY `worker_id` (`worker_id`), + ADD KEY `project_id` (`project_id`), + ADD KEY `morning_task_id` (`morning_task_id`), + ADD KEY `afternoon_task_id` (`afternoon_task_id`), + ADD KEY `overtime_task_id` (`overtime_task_id`); + +-- +-- 테이블의 인덱스 `work_report_audit_log` +-- +ALTER TABLE `work_report_audit_log` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_action_date` (`action`,`created_at`), + ADD KEY `idx_changed_by` (`changed_by`), + ADD KEY `idx_report_id` (`report_id`); + +-- +-- 테이블의 인덱스 `work_status_types` +-- +ALTER TABLE `work_status_types` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `work_types` +-- +ALTER TABLE `work_types` + ADD PRIMARY KEY (`id`); + +-- +-- 덤프된 테이블의 AUTO_INCREMENT +-- + +-- +-- 테이블의 AUTO_INCREMENT `activity_logs` +-- +ALTER TABLE `activity_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + MODIFY `cutting_plan_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10; + +-- +-- 테이블의 AUTO_INCREMENT `daily_worker_summary` +-- +ALTER TABLE `daily_worker_summary` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- 테이블의 AUTO_INCREMENT `daily_work_reports` +-- +ALTER TABLE `daily_work_reports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=193; + +-- +-- 테이블의 AUTO_INCREMENT `EquipmentList` +-- +ALTER TABLE `EquipmentList` + MODIFY `equipment_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `error_types` +-- +ALTER TABLE `error_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10; + +-- +-- 테이블의 AUTO_INCREMENT `FactoryInfo` +-- +ALTER TABLE `FactoryInfo` + MODIFY `factory_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; + +-- +-- 테이블의 AUTO_INCREMENT `IssueTypes` +-- +ALTER TABLE `IssueTypes` + MODIFY `issue_type_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `login_logs` +-- +ALTER TABLE `login_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=142; + +-- +-- 테이블의 AUTO_INCREMENT `password_change_logs` +-- +ALTER TABLE `password_change_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `PipeSpecs` +-- +ALTER TABLE `PipeSpecs` + MODIFY `spec_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +-- +-- 테이블의 AUTO_INCREMENT `Processes` +-- +ALTER TABLE `Processes` + MODIFY `process_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `Projects` +-- +ALTER TABLE `Projects` + MODIFY `project_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14; + +-- +-- 테이블의 AUTO_INCREMENT `Tasks` +-- +ALTER TABLE `Tasks` + MODIFY `task_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19; + +-- +-- 테이블의 AUTO_INCREMENT `uploaded_documents` +-- +ALTER TABLE `uploaded_documents` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `Users` +-- +ALTER TABLE `Users` + MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `Workers` +-- +ALTER TABLE `Workers` + MODIFY `worker_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12; + +-- +-- 테이블의 AUTO_INCREMENT `worker_groups` +-- +ALTER TABLE `worker_groups` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `WorkReports` +-- +ALTER TABLE `WorkReports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1442; + +-- +-- 테이블의 AUTO_INCREMENT `work_report_audit_log` +-- +ALTER TABLE `work_report_audit_log` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=148; + +-- +-- 테이블의 AUTO_INCREMENT `work_status_types` +-- +ALTER TABLE `work_status_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- 테이블의 AUTO_INCREMENT `work_types` +-- +ALTER TABLE `work_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11; + +-- +-- 덤프된 테이블의 제약사항 +-- + +-- +-- 테이블의 제약사항 `activity_logs` +-- +ALTER TABLE `activity_logs` + ADD CONSTRAINT `activity_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE SET NULL; + +-- +-- 테이블의 제약사항 `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + ADD CONSTRAINT `CuttingPlan_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`), + ADD CONSTRAINT `fk_cuttingplan_spec` FOREIGN KEY (`spec_id`) REFERENCES `PipeSpecs` (`spec_id`); + +-- +-- 테이블의 제약사항 `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + ADD CONSTRAINT `dailyissuereports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`), + ADD CONSTRAINT `fk_dird_issuetype` FOREIGN KEY (`issue_type_id`) REFERENCES `IssueTypes` (`issue_type_id`), + ADD CONSTRAINT `fk_dird_project` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`); + +-- +-- 테이블의 제약사항 `EquipmentList` +-- +ALTER TABLE `EquipmentList` + ADD CONSTRAINT `EquipmentList_ibfk_1` FOREIGN KEY (`factory_id`) REFERENCES `FactoryInfo` (`factory_id`); + +-- +-- 테이블의 제약사항 `login_logs` +-- +ALTER TABLE `login_logs` + ADD CONSTRAINT `login_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE; + +-- +-- 테이블의 제약사항 `password_change_logs` +-- +ALTER TABLE `password_change_logs` + ADD CONSTRAINT `password_change_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE, + ADD CONSTRAINT `password_change_logs_ibfk_2` FOREIGN KEY (`changed_by_user_id`) REFERENCES `Users` (`user_id`) ON DELETE SET NULL; + +-- +-- 테이블의 제약사항 `Processes` +-- +ALTER TABLE `Processes` + ADD CONSTRAINT `Processes_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`); + +-- +-- 테이블의 제약사항 `Users` +-- +ALTER TABLE `Users` + ADD CONSTRAINT `fk_worker` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`); + +-- +-- 테이블의 제약사항 `worker_groups` +-- +ALTER TABLE `worker_groups` + ADD CONSTRAINT `fk_group_leader` FOREIGN KEY (`group_leader_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE, + ADD CONSTRAINT `fk_group_worker` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`) ON DELETE CASCADE; + +-- +-- 테이블의 제약사항 `WorkReports` +-- +ALTER TABLE `WorkReports` + ADD CONSTRAINT `WorkReports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`), + ADD CONSTRAINT `WorkReports_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`), + ADD CONSTRAINT `WorkReports_ibfk_3` FOREIGN KEY (`morning_task_id`) REFERENCES `Tasks` (`task_id`), + ADD CONSTRAINT `WorkReports_ibfk_4` FOREIGN KEY (`afternoon_task_id`) REFERENCES `Tasks` (`task_id`), + ADD CONSTRAINT `WorkReports_ibfk_5` FOREIGN KEY (`overtime_task_id`) REFERENCES `Tasks` (`task_id`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/004_add_work_attendance_tracking.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/004_add_work_attendance_tracking.sql new file mode 100644 index 0000000..d27de88 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/004_add_work_attendance_tracking.sql @@ -0,0 +1,359 @@ +-- 근로 및 휴가 관리를 위한 테이블 확장 +-- 작성일: 2025-11-03 + +-- 1. 근로 유형 테이블 생성 +CREATE TABLE IF NOT EXISTS work_attendance_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + type_code VARCHAR(20) NOT NULL UNIQUE COMMENT '근로 유형 코드', + type_name VARCHAR(50) NOT NULL COMMENT '근로 유형명', + description TEXT COMMENT '설명', + is_active BOOLEAN DEFAULT TRUE COMMENT '활성 상태', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) COMMENT='근로 유형 관리 테이블'; + +-- 2. 휴가 유형 테이블 생성 +CREATE TABLE IF NOT EXISTS vacation_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + type_code VARCHAR(20) NOT NULL UNIQUE COMMENT '휴가 유형 코드', + type_name VARCHAR(50) NOT NULL COMMENT '휴가 유형명', + hours_deduction DECIMAL(4,2) NOT NULL COMMENT '차감 시간', + description TEXT COMMENT '설명', + is_active BOOLEAN DEFAULT TRUE COMMENT '활성 상태', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) COMMENT='휴가 유형 관리 테이블'; + +-- 3. 일일 근태 기록 테이블 생성 +CREATE TABLE IF NOT EXISTS daily_attendance_records ( + id INT PRIMARY KEY AUTO_INCREMENT, + record_date DATE NOT NULL COMMENT '기록 날짜', + worker_id INT NOT NULL COMMENT '작업자 ID', + total_work_hours DECIMAL(4,2) DEFAULT 0 COMMENT '총 작업 시간', + attendance_type_id INT COMMENT '근로 유형 ID', + vacation_type_id INT NULL COMMENT '휴가 유형 ID', + is_vacation_processed BOOLEAN DEFAULT FALSE COMMENT '휴가 처리 여부', + overtime_approved BOOLEAN DEFAULT FALSE COMMENT '초과근무 승인 여부', + overtime_approved_by INT NULL COMMENT '초과근무 승인자 ID', + overtime_approved_at TIMESTAMP NULL COMMENT '초과근무 승인 시간', + status ENUM('incomplete', 'partial', 'complete', 'overtime', 'vacation', 'error') DEFAULT 'incomplete' COMMENT '상태', + notes TEXT COMMENT '비고', + created_by INT NOT NULL COMMENT '생성자 ID', + updated_by INT NULL COMMENT '수정자 ID', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + -- 외래키 제약조건 + FOREIGN KEY (worker_id) REFERENCES workers(worker_id) ON DELETE CASCADE, + FOREIGN KEY (attendance_type_id) REFERENCES work_attendance_types(id), + FOREIGN KEY (vacation_type_id) REFERENCES vacation_types(id), + FOREIGN KEY (overtime_approved_by) REFERENCES users(user_id), + FOREIGN KEY (created_by) REFERENCES users(user_id), + FOREIGN KEY (updated_by) REFERENCES users(user_id), + + -- 유니크 제약조건 (작업자별 날짜별 하나의 기록) + UNIQUE KEY unique_worker_date (worker_id, record_date), + + -- 인덱스 + INDEX idx_record_date (record_date), + INDEX idx_worker_date (worker_id, record_date), + INDEX idx_status (status) +) COMMENT='일일 근태 기록 테이블'; + +-- 4. 휴가 잔여 관리 테이블 생성 +CREATE TABLE IF NOT EXISTS worker_vacation_balance ( + id INT PRIMARY KEY AUTO_INCREMENT, + worker_id INT NOT NULL COMMENT '작업자 ID', + year YEAR NOT NULL COMMENT '연도', + total_annual_leave DECIMAL(4,2) DEFAULT 15.0 COMMENT '연간 총 연차 (일)', + used_annual_leave DECIMAL(4,2) DEFAULT 0 COMMENT '사용한 연차 (일)', + remaining_annual_leave DECIMAL(4,2) GENERATED ALWAYS AS (total_annual_leave - used_annual_leave) STORED COMMENT '잔여 연차 (일)', + notes TEXT COMMENT '비고', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + -- 외래키 제약조건 + FOREIGN KEY (worker_id) REFERENCES workers(worker_id) ON DELETE CASCADE, + + -- 유니크 제약조건 (작업자별 연도별 하나의 기록) + UNIQUE KEY unique_worker_year (worker_id, year), + + -- 인덱스 + INDEX idx_worker_year (worker_id, year) +) COMMENT='작업자별 휴가 잔여 관리 테이블'; + +-- 5. 기본 데이터 삽입 + +-- 근로 유형 기본 데이터 +INSERT INTO work_attendance_types (type_code, type_name, description) VALUES +('REGULAR', '정시근로', '8시간 정규 근무'), +('OVERTIME', '연장근로', '8시간 초과 근무'), +('PARTIAL', '부분근로', '8시간 미만 근무'), +('VACATION', '휴가근로', '휴가와 함께하는 부분 근무') +ON DUPLICATE KEY UPDATE + type_name = VALUES(type_name), + description = VALUES(description); + +-- 휴가 유형 기본 데이터 +INSERT INTO vacation_types (type_code, type_name, hours_deduction, description) VALUES +('ANNUAL_FULL', '연차', 8.0, '하루 전체 연차'), +('ANNUAL_HALF', '반차', 4.0, '반일 연차'), +('ANNUAL_QUARTER', '반반차', 2.0, '1/4일 연차'), +('SICK_FULL', '병가', 8.0, '하루 전체 병가'), +('SICK_HALF', '반일병가', 4.0, '반일 병가'), +('PERSONAL_FULL', '개인사유', 8.0, '개인사유로 인한 휴가'), +('PERSONAL_HALF', '반일개인사유', 4.0, '반일 개인사유 휴가') +ON DUPLICATE KEY UPDATE + type_name = VALUES(type_name), + hours_deduction = VALUES(hours_deduction), + description = VALUES(description); + +-- 6. daily_work_reports 테이블에 근태 기록 연결 컬럼 추가 +ALTER TABLE daily_work_reports +ADD COLUMN attendance_record_id INT NULL COMMENT '근태 기록 ID' AFTER updated_by, +ADD INDEX idx_attendance_record (attendance_record_id); + +-- 외래키 제약조건 추가 (나중에 데이터 정리 후) +-- ALTER TABLE daily_work_reports +-- ADD FOREIGN KEY (attendance_record_id) REFERENCES daily_attendance_records(id); + +-- 7. 휴가 전용 작업 유형 추가 (work_types 테이블에) +INSERT INTO work_types (name, description, is_active) VALUES +('휴가', '연차, 반차, 병가 등 휴가 처리용', TRUE) +ON DUPLICATE KEY UPDATE + description = VALUES(description), + is_active = VALUES(is_active); + +-- 8. 뷰 생성 - 일일 근태 현황 조회용 +CREATE OR REPLACE VIEW v_daily_attendance_summary AS +SELECT + dar.id, + dar.record_date, + dar.worker_id, + w.worker_name, + w.job_type, + dar.total_work_hours, + wat.type_name as attendance_type, + vt.type_name as vacation_type, + dar.is_vacation_processed, + dar.overtime_approved, + dar.status, + CASE + WHEN dar.status = 'incomplete' THEN '미입력' + WHEN dar.status = 'partial' THEN '부분입력' + WHEN dar.status = 'complete' THEN '정시근로' + WHEN dar.status = 'overtime' THEN '연장근로' + WHEN dar.status = 'vacation' THEN '휴가' + WHEN dar.status = 'error' THEN '오류' + ELSE '알수없음' + END as status_text, + dar.notes, + dar.created_at, + dar.updated_at +FROM daily_attendance_records dar +LEFT JOIN workers w ON dar.worker_id = w.worker_id +LEFT JOIN work_attendance_types wat ON dar.attendance_type_id = wat.id +LEFT JOIN vacation_types vt ON dar.vacation_type_id = vt.id +ORDER BY dar.record_date DESC, w.worker_name; + +-- 9. 트리거 생성 - daily_work_reports 변경 시 근태 기록 자동 업데이트 +DELIMITER // + +CREATE OR REPLACE TRIGGER tr_update_attendance_on_work_report +AFTER INSERT ON daily_work_reports +FOR EACH ROW +BEGIN + DECLARE total_hours DECIMAL(4,2); + DECLARE attendance_type INT; + DECLARE vacation_type INT; + DECLARE record_status VARCHAR(20); + DECLARE existing_record_id INT; + + -- 해당 작업자의 해당 날짜 총 작업시간 계산 + SELECT COALESCE(SUM(work_hours), 0) INTO total_hours + FROM daily_work_reports + WHERE worker_id = NEW.worker_id + AND report_date = NEW.report_date; + + -- 휴가 처리 여부 확인 (work_type_id가 휴가용인지) + SELECT id INTO vacation_type + FROM vacation_types + WHERE (total_hours = 0 AND type_code = 'ANNUAL_FULL') + OR (total_hours = 4 AND type_code = 'ANNUAL_HALF') + OR (total_hours = 6 AND type_code = 'ANNUAL_QUARTER') + LIMIT 1; + + -- 근로 유형 결정 + IF total_hours = 0 THEN + SELECT id INTO attendance_type FROM work_attendance_types WHERE type_code = 'PARTIAL'; + SET record_status = 'incomplete'; + ELSEIF total_hours < 8 THEN + SELECT id INTO attendance_type FROM work_attendance_types WHERE type_code = 'PARTIAL'; + SET record_status = 'partial'; + ELSEIF total_hours = 8 THEN + SELECT id INTO attendance_type FROM work_attendance_types WHERE type_code = 'REGULAR'; + SET record_status = 'complete'; + ELSE + SELECT id INTO attendance_type FROM work_attendance_types WHERE type_code = 'OVERTIME'; + SET record_status = 'overtime'; + END IF; + + -- 휴가 처리된 경우 상태 조정 + IF vacation_type IS NOT NULL THEN + SET record_status = 'vacation'; + END IF; + + -- 기존 근태 기록 확인 + SELECT id INTO existing_record_id + FROM daily_attendance_records + WHERE worker_id = NEW.worker_id AND record_date = NEW.report_date; + + -- 근태 기록 업데이트 또는 생성 + IF existing_record_id IS NOT NULL THEN + UPDATE daily_attendance_records + SET + total_work_hours = total_hours, + attendance_type_id = attendance_type, + vacation_type_id = vacation_type, + is_vacation_processed = (vacation_type IS NOT NULL), + status = record_status, + updated_by = NEW.created_by, + updated_at = CURRENT_TIMESTAMP + WHERE id = existing_record_id; + ELSE + INSERT INTO daily_attendance_records ( + record_date, worker_id, total_work_hours, attendance_type_id, + vacation_type_id, is_vacation_processed, status, created_by + ) VALUES ( + NEW.report_date, NEW.worker_id, total_hours, attendance_type, + vacation_type, (vacation_type IS NOT NULL), record_status, NEW.created_by + ); + END IF; +END// + +DELIMITER ; + +-- 10. 기존 데이터 마이그레이션을 위한 프로시저 +DELIMITER // + +CREATE OR REPLACE PROCEDURE sp_migrate_existing_work_reports() +BEGIN + DECLARE done INT DEFAULT FALSE; + DECLARE v_worker_id INT; + DECLARE v_report_date DATE; + DECLARE cur CURSOR FOR + SELECT DISTINCT worker_id, report_date + FROM daily_work_reports + ORDER BY report_date DESC, worker_id; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + + OPEN cur; + + read_loop: LOOP + FETCH cur INTO v_worker_id, v_report_date; + IF done THEN + LEAVE read_loop; + END IF; + + -- 각 작업자별 날짜별로 근태 기록 생성/업데이트 + CALL sp_update_attendance_record(v_worker_id, v_report_date); + END LOOP; + + CLOSE cur; +END// + +CREATE OR REPLACE PROCEDURE sp_update_attendance_record( + IN p_worker_id INT, + IN p_report_date DATE +) +BEGIN + DECLARE total_hours DECIMAL(4,2); + DECLARE attendance_type INT; + DECLARE vacation_type INT; + DECLARE record_status VARCHAR(20); + DECLARE existing_record_id INT; + DECLARE has_vacation_work INT DEFAULT 0; + + -- 해당 작업자의 해당 날짜 총 작업시간 계산 + SELECT COALESCE(SUM(work_hours), 0) INTO total_hours + FROM daily_work_reports + WHERE worker_id = p_worker_id + AND report_date = p_report_date; + + -- 휴가 관련 작업이 있는지 확인 (work_type_id = 999 또는 휴가 관련) + SELECT COUNT(*) INTO has_vacation_work + FROM daily_work_reports dwr + JOIN work_types wt ON dwr.work_type_id = wt.id + WHERE dwr.worker_id = p_worker_id + AND dwr.report_date = p_report_date + AND (wt.name LIKE '%휴가%' OR wt.name LIKE '%연차%' OR wt.name LIKE '%반차%'); + + -- 휴가 유형 결정 + IF has_vacation_work > 0 THEN + IF total_hours = 0 THEN + SELECT id INTO vacation_type FROM vacation_types WHERE type_code = 'ANNUAL_FULL' LIMIT 1; + ELSEIF total_hours = 4 THEN + SELECT id INTO vacation_type FROM vacation_types WHERE type_code = 'ANNUAL_HALF' LIMIT 1; + ELSEIF total_hours = 6 THEN + SELECT id INTO vacation_type FROM vacation_types WHERE type_code = 'ANNUAL_QUARTER' LIMIT 1; + END IF; + END IF; + + -- 근로 유형 및 상태 결정 + IF vacation_type IS NOT NULL THEN + SELECT id INTO attendance_type FROM work_attendance_types WHERE type_code = 'VACATION'; + SET record_status = 'vacation'; + ELSEIF total_hours = 0 THEN + SELECT id INTO attendance_type FROM work_attendance_types WHERE type_code = 'PARTIAL'; + SET record_status = 'incomplete'; + ELSEIF total_hours < 8 THEN + SELECT id INTO attendance_type FROM work_attendance_types WHERE type_code = 'PARTIAL'; + SET record_status = 'partial'; + ELSEIF total_hours = 8 THEN + SELECT id INTO attendance_type FROM work_attendance_types WHERE type_code = 'REGULAR'; + SET record_status = 'complete'; + ELSE + SELECT id INTO attendance_type FROM work_attendance_types WHERE type_code = 'OVERTIME'; + SET record_status = 'overtime'; + END IF; + + -- 기존 근태 기록 확인 + SELECT id INTO existing_record_id + FROM daily_attendance_records + WHERE worker_id = p_worker_id AND record_date = p_report_date; + + -- 근태 기록 업데이트 또는 생성 + IF existing_record_id IS NOT NULL THEN + UPDATE daily_attendance_records + SET + total_work_hours = total_hours, + attendance_type_id = attendance_type, + vacation_type_id = vacation_type, + is_vacation_processed = (vacation_type IS NOT NULL), + status = record_status, + updated_by = 1, + updated_at = CURRENT_TIMESTAMP + WHERE id = existing_record_id; + ELSE + INSERT INTO daily_attendance_records ( + record_date, worker_id, total_work_hours, attendance_type_id, + vacation_type_id, is_vacation_processed, status, created_by + ) VALUES ( + p_report_date, p_worker_id, total_hours, attendance_type, + vacation_type, (vacation_type IS NOT NULL), record_status, 1 + ); + END IF; +END// + +DELIMITER ; + +-- 11. 권한 및 인덱스 최적화 +-- 추가 인덱스 생성 +CREATE INDEX idx_daily_work_reports_worker_date ON daily_work_reports(worker_id, report_date); +CREATE INDEX idx_daily_work_reports_work_type ON daily_work_reports(work_type_id); + +-- 마이그레이션 실행 (주석 해제하여 실행) +-- CALL sp_migrate_existing_work_reports(); + +-- 완료 메시지 +SELECT 'DB 확장 완료: 근로 및 휴가 관리 시스템이 성공적으로 구축되었습니다.' as message; diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/005_add_attendance_management.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/005_add_attendance_management.sql new file mode 100644 index 0000000..00905f2 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/005_add_attendance_management.sql @@ -0,0 +1,143 @@ +-- 근태 관리 시스템 테이블 추가 +-- 작성일: 2025-11-03 +-- 설명: 근로 유형, 휴가 유형, 일일 근태 기록, 휴가 잔여 관리 테이블 + +-- 1. 근로 유형 테이블 생성 +CREATE TABLE IF NOT EXISTS `work_attendance_types` ( + `id` INT PRIMARY KEY AUTO_INCREMENT, + `type_code` VARCHAR(20) NOT NULL UNIQUE COMMENT '근로 유형 코드', + `type_name` VARCHAR(50) NOT NULL COMMENT '근로 유형명', + `description` TEXT COMMENT '설명', + `is_active` BOOLEAN DEFAULT TRUE COMMENT '활성 상태', + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='근로 유형 관리 테이블'; + +-- 2. 휴가 유형 테이블 생성 +CREATE TABLE IF NOT EXISTS `vacation_types` ( + `id` INT PRIMARY KEY AUTO_INCREMENT, + `type_code` VARCHAR(20) NOT NULL UNIQUE COMMENT '휴가 유형 코드', + `type_name` VARCHAR(50) NOT NULL COMMENT '휴가 유형명', + `hours_deduction` DECIMAL(4,2) NOT NULL COMMENT '차감 시간', + `description` TEXT COMMENT '설명', + `is_active` BOOLEAN DEFAULT TRUE COMMENT '활성 상태', + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='휴가 유형 관리 테이블'; + +-- 3. 일일 근태 기록 테이블 생성 +CREATE TABLE IF NOT EXISTS `daily_attendance_records` ( + `id` INT PRIMARY KEY AUTO_INCREMENT, + `record_date` DATE NOT NULL COMMENT '기록 날짜', + `worker_id` INT NOT NULL COMMENT '작업자 ID', + `total_work_hours` DECIMAL(4,2) DEFAULT 0 COMMENT '총 작업 시간', + `attendance_type_id` INT COMMENT '근로 유형 ID', + `vacation_type_id` INT NULL COMMENT '휴가 유형 ID', + `is_vacation_processed` BOOLEAN DEFAULT FALSE COMMENT '휴가 처리 여부', + `overtime_approved` BOOLEAN DEFAULT FALSE COMMENT '초과근무 승인 여부', + `overtime_approved_by` INT NULL COMMENT '초과근무 승인자 ID', + `overtime_approved_at` TIMESTAMP NULL COMMENT '초과근무 승인 시간', + `status` ENUM('incomplete', 'partial', 'complete', 'overtime', 'vacation', 'error') DEFAULT 'incomplete' COMMENT '상태', + `notes` TEXT COMMENT '비고', + `created_by` INT NOT NULL DEFAULT 1 COMMENT '생성자 ID', + `updated_by` INT NULL COMMENT '수정자 ID', + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + -- 인덱스 + UNIQUE KEY `unique_worker_date` (`worker_id`, `record_date`), + INDEX `idx_record_date` (`record_date`), + INDEX `idx_worker_date` (`worker_id`, `record_date`), + INDEX `idx_status` (`status`), + + -- 외래키 (기존 테이블과의 관계) + FOREIGN KEY (`worker_id`) REFERENCES `workers`(`worker_id`) ON DELETE CASCADE, + FOREIGN KEY (`attendance_type_id`) REFERENCES `work_attendance_types`(`id`), + FOREIGN KEY (`vacation_type_id`) REFERENCES `vacation_types`(`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='일일 근태 기록 테이블'; + +-- 4. 작업자 휴가 잔여 관리 테이블 생성 +CREATE TABLE IF NOT EXISTS `worker_vacation_balance` ( + `id` INT PRIMARY KEY AUTO_INCREMENT, + `worker_id` INT NOT NULL COMMENT '작업자 ID', + `year` YEAR NOT NULL COMMENT '연도', + `total_annual_leave` DECIMAL(4,2) DEFAULT 15.0 COMMENT '연간 총 연차 (일)', + `used_annual_leave` DECIMAL(4,2) DEFAULT 0 COMMENT '사용한 연차 (일)', + `remaining_annual_leave` DECIMAL(4,2) GENERATED ALWAYS AS (`total_annual_leave` - `used_annual_leave`) STORED COMMENT '잔여 연차 (일)', + `notes` TEXT COMMENT '비고', + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + -- 인덱스 + UNIQUE KEY `unique_worker_year` (`worker_id`, `year`), + INDEX `idx_worker_year` (`worker_id`, `year`), + + -- 외래키 + FOREIGN KEY (`worker_id`) REFERENCES `workers`(`worker_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='작업자별 휴가 잔여 관리 테이블'; + +-- 5. daily_work_reports 테이블에 근태 기록 연결 컬럼 추가 +ALTER TABLE `daily_work_reports` +ADD COLUMN IF NOT EXISTS `attendance_record_id` INT NULL COMMENT '근태 기록 ID' AFTER `updated_by`; + +-- 인덱스 추가 +CREATE INDEX IF NOT EXISTS `idx_attendance_record` ON `daily_work_reports`(`attendance_record_id`); +CREATE INDEX IF NOT EXISTS `idx_daily_work_reports_worker_date` ON `daily_work_reports`(`worker_id`, `report_date`); + +-- 6. 기본 데이터 삽입 + +-- 근로 유형 기본 데이터 +INSERT IGNORE INTO `work_attendance_types` (`type_code`, `type_name`, `description`) VALUES +('REGULAR', '정시근로', '8시간 정규 근무'), +('OVERTIME', '연장근로', '8시간 초과 근무'), +('PARTIAL', '부분근로', '8시간 미만 근무'), +('VACATION', '휴가근로', '휴가와 함께하는 부분 근무'); + +-- 휴가 유형 기본 데이터 +INSERT IGNORE INTO `vacation_types` (`type_code`, `type_name`, `hours_deduction`, `description`) VALUES +('ANNUAL_FULL', '연차', 8.0, '하루 전체 연차'), +('ANNUAL_HALF', '반차', 4.0, '반일 연차'), +('ANNUAL_QUARTER', '반반차', 2.0, '1/4일 연차'), +('SICK_FULL', '병가', 8.0, '하루 전체 병가'), +('SICK_HALF', '반일병가', 4.0, '반일 병가'), +('PERSONAL_FULL', '개인사유', 8.0, '개인사유로 인한 휴가'), +('PERSONAL_HALF', '반일개인사유', 4.0, '반일 개인사유 휴가'); + +-- 7. 휴가 전용 작업 유형 추가 (이미 있으면 무시) +INSERT IGNORE INTO `work_types` (`name`, `description`, `is_active`) VALUES +('휴가', '연차, 반차, 병가 등 휴가 처리용', TRUE); + +-- 8. 뷰 생성 - 일일 근태 현황 조회용 +CREATE OR REPLACE VIEW `v_daily_attendance_summary` AS +SELECT + dar.id, + dar.record_date, + dar.worker_id, + w.worker_name, + w.job_type, + dar.total_work_hours, + wat.type_name as attendance_type, + vt.type_name as vacation_type, + dar.is_vacation_processed, + dar.overtime_approved, + dar.status, + CASE + WHEN dar.status = 'incomplete' THEN '미입력' + WHEN dar.status = 'partial' THEN '부분입력' + WHEN dar.status = 'complete' THEN '정시근로' + WHEN dar.status = 'overtime' THEN '연장근로' + WHEN dar.status = 'vacation' THEN '휴가' + WHEN dar.status = 'error' THEN '오류' + ELSE '알수없음' + END as status_text, + dar.notes, + dar.created_at, + dar.updated_at +FROM daily_attendance_records dar +LEFT JOIN workers w ON dar.worker_id = w.worker_id +LEFT JOIN work_attendance_types wat ON dar.attendance_type_id = wat.id +LEFT JOIN vacation_types vt ON dar.vacation_type_id = vt.id +ORDER BY dar.record_date DESC, w.worker_name; + +-- 완료 메시지 +SELECT '✅ 근태 관리 시스템 테이블이 성공적으로 생성되었습니다.' as message; diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/006_add_description_column.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/006_add_description_column.sql new file mode 100644 index 0000000..9626382 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/006_add_description_column.sql @@ -0,0 +1,16 @@ +-- 006_add_description_column.sql +-- daily_work_reports 테이블에 description 컬럼 추가 + +-- description 컬럼 추가 (이미 존재하는 경우 무시) +SET @sql = (SELECT IF( + (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS + WHERE table_name = 'daily_work_reports' + AND table_schema = 'hyungi' + AND column_name = 'description') = 0, + 'ALTER TABLE daily_work_reports ADD COLUMN description TEXT COMMENT ''작업 설명'' AFTER work_hours', + 'SELECT ''description column already exists'' as message' +)); + +PREPARE stmt FROM @sql; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/007_create_monthly_worker_status.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/007_create_monthly_worker_status.sql new file mode 100644 index 0000000..c7a2aae --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/007_create_monthly_worker_status.sql @@ -0,0 +1,249 @@ +-- 007_create_monthly_worker_status.sql +-- 월별 작업자 상태 집계 테이블 생성 + +-- 월별 작업자 상태 집계 테이블 +CREATE TABLE IF NOT EXISTS monthly_worker_status ( + id INT PRIMARY KEY AUTO_INCREMENT, + year INT NOT NULL COMMENT '연도', + month INT NOT NULL COMMENT '월 (1-12)', + worker_id INT NOT NULL COMMENT '작업자 ID', + date DATE NOT NULL COMMENT '날짜', + + -- 작업 시간 정보 + total_work_hours DECIMAL(5,2) DEFAULT 0.00 COMMENT '총 작업시간', + actual_work_hours DECIMAL(5,2) DEFAULT 0.00 COMMENT '실제 작업시간 (휴가 제외)', + vacation_hours DECIMAL(5,2) DEFAULT 0.00 COMMENT '휴가 시간', + + -- 작업 건수 + total_work_count INT DEFAULT 0 COMMENT '총 작업 건수', + regular_work_count INT DEFAULT 0 COMMENT '정규 작업 건수', + error_work_count INT DEFAULT 0 COMMENT '오류 작업 건수', + + -- 상태 정보 + work_status ENUM( + 'incomplete', -- 미입력 (0시간) + 'partial', -- 부분입력 (8시간 미만) + 'complete', -- 정시근로 (8시간) + 'overtime', -- 연장근로 (8시간 초과) + 'vacation-full', -- 연차 (8시간) + 'vacation-half', -- 반차 (4시간) + 'vacation-quarter',-- 반반차 (2시간) + 'vacation-half-half', -- 조퇴 (6시간) + 'error', -- 오류 발생 + 'overtime-warning' -- 초과근무 확인필요 (12시간 초과) + ) NOT NULL DEFAULT 'incomplete' COMMENT '작업 상태', + + has_vacation BOOLEAN DEFAULT FALSE COMMENT '휴가 여부', + has_error BOOLEAN DEFAULT FALSE COMMENT '오류 여부', + has_issues BOOLEAN DEFAULT FALSE COMMENT '문제 여부 (미입력/부분입력)', + + -- 메타 정보 + last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '마지막 업데이트 시간', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + + -- 인덱스 + UNIQUE KEY unique_worker_date (worker_id, date), + KEY idx_year_month (year, month), + KEY idx_worker_year_month (worker_id, year, month), + KEY idx_status (work_status), + KEY idx_has_issues (has_issues), + KEY idx_has_error (has_error), + + -- 외래키 + FOREIGN KEY (worker_id) REFERENCES workers(worker_id) ON DELETE CASCADE +) COMMENT='월별 작업자 상태 집계 테이블'; + +-- 월별 집계 요약 테이블 (캘린더 최적화용) +CREATE TABLE IF NOT EXISTS monthly_summary ( + id INT PRIMARY KEY AUTO_INCREMENT, + year INT NOT NULL COMMENT '연도', + month INT NOT NULL COMMENT '월 (1-12)', + date DATE NOT NULL COMMENT '날짜', + + -- 작업자 수 + total_workers INT DEFAULT 0 COMMENT '총 작업자 수', + working_workers INT DEFAULT 0 COMMENT '작업한 작업자 수', + + -- 상태별 작업자 수 + incomplete_workers INT DEFAULT 0 COMMENT '미입력 작업자 수', + partial_workers INT DEFAULT 0 COMMENT '부분입력 작업자 수', + complete_workers INT DEFAULT 0 COMMENT '완료 작업자 수', + overtime_workers INT DEFAULT 0 COMMENT '연장근로 작업자 수', + vacation_workers INT DEFAULT 0 COMMENT '휴가 작업자 수', + error_workers INT DEFAULT 0 COMMENT '오류 작업자 수', + + -- 집계 정보 + total_work_hours DECIMAL(8,2) DEFAULT 0.00 COMMENT '총 작업시간', + total_work_count INT DEFAULT 0 COMMENT '총 작업 건수', + total_error_count INT DEFAULT 0 COMMENT '총 오류 건수', + + -- 상태 플래그 (캘린더 표시용) + has_issues BOOLEAN DEFAULT FALSE COMMENT '문제 있음 (미입력/부분입력)', + has_errors BOOLEAN DEFAULT FALSE COMMENT '오류 있음', + + -- 메타 정보 + last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + + -- 인덱스 + UNIQUE KEY unique_date (date), + KEY idx_year_month (year, month), + KEY idx_has_issues (has_issues), + KEY idx_has_errors (has_errors) +) COMMENT='월별 일자별 요약 테이블 (캘린더 최적화용)'; + +-- 집계 데이터 업데이트 함수 +DELIMITER $$ + +CREATE OR REPLACE PROCEDURE UpdateMonthlyWorkerStatus( + IN p_date DATE, + IN p_worker_id INT +) +BEGIN + DECLARE v_year INT; + DECLARE v_month INT; + DECLARE v_total_hours DECIMAL(5,2); + DECLARE v_actual_hours DECIMAL(5,2); + DECLARE v_vacation_hours DECIMAL(5,2); + DECLARE v_total_count INT; + DECLARE v_regular_count INT; + DECLARE v_error_count INT; + DECLARE v_has_vacation BOOLEAN; + DECLARE v_has_error BOOLEAN; + DECLARE v_has_issues BOOLEAN; + DECLARE v_status VARCHAR(20); + + -- 연도, 월 추출 + SET v_year = YEAR(p_date); + SET v_month = MONTH(p_date); + + -- 해당 날짜의 작업자 데이터 집계 + SELECT + COALESCE(SUM(work_hours), 0), + COALESCE(SUM(CASE WHEN project_id != 13 THEN work_hours ELSE 0 END), 0), + COALESCE(SUM(CASE WHEN project_id = 13 THEN work_hours ELSE 0 END), 0), + COUNT(*), + COUNT(CASE WHEN project_id != 13 AND work_status_id != 2 THEN 1 END), + COUNT(CASE WHEN work_status_id = 2 THEN 1 END), + MAX(CASE WHEN project_id = 13 THEN 1 ELSE 0 END), + MAX(CASE WHEN work_status_id = 2 THEN 1 ELSE 0 END) + INTO + v_total_hours, v_actual_hours, v_vacation_hours, + v_total_count, v_regular_count, v_error_count, + v_has_vacation, v_has_error + FROM daily_work_reports + WHERE report_date = p_date AND worker_id = p_worker_id; + + -- 상태 결정 로직 + IF v_has_error THEN + SET v_status = 'error'; + SET v_has_issues = FALSE; + ELSEIF v_total_hours > 12 THEN + SET v_status = 'overtime-warning'; + SET v_has_issues = TRUE; + ELSEIF v_has_vacation AND v_vacation_hours > 0 THEN + -- 휴가 상태 결정 + CASE v_vacation_hours + WHEN 8 THEN SET v_status = 'vacation-full'; + WHEN 6 THEN SET v_status = 'vacation-half-half'; + WHEN 4 THEN SET v_status = 'vacation-half'; + WHEN 2 THEN SET v_status = 'vacation-quarter'; + ELSE SET v_status = 'vacation-full'; + END CASE; + SET v_has_issues = FALSE; + ELSEIF v_total_hours > 8 THEN + SET v_status = 'overtime'; + SET v_has_issues = FALSE; + ELSEIF v_total_hours = 8 THEN + SET v_status = 'complete'; + SET v_has_issues = FALSE; + ELSEIF v_total_hours > 0 THEN + SET v_status = 'partial'; + SET v_has_issues = TRUE; + ELSE + SET v_status = 'incomplete'; + SET v_has_issues = TRUE; + END IF; + + -- 데이터 업서트 + INSERT INTO monthly_worker_status ( + year, month, worker_id, date, + total_work_hours, actual_work_hours, vacation_hours, + total_work_count, regular_work_count, error_work_count, + work_status, has_vacation, has_error, has_issues + ) VALUES ( + v_year, v_month, p_worker_id, p_date, + v_total_hours, v_actual_hours, v_vacation_hours, + v_total_count, v_regular_count, v_error_count, + v_status, v_has_vacation, v_has_error, v_has_issues + ) ON DUPLICATE KEY UPDATE + total_work_hours = v_total_hours, + actual_work_hours = v_actual_hours, + vacation_hours = v_vacation_hours, + total_work_count = v_total_count, + regular_work_count = v_regular_count, + error_work_count = v_error_count, + work_status = v_status, + has_vacation = v_has_vacation, + has_error = v_has_error, + has_issues = v_has_issues, + last_updated = CURRENT_TIMESTAMP; + + -- 일별 요약도 업데이트 + CALL UpdateDailySummary(p_date); +END$$ + +-- 일별 요약 업데이트 함수 +CREATE OR REPLACE PROCEDURE UpdateDailySummary( + IN p_date DATE +) +BEGIN + DECLARE v_year INT; + DECLARE v_month INT; + + SET v_year = YEAR(p_date); + SET v_month = MONTH(p_date); + + INSERT INTO monthly_summary ( + year, month, date, + total_workers, working_workers, + incomplete_workers, partial_workers, complete_workers, + overtime_workers, vacation_workers, error_workers, + total_work_hours, total_work_count, total_error_count, + has_issues, has_errors + ) + SELECT + v_year, v_month, p_date, + COUNT(*) as total_workers, + COUNT(CASE WHEN work_status != 'incomplete' THEN 1 END) as working_workers, + COUNT(CASE WHEN work_status = 'incomplete' THEN 1 END) as incomplete_workers, + COUNT(CASE WHEN work_status = 'partial' THEN 1 END) as partial_workers, + COUNT(CASE WHEN work_status IN ('complete') THEN 1 END) as complete_workers, + COUNT(CASE WHEN work_status = 'overtime' THEN 1 END) as overtime_workers, + COUNT(CASE WHEN work_status LIKE 'vacation%' THEN 1 END) as vacation_workers, + COUNT(CASE WHEN work_status = 'error' THEN 1 END) as error_workers, + SUM(total_work_hours) as total_work_hours, + SUM(total_work_count) as total_work_count, + SUM(error_work_count) as total_error_count, + MAX(has_issues) as has_issues, + MAX(has_error) as has_errors + FROM monthly_worker_status + WHERE date = p_date + ON DUPLICATE KEY UPDATE + total_workers = VALUES(total_workers), + working_workers = VALUES(working_workers), + incomplete_workers = VALUES(incomplete_workers), + partial_workers = VALUES(partial_workers), + complete_workers = VALUES(complete_workers), + overtime_workers = VALUES(overtime_workers), + vacation_workers = VALUES(vacation_workers), + error_workers = VALUES(error_workers), + total_work_hours = VALUES(total_work_hours), + total_work_count = VALUES(total_work_count), + total_error_count = VALUES(total_error_count), + has_issues = VALUES(has_issues), + has_errors = VALUES(has_errors), + last_updated = CURRENT_TIMESTAMP; +END$$ + +DELIMITER ; diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/008_create_update_triggers.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/008_create_update_triggers.sql new file mode 100644 index 0000000..7fca042 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/008_create_update_triggers.sql @@ -0,0 +1,36 @@ +-- 008_create_update_triggers.sql +-- 작업보고서 변경 시 월별 집계 자동 업데이트 트리거 + +DELIMITER $$ + +-- 작업보고서 INSERT 트리거 +CREATE OR REPLACE TRIGGER tr_daily_work_reports_insert +AFTER INSERT ON daily_work_reports +FOR EACH ROW +BEGIN + CALL UpdateMonthlyWorkerStatus(NEW.report_date, NEW.worker_id); +END$$ + +-- 작업보고서 UPDATE 트리거 +CREATE OR REPLACE TRIGGER tr_daily_work_reports_update +AFTER UPDATE ON daily_work_reports +FOR EACH ROW +BEGIN + -- 기존 날짜 업데이트 + CALL UpdateMonthlyWorkerStatus(OLD.report_date, OLD.worker_id); + + -- 새 날짜가 다르면 새 날짜도 업데이트 + IF OLD.report_date != NEW.report_date OR OLD.worker_id != NEW.worker_id THEN + CALL UpdateMonthlyWorkerStatus(NEW.report_date, NEW.worker_id); + END IF; +END$$ + +-- 작업보고서 DELETE 트리거 +CREATE OR REPLACE TRIGGER tr_daily_work_reports_delete +AFTER DELETE ON daily_work_reports +FOR EACH ROW +BEGIN + CALL UpdateMonthlyWorkerStatus(OLD.report_date, OLD.worker_id); +END$$ + +DELIMITER ; diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/009_add_overtime_warning_columns.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/009_add_overtime_warning_columns.sql new file mode 100644 index 0000000..7437c7d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/009_add_overtime_warning_columns.sql @@ -0,0 +1,67 @@ +-- 009_add_overtime_warning_columns.sql +-- monthly_summary 테이블에 12시간 초과(확인필요) 상태 컬럼 추가 + +-- monthly_summary 테이블에 컬럼 추가 +ALTER TABLE monthly_summary +ADD COLUMN overtime_warning_workers INT DEFAULT 0 COMMENT '확인필요(12시간초과) 작업자 수' AFTER error_workers, +ADD COLUMN has_overtime_warning BOOLEAN DEFAULT FALSE COMMENT '확인필요 상태 있음' AFTER has_errors; + +-- UpdateDailySummary 프로시저 업데이트 +DROP PROCEDURE IF EXISTS UpdateDailySummary; +DELIMITER // +CREATE PROCEDURE UpdateDailySummary( + IN p_date DATE +) +BEGIN + DECLARE v_year INT; + DECLARE v_month INT; + + SET v_year = YEAR(p_date); + SET v_month = MONTH(p_date); + + INSERT INTO monthly_summary ( + year, month, date, + total_workers, working_workers, + incomplete_workers, partial_workers, complete_workers, + overtime_workers, vacation_workers, error_workers, overtime_warning_workers, + total_work_hours, total_work_count, total_error_count, + has_issues, has_errors, has_overtime_warning + ) + SELECT + v_year, v_month, p_date, + COUNT(*) as total_workers, + COUNT(CASE WHEN work_status != 'incomplete' THEN 1 END) as working_workers, + COUNT(CASE WHEN work_status = 'incomplete' THEN 1 END) as incomplete_workers, + COUNT(CASE WHEN work_status = 'partial' THEN 1 END) as partial_workers, + COUNT(CASE WHEN work_status IN ('complete', 'overtime', 'vacation-full', 'vacation-half', 'vacation-quarter', 'vacation-half-half') THEN 1 END) as complete_workers, + COUNT(CASE WHEN work_status = 'overtime' THEN 1 END) as overtime_workers, + COUNT(CASE WHEN work_status LIKE 'vacation%' THEN 1 END) as vacation_workers, + COUNT(CASE WHEN work_status = 'error' THEN 1 END) as error_workers, + COUNT(CASE WHEN work_status = 'overtime-warning' THEN 1 END) as overtime_warning_workers, + SUM(total_work_hours) as total_work_hours, + SUM(total_work_count) as total_work_count, + SUM(error_work_count) as total_error_count, + MAX(has_issues) as has_issues, + MAX(has_error) as has_errors, + MAX(CASE WHEN work_status = 'overtime-warning' THEN 1 ELSE 0 END) as has_overtime_warning + FROM monthly_worker_status + WHERE date = p_date + ON DUPLICATE KEY UPDATE + total_workers = VALUES(total_workers), + working_workers = VALUES(working_workers), + incomplete_workers = VALUES(incomplete_workers), + partial_workers = VALUES(partial_workers), + complete_workers = VALUES(complete_workers), + overtime_workers = VALUES(overtime_workers), + vacation_workers = VALUES(vacation_workers), + error_workers = VALUES(error_workers), + overtime_warning_workers = VALUES(overtime_warning_workers), + total_work_hours = VALUES(total_work_hours), + total_work_count = VALUES(total_work_count), + total_error_count = VALUES(total_error_count), + has_issues = VALUES(has_issues), + has_errors = VALUES(has_errors), + has_overtime_warning = VALUES(has_overtime_warning), + last_updated = CURRENT_TIMESTAMP; +END // +DELIMITER ; diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/009_fix_duplicate_monthly_status.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/009_fix_duplicate_monthly_status.sql new file mode 100644 index 0000000..46e840d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/009_fix_duplicate_monthly_status.sql @@ -0,0 +1,72 @@ +-- 009_fix_duplicate_monthly_status.sql +-- monthly_worker_status 테이블의 중복 데이터 정리 + +-- 1. 중복 데이터 확인 (디버깅용) +-- SELECT worker_id, date, COUNT(*) as cnt +-- FROM monthly_worker_status +-- GROUP BY worker_id, date +-- HAVING cnt > 1; + +-- 2. 중복 데이터 정리: 같은 worker_id, date에 대해 최신 데이터만 남기고 나머지 삭제 +DELETE mws1 FROM monthly_worker_status mws1 +INNER JOIN ( + SELECT + worker_id, + date, + MAX(id) as keep_id + FROM monthly_worker_status + GROUP BY worker_id, date +) mws2 ON mws1.worker_id = mws2.worker_id + AND mws1.date = mws2.date + AND mws1.id < mws2.keep_id; + +-- 3. 중복 제거 후 데이터 재집계 (선택사항) +-- 만약 합산이 필요하다면 다음 프로시저를 실행 +DELIMITER $$ + +CREATE OR REPLACE PROCEDURE ConsolidateDuplicateMonthlyStatus() +BEGIN + DECLARE done INT DEFAULT FALSE; + DECLARE v_worker_id INT; + DECLARE v_date DATE; + + -- 중복이 있는 worker_id, date 조합 찾기 + DECLARE cur CURSOR FOR + SELECT worker_id, date + FROM monthly_worker_status + GROUP BY worker_id, date + HAVING COUNT(*) > 1; + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + + OPEN cur; + + read_loop: LOOP + FETCH cur INTO v_worker_id, v_date; + IF done THEN + LEAVE read_loop; + END IF; + + -- 해당 작업자의 해당 날짜 데이터를 재계산하여 업데이트 + CALL UpdateMonthlyWorkerStatus(v_date, v_worker_id); + END LOOP; + + CLOSE cur; +END$$ + +DELIMITER ; + +-- 4. 프로시저 실행하여 중복 데이터 통합 +-- CALL ConsolidateDuplicateMonthlyStatus(); + +-- 5. 확인: 중복이 남아있는지 체크 +SELECT + '중복 체크 완료' as message, + COUNT(*) as remaining_duplicates +FROM ( + SELECT worker_id, date, COUNT(*) as cnt + FROM monthly_worker_status + GROUP BY worker_id, date + HAVING cnt > 1 +) duplicates; + diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/010_add_project_status.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/010_add_project_status.sql new file mode 100644 index 0000000..3372d2d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/010_add_project_status.sql @@ -0,0 +1,22 @@ +-- 010_add_project_status.sql +-- 프로젝트 테이블에 활성화/비활성화 상태 필드 추가 + +-- 프로젝트 상태 필드 추가 +ALTER TABLE projects +ADD COLUMN is_active BOOLEAN DEFAULT TRUE COMMENT '프로젝트 활성화 상태 (TRUE: 활성, FALSE: 비활성)'; + +-- 프로젝트 완료일 필드 추가 (납품일) +ALTER TABLE projects +ADD COLUMN completed_date DATE NULL COMMENT '프로젝트 완료일 (납품일)'; + +-- 프로젝트 상태 필드 추가 (진행상태) +ALTER TABLE projects +ADD COLUMN project_status ENUM('planning', 'active', 'completed', 'cancelled') DEFAULT 'active' COMMENT '프로젝트 진행 상태'; + +-- 기존 프로젝트들을 모두 활성 상태로 설정 +UPDATE projects SET is_active = TRUE WHERE is_active IS NULL; + +-- 인덱스 추가 (성능 최적화) +CREATE INDEX idx_projects_is_active ON projects(is_active); +CREATE INDEX idx_projects_status ON projects(project_status); +CREATE INDEX idx_projects_completed_date ON projects(completed_date); diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/011_add_worker_status.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/011_add_worker_status.sql new file mode 100644 index 0000000..9f9aa8f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/011_add_worker_status.sql @@ -0,0 +1,30 @@ +-- 011_add_worker_status.sql +-- workers 테이블에 추가 정보 필드 추가 + +-- 작업자 상태 필드 수정 (기존 text에서 ENUM으로) +ALTER TABLE workers +MODIFY COLUMN status ENUM('active', 'inactive') DEFAULT 'active' COMMENT '작업자 상태 (active: 활성, inactive: 비활성)'; + +-- 작업자 추가 정보 필드들 추가 +ALTER TABLE workers +ADD COLUMN phone_number VARCHAR(20) NULL COMMENT '전화번호'; + +ALTER TABLE workers +ADD COLUMN email VARCHAR(100) NULL COMMENT '이메일'; + +ALTER TABLE workers +ADD COLUMN hire_date DATE NULL COMMENT '입사일'; + +ALTER TABLE workers +ADD COLUMN department VARCHAR(100) NULL COMMENT '부서'; + +ALTER TABLE workers +ADD COLUMN notes TEXT NULL COMMENT '비고'; + +-- 기존 작업자들을 모두 활성 상태로 설정 +UPDATE workers SET status = 'active' WHERE status IS NULL; + +-- 인덱스 추가 (성능 최적화) +CREATE INDEX idx_workers_status ON workers(status); +CREATE INDEX idx_workers_job_type ON workers(job_type); +CREATE INDEX idx_workers_hire_date ON workers(hire_date); diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/01_complete_data.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/01_complete_data.sql new file mode 100644 index 0000000..931114b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/01_complete_data.sql @@ -0,0 +1,4567 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.2 +-- https://www.phpmyadmin.net/ +-- +-- 호스트: db_hyungi_net +-- 생성 시간: 25-10-11 00:23 +-- 서버 버전: 10.9.8-MariaDB-1:10.9.8+maria~ubu2204 +-- PHP 버전: 8.2.27 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- 데이터베이스: `hyungi` +-- + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `activity_logs` +-- + +CREATE TABLE `activity_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `activity_type` varchar(100) DEFAULT NULL, + `table_name` varchar(50) DEFAULT NULL, + `record_id` int(11) DEFAULT NULL, + `action` enum('create','read','update','delete') DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `CuttingPlan` +-- + +CREATE TABLE `CuttingPlan` ( + `cutting_plan_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `drawing_name` varchar(255) NOT NULL, + `area_number` varchar(100) DEFAULT NULL, + `spool_number` varchar(255) DEFAULT NULL, + `length` decimal(10,2) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `spec_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `DailyIssueReports` +-- + +CREATE TABLE `DailyIssueReports` ( + `id` int(11) NOT NULL, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `issue_type_id` int(11) DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `start_time` time NOT NULL, + `end_time` time NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `DailyIssueReports` +-- + +INSERT INTO `DailyIssueReports` (`id`, `date`, `worker_id`, `project_id`, `issue_type_id`, `description`, `created_at`, `start_time`, `end_time`) VALUES +(1, '2025-06-02', 1, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(2, '2025-06-02', 9, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(3, '2025-06-02', 7, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(4, '2025-06-04', 10, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(5, '2025-06-04', 6, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(6, '2025-06-04', 3, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(7, '2025-06-11', 10, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'), +(8, '2025-06-11', 6, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'), +(9, '2025-06-11', 3, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `daily_worker_summary` +-- + +CREATE TABLE `daily_worker_summary` ( + `id` int(11) NOT NULL, + `report_date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `total_hours` decimal(4,2) NOT NULL DEFAULT 8.00 COMMENT '총 근무시간', + `work_status` enum('normal','annual_leave','half_leave','overtime') DEFAULT 'normal' COMMENT '근무 상태', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `daily_work_reports` +-- + +CREATE TABLE `daily_work_reports` ( + `id` int(11) NOT NULL, + `report_date` date NOT NULL COMMENT '작업 날짜', + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `project_id` int(11) NOT NULL COMMENT '프로젝트 ID', + `work_type_id` int(11) NOT NULL COMMENT '작업 유형 ID', + `work_status_id` int(11) DEFAULT 1 COMMENT '업무 상태 ID (1:정규, 2:에러)', + `error_type_id` int(11) DEFAULT NULL COMMENT '에러 유형 ID (에러일 때만)', + `work_hours` decimal(4,2) NOT NULL COMMENT '작업 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `created_by` int(11) NOT NULL DEFAULT 1 COMMENT '작성자 user_id', + `updated_by` int(11) DEFAULT NULL COMMENT '수정자 user_id' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `daily_work_reports` +-- + +INSERT INTO `daily_work_reports` (`id`, `report_date`, `worker_id`, `project_id`, `work_type_id`, `work_status_id`, `error_type_id`, `work_hours`, `created_at`, `updated_at`, `created_by`, `updated_by`) VALUES +(14, '2025-06-02', 1, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(15, '2025-06-02', 3, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(16, '2025-06-02', 4, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(17, '2025-06-02', 6, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(18, '2025-06-02', 7, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(19, '2025-06-02', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(20, '2025-06-02', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:10:47', '2025-06-16 05:10:47', 1, NULL), +(21, '2025-06-04', 1, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(22, '2025-06-04', 3, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(23, '2025-06-04', 5, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(24, '2025-06-04', 7, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(25, '2025-06-04', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(26, '2025-06-04', 10, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(27, '2025-06-04', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(28, '2025-06-04', 6, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(29, '2025-06-04', 8, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(30, '2025-06-05', 1, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(31, '2025-06-05', 3, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(32, '2025-06-05', 4, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(33, '2025-06-05', 7, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(34, '2025-06-05', 10, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(35, '2025-06-05', 9, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(36, '2025-06-05', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(37, '2025-06-05', 5, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(38, '2025-06-05', 6, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(39, '2025-06-05', 8, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(40, '2025-06-16', 5, 3, 2, 1, NULL, 8.00, '2025-06-16 06:12:01', '2025-06-16 06:12:01', 5, NULL), +(43, '2025-06-16', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 06:12:01', '2025-06-16 06:12:01', 5, NULL), +(44, '2025-06-16', 6, 3, 2, 2, 4, 4.00, '2025-06-16 06:13:02', '2025-06-16 06:13:02', 5, NULL), +(45, '2025-06-16', 6, 3, 2, 1, NULL, 4.00, '2025-06-16 06:13:50', '2025-06-16 06:13:50', 5, NULL), +(46, '2025-06-16', 8, 3, 2, 2, 4, 4.00, '2025-06-16 06:15:22', '2025-06-16 06:15:22', 5, NULL), +(47, '2025-06-16', 8, 3, 2, 1, NULL, 4.00, '2025-06-16 06:15:22', '2025-06-16 06:15:22', 5, NULL), +(48, '2025-06-16', 4, 4, 3, 2, 1, 8.00, '2025-06-16 06:46:44', '2025-06-16 06:46:44', 3, NULL), +(50, '2025-06-16', 1, 4, 3, 2, 1, 8.00, '2025-06-16 06:46:44', '2025-06-16 06:46:44', 3, NULL), +(51, '2025-06-16', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 06:48:29', '2025-06-16 06:48:29', 3, NULL), +(52, '2025-06-16', 10, 4, 3, 1, NULL, 6.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(53, '2025-06-16', 10, 4, 3, 2, 1, 2.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(54, '2025-06-16', 3, 4, 3, 1, NULL, 6.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(55, '2025-06-16', 3, 4, 3, 2, 1, 2.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(56, '2025-06-17', 2, 3, 2, 1, NULL, 8.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(57, '2025-06-17', 2, 3, 2, 1, NULL, 2.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(58, '2025-06-17', 5, 3, 2, 1, NULL, 8.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(59, '2025-06-17', 5, 3, 2, 1, NULL, 2.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(60, '2025-06-17', 6, 3, 2, 1, NULL, 8.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(61, '2025-06-17', 6, 3, 2, 2, 4, 2.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(62, '2025-06-17', 8, 3, 2, 1, NULL, 8.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(63, '2025-06-17', 8, 3, 2, 2, 4, 2.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(65, '2025-06-17', 9, 4, 3, 2, 1, 4.00, '2025-06-17 08:25:24', '2025-06-17 08:25:24', 3, NULL), +(66, '2025-06-17', 1, 4, 3, 2, 1, 4.00, '2025-06-17 08:27:06', '2025-06-17 08:27:06', 3, NULL), +(67, '2025-06-17', 4, 4, 3, 2, 1, 4.00, '2025-06-17 08:27:06', '2025-06-17 08:27:06', 3, NULL), +(68, '2025-06-17', 1, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(69, '2025-06-17', 9, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(70, '2025-06-17', 4, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(71, '2025-06-17', 9, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(72, '2025-06-17', 4, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(73, '2025-06-17', 1, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(74, '2025-06-17', 10, 4, 3, 1, NULL, 8.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(75, '2025-06-17', 10, 4, 3, 2, 1, 2.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(76, '2025-06-17', 3, 4, 3, 1, NULL, 8.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(77, '2025-06-17', 3, 4, 3, 2, 1, 2.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(78, '2025-06-18', 6, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(79, '2025-06-18', 2, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(80, '2025-06-18', 8, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(81, '2025-06-18', 2, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:02', '2025-06-18 08:41:02', 5, NULL), +(82, '2025-06-18', 6, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:03', '2025-06-18 08:41:03', 5, NULL), +(83, '2025-06-18', 8, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:03', '2025-06-18 08:41:03', 5, NULL), +(84, '2025-06-18', 5, 4, 3, 1, NULL, 8.00, '2025-06-18 08:41:45', '2025-06-18 08:41:45', 5, NULL), +(85, '2025-06-18', 5, 4, 3, 1, NULL, 2.00, '2025-06-18 08:41:45', '2025-06-18 08:41:45', 5, NULL), +(86, '2025-06-18', 10, 4, 3, 1, NULL, 9.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(87, '2025-06-18', 10, 4, 3, 2, 1, 1.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(88, '2025-06-18', 3, 4, 3, 1, NULL, 9.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(89, '2025-06-18', 3, 4, 3, 2, 1, 1.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(90, '2025-06-18', 4, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(91, '2025-06-18', 4, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(92, '2025-06-18', 9, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(93, '2025-06-18', 9, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(94, '2025-06-18', 1, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(95, '2025-06-18', 1, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(96, '2025-06-18', 7, 4, 3, 2, 1, 4.00, '2025-06-18 09:00:17', '2025-06-18 09:00:17', 3, NULL), +(97, '2025-06-18', 7, 4, 3, 1, NULL, 6.00, '2025-06-18 09:00:17', '2025-06-18 09:00:17', 3, NULL), +(98, '2025-06-19', 8, 3, 2, 1, NULL, 8.00, '2025-06-19 06:37:59', '2025-06-19 06:37:59', 5, NULL), +(99, '2025-06-19', 2, 3, 2, 1, NULL, 8.00, '2025-06-19 06:37:59', '2025-06-19 06:37:59', 5, NULL), +(100, '2025-06-19', 10, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(101, '2025-06-19', 3, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(102, '2025-06-19', 5, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(103, '2025-06-19', 9, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(104, '2025-06-19', 9, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(105, '2025-06-19', 4, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(106, '2025-06-19', 4, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(107, '2025-06-19', 1, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(108, '2025-06-19', 1, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(109, '2025-06-19', 7, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(110, '2025-06-19', 7, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(111, '2025-06-19', 6, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(112, '2025-06-19', 6, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(113, '2025-06-20', 9, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(114, '2025-06-20', 9, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(115, '2025-06-20', 4, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(116, '2025-06-20', 4, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(117, '2025-06-20', 7, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(118, '2025-06-20', 7, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(119, '2025-06-20', 6, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(120, '2025-06-20', 6, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(121, '2025-06-20', 1, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(122, '2025-06-20', 1, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(123, '2025-06-20', 5, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(124, '2025-06-20', 5, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(125, '2025-06-20', 10, 4, 3, 1, NULL, 8.00, '2025-06-20 06:45:30', '2025-06-20 06:45:30', 6, NULL), +(126, '2025-06-20', 3, 4, 3, 1, NULL, 8.00, '2025-06-20 06:45:31', '2025-06-20 06:45:31', 6, NULL), +(127, '2025-06-23', 10, 4, 3, 1, NULL, 8.00, '2025-06-23 06:42:58', '2025-06-23 06:42:58', 6, NULL), +(128, '2025-06-23', 3, 4, 3, 1, NULL, 8.00, '2025-06-23 06:42:58', '2025-06-23 06:42:58', 6, NULL), +(129, '2025-06-23', 5, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(130, '2025-06-23', 5, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(131, '2025-06-23', 1, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(132, '2025-06-23', 1, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(133, '2025-06-23', 9, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(134, '2025-06-23', 9, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(135, '2025-06-23', 4, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(136, '2025-06-23', 4, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(137, '2025-06-23', 7, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(138, '2025-06-23', 7, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(139, '2025-06-23', 6, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(140, '2025-06-23', 6, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(141, '2025-06-24', 10, 4, 3, 1, NULL, 12.00, '2025-06-24 11:10:32', '2025-06-24 11:10:32', 6, NULL), +(142, '2025-06-24', 3, 4, 3, 1, NULL, 12.00, '2025-06-24 11:10:32', '2025-06-24 11:10:32', 6, NULL), +(143, '2025-06-24', 9, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(144, '2025-06-24', 9, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(145, '2025-06-24', 5, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(146, '2025-06-24', 5, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(147, '2025-06-24', 4, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(148, '2025-06-24', 4, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(149, '2025-06-24', 7, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(150, '2025-06-24', 7, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(151, '2025-06-24', 6, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(152, '2025-06-24', 6, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(153, '2025-06-24', 1, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(154, '2025-06-24', 1, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(155, '2025-06-24', 8, 3, 2, 1, NULL, 8.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(156, '2025-06-24', 8, 3, 2, 1, NULL, 4.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(157, '2025-06-24', 2, 3, 2, 1, NULL, 8.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(158, '2025-06-24', 2, 3, 2, 1, NULL, 4.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(159, '2025-06-25', 2, 3, 2, 1, NULL, 8.00, '2025-06-25 11:08:04', '2025-06-25 11:08:04', 5, NULL), +(160, '2025-06-25', 2, 3, 2, 1, NULL, 4.00, '2025-06-25 11:08:04', '2025-06-25 11:08:04', 5, NULL), +(161, '2025-06-25', 8, 3, 2, 1, NULL, 8.00, '2025-06-25 11:08:05', '2025-06-25 11:08:05', 5, NULL), +(162, '2025-06-25', 8, 3, 2, 1, NULL, 4.00, '2025-06-25 11:08:05', '2025-06-25 11:08:05', 5, NULL), +(163, '2025-06-25', 10, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(164, '2025-06-25', 9, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(165, '2025-06-25', 3, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(166, '2025-06-25', 6, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(167, '2025-06-26', 10, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(168, '2025-06-26', 5, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(169, '2025-06-26', 7, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(170, '2025-06-26', 1, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(171, '2025-06-26', 4, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(172, '2025-06-26', 8, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:31', '2025-06-26 11:11:31', 5, NULL), +(173, '2025-06-26', 8, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:31', '2025-06-26 11:11:31', 5, NULL), +(174, '2025-06-26', 2, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(175, '2025-06-26', 2, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(176, '2025-06-26', 9, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(177, '2025-06-26', 9, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(178, '2025-06-26', 3, 3, 2, 1, NULL, 12.00, '2025-06-26 11:19:34', '2025-06-26 11:19:34', 6, NULL), +(179, '2025-06-26', 6, 3, 2, 1, NULL, 12.00, '2025-06-26 11:19:34', '2025-06-26 11:19:34', 6, NULL), +(182, '2025-06-27', 2, 3, 2, 1, NULL, 4.00, '2025-06-27 01:54:40', '2025-06-27 01:54:40', 5, NULL), +(183, '2025-06-27', 9, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(184, '2025-06-27', 10, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(185, '2025-06-27', 7, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(186, '2025-06-27', 5, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(187, '2025-06-27', 4, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(188, '2025-06-27', 1, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(189, '2025-06-27', 3, 3, 2, 1, NULL, 8.00, '2025-06-27 06:49:08', '2025-06-27 06:49:08', 6, NULL), +(191, '2025-06-27', 6, 3, 2, 1, NULL, 4.00, '2025-06-27 06:58:46', '2025-06-27 06:58:46', 6, NULL), +(192, '2025-06-27', 8, 3, 2, 1, NULL, 6.00, '2025-06-27 07:00:10', '2025-06-27 07:00:10', 5, NULL), +(193, '2025-06-30', 6, 3, 2, 2, 4, 2.00, '2025-07-05 01:37:29', '2025-07-05 01:37:29', 3, NULL), +(194, '2025-06-30', 6, 3, 2, 1, NULL, 2.00, '2025-07-05 01:37:29', '2025-07-07 04:15:25', 3, 3), +(195, '2025-06-30', 2, 3, 2, 1, NULL, 4.00, '2025-07-05 01:38:19', '2025-07-07 04:15:40', 3, 3), +(196, '2025-06-30', 3, 3, 2, 1, NULL, 8.00, '2025-07-05 01:38:19', '2025-07-05 01:38:19', 3, NULL), +(197, '2025-06-30', 8, 3, 2, 1, NULL, 6.00, '2025-07-05 01:38:19', '2025-07-07 04:15:02', 3, 3), +(198, '2025-07-01', 3, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(199, '2025-07-01', 2, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(200, '2025-07-01', 6, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(201, '2025-07-01', 8, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(202, '2025-07-01', 10, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(203, '2025-07-01', 9, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(204, '2025-07-01', 2, 3, 2, 1, NULL, 2.00, '2025-07-05 01:39:48', '2025-07-05 01:42:08', 3, 3), +(205, '2025-07-01', 3, 3, 2, 1, NULL, 2.00, '2025-07-05 01:39:48', '2025-07-05 01:42:02', 3, 3), +(206, '2025-07-01', 6, 3, 2, 1, NULL, 2.00, '2025-07-05 01:39:48', '2025-07-05 01:41:56', 3, 3), +(207, '2025-07-01', 8, 3, 2, 1, NULL, 2.00, '2025-07-05 01:39:48', '2025-07-05 01:41:48', 3, 3), +(208, '2025-07-01', 9, 3, 2, 2, 4, 2.00, '2025-07-05 01:40:10', '2025-07-05 01:40:10', 3, NULL), +(209, '2025-07-01', 10, 3, 2, 2, 4, 2.00, '2025-07-05 01:40:10', '2025-07-05 01:40:10', 3, NULL), +(210, '2025-07-01', 7, 4, 3, 1, NULL, 5.00, '2025-07-05 01:42:57', '2025-07-05 01:42:57', 3, NULL), +(211, '2025-07-01', 7, 4, 3, 2, 2, 3.00, '2025-07-05 01:42:57', '2025-07-05 01:42:57', 3, NULL), +(212, '2025-07-01', 5, 4, 3, 1, NULL, 8.00, '2025-07-05 01:42:57', '2025-07-07 04:21:24', 3, 3), +(213, '2025-07-01', 5, 4, 3, 2, 2, 4.00, '2025-07-05 01:42:57', '2025-07-07 04:21:10', 3, 3), +(214, '2025-07-01', 4, 4, 3, 1, NULL, 8.00, '2025-07-05 01:42:57', '2025-07-07 04:21:41', 3, 3), +(215, '2025-07-01', 4, 4, 3, 2, 2, 4.00, '2025-07-05 01:42:57', '2025-07-07 04:21:32', 3, 3), +(216, '2025-07-01', 1, 4, 3, 1, NULL, 5.00, '2025-07-05 01:42:57', '2025-07-05 01:42:57', 3, NULL), +(217, '2025-07-01', 1, 4, 3, 2, 2, 3.00, '2025-07-05 01:42:57', '2025-07-05 01:42:57', 3, NULL), +(218, '2025-07-02', 2, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(219, '2025-07-02', 3, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(220, '2025-07-02', 10, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(221, '2025-07-02', 9, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(222, '2025-07-02', 8, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(223, '2025-07-02', 6, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(224, '2025-07-02', 7, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(225, '2025-07-02', 5, 4, 3, 2, 2, 4.00, '2025-07-05 01:44:11', '2025-07-05 01:44:11', 3, NULL), +(226, '2025-07-02', 5, 4, 3, 1, NULL, 6.00, '2025-07-05 01:44:11', '2025-07-05 01:44:54', 3, 3), +(227, '2025-07-02', 4, 4, 3, 2, 2, 4.00, '2025-07-05 01:44:11', '2025-07-05 01:44:11', 3, NULL), +(228, '2025-07-02', 4, 4, 3, 1, NULL, 6.00, '2025-07-05 01:44:11', '2025-07-05 01:44:59', 3, 3), +(229, '2025-07-02', 1, 4, 3, 2, 2, 4.00, '2025-07-05 01:44:11', '2025-07-05 01:44:11', 3, NULL), +(230, '2025-07-02', 1, 4, 3, 1, NULL, 6.00, '2025-07-05 01:44:11', '2025-07-05 01:45:05', 3, 3), +(231, '2025-07-03', 2, 3, 2, 1, NULL, 10.00, '2025-07-05 01:45:44', '2025-07-05 01:45:44', 3, NULL), +(232, '2025-07-03', 6, 3, 2, 1, NULL, 10.00, '2025-07-05 01:45:45', '2025-07-05 01:45:45', 3, NULL), +(233, '2025-07-03', 9, 3, 2, 1, NULL, 10.00, '2025-07-05 01:45:45', '2025-07-05 01:45:45', 3, NULL), +(234, '2025-07-03', 8, 3, 2, 1, NULL, 10.00, '2025-07-05 01:45:45', '2025-07-05 01:45:45', 3, NULL), +(235, '2025-07-03', 7, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:07', '2025-07-05 01:46:07', 3, NULL), +(236, '2025-07-03', 1, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:07', '2025-07-05 01:46:07', 3, NULL), +(237, '2025-07-03', 3, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:08', '2025-07-05 01:46:08', 3, NULL), +(238, '2025-07-03', 4, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:08', '2025-07-05 01:46:08', 3, NULL), +(239, '2025-07-03', 5, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:08', '2025-07-05 01:46:08', 3, NULL), +(240, '2025-07-03', 10, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:08', '2025-07-05 01:46:08', 3, NULL), +(241, '2025-07-04', 10, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(242, '2025-07-04', 10, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(243, '2025-07-04', 5, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(244, '2025-07-04', 5, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(245, '2025-07-04', 4, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(246, '2025-07-04', 4, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(247, '2025-07-04', 9, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(248, '2025-07-04', 9, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(249, '2025-07-04', 8, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(250, '2025-07-04', 8, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(251, '2025-07-04', 3, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(252, '2025-07-04', 3, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(253, '2025-07-04', 2, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(254, '2025-07-04', 2, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(255, '2025-07-04', 7, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(256, '2025-07-04', 7, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(257, '2025-07-04', 6, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(258, '2025-07-04', 6, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(259, '2025-07-04', 1, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(260, '2025-07-04', 1, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(261, '2025-07-05', 8, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:38', '2025-07-05 05:36:38', 5, NULL), +(262, '2025-07-05', 5, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:38', '2025-07-05 05:36:38', 5, NULL), +(263, '2025-07-05', 4, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:39', '2025-07-05 05:36:39', 5, NULL), +(264, '2025-07-05', 3, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:39', '2025-07-05 05:36:39', 5, NULL), +(265, '2025-07-05', 2, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:39', '2025-07-05 05:36:39', 5, NULL), +(266, '2025-07-05', 1, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:39', '2025-07-05 05:36:39', 5, NULL), +(267, '2025-07-06', 10, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:08', 5, 3), +(268, '2025-07-06', 9, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:16', 5, 3), +(269, '2025-07-06', 7, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:22', 5, 3), +(270, '2025-07-06', 6, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:27', 5, 3), +(271, '2025-07-06', 4, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:33', 5, 3), +(272, '2025-07-06', 3, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:39', 5, 3), +(273, '2025-07-06', 2, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:44', 5, 3), +(274, '2025-07-06', 1, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:49', 5, 3), +(275, '2025-07-07', 10, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(276, '2025-07-07', 9, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(277, '2025-07-07', 8, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(278, '2025-07-07', 7, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(279, '2025-07-07', 3, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(280, '2025-07-07', 4, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(281, '2025-07-07', 5, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(282, '2025-07-07', 6, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(283, '2025-07-07', 2, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(284, '2025-07-07', 1, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(285, '2025-07-08', 10, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:57', '2025-07-08 06:36:57', 3, NULL), +(286, '2025-07-08', 9, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(287, '2025-07-08', 8, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(288, '2025-07-08', 7, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(289, '2025-07-08', 6, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(290, '2025-07-08', 1, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(291, '2025-07-08', 2, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(292, '2025-07-08', 3, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(293, '2025-07-08', 5, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(294, '2025-07-08', 4, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(295, '2025-07-09', 10, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:40', '2025-07-09 22:08:40', 5, NULL), +(296, '2025-07-09', 9, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:40', '2025-07-09 22:08:40', 5, NULL), +(297, '2025-07-09', 8, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:40', '2025-07-09 22:08:40', 5, NULL), +(298, '2025-07-09', 7, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:41', '2025-07-09 22:08:41', 5, NULL), +(299, '2025-07-09', 6, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:41', '2025-07-09 22:08:41', 5, NULL), +(300, '2025-07-09', 2, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:41', '2025-07-09 22:08:41', 5, NULL), +(301, '2025-07-09', 3, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:42', '2025-07-09 22:08:42', 5, NULL), +(302, '2025-07-09', 4, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:42', '2025-07-09 22:08:42', 5, NULL), +(303, '2025-07-09', 5, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:42', '2025-07-09 22:08:42', 5, NULL), +(304, '2025-07-09', 1, 4, 3, 1, NULL, 4.00, '2025-07-09 22:09:10', '2025-07-09 22:09:10', 5, NULL), +(305, '2025-07-10', 9, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:58', '2025-07-10 06:33:58', 3, NULL), +(306, '2025-07-10', 8, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:58', '2025-07-10 06:33:58', 3, NULL), +(307, '2025-07-10', 5, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:58', '2025-07-10 06:33:58', 3, NULL), +(308, '2025-07-10', 6, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(309, '2025-07-10', 2, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(310, '2025-07-10', 3, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(311, '2025-07-10', 4, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(312, '2025-07-10', 1, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(313, '2025-07-10', 7, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(314, '2025-07-10', 10, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(315, '2025-07-12', 9, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(316, '2025-07-12', 8, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(317, '2025-07-12', 6, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(318, '2025-07-12', 5, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(319, '2025-07-12', 4, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(320, '2025-07-12', 2, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(321, '2025-07-12', 1, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(322, '2025-07-14', 8, 4, 3, 1, NULL, 6.00, '2025-07-14 06:46:30', '2025-07-14 06:46:30', 3, NULL), +(323, '2025-07-14', 10, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(324, '2025-07-14', 9, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(325, '2025-07-14', 7, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(326, '2025-07-14', 6, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(327, '2025-07-14', 1, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(328, '2025-07-14', 2, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(329, '2025-07-14', 3, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(330, '2025-07-14', 4, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(331, '2025-07-15', 3, 3, 2, 1, NULL, 8.00, '2025-07-15 05:57:06', '2025-07-15 05:57:06', 5, NULL), +(332, '2025-07-15', 9, 3, 2, 1, NULL, 8.00, '2025-07-15 05:57:06', '2025-07-15 05:57:06', 5, NULL), +(333, '2025-07-15', 5, 3, 2, 2, 4, 4.00, '2025-07-15 05:57:47', '2025-07-15 05:57:47', 5, NULL), +(334, '2025-07-15', 5, 4, 3, 1, NULL, 4.00, '2025-07-15 05:57:47', '2025-07-15 05:57:47', 5, NULL), +(335, '2025-07-15', 10, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(336, '2025-07-15', 8, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(337, '2025-07-15', 7, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(338, '2025-07-15', 6, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(339, '2025-07-15', 2, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(340, '2025-07-15', 1, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(341, '2025-07-14', 5, 4, 3, 1, NULL, 8.00, '2025-07-15 06:57:26', '2025-07-15 06:57:26', 3, NULL), +(342, '2025-07-16', 4, 4, 3, 1, NULL, 2.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(343, '2025-07-16', 4, 3, 2, 1, NULL, 4.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(344, '2025-07-16', 4, 3, 2, 1, NULL, 2.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(345, '2025-07-16', 5, 4, 3, 1, NULL, 2.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(346, '2025-07-16', 5, 3, 2, 1, NULL, 4.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(347, '2025-07-16', 5, 3, 2, 1, NULL, 2.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(348, '2025-07-16', 10, 4, 3, 1, NULL, 2.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(349, '2025-07-16', 10, 3, 2, 1, NULL, 4.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(350, '2025-07-16', 10, 3, 2, 1, NULL, 2.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(351, '2025-07-16', 6, 4, 3, 1, NULL, 2.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(352, '2025-07-16', 6, 3, 2, 1, NULL, 4.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(353, '2025-07-16', 6, 3, 2, 1, NULL, 2.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(354, '2025-07-16', 9, 3, 2, 1, NULL, 8.00, '2025-07-16 06:48:32', '2025-07-16 06:48:32', 5, NULL), +(355, '2025-07-16', 8, 3, 2, 1, NULL, 8.00, '2025-07-16 06:48:32', '2025-07-16 06:48:32', 5, NULL), +(356, '2025-07-16', 3, 3, 2, 1, NULL, 8.00, '2025-07-16 06:48:32', '2025-07-16 06:48:32', 5, NULL), +(357, '2025-07-16', 2, 3, 2, 1, NULL, 8.00, '2025-07-16 06:48:32', '2025-07-16 06:48:32', 5, NULL), +(358, '2025-07-16', 1, 4, 3, 1, NULL, 8.00, '2025-07-16 06:51:31', '2025-07-16 06:51:31', 3, NULL), +(359, '2025-07-16', 7, 4, 3, 1, NULL, 8.00, '2025-07-16 06:51:31', '2025-07-16 06:51:31', 3, NULL), +(360, '2025-07-17', 1, 3, 3, 1, NULL, 8.00, '2025-07-17 06:45:22', '2025-07-17 06:45:22', 3, NULL), +(361, '2025-07-17', 5, 3, 2, 1, NULL, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(362, '2025-07-17', 5, 3, 2, 2, 4, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(363, '2025-07-17', 4, 3, 2, 1, NULL, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(364, '2025-07-17', 4, 3, 2, 2, 4, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(365, '2025-07-17', 2, 3, 2, 1, NULL, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(366, '2025-07-17', 2, 3, 2, 2, 4, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(367, '2025-07-17', 10, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(368, '2025-07-17', 9, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(369, '2025-07-17', 8, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(370, '2025-07-17', 7, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(371, '2025-07-17', 6, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(372, '2025-07-17', 3, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(373, '2025-07-18', 7, 4, 3, 2, 1, 2.00, '2025-07-18 05:54:47', '2025-07-18 05:54:47', 3, NULL), +(374, '2025-07-18', 1, 4, 3, 2, 1, 2.00, '2025-07-18 05:54:48', '2025-07-18 05:54:48', 3, NULL), +(376, '2025-07-18', 5, 4, 3, 1, NULL, 2.00, '2025-07-18 05:58:33', '2025-07-18 05:58:33', 3, NULL), +(377, '2025-07-18', 5, 3, 2, 1, NULL, 6.00, '2025-07-18 05:58:33', '2025-07-18 05:58:33', 3, NULL), +(378, '2025-07-18', 7, 3, 2, 1, NULL, 6.00, '2025-07-18 05:59:42', '2025-07-18 05:59:42', 3, NULL), +(379, '2025-07-18', 1, 3, 3, 1, NULL, 6.00, '2025-07-18 06:00:15', '2025-07-18 06:00:15', 3, NULL), +(380, '2025-07-18', 10, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(381, '2025-07-18', 9, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(382, '2025-07-18', 8, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(383, '2025-07-18', 6, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(384, '2025-07-18', 4, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(385, '2025-07-18', 3, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(386, '2025-07-18', 2, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(387, '2025-07-21', 5, 4, 3, 2, 1, 4.00, '2025-07-21 06:40:08', '2025-07-21 06:40:08', 5, NULL), +(388, '2025-07-21', 5, 3, 2, 1, NULL, 4.00, '2025-07-21 06:40:08', '2025-07-21 06:40:08', 5, NULL), +(389, '2025-07-21', 4, 4, 3, 2, 1, 4.00, '2025-07-21 06:40:08', '2025-07-21 06:40:08', 5, NULL), +(390, '2025-07-21', 4, 3, 2, 1, NULL, 4.00, '2025-07-21 06:40:08', '2025-07-21 06:40:08', 5, NULL), +(391, '2025-07-21', 10, 3, 2, 1, NULL, 6.00, '2025-07-21 06:40:32', '2025-07-22 06:58:42', 5, 3), +(392, '2025-07-21', 9, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(393, '2025-07-21', 8, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(394, '2025-07-21', 7, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(395, '2025-07-21', 6, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(396, '2025-07-21', 3, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(397, '2025-07-21', 2, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(398, '2025-07-21', 1, 3, 3, 1, NULL, 8.00, '2025-07-21 06:53:37', '2025-07-21 06:53:37', 3, NULL), +(399, '2025-07-22', 10, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:47', '2025-07-22 06:45:47', 5, NULL), +(400, '2025-07-22', 9, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(401, '2025-07-22', 8, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(402, '2025-07-22', 7, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(403, '2025-07-22', 6, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(404, '2025-07-22', 4, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(405, '2025-07-22', 3, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(406, '2025-07-22', 2, 4, 3, 2, 1, 8.00, '2025-07-22 06:46:11', '2025-07-22 06:46:11', 5, NULL), +(407, '2025-07-22', 5, 3, 3, 1, NULL, 8.00, '2025-07-22 06:46:11', '2025-07-22 06:46:11', 3, NULL), +(408, '2025-07-22', 1, 3, 3, 1, NULL, 8.00, '2025-07-22 06:46:11', '2025-07-22 06:46:11', 3, NULL), +(409, '2025-07-23', 4, 3, 3, 1, NULL, 8.00, '2025-07-23 06:45:06', '2025-07-23 06:45:06', 5, NULL), +(410, '2025-07-23', 5, 3, 3, 1, NULL, 8.00, '2025-07-23 06:45:28', '2025-07-23 06:45:28', 3, NULL), +(411, '2025-07-23', 1, 3, 3, 1, NULL, 8.00, '2025-07-23 06:45:28', '2025-07-23 06:45:28', 3, NULL), +(412, '2025-07-23', 10, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(413, '2025-07-23', 9, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(414, '2025-07-23', 7, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(415, '2025-07-23', 6, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(416, '2025-07-23', 3, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(417, '2025-07-23', 2, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(418, '2025-07-24', 4, 3, 3, 1, NULL, 8.00, '2025-07-24 06:36:55', '2025-07-24 06:36:55', 5, NULL), +(419, '2025-07-24', 10, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(420, '2025-07-24', 9, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(421, '2025-07-24', 7, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(422, '2025-07-24', 6, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(423, '2025-07-24', 3, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(424, '2025-07-24', 2, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(425, '2025-07-24', 5, 3, 3, 1, NULL, 8.00, '2025-07-24 06:47:04', '2025-07-24 06:47:04', 3, NULL), +(426, '2025-07-24', 1, 3, 3, 1, NULL, 8.00, '2025-07-24 06:47:04', '2025-07-24 06:47:04', 3, NULL), +(427, '2025-07-25', 4, 3, 3, 1, NULL, 8.00, '2025-07-25 06:44:23', '2025-07-25 06:44:23', 5, NULL), +(428, '2025-07-25', 10, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(429, '2025-07-25', 9, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(430, '2025-07-25', 8, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(431, '2025-07-25', 6, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(432, '2025-07-25', 3, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(433, '2025-07-25', 2, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(434, '2025-07-25', 5, 4, 3, 1, NULL, 8.00, '2025-07-25 06:45:18', '2025-07-25 06:45:18', 3, NULL), +(435, '2025-07-25', 7, 4, 3, 1, NULL, 8.00, '2025-07-25 06:45:19', '2025-07-25 06:45:19', 3, NULL), +(436, '2025-07-25', 1, 4, 3, 1, NULL, 8.00, '2025-07-25 06:45:19', '2025-07-25 06:45:19', 3, NULL), +(437, '2025-07-28', 5, 3, 3, 1, NULL, 8.00, '2025-07-28 06:30:39', '2025-07-28 06:30:39', 3, NULL), +(438, '2025-07-28', 4, 3, 3, 1, NULL, 8.00, '2025-07-28 06:30:39', '2025-07-28 06:30:39', 3, NULL), +(439, '2025-07-28', 1, 3, 3, 1, NULL, 8.00, '2025-07-28 06:30:39', '2025-07-28 06:30:39', 3, NULL), +(440, '2025-07-28', 2, 5, 2, 1, NULL, 4.00, '2025-07-28 06:33:08', '2025-07-28 06:33:08', 5, NULL), +(441, '2025-07-28', 2, 3, 2, 1, NULL, 4.00, '2025-07-28 06:33:08', '2025-07-28 06:33:08', 5, NULL), +(442, '2025-07-28', 10, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(443, '2025-07-28', 9, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(444, '2025-07-28', 8, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(445, '2025-07-28', 7, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(446, '2025-07-28', 6, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(447, '2025-07-28', 3, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(448, '2025-07-29', 5, 3, 3, 1, NULL, 8.00, '2025-07-29 06:39:13', '2025-07-29 06:39:13', 3, NULL), +(449, '2025-07-29', 4, 3, 3, 1, NULL, 8.00, '2025-07-29 06:39:13', '2025-07-29 06:39:13', 3, NULL), +(450, '2025-07-29', 1, 3, 3, 1, NULL, 8.00, '2025-07-29 06:39:13', '2025-07-29 06:39:13', 3, NULL), +(451, '2025-07-30', 5, 3, 3, 1, NULL, 8.00, '2025-07-30 06:50:30', '2025-07-30 06:50:30', 3, NULL), +(452, '2025-07-30', 4, 3, 3, 1, NULL, 8.00, '2025-07-30 06:50:30', '2025-07-30 06:50:30', 3, NULL), +(453, '2025-07-30', 1, 3, 3, 1, NULL, 8.00, '2025-07-30 06:50:30', '2025-07-30 06:50:30', 3, NULL), +(454, '2025-07-30', 10, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(455, '2025-07-30', 9, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(456, '2025-07-30', 8, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(457, '2025-07-30', 7, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(458, '2025-07-30', 6, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(459, '2025-07-30', 3, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(460, '2025-07-30', 2, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(461, '2025-07-31', 1, 3, 3, 1, NULL, 4.00, '2025-07-31 06:42:56', '2025-07-31 06:42:56', 5, NULL), +(462, '2025-07-31', 4, 3, 3, 1, NULL, 4.00, '2025-07-31 06:43:32', '2025-07-31 06:43:32', 5, NULL), +(463, '2025-07-31', 4, 3, 2, 1, NULL, 4.00, '2025-07-31 06:43:32', '2025-07-31 06:43:32', 5, NULL), +(464, '2025-07-31', 5, 3, 3, 1, NULL, 4.00, '2025-07-31 06:43:32', '2025-07-31 06:43:32', 5, NULL), +(465, '2025-07-31', 5, 3, 2, 1, NULL, 4.00, '2025-07-31 06:43:32', '2025-07-31 06:43:32', 5, NULL), +(466, '2025-07-31', 10, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(467, '2025-07-31', 9, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(468, '2025-07-31', 8, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(469, '2025-07-31', 7, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(470, '2025-07-31', 6, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(471, '2025-07-31', 3, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(472, '2025-07-31', 2, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(473, '2025-07-11', 10, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(474, '2025-07-11', 5, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(475, '2025-07-11', 4, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(476, '2025-07-11', 9, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(477, '2025-07-11', 8, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(478, '2025-07-11', 3, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(479, '2025-07-11', 2, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(480, '2025-07-11', 7, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(481, '2025-07-11', 6, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(482, '2025-07-11', 1, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(483, '2025-08-01', 10, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(484, '2025-08-01', 9, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(485, '2025-08-01', 8, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(486, '2025-08-01', 7, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(487, '2025-08-01', 6, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(488, '2025-08-01', 3, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(489, '2025-08-01', 2, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:48', '2025-08-01 04:57:48', 5, NULL), +(490, '2025-08-01', 4, 3, 3, 1, NULL, 4.00, '2025-08-01 05:02:28', '2025-08-01 05:02:28', 3, NULL), +(491, '2025-08-01', 4, 5, 1, 1, NULL, 4.00, '2025-08-01 05:02:28', '2025-08-01 05:02:28', 3, NULL), +(492, '2025-08-01', 5, 3, 3, 1, NULL, 4.00, '2025-08-01 05:02:28', '2025-08-01 05:02:28', 3, NULL), +(493, '2025-08-01', 5, 5, 1, 1, NULL, 4.00, '2025-08-01 05:02:28', '2025-08-01 05:02:28', 3, NULL), +(494, '2025-08-07', 9, 3, 2, 2, 4, 4.00, '2025-08-07 06:42:39', '2025-08-07 06:42:39', 5, NULL), +(495, '2025-08-07', 9, 3, 2, 1, NULL, 4.00, '2025-08-07 06:42:39', '2025-08-07 06:42:39', 5, NULL), +(496, '2025-08-07', 7, 3, 2, 2, 4, 4.00, '2025-08-07 06:42:39', '2025-08-07 06:42:39', 5, NULL), +(497, '2025-08-07', 7, 3, 2, 1, NULL, 4.00, '2025-08-07 06:42:39', '2025-08-07 06:42:39', 5, NULL), +(498, '2025-08-07', 10, 5, 2, 1, NULL, 8.00, '2025-08-07 06:43:14', '2025-08-07 06:43:14', 5, NULL), +(499, '2025-08-07', 4, 5, 2, 1, NULL, 8.00, '2025-08-07 06:43:15', '2025-08-07 06:43:15', 5, NULL), +(500, '2025-08-07', 2, 5, 2, 1, NULL, 8.00, '2025-08-07 06:43:15', '2025-08-07 06:43:15', 5, NULL), +(501, '2025-08-07', 6, 3, 2, 1, NULL, 8.00, '2025-08-07 06:43:39', '2025-08-07 06:43:39', 5, NULL), +(502, '2025-08-07', 3, 3, 2, 1, NULL, 8.00, '2025-08-07 06:43:39', '2025-08-07 06:43:39', 5, NULL), +(503, '2025-08-07', 8, 3, 2, 1, NULL, 8.00, '2025-08-07 06:43:39', '2025-08-07 06:43:39', 5, NULL), +(504, '2025-08-07', 1, 3, 3, 1, NULL, 8.00, '2025-08-07 06:43:52', '2025-08-07 06:43:52', 3, NULL), +(505, '2025-08-08', 1, 3, 3, 1, NULL, 8.00, '2025-08-08 06:45:20', '2025-08-08 06:45:20', 3, NULL), +(506, '2025-08-08', 10, 5, 2, 1, NULL, 8.00, '2025-08-08 06:58:42', '2025-08-08 06:58:42', 5, NULL), +(507, '2025-08-08', 2, 5, 2, 1, NULL, 8.00, '2025-08-08 06:58:42', '2025-08-08 06:58:42', 5, NULL), +(508, '2025-08-08', 9, 3, 2, 1, NULL, 8.00, '2025-08-08 06:59:18', '2025-08-08 06:59:18', 5, NULL), +(509, '2025-08-08', 8, 3, 2, 1, NULL, 8.00, '2025-08-08 06:59:19', '2025-08-08 06:59:19', 5, NULL), +(510, '2025-08-08', 3, 3, 2, 1, NULL, 8.00, '2025-08-08 06:59:19', '2025-08-08 06:59:19', 5, NULL), +(511, '2025-08-08', 4, 3, 2, 1, NULL, 8.00, '2025-08-08 06:59:19', '2025-08-08 06:59:19', 5, NULL), +(512, '2025-08-08', 6, 3, 2, 1, NULL, 8.00, '2025-08-08 06:59:19', '2025-08-08 06:59:19', 5, NULL), +(513, '2025-08-11', 1, 3, 3, 1, NULL, 8.00, '2025-08-11 06:27:37', '2025-08-11 06:27:37', 3, NULL), +(514, '2025-08-11', 1, 3, 3, 1, NULL, 8.00, '2025-08-11 06:27:37', '2025-08-11 06:27:37', 3, NULL), +(515, '2025-08-11', 10, 5, 2, 1, NULL, 8.00, '2025-08-11 06:46:23', '2025-08-11 06:46:23', 5, NULL), +(516, '2025-08-11', 2, 5, 2, 1, NULL, 8.00, '2025-08-11 06:46:23', '2025-08-11 06:46:23', 5, NULL), +(517, '2025-08-11', 8, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:49', '2025-08-11 06:46:49', 5, NULL), +(518, '2025-08-11', 7, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:49', '2025-08-11 06:46:49', 5, NULL), +(519, '2025-08-11', 6, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:50', '2025-08-11 06:46:50', 5, NULL), +(520, '2025-08-11', 5, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:50', '2025-08-11 06:46:50', 5, NULL), +(521, '2025-08-11', 4, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:50', '2025-08-11 06:46:50', 5, NULL), +(522, '2025-08-11', 3, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:50', '2025-08-11 06:46:50', 5, NULL), +(523, '2025-08-12', 10, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(524, '2025-08-12', 9, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(525, '2025-08-12', 8, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(526, '2025-08-12', 7, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(527, '2025-08-12', 5, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(528, '2025-08-12', 4, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(529, '2025-08-12', 3, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(530, '2025-08-12', 1, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(531, '2025-08-13', 1, 3, 3, 1, NULL, 8.00, '2025-08-13 06:31:32', '2025-08-13 06:31:32', 3, NULL), +(532, '2025-08-13', 2, 3, 2, 1, NULL, 4.00, '2025-08-13 06:36:13', '2025-08-13 06:36:13', 5, NULL); +INSERT INTO `daily_work_reports` (`id`, `report_date`, `worker_id`, `project_id`, `work_type_id`, `work_status_id`, `error_type_id`, `work_hours`, `created_at`, `updated_at`, `created_by`, `updated_by`) VALUES +(533, '2025-08-13', 2, 5, 2, 1, NULL, 4.00, '2025-08-13 06:36:13', '2025-08-13 06:36:13', 5, NULL), +(534, '2025-08-13', 9, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(535, '2025-08-13', 8, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(536, '2025-08-13', 7, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(537, '2025-08-13', 6, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(538, '2025-08-13', 5, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(539, '2025-08-13', 4, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(540, '2025-08-13', 3, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(541, '2025-08-13', 10, 5, 2, 1, NULL, 8.00, '2025-08-13 06:37:19', '2025-08-13 06:37:19', 5, NULL), +(542, '2025-08-14', 1, 3, 3, 2, 1, 4.00, '2025-08-14 06:35:27', '2025-08-14 06:35:27', 3, NULL), +(543, '2025-08-14', 1, 3, 3, 1, NULL, 4.00, '2025-08-14 06:35:27', '2025-08-14 06:35:27', 3, NULL), +(544, '2025-08-14', 10, 5, 2, 1, NULL, 4.00, '2025-08-14 06:39:03', '2025-08-14 06:39:03', 5, NULL), +(545, '2025-08-14', 10, 5, 3, 1, NULL, 4.00, '2025-08-14 06:39:03', '2025-08-14 06:39:03', 5, NULL), +(546, '2025-08-14', 2, 5, 2, 1, NULL, 2.00, '2025-08-14 06:39:44', '2025-08-14 06:39:44', 5, NULL), +(547, '2025-08-14', 2, 3, 2, 1, NULL, 6.00, '2025-08-14 06:39:44', '2025-08-14 06:39:44', 5, NULL), +(548, '2025-08-14', 9, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(549, '2025-08-14', 8, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(550, '2025-08-14', 7, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(551, '2025-08-14', 6, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(552, '2025-08-14', 5, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(553, '2025-08-14', 4, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(554, '2025-08-18', 2, 3, 2, 1, NULL, 8.00, '2025-08-18 06:21:36', '2025-08-18 06:21:36', 5, NULL), +(555, '2025-08-18', 8, 3, 2, 1, NULL, 8.00, '2025-08-18 06:21:36', '2025-08-18 06:21:36', 5, NULL), +(556, '2025-08-18', 4, 3, 2, 1, NULL, 8.00, '2025-08-18 06:22:01', '2025-08-18 06:22:01', 5, NULL), +(557, '2025-08-18', 10, 5, 3, 1, NULL, 6.00, '2025-08-18 06:22:53', '2025-08-18 06:22:53', 5, NULL), +(558, '2025-08-18', 10, 3, 2, 1, NULL, 2.00, '2025-08-18 06:22:53', '2025-08-18 06:22:53', 5, NULL), +(559, '2025-08-18', 9, 3, 2, 1, NULL, 4.00, '2025-08-18 06:23:34', '2025-08-18 06:23:34', 5, NULL), +(560, '2025-08-18', 9, 3, 3, 1, NULL, 4.00, '2025-08-18 06:23:34', '2025-08-18 06:23:34', 5, NULL), +(561, '2025-08-18', 5, 3, 3, 2, 1, 4.00, '2025-08-18 06:41:24', '2025-08-18 06:41:24', 3, NULL), +(562, '2025-08-18', 1, 3, 3, 2, 1, 4.00, '2025-08-18 06:41:24', '2025-08-18 06:41:24', 3, NULL), +(563, '2025-08-18', 7, 3, 3, 2, 1, 4.00, '2025-08-18 06:41:24', '2025-08-18 06:41:24', 3, NULL), +(564, '2025-08-18', 7, 3, 3, 1, NULL, 4.00, '2025-08-18 06:43:10', '2025-08-18 06:43:10', 3, NULL), +(565, '2025-08-18', 5, 3, 3, 1, NULL, 4.00, '2025-08-18 06:43:10', '2025-08-18 06:43:10', 3, NULL), +(566, '2025-08-18', 1, 3, 3, 1, NULL, 4.00, '2025-08-18 06:43:10', '2025-08-18 06:43:10', 3, NULL), +(567, '2025-08-18', 6, 3, 3, 1, NULL, 8.00, '2025-08-18 06:43:35', '2025-08-18 06:43:35', 6, NULL), +(568, '2025-08-18', 3, 3, 3, 1, NULL, 8.00, '2025-08-18 06:43:35', '2025-08-18 06:43:35', 6, NULL), +(569, '2025-08-19', 1, 3, 3, 1, NULL, 6.00, '2025-08-19 08:02:49', '2025-08-19 08:02:49', 5, NULL), +(573, '2025-08-19', 9, 3, 3, 1, NULL, 10.00, '2025-08-19 08:03:30', '2025-08-19 08:03:30', 5, NULL), +(574, '2025-08-19', 10, 3, 2, 1, NULL, 10.00, '2025-08-19 08:04:05', '2025-08-19 08:04:05', 5, NULL), +(575, '2025-08-19', 8, 3, 2, 1, NULL, 10.00, '2025-08-19 08:04:05', '2025-08-19 08:04:05', 5, NULL), +(576, '2025-08-19', 5, 3, 2, 1, NULL, 10.00, '2025-08-19 08:04:05', '2025-08-19 08:04:05', 5, NULL), +(577, '2025-08-19', 4, 3, 2, 1, NULL, 10.00, '2025-08-19 08:04:05', '2025-08-19 08:04:05', 5, NULL), +(578, '2025-08-19', 2, 3, 2, 1, NULL, 10.00, '2025-08-19 08:04:05', '2025-08-19 08:04:05', 5, NULL), +(579, '2025-08-19', 3, 3, 3, 1, NULL, 10.00, '2025-08-19 08:36:51', '2025-08-19 08:36:51', 6, NULL), +(580, '2025-08-19', 7, 3, 3, 1, NULL, 10.00, '2025-08-19 08:36:51', '2025-08-19 08:36:51', 6, NULL), +(581, '2025-08-19', 6, 3, 3, 1, NULL, 10.00, '2025-08-19 08:36:51', '2025-08-19 08:36:51', 6, NULL), +(582, '2025-08-20', 2, 3, 2, 1, NULL, 8.00, '2025-08-20 06:19:36', '2025-08-20 06:19:36', 5, NULL), +(583, '2025-08-20', 5, 3, 1, 1, NULL, 2.00, '2025-08-20 06:21:28', '2025-08-20 06:21:28', 5, NULL), +(584, '2025-08-20', 5, 3, 2, 1, NULL, 6.00, '2025-08-20 06:21:28', '2025-08-20 06:21:28', 5, NULL), +(585, '2025-08-20', 4, 3, 1, 1, NULL, 2.00, '2025-08-20 06:21:28', '2025-08-20 06:21:28', 5, NULL), +(586, '2025-08-20', 4, 3, 2, 1, NULL, 6.00, '2025-08-20 06:21:28', '2025-08-20 06:21:28', 5, NULL), +(587, '2025-08-20', 6, 3, 3, 1, NULL, 4.00, '2025-08-20 06:43:46', '2025-08-20 06:43:46', 3, NULL), +(589, '2025-08-20', 9, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:23', '2025-08-20 06:44:23', 3, NULL), +(590, '2025-08-20', 8, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:23', '2025-08-20 06:44:23', 3, NULL), +(591, '2025-08-20', 7, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:24', '2025-08-20 06:44:24', 3, NULL), +(593, '2025-08-20', 1, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:24', '2025-08-20 06:44:24', 3, NULL), +(594, '2025-08-20', 10, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:26', '2025-08-20 06:44:26', 6, NULL), +(595, '2025-08-20', 3, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:26', '2025-08-20 06:44:26', 6, NULL), +(596, '2025-08-21', 7, 3, 3, 1, NULL, 8.00, '2025-08-21 06:30:36', '2025-08-21 06:30:36', 3, NULL), +(597, '2025-08-21', 1, 3, 3, 1, NULL, 8.00, '2025-08-21 06:30:36', '2025-08-21 06:30:36', 3, NULL), +(600, '2025-08-21', 10, 3, 3, 1, NULL, 8.00, '2025-08-21 07:51:23', '2025-08-21 07:51:23', 5, NULL), +(601, '2025-08-21', 10, 3, 3, 1, NULL, 2.00, '2025-08-21 07:51:23', '2025-08-21 07:51:23', 5, NULL), +(602, '2025-08-21', 9, 3, 3, 1, NULL, 8.00, '2025-08-21 07:51:23', '2025-08-21 07:51:23', 5, NULL), +(603, '2025-08-21', 9, 3, 3, 1, NULL, 2.00, '2025-08-21 07:51:23', '2025-08-21 07:51:23', 5, NULL), +(608, '2025-08-21', 2, 3, 2, 1, NULL, 8.00, '2025-08-21 07:54:46', '2025-08-21 07:54:46', 5, NULL), +(609, '2025-08-21', 2, 5, 2, 1, NULL, 2.00, '2025-08-21 07:54:46', '2025-08-21 07:54:46', 5, NULL), +(610, '2025-08-21', 8, 3, 3, 1, NULL, 4.00, '2025-08-21 07:55:25', '2025-08-21 07:55:25', 5, NULL), +(611, '2025-08-21', 8, 3, 2, 1, NULL, 6.00, '2025-08-21 07:55:25', '2025-08-21 07:55:25', 5, NULL), +(612, '2025-08-21', 6, 3, 3, 1, NULL, 10.00, '2025-08-21 08:24:50', '2025-08-21 08:24:50', 6, NULL), +(613, '2025-08-21', 3, 3, 3, 1, NULL, 10.00, '2025-08-21 08:24:50', '2025-08-21 08:24:50', 6, NULL), +(614, '2025-08-22', 2, 3, 2, 1, NULL, 8.00, '2025-08-22 06:21:15', '2025-08-22 06:21:15', 5, NULL), +(615, '2025-08-22', 8, 3, 2, 1, NULL, 4.00, '2025-08-22 06:23:12', '2025-08-22 06:23:12', 5, NULL), +(616, '2025-08-22', 8, 3, 3, 1, NULL, 4.00, '2025-08-22 06:23:12', '2025-08-22 06:23:12', 5, NULL), +(617, '2025-08-22', 5, 3, 3, 1, NULL, 8.00, '2025-08-22 06:23:55', '2025-08-22 06:23:55', 5, NULL), +(618, '2025-08-22', 6, 3, 2, 1, NULL, 4.00, '2025-08-22 06:27:43', '2025-08-22 06:27:43', 3, NULL), +(619, '2025-08-22', 10, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(620, '2025-08-22', 9, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(621, '2025-08-22', 7, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(622, '2025-08-22', 4, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(623, '2025-08-22', 3, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(624, '2025-08-22', 1, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(625, '2025-08-23', 4, 3, 2, 1, NULL, 2.00, '2025-08-23 04:57:02', '2025-08-23 04:57:02', 5, NULL), +(626, '2025-08-23', 4, 3, 3, 1, NULL, 6.00, '2025-08-23 04:57:02', '2025-08-23 04:57:02', 5, NULL), +(627, '2025-08-23', 2, 3, 2, 1, NULL, 8.00, '2025-08-23 04:57:25', '2025-08-23 04:57:25', 5, NULL), +(628, '2025-08-23', 10, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(629, '2025-08-23', 9, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(630, '2025-08-23', 8, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(631, '2025-08-23', 6, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(632, '2025-08-23', 5, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(633, '2025-08-23', 3, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(634, '2025-08-23', 1, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(635, '2025-08-25', 10, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(636, '2025-08-25', 9, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(637, '2025-08-25', 8, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(638, '2025-08-25', 7, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(640, '2025-08-25', 5, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(641, '2025-08-25', 4, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(643, '2025-08-25', 2, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(644, '2025-08-25', 1, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(645, '2025-08-25', 6, 3, 3, 1, NULL, 8.00, '2025-08-25 06:49:16', '2025-08-25 06:49:16', 6, NULL), +(646, '2025-08-25', 3, 3, 3, 1, NULL, 8.00, '2025-08-25 06:49:17', '2025-08-25 06:49:17', 6, NULL), +(647, '2025-08-26', 4, 8, 3, 1, NULL, 8.00, '2025-08-26 07:28:03', '2025-08-26 07:28:03', 5, NULL), +(648, '2025-08-26', 4, 3, 3, 1, NULL, 2.00, '2025-08-26 07:28:03', '2025-08-26 07:28:03', 5, NULL), +(649, '2025-08-26', 2, 8, 3, 1, NULL, 10.00, '2025-08-26 07:28:35', '2025-08-26 07:28:35', 5, NULL), +(651, '2025-08-26', 9, 3, 3, 1, NULL, 10.00, '2025-08-26 07:29:02', '2025-08-26 07:29:02', 5, NULL), +(652, '2025-08-26', 8, 3, 3, 1, NULL, 10.00, '2025-08-26 07:29:02', '2025-08-26 07:29:02', 5, NULL), +(653, '2025-08-26', 7, 3, 3, 1, NULL, 10.00, '2025-08-26 07:29:02', '2025-08-26 07:29:02', 5, NULL), +(655, '2025-08-26', 5, 3, 3, 1, NULL, 10.00, '2025-08-26 07:29:02', '2025-08-26 07:29:02', 5, NULL), +(657, '2025-08-26', 1, 3, 3, 1, NULL, 10.00, '2025-08-26 07:29:03', '2025-08-26 07:29:03', 5, NULL), +(658, '2025-08-26', 6, 3, 3, 1, NULL, 10.00, '2025-08-26 08:22:12', '2025-08-26 08:22:12', 6, NULL), +(659, '2025-08-26', 10, 3, 3, 1, NULL, 10.00, '2025-08-26 08:22:12', '2025-08-26 08:22:12', 6, NULL), +(660, '2025-08-26', 3, 3, 3, 1, NULL, 10.00, '2025-08-26 08:22:12', '2025-08-26 08:22:12', 6, NULL), +(661, '2025-08-27', 10, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(662, '2025-08-27', 9, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(663, '2025-08-27', 7, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(664, '2025-08-27', 6, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(665, '2025-08-27', 5, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(666, '2025-08-27', 4, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(667, '2025-08-27', 3, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(668, '2025-08-27', 1, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:48', '2025-08-27 06:44:48', 3, NULL), +(669, '2025-08-27', 2, 3, 3, 2, 1, 2.00, '2025-08-27 06:45:32', '2025-08-27 06:45:32', 5, NULL), +(670, '2025-08-27', 2, 8, 2, 1, NULL, 6.00, '2025-08-27 06:45:32', '2025-08-27 06:45:32', 5, NULL), +(671, '2025-08-27', 8, 3, 3, 2, 1, 2.00, '2025-08-27 06:45:32', '2025-08-27 06:45:32', 5, NULL), +(672, '2025-08-27', 8, 8, 2, 1, NULL, 6.00, '2025-08-27 06:45:32', '2025-08-27 06:45:32', 5, NULL), +(673, '2025-08-28', 10, 3, 3, 1, NULL, 6.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(674, '2025-08-28', 10, 3, 3, 2, 1, 4.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(675, '2025-08-28', 5, 3, 3, 1, NULL, 6.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(676, '2025-08-28', 5, 3, 3, 2, 1, 4.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(677, '2025-08-28', 6, 3, 3, 1, NULL, 6.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(678, '2025-08-28', 6, 3, 3, 2, 1, 4.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(679, '2025-08-28', 3, 3, 3, 1, NULL, 6.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(680, '2025-08-28', 3, 3, 3, 2, 1, 4.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(681, '2025-08-28', 4, 3, 3, 1, NULL, 4.00, '2025-08-28 08:37:46', '2025-08-28 08:37:46', 5, NULL), +(682, '2025-08-28', 4, 5, 3, 1, NULL, 4.00, '2025-08-28 08:37:46', '2025-08-28 08:37:46', 5, NULL), +(683, '2025-08-28', 8, 8, 2, 1, NULL, 4.00, '2025-08-28 08:38:15', '2025-08-28 08:38:15', 5, NULL), +(684, '2025-08-28', 8, 5, 3, 1, NULL, 4.00, '2025-08-28 08:38:15', '2025-08-28 08:38:15', 5, NULL), +(685, '2025-08-28', 2, 3, 3, 2, 1, 2.00, '2025-08-28 08:38:50', '2025-08-28 08:38:50', 5, NULL), +(686, '2025-08-28', 2, 5, 3, 1, NULL, 6.00, '2025-08-28 08:38:50', '2025-08-28 08:38:50', 5, NULL), +(687, '2025-08-28', 1, 3, 3, 2, 1, 8.00, '2025-08-28 08:39:24', '2025-08-28 08:39:24', 5, NULL), +(689, '2025-08-28', 9, 3, 3, 2, 4, 8.00, '2025-08-28 08:40:00', '2025-08-28 08:40:00', 5, NULL), +(690, '2025-08-28', 7, 3, 3, 2, 4, 8.00, '2025-08-28 08:40:00', '2025-08-28 08:40:00', 5, NULL), +(694, '2025-08-28', 4, 5, 3, 1, NULL, 2.00, '2025-08-28 08:44:56', '2025-08-28 08:44:56', 5, NULL), +(695, '2025-08-28', 8, 5, 3, 1, NULL, 2.00, '2025-08-28 08:44:56', '2025-08-28 08:44:56', 5, NULL), +(696, '2025-08-28', 2, 5, 3, 1, NULL, 2.00, '2025-08-28 08:44:56', '2025-08-28 08:44:56', 5, NULL), +(698, '2025-08-28', 9, 3, 3, 1, NULL, 2.00, '2025-08-28 08:45:19', '2025-08-28 08:45:19', 5, NULL), +(699, '2025-08-28', 7, 3, 3, 1, NULL, 2.00, '2025-08-28 08:45:19', '2025-08-28 08:45:19', 5, NULL), +(703, '2025-08-29', 10, 3, 3, 2, 5, 8.00, '2025-08-29 06:47:02', '2025-08-29 06:47:02', 3, NULL), +(704, '2025-08-29', 9, 3, 3, 2, 5, 8.00, '2025-08-29 06:47:02', '2025-08-29 06:47:02', 3, NULL), +(706, '2025-08-29', 7, 3, 3, 2, 5, 8.00, '2025-08-29 06:47:02', '2025-08-29 06:47:02', 3, NULL), +(710, '2025-08-29', 1, 3, 3, 2, 5, 8.00, '2025-08-29 06:47:02', '2025-08-29 06:47:02', 3, NULL), +(713, '2025-08-29', 5, 3, 3, 1, NULL, 6.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(714, '2025-08-29', 5, 3, 3, 2, 1, 2.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(715, '2025-08-29', 3, 3, 3, 1, NULL, 6.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(716, '2025-08-29', 3, 3, 3, 2, 1, 2.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(717, '2025-08-29', 6, 3, 3, 1, NULL, 6.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(718, '2025-08-29', 6, 3, 3, 2, 1, 2.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(719, '2025-08-29', 8, 5, 3, 1, NULL, 8.00, '2025-08-29 21:55:56', '2025-08-29 21:55:56', 5, NULL), +(720, '2025-08-29', 4, 5, 3, 1, NULL, 8.00, '2025-08-29 21:55:56', '2025-08-29 21:55:56', 5, NULL), +(721, '2025-08-29', 2, 5, 3, 1, NULL, 8.00, '2025-08-29 21:55:56', '2025-08-29 21:55:56', 5, NULL), +(722, '2025-08-30', 2, 5, 3, 1, NULL, 8.00, '2025-08-30 05:12:03', '2025-08-30 05:12:03', 5, NULL), +(723, '2025-08-30', 8, 5, 3, 1, NULL, 8.00, '2025-08-30 05:12:03', '2025-08-30 05:12:03', 5, NULL), +(724, '2025-08-30', 4, 5, 3, 1, NULL, 8.00, '2025-08-30 05:12:03', '2025-08-30 05:12:03', 5, NULL), +(725, '2025-08-30', 10, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(726, '2025-08-30', 9, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(727, '2025-08-30', 7, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(728, '2025-08-30', 6, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(729, '2025-08-30', 5, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(730, '2025-08-30', 3, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(731, '2025-08-30', 1, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(732, '2025-09-01', 7, 3, 3, 1, NULL, 8.00, '2025-09-01 06:18:28', '2025-09-01 06:18:28', 3, NULL), +(733, '2025-09-01', 9, 3, 3, 1, NULL, 8.00, '2025-09-01 06:18:28', '2025-09-01 06:18:28', 3, NULL), +(734, '2025-09-01', 10, 3, 3, 2, 5, 4.00, '2025-09-01 06:19:11', '2025-09-01 06:19:11', 3, NULL), +(735, '2025-09-01', 3, 3, 3, 2, 5, 4.00, '2025-09-01 06:19:11', '2025-09-01 06:19:11', 3, NULL), +(736, '2025-09-01', 1, 3, 3, 2, 5, 4.00, '2025-09-01 06:19:11', '2025-09-01 06:19:11', 3, NULL), +(737, '2025-09-01', 10, 3, 3, 1, NULL, 4.00, '2025-09-01 06:19:35', '2025-09-01 06:19:35', 3, NULL), +(738, '2025-09-01', 3, 3, 3, 1, NULL, 4.00, '2025-09-01 06:19:35', '2025-09-01 06:19:35', 3, NULL), +(739, '2025-09-01', 1, 3, 3, 1, NULL, 4.00, '2025-09-01 06:19:35', '2025-09-01 06:19:35', 3, NULL), +(740, '2025-09-01', 5, 3, 3, 2, 1, 8.00, '2025-09-01 06:20:03', '2025-09-01 06:20:03', 3, NULL), +(741, '2025-08-21', 4, 3, 3, 1, NULL, 10.00, '2025-09-01 23:18:03', '2025-09-01 23:18:03', 3, NULL), +(742, '2025-08-21', 5, 3, 3, 1, NULL, 10.00, '2025-09-01 23:18:03', '2025-09-01 23:18:03', 3, NULL), +(745, '2025-09-02', 10, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(746, '2025-09-02', 9, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(747, '2025-09-02', 6, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(748, '2025-09-02', 5, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(749, '2025-09-02', 3, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(750, '2025-09-02', 1, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(751, '2025-09-02', 10, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(752, '2025-09-02', 9, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(753, '2025-09-02', 6, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(754, '2025-09-02', 5, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(755, '2025-09-02', 3, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(756, '2025-09-02', 1, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(757, '2025-09-02', 8, 3, 3, 1, NULL, 10.00, '2025-09-02 07:37:19', '2025-09-02 07:37:19', 3, NULL), +(758, '2025-09-02', 7, 3, 3, 1, NULL, 10.00, '2025-09-02 07:37:19', '2025-09-02 07:37:19', 3, NULL), +(759, '2025-09-02', 2, 5, 3, 1, NULL, 8.00, '2025-09-02 08:16:14', '2025-09-02 08:16:14', 5, NULL), +(760, '2025-09-02', 2, 5, 3, 1, NULL, 2.00, '2025-09-02 08:16:14', '2025-09-02 08:16:14', 5, NULL), +(761, '2025-09-02', 4, 5, 3, 1, NULL, 8.00, '2025-09-02 08:16:14', '2025-09-02 08:16:14', 5, NULL), +(762, '2025-09-02', 4, 5, 3, 1, NULL, 2.00, '2025-09-02 08:16:14', '2025-09-02 08:16:14', 5, NULL), +(763, '2025-09-03', 10, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:47', '2025-09-03 06:34:47', 3, NULL), +(764, '2025-09-03', 9, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:47', '2025-09-03 06:34:47', 3, NULL), +(765, '2025-09-03', 8, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(766, '2025-09-03', 7, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(767, '2025-09-03', 6, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(768, '2025-09-03', 5, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(769, '2025-09-03', 3, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(770, '2025-09-03', 1, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(771, '2025-09-03', 2, 5, 3, 1, NULL, 8.00, '2025-09-03 06:44:18', '2025-09-03 06:44:18', 5, NULL), +(772, '2025-09-04', 10, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:32', '2025-09-04 06:41:32', 6, NULL), +(773, '2025-09-04', 5, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:32', '2025-09-04 06:41:32', 6, NULL), +(774, '2025-09-04', 9, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:32', '2025-09-04 06:41:32', 6, NULL), +(775, '2025-09-04', 8, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:32', '2025-09-04 06:41:32', 6, NULL), +(776, '2025-09-04', 3, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:33', '2025-09-04 06:41:33', 6, NULL), +(777, '2025-09-04', 7, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:33', '2025-09-04 06:41:33', 6, NULL), +(778, '2025-09-04', 1, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:33', '2025-09-04 06:41:33', 6, NULL), +(779, '2025-09-04', 6, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:33', '2025-09-04 06:41:33', 6, NULL), +(780, '2025-09-04', 2, 5, 3, 1, NULL, 8.00, '2025-09-04 06:48:34', '2025-09-04 06:48:34', 5, NULL), +(781, '2025-09-04', 4, 5, 3, 1, NULL, 8.00, '2025-09-04 06:48:34', '2025-09-04 06:48:34', 5, NULL), +(782, '2025-09-05', 10, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:30', '2025-09-05 06:39:30', 3, NULL), +(783, '2025-09-05', 9, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:30', '2025-09-05 06:39:30', 3, NULL), +(784, '2025-09-05', 7, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:30', '2025-09-05 06:39:30', 3, NULL), +(785, '2025-09-05', 6, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:31', '2025-09-05 06:39:31', 3, NULL), +(786, '2025-09-05', 5, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:31', '2025-09-05 06:39:31', 3, NULL), +(787, '2025-09-05', 3, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:31', '2025-09-05 06:39:31', 3, NULL), +(788, '2025-09-05', 1, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:31', '2025-09-05 06:39:31', 3, NULL), +(789, '2025-09-05', 2, 5, 3, 1, NULL, 8.00, '2025-09-05 22:09:55', '2025-09-05 22:09:55', 5, NULL), +(790, '2025-09-05', 8, 5, 3, 1, NULL, 8.00, '2025-09-05 22:09:55', '2025-09-05 22:09:55', 5, NULL), +(791, '2025-09-05', 4, 5, 3, 1, NULL, 8.00, '2025-09-05 22:09:55', '2025-09-05 22:09:55', 5, NULL), +(792, '2025-09-06', 8, 10, 3, 1, NULL, 8.00, '2025-09-06 04:21:10', '2025-09-06 04:21:10', 5, NULL), +(793, '2025-09-06', 4, 10, 3, 1, NULL, 8.00, '2025-09-06 04:21:10', '2025-09-06 04:21:10', 5, NULL), +(794, '2025-09-06', 2, 10, 3, 1, NULL, 8.00, '2025-09-06 04:21:10', '2025-09-06 04:21:10', 5, NULL), +(795, '2025-09-06', 10, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:18', '2025-09-06 05:28:18', 3, NULL), +(796, '2025-09-06', 9, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:18', '2025-09-06 05:28:18', 3, NULL), +(797, '2025-09-06', 7, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:18', '2025-09-06 05:28:18', 3, NULL), +(798, '2025-09-06', 6, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:19', '2025-09-06 05:28:19', 3, NULL), +(799, '2025-09-06', 5, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:19', '2025-09-06 05:28:19', 3, NULL), +(800, '2025-09-06', 3, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:19', '2025-09-06 05:28:19', 3, NULL), +(801, '2025-09-06', 1, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:19', '2025-09-06 05:28:19', 3, NULL), +(802, '2025-09-08', 10, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(803, '2025-09-08', 9, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(804, '2025-09-08', 7, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(805, '2025-09-08', 6, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(806, '2025-09-08', 5, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(807, '2025-09-08', 3, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(808, '2025-09-08', 1, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(809, '2025-09-08', 8, 5, 3, 1, NULL, 8.00, '2025-09-08 06:47:37', '2025-09-08 06:47:37', 5, NULL), +(810, '2025-09-08', 4, 5, 3, 1, NULL, 8.00, '2025-09-08 06:47:37', '2025-09-08 06:47:37', 5, NULL), +(811, '2025-09-08', 2, 5, 3, 1, NULL, 8.00, '2025-09-08 06:47:37', '2025-09-08 06:47:37', 5, NULL), +(812, '2025-09-09', 10, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(813, '2025-09-09', 9, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(814, '2025-09-09', 7, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(815, '2025-09-09', 6, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(816, '2025-09-09', 5, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(817, '2025-09-09', 3, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(818, '2025-09-09', 1, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(819, '2025-09-09', 8, 5, 3, 1, NULL, 8.00, '2025-09-09 06:44:29', '2025-09-09 06:44:29', 5, NULL), +(820, '2025-09-09', 4, 5, 3, 1, NULL, 8.00, '2025-09-09 06:44:29', '2025-09-09 06:44:29', 5, NULL), +(821, '2025-09-09', 2, 5, 3, 1, NULL, 8.00, '2025-09-09 06:44:29', '2025-09-09 06:44:29', 5, NULL), +(822, '2025-09-10', 10, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(823, '2025-09-10', 9, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(824, '2025-09-10', 7, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(825, '2025-09-10', 6, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(826, '2025-09-10', 5, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(827, '2025-09-10', 3, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(828, '2025-09-10', 1, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(829, '2025-09-10', 8, 5, 3, 1, NULL, 8.00, '2025-09-10 06:48:43', '2025-09-10 06:48:43', 5, NULL), +(830, '2025-09-10', 4, 5, 3, 1, NULL, 8.00, '2025-09-10 06:48:43', '2025-09-10 06:48:43', 5, NULL), +(831, '2025-09-10', 2, 5, 3, 1, NULL, 8.00, '2025-09-10 06:48:43', '2025-09-10 06:48:43', 5, NULL), +(832, '2025-09-11', 2, 5, 3, 1, NULL, 2.00, '2025-09-11 06:37:11', '2025-09-11 06:37:11', 5, NULL), +(833, '2025-09-11', 2, 8, 3, 1, NULL, 6.00, '2025-09-11 06:37:11', '2025-09-11 06:37:11', 5, NULL), +(834, '2025-09-11', 4, 5, 3, 1, NULL, 2.00, '2025-09-11 06:38:24', '2025-09-11 06:38:24', 5, NULL), +(835, '2025-09-11', 4, 8, 3, 1, NULL, 2.00, '2025-09-11 06:38:24', '2025-09-11 06:38:24', 5, NULL), +(836, '2025-09-11', 4, 3, 3, 1, NULL, 4.00, '2025-09-11 06:38:24', '2025-09-11 06:38:24', 5, NULL), +(838, '2025-09-11', 1, 3, 1, 1, NULL, 4.00, '2025-09-11 06:40:48', '2025-09-11 06:40:48', 5, NULL), +(840, '2025-09-11', 5, 3, 2, 1, NULL, 8.00, '2025-09-11 06:41:47', '2025-09-11 06:41:47', 6, NULL), +(841, '2025-09-11', 8, 3, 2, 1, NULL, 8.00, '2025-09-11 06:41:47', '2025-09-11 06:41:47', 6, NULL), +(842, '2025-09-11', 3, 3, 2, 1, NULL, 8.00, '2025-09-11 06:41:47', '2025-09-11 06:41:47', 6, NULL), +(843, '2025-09-11', 7, 3, 2, 1, NULL, 8.00, '2025-09-11 06:41:47', '2025-09-11 06:41:47', 6, NULL), +(844, '2025-09-11', 6, 3, 2, 1, NULL, 8.00, '2025-09-11 06:41:47', '2025-09-11 06:41:47', 6, NULL), +(845, '2025-09-11', 10, 3, 2, 1, NULL, 4.00, '2025-09-11 06:41:51', '2025-09-11 06:41:51', 5, NULL), +(846, '2025-09-11', 10, 3, 3, 1, NULL, 4.00, '2025-09-11 06:41:51', '2025-09-11 06:41:51', 5, NULL), +(847, '2025-09-11', 9, 3, 2, 1, NULL, 4.00, '2025-09-11 06:41:51', '2025-09-11 06:41:51', 5, NULL), +(848, '2025-09-11', 9, 3, 3, 1, NULL, 4.00, '2025-09-11 06:41:51', '2025-09-11 06:41:51', 5, NULL), +(851, '2025-09-12', 10, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(852, '2025-09-12', 9, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(853, '2025-09-12', 8, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(854, '2025-09-12', 6, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(855, '2025-09-12', 5, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(856, '2025-09-12', 4, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(857, '2025-09-12', 3, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(858, '2025-09-12', 2, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(859, '2025-09-12', 1, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(860, '2025-09-12', 7, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(861, '2025-09-13', 10, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(862, '2025-09-13', 8, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(863, '2025-09-13', 7, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(864, '2025-09-13', 6, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(865, '2025-09-13', 5, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(866, '2025-09-13', 4, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(867, '2025-09-13', 3, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(868, '2025-09-13', 2, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(869, '2025-09-13', 1, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(870, '2025-09-14', 9, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:40', '2025-09-14 04:47:40', 3, NULL), +(871, '2025-09-14', 8, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:40', '2025-09-14 04:47:40', 3, NULL), +(872, '2025-09-14', 7, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:40', '2025-09-14 04:47:40', 3, NULL), +(873, '2025-09-14', 6, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:40', '2025-09-14 04:47:40', 3, NULL), +(874, '2025-09-14', 5, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:41', '2025-09-14 04:47:41', 3, NULL), +(875, '2025-09-14', 4, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:41', '2025-09-14 04:47:41', 3, NULL), +(876, '2025-09-14', 3, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:41', '2025-09-14 04:47:41', 3, NULL), +(877, '2025-09-14', 2, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:41', '2025-09-14 04:47:41', 3, NULL), +(878, '2025-09-14', 1, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:41', '2025-09-14 04:47:41', 3, NULL), +(879, '2025-09-15', 5, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:00', '2025-09-15 06:50:00', 3, NULL), +(880, '2025-09-15', 10, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:00', '2025-09-15 06:50:00', 3, NULL), +(881, '2025-09-15', 9, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:00', '2025-09-15 06:50:00', 3, NULL), +(882, '2025-09-15', 8, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:00', '2025-09-15 06:50:00', 3, NULL), +(883, '2025-09-15', 7, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(884, '2025-09-15', 6, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(885, '2025-09-15', 4, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(886, '2025-09-15', 3, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(887, '2025-09-15', 2, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(888, '2025-09-15', 1, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(889, '2025-09-16', 2, 8, 3, 1, NULL, 8.00, '2025-09-16 06:51:19', '2025-09-16 06:51:19', 5, NULL), +(890, '2025-09-16', 4, 8, 3, 1, NULL, 8.00, '2025-09-16 06:51:19', '2025-09-16 06:51:19', 5, NULL), +(891, '2025-09-16', 8, 8, 2, 1, NULL, 2.00, '2025-09-16 06:52:12', '2025-09-16 06:52:12', 5, NULL), +(892, '2025-09-16', 8, 3, 2, 1, NULL, 6.00, '2025-09-16 06:52:12', '2025-09-16 06:52:12', 5, NULL), +(893, '2025-09-17', 4, 8, 3, 1, NULL, 8.00, '2025-09-17 06:43:08', '2025-09-17 06:43:08', 5, NULL), +(894, '2025-09-17', 2, 8, 3, 1, NULL, 8.00, '2025-09-17 06:43:08', '2025-09-17 06:43:08', 5, NULL), +(895, '2025-09-17', 10, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(896, '2025-09-17', 9, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(897, '2025-09-17', 8, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(898, '2025-09-17', 7, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(899, '2025-09-17', 6, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(900, '2025-09-17', 5, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(901, '2025-09-17', 3, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(902, '2025-09-17', 1, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(903, '2025-09-18', 7, 3, 3, 1, NULL, 8.00, '2025-09-18 06:43:40', '2025-09-18 06:43:40', 3, NULL), +(904, '2025-09-18', 1, 3, 3, 1, NULL, 8.00, '2025-09-18 06:43:40', '2025-09-18 06:43:40', 3, NULL), +(905, '2025-09-18', 10, 3, 2, 1, NULL, 8.00, '2025-09-18 06:44:42', '2025-09-18 06:44:42', 3, NULL), +(906, '2025-09-18', 9, 3, 2, 1, NULL, 8.00, '2025-09-18 06:44:42', '2025-09-18 06:44:42', 3, NULL), +(907, '2025-09-18', 8, 3, 2, 1, NULL, 8.00, '2025-09-18 06:44:42', '2025-09-18 06:44:42', 3, NULL), +(908, '2025-09-18', 6, 3, 2, 1, NULL, 8.00, '2025-09-18 06:44:42', '2025-09-18 06:44:42', 3, NULL), +(909, '2025-09-18', 3, 3, 2, 1, NULL, 8.00, '2025-09-18 06:44:42', '2025-09-18 06:44:42', 3, NULL), +(910, '2025-09-18', 5, 3, 2, 1, NULL, 6.00, '2025-09-18 06:46:39', '2025-09-18 06:46:39', 3, NULL), +(911, '2025-09-18', 2, 8, 3, 1, NULL, 8.00, '2025-09-18 06:54:48', '2025-09-18 06:54:48', 5, NULL), +(912, '2025-09-18', 4, 8, 3, 1, NULL, 8.00, '2025-09-18 06:54:48', '2025-09-18 06:54:48', 5, NULL), +(913, '2025-09-19', 4, 8, 3, 1, NULL, 8.00, '2025-09-19 06:51:40', '2025-09-19 06:51:40', 5, NULL), +(914, '2025-09-19', 2, 8, 3, 1, NULL, 8.00, '2025-09-19 06:51:40', '2025-09-19 06:51:40', 5, NULL), +(915, '2025-09-19', 10, 3, 2, 1, NULL, 8.00, '2025-09-19 06:52:05', '2025-09-19 06:52:05', 5, NULL), +(916, '2025-09-19', 8, 3, 2, 1, NULL, 8.00, '2025-09-19 06:52:05', '2025-09-19 06:52:05', 5, NULL), +(917, '2025-09-19', 7, 3, 2, 1, NULL, 8.00, '2025-09-19 06:52:05', '2025-09-19 06:52:05', 5, NULL), +(918, '2025-09-19', 6, 3, 2, 1, NULL, 8.00, '2025-09-19 06:52:05', '2025-09-19 06:52:05', 5, NULL), +(919, '2025-09-19', 5, 3, 2, 1, NULL, 8.00, '2025-09-19 06:52:05', '2025-09-19 06:52:05', 5, NULL), +(920, '2025-09-19', 3, 3, 2, 1, NULL, 4.00, '2025-09-19 06:52:23', '2025-09-19 06:52:23', 5, NULL), +(921, '2025-09-20', 4, 8, 3, 1, NULL, 8.00, '2025-09-20 05:30:19', '2025-09-20 05:30:19', 5, NULL), +(922, '2025-09-20', 2, 8, 3, 1, NULL, 8.00, '2025-09-20 05:30:19', '2025-09-20 05:30:19', 5, NULL), +(923, '2025-09-22', 10, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(924, '2025-09-22', 9, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(925, '2025-09-22', 8, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(926, '2025-09-22', 7, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(927, '2025-09-22', 5, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(928, '2025-09-22', 1, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(929, '2025-09-22', 4, 8, 3, 1, NULL, 8.00, '2025-09-22 06:50:29', '2025-09-22 06:50:29', 5, NULL), +(930, '2025-09-22', 2, 8, 3, 1, NULL, 8.00, '2025-09-22 06:50:29', '2025-09-22 06:50:29', 5, NULL), +(931, '2025-09-23', 4, 8, 3, 1, NULL, 8.00, '2025-09-23 05:46:40', '2025-09-23 05:46:40', 5, NULL), +(932, '2025-09-23', 2, 8, 3, 1, NULL, 8.00, '2025-09-23 05:46:40', '2025-09-23 05:46:40', 5, NULL), +(933, '2025-09-24', 4, 8, 3, 1, NULL, 8.00, '2025-09-25 01:14:58', '2025-09-25 01:14:58', 5, NULL), +(934, '2025-09-24', 2, 8, 3, 1, NULL, 8.00, '2025-09-25 01:14:58', '2025-09-25 01:14:58', 5, NULL), +(935, '2025-09-29', 7, 14, 1, 1, NULL, 8.00, '2025-09-29 06:36:07', '2025-09-29 06:36:07', 3, NULL), +(936, '2025-09-29', 1, 14, 1, 1, NULL, 8.00, '2025-09-29 06:36:07', '2025-09-29 06:36:07', 3, NULL), +(937, '2025-09-29', 10, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(938, '2025-09-29', 8, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(939, '2025-09-29', 6, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(940, '2025-09-29', 9, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(941, '2025-09-29', 5, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(942, '2025-09-29', 4, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(943, '2025-09-29', 3, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(944, '2025-09-29', 2, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(945, '2025-09-30', 10, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(946, '2025-09-30', 9, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(947, '2025-09-30', 8, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(948, '2025-09-30', 6, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(949, '2025-09-30', 5, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(950, '2025-09-30', 4, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(951, '2025-09-30', 3, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:27', '2025-09-30 06:52:27', 3, NULL), +(953, '2025-09-30', 1, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:27', '2025-09-30 06:52:27', 3, NULL), +(954, '2025-09-30', 2, 8, 3, 1, NULL, 8.00, '2025-09-30 06:56:55', '2025-09-30 06:56:55', 5, NULL), +(955, '2025-10-02', 5, 3, 2, 1, NULL, 6.00, '2025-10-02 05:25:58', '2025-10-02 05:25:58', 3, NULL), +(956, '2025-10-02', 8, 3, 2, 1, NULL, 6.00, '2025-10-02 05:25:59', '2025-10-02 05:25:59', 3, NULL), +(957, '2025-10-02', 10, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:32', '2025-10-02 06:22:32', 3, NULL), +(958, '2025-10-02', 9, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:32', '2025-10-02 06:22:32', 3, NULL), +(959, '2025-10-02', 7, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:32', '2025-10-02 06:22:32', 3, NULL), +(960, '2025-10-02', 6, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:32', '2025-10-02 06:22:32', 3, NULL), +(961, '2025-10-02', 4, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:33', '2025-10-02 06:22:33', 3, NULL), +(962, '2025-10-02', 2, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:33', '2025-10-02 06:22:33', 3, NULL), +(963, '2025-10-02', 1, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:33', '2025-10-02 06:22:33', 3, NULL), +(964, '2025-09-01', 8, 5, 3, 1, NULL, 8.00, '2025-10-10 23:35:07', '2025-10-10 23:35:07', 3, NULL), +(965, '2025-09-01', 4, 5, 3, 1, NULL, 8.00, '2025-10-10 23:35:07', '2025-10-10 23:35:07', 3, NULL), +(966, '2025-09-01', 2, 5, 3, 1, NULL, 8.00, '2025-10-10 23:35:07', '2025-10-10 23:35:07', 3, NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `EquipmentList` +-- + +CREATE TABLE `EquipmentList` ( + `equipment_id` int(11) NOT NULL, + `factory_id` int(11) DEFAULT NULL, + `equipment_name` varchar(255) NOT NULL, + `model` varchar(100) DEFAULT NULL, + `status` text DEFAULT 'operational', + `purchase_date` date DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `error_types` +-- + +CREATE TABLE `error_types` ( + `id` int(11) NOT NULL, + `name` varchar(100) NOT NULL COMMENT '에러 유형명', + `description` text DEFAULT NULL COMMENT '에러 설명', + `severity` enum('low','medium','high','critical') DEFAULT 'medium' COMMENT '심각도', + `solution_guide` text DEFAULT NULL COMMENT '해결 가이드', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `error_types` +-- + +INSERT INTO `error_types` (`id`, `name`, `description`, `severity`, `solution_guide`, `created_at`, `updated_at`) VALUES +(1, '설계미스', '설계미스', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:03'), +(2, '외주작업 불량', '입고 자재 불량', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:05'), +(3, '입고지연', '자재 미입고', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:11'), +(4, '작업불량', '작업자 실수', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:13'), +(5, '설비고장', '장비없음', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:16'), +(6, '검사불량', '검사불량', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-24 04:36:18'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `FactoryInfo` +-- + +CREATE TABLE `FactoryInfo` ( + `factory_id` int(11) NOT NULL, + `factory_name` varchar(255) NOT NULL, + `address` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `map_image_url` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `FactoryInfo` +-- + +INSERT INTO `FactoryInfo` (`factory_id`, `factory_name`, `address`, `description`, `map_image_url`, `created_at`, `updated_at`) VALUES +(3, '제1공장 휴게공간 및 작업자 사물함', '현대기아로 771-9', '개인 보관함, 컨테이너(휴게공간), 화장실, 흡연장', '/uploads/map_image-1746593523450.png', '2025-05-07 04:52:03', '2025-05-07 04:52:03'), +(4, '제 1공장 공구 및 용접봉 보관 구역', '현대기아로 771-9', '소모품, 공구류, 용접봉 보관 구역', '/uploads/map_image-1746593674259.png', '2025-05-07 04:53:59', '2025-05-07 04:53:59'), +(5, 'ee', 'ee', 'ee', NULL, '2025-06-03 22:13:23', '2025-06-03 22:13:23'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `IssueTypes` +-- + +CREATE TABLE `IssueTypes` ( + `issue_type_id` int(11) NOT NULL, + `category` varchar(100) NOT NULL, + `subcategory` varchar(100) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `IssueTypes` +-- + +INSERT INTO `IssueTypes` (`issue_type_id`, `category`, `subcategory`) VALUES +(1, '구매팀', '자재입고지연'), +(2, '구매팀', '자재전달 미흡'), +(3, '품질', '검사 내용 전달 미흡'), +(4, '품질', '검사오류'), +(5, '설계', '설계미스(치수)'), +(6, '설계', '설계미스(작업불가)'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `login_logs` +-- + +CREATE TABLE `login_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `login_time` datetime DEFAULT current_timestamp(), + `logout_time` datetime DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `login_status` enum('success','failed','locked') DEFAULT 'success', + `failure_reason` varchar(100) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `login_logs` +-- + +INSERT INTO `login_logs` (`log_id`, `user_id`, `login_time`, `logout_time`, `ip_address`, `user_agent`, `login_status`, `failure_reason`) VALUES +(1, 3, '2025-06-15 05:58:39', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(3, 4, '2025-06-15 06:04:06', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(4, 3, '2025-06-15 06:24:53', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(5, 3, '2025-06-15 06:24:55', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(6, 3, '2025-06-15 06:32:41', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(7, 3, '2025-06-15 07:03:19', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(8, 3, '2025-06-15 07:03:21', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(9, 3, '2025-06-15 07:03:25', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(10, 1, '2025-06-15 07:40:16', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(11, 6, '2025-06-15 07:42:02', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(12, 3, '2025-06-15 07:43:30', NULL, '118.235.6.135', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(13, 3, '2025-06-15 22:02:59', NULL, '118.235.6.29', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(14, 4, '2025-06-15 22:15:25', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(15, 3, '2025-06-15 22:15:34', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(16, 6, '2025-06-15 22:15:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'failed', 'invalid_password'), +(17, 6, '2025-06-15 22:15:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(18, 3, '2025-06-15 22:16:39', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(19, 3, '2025-06-15 22:17:14', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(20, 6, '2025-06-15 22:21:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(21, 1, '2025-06-15 22:21:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(22, 6, '2025-06-15 22:22:06', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(23, 5, '2025-06-15 22:22:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(24, 6, '2025-06-15 22:23:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(25, 3, '2025-06-15 22:24:49', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(26, 3, '2025-06-15 22:30:18', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(27, 3, '2025-06-15 22:31:21', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(28, 5, '2025-06-15 22:44:31', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(29, 4, '2025-06-15 22:57:51', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(30, 4, '2025-06-15 22:57:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(31, 4, '2025-06-15 22:57:54', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(32, 4, '2025-06-15 22:57:55', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(33, 4, '2025-06-15 23:11:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(34, 4, '2025-06-15 23:28:04', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(35, 3, '2025-06-15 23:33:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(36, 3, '2025-06-16 00:58:53', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(37, 3, '2025-06-16 01:15:46', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(38, 5, '2025-06-16 01:16:43', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(39, 1, '2025-06-16 01:25:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(40, 1, '2025-06-16 01:26:08', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(41, 3, '2025-06-16 02:27:20', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(42, 3, '2025-06-16 02:45:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(43, 3, '2025-06-16 03:04:13', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(44, 3, '2025-06-16 03:17:28', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(45, 5, '2025-06-16 03:17:55', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(46, 3, '2025-06-16 03:18:56', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(47, 5, '2025-06-16 03:19:13', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(48, 1, '2025-06-16 03:55:56', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(49, 1, '2025-06-16 04:24:37', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(50, 1, '2025-06-16 04:51:36', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(51, 1, '2025-06-16 05:07:05', NULL, '118.235.7.233', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(52, 1, '2025-06-16 05:07:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(53, 1, '2025-06-16 05:43:14', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(54, 5, '2025-06-16 06:11:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(55, 1, '2025-06-16 06:19:46', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(56, 1, '2025-06-16 06:23:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(57, 1, '2025-06-16 06:39:12', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(58, 3, '2025-06-16 06:45:26', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(59, 6, '2025-06-16 06:46:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(60, 1, '2025-06-16 21:18:09', NULL, '118.235.7.45', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(61, 1, '2025-06-17 08:15:45', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(62, 5, '2025-06-17 08:22:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(63, 3, '2025-06-17 08:23:05', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'failed', 'invalid_password'), +(64, 3, '2025-06-17 08:23:21', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(65, 3, '2025-06-17 08:28:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(66, 3, '2025-06-17 08:32:25', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(67, 6, '2025-06-17 08:33:07', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(68, 1, '2025-06-17 08:36:01', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(69, 5, '2025-06-17 09:00:56', NULL, '118.235.7.173', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(70, 3, '2025-06-18 02:30:13', NULL, '118.235.6.77', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(71, 1, '2025-06-18 08:07:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(72, 1, '2025-06-18 08:07:47', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(73, 5, '2025-06-18 08:39:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(74, 6, '2025-06-18 08:46:53', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(75, 3, '2025-06-18 08:47:03', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(76, 6, '2025-06-18 08:57:48', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(77, 5, '2025-06-18 08:58:14', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(78, 3, '2025-06-18 08:59:12', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(79, 5, '2025-06-19 06:37:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(80, 3, '2025-06-19 06:57:01', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(81, 6, '2025-06-19 06:57:22', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(82, 5, '2025-06-19 06:57:56', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(83, 6, '2025-06-19 06:58:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(84, 3, '2025-06-19 06:59:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(85, 3, '2025-06-20 06:42:26', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(86, 6, '2025-06-20 06:45:06', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(87, 5, '2025-06-20 06:49:26', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(88, 3, '2025-06-20 06:49:47', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(89, 6, '2025-06-20 06:50:17', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(90, 3, '2025-06-20 22:46:20', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(91, 1, '2025-06-23 05:03:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(92, 6, '2025-06-23 06:41:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(93, 3, '2025-06-23 06:49:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(94, 6, '2025-06-23 06:50:01', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(95, 5, '2025-06-23 06:50:28', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(96, 1, '2025-06-24 05:24:17', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(97, 3, '2025-06-24 05:25:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(98, 1, '2025-06-24 09:22:29', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(99, 3, '2025-06-24 11:09:38', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(100, 6, '2025-06-24 11:09:48', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(101, 5, '2025-06-24 11:10:23', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(102, 3, '2025-06-24 11:11:29', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(103, 5, '2025-06-24 11:12:06', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(104, 6, '2025-06-24 11:12:31', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(105, 3, '2025-06-24 21:41:01', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(106, 3, '2025-06-25 04:40:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(107, 3, '2025-06-25 05:24:57', NULL, '118.235.6.179', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(108, 1, '2025-06-25 07:05:20', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(109, 1, '2025-06-25 07:06:41', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(110, 3, '2025-06-25 07:09:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(111, 3, '2025-06-25 08:49:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(112, 3, '2025-06-25 09:20:05', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(113, 3, '2025-06-25 09:40:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(114, 3, '2025-06-25 09:57:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(115, 1, '2025-06-25 10:11:03', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(116, 1, '2025-06-25 10:26:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(117, 1, '2025-06-25 10:49:29', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(118, 5, '2025-06-25 11:07:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(119, 6, '2025-06-25 11:10:41', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(120, 6, '2025-06-25 11:13:55', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(121, 5, '2025-06-25 11:14:25', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(122, 6, '2025-06-25 11:20:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(123, 1, '2025-06-25 11:24:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(124, 3, '2025-06-26 10:27:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(125, 5, '2025-06-26 11:10:47', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(126, 6, '2025-06-26 11:15:57', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(127, 3, '2025-06-26 11:17:07', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(128, 5, '2025-06-26 11:17:40', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(129, 6, '2025-06-26 11:19:00', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(130, 1, '2025-06-26 22:15:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(131, 1, '2025-06-26 22:31:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(132, 1, '2025-06-26 22:47:22', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(133, 5, '2025-06-27 01:52:48', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(134, 5, '2025-06-27 01:53:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(135, 3, '2025-06-27 06:47:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(136, 6, '2025-06-27 06:48:39', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(137, 3, '2025-06-27 06:57:15', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(138, 5, '2025-06-27 06:57:34', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(139, 6, '2025-06-27 06:57:59', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(140, 3, '2025-06-27 06:59:04', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(141, 5, '2025-06-27 06:59:29', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(142, 3, '2025-07-05 01:25:41', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(143, 3, '2025-07-05 01:26:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(144, 3, '2025-07-05 01:41:35', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(145, 3, '2025-07-05 01:46:29', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(146, 3, '2025-07-05 01:46:57', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(147, 3, '2025-07-05 01:47:17', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(148, 5, '2025-07-05 01:48:23', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(149, 3, '2025-07-05 01:49:42', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(150, 3, '2025-07-05 01:50:41', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(151, 1, '2025-07-05 01:52:14', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(152, 3, '2025-07-05 02:12:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(153, 3, '2025-07-05 04:48:01', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(154, 5, '2025-07-05 05:36:08', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(155, 3, '2025-07-05 05:52:08', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(156, 5, '2025-07-06 05:33:53', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(157, 3, '2025-07-06 05:45:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(158, 1, '2025-07-07 01:40:15', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(159, 1, '2025-07-07 01:40:39', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(160, 3, '2025-07-07 01:54:37', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(161, 3, '2025-07-07 02:13:32', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(162, 1, '2025-07-07 02:28:26', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(163, 3, '2025-07-07 02:45:15', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(164, 1, '2025-07-07 03:33:06', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(165, 1, '2025-07-07 03:51:07', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(166, 1, '2025-07-07 03:56:23', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(167, 1, '2025-07-07 03:57:20', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(168, 1, '2025-07-07 03:58:02', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(169, 1, '2025-07-07 03:58:37', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(170, 3, '2025-07-07 04:00:06', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(171, 1, '2025-07-07 04:03:01', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(172, 1, '2025-07-07 04:10:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(173, 3, '2025-07-07 04:13:46', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(174, 1, '2025-07-07 04:23:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(175, 3, '2025-07-07 04:25:09', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(176, 6, '2025-07-07 06:48:30', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(177, 3, '2025-07-07 06:51:59', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(178, 1, '2025-07-07 23:33:26', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(179, 1, '2025-07-07 23:37:30', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(180, 3, '2025-07-08 06:36:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(181, 3, '2025-07-08 06:59:17', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(182, 3, '2025-07-09 06:59:29', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(183, 5, '2025-07-09 22:07:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(184, 3, '2025-07-10 02:09:48', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(185, 1, '2025-07-10 02:11:20', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(186, 3, '2025-07-10 06:28:37', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(187, 3, '2025-07-10 06:57:12', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(188, 3, '2025-07-11 06:59:42', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(189, 3, '2025-07-12 05:39:34', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(190, 3, '2025-07-12 05:41:00', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(191, 3, '2025-07-12 05:58:31', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(192, 3, '2025-07-14 06:45:52', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(193, 3, '2025-07-15 00:09:52', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(194, 5, '2025-07-15 05:56:33', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(195, 3, '2025-07-15 06:56:35', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(196, 5, '2025-07-16 06:45:52', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(197, 3, '2025-07-16 06:51:11', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(198, 3, '2025-07-17 06:44:45', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(199, 5, '2025-07-17 06:45:54', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(200, 3, '2025-07-17 06:58:06', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(201, 3, '2025-07-18 05:54:03', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(202, 5, '2025-07-18 06:35:45', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(203, 5, '2025-07-21 06:39:22', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(204, 3, '2025-07-21 06:53:15', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(205, 5, '2025-07-22 06:45:21', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(206, 3, '2025-07-22 06:45:41', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(207, 3, '2025-07-22 06:46:38', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(208, 3, '2025-07-22 06:57:45', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(209, 5, '2025-07-23 06:44:46', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(210, 3, '2025-07-23 06:44:59', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(211, 3, '2025-07-23 06:59:50', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(212, 5, '2025-07-24 06:36:37', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(213, 3, '2025-07-24 06:46:42', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(214, 5, '2025-07-25 06:44:01', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(215, 3, '2025-07-25 06:44:45', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(216, 5, '2025-07-27 21:28:11', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(217, 3, '2025-07-28 06:30:12', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(218, 3, '2025-07-28 06:31:32', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(219, 5, '2025-07-28 06:32:30', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(220, 3, '2025-07-28 06:54:43', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(221, 3, '2025-07-29 06:38:49', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(222, 1, '2025-07-30 01:57:11', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(223, 1, '2025-07-30 02:03:46', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(224, 3, '2025-07-30 02:04:01', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(225, 1, '2025-07-30 02:20:29', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(226, 1, '2025-07-30 02:24:55', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(227, 3, '2025-07-30 05:01:07', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(228, 3, '2025-07-30 06:50:12', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(229, 5, '2025-07-30 06:51:38', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(230, 1, '2025-07-30 22:38:28', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(231, 5, '2025-07-31 06:42:33', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(232, 3, '2025-07-31 22:23:54', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(233, 5, '2025-08-01 04:56:06', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(234, 5, '2025-08-01 04:57:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(235, 3, '2025-08-01 05:01:42', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(236, 5, '2025-08-07 06:41:51', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(237, 3, '2025-08-07 06:43:30', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(238, 3, '2025-08-08 06:44:56', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(239, 3, '2025-08-08 06:55:18', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(240, 5, '2025-08-08 06:58:09', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(241, 3, '2025-08-11 02:06:53', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(242, 1, '2025-08-11 04:16:44', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'failed', 'invalid_password'), +(243, 1, '2025-08-11 04:17:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(244, 3, '2025-08-11 06:27:03', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(245, 5, '2025-08-11 06:45:58', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(246, 3, '2025-08-12 06:46:57', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(247, 6, '2025-08-13 05:14:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(248, 3, '2025-08-13 06:30:59', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(249, 5, '2025-08-13 06:35:40', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(250, 5, '2025-08-14 02:02:04', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(251, 3, '2025-08-14 06:34:37', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(252, 5, '2025-08-14 06:38:26', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(253, 5, '2025-08-18 06:21:07', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL); +INSERT INTO `login_logs` (`log_id`, `user_id`, `login_time`, `logout_time`, `ip_address`, `user_agent`, `login_status`, `failure_reason`) VALUES +(254, 3, '2025-08-18 06:40:43', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(255, 6, '2025-08-18 06:42:10', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(256, 3, '2025-08-18 06:47:57', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(257, 5, '2025-08-19 08:02:10', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(258, 6, '2025-08-19 08:35:46', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(259, 5, '2025-08-20 06:19:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(260, 3, '2025-08-20 06:42:31', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(261, 6, '2025-08-20 06:43:54', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(262, 3, '2025-08-21 06:29:56', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(263, 5, '2025-08-21 07:50:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(264, 6, '2025-08-21 08:23:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(265, 5, '2025-08-22 06:20:28', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(266, 5, '2025-08-22 06:22:28', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(267, 3, '2025-08-22 06:27:17', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(268, 5, '2025-08-23 04:56:25', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(269, 3, '2025-08-25 06:48:11', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(270, 6, '2025-08-25 06:48:48', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(271, 5, '2025-08-26 07:07:36', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(272, 1, '2025-08-26 07:11:06', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(273, 5, '2025-08-26 07:27:16', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(274, 6, '2025-08-26 08:21:22', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(275, 3, '2025-08-27 00:51:26', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(276, 3, '2025-08-27 06:43:38', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(277, 5, '2025-08-27 06:44:44', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(278, 1, '2025-08-28 01:48:08', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(279, 3, '2025-08-28 01:49:21', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(280, 3, '2025-08-28 03:28:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(281, 6, '2025-08-28 08:29:27', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(282, 5, '2025-08-28 08:37:06', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(283, 5, '2025-08-28 08:44:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(284, 3, '2025-08-29 06:45:33', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(285, 6, '2025-08-29 06:46:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(286, 5, '2025-08-29 21:54:56', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(287, 3, '2025-08-30 02:57:31', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(288, 5, '2025-08-30 05:11:35', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(289, 3, '2025-08-30 05:35:51', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(290, 3, '2025-09-01 06:17:50', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(291, 3, '2025-09-01 23:13:28', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(292, 3, '2025-09-02 03:59:38', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(293, 3, '2025-09-02 07:33:36', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(294, 5, '2025-09-02 08:15:36', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(295, 3, '2025-09-02 23:36:25', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(296, 3, '2025-09-03 01:32:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(297, 3, '2025-09-03 06:32:44', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(298, 5, '2025-09-03 06:43:58', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(299, 6, '2025-09-04 06:40:35', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(300, 5, '2025-09-04 06:48:15', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(301, 3, '2025-09-05 06:39:03', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(302, 5, '2025-09-05 22:09:08', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(303, 5, '2025-09-06 04:20:51', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(304, 3, '2025-09-06 05:27:55', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(305, 3, '2025-09-08 06:15:03', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(306, 5, '2025-09-08 06:47:15', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(307, 3, '2025-09-09 06:02:53', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(308, 5, '2025-09-09 06:44:09', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(309, 3, '2025-09-10 06:27:30', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(310, 5, '2025-09-10 06:48:23', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(311, 5, '2025-09-11 06:36:20', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(312, 6, '2025-09-11 06:40:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(313, 3, '2025-09-12 06:43:55', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(314, 3, '2025-09-13 06:37:35', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(315, 5, '2025-09-13 23:16:18', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(316, 3, '2025-09-14 04:47:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(317, 3, '2025-09-15 06:49:28', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(318, 5, '2025-09-16 06:50:55', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(319, 5, '2025-09-17 06:42:49', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(320, 3, '2025-09-17 06:44:41', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(321, 1, '2025-09-17 23:51:39', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(322, 3, '2025-09-18 06:43:14', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(323, 3, '2025-09-18 06:46:17', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(324, 5, '2025-09-18 06:54:31', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(325, 5, '2025-09-19 06:51:14', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(326, 5, '2025-09-20 05:30:00', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(327, 3, '2025-09-22 06:46:29', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(328, 5, '2025-09-22 06:50:11', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(329, 5, '2025-09-23 05:46:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(330, 3, '2025-09-23 06:46:57', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(331, 3, '2025-09-23 06:47:27', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(332, 5, '2025-09-25 01:14:07', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(333, 3, '2025-09-25 06:56:18', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1', 'success', NULL), +(334, 1, '2025-09-28 22:11:51', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(335, 3, '2025-09-29 06:35:29', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(336, 3, '2025-09-30 06:52:01', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(337, 5, '2025-09-30 06:56:12', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(338, 5, '2025-10-01 06:55:37', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(339, 1, '2025-10-01 23:48:39', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(340, 3, '2025-10-02 05:25:11', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(341, 3, '2025-10-02 06:21:56', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(342, 1, '2025-10-06 01:01:56', NULL, '::ffff:172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(343, 1, '2025-10-10 23:13:57', NULL, '::ffff:172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(344, 3, '2025-10-10 23:32:38', NULL, '::ffff:172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `password_change_logs` +-- + +CREATE TABLE `password_change_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `changed_by_user_id` int(11) DEFAULT NULL, + `changed_at` datetime DEFAULT current_timestamp(), + `change_type` enum('self','admin','reset','initial') DEFAULT 'self', + `ip_address` varchar(45) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `password_change_logs` +-- + +INSERT INTO `password_change_logs` (`log_id`, `user_id`, `changed_by_user_id`, `changed_at`, `change_type`, `ip_address`) VALUES +(1, 4, NULL, '2025-06-15 06:03:42', 'admin', NULL), +(2, 3, NULL, '2025-06-15 06:03:52', 'admin', NULL), +(3, 3, 3, '2025-06-15 06:32:30', 'self', NULL), +(4, 3, 1, '2025-06-15 07:40:39', 'admin', NULL), +(5, 5, 1, '2025-06-15 07:41:02', 'initial', NULL), +(6, 6, 1, '2025-06-15 07:41:32', 'initial', NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `PipeSpecs` +-- + +CREATE TABLE `PipeSpecs` ( + `spec_id` int(11) NOT NULL, + `material` varchar(50) NOT NULL COMMENT '재질 (예: SS400, STS304)', + `diameter_in` varchar(10) NOT NULL COMMENT '직경 (inch, 예: 2")', + `schedule` varchar(50) NOT NULL COMMENT '스케줄 (예: STD, SCH10, SCH40)' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `PipeSpecs` +-- + +INSERT INTO `PipeSpecs` (`spec_id`, `material`, `diameter_in`, `schedule`) VALUES +(2, '516-70N', '1', 'SCH80'), +(1, 'A106', '3/4', 'SCH80'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Processes` +-- + +CREATE TABLE `Processes` ( + `process_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `process_name` varchar(255) NOT NULL, + `process_start` date NOT NULL, + `process_end` date DEFAULT NULL, + `planned_worker_count` int(11) NOT NULL, + `process_description` text DEFAULT NULL, + `note` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Projects` +-- + +CREATE TABLE `Projects` ( + `project_id` int(11) NOT NULL, + `job_no` varchar(50) NOT NULL, + `project_name` varchar(255) NOT NULL, + `contract_date` date DEFAULT NULL, + `due_date` date DEFAULT NULL, + `delivery_method` varchar(100) DEFAULT NULL, + `site` varchar(100) DEFAULT NULL, + `pm` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Projects` +-- + +INSERT INTO `Projects` (`project_id`, `job_no`, `project_name`, `contract_date`, `due_date`, `delivery_method`, `site`, `pm`, `created_at`, `updated_at`) VALUES +(1, 'TKO-24008P', 'YHP Project', '2024-05-16', '2025-05-16', 'FOB', 'Quang Ninh(Vietnam)', '장형태', '2025-04-15 22:40:28', '2025-04-15 22:40:28'), +(2, 'TKG-24009P', '한화에어로스페이스 순천', '2024-06-05', '2025-05-31', '.', '순천', '장형태', '2025-04-15 22:42:41', '2025-04-15 22:42:41'), +(3, 'TKG-24011P', '효성화학 에틸렌 탱크 건설공사', '2024-06-22', '2025-12-25', '.', '울산', '김길종', '2025-04-15 22:43:53', '2025-04-15 22:43:53'), +(4, 'TKG-24013P', '김천 솔라 파워 그린 수소 Project', '2024-10-08', '2025-07-25', '.', '김천', '김길종', '2025-04-15 22:44:57', '2025-04-15 22:44:57'), +(5, 'TKG-24016P', 'LG Chem P3RE Project', '2024-11-27', '2025-09-30', '.', '.', '장형태', '2025-04-15 22:46:36', '2025-04-15 22:46:36'), +(7, 'TKO-25003F', '25년 안전보건시설설비', '2025-01-03', '2025-12-31', '.', '.', '.', '2025-04-15 22:47:32', '2025-04-15 22:47:32'), +(8, 'TKG-25007P', 'P Project', '2025-01-16', '2025-10-31', '.', '오창읍', '장형태', '2025-04-15 22:48:50', '2025-04-15 22:48:50'), +(10, 'TKR-25008P', 'DIG Airgas LG CHEM', '2025-01-23', '2025-10-15', '.', '여수', '서태원', '2025-04-15 22:50:05', '2025-04-15 22:50:05'), +(11, 'TKR-25010P', 'FK FISCHER Project', '2025-03-12', '2025-11-30', '.', '울산', '전상신', '2025-04-15 22:51:12', '2025-04-15 22:51:12'), +(12, 'TKO-24007P', 'MP7 Project', '2024-07-03', '2025-01-05', '.', '.', '윤지민', '2025-04-15 23:56:26', '2025-04-15 23:56:26'), +(13, '연차/휴무', '연차/휴무', '2025-01-01', '2025-12-31', '.', '.', '.', '2025-04-16 01:58:23', '2025-04-16 01:58:23'), +(14, 'TKO-25009R', 'M Project', '2025-08-01', '2025-12-31', '', '', '이민후', '2025-09-28 22:13:33', '2025-09-28 22:13:33'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Tasks` +-- + +CREATE TABLE `Tasks` ( + `task_id` int(11) NOT NULL, + `category` varchar(255) NOT NULL, + `subcategory` varchar(255) DEFAULT NULL, + `task_name` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Tasks` +-- + +INSERT INTO `Tasks` (`task_id`, `category`, `subcategory`, `task_name`, `description`, `created_at`, `updated_at`) VALUES +(1, 'Base', 'Fabrication', '용접', '...', '2025-04-15 10:41:43', '2025-04-15 10:41:43'), +(3, 'Vessel', 'MI and Marking', 'Marking', '..', '2025-04-15 22:25:58', '2025-04-15 22:25:58'), +(4, 'Vessel', 'Cutting', '자재 커팅', '..', '2025-04-15 22:26:17', '2025-04-15 22:26:17'), +(5, 'Vessel', 'Fabrication', '용접', '..', '2025-04-15 22:26:43', '2025-04-15 22:26:43'), +(7, 'PKG', 'Pipe Pre-Fabrication', '취부&용접', '배관사 1명\n용접사 1명', '2025-04-15 22:37:14', '2025-04-15 22:37:14'), +(8, 'PKG', '1st Piping Assembly', '1차 조립', '.', '2025-04-15 22:38:49', '2025-04-15 22:38:49'), +(9, 'PKG', 'Re-Assembly', '재조립', '.', '2025-04-15 22:39:18', '2025-04-15 22:39:18'), +(13, '작업지원', '구매팀', '.', '.', '2025-04-16 03:03:40', '2025-04-16 03:03:40'), +(14, '기타', '시설설비제작', '.', '.', '2025-04-16 03:30:53', '2025-04-16 03:30:53'), +(15, '기타', '휴가/연차/휴무', '.', '.', '2025-04-16 05:18:13', '2025-04-16 05:18:13'), +(16, 'PKG', '제품설치', '설치작업', 'Skid, 용기 등 설치', '2025-04-29 04:39:36', '2025-04-29 04:39:36'), +(18, '작업지원', '품질팀', 'test지원', '.', '2025-06-25 07:07:08', '2025-06-25 07:07:08'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `uploaded_documents` +-- + +CREATE TABLE `uploaded_documents` ( + `id` int(11) NOT NULL, + `title` varchar(255) NOT NULL, + `tags` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `original_name` varchar(255) DEFAULT NULL, + `stored_name` varchar(255) NOT NULL, + `file_path` varchar(500) DEFAULT NULL, + `file_type` varchar(50) DEFAULT NULL, + `file_size` int(11) DEFAULT NULL, + `submitted_by` varchar(100) DEFAULT NULL, + `dt_imported` tinyint(1) DEFAULT 0, + `dt_uuid` varchar(100) DEFAULT NULL, + `of_task_created` tinyint(1) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Users` +-- + +CREATE TABLE `Users` ( + `user_id` int(11) NOT NULL, + `username` varchar(100) NOT NULL, + `password` varchar(255) NOT NULL, + `role` varchar(30) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `access_level` varchar(30) DEFAULT NULL, + `worker_id` int(11) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `last_login_at` datetime DEFAULT NULL, + `password_changed_at` datetime DEFAULT NULL, + `failed_login_attempts` int(11) DEFAULT 0, + `locked_until` datetime DEFAULT NULL, + `name` varchar(50) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Users` +-- + +INSERT INTO `Users` (`user_id`, `username`, `password`, `role`, `created_at`, `access_level`, `worker_id`, `is_active`, `last_login_at`, `password_changed_at`, `failed_login_attempts`, `locked_until`, `name`, `email`, `updated_at`) VALUES +(1, 'hyungi', '$2b$10$lwSfKipx0fQ.9nfMUBmzt.WXzerdxuT5MVX4b3YhFeHxyYlUjM7bi', 'admin', '2025-05-06 05:03:02', 'system', NULL, 1, '2025-10-10 23:13:57', '2025-05-06 05:03:02', 0, NULL, NULL, NULL, '2025-10-10 23:13:57'), +(3, '김두수', '$2a$10$z3i2EVOotRFBj.KHzx5LQOKlXD0QHLNFEvJcd6FlO6/1TCYGk6SSu', 'leader', '2025-06-07 23:48:35', 'group_leader', 1, 1, '2025-10-10 23:32:38', '2025-06-15 07:40:39', 0, NULL, '김두수', NULL, '2025-10-10 23:32:38'), +(4, '김아무개', '$2a$10$QAJIoPyi.apz91exp8GsiO/prAD5Xwanht6XImP1jvKsy/7Ba/b8.', 'user', '2025-06-11 08:03:59', 'worker', NULL, 1, '2025-06-15 23:28:04', '2025-06-15 06:03:42', 0, NULL, '김아무개', NULL, '2025-06-15 23:28:04'), +(5, '임영규', '$2a$10$66ps/MEEi4BVABfJc5P0y.yCap09NhTMyd1A/7rFVxESytQGlB3wC', NULL, '2025-06-15 07:41:02', 'group_leader', 3, 1, '2025-10-01 06:55:37', '2025-06-15 07:41:02', 0, NULL, '임영규', NULL, '2025-10-01 06:55:37'), +(6, '반치원', '$2a$10$jcn6f7flRLZlr5yKQcXDIePodRK0rsM4deNnNGjuOlredeTVsRYZ6', NULL, '2025-06-15 07:41:32', 'group_leader', 3, 1, '2025-09-11 06:40:19', '2025-06-15 07:41:32', 0, NULL, '반치원', NULL, '2025-09-11 06:40:19'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Workers` +-- + +CREATE TABLE `Workers` ( + `worker_id` int(11) NOT NULL, + `worker_name` varchar(100) NOT NULL, + `join_date` date DEFAULT NULL, + `job_type` varchar(100) DEFAULT NULL, + `salary` decimal(10,2) DEFAULT NULL, + `annual_leave` int(11) DEFAULT NULL, + `status` text DEFAULT 'active', + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Workers` +-- + +INSERT INTO `Workers` (`worker_id`, `worker_name`, `join_date`, `job_type`, `salary`, `annual_leave`, `status`, `created_at`, `updated_at`) VALUES +(1, '김두수', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:08', '2025-04-15 22:23:08'), +(2, '임영규', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:17', '2025-04-15 22:23:17'), +(3, '반치원', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:22', '2025-04-15 22:23:22'), +(4, '황인용', '2025-04-01', '가공,조공', 220000.00, 15, '..', '2025-04-15 22:23:33', '2025-04-15 22:23:33'), +(5, '표영진', '2025-04-01', '가공,조공', 220000.00, 15, '..', '2025-04-15 22:23:38', '2025-04-15 22:23:38'), +(6, '김윤섭', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:23:46', '2025-04-15 22:23:46'), +(7, '이창호', '2025-04-01', '용접,배관', 220000.00, 15, '..', '2025-04-15 22:23:51', '2025-04-15 22:23:51'), +(8, '최광욱', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:23:57', '2025-04-15 22:23:57'), +(9, '박현수', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:24:01', '2025-04-15 22:24:01'), +(10, '조윤호', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:24:07', '2025-04-15 22:24:07'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `worker_groups` +-- + +CREATE TABLE `worker_groups` ( + `id` int(11) NOT NULL, + `group_leader_id` int(11) NOT NULL, + `worker_id` int(11) NOT NULL, + `group_name` varchar(100) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `WorkReports` +-- + +CREATE TABLE `WorkReports` ( + `id` int(11) NOT NULL, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `morning_task_id` int(11) DEFAULT NULL, + `afternoon_task_id` int(11) DEFAULT NULL, + `overtime_hours` decimal(4,1) DEFAULT 0.0, + `overtime_task_id` int(11) DEFAULT NULL, + `work_details` text DEFAULT NULL, + `note` text DEFAULT NULL, + `memo` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `morning_project_id` int(11) DEFAULT NULL, + `afternoon_project_id` int(11) DEFAULT NULL, + `overtime_project_id` int(11) DEFAULT NULL, + `task_id` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `WorkReports` +-- + +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(176, '2025-01-02', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(177, '2025-01-02', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(178, '2025-01-02', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(179, '2025-01-02', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(180, '2025-01-02', 8, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(181, '2025-01-02', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(182, '2025-01-02', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(183, '2025-01-02', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 15), +(194, '2025-01-03', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(195, '2025-01-03', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(196, '2025-01-03', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 15), +(197, '2025-01-03', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(198, '2025-01-03', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 15), +(199, '2025-01-03', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(200, '2025-01-03', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(201, '2025-01-03', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(202, '2025-01-03', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(203, '2025-01-04', 7, 12, NULL, NULL, NULL, NULL, '휴일근무', NULL, NULL, '2025-04-16 05:43:25', '2025-04-16 05:43:25', NULL, NULL, NULL, 12), +(204, '2025-01-06', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:03', '2025-04-16 05:44:03', NULL, NULL, NULL, 12), +(205, '2025-01-06', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:03', '2025-04-16 05:44:03', NULL, NULL, NULL, 12), +(206, '2025-01-06', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(207, '2025-01-06', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(208, '2025-01-06', 8, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(209, '2025-01-06', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(210, '2025-01-06', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(211, '2025-01-06', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(212, '2025-01-06', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(213, '2025-01-07', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(214, '2025-01-07', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 1), +(215, '2025-01-07', 3, 12, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(216, '2025-01-07', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(217, '2025-01-07', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 1), +(218, '2025-01-07', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(219, '2025-01-07', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(220, '2025-01-07', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:25', '2025-04-16 05:45:25', NULL, NULL, NULL, 12), +(221, '2025-01-07', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:25', '2025-04-16 05:45:25', NULL, NULL, NULL, 1), +(222, '2025-01-08', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(223, '2025-01-08', 2, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(224, '2025-01-08', 3, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(225, '2025-01-08', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(226, '2025-01-08', 8, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(227, '2025-01-08', 9, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(228, '2025-01-08', 6, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(229, '2025-01-08', 4, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(230, '2025-01-08', 5, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(231, '2025-01-09', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(232, '2025-01-09', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(233, '2025-01-09', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(234, '2025-01-09', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(235, '2025-01-09', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(236, '2025-01-09', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(237, '2025-01-09', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(238, '2025-01-09', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(239, '2025-01-09', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(240, '2025-01-10', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:16', '2025-04-16 05:49:16', NULL, NULL, NULL, 13), +(241, '2025-01-10', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(242, '2025-01-10', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(243, '2025-01-10', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(244, '2025-01-10', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(245, '2025-01-10', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(246, '2025-01-10', 6, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 15), +(247, '2025-01-10', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(248, '2025-01-10', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(249, '2025-01-13', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(250, '2025-01-13', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(251, '2025-01-13', 3, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(252, '2025-01-13', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(253, '2025-01-13', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(254, '2025-01-13', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(255, '2025-01-13', 6, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(256, '2025-01-13', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 15), +(257, '2025-01-13', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(258, '2025-01-14', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(259, '2025-01-14', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(260, '2025-01-14', 3, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(261, '2025-01-14', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(262, '2025-01-14', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(263, '2025-01-14', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(265, '2025-01-14', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(266, '2025-01-14', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(267, '2025-01-14', 6, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(268, '2025-01-15', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(269, '2025-01-15', 2, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 14), +(270, '2025-01-15', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(271, '2025-01-15', 7, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 13), +(272, '2025-01-15', 8, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 14), +(273, '2025-01-15', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(275, '2025-01-15', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(276, '2025-01-15', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:38', '2025-04-16 05:52:38', NULL, NULL, NULL, 1), +(277, '2025-01-15', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:38', '2025-04-16 05:52:38', NULL, NULL, NULL, 1), +(278, '2025-01-16', 1, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(279, '2025-01-16', 2, 7, NULL, NULL, NULL, NULL, '근무', NULL, '볼트 보관함 제작', '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 14), +(280, '2025-01-16', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(281, '2025-01-16', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(282, '2025-01-16', 8, 7, NULL, NULL, NULL, NULL, '근무', NULL, '볼트 보관함 제작', '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 14), +(283, '2025-01-16', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(285, '2025-01-16', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(286, '2025-01-16', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(287, '2025-01-16', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(288, '2025-01-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(289, '2025-01-17', 2, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(290, '2025-01-17', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(291, '2025-01-17', 7, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(292, '2025-01-17', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(293, '2025-01-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(295, '2025-01-17', 4, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(296, '2025-01-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(297, '2025-01-17', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(298, '2025-01-20', 1, 7, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(299, '2025-01-20', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 8), +(300, '2025-01-20', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(301, '2025-01-20', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(302, '2025-01-20', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(303, '2025-01-20', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(304, '2025-01-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(305, '2025-01-20', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(306, '2025-01-20', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(307, '2025-01-21', 1, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 15), +(308, '2025-01-21', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 8), +(309, '2025-01-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(310, '2025-01-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(311, '2025-01-21', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 8), +(312, '2025-01-21', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 15), +(313, '2025-01-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(314, '2025-01-21', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(315, '2025-01-21', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:07', '2025-04-16 05:59:07', NULL, NULL, NULL, 1), +(316, '2025-01-22', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(317, '2025-01-22', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(318, '2025-01-22', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(319, '2025-01-22', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(320, '2025-01-22', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(321, '2025-01-22', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(322, '2025-01-22', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(323, '2025-01-22', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(324, '2025-01-22', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(325, '2025-01-23', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(326, '2025-01-23', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 8), +(327, '2025-01-23', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(328, '2025-01-23', 7, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(329, '2025-01-23', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(330, '2025-01-23', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(331, '2025-01-23', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(332, '2025-01-23', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(333, '2025-01-23', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 8), +(334, '2025-01-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(335, '2025-01-24', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 8), +(336, '2025-01-24', 3, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(337, '2025-01-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(338, '2025-01-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(339, '2025-01-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(340, '2025-01-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(341, '2025-01-24', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 8), +(342, '2025-01-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(343, '2025-02-03', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(344, '2025-02-03', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 8), +(345, '2025-02-03', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(346, '2025-02-03', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(347, '2025-02-03', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(348, '2025-02-03', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(349, '2025-02-03', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(350, '2025-02-03', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 8), +(351, '2025-02-03', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(352, '2025-02-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(353, '2025-02-04', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(354, '2025-02-04', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 8), +(355, '2025-02-04', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(356, '2025-02-04', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(357, '2025-02-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(358, '2025-02-04', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(359, '2025-02-04', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 8), +(360, '2025-02-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(361, '2025-02-05', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 8), +(362, '2025-02-05', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(363, '2025-02-05', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(364, '2025-02-05', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(365, '2025-02-05', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(366, '2025-02-05', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(367, '2025-02-05', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 1), +(368, '2025-02-05', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 8), +(369, '2025-02-05', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 1), +(370, '2025-02-06', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(371, '2025-02-06', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 15), +(372, '2025-02-06', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(373, '2025-02-06', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(374, '2025-02-06', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(375, '2025-02-06', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(376, '2025-02-06', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(377, '2025-02-06', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(378, '2025-02-06', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(379, '2025-02-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(380, '2025-02-07', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 8), +(381, '2025-02-07', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(382, '2025-02-07', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 15), +(383, '2025-02-07', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(384, '2025-02-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(385, '2025-02-07', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(386, '2025-02-07', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 8), +(387, '2025-02-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(388, '2025-02-10', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(389, '2025-02-10', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 8), +(390, '2025-02-10', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(391, '2025-02-10', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(392, '2025-02-10', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(393, '2025-02-10', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(394, '2025-02-10', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(395, '2025-02-10', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 8), +(396, '2025-02-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(397, '2025-02-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(398, '2025-02-11', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 8), +(399, '2025-02-11', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(400, '2025-02-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(401, '2025-02-11', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(402, '2025-02-11', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(403, '2025-02-11', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(404, '2025-02-11', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 8), +(405, '2025-02-11', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(406, '2025-02-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(407, '2025-02-12', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 8), +(408, '2025-02-12', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(409, '2025-02-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(410, '2025-02-12', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(411, '2025-02-12', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(412, '2025-02-12', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 15), +(413, '2025-02-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(414, '2025-02-12', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(415, '2025-02-13', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(416, '2025-02-13', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 7), +(417, '2025-02-13', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(418, '2025-02-13', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(419, '2025-02-13', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(420, '2025-02-13', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(421, '2025-02-13', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(422, '2025-02-13', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 7), +(423, '2025-02-13', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(424, '2025-02-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(425, '2025-02-14', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 7), +(426, '2025-02-14', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(427, '2025-02-14', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(428, '2025-02-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(429, '2025-02-14', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(430, '2025-02-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(431, '2025-02-14', 4, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 7), +(432, '2025-02-14', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(433, '2025-02-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:39', '2025-04-16 06:18:39', NULL, NULL, NULL, 1), +(434, '2025-02-17', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 8), +(435, '2025-02-17', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(436, '2025-02-17', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(437, '2025-02-17', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 15), +(438, '2025-02-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(439, '2025-02-17', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(440, '2025-02-17', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 8), +(441, '2025-02-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(442, '2025-02-18', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(443, '2025-02-18', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 15), +(444, '2025-02-18', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(445, '2025-02-18', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(446, '2025-02-18', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(447, '2025-02-18', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(448, '2025-02-18', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 7), +(449, '2025-02-18', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(450, '2025-02-18', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(451, '2025-02-19', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(452, '2025-02-19', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(453, '2025-02-19', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(454, '2025-02-19', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(455, '2025-02-19', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(456, '2025-02-19', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(457, '2025-02-19', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(458, '2025-02-19', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(459, '2025-02-19', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(460, '2025-02-20', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(461, '2025-02-20', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(462, '2025-02-20', 3, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(463, '2025-02-20', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(464, '2025-02-20', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(465, '2025-02-20', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(466, '2025-02-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(467, '2025-02-20', 7, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(468, '2025-02-20', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(469, '2025-02-21', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(470, '2025-02-21', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(471, '2025-02-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(472, '2025-02-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(473, '2025-02-21', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(474, '2025-02-21', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(475, '2025-02-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(476, '2025-02-21', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(477, '2025-02-21', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(478, '2025-02-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(479, '2025-02-24', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(480, '2025-02-24', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(481, '2025-02-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(482, '2025-02-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(483, '2025-02-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(484, '2025-02-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(485, '2025-02-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(486, '2025-02-24', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:33', '2025-04-16 06:24:33', NULL, NULL, NULL, 7), +(487, '2025-02-24', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, '근무시작', '2025-04-16 06:25:07', '2025-04-16 06:25:07', NULL, NULL, NULL, 7), +(488, '2025-02-25', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(489, '2025-02-25', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(490, '2025-02-25', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(491, '2025-02-25', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(492, '2025-02-25', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(493, '2025-02-25', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(494, '2025-02-25', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(495, '2025-02-25', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(496, '2025-02-25', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(497, '2025-02-25', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(498, '2025-02-26', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '당진출장 건', '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 14), +(499, '2025-02-26', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(500, '2025-02-26', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(501, '2025-02-26', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '당진출장 건', '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 14), +(502, '2025-02-26', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(503, '2025-02-26', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(504, '2025-02-26', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(505, '2025-02-26', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 15), +(506, '2025-02-26', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(507, '2025-02-26', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(508, '2025-02-27', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(509, '2025-02-27', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(510, '2025-02-27', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(511, '2025-02-27', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(512, '2025-02-27', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(513, '2025-02-27', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(514, '2025-02-27', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(515, '2025-02-27', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(516, '2025-02-27', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(517, '2025-02-27', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(518, '2025-02-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 13), +(519, '2025-02-28', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(520, '2025-02-28', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(521, '2025-02-28', 7, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 13), +(522, '2025-02-28', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(523, '2025-02-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(524, '2025-02-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(525, '2025-02-28', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(526, '2025-02-28', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 15), +(527, '2025-02-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(528, '2025-03-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(529, '2025-03-04', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(530, '2025-03-04', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 8), +(531, '2025-03-04', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 15), +(532, '2025-03-04', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(533, '2025-03-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(534, '2025-03-04', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(535, '2025-03-04', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(536, '2025-03-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(537, '2025-03-04', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 8), +(538, '2025-03-05', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(539, '2025-03-05', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(540, '2025-03-05', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 8), +(541, '2025-03-05', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(542, '2025-03-05', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(543, '2025-03-05', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(544, '2025-03-05', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(545, '2025-03-05', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 15), +(546, '2025-03-05', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(547, '2025-03-05', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 8), +(548, '2025-03-06', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(549, '2025-03-06', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(550, '2025-03-06', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 8), +(551, '2025-03-06', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 15), +(552, '2025-03-06', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(553, '2025-03-06', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(554, '2025-03-06', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(555, '2025-03-06', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(556, '2025-03-06', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(557, '2025-03-06', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 8), +(558, '2025-03-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7); +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(559, '2025-03-07', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 13), +(560, '2025-03-07', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 8), +(561, '2025-03-07', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 15), +(562, '2025-03-07', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(563, '2025-03-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(564, '2025-03-07', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(565, '2025-03-07', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 13), +(566, '2025-03-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(567, '2025-03-07', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 8), +(568, '2025-03-10', 1, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(569, '2025-03-10', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 3), +(570, '2025-03-10', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(571, '2025-03-10', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 15), +(572, '2025-03-10', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 7), +(573, '2025-03-10', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 15), +(574, '2025-03-10', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 7), +(575, '2025-03-10', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 3), +(576, '2025-03-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(577, '2025-03-10', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(578, '2025-03-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:06', '2025-04-16 06:39:06', NULL, NULL, NULL, 8), +(579, '2025-03-11', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(580, '2025-03-11', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(581, '2025-03-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(582, '2025-03-11', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(583, '2025-03-11', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 15), +(584, '2025-03-11', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(585, '2025-03-11', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(586, '2025-03-11', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(587, '2025-03-11', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(588, '2025-03-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(589, '2025-03-12', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(590, '2025-03-12', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(591, '2025-03-12', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(592, '2025-03-12', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(593, '2025-03-12', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 15), +(594, '2025-03-12', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(595, '2025-03-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(596, '2025-03-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(597, '2025-03-12', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(598, '2025-03-13', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(599, '2025-03-13', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(600, '2025-03-13', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(601, '2025-03-13', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(602, '2025-03-13', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(603, '2025-03-13', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 15), +(604, '2025-03-13', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(605, '2025-03-13', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(606, '2025-03-13', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(607, '2025-03-13', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(608, '2025-03-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(609, '2025-03-14', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 4), +(610, '2025-03-14', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(612, '2025-03-14', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(613, '2025-03-14', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 15), +(614, '2025-03-14', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(615, '2025-03-14', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(616, '2025-03-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(617, '2025-03-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(628, '2025-03-18', 1, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(629, '2025-03-18', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(630, '2025-03-18', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(631, '2025-03-18', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(632, '2025-03-18', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(633, '2025-03-18', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 15), +(634, '2025-03-18', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(635, '2025-03-18', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(636, '2025-03-18', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(637, '2025-03-18', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(648, '2025-03-17', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(649, '2025-03-17', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 4), +(650, '2025-03-17', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(651, '2025-03-17', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 4), +(652, '2025-03-17', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(653, '2025-03-17', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 15), +(654, '2025-03-17', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(655, '2025-03-17', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(656, '2025-03-17', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(657, '2025-03-17', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(658, '2025-03-19', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 4), +(659, '2025-03-19', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(660, '2025-03-19', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(661, '2025-03-19', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 4), +(662, '2025-03-19', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(663, '2025-03-19', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(664, '2025-03-19', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(665, '2025-03-19', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, '용접기 보관함 제작', '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 14), +(666, '2025-03-19', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 4), +(667, '2025-03-19', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(668, '2025-03-20', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(669, '2025-03-20', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(670, '2025-03-20', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(671, '2025-03-20', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(672, '2025-03-20', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(673, '2025-03-20', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(674, '2025-03-20', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(675, '2025-03-20', 4, 7, NULL, NULL, 2.0, NULL, '근무', NULL, '용접기 보관함 제작', '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 14), +(676, '2025-03-20', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(677, '2025-03-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(678, '2025-03-21', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:27', '2025-04-16 21:34:27', NULL, NULL, NULL, 8), +(679, '2025-03-21', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(680, '2025-03-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(681, '2025-03-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(682, '2025-03-21', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(683, '2025-03-21', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(684, '2025-03-21', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(685, '2025-03-21', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, '용기 보관함 제작', '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 14), +(686, '2025-03-21', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(687, '2025-03-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(688, '2025-03-24', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(689, '2025-03-24', 2, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(690, '2025-03-24', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(691, '2025-03-24', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(692, '2025-03-24', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(693, '2025-03-24', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(694, '2025-03-24', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(695, '2025-03-24', 4, 7, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 보관함 제작', '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 14), +(696, '2025-03-24', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(697, '2025-03-24', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(698, '2025-03-25', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(699, '2025-03-25', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(700, '2025-03-25', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(701, '2025-03-25', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(702, '2025-03-25', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(703, '2025-03-25', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(704, '2025-03-25', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(705, '2025-03-25', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 14), +(706, '2025-03-25', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(707, '2025-03-25', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(708, '2025-03-26', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 13), +(709, '2025-03-26', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 15), +(710, '2025-03-26', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(711, '2025-03-26', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(712, '2025-03-26', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(713, '2025-03-26', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(714, '2025-03-26', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(715, '2025-03-26', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 13), +(716, '2025-03-26', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(717, '2025-03-26', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(718, '2025-03-27', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(719, '2025-03-27', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(720, '2025-03-27', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(721, '2025-03-27', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(722, '2025-03-27', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(723, '2025-03-27', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(724, '2025-03-27', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 15), +(725, '2025-03-27', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(726, '2025-03-27', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(727, '2025-03-27', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(728, '2025-03-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(729, '2025-03-28', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(730, '2025-03-28', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 15), +(731, '2025-03-28', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 15), +(732, '2025-03-28', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(733, '2025-03-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(734, '2025-03-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(735, '2025-03-28', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(736, '2025-03-28', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(737, '2025-03-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(738, '2025-03-31', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(739, '2025-03-31', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 5), +(740, '2025-03-31', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(741, '2025-03-31', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(742, '2025-03-31', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(743, '2025-03-31', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(744, '2025-03-31', 10, 13, NULL, NULL, NULL, NULL, '유급', NULL, '외조모상(2일)', '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 15), +(745, '2025-03-31', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 5), +(746, '2025-03-31', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(747, '2025-03-31', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(748, '2025-03-14', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-17 01:53:24', '2025-04-17 01:53:24', NULL, NULL, NULL, 4), +(749, '2025-04-01', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(750, '2025-04-01', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(751, '2025-04-01', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(752, '2025-04-01', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(753, '2025-04-01', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(754, '2025-04-01', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(755, '2025-04-01', 10, 13, NULL, NULL, NULL, NULL, '유급', NULL, '외조모상', '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 15), +(756, '2025-04-01', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(757, '2025-04-01', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(758, '2025-04-01', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:43', '2025-04-17 04:22:43', NULL, NULL, NULL, 9), +(769, '2025-04-02', 1, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-17 04:25:55', '2025-04-17 04:25:55', NULL, NULL, NULL, 9), +(770, '2025-04-02', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(771, '2025-04-02', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(773, '2025-04-02', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(774, '2025-04-02', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(775, '2025-04-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 15), +(776, '2025-04-02', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 15), +(777, '2025-04-02', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(778, '2025-04-02', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(779, '2025-04-03', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(780, '2025-04-03', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(781, '2025-04-03', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(783, '2025-04-03', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(784, '2025-04-03', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(785, '2025-04-03', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(786, '2025-04-03', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(787, '2025-04-03', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(788, '2025-04-03', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(789, '2025-04-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(790, '2025-04-04', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(791, '2025-04-04', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(792, '2025-04-04', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(793, '2025-04-04', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(794, '2025-04-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(795, '2025-04-04', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(796, '2025-04-04', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(797, '2025-04-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(798, '2025-04-04', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(799, '2025-04-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(800, '2025-04-07', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(801, '2025-04-07', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(802, '2025-04-07', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(803, '2025-04-07', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(804, '2025-04-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(805, '2025-04-07', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(806, '2025-04-07', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(807, '2025-04-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(808, '2025-04-07', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(809, '2025-04-08', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(811, '2025-04-08', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(812, '2025-04-08', 7, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(813, '2025-04-08', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(814, '2025-04-08', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(815, '2025-04-08', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(816, '2025-04-08', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(817, '2025-04-08', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(818, '2025-04-08', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(819, '2025-04-09', 1, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-17 04:43:02', '2025-04-17 04:43:02', NULL, NULL, NULL, 9), +(820, '2025-04-09', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:02', '2025-04-17 04:43:02', NULL, NULL, NULL, 9), +(821, '2025-04-09', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(822, '2025-04-09', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(823, '2025-04-09', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(824, '2025-04-09', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(825, '2025-04-09', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(826, '2025-04-09', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(827, '2025-04-09', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(828, '2025-04-09', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(829, '2025-04-10', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(830, '2025-04-10', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(831, '2025-04-10', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(832, '2025-04-10', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(833, '2025-04-10', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(834, '2025-04-10', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(835, '2025-04-10', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(836, '2025-04-10', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(837, '2025-04-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(838, '2025-04-10', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(839, '2025-04-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 9), +(840, '2025-04-11', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 9), +(841, '2025-04-11', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 5), +(842, '2025-04-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(843, '2025-04-11', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 5), +(844, '2025-04-11', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 15), +(845, '2025-04-11', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 5), +(846, '2025-04-11', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(847, '2025-04-11', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 15), +(848, '2025-04-11', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(849, '2025-04-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(850, '2025-04-14', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(851, '2025-04-14', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 5), +(852, '2025-04-14', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(853, '2025-04-14', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 5), +(854, '2025-04-14', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(855, '2025-04-14', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(856, '2025-04-14', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(857, '2025-04-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(858, '2025-04-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(859, '2025-04-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(860, '2025-04-17', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(861, '2025-04-17', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(862, '2025-04-17', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(863, '2025-04-17', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(864, '2025-04-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(865, '2025-04-17', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(866, '2025-04-17', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(867, '2025-04-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(868, '2025-04-17', 6, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(879, '2025-04-21', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(880, '2025-04-21', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(881, '2025-04-21', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(882, '2025-04-21', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(883, '2025-04-21', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(884, '2025-04-21', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(885, '2025-04-21', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(886, '2025-04-21', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(887, '2025-04-21', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(888, '2025-04-21', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(889, '2025-04-22', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(890, '2025-04-22', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(891, '2025-04-22', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(892, '2025-04-22', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(893, '2025-04-22', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(894, '2025-04-22', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(895, '2025-04-22', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(896, '2025-04-22', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(897, '2025-04-22', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(898, '2025-04-22', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(899, '2025-04-23', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(900, '2025-04-23', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(901, '2025-04-23', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(902, '2025-04-23', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(903, '2025-04-23', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(904, '2025-04-23', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(905, '2025-04-23', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(906, '2025-04-23', 4, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(907, '2025-04-23', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(908, '2025-04-23', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(909, '2025-04-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, '벨브 부적합 관련 작업 추가', '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(910, '2025-04-24', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(911, '2025-04-24', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(912, '2025-04-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(913, '2025-04-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(914, '2025-04-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(915, '2025-04-24', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(916, '2025-04-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(917, '2025-04-24', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(918, '2025-04-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(919, '2025-04-25', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(920, '2025-04-25', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(921, '2025-04-25', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 5), +(922, '2025-04-25', 7, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(923, '2025-04-25', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(924, '2025-04-25', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(925, '2025-04-25', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(926, '2025-04-25', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '확관 작업', '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 5), +(927, '2025-04-25', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(928, '2025-04-25', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:39', '2025-04-25 04:23:39', NULL, NULL, NULL, 5), +(929, '2025-04-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:22', '2025-04-28 23:20:22', NULL, NULL, NULL, 9), +(930, '2025-04-28', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(931, '2025-04-28', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(932, '2025-04-28', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(934, '2025-04-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(935, '2025-04-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(936, '2025-04-28', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(937, '2025-04-28', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(938, '2025-04-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(939, '2025-04-29', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 9), +(940, '2025-04-29', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(941, '2025-04-29', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(942, '2025-04-29', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 9), +(943, '2025-04-29', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(944, '2025-04-29', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(945, '2025-04-29', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 14), +(946, '2025-04-29', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(947, '2025-04-29', 8, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(948, '2025-04-29', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(949, '2025-04-30', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(950, '2025-04-30', 2, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(951, '2025-04-30', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(953, '2025-04-30', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 15), +(954, '2025-04-30', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(955, '2025-04-30', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(956, '2025-04-30', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(957, '2025-04-30', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 15), +(958, '2025-04-30', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(959, '2025-04-30', 4, 7, NULL, NULL, NULL, NULL, '반반차', NULL, '제2공장 공사', '2025-04-30 04:22:04', '2025-04-30 04:22:04', NULL, NULL, NULL, 14), +(1023, '2025-04-15', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1024, '2025-04-15', 2, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1025, '2025-04-15', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1026, '2025-04-15', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1027, '2025-04-15', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1028, '2025-04-15', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1029, '2025-04-15', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1030, '2025-04-15', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1031, '2025-04-15', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1032, '2025-04-15', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1033, '2025-04-16', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1034, '2025-04-16', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1035, '2025-04-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5); +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(1036, '2025-04-16', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1037, '2025-04-16', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1038, '2025-04-16', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1039, '2025-04-16', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1040, '2025-04-16', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 15), +(1041, '2025-04-16', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1042, '2025-04-16', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1043, '2025-04-18', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1044, '2025-04-18', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1045, '2025-04-18', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1046, '2025-04-18', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1047, '2025-04-18', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 15), +(1048, '2025-04-18', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1049, '2025-04-18', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1050, '2025-04-18', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1051, '2025-04-18', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1052, '2025-04-18', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1053, '2025-04-02', 7, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-07 02:19:00', '2025-05-07 02:19:00', NULL, NULL, NULL, 9), +(1054, '2025-04-03', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 02:19:45', '2025-05-07 02:19:45', NULL, NULL, NULL, 9), +(1055, '2025-04-08', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 02:20:22', '2025-05-07 02:20:22', NULL, NULL, NULL, 9), +(1056, '2025-04-28', 8, 1, NULL, NULL, NULL, NULL, '반반차', NULL, 'NCR 벨브라인 설치', '2025-05-07 02:21:44', '2025-05-07 02:21:44', NULL, NULL, NULL, 9), +(1057, '2025-05-02', 1, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1058, '2025-05-02', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1059, '2025-05-02', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1060, '2025-05-02', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1061, '2025-05-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1062, '2025-05-02', 6, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1063, '2025-05-02', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1064, '2025-05-02', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1065, '2025-05-02', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1066, '2025-05-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1067, '2025-05-07', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1068, '2025-05-07', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1069, '2025-05-07', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1070, '2025-05-07', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1071, '2025-05-07', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1072, '2025-05-07', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1073, '2025-05-07', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1074, '2025-05-07', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1075, '2025-05-07', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1076, '2025-05-07', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1078, '2025-05-08', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1079, '2025-05-08', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1080, '2025-05-08', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1081, '2025-05-08', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1082, '2025-05-08', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1083, '2025-05-08', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1084, '2025-05-08', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1085, '2025-05-08', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1086, '2025-05-08', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1087, '2025-05-08', 1, 7, NULL, NULL, NULL, NULL, '반반차', NULL, '작업장 구역 설치', '2025-05-08 06:57:51', '2025-05-08 06:57:51', NULL, NULL, NULL, 14), +(1088, '2025-05-09', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1089, '2025-05-09', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1090, '2025-05-09', 3, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1091, '2025-05-09', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1092, '2025-05-09', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1093, '2025-05-09', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1094, '2025-05-09', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1095, '2025-05-09', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1096, '2025-05-09', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1097, '2025-05-09', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1100, '2025-05-12', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-11 21:52:46', '2025-05-11 21:52:46', NULL, NULL, NULL, 15), +(1108, '2025-05-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1111, '2025-05-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1113, '2025-05-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1115, '2025-05-12', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1116, '2025-05-12', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1117, '2025-05-13', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1118, '2025-05-13', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1119, '2025-05-13', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1120, '2025-05-13', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1121, '2025-05-13', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1122, '2025-05-13', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1123, '2025-05-13', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1124, '2025-05-13', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1125, '2025-05-13', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1126, '2025-05-13', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1127, '2025-05-12', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1128, '2025-05-12', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1129, '2025-05-12', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1130, '2025-05-12', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1131, '2025-05-14', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1132, '2025-05-14', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1133, '2025-05-14', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1134, '2025-05-14', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1135, '2025-05-14', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1136, '2025-05-14', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1137, '2025-05-14', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1138, '2025-05-14', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1139, '2025-05-14', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1140, '2025-05-14', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1141, '2025-05-15', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 14), +(1142, '2025-05-15', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1143, '2025-05-15', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1144, '2025-05-15', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1145, '2025-05-15', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1146, '2025-05-15', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1147, '2025-05-15', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 14), +(1148, '2025-05-15', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1149, '2025-05-15', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1150, '2025-05-15', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1151, '2025-05-16', 1, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1152, '2025-05-16', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1153, '2025-05-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1154, '2025-05-16', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1155, '2025-05-16', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1156, '2025-05-16', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1157, '2025-05-16', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1158, '2025-05-16', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1159, '2025-05-16', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1160, '2025-05-16', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1171, '2025-05-19', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1172, '2025-05-19', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 4), +(1173, '2025-05-19', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1174, '2025-05-19', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1175, '2025-05-19', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1176, '2025-05-19', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1177, '2025-05-19', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1179, '2025-05-19', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1180, '2025-05-19', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1181, '2025-05-21', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1183, '2025-05-21', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1184, '2025-05-21', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1185, '2025-05-21', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1186, '2025-05-21', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1187, '2025-05-21', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1188, '2025-05-21', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1189, '2025-05-21', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1190, '2025-05-21', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1191, '2025-05-20', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1192, '2025-05-20', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 3), +(1193, '2025-05-20', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1194, '2025-05-20', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1195, '2025-05-20', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1196, '2025-05-20', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1197, '2025-05-20', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1198, '2025-05-20', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1199, '2025-05-20', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1200, '2025-05-20', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1201, '2025-05-22', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1202, '2025-05-22', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 3), +(1203, '2025-05-22', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1204, '2025-05-22', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1205, '2025-05-22', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1206, '2025-05-22', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1207, '2025-05-22', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1208, '2025-05-22', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1209, '2025-05-22', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1210, '2025-05-22', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1211, '2025-05-21', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-22 04:54:12', '2025-05-22 04:54:12', NULL, NULL, NULL, 15), +(1215, '2025-05-26', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-26 06:58:00', '2025-05-26 06:58:00', NULL, NULL, NULL, 15), +(1222, '2025-05-19', 8, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-01 22:34:36', '2025-06-01 22:34:36', NULL, NULL, NULL, 3), +(1223, '2025-05-26', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1224, '2025-05-26', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1225, '2025-05-26', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1226, '2025-05-26', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1227, '2025-05-26', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1228, '2025-05-26', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1229, '2025-05-26', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1230, '2025-05-26', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1231, '2025-05-26', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1232, '2025-05-23', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1233, '2025-05-23', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 3), +(1234, '2025-05-23', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1235, '2025-05-23', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1236, '2025-05-23', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1237, '2025-05-23', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1238, '2025-05-23', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1239, '2025-05-23', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1240, '2025-05-23', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1241, '2025-05-23', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1242, '2025-05-27', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1243, '2025-05-27', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1244, '2025-05-27', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1245, '2025-05-27', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1246, '2025-05-27', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1247, '2025-05-27', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1248, '2025-05-27', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1249, '2025-05-27', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1250, '2025-05-27', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1251, '2025-05-27', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1252, '2025-05-28', 1, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-06-01 22:46:40', '2025-06-01 22:46:40', NULL, NULL, NULL, 8), +(1258, '2025-05-28', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:46:40', '2025-06-01 22:46:40', NULL, NULL, NULL, 8), +(1262, '2025-05-28', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1263, '2025-05-28', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1264, '2025-05-28', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1265, '2025-05-28', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1266, '2025-05-28', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1267, '2025-05-28', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1268, '2025-05-28', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1269, '2025-05-28', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1270, '2025-05-29', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1271, '2025-05-29', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1272, '2025-05-29', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1273, '2025-05-29', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1274, '2025-05-29', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1275, '2025-05-29', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1276, '2025-05-29', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1277, '2025-05-29', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1278, '2025-05-29', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1279, '2025-05-29', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1281, '2025-05-30', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1282, '2025-05-30', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1283, '2025-05-30', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1284, '2025-05-30', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1285, '2025-05-30', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1286, '2025-05-30', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1287, '2025-05-30', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1288, '2025-05-30', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1289, '2025-05-30', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1290, '2025-06-02', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:18', '2025-06-01 22:52:18', NULL, NULL, NULL, 8), +(1291, '2025-06-02', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 5), +(1292, '2025-06-02', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1293, '2025-06-02', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1294, '2025-06-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1295, '2025-06-02', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1296, '2025-06-02', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1297, '2025-06-02', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1298, '2025-06-02', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1299, '2025-06-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1300, '2025-05-30', 1, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-01 23:17:51', '2025-06-01 23:17:51', NULL, NULL, NULL, 8), +(1301, '2025-01-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 23:31:26', '2025-06-01 23:31:26', NULL, NULL, NULL, 15), +(1302, '2025-06-04', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1303, '2025-06-04', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1304, '2025-06-04', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1305, '2025-06-04', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 15), +(1306, '2025-06-04', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1307, '2025-06-04', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1308, '2025-06-04', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1309, '2025-06-04', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1310, '2025-06-04', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1311, '2025-06-04', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1312, '2025-06-09', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:28', NULL, NULL, NULL, 8), +(1313, '2025-06-09', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1314, '2025-06-09', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:30', NULL, NULL, NULL, 8), +(1315, '2025-06-09', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1316, '2025-06-09', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:31', NULL, NULL, NULL, 8), +(1317, '2025-06-09', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1318, '2025-06-09', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:32', NULL, NULL, NULL, 8), +(1319, '2025-06-09', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1320, '2025-06-09', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 15), +(1321, '2025-06-09', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:34', NULL, NULL, NULL, 8), +(1322, '2025-06-10', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:03', '2025-06-13 03:43:51', NULL, NULL, NULL, 8), +(1323, '2025-06-10', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:03', '2025-06-10 08:47:03', NULL, NULL, NULL, 5), +(1324, '2025-06-10', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:03', '2025-06-13 03:43:53', NULL, NULL, NULL, 8), +(1325, '2025-06-10', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:54', NULL, NULL, NULL, 8), +(1326, '2025-06-10', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1327, '2025-06-10', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1328, '2025-06-10', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:55', NULL, NULL, NULL, 8), +(1329, '2025-06-10', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1330, '2025-06-10', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:56', NULL, NULL, NULL, 8), +(1331, '2025-06-10', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:56', NULL, NULL, NULL, 8), +(1332, '2025-06-11', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:18', NULL, NULL, NULL, 8), +(1333, '2025-06-11', 2, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1334, '2025-06-11', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:19', NULL, NULL, NULL, 8), +(1335, '2025-06-11', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:20', NULL, NULL, NULL, 8), +(1336, '2025-06-11', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1337, '2025-06-11', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1338, '2025-06-11', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:22', NULL, NULL, NULL, 8), +(1339, '2025-06-11', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1340, '2025-06-11', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:23', NULL, NULL, NULL, 8), +(1341, '2025-06-11', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:23', NULL, NULL, NULL, 8), +(1342, '2025-06-13', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1343, '2025-06-13', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1344, '2025-06-13', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1345, '2025-06-13', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1346, '2025-06-13', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1347, '2025-06-13', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1348, '2025-06-13', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 15), +(1349, '2025-06-13', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1350, '2025-06-13', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1351, '2025-06-13', 10, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1352, '2025-06-05', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1353, '2025-06-05', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1354, '2025-06-05', 3, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1355, '2025-06-05', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1356, '2025-06-05', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1357, '2025-06-05', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1358, '2025-06-05', 7, 4, NULL, NULL, NULL, NULL, '반반차', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1359, '2025-06-05', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1360, '2025-06-05', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1361, '2025-06-05', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1362, '2025-06-12', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1363, '2025-06-12', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1364, '2025-06-12', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1365, '2025-06-12', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1366, '2025-06-12', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1367, '2025-06-12', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1368, '2025-06-12', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1369, '2025-06-12', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1370, '2025-06-12', 9, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1371, '2025-06-12', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1372, '2025-06-16', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:26', '2025-06-16 04:26:26', NULL, NULL, NULL, 8), +(1373, '2025-06-16', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1374, '2025-06-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1375, '2025-06-16', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1376, '2025-06-16', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1377, '2025-06-16', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'Vessel NDE 불량 수리', '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1378, '2025-06-16', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 15), +(1379, '2025-06-16', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'Vessel NDE 불량 수리', '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1380, '2025-06-16', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1381, '2025-06-16', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1382, '2025-06-17', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1383, '2025-06-17', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1384, '2025-06-17', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1385, '2025-06-17', 4, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:36:28', NULL, NULL, NULL, 5), +(1386, '2025-06-17', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1387, '2025-06-17', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 비파괴 불량', '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1388, '2025-06-17', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1389, '2025-06-17', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 비파괴 불량', '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1390, '2025-06-17', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1391, '2025-06-17', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1392, '2025-06-18', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1393, '2025-06-18', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1394, '2025-06-18', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1395, '2025-06-18', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1396, '2025-06-18', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1397, '2025-06-18', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1398, '2025-06-18', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1399, '2025-06-18', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1400, '2025-06-18', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1401, '2025-06-18', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1402, '2025-06-24', 1, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1403, '2025-06-24', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 5), +(1404, '2025-06-24', 3, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1405, '2025-06-24', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1406, '2025-06-24', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1407, '2025-06-24', 6, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1408, '2025-06-24', 7, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1409, '2025-06-24', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 5), +(1410, '2025-06-24', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1411, '2025-06-24', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1412, '2025-06-25', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1413, '2025-06-25', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 5), +(1414, '2025-06-25', 3, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1415, '2025-06-25', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1416, '2025-06-25', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1417, '2025-06-25', 6, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1418, '2025-06-25', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1419, '2025-06-25', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 5), +(1420, '2025-06-25', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1421, '2025-06-25', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1422, '2025-06-26', 1, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1423, '2025-06-26', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1424, '2025-06-26', 3, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1425, '2025-06-26', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1426, '2025-06-26', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1427, '2025-06-26', 6, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1428, '2025-06-26', 7, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1429, '2025-06-26', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1430, '2025-06-26', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1431, '2025-06-26', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1432, '2025-06-27', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1433, '2025-06-27', 2, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1434, '2025-06-27', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1435, '2025-06-27', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1436, '2025-06-27', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1437, '2025-06-27', 6, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1438, '2025-06-27', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1439, '2025-06-27', 8, 3, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1440, '2025-06-27', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1441, '2025-06-27', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1442, '2025-06-19', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1443, '2025-06-19', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 5), +(1444, '2025-06-19', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1445, '2025-06-19', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8); +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(1446, '2025-06-19', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 5), +(1447, '2025-06-19', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1448, '2025-06-19', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1449, '2025-06-19', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 5), +(1450, '2025-06-19', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1451, '2025-06-19', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1452, '2025-06-20', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1453, '2025-06-20', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 5), +(1454, '2025-06-20', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1455, '2025-06-20', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1456, '2025-06-20', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 5), +(1457, '2025-06-20', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1458, '2025-06-20', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1459, '2025-06-20', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 5), +(1460, '2025-06-20', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1461, '2025-06-20', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1462, '2025-06-23', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1463, '2025-06-23', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 5), +(1464, '2025-06-23', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1465, '2025-06-23', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1466, '2025-06-23', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 5), +(1467, '2025-06-23', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1468, '2025-06-23', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1469, '2025-06-23', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 5), +(1470, '2025-06-23', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1471, '2025-06-23', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1472, '2025-06-30', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1473, '2025-06-30', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 5), +(1474, '2025-06-30', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1475, '2025-06-30', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1476, '2025-06-30', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 5), +(1477, '2025-06-30', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 5), +(1478, '2025-06-30', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1479, '2025-06-30', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 5), +(1480, '2025-06-30', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1481, '2025-06-30', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1482, '2025-07-01', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 8), +(1483, '2025-07-01', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1484, '2025-07-01', 3, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1485, '2025-07-01', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 8), +(1486, '2025-07-01', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 8), +(1487, '2025-07-01', 6, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1488, '2025-07-01', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 8), +(1489, '2025-07-01', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1490, '2025-07-01', 9, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1491, '2025-07-01', 10, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1492, '2025-07-02', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 9), +(1493, '2025-07-02', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1494, '2025-07-02', 3, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1495, '2025-07-02', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 9), +(1496, '2025-07-02', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 9), +(1497, '2025-07-02', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1498, '2025-07-02', 7, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1499, '2025-07-02', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1500, '2025-07-02', 9, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1501, '2025-07-02', 10, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1502, '2025-07-03', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1503, '2025-07-03', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 5), +(1504, '2025-07-03', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1505, '2025-07-03', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1506, '2025-07-03', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1507, '2025-07-03', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 5), +(1508, '2025-07-03', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1509, '2025-07-03', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 5), +(1510, '2025-07-03', 9, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 5), +(1511, '2025-07-03', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1512, '2025-07-04', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1513, '2025-07-04', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1514, '2025-07-04', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1515, '2025-07-04', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1516, '2025-07-04', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1517, '2025-07-04', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1518, '2025-07-04', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1519, '2025-07-04', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1520, '2025-07-04', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1521, '2025-07-04', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1522, '2025-07-05', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1523, '2025-07-05', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1524, '2025-07-05', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1525, '2025-07-05', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1526, '2025-07-05', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1527, '2025-07-05', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1528, '2025-07-06', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1529, '2025-07-06', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1530, '2025-07-06', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1531, '2025-07-06', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1532, '2025-07-06', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1533, '2025-07-06', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1534, '2025-07-06', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1535, '2025-07-06', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1536, '2025-07-07', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:13', '2025-07-07 23:35:13', NULL, NULL, NULL, 9), +(1537, '2025-07-07', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-07 23:35:13', '2025-07-07 23:35:13', NULL, NULL, NULL, 9), +(1538, '2025-07-07', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:13', '2025-07-07 23:35:13', NULL, NULL, NULL, 9), +(1539, '2025-07-07', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-07 23:35:13', '2025-07-07 23:35:13', NULL, NULL, NULL, 9), +(1540, '2025-07-07', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:13', '2025-07-07 23:35:13', NULL, NULL, NULL, 9), +(1541, '2025-07-07', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:14', '2025-07-07 23:35:14', NULL, NULL, NULL, 9), +(1542, '2025-07-07', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:14', '2025-07-07 23:35:14', NULL, NULL, NULL, 9), +(1543, '2025-07-07', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:14', '2025-07-07 23:35:14', NULL, NULL, NULL, 9), +(1544, '2025-07-07', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:14', '2025-07-07 23:35:14', NULL, NULL, NULL, 9), +(1545, '2025-07-07', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:14', '2025-07-07 23:35:14', NULL, NULL, NULL, 9), +(1546, '2025-07-08', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1547, '2025-07-08', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1548, '2025-07-08', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1549, '2025-07-08', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1550, '2025-07-08', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1551, '2025-07-08', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1552, '2025-07-08', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1553, '2025-07-08', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1554, '2025-07-08', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1555, '2025-07-08', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1556, '2025-07-09', 1, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1557, '2025-07-09', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1558, '2025-07-09', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1559, '2025-07-09', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1560, '2025-07-09', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1561, '2025-07-09', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1562, '2025-07-09', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1563, '2025-07-09', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1564, '2025-07-09', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1565, '2025-07-09', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1566, '2025-07-10', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1567, '2025-07-10', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1568, '2025-07-10', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1569, '2025-07-10', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1570, '2025-07-10', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1571, '2025-07-10', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1572, '2025-07-10', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1573, '2025-07-10', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1574, '2025-07-10', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1575, '2025-07-10', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1576, '2025-07-14', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1577, '2025-07-14', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1578, '2025-07-14', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1579, '2025-07-14', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1580, '2025-07-14', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1581, '2025-07-14', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1582, '2025-07-14', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1583, '2025-07-14', 8, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1584, '2025-07-14', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1585, '2025-07-14', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1586, '2025-07-15', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:41', '2025-07-30 02:23:58', NULL, NULL, NULL, 8), +(1587, '2025-07-15', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:41', '2025-07-30 02:23:58', NULL, NULL, NULL, 8), +(1588, '2025-07-15', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:41', '2025-07-30 02:24:00', NULL, NULL, NULL, 8), +(1589, '2025-07-15', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-07-30 02:08:41', '2025-07-30 02:24:00', NULL, NULL, NULL, 15), +(1590, '2025-07-15', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:01', NULL, NULL, NULL, 5), +(1591, '2025-07-15', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:02', NULL, NULL, NULL, 8), +(1592, '2025-07-15', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:02', NULL, NULL, NULL, 8), +(1593, '2025-07-15', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:03', NULL, NULL, NULL, 8), +(1594, '2025-07-15', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:03', NULL, NULL, NULL, 5), +(1595, '2025-07-15', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:04', NULL, NULL, NULL, 8), +(1596, '2025-07-16', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:17', '2025-07-30 02:10:17', NULL, NULL, NULL, 8), +(1597, '2025-07-16', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1598, '2025-07-16', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1599, '2025-07-16', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 8), +(1600, '2025-07-16', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1601, '2025-07-16', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1602, '2025-07-16', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 8), +(1603, '2025-07-16', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1604, '2025-07-16', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1605, '2025-07-16', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1606, '2025-07-17', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:24:31', NULL, NULL, NULL, 7), +(1607, '2025-07-17', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1608, '2025-07-17', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1609, '2025-07-17', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1610, '2025-07-17', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1611, '2025-07-17', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1612, '2025-07-17', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1613, '2025-07-17', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1614, '2025-07-17', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1615, '2025-07-17', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1616, '2025-07-18', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 9), +(1617, '2025-07-18', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1618, '2025-07-18', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1619, '2025-07-18', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1620, '2025-07-18', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 9), +(1621, '2025-07-18', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1622, '2025-07-18', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 9), +(1623, '2025-07-18', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1624, '2025-07-18', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1625, '2025-07-18', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1626, '2025-07-21', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 7), +(1627, '2025-07-21', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1628, '2025-07-21', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1629, '2025-07-21', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 9), +(1630, '2025-07-21', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 9), +(1631, '2025-07-21', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1632, '2025-07-21', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1633, '2025-07-21', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1634, '2025-07-21', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1635, '2025-07-21', 10, 3, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1636, '2025-07-22', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 5), +(1637, '2025-07-22', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1638, '2025-07-22', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1639, '2025-07-22', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 7), +(1640, '2025-07-22', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 7), +(1641, '2025-07-22', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1642, '2025-07-22', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1643, '2025-07-22', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1644, '2025-07-22', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1645, '2025-07-22', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1646, '2025-07-23', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 7), +(1647, '2025-07-23', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1648, '2025-07-23', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1649, '2025-07-23', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 7), +(1650, '2025-07-23', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 7), +(1651, '2025-07-23', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1652, '2025-07-23', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1653, '2025-07-23', 8, 13, NULL, NULL, NULL, NULL, '유급', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 22:39:10', NULL, NULL, NULL, 15), +(1654, '2025-07-23', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1655, '2025-07-23', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1656, '2025-07-24', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 7), +(1657, '2025-07-24', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1658, '2025-07-24', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1659, '2025-07-24', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 7), +(1660, '2025-07-24', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 7), +(1661, '2025-07-24', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1662, '2025-07-24', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1663, '2025-07-24', 8, 13, NULL, NULL, NULL, NULL, '유급', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 15), +(1664, '2025-07-24', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1665, '2025-07-24', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1666, '2025-07-25', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 13), +(1667, '2025-07-25', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1668, '2025-07-25', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1669, '2025-07-25', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1670, '2025-07-25', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 13), +(1671, '2025-07-25', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 13), +(1672, '2025-07-25', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 18), +(1673, '2025-07-25', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1674, '2025-07-25', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1675, '2025-07-25', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1676, '2025-07-28', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 7), +(1677, '2025-07-28', 2, 5, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 13), +(1678, '2025-07-28', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1679, '2025-07-28', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 7), +(1680, '2025-07-28', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 7), +(1681, '2025-07-28', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1682, '2025-07-28', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1683, '2025-07-28', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1684, '2025-07-28', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1685, '2025-07-28', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1686, '2025-07-11', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1687, '2025-07-11', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1688, '2025-07-11', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1689, '2025-07-11', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1690, '2025-07-11', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1691, '2025-07-11', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1692, '2025-07-11', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1693, '2025-07-11', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1694, '2025-07-11', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1695, '2025-07-11', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:31', '2025-07-30 22:48:31', NULL, NULL, NULL, 9), +(1696, '2025-07-12', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1697, '2025-07-12', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1698, '2025-07-12', 3, 13, NULL, NULL, NULL, NULL, '휴무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 15), +(1699, '2025-07-12', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1700, '2025-07-12', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1701, '2025-07-12', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1702, '2025-07-12', 7, 13, NULL, NULL, NULL, NULL, '휴무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 15), +(1703, '2025-07-12', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1704, '2025-07-12', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1705, '2025-07-12', 10, 13, NULL, NULL, NULL, NULL, '휴무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 15), +(1706, '2025-07-29', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 7), +(1707, '2025-07-29', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1708, '2025-07-29', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1709, '2025-07-29', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 7), +(1710, '2025-07-29', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 7), +(1711, '2025-07-29', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1712, '2025-07-29', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1713, '2025-07-29', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1714, '2025-07-29', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1715, '2025-07-29', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1716, '2025-07-30', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 7), +(1717, '2025-07-30', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1718, '2025-07-30', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1719, '2025-07-30', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 7), +(1720, '2025-07-30', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 7), +(1721, '2025-07-30', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1722, '2025-07-30', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1723, '2025-07-30', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1724, '2025-07-30', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1725, '2025-07-30', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1726, '2025-07-31', 1, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 7), +(1727, '2025-07-31', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1728, '2025-07-31', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1729, '2025-07-31', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 7), +(1730, '2025-07-31', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 7), +(1731, '2025-07-31', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1732, '2025-07-31', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1733, '2025-07-31', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1734, '2025-07-31', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1735, '2025-07-31', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1736, '2025-09-18', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, '냉동기', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 18), +(1737, '2025-09-18', 2, 8, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 8), +(1738, '2025-09-18', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'BOG', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 5), +(1739, '2025-09-18', 4, 8, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 8), +(1740, '2025-09-18', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, '냉동기', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 9), +(1741, '2025-09-18', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'BOG', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 5), +(1742, '2025-09-18', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, '냉동기', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 18), +(1743, '2025-09-18', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'BOG', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 5), +(1744, '2025-09-18', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'BOG', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 5), +(1745, '2025-09-18', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'BOG', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 5), +(1746, '2025-10-01', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 16), +(1747, '2025-10-01', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 16), +(1748, '2025-10-01', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1749, '2025-10-01', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 5), +(1750, '2025-10-01', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 16), +(1751, '2025-10-01', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1752, '2025-10-01', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1753, '2025-10-01', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1754, '2025-10-01', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1755, '2025-10-01', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1756, '2025-10-02', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1757, '2025-10-02', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1758, '2025-10-02', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 15), +(1759, '2025-10-02', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1760, '2025-10-02', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1761, '2025-10-02', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1762, '2025-10-02', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1763, '2025-10-02', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1764, '2025-10-02', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1765, '2025-10-02', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_report_audit_log` +-- + +CREATE TABLE `work_report_audit_log` ( + `log_id` int(11) NOT NULL, + `action` enum('ADD_ACCUMULATE','DELETE_SINGLE','UPDATE','DELETE','CREATE','DELETE_BATCH') NOT NULL COMMENT '작업 유형', + `report_id` int(11) DEFAULT NULL COMMENT '관련 보고서 ID', + `old_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 전 값' CHECK (json_valid(`old_values`)), + `new_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 후 값' CHECK (json_valid(`new_values`)), + `changed_by` int(11) NOT NULL COMMENT '변경자 ID', + `change_reason` varchar(500) DEFAULT NULL COMMENT '변경 사유', + `ip_address` varchar(45) DEFAULT NULL COMMENT 'IP 주소', + `user_agent` text DEFAULT NULL COMMENT '사용자 에이전트', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '변경 시간' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_report_audit_log` +-- + +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(1, 'ADD_ACCUMULATE', 12, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 02:56:12'), +(2, 'DELETE_SINGLE', 12, '{\"worker_name\":\"김두수\",\"project_name\":\"MP7 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:36'), +(3, 'DELETE_SINGLE', 11, '{\"worker_name\":\"김두수\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:39'), +(4, 'DELETE_SINGLE', 7, '{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:41'), +(5, 'ADD_ACCUMULATE', 13, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":1,\"my_total\":\"1.00\",\"grand_total\":1,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"1.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 03:18:37'), +(6, 'DELETE_SINGLE', 13, '{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:19:23'), +(7, 'ADD_ACCUMULATE', 14, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(8, 'ADD_ACCUMULATE', 15, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(9, 'ADD_ACCUMULATE', 16, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(10, 'ADD_ACCUMULATE', 17, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(11, 'ADD_ACCUMULATE', 18, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(12, 'ADD_ACCUMULATE', 19, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(13, 'ADD_ACCUMULATE', 20, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:47'), +(14, 'ADD_ACCUMULATE', 21, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(15, 'ADD_ACCUMULATE', 22, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(16, 'ADD_ACCUMULATE', 23, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(17, 'ADD_ACCUMULATE', 24, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(18, 'ADD_ACCUMULATE', 25, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(19, 'ADD_ACCUMULATE', 26, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(20, 'ADD_ACCUMULATE', 27, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(21, 'ADD_ACCUMULATE', 28, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(22, 'ADD_ACCUMULATE', 29, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(23, 'ADD_ACCUMULATE', 30, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(24, 'ADD_ACCUMULATE', 31, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(25, 'ADD_ACCUMULATE', 32, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(26, 'ADD_ACCUMULATE', 33, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(27, 'ADD_ACCUMULATE', 34, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(28, 'ADD_ACCUMULATE', 35, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(29, 'ADD_ACCUMULATE', 36, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(30, 'ADD_ACCUMULATE', 37, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(31, 'ADD_ACCUMULATE', 38, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(32, 'ADD_ACCUMULATE', 39, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(33, 'ADD_ACCUMULATE', 40, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(34, 'ADD_ACCUMULATE', 41, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(35, 'ADD_ACCUMULATE', 42, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(36, 'ADD_ACCUMULATE', 43, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(37, 'DELETE_SINGLE', 42, '{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:12:33'), +(38, 'ADD_ACCUMULATE', 44, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:13:02'), +(39, 'ADD_ACCUMULATE', 45, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:13:50'), +(40, 'DELETE_SINGLE', 41, '{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:14:48'), +(41, 'ADD_ACCUMULATE', 46, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:15:22'), +(42, 'DELETE_SINGLE', 1, '{\"worker_name\":\"김두수\",\"project_name\":\"25년 안전보건시설설비\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-01T00:00:00.000Z\"}', NULL, 1, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:20:38'), +(43, 'ADD_ACCUMULATE', 48, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(44, 'ADD_ACCUMULATE', 49, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(45, 'ADD_ACCUMULATE', 50, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(46, 'DELETE_SINGLE', 49, '{\"worker_name\":\"박현수\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:47:54'), +(47, 'ADD_ACCUMULATE', 51, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:48:29'), +(48, 'ADD_ACCUMULATE', 52, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-16 06:50:09'), +(49, 'ADD_ACCUMULATE', 54, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-16 06:50:09'), +(50, 'ADD_ACCUMULATE', 56, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:23:41'), +(51, 'ADD_ACCUMULATE', 58, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:23:41'), +(52, 'ADD_ACCUMULATE', 60, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:33'), +(53, 'ADD_ACCUMULATE', 62, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:33'), +(54, 'ADD_ACCUMULATE', 64, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:44'), +(55, 'ADD_ACCUMULATE', 65, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:25:24'), +(56, 'DELETE_SINGLE', 64, '{\"worker_name\":\"황인용\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-17T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-17 08:26:17'), +(57, 'ADD_ACCUMULATE', 66, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:27:06'), +(58, 'ADD_ACCUMULATE', 67, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:27:06'), +(59, 'ADD_ACCUMULATE', 68, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(60, 'ADD_ACCUMULATE', 69, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(61, 'ADD_ACCUMULATE', 70, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(62, 'ADD_ACCUMULATE', 71, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(63, 'ADD_ACCUMULATE', 72, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(64, 'ADD_ACCUMULATE', 73, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(65, 'ADD_ACCUMULATE', 74, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-17 08:34:11'), +(66, 'ADD_ACCUMULATE', 76, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-17 08:34:11'), +(67, 'ADD_ACCUMULATE', 78, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(68, 'ADD_ACCUMULATE', 79, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(69, 'ADD_ACCUMULATE', 80, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(70, 'ADD_ACCUMULATE', 81, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:02'), +(71, 'ADD_ACCUMULATE', 82, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:03'), +(72, 'ADD_ACCUMULATE', 83, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:03'), +(73, 'ADD_ACCUMULATE', 84, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:45'), +(74, 'ADD_ACCUMULATE', 86, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-18 08:47:55'), +(75, 'ADD_ACCUMULATE', 88, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-18 08:47:55'), +(76, 'ADD_ACCUMULATE', 90, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(77, 'ADD_ACCUMULATE', 92, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(78, 'ADD_ACCUMULATE', 94, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(79, 'ADD_ACCUMULATE', 96, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 09:00:17'), +(80, 'ADD_ACCUMULATE', 98, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-19 06:37:59'), +(81, 'ADD_ACCUMULATE', 99, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-19 06:37:59'), +(82, 'ADD_ACCUMULATE', 100, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(83, 'ADD_ACCUMULATE', 101, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(84, 'ADD_ACCUMULATE', 102, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(85, 'ADD_ACCUMULATE', 103, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(86, 'ADD_ACCUMULATE', 105, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(87, 'ADD_ACCUMULATE', 107, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(88, 'ADD_ACCUMULATE', 109, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(89, 'ADD_ACCUMULATE', 111, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(90, 'ADD_ACCUMULATE', 113, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(91, 'ADD_ACCUMULATE', 115, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(92, 'ADD_ACCUMULATE', 117, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(93, 'ADD_ACCUMULATE', 119, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(94, 'ADD_ACCUMULATE', 121, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(95, 'ADD_ACCUMULATE', 123, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(96, 'ADD_ACCUMULATE', 125, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-20 06:45:30'), +(97, 'ADD_ACCUMULATE', 126, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-20 06:45:31'), +(98, 'ADD_ACCUMULATE', 127, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-23 06:42:58'), +(99, 'ADD_ACCUMULATE', 128, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-23 06:42:58'), +(100, 'ADD_ACCUMULATE', 129, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(101, 'ADD_ACCUMULATE', 131, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(102, 'ADD_ACCUMULATE', 133, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(103, 'ADD_ACCUMULATE', 135, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(104, 'ADD_ACCUMULATE', 137, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(105, 'ADD_ACCUMULATE', 139, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(106, 'ADD_ACCUMULATE', 141, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-24 11:10:32'), +(107, 'ADD_ACCUMULATE', 142, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-24 11:10:32'), +(108, 'ADD_ACCUMULATE', 143, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(109, 'ADD_ACCUMULATE', 145, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(110, 'ADD_ACCUMULATE', 147, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(111, 'ADD_ACCUMULATE', 149, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(112, 'ADD_ACCUMULATE', 151, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(113, 'ADD_ACCUMULATE', 153, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(114, 'ADD_ACCUMULATE', 155, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:05'), +(115, 'ADD_ACCUMULATE', 157, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:05'), +(116, 'ADD_ACCUMULATE', 159, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-25 11:08:04'), +(117, 'ADD_ACCUMULATE', 161, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-25 11:08:05'), +(118, 'ADD_ACCUMULATE', 163, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(119, 'ADD_ACCUMULATE', 164, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(120, 'ADD_ACCUMULATE', 165, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(121, 'ADD_ACCUMULATE', 166, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(122, 'ADD_ACCUMULATE', 167, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(123, 'ADD_ACCUMULATE', 168, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(124, 'ADD_ACCUMULATE', 169, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(125, 'ADD_ACCUMULATE', 170, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(126, 'ADD_ACCUMULATE', 171, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(127, 'ADD_ACCUMULATE', 172, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:31'), +(128, 'ADD_ACCUMULATE', 174, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:32'), +(129, 'ADD_ACCUMULATE', 176, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:32'), +(130, 'ADD_ACCUMULATE', 178, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-26 11:19:34'), +(131, 'ADD_ACCUMULATE', 179, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-26 11:19:34'), +(132, 'ADD_ACCUMULATE', 180, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:21'), +(133, 'ADD_ACCUMULATE', 181, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:21'), +(134, 'ADD_ACCUMULATE', 182, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:40'), +(135, 'ADD_ACCUMULATE', 183, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(136, 'ADD_ACCUMULATE', 184, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(137, 'ADD_ACCUMULATE', 185, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(138, 'ADD_ACCUMULATE', 186, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(139, 'ADD_ACCUMULATE', 187, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(140, 'ADD_ACCUMULATE', 188, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(141, 'ADD_ACCUMULATE', 189, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:49:08'), +(142, 'ADD_ACCUMULATE', 190, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:49:08'), +(143, 'DELETE_SINGLE', 190, '{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 6, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:58:25'), +(144, 'ADD_ACCUMULATE', 191, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"4.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:58:46'), +(145, 'DELETE_SINGLE', 181, '{\"worker_name\":\"박현수\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:59:37'), +(146, 'DELETE_SINGLE', 180, '{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:59:42'), +(147, 'ADD_ACCUMULATE', 192, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"6.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 07:00:10'), +(148, 'ADD_ACCUMULATE', 193, NULL, '{\"report_date\":\"2025-06-30\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:37:29'), +(149, 'ADD_ACCUMULATE', 195, NULL, '{\"report_date\":\"2025-06-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:38:19'), +(150, 'ADD_ACCUMULATE', 196, NULL, '{\"report_date\":\"2025-06-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:38:19'), +(151, 'ADD_ACCUMULATE', 197, NULL, '{\"report_date\":\"2025-06-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:38:19'), +(152, 'ADD_ACCUMULATE', 198, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(153, 'ADD_ACCUMULATE', 199, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(154, 'ADD_ACCUMULATE', 200, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(155, 'ADD_ACCUMULATE', 201, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(156, 'ADD_ACCUMULATE', 202, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(157, 'ADD_ACCUMULATE', 203, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(158, 'ADD_ACCUMULATE', 204, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:48'), +(159, 'ADD_ACCUMULATE', 205, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:48'), +(160, 'ADD_ACCUMULATE', 206, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:48'), +(161, 'ADD_ACCUMULATE', 207, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:48'), +(162, 'ADD_ACCUMULATE', 208, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:40:10'), +(163, 'ADD_ACCUMULATE', 209, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:40:10'), +(164, 'ADD_ACCUMULATE', 210, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:42:57'), +(165, 'ADD_ACCUMULATE', 212, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:42:57'), +(166, 'ADD_ACCUMULATE', 214, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:42:57'), +(167, 'ADD_ACCUMULATE', 216, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:42:57'), +(168, 'ADD_ACCUMULATE', 218, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(169, 'ADD_ACCUMULATE', 219, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(170, 'ADD_ACCUMULATE', 220, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(171, 'ADD_ACCUMULATE', 221, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(172, 'ADD_ACCUMULATE', 222, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(173, 'ADD_ACCUMULATE', 223, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(174, 'ADD_ACCUMULATE', 224, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(175, 'ADD_ACCUMULATE', 225, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:44:11'); +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(176, 'ADD_ACCUMULATE', 227, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:44:11'), +(177, 'ADD_ACCUMULATE', 229, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:44:11'), +(178, 'ADD_ACCUMULATE', 231, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:45:44'), +(179, 'ADD_ACCUMULATE', 232, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:45:45'), +(180, 'ADD_ACCUMULATE', 233, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:45:45'), +(181, 'ADD_ACCUMULATE', 234, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:45:45'), +(182, 'ADD_ACCUMULATE', 235, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:07'), +(183, 'ADD_ACCUMULATE', 236, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:07'), +(184, 'ADD_ACCUMULATE', 237, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:08'), +(185, 'ADD_ACCUMULATE', 238, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:08'), +(186, 'ADD_ACCUMULATE', 239, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:08'), +(187, 'ADD_ACCUMULATE', 240, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:08'), +(188, 'ADD_ACCUMULATE', 241, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(189, 'ADD_ACCUMULATE', 243, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(190, 'ADD_ACCUMULATE', 245, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(191, 'ADD_ACCUMULATE', 247, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(192, 'ADD_ACCUMULATE', 249, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(193, 'ADD_ACCUMULATE', 251, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(194, 'ADD_ACCUMULATE', 253, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(195, 'ADD_ACCUMULATE', 255, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(196, 'ADD_ACCUMULATE', 257, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(197, 'ADD_ACCUMULATE', 259, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(198, 'ADD_ACCUMULATE', 261, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:38'), +(199, 'ADD_ACCUMULATE', 262, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:38'), +(200, 'ADD_ACCUMULATE', 263, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:39'), +(201, 'ADD_ACCUMULATE', 264, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:39'), +(202, 'ADD_ACCUMULATE', 265, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:39'), +(203, 'ADD_ACCUMULATE', 266, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:39'), +(204, 'ADD_ACCUMULATE', 267, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(205, 'ADD_ACCUMULATE', 268, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(206, 'ADD_ACCUMULATE', 269, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(207, 'ADD_ACCUMULATE', 270, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(208, 'ADD_ACCUMULATE', 271, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(209, 'ADD_ACCUMULATE', 272, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(210, 'ADD_ACCUMULATE', 273, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(211, 'ADD_ACCUMULATE', 274, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(212, 'ADD_ACCUMULATE', 275, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(213, 'ADD_ACCUMULATE', 276, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(214, 'ADD_ACCUMULATE', 277, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(215, 'ADD_ACCUMULATE', 278, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(216, 'ADD_ACCUMULATE', 279, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(217, 'ADD_ACCUMULATE', 280, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(218, 'ADD_ACCUMULATE', 281, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(219, 'ADD_ACCUMULATE', 282, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(220, 'ADD_ACCUMULATE', 283, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(221, 'ADD_ACCUMULATE', 284, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(222, 'ADD_ACCUMULATE', 285, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:57'), +(223, 'ADD_ACCUMULATE', 286, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(224, 'ADD_ACCUMULATE', 287, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(225, 'ADD_ACCUMULATE', 288, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(226, 'ADD_ACCUMULATE', 289, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(227, 'ADD_ACCUMULATE', 290, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(228, 'ADD_ACCUMULATE', 291, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(229, 'ADD_ACCUMULATE', 292, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(230, 'ADD_ACCUMULATE', 293, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(231, 'ADD_ACCUMULATE', 294, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(232, 'ADD_ACCUMULATE', 295, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:40'), +(233, 'ADD_ACCUMULATE', 296, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:40'), +(234, 'ADD_ACCUMULATE', 297, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:40'), +(235, 'ADD_ACCUMULATE', 298, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:41'), +(236, 'ADD_ACCUMULATE', 299, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:41'), +(237, 'ADD_ACCUMULATE', 300, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:41'), +(238, 'ADD_ACCUMULATE', 301, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:42'), +(239, 'ADD_ACCUMULATE', 302, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:42'), +(240, 'ADD_ACCUMULATE', 303, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:42'), +(241, 'ADD_ACCUMULATE', 304, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:09:10'), +(242, 'ADD_ACCUMULATE', 305, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:58'), +(243, 'ADD_ACCUMULATE', 306, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:58'), +(244, 'ADD_ACCUMULATE', 307, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:58'), +(245, 'ADD_ACCUMULATE', 308, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(246, 'ADD_ACCUMULATE', 309, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(247, 'ADD_ACCUMULATE', 310, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(248, 'ADD_ACCUMULATE', 311, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(249, 'ADD_ACCUMULATE', 312, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(250, 'ADD_ACCUMULATE', 313, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(251, 'ADD_ACCUMULATE', 314, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(252, 'ADD_ACCUMULATE', 315, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(253, 'ADD_ACCUMULATE', 316, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(254, 'ADD_ACCUMULATE', 317, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(255, 'ADD_ACCUMULATE', 318, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(256, 'ADD_ACCUMULATE', 319, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(257, 'ADD_ACCUMULATE', 320, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(258, 'ADD_ACCUMULATE', 321, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(259, 'ADD_ACCUMULATE', 322, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:30'), +(260, 'ADD_ACCUMULATE', 323, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(261, 'ADD_ACCUMULATE', 324, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(262, 'ADD_ACCUMULATE', 325, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(263, 'ADD_ACCUMULATE', 326, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(264, 'ADD_ACCUMULATE', 327, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(265, 'ADD_ACCUMULATE', 328, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(266, 'ADD_ACCUMULATE', 329, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(267, 'ADD_ACCUMULATE', 330, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(268, 'ADD_ACCUMULATE', 331, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:57:06'), +(269, 'ADD_ACCUMULATE', 332, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:57:06'), +(270, 'ADD_ACCUMULATE', 333, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:57:47'), +(271, 'ADD_ACCUMULATE', 335, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(272, 'ADD_ACCUMULATE', 336, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(273, 'ADD_ACCUMULATE', 337, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(274, 'ADD_ACCUMULATE', 338, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(275, 'ADD_ACCUMULATE', 339, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(276, 'ADD_ACCUMULATE', 340, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(277, 'ADD_ACCUMULATE', 341, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-15 06:57:26'), +(278, 'ADD_ACCUMULATE', 342, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":4,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:46:46'), +(279, 'ADD_ACCUMULATE', 345, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":5,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:46:46'), +(280, 'ADD_ACCUMULATE', 348, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":10,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:47:53'), +(281, 'ADD_ACCUMULATE', 351, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":6,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:47:53'), +(282, 'ADD_ACCUMULATE', 354, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:48:32'), +(283, 'ADD_ACCUMULATE', 355, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:48:32'), +(284, 'ADD_ACCUMULATE', 356, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:48:32'), +(285, 'ADD_ACCUMULATE', 357, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:48:32'), +(286, 'ADD_ACCUMULATE', 358, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-16 06:51:31'), +(287, 'ADD_ACCUMULATE', 359, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-16 06:51:31'), +(288, 'ADD_ACCUMULATE', 360, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-17 06:45:22'), +(289, 'ADD_ACCUMULATE', 361, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:46:48'), +(290, 'ADD_ACCUMULATE', 363, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:46:48'), +(291, 'ADD_ACCUMULATE', 365, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:46:48'), +(292, 'ADD_ACCUMULATE', 367, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(293, 'ADD_ACCUMULATE', 368, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(294, 'ADD_ACCUMULATE', 369, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(295, 'ADD_ACCUMULATE', 370, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(296, 'ADD_ACCUMULATE', 371, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(297, 'ADD_ACCUMULATE', 372, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(298, 'ADD_ACCUMULATE', 373, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"2.00\",\"grand_total\":2,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"2.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-18 05:54:47'), +(299, 'ADD_ACCUMULATE', 374, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"2.00\",\"grand_total\":2,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"2.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-18 05:54:48'), +(300, 'ADD_ACCUMULATE', 375, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":5,\"work_entries_count\":3,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-18 05:58:33'), +(301, 'DELETE_SINGLE', 375, '{\"worker_name\":\"표영진\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"2.00\",\"report_date\":\"2025-07-18T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-07-18 05:58:49'), +(302, 'ADD_ACCUMULATE', 378, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-18 05:59:42'), +(303, 'ADD_ACCUMULATE', 379, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-18 06:00:15'), +(304, 'ADD_ACCUMULATE', 380, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(305, 'ADD_ACCUMULATE', 381, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(306, 'ADD_ACCUMULATE', 382, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(307, 'ADD_ACCUMULATE', 383, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(308, 'ADD_ACCUMULATE', 384, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(309, 'ADD_ACCUMULATE', 385, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(310, 'ADD_ACCUMULATE', 386, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(311, 'ADD_ACCUMULATE', 387, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:08'), +(312, 'ADD_ACCUMULATE', 389, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:08'), +(313, 'ADD_ACCUMULATE', 391, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(314, 'ADD_ACCUMULATE', 392, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(315, 'ADD_ACCUMULATE', 393, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(316, 'ADD_ACCUMULATE', 394, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(317, 'ADD_ACCUMULATE', 395, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(318, 'ADD_ACCUMULATE', 396, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(319, 'ADD_ACCUMULATE', 397, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(320, 'ADD_ACCUMULATE', 398, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-21 06:53:37'), +(321, 'ADD_ACCUMULATE', 399, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:47'), +(322, 'ADD_ACCUMULATE', 400, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(323, 'ADD_ACCUMULATE', 401, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(324, 'ADD_ACCUMULATE', 402, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(325, 'ADD_ACCUMULATE', 403, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(326, 'ADD_ACCUMULATE', 404, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(327, 'ADD_ACCUMULATE', 405, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(328, 'ADD_ACCUMULATE', 406, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:46:11'), +(329, 'ADD_ACCUMULATE', 407, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-22 06:46:11'), +(330, 'ADD_ACCUMULATE', 408, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-22 06:46:11'), +(331, 'ADD_ACCUMULATE', 409, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:06'), +(332, 'ADD_ACCUMULATE', 410, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:28'), +(333, 'ADD_ACCUMULATE', 411, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:28'), +(334, 'ADD_ACCUMULATE', 412, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(335, 'ADD_ACCUMULATE', 413, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(336, 'ADD_ACCUMULATE', 414, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(337, 'ADD_ACCUMULATE', 415, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(338, 'ADD_ACCUMULATE', 416, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(339, 'ADD_ACCUMULATE', 417, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(340, 'ADD_ACCUMULATE', 418, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:36:55'), +(341, 'ADD_ACCUMULATE', 419, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(342, 'ADD_ACCUMULATE', 420, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(343, 'ADD_ACCUMULATE', 421, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(344, 'ADD_ACCUMULATE', 422, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(345, 'ADD_ACCUMULATE', 423, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(346, 'ADD_ACCUMULATE', 424, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(347, 'ADD_ACCUMULATE', 425, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-24 06:47:04'), +(348, 'ADD_ACCUMULATE', 426, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-24 06:47:04'); +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(349, 'ADD_ACCUMULATE', 427, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:44:23'), +(350, 'ADD_ACCUMULATE', 428, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(351, 'ADD_ACCUMULATE', 429, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(352, 'ADD_ACCUMULATE', 430, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(353, 'ADD_ACCUMULATE', 431, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(354, 'ADD_ACCUMULATE', 432, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(355, 'ADD_ACCUMULATE', 433, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(356, 'ADD_ACCUMULATE', 434, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:18'), +(357, 'ADD_ACCUMULATE', 435, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:19'), +(358, 'ADD_ACCUMULATE', 436, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:19'), +(359, 'ADD_ACCUMULATE', 437, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-28 06:30:39'), +(360, 'ADD_ACCUMULATE', 438, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-28 06:30:39'), +(361, 'ADD_ACCUMULATE', 439, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-28 06:30:39'), +(362, 'ADD_ACCUMULATE', 440, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:08'), +(363, 'ADD_ACCUMULATE', 442, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(364, 'ADD_ACCUMULATE', 443, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(365, 'ADD_ACCUMULATE', 444, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(366, 'ADD_ACCUMULATE', 445, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(367, 'ADD_ACCUMULATE', 446, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(368, 'ADD_ACCUMULATE', 447, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(369, 'ADD_ACCUMULATE', 448, NULL, '{\"report_date\":\"2025-07-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-29 06:39:13'), +(370, 'ADD_ACCUMULATE', 449, NULL, '{\"report_date\":\"2025-07-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-29 06:39:13'), +(371, 'ADD_ACCUMULATE', 450, NULL, '{\"report_date\":\"2025-07-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-29 06:39:13'), +(372, 'ADD_ACCUMULATE', 451, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-30 06:50:30'), +(373, 'ADD_ACCUMULATE', 452, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-30 06:50:30'), +(374, 'ADD_ACCUMULATE', 453, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-30 06:50:30'), +(375, 'ADD_ACCUMULATE', 454, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(376, 'ADD_ACCUMULATE', 455, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(377, 'ADD_ACCUMULATE', 456, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(378, 'ADD_ACCUMULATE', 457, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(379, 'ADD_ACCUMULATE', 458, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(380, 'ADD_ACCUMULATE', 459, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(381, 'ADD_ACCUMULATE', 460, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(382, 'ADD_ACCUMULATE', 461, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:42:56'), +(383, 'ADD_ACCUMULATE', 462, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:43:32'), +(384, 'ADD_ACCUMULATE', 464, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:43:32'), +(385, 'ADD_ACCUMULATE', 466, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(386, 'ADD_ACCUMULATE', 467, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(387, 'ADD_ACCUMULATE', 468, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(388, 'ADD_ACCUMULATE', 469, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(389, 'ADD_ACCUMULATE', 470, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(390, 'ADD_ACCUMULATE', 471, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(391, 'ADD_ACCUMULATE', 472, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(392, 'ADD_ACCUMULATE', 473, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(393, 'ADD_ACCUMULATE', 474, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(394, 'ADD_ACCUMULATE', 475, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(395, 'ADD_ACCUMULATE', 476, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(396, 'ADD_ACCUMULATE', 477, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(397, 'ADD_ACCUMULATE', 478, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(398, 'ADD_ACCUMULATE', 479, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(399, 'ADD_ACCUMULATE', 480, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(400, 'ADD_ACCUMULATE', 481, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(401, 'ADD_ACCUMULATE', 482, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(402, 'ADD_ACCUMULATE', 483, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(403, 'ADD_ACCUMULATE', 484, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(404, 'ADD_ACCUMULATE', 485, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(405, 'ADD_ACCUMULATE', 486, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(406, 'ADD_ACCUMULATE', 487, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(407, 'ADD_ACCUMULATE', 488, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(408, 'ADD_ACCUMULATE', 489, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:48'), +(409, 'ADD_ACCUMULATE', 490, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-01 05:02:28'), +(410, 'ADD_ACCUMULATE', 492, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-01 05:02:28'), +(411, 'ADD_ACCUMULATE', 494, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:42:39'), +(412, 'ADD_ACCUMULATE', 496, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:42:39'), +(413, 'ADD_ACCUMULATE', 498, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:14'), +(414, 'ADD_ACCUMULATE', 499, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:15'), +(415, 'ADD_ACCUMULATE', 500, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:15'), +(416, 'ADD_ACCUMULATE', 501, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:39'), +(417, 'ADD_ACCUMULATE', 502, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:39'), +(418, 'ADD_ACCUMULATE', 503, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:39'), +(419, 'ADD_ACCUMULATE', 504, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:52'), +(420, 'ADD_ACCUMULATE', 505, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-08 06:45:20'), +(421, 'ADD_ACCUMULATE', 506, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:58:42'), +(422, 'ADD_ACCUMULATE', 507, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:58:42'), +(423, 'ADD_ACCUMULATE', 508, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:59:18'), +(424, 'ADD_ACCUMULATE', 509, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:59:19'), +(425, 'ADD_ACCUMULATE', 510, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:59:19'), +(426, 'ADD_ACCUMULATE', 511, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:59:19'), +(427, 'ADD_ACCUMULATE', 512, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:59:19'), +(428, 'ADD_ACCUMULATE', 513, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-11 06:27:37'), +(429, 'ADD_ACCUMULATE', 514, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"16.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"16.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-11 06:27:37'), +(430, 'ADD_ACCUMULATE', 515, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:23'), +(431, 'ADD_ACCUMULATE', 516, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:23'), +(432, 'ADD_ACCUMULATE', 517, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:49'), +(433, 'ADD_ACCUMULATE', 518, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:49'), +(434, 'ADD_ACCUMULATE', 519, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:50'), +(435, 'ADD_ACCUMULATE', 520, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:50'), +(436, 'ADD_ACCUMULATE', 521, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:50'), +(437, 'ADD_ACCUMULATE', 522, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:50'), +(438, 'ADD_ACCUMULATE', 523, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(439, 'ADD_ACCUMULATE', 524, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(440, 'ADD_ACCUMULATE', 525, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(441, 'ADD_ACCUMULATE', 526, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(442, 'ADD_ACCUMULATE', 527, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(443, 'ADD_ACCUMULATE', 528, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(444, 'ADD_ACCUMULATE', 529, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(445, 'ADD_ACCUMULATE', 530, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(446, 'ADD_ACCUMULATE', 531, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-13 06:31:32'), +(447, 'ADD_ACCUMULATE', 532, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:13'), +(448, 'ADD_ACCUMULATE', 534, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(449, 'ADD_ACCUMULATE', 535, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(450, 'ADD_ACCUMULATE', 536, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(451, 'ADD_ACCUMULATE', 537, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(452, 'ADD_ACCUMULATE', 538, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(453, 'ADD_ACCUMULATE', 539, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(454, 'ADD_ACCUMULATE', 540, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(455, 'ADD_ACCUMULATE', 541, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:37:19'), +(456, 'ADD_ACCUMULATE', 542, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-14 06:35:27'), +(457, 'ADD_ACCUMULATE', 544, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:39:03'), +(458, 'ADD_ACCUMULATE', 546, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:39:44'), +(459, 'ADD_ACCUMULATE', 548, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(460, 'ADD_ACCUMULATE', 549, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(461, 'ADD_ACCUMULATE', 550, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(462, 'ADD_ACCUMULATE', 551, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(463, 'ADD_ACCUMULATE', 552, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(464, 'ADD_ACCUMULATE', 553, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(465, 'ADD_ACCUMULATE', 554, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-18 06:21:36'), +(466, 'ADD_ACCUMULATE', 555, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-18 06:21:36'), +(467, 'ADD_ACCUMULATE', 556, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-18 06:22:01'), +(468, 'ADD_ACCUMULATE', 557, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-18 06:22:53'), +(469, 'ADD_ACCUMULATE', 559, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-18 06:23:34'), +(470, 'ADD_ACCUMULATE', 561, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:41:24'), +(471, 'ADD_ACCUMULATE', 562, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:41:24'), +(472, 'ADD_ACCUMULATE', 563, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:41:24'), +(473, 'ADD_ACCUMULATE', 564, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:43:10'), +(474, 'ADD_ACCUMULATE', 565, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:43:10'), +(475, 'ADD_ACCUMULATE', 566, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:43:10'), +(476, 'ADD_ACCUMULATE', 567, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-18 06:43:35'), +(477, 'ADD_ACCUMULATE', 568, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-18 06:43:35'), +(478, 'ADD_ACCUMULATE', 569, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"6.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:02:49'), +(479, 'ADD_ACCUMULATE', 570, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:03:30'), +(480, 'ADD_ACCUMULATE', 571, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:03:30'), +(481, 'ADD_ACCUMULATE', 572, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:03:30'), +(482, 'ADD_ACCUMULATE', 573, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:03:30'), +(483, 'ADD_ACCUMULATE', 574, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:04:05'), +(484, 'ADD_ACCUMULATE', 575, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:04:05'), +(485, 'ADD_ACCUMULATE', 576, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:04:05'), +(486, 'ADD_ACCUMULATE', 577, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:04:05'), +(487, 'ADD_ACCUMULATE', 578, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:04:05'), +(488, 'ADD_ACCUMULATE', 579, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-19 08:36:51'), +(489, 'ADD_ACCUMULATE', 580, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-19 08:36:51'), +(490, 'ADD_ACCUMULATE', 581, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-19 08:36:51'), +(491, 'ADD_ACCUMULATE', 582, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-20 06:19:36'), +(492, 'ADD_ACCUMULATE', 583, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-20 06:21:28'), +(493, 'ADD_ACCUMULATE', 585, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-20 06:21:28'), +(494, 'ADD_ACCUMULATE', 587, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:43:46'), +(495, 'ADD_ACCUMULATE', 588, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:23'), +(496, 'ADD_ACCUMULATE', 589, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:23'), +(497, 'ADD_ACCUMULATE', 590, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:23'), +(498, 'ADD_ACCUMULATE', 591, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:24'), +(499, 'ADD_ACCUMULATE', 592, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:24'), +(500, 'ADD_ACCUMULATE', 593, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:24'), +(501, 'ADD_ACCUMULATE', 594, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:26'), +(502, 'ADD_ACCUMULATE', 595, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:26'), +(503, 'ADD_ACCUMULATE', 596, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-21 06:30:36'), +(504, 'ADD_ACCUMULATE', 597, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-21 06:30:36'), +(505, 'ADD_ACCUMULATE', 598, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:50:38'), +(506, 'ADD_ACCUMULATE', 599, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:50:38'), +(507, 'ADD_ACCUMULATE', 600, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:51:23'), +(508, 'ADD_ACCUMULATE', 602, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:51:23'), +(509, 'ADD_ACCUMULATE', 604, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:51:23'), +(510, 'ADD_ACCUMULATE', 606, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:51:23'), +(511, 'ADD_ACCUMULATE', 608, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:54:46'), +(512, 'ADD_ACCUMULATE', 610, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:55:25'), +(513, 'ADD_ACCUMULATE', 612, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-21 08:24:50'), +(514, 'ADD_ACCUMULATE', 613, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-21 08:24:50'), +(515, 'ADD_ACCUMULATE', 614, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-22 06:21:15'), +(516, 'ADD_ACCUMULATE', 615, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-22 06:23:12'), +(517, 'ADD_ACCUMULATE', 617, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-22 06:23:55'), +(518, 'ADD_ACCUMULATE', 618, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:27:43'), +(519, 'ADD_ACCUMULATE', 619, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'); +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(520, 'ADD_ACCUMULATE', 620, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'), +(521, 'ADD_ACCUMULATE', 621, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'), +(522, 'ADD_ACCUMULATE', 622, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'), +(523, 'ADD_ACCUMULATE', 623, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'), +(524, 'ADD_ACCUMULATE', 624, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'), +(525, 'ADD_ACCUMULATE', 625, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:02'), +(526, 'ADD_ACCUMULATE', 627, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:25'), +(527, 'ADD_ACCUMULATE', 628, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(528, 'ADD_ACCUMULATE', 629, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(529, 'ADD_ACCUMULATE', 630, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(530, 'ADD_ACCUMULATE', 631, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(531, 'ADD_ACCUMULATE', 632, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(532, 'ADD_ACCUMULATE', 633, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(533, 'ADD_ACCUMULATE', 634, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(534, 'ADD_ACCUMULATE', 635, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(535, 'ADD_ACCUMULATE', 636, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(536, 'ADD_ACCUMULATE', 637, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(537, 'ADD_ACCUMULATE', 638, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(538, 'ADD_ACCUMULATE', 639, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(539, 'ADD_ACCUMULATE', 640, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(540, 'ADD_ACCUMULATE', 641, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(541, 'ADD_ACCUMULATE', 642, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(542, 'ADD_ACCUMULATE', 643, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(543, 'ADD_ACCUMULATE', 644, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(544, 'ADD_ACCUMULATE', 645, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-25 06:49:16'), +(545, 'ADD_ACCUMULATE', 646, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-25 06:49:17'), +(546, 'ADD_ACCUMULATE', 647, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:28:03'), +(547, 'ADD_ACCUMULATE', 649, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:28:35'), +(548, 'ADD_ACCUMULATE', 650, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(549, 'ADD_ACCUMULATE', 651, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(550, 'ADD_ACCUMULATE', 652, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(551, 'ADD_ACCUMULATE', 653, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(552, 'ADD_ACCUMULATE', 654, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(553, 'ADD_ACCUMULATE', 655, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(554, 'ADD_ACCUMULATE', 656, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(555, 'ADD_ACCUMULATE', 657, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:03'), +(556, 'ADD_ACCUMULATE', 658, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-26 08:22:12'), +(557, 'ADD_ACCUMULATE', 659, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-26 08:22:12'), +(558, 'ADD_ACCUMULATE', 660, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-26 08:22:12'), +(559, 'ADD_ACCUMULATE', 661, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(560, 'ADD_ACCUMULATE', 662, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(561, 'ADD_ACCUMULATE', 663, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(562, 'ADD_ACCUMULATE', 664, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(563, 'ADD_ACCUMULATE', 665, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(564, 'ADD_ACCUMULATE', 666, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(565, 'ADD_ACCUMULATE', 667, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(566, 'ADD_ACCUMULATE', 668, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:48'), +(567, 'ADD_ACCUMULATE', 669, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-27 06:45:32'), +(568, 'ADD_ACCUMULATE', 671, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-27 06:45:32'), +(569, 'ADD_ACCUMULATE', 673, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-28 08:31:42'), +(570, 'ADD_ACCUMULATE', 675, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-28 08:31:42'), +(571, 'ADD_ACCUMULATE', 677, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-28 08:31:42'), +(572, 'ADD_ACCUMULATE', 679, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-28 08:31:42'), +(573, 'ADD_ACCUMULATE', 681, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:37:46'), +(574, 'ADD_ACCUMULATE', 683, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:38:15'), +(575, 'ADD_ACCUMULATE', 685, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:38:50'), +(576, 'ADD_ACCUMULATE', 687, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:39:24'), +(577, 'ADD_ACCUMULATE', 688, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(578, 'ADD_ACCUMULATE', 689, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(579, 'ADD_ACCUMULATE', 690, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(580, 'ADD_ACCUMULATE', 691, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(581, 'ADD_ACCUMULATE', 692, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(582, 'ADD_ACCUMULATE', 693, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(583, 'ADD_ACCUMULATE', 694, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:44:56'), +(584, 'ADD_ACCUMULATE', 695, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:44:56'), +(585, 'ADD_ACCUMULATE', 696, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:44:56'), +(586, 'ADD_ACCUMULATE', 697, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(587, 'ADD_ACCUMULATE', 698, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(588, 'ADD_ACCUMULATE', 699, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(589, 'ADD_ACCUMULATE', 700, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(590, 'ADD_ACCUMULATE', 701, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(591, 'ADD_ACCUMULATE', 702, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(592, 'DELETE', 693, '{\"id\":693,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:05'), +(593, 'DELETE', 702, '{\"id\":702,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:16'), +(594, 'DELETE', 697, '{\"id\":697,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:26'), +(595, 'DELETE', 688, '{\"id\":688,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:32'), +(596, 'DELETE', 691, '{\"id\":691,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:41'), +(597, 'DELETE', 700, '{\"id\":700,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:48'), +(598, 'DELETE', 692, '{\"id\":692,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:56'), +(599, 'DELETE', 701, '{\"id\":701,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:47:01'), +(600, 'ADD_ACCUMULATE', 703, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(601, 'ADD_ACCUMULATE', 704, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(602, 'ADD_ACCUMULATE', 705, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(603, 'ADD_ACCUMULATE', 706, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(604, 'ADD_ACCUMULATE', 707, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(605, 'ADD_ACCUMULATE', 708, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(606, 'ADD_ACCUMULATE', 709, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(607, 'ADD_ACCUMULATE', 710, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(608, 'ADD_ACCUMULATE', 711, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:35'), +(609, 'ADD_ACCUMULATE', 713, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:35'), +(610, 'ADD_ACCUMULATE', 715, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:35'), +(611, 'ADD_ACCUMULATE', 717, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:35'), +(612, 'DELETE', 705, '{\"id\":705,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":8,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:55:28'), +(613, 'ADD_ACCUMULATE', 719, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-29 21:55:56'), +(614, 'ADD_ACCUMULATE', 720, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-29 21:55:56'), +(615, 'ADD_ACCUMULATE', 721, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-29 21:55:56'), +(616, 'DELETE', 711, '{\"id\":711,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"6.00\",\"created_at\":\"2025-08-29T06:47:35.000Z\",\"updated_at\":\"2025-08-29T06:47:35.000Z\",\"created_by\":6,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:56:26'), +(617, 'DELETE', 712, '{\"id\":712,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":1,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-29T06:47:35.000Z\",\"updated_at\":\"2025-08-29T06:47:35.000Z\",\"created_by\":6,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:56:43'), +(618, 'DELETE', 707, '{\"id\":707,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:57:03'), +(619, 'DELETE', 708, '{\"id\":708,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:57:16'), +(620, 'DELETE', 709, '{\"id\":709,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:57:26'), +(621, 'ADD_ACCUMULATE', 722, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-30 05:12:03'), +(622, 'ADD_ACCUMULATE', 723, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-30 05:12:03'), +(623, 'ADD_ACCUMULATE', 724, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-30 05:12:03'), +(624, 'ADD_ACCUMULATE', 725, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(625, 'ADD_ACCUMULATE', 726, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(626, 'ADD_ACCUMULATE', 727, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(627, 'ADD_ACCUMULATE', 728, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(628, 'ADD_ACCUMULATE', 729, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(629, 'ADD_ACCUMULATE', 730, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(630, 'ADD_ACCUMULATE', 731, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(631, 'ADD_ACCUMULATE', 732, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:18:28'), +(632, 'ADD_ACCUMULATE', 733, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:18:28'), +(633, 'ADD_ACCUMULATE', 734, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:11'), +(634, 'ADD_ACCUMULATE', 735, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:11'), +(635, 'ADD_ACCUMULATE', 736, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:11'), +(636, 'ADD_ACCUMULATE', 737, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:35'), +(637, 'ADD_ACCUMULATE', 738, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:35'), +(638, 'ADD_ACCUMULATE', 739, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:35'), +(639, 'ADD_ACCUMULATE', 740, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:20:03'), +(640, 'DELETE', 650, '{\"id\":650,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:13:55'), +(641, 'DELETE', 654, '{\"id\":654,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:14:02'), +(642, 'DELETE', 656, '{\"id\":656,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:14:11'), +(643, 'DELETE', 572, '{\"id\":572,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":7,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:15:09'), +(644, 'DELETE', 571, '{\"id\":571,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:15:17'), +(645, 'DELETE', 570, '{\"id\":570,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:15:27'), +(646, 'DELETE', 599, '{\"id\":599,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":7,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:50:38.000Z\",\"updated_at\":\"2025-08-21T07:50:38.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:15:59'), +(647, 'DELETE', 604, '{\"id\":604,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:16:14'), +(648, 'DELETE', 605, '{\"id\":605,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:16:19'), +(649, 'DELETE', 606, '{\"id\":606,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:16:28'), +(650, 'DELETE', 607, '{\"id\":607,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:16:33'), +(651, 'DELETE', 598, '{\"id\":598,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":1,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:50:38.000Z\",\"updated_at\":\"2025-08-21T07:50:38.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:16:54'), +(652, 'ADD_ACCUMULATE', 741, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 23:18:03'), +(653, 'ADD_ACCUMULATE', 742, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 23:18:03'), +(654, 'DELETE', 588, '{\"id\":588,\"report_date\":\"2025-08-20T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-20T06:44:23.000Z\",\"updated_at\":\"2025-08-20T06:44:23.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:26:52'), +(655, 'DELETE', 592, '{\"id\":592,\"report_date\":\"2025-08-20T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-20T06:44:24.000Z\",\"updated_at\":\"2025-08-20T06:44:24.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:26:58'), +(656, 'DELETE', 639, '{\"id\":639,\"report_date\":\"2025-08-25T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-25T06:48:34.000Z\",\"updated_at\":\"2025-08-25T06:48:34.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:27:26'), +(657, 'DELETE', 642, '{\"id\":642,\"report_date\":\"2025-08-25T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-25T06:48:34.000Z\",\"updated_at\":\"2025-08-25T06:48:34.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:27:31'), +(658, 'ADD_ACCUMULATE', 743, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:34:20'), +(659, 'ADD_ACCUMULATE', 744, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:34:20'), +(660, 'DELETE_SINGLE', 744, '{\"worker_name\":\"이창호\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-09-02T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-09-02 07:35:18'), +(661, 'DELETE_SINGLE', 743, '{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-09-02T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-09-02 07:35:21'), +(662, 'ADD_ACCUMULATE', 745, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(663, 'ADD_ACCUMULATE', 746, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(664, 'ADD_ACCUMULATE', 747, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(665, 'ADD_ACCUMULATE', 748, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(666, 'ADD_ACCUMULATE', 749, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(667, 'ADD_ACCUMULATE', 750, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(668, 'ADD_ACCUMULATE', 751, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(669, 'ADD_ACCUMULATE', 752, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(670, 'ADD_ACCUMULATE', 753, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(671, 'ADD_ACCUMULATE', 754, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(672, 'ADD_ACCUMULATE', 755, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(673, 'ADD_ACCUMULATE', 756, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(674, 'ADD_ACCUMULATE', 757, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:37:19'), +(675, 'ADD_ACCUMULATE', 758, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:37:19'), +(676, 'ADD_ACCUMULATE', 759, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-02 08:16:14'), +(677, 'ADD_ACCUMULATE', 761, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-02 08:16:14'), +(678, 'ADD_ACCUMULATE', 763, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:47'), +(679, 'ADD_ACCUMULATE', 764, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:47'); +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(680, 'ADD_ACCUMULATE', 765, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(681, 'ADD_ACCUMULATE', 766, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(682, 'ADD_ACCUMULATE', 767, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(683, 'ADD_ACCUMULATE', 768, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(684, 'ADD_ACCUMULATE', 769, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(685, 'ADD_ACCUMULATE', 770, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(686, 'ADD_ACCUMULATE', 771, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-03 06:44:18'), +(687, 'ADD_ACCUMULATE', 772, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:32'), +(688, 'ADD_ACCUMULATE', 773, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:32'), +(689, 'ADD_ACCUMULATE', 774, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:32'), +(690, 'ADD_ACCUMULATE', 775, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:32'), +(691, 'ADD_ACCUMULATE', 776, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:33'), +(692, 'ADD_ACCUMULATE', 777, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:33'), +(693, 'ADD_ACCUMULATE', 778, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:33'), +(694, 'ADD_ACCUMULATE', 779, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:33'), +(695, 'ADD_ACCUMULATE', 780, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-04 06:48:34'), +(696, 'ADD_ACCUMULATE', 781, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-04 06:48:34'), +(697, 'ADD_ACCUMULATE', 782, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:30'), +(698, 'ADD_ACCUMULATE', 783, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:30'), +(699, 'ADD_ACCUMULATE', 784, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:30'), +(700, 'ADD_ACCUMULATE', 785, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:31'), +(701, 'ADD_ACCUMULATE', 786, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:31'), +(702, 'ADD_ACCUMULATE', 787, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:31'), +(703, 'ADD_ACCUMULATE', 788, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:31'), +(704, 'ADD_ACCUMULATE', 789, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-05 22:09:55'), +(705, 'ADD_ACCUMULATE', 790, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-05 22:09:55'), +(706, 'ADD_ACCUMULATE', 791, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-05 22:09:55'), +(707, 'ADD_ACCUMULATE', 792, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-06 04:21:10'), +(708, 'ADD_ACCUMULATE', 793, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-06 04:21:10'), +(709, 'ADD_ACCUMULATE', 794, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-06 04:21:10'), +(710, 'ADD_ACCUMULATE', 795, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:18'), +(711, 'ADD_ACCUMULATE', 796, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:18'), +(712, 'ADD_ACCUMULATE', 797, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:18'), +(713, 'ADD_ACCUMULATE', 798, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:19'), +(714, 'ADD_ACCUMULATE', 799, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:19'), +(715, 'ADD_ACCUMULATE', 800, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:19'), +(716, 'ADD_ACCUMULATE', 801, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:19'), +(717, 'ADD_ACCUMULATE', 802, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(718, 'ADD_ACCUMULATE', 803, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(719, 'ADD_ACCUMULATE', 804, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(720, 'ADD_ACCUMULATE', 805, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(721, 'ADD_ACCUMULATE', 806, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(722, 'ADD_ACCUMULATE', 807, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(723, 'ADD_ACCUMULATE', 808, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(724, 'ADD_ACCUMULATE', 809, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-08 06:47:37'), +(725, 'ADD_ACCUMULATE', 810, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-08 06:47:37'), +(726, 'ADD_ACCUMULATE', 811, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-08 06:47:37'), +(727, 'ADD_ACCUMULATE', 812, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(728, 'ADD_ACCUMULATE', 813, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(729, 'ADD_ACCUMULATE', 814, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(730, 'ADD_ACCUMULATE', 815, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(731, 'ADD_ACCUMULATE', 816, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(732, 'ADD_ACCUMULATE', 817, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(733, 'ADD_ACCUMULATE', 818, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(734, 'ADD_ACCUMULATE', 819, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-09 06:44:29'), +(735, 'ADD_ACCUMULATE', 820, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-09 06:44:29'), +(736, 'ADD_ACCUMULATE', 821, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-09 06:44:29'), +(737, 'ADD_ACCUMULATE', 822, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(738, 'ADD_ACCUMULATE', 823, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(739, 'ADD_ACCUMULATE', 824, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(740, 'ADD_ACCUMULATE', 825, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(741, 'ADD_ACCUMULATE', 826, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(742, 'ADD_ACCUMULATE', 827, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(743, 'ADD_ACCUMULATE', 828, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(744, 'ADD_ACCUMULATE', 829, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-10 06:48:43'), +(745, 'ADD_ACCUMULATE', 830, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-10 06:48:43'), +(746, 'ADD_ACCUMULATE', 831, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-10 06:48:43'), +(747, 'ADD_ACCUMULATE', 832, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:37:11'), +(748, 'ADD_ACCUMULATE', 834, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":4,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:38:24'), +(749, 'ADD_ACCUMULATE', 837, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:39:38'), +(750, 'ADD_ACCUMULATE', 838, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:40:48'), +(751, 'ADD_ACCUMULATE', 839, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:46'), +(752, 'ADD_ACCUMULATE', 840, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:47'), +(753, 'ADD_ACCUMULATE', 841, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:47'), +(754, 'ADD_ACCUMULATE', 842, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:47'), +(755, 'ADD_ACCUMULATE', 843, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:47'), +(756, 'ADD_ACCUMULATE', 844, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:47'), +(757, 'ADD_ACCUMULATE', 845, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:51'), +(758, 'ADD_ACCUMULATE', 847, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:51'), +(759, 'ADD_ACCUMULATE', 849, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:51'), +(760, 'DELETE', 849, '{\"id\":849,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"4.00\",\"created_at\":\"2025-09-11T06:41:51.000Z\",\"updated_at\":\"2025-09-11T06:41:51.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-09-11 06:42:40'), +(761, 'DELETE', 850, '{\"id\":850,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"4.00\",\"created_at\":\"2025-09-11T06:41:51.000Z\",\"updated_at\":\"2025-09-11T06:41:51.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-09-11 06:42:49'), +(762, 'DELETE', 839, '{\"id\":839,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-11T06:41:46.000Z\",\"updated_at\":\"2025-09-11T06:41:46.000Z\",\"created_by\":6,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-09-11 06:43:07'), +(763, 'DELETE', 837, '{\"id\":837,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":8,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-11T06:39:38.000Z\",\"updated_at\":\"2025-09-11T06:39:38.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-09-11 06:43:16'), +(764, 'ADD_ACCUMULATE', 851, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(765, 'ADD_ACCUMULATE', 852, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(766, 'ADD_ACCUMULATE', 853, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(767, 'ADD_ACCUMULATE', 854, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(768, 'ADD_ACCUMULATE', 855, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(769, 'ADD_ACCUMULATE', 856, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(770, 'ADD_ACCUMULATE', 857, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(771, 'ADD_ACCUMULATE', 858, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(772, 'ADD_ACCUMULATE', 859, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(773, 'ADD_ACCUMULATE', 860, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(774, 'ADD_ACCUMULATE', 861, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(775, 'ADD_ACCUMULATE', 862, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(776, 'ADD_ACCUMULATE', 863, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(777, 'ADD_ACCUMULATE', 864, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(778, 'ADD_ACCUMULATE', 865, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(779, 'ADD_ACCUMULATE', 866, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(780, 'ADD_ACCUMULATE', 867, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(781, 'ADD_ACCUMULATE', 868, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(782, 'ADD_ACCUMULATE', 869, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(783, 'ADD_ACCUMULATE', 870, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:40'), +(784, 'ADD_ACCUMULATE', 871, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:40'), +(785, 'ADD_ACCUMULATE', 872, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:40'), +(786, 'ADD_ACCUMULATE', 873, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:40'), +(787, 'ADD_ACCUMULATE', 874, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:41'), +(788, 'ADD_ACCUMULATE', 875, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:41'), +(789, 'ADD_ACCUMULATE', 876, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:41'), +(790, 'ADD_ACCUMULATE', 877, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:41'), +(791, 'ADD_ACCUMULATE', 878, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:41'), +(792, 'ADD_ACCUMULATE', 879, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:00'), +(793, 'ADD_ACCUMULATE', 880, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:00'), +(794, 'ADD_ACCUMULATE', 881, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:00'), +(795, 'ADD_ACCUMULATE', 882, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:00'), +(796, 'ADD_ACCUMULATE', 883, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(797, 'ADD_ACCUMULATE', 884, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(798, 'ADD_ACCUMULATE', 885, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(799, 'ADD_ACCUMULATE', 886, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(800, 'ADD_ACCUMULATE', 887, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(801, 'ADD_ACCUMULATE', 888, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(802, 'ADD_ACCUMULATE', 889, NULL, '{\"report_date\":\"2025-09-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-16 06:51:19'), +(803, 'ADD_ACCUMULATE', 890, NULL, '{\"report_date\":\"2025-09-16\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-16 06:51:19'), +(804, 'ADD_ACCUMULATE', 891, NULL, '{\"report_date\":\"2025-09-16\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-16 06:52:12'), +(805, 'ADD_ACCUMULATE', 893, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-17 06:43:08'), +(806, 'ADD_ACCUMULATE', 894, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-17 06:43:08'), +(807, 'ADD_ACCUMULATE', 895, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(808, 'ADD_ACCUMULATE', 896, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(809, 'ADD_ACCUMULATE', 897, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(810, 'ADD_ACCUMULATE', 898, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(811, 'ADD_ACCUMULATE', 899, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(812, 'ADD_ACCUMULATE', 900, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(813, 'ADD_ACCUMULATE', 901, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(814, 'ADD_ACCUMULATE', 902, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(815, 'ADD_ACCUMULATE', 903, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:43:40'), +(816, 'ADD_ACCUMULATE', 904, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:43:40'), +(817, 'ADD_ACCUMULATE', 905, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:44:42'), +(818, 'ADD_ACCUMULATE', 906, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:44:42'), +(819, 'ADD_ACCUMULATE', 907, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:44:42'), +(820, 'ADD_ACCUMULATE', 908, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:44:42'), +(821, 'ADD_ACCUMULATE', 909, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:44:42'), +(822, 'ADD_ACCUMULATE', 910, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:46:39'), +(823, 'ADD_ACCUMULATE', 911, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-18 06:54:48'), +(824, 'ADD_ACCUMULATE', 912, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-18 06:54:48'), +(825, 'ADD_ACCUMULATE', 913, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:51:40'), +(826, 'ADD_ACCUMULATE', 914, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:51:40'), +(827, 'ADD_ACCUMULATE', 915, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:05'), +(828, 'ADD_ACCUMULATE', 916, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:05'), +(829, 'ADD_ACCUMULATE', 917, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:05'), +(830, 'ADD_ACCUMULATE', 918, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:05'), +(831, 'ADD_ACCUMULATE', 919, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:05'), +(832, 'ADD_ACCUMULATE', 920, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:23'), +(833, 'ADD_ACCUMULATE', 921, NULL, '{\"report_date\":\"2025-09-20\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-20 05:30:19'), +(834, 'ADD_ACCUMULATE', 922, NULL, '{\"report_date\":\"2025-09-20\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-20 05:30:19'), +(835, 'ADD_ACCUMULATE', 923, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(836, 'ADD_ACCUMULATE', 924, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(837, 'ADD_ACCUMULATE', 925, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(838, 'ADD_ACCUMULATE', 926, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(839, 'ADD_ACCUMULATE', 927, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(840, 'ADD_ACCUMULATE', 928, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(841, 'ADD_ACCUMULATE', 929, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-22 06:50:29'), +(842, 'ADD_ACCUMULATE', 930, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-22 06:50:29'), +(843, 'ADD_ACCUMULATE', 931, NULL, '{\"report_date\":\"2025-09-23\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-23 05:46:40'), +(844, 'ADD_ACCUMULATE', 932, NULL, '{\"report_date\":\"2025-09-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-23 05:46:40'), +(845, 'ADD_ACCUMULATE', 933, NULL, '{\"report_date\":\"2025-09-24\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-25 01:14:58'), +(846, 'ADD_ACCUMULATE', 934, NULL, '{\"report_date\":\"2025-09-24\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-25 01:14:58'), +(847, 'ADD_ACCUMULATE', 935, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:07'), +(848, 'ADD_ACCUMULATE', 936, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:07'), +(849, 'ADD_ACCUMULATE', 937, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(850, 'ADD_ACCUMULATE', 938, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'); +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(851, 'ADD_ACCUMULATE', 939, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(852, 'ADD_ACCUMULATE', 940, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(853, 'ADD_ACCUMULATE', 941, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(854, 'ADD_ACCUMULATE', 942, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(855, 'ADD_ACCUMULATE', 943, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(856, 'ADD_ACCUMULATE', 944, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(857, 'ADD_ACCUMULATE', 945, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(858, 'ADD_ACCUMULATE', 946, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(859, 'ADD_ACCUMULATE', 947, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(860, 'ADD_ACCUMULATE', 948, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(861, 'ADD_ACCUMULATE', 949, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(862, 'ADD_ACCUMULATE', 950, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(863, 'ADD_ACCUMULATE', 951, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:27'), +(864, 'ADD_ACCUMULATE', 952, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:27'), +(865, 'ADD_ACCUMULATE', 953, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:27'), +(866, 'DELETE', 952, '{\"id\":952,\"report_date\":\"2025-09-30T00:00:00.000Z\",\"worker_id\":2,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-30T06:52:27.000Z\",\"updated_at\":\"2025-09-30T06:52:27.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-09-30 06:56:36'), +(867, 'ADD_ACCUMULATE', 954, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-30 06:56:55'), +(868, 'ADD_ACCUMULATE', 955, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 05:25:58'), +(869, 'ADD_ACCUMULATE', 956, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 05:25:59'), +(870, 'ADD_ACCUMULATE', 957, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:32'), +(871, 'ADD_ACCUMULATE', 958, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:32'), +(872, 'ADD_ACCUMULATE', 959, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:32'), +(873, 'ADD_ACCUMULATE', 960, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:32'), +(874, 'ADD_ACCUMULATE', 961, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:33'), +(875, 'ADD_ACCUMULATE', 962, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:33'), +(876, 'ADD_ACCUMULATE', 963, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:33'), +(877, 'ADD_ACCUMULATE', 964, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-10 23:35:07'), +(878, 'ADD_ACCUMULATE', 965, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-10 23:35:07'), +(879, 'ADD_ACCUMULATE', 966, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-10 23:35:07'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_status_types` +-- + +CREATE TABLE `work_status_types` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL COMMENT '상태명', + `description` text DEFAULT NULL COMMENT '상태 설명', + `is_error` tinyint(1) DEFAULT 0 COMMENT '에러 상태 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_status_types` +-- + +INSERT INTO `work_status_types` (`id`, `name`, `description`, `is_error`, `created_at`) VALUES +(1, '정규', '정상적으로 완료된 작업', 0, '2025-06-16 02:21:16'), +(2, '에러', '오류가 발생한 작업', 1, '2025-06-16 02:21:16'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_types` +-- + +CREATE TABLE `work_types` ( + `id` int(11) NOT NULL, + `name` varchar(100) NOT NULL COMMENT '작업 유형명', + `description` text DEFAULT NULL COMMENT '작업 유형 설명', + `category` varchar(50) DEFAULT NULL COMMENT '작업 카테고리', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_types` +-- + +INSERT INTO `work_types` (`id`, `name`, `description`, `category`, `created_at`, `updated_at`) VALUES +(1, 'Base(구조물)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:42'), +(2, 'Vessel(용기)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:47'), +(3, 'Piping Assembly(배관)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:50'), +(4, '작업대기', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:56'); + +-- +-- 덤프된 테이블의 인덱스 +-- + +-- +-- 테이블의 인덱스 `activity_logs` +-- +ALTER TABLE `activity_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_user_activity` (`user_id`,`activity_type`,`created_at`), + ADD KEY `idx_table_record` (`table_name`,`record_id`); + +-- +-- 테이블의 인덱스 `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + ADD PRIMARY KEY (`cutting_plan_id`), + ADD KEY `project_id` (`project_id`), + ADD KEY `fk_cuttingplan_spec` (`spec_id`); + +-- +-- 테이블의 인덱스 `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + ADD PRIMARY KEY (`id`), + ADD KEY `worker_id` (`worker_id`), + ADD KEY `fk_dird_project` (`project_id`), + ADD KEY `fk_dird_issuetype` (`issue_type_id`); + +-- +-- 테이블의 인덱스 `daily_worker_summary` +-- +ALTER TABLE `daily_worker_summary` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `unique_worker_date` (`worker_id`,`report_date`); + +-- +-- 테이블의 인덱스 `daily_work_reports` +-- +ALTER TABLE `daily_work_reports` + ADD PRIMARY KEY (`id`), + ADD KEY `idx_report_date` (`report_date`), + ADD KEY `idx_worker_date` (`worker_id`,`report_date`), + ADD KEY `idx_project_date` (`project_id`,`report_date`), + ADD KEY `idx_work_type` (`work_type_id`), + ADD KEY `idx_work_status` (`work_status_id`), + ADD KEY `idx_error_type` (`error_type_id`), + ADD KEY `idx_created_by` (`created_by`), + ADD KEY `idx_date_worker_creator` (`report_date`,`worker_id`,`created_by`); + +-- +-- 테이블의 인덱스 `EquipmentList` +-- +ALTER TABLE `EquipmentList` + ADD PRIMARY KEY (`equipment_id`), + ADD KEY `factory_id` (`factory_id`); + +-- +-- 테이블의 인덱스 `error_types` +-- +ALTER TABLE `error_types` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `FactoryInfo` +-- +ALTER TABLE `FactoryInfo` + ADD PRIMARY KEY (`factory_id`); + +-- +-- 테이블의 인덱스 `IssueTypes` +-- +ALTER TABLE `IssueTypes` + ADD PRIMARY KEY (`issue_type_id`); + +-- +-- 테이블의 인덱스 `login_logs` +-- +ALTER TABLE `login_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_user_login` (`user_id`,`login_time`); + +-- +-- 테이블의 인덱스 `password_change_logs` +-- +ALTER TABLE `password_change_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `changed_by_user_id` (`changed_by_user_id`), + ADD KEY `idx_user_changes` (`user_id`,`changed_at`); + +-- +-- 테이블의 인덱스 `PipeSpecs` +-- +ALTER TABLE `PipeSpecs` + ADD PRIMARY KEY (`spec_id`), + ADD UNIQUE KEY `unique_spec` (`material`,`diameter_in`,`schedule`); + +-- +-- 테이블의 인덱스 `Processes` +-- +ALTER TABLE `Processes` + ADD PRIMARY KEY (`process_id`), + ADD KEY `project_id` (`project_id`); + +-- +-- 테이블의 인덱스 `Projects` +-- +ALTER TABLE `Projects` + ADD PRIMARY KEY (`project_id`); + +-- +-- 테이블의 인덱스 `Tasks` +-- +ALTER TABLE `Tasks` + ADD PRIMARY KEY (`task_id`); + +-- +-- 테이블의 인덱스 `uploaded_documents` +-- +ALTER TABLE `uploaded_documents` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `Users` +-- +ALTER TABLE `Users` + ADD PRIMARY KEY (`user_id`), + ADD UNIQUE KEY `username` (`username`), + ADD UNIQUE KEY `email` (`email`), + ADD KEY `fk_worker` (`worker_id`), + ADD KEY `idx_username` (`username`), + ADD KEY `idx_active_users` (`is_active`,`access_level`); + +-- +-- 테이블의 인덱스 `Workers` +-- +ALTER TABLE `Workers` + ADD PRIMARY KEY (`worker_id`); + +-- +-- 테이블의 인덱스 `worker_groups` +-- +ALTER TABLE `worker_groups` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `uk_leader_worker` (`group_leader_id`,`worker_id`), + ADD KEY `idx_group_leader` (`group_leader_id`), + ADD KEY `idx_worker` (`worker_id`), + ADD KEY `idx_is_active` (`is_active`); + +-- +-- 테이블의 인덱스 `WorkReports` +-- +ALTER TABLE `WorkReports` + ADD PRIMARY KEY (`id`), + ADD KEY `worker_id` (`worker_id`), + ADD KEY `project_id` (`project_id`), + ADD KEY `morning_task_id` (`morning_task_id`), + ADD KEY `afternoon_task_id` (`afternoon_task_id`), + ADD KEY `overtime_task_id` (`overtime_task_id`); + +-- +-- 테이블의 인덱스 `work_report_audit_log` +-- +ALTER TABLE `work_report_audit_log` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_action_date` (`action`,`created_at`), + ADD KEY `idx_changed_by` (`changed_by`), + ADD KEY `idx_report_id` (`report_id`); + +-- +-- 테이블의 인덱스 `work_status_types` +-- +ALTER TABLE `work_status_types` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `work_types` +-- +ALTER TABLE `work_types` + ADD PRIMARY KEY (`id`); + +-- +-- 덤프된 테이블의 AUTO_INCREMENT +-- + +-- +-- 테이블의 AUTO_INCREMENT `activity_logs` +-- +ALTER TABLE `activity_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + MODIFY `cutting_plan_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10; + +-- +-- 테이블의 AUTO_INCREMENT `daily_worker_summary` +-- +ALTER TABLE `daily_worker_summary` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- 테이블의 AUTO_INCREMENT `daily_work_reports` +-- +ALTER TABLE `daily_work_reports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=967; + +-- +-- 테이블의 AUTO_INCREMENT `EquipmentList` +-- +ALTER TABLE `EquipmentList` + MODIFY `equipment_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `error_types` +-- +ALTER TABLE `error_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10; + +-- +-- 테이블의 AUTO_INCREMENT `FactoryInfo` +-- +ALTER TABLE `FactoryInfo` + MODIFY `factory_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; + +-- +-- 테이블의 AUTO_INCREMENT `IssueTypes` +-- +ALTER TABLE `IssueTypes` + MODIFY `issue_type_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `login_logs` +-- +ALTER TABLE `login_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=345; + +-- +-- 테이블의 AUTO_INCREMENT `password_change_logs` +-- +ALTER TABLE `password_change_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `PipeSpecs` +-- +ALTER TABLE `PipeSpecs` + MODIFY `spec_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +-- +-- 테이블의 AUTO_INCREMENT `Processes` +-- +ALTER TABLE `Processes` + MODIFY `process_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `Projects` +-- +ALTER TABLE `Projects` + MODIFY `project_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15; + +-- +-- 테이블의 AUTO_INCREMENT `Tasks` +-- +ALTER TABLE `Tasks` + MODIFY `task_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19; + +-- +-- 테이블의 AUTO_INCREMENT `uploaded_documents` +-- +ALTER TABLE `uploaded_documents` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `Users` +-- +ALTER TABLE `Users` + MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `Workers` +-- +ALTER TABLE `Workers` + MODIFY `worker_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12; + +-- +-- 테이블의 AUTO_INCREMENT `worker_groups` +-- +ALTER TABLE `worker_groups` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `WorkReports` +-- +ALTER TABLE `WorkReports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1766; + +-- +-- 테이블의 AUTO_INCREMENT `work_report_audit_log` +-- +ALTER TABLE `work_report_audit_log` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=880; + +-- +-- 테이블의 AUTO_INCREMENT `work_status_types` +-- +ALTER TABLE `work_status_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- 테이블의 AUTO_INCREMENT `work_types` +-- +ALTER TABLE `work_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11; + +-- +-- 덤프된 테이블의 제약사항 +-- + +-- +-- 테이블의 제약사항 `activity_logs` +-- +ALTER TABLE `activity_logs` + ADD CONSTRAINT `activity_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE SET NULL; + +-- +-- 테이블의 제약사항 `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + ADD CONSTRAINT `CuttingPlan_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`), + ADD CONSTRAINT `fk_cuttingplan_spec` FOREIGN KEY (`spec_id`) REFERENCES `PipeSpecs` (`spec_id`); + +-- +-- 테이블의 제약사항 `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + ADD CONSTRAINT `dailyissuereports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`), + ADD CONSTRAINT `fk_dird_issuetype` FOREIGN KEY (`issue_type_id`) REFERENCES `IssueTypes` (`issue_type_id`), + ADD CONSTRAINT `fk_dird_project` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`); + +-- +-- 테이블의 제약사항 `EquipmentList` +-- +ALTER TABLE `EquipmentList` + ADD CONSTRAINT `EquipmentList_ibfk_1` FOREIGN KEY (`factory_id`) REFERENCES `FactoryInfo` (`factory_id`); + +-- +-- 테이블의 제약사항 `login_logs` +-- +ALTER TABLE `login_logs` + ADD CONSTRAINT `login_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE; + +-- +-- 테이블의 제약사항 `password_change_logs` +-- +ALTER TABLE `password_change_logs` + ADD CONSTRAINT `password_change_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE, + ADD CONSTRAINT `password_change_logs_ibfk_2` FOREIGN KEY (`changed_by_user_id`) REFERENCES `Users` (`user_id`) ON DELETE SET NULL; + +-- +-- 테이블의 제약사항 `Processes` +-- +ALTER TABLE `Processes` + ADD CONSTRAINT `Processes_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`); + +-- +-- 테이블의 제약사항 `Users` +-- +ALTER TABLE `Users` + ADD CONSTRAINT `fk_worker` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`); + +-- +-- 테이블의 제약사항 `worker_groups` +-- +ALTER TABLE `worker_groups` + ADD CONSTRAINT `fk_group_leader` FOREIGN KEY (`group_leader_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE, + ADD CONSTRAINT `fk_group_worker` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`) ON DELETE CASCADE; + +-- +-- 테이블의 제약사항 `WorkReports` +-- +ALTER TABLE `WorkReports` + ADD CONSTRAINT `WorkReports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`), + ADD CONSTRAINT `WorkReports_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`), + ADD CONSTRAINT `WorkReports_ibfk_3` FOREIGN KEY (`morning_task_id`) REFERENCES `Tasks` (`task_id`), + ADD CONSTRAINT `WorkReports_ibfk_4` FOREIGN KEY (`afternoon_task_id`) REFERENCES `Tasks` (`task_id`), + ADD CONSTRAINT `WorkReports_ibfk_5` FOREIGN KEY (`overtime_task_id`) REFERENCES `Tasks` (`task_id`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/99_restore_data.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/99_restore_data.sql new file mode 100644 index 0000000..931114b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations/99_restore_data.sql @@ -0,0 +1,4567 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.2 +-- https://www.phpmyadmin.net/ +-- +-- 호스트: db_hyungi_net +-- 생성 시간: 25-10-11 00:23 +-- 서버 버전: 10.9.8-MariaDB-1:10.9.8+maria~ubu2204 +-- PHP 버전: 8.2.27 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- 데이터베이스: `hyungi` +-- + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `activity_logs` +-- + +CREATE TABLE `activity_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `activity_type` varchar(100) DEFAULT NULL, + `table_name` varchar(50) DEFAULT NULL, + `record_id` int(11) DEFAULT NULL, + `action` enum('create','read','update','delete') DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `CuttingPlan` +-- + +CREATE TABLE `CuttingPlan` ( + `cutting_plan_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `drawing_name` varchar(255) NOT NULL, + `area_number` varchar(100) DEFAULT NULL, + `spool_number` varchar(255) DEFAULT NULL, + `length` decimal(10,2) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `spec_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `DailyIssueReports` +-- + +CREATE TABLE `DailyIssueReports` ( + `id` int(11) NOT NULL, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `issue_type_id` int(11) DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `start_time` time NOT NULL, + `end_time` time NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `DailyIssueReports` +-- + +INSERT INTO `DailyIssueReports` (`id`, `date`, `worker_id`, `project_id`, `issue_type_id`, `description`, `created_at`, `start_time`, `end_time`) VALUES +(1, '2025-06-02', 1, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(2, '2025-06-02', 9, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(3, '2025-06-02', 7, 7, 5, NULL, '2025-06-02 05:54:35', '10:00:00', '11:30:00'), +(4, '2025-06-04', 10, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(5, '2025-06-04', 6, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(6, '2025-06-04', 3, 7, 3, NULL, '2025-06-04 01:54:03', '10:00:00', '11:30:00'), +(7, '2025-06-11', 10, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'), +(8, '2025-06-11', 6, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'), +(9, '2025-06-11', 3, 7, 6, NULL, '2025-06-10 08:56:09', '07:30:00', '08:00:00'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `daily_worker_summary` +-- + +CREATE TABLE `daily_worker_summary` ( + `id` int(11) NOT NULL, + `report_date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `total_hours` decimal(4,2) NOT NULL DEFAULT 8.00 COMMENT '총 근무시간', + `work_status` enum('normal','annual_leave','half_leave','overtime') DEFAULT 'normal' COMMENT '근무 상태', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `daily_work_reports` +-- + +CREATE TABLE `daily_work_reports` ( + `id` int(11) NOT NULL, + `report_date` date NOT NULL COMMENT '작업 날짜', + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `project_id` int(11) NOT NULL COMMENT '프로젝트 ID', + `work_type_id` int(11) NOT NULL COMMENT '작업 유형 ID', + `work_status_id` int(11) DEFAULT 1 COMMENT '업무 상태 ID (1:정규, 2:에러)', + `error_type_id` int(11) DEFAULT NULL COMMENT '에러 유형 ID (에러일 때만)', + `work_hours` decimal(4,2) NOT NULL COMMENT '작업 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `created_by` int(11) NOT NULL DEFAULT 1 COMMENT '작성자 user_id', + `updated_by` int(11) DEFAULT NULL COMMENT '수정자 user_id' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `daily_work_reports` +-- + +INSERT INTO `daily_work_reports` (`id`, `report_date`, `worker_id`, `project_id`, `work_type_id`, `work_status_id`, `error_type_id`, `work_hours`, `created_at`, `updated_at`, `created_by`, `updated_by`) VALUES +(14, '2025-06-02', 1, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(15, '2025-06-02', 3, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(16, '2025-06-02', 4, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(17, '2025-06-02', 6, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(18, '2025-06-02', 7, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(19, '2025-06-02', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 05:10:23', '2025-06-16 05:10:23', 1, NULL), +(20, '2025-06-02', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:10:47', '2025-06-16 05:10:47', 1, NULL), +(21, '2025-06-04', 1, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(22, '2025-06-04', 3, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(23, '2025-06-04', 5, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(24, '2025-06-04', 7, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(25, '2025-06-04', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(26, '2025-06-04', 10, 4, 3, 1, NULL, 8.00, '2025-06-16 05:11:37', '2025-06-16 05:11:37', 1, NULL), +(27, '2025-06-04', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(28, '2025-06-04', 6, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(29, '2025-06-04', 8, 3, 2, 1, NULL, 8.00, '2025-06-16 05:12:07', '2025-06-16 05:12:07', 1, NULL), +(30, '2025-06-05', 1, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(31, '2025-06-05', 3, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(32, '2025-06-05', 4, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(33, '2025-06-05', 7, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(34, '2025-06-05', 10, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(35, '2025-06-05', 9, 4, 3, 2, 1, 8.00, '2025-06-16 05:12:57', '2025-06-16 05:12:57', 1, NULL), +(36, '2025-06-05', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(37, '2025-06-05', 5, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(38, '2025-06-05', 6, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(39, '2025-06-05', 8, 3, 2, 1, NULL, 8.00, '2025-06-16 05:13:56', '2025-06-16 05:13:56', 1, NULL), +(40, '2025-06-16', 5, 3, 2, 1, NULL, 8.00, '2025-06-16 06:12:01', '2025-06-16 06:12:01', 5, NULL), +(43, '2025-06-16', 2, 3, 2, 1, NULL, 8.00, '2025-06-16 06:12:01', '2025-06-16 06:12:01', 5, NULL), +(44, '2025-06-16', 6, 3, 2, 2, 4, 4.00, '2025-06-16 06:13:02', '2025-06-16 06:13:02', 5, NULL), +(45, '2025-06-16', 6, 3, 2, 1, NULL, 4.00, '2025-06-16 06:13:50', '2025-06-16 06:13:50', 5, NULL), +(46, '2025-06-16', 8, 3, 2, 2, 4, 4.00, '2025-06-16 06:15:22', '2025-06-16 06:15:22', 5, NULL), +(47, '2025-06-16', 8, 3, 2, 1, NULL, 4.00, '2025-06-16 06:15:22', '2025-06-16 06:15:22', 5, NULL), +(48, '2025-06-16', 4, 4, 3, 2, 1, 8.00, '2025-06-16 06:46:44', '2025-06-16 06:46:44', 3, NULL), +(50, '2025-06-16', 1, 4, 3, 2, 1, 8.00, '2025-06-16 06:46:44', '2025-06-16 06:46:44', 3, NULL), +(51, '2025-06-16', 9, 4, 3, 1, NULL, 8.00, '2025-06-16 06:48:29', '2025-06-16 06:48:29', 3, NULL), +(52, '2025-06-16', 10, 4, 3, 1, NULL, 6.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(53, '2025-06-16', 10, 4, 3, 2, 1, 2.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(54, '2025-06-16', 3, 4, 3, 1, NULL, 6.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(55, '2025-06-16', 3, 4, 3, 2, 1, 2.00, '2025-06-16 06:50:09', '2025-06-16 06:50:09', 6, NULL), +(56, '2025-06-17', 2, 3, 2, 1, NULL, 8.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(57, '2025-06-17', 2, 3, 2, 1, NULL, 2.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(58, '2025-06-17', 5, 3, 2, 1, NULL, 8.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(59, '2025-06-17', 5, 3, 2, 1, NULL, 2.00, '2025-06-17 08:23:41', '2025-06-17 08:23:41', 5, NULL), +(60, '2025-06-17', 6, 3, 2, 1, NULL, 8.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(61, '2025-06-17', 6, 3, 2, 2, 4, 2.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(62, '2025-06-17', 8, 3, 2, 1, NULL, 8.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(63, '2025-06-17', 8, 3, 2, 2, 4, 2.00, '2025-06-17 08:24:33', '2025-06-17 08:24:33', 5, NULL), +(65, '2025-06-17', 9, 4, 3, 2, 1, 4.00, '2025-06-17 08:25:24', '2025-06-17 08:25:24', 3, NULL), +(66, '2025-06-17', 1, 4, 3, 2, 1, 4.00, '2025-06-17 08:27:06', '2025-06-17 08:27:06', 3, NULL), +(67, '2025-06-17', 4, 4, 3, 2, 1, 4.00, '2025-06-17 08:27:06', '2025-06-17 08:27:06', 3, NULL), +(68, '2025-06-17', 1, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(69, '2025-06-17', 9, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(70, '2025-06-17', 4, 4, 3, 1, NULL, 4.00, '2025-06-17 08:31:06', '2025-06-17 08:31:06', 3, NULL), +(71, '2025-06-17', 9, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(72, '2025-06-17', 4, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(73, '2025-06-17', 1, 4, 3, 1, NULL, 2.00, '2025-06-17 08:33:06', '2025-06-17 08:33:06', 3, NULL), +(74, '2025-06-17', 10, 4, 3, 1, NULL, 8.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(75, '2025-06-17', 10, 4, 3, 2, 1, 2.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(76, '2025-06-17', 3, 4, 3, 1, NULL, 8.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(77, '2025-06-17', 3, 4, 3, 2, 1, 2.00, '2025-06-17 08:34:11', '2025-06-17 08:34:11', 6, NULL), +(78, '2025-06-18', 6, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(79, '2025-06-18', 2, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(80, '2025-06-18', 8, 3, 2, 1, NULL, 8.00, '2025-06-18 08:40:27', '2025-06-18 08:40:27', 5, NULL), +(81, '2025-06-18', 2, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:02', '2025-06-18 08:41:02', 5, NULL), +(82, '2025-06-18', 6, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:03', '2025-06-18 08:41:03', 5, NULL), +(83, '2025-06-18', 8, 3, 2, 1, NULL, 2.00, '2025-06-18 08:41:03', '2025-06-18 08:41:03', 5, NULL), +(84, '2025-06-18', 5, 4, 3, 1, NULL, 8.00, '2025-06-18 08:41:45', '2025-06-18 08:41:45', 5, NULL), +(85, '2025-06-18', 5, 4, 3, 1, NULL, 2.00, '2025-06-18 08:41:45', '2025-06-18 08:41:45', 5, NULL), +(86, '2025-06-18', 10, 4, 3, 1, NULL, 9.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(87, '2025-06-18', 10, 4, 3, 2, 1, 1.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(88, '2025-06-18', 3, 4, 3, 1, NULL, 9.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(89, '2025-06-18', 3, 4, 3, 2, 1, 1.00, '2025-06-18 08:47:55', '2025-06-18 08:47:55', 6, NULL), +(90, '2025-06-18', 4, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(91, '2025-06-18', 4, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(92, '2025-06-18', 9, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(93, '2025-06-18', 9, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(94, '2025-06-18', 1, 4, 3, 2, 1, 4.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(95, '2025-06-18', 1, 4, 3, 1, NULL, 6.00, '2025-06-18 08:50:19', '2025-06-18 08:50:19', 3, NULL), +(96, '2025-06-18', 7, 4, 3, 2, 1, 4.00, '2025-06-18 09:00:17', '2025-06-18 09:00:17', 3, NULL), +(97, '2025-06-18', 7, 4, 3, 1, NULL, 6.00, '2025-06-18 09:00:17', '2025-06-18 09:00:17', 3, NULL), +(98, '2025-06-19', 8, 3, 2, 1, NULL, 8.00, '2025-06-19 06:37:59', '2025-06-19 06:37:59', 5, NULL), +(99, '2025-06-19', 2, 3, 2, 1, NULL, 8.00, '2025-06-19 06:37:59', '2025-06-19 06:37:59', 5, NULL), +(100, '2025-06-19', 10, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(101, '2025-06-19', 3, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(102, '2025-06-19', 5, 4, 3, 1, NULL, 8.00, '2025-06-19 06:59:36', '2025-06-19 06:59:36', 6, NULL), +(103, '2025-06-19', 9, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(104, '2025-06-19', 9, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(105, '2025-06-19', 4, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(106, '2025-06-19', 4, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(107, '2025-06-19', 1, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(108, '2025-06-19', 1, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(109, '2025-06-19', 7, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(110, '2025-06-19', 7, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(111, '2025-06-19', 6, 4, 3, 1, NULL, 6.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(112, '2025-06-19', 6, 4, 3, 2, 1, 2.00, '2025-06-19 07:01:02', '2025-06-19 07:01:02', 3, NULL), +(113, '2025-06-20', 9, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(114, '2025-06-20', 9, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(115, '2025-06-20', 4, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(116, '2025-06-20', 4, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(117, '2025-06-20', 7, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(118, '2025-06-20', 7, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:01', '2025-06-20 06:44:01', 3, NULL), +(119, '2025-06-20', 6, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(120, '2025-06-20', 6, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(121, '2025-06-20', 1, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(122, '2025-06-20', 1, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(123, '2025-06-20', 5, 4, 3, 2, 1, 2.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(124, '2025-06-20', 5, 4, 3, 1, NULL, 6.00, '2025-06-20 06:44:02', '2025-06-20 06:44:02', 3, NULL), +(125, '2025-06-20', 10, 4, 3, 1, NULL, 8.00, '2025-06-20 06:45:30', '2025-06-20 06:45:30', 6, NULL), +(126, '2025-06-20', 3, 4, 3, 1, NULL, 8.00, '2025-06-20 06:45:31', '2025-06-20 06:45:31', 6, NULL), +(127, '2025-06-23', 10, 4, 3, 1, NULL, 8.00, '2025-06-23 06:42:58', '2025-06-23 06:42:58', 6, NULL), +(128, '2025-06-23', 3, 4, 3, 1, NULL, 8.00, '2025-06-23 06:42:58', '2025-06-23 06:42:58', 6, NULL), +(129, '2025-06-23', 5, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(130, '2025-06-23', 5, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(131, '2025-06-23', 1, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(132, '2025-06-23', 1, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(133, '2025-06-23', 9, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(134, '2025-06-23', 9, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(135, '2025-06-23', 4, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(136, '2025-06-23', 4, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(137, '2025-06-23', 7, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(138, '2025-06-23', 7, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(139, '2025-06-23', 6, 4, 3, 2, 1, 2.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(140, '2025-06-23', 6, 4, 3, 1, NULL, 6.00, '2025-06-23 06:51:28', '2025-06-23 06:51:28', 3, NULL), +(141, '2025-06-24', 10, 4, 3, 1, NULL, 12.00, '2025-06-24 11:10:32', '2025-06-24 11:10:32', 6, NULL), +(142, '2025-06-24', 3, 4, 3, 1, NULL, 12.00, '2025-06-24 11:10:32', '2025-06-24 11:10:32', 6, NULL), +(143, '2025-06-24', 9, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(144, '2025-06-24', 9, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(145, '2025-06-24', 5, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(146, '2025-06-24', 5, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(147, '2025-06-24', 4, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(148, '2025-06-24', 4, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(149, '2025-06-24', 7, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(150, '2025-06-24', 7, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(151, '2025-06-24', 6, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(152, '2025-06-24', 6, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(153, '2025-06-24', 1, 4, 3, 2, 1, 2.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(154, '2025-06-24', 1, 4, 3, 1, NULL, 10.00, '2025-06-24 11:11:00', '2025-06-24 11:11:00', 3, NULL), +(155, '2025-06-24', 8, 3, 2, 1, NULL, 8.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(156, '2025-06-24', 8, 3, 2, 1, NULL, 4.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(157, '2025-06-24', 2, 3, 2, 1, NULL, 8.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(158, '2025-06-24', 2, 3, 2, 1, NULL, 4.00, '2025-06-24 11:11:05', '2025-06-24 11:11:05', 5, NULL), +(159, '2025-06-25', 2, 3, 2, 1, NULL, 8.00, '2025-06-25 11:08:04', '2025-06-25 11:08:04', 5, NULL), +(160, '2025-06-25', 2, 3, 2, 1, NULL, 4.00, '2025-06-25 11:08:04', '2025-06-25 11:08:04', 5, NULL), +(161, '2025-06-25', 8, 3, 2, 1, NULL, 8.00, '2025-06-25 11:08:05', '2025-06-25 11:08:05', 5, NULL), +(162, '2025-06-25', 8, 3, 2, 1, NULL, 4.00, '2025-06-25 11:08:05', '2025-06-25 11:08:05', 5, NULL), +(163, '2025-06-25', 10, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(164, '2025-06-25', 9, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(165, '2025-06-25', 3, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(166, '2025-06-25', 6, 4, 3, 1, NULL, 12.00, '2025-06-25 11:11:30', '2025-06-25 11:11:30', 6, NULL), +(167, '2025-06-26', 10, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(168, '2025-06-26', 5, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(169, '2025-06-26', 7, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(170, '2025-06-26', 1, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(171, '2025-06-26', 4, 4, 3, 1, NULL, 12.00, '2025-06-26 10:29:38', '2025-06-26 10:29:38', 3, NULL), +(172, '2025-06-26', 8, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:31', '2025-06-26 11:11:31', 5, NULL), +(173, '2025-06-26', 8, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:31', '2025-06-26 11:11:31', 5, NULL), +(174, '2025-06-26', 2, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(175, '2025-06-26', 2, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(176, '2025-06-26', 9, 3, 2, 1, NULL, 8.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(177, '2025-06-26', 9, 3, 2, 1, NULL, 4.00, '2025-06-26 11:11:32', '2025-06-26 11:11:32', 5, NULL), +(178, '2025-06-26', 3, 3, 2, 1, NULL, 12.00, '2025-06-26 11:19:34', '2025-06-26 11:19:34', 6, NULL), +(179, '2025-06-26', 6, 3, 2, 1, NULL, 12.00, '2025-06-26 11:19:34', '2025-06-26 11:19:34', 6, NULL), +(182, '2025-06-27', 2, 3, 2, 1, NULL, 4.00, '2025-06-27 01:54:40', '2025-06-27 01:54:40', 5, NULL), +(183, '2025-06-27', 9, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(184, '2025-06-27', 10, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(185, '2025-06-27', 7, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(186, '2025-06-27', 5, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(187, '2025-06-27', 4, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(188, '2025-06-27', 1, 4, 3, 1, NULL, 8.00, '2025-06-27 06:47:43', '2025-06-27 06:47:43', 3, NULL), +(189, '2025-06-27', 3, 3, 2, 1, NULL, 8.00, '2025-06-27 06:49:08', '2025-06-27 06:49:08', 6, NULL), +(191, '2025-06-27', 6, 3, 2, 1, NULL, 4.00, '2025-06-27 06:58:46', '2025-06-27 06:58:46', 6, NULL), +(192, '2025-06-27', 8, 3, 2, 1, NULL, 6.00, '2025-06-27 07:00:10', '2025-06-27 07:00:10', 5, NULL), +(193, '2025-06-30', 6, 3, 2, 2, 4, 2.00, '2025-07-05 01:37:29', '2025-07-05 01:37:29', 3, NULL), +(194, '2025-06-30', 6, 3, 2, 1, NULL, 2.00, '2025-07-05 01:37:29', '2025-07-07 04:15:25', 3, 3), +(195, '2025-06-30', 2, 3, 2, 1, NULL, 4.00, '2025-07-05 01:38:19', '2025-07-07 04:15:40', 3, 3), +(196, '2025-06-30', 3, 3, 2, 1, NULL, 8.00, '2025-07-05 01:38:19', '2025-07-05 01:38:19', 3, NULL), +(197, '2025-06-30', 8, 3, 2, 1, NULL, 6.00, '2025-07-05 01:38:19', '2025-07-07 04:15:02', 3, 3), +(198, '2025-07-01', 3, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(199, '2025-07-01', 2, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(200, '2025-07-01', 6, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(201, '2025-07-01', 8, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(202, '2025-07-01', 10, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(203, '2025-07-01', 9, 3, 2, 1, NULL, 10.00, '2025-07-05 01:39:21', '2025-07-05 01:39:21', 3, NULL), +(204, '2025-07-01', 2, 3, 2, 1, NULL, 2.00, '2025-07-05 01:39:48', '2025-07-05 01:42:08', 3, 3), +(205, '2025-07-01', 3, 3, 2, 1, NULL, 2.00, '2025-07-05 01:39:48', '2025-07-05 01:42:02', 3, 3), +(206, '2025-07-01', 6, 3, 2, 1, NULL, 2.00, '2025-07-05 01:39:48', '2025-07-05 01:41:56', 3, 3), +(207, '2025-07-01', 8, 3, 2, 1, NULL, 2.00, '2025-07-05 01:39:48', '2025-07-05 01:41:48', 3, 3), +(208, '2025-07-01', 9, 3, 2, 2, 4, 2.00, '2025-07-05 01:40:10', '2025-07-05 01:40:10', 3, NULL), +(209, '2025-07-01', 10, 3, 2, 2, 4, 2.00, '2025-07-05 01:40:10', '2025-07-05 01:40:10', 3, NULL), +(210, '2025-07-01', 7, 4, 3, 1, NULL, 5.00, '2025-07-05 01:42:57', '2025-07-05 01:42:57', 3, NULL), +(211, '2025-07-01', 7, 4, 3, 2, 2, 3.00, '2025-07-05 01:42:57', '2025-07-05 01:42:57', 3, NULL), +(212, '2025-07-01', 5, 4, 3, 1, NULL, 8.00, '2025-07-05 01:42:57', '2025-07-07 04:21:24', 3, 3), +(213, '2025-07-01', 5, 4, 3, 2, 2, 4.00, '2025-07-05 01:42:57', '2025-07-07 04:21:10', 3, 3), +(214, '2025-07-01', 4, 4, 3, 1, NULL, 8.00, '2025-07-05 01:42:57', '2025-07-07 04:21:41', 3, 3), +(215, '2025-07-01', 4, 4, 3, 2, 2, 4.00, '2025-07-05 01:42:57', '2025-07-07 04:21:32', 3, 3), +(216, '2025-07-01', 1, 4, 3, 1, NULL, 5.00, '2025-07-05 01:42:57', '2025-07-05 01:42:57', 3, NULL), +(217, '2025-07-01', 1, 4, 3, 2, 2, 3.00, '2025-07-05 01:42:57', '2025-07-05 01:42:57', 3, NULL), +(218, '2025-07-02', 2, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(219, '2025-07-02', 3, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(220, '2025-07-02', 10, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(221, '2025-07-02', 9, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(222, '2025-07-02', 8, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(223, '2025-07-02', 6, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(224, '2025-07-02', 7, 3, 2, 1, NULL, 10.00, '2025-07-05 01:43:36', '2025-07-05 01:43:36', 3, NULL), +(225, '2025-07-02', 5, 4, 3, 2, 2, 4.00, '2025-07-05 01:44:11', '2025-07-05 01:44:11', 3, NULL), +(226, '2025-07-02', 5, 4, 3, 1, NULL, 6.00, '2025-07-05 01:44:11', '2025-07-05 01:44:54', 3, 3), +(227, '2025-07-02', 4, 4, 3, 2, 2, 4.00, '2025-07-05 01:44:11', '2025-07-05 01:44:11', 3, NULL), +(228, '2025-07-02', 4, 4, 3, 1, NULL, 6.00, '2025-07-05 01:44:11', '2025-07-05 01:44:59', 3, 3), +(229, '2025-07-02', 1, 4, 3, 2, 2, 4.00, '2025-07-05 01:44:11', '2025-07-05 01:44:11', 3, NULL), +(230, '2025-07-02', 1, 4, 3, 1, NULL, 6.00, '2025-07-05 01:44:11', '2025-07-05 01:45:05', 3, 3), +(231, '2025-07-03', 2, 3, 2, 1, NULL, 10.00, '2025-07-05 01:45:44', '2025-07-05 01:45:44', 3, NULL), +(232, '2025-07-03', 6, 3, 2, 1, NULL, 10.00, '2025-07-05 01:45:45', '2025-07-05 01:45:45', 3, NULL), +(233, '2025-07-03', 9, 3, 2, 1, NULL, 10.00, '2025-07-05 01:45:45', '2025-07-05 01:45:45', 3, NULL), +(234, '2025-07-03', 8, 3, 2, 1, NULL, 10.00, '2025-07-05 01:45:45', '2025-07-05 01:45:45', 3, NULL), +(235, '2025-07-03', 7, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:07', '2025-07-05 01:46:07', 3, NULL), +(236, '2025-07-03', 1, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:07', '2025-07-05 01:46:07', 3, NULL), +(237, '2025-07-03', 3, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:08', '2025-07-05 01:46:08', 3, NULL), +(238, '2025-07-03', 4, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:08', '2025-07-05 01:46:08', 3, NULL), +(239, '2025-07-03', 5, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:08', '2025-07-05 01:46:08', 3, NULL), +(240, '2025-07-03', 10, 4, 3, 1, NULL, 10.00, '2025-07-05 01:46:08', '2025-07-05 01:46:08', 3, NULL), +(241, '2025-07-04', 10, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(242, '2025-07-04', 10, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(243, '2025-07-04', 5, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(244, '2025-07-04', 5, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(245, '2025-07-04', 4, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(246, '2025-07-04', 4, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(247, '2025-07-04', 9, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(248, '2025-07-04', 9, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(249, '2025-07-04', 8, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(250, '2025-07-04', 8, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(251, '2025-07-04', 3, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(252, '2025-07-04', 3, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(253, '2025-07-04', 2, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(254, '2025-07-04', 2, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(255, '2025-07-04', 7, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(256, '2025-07-04', 7, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(257, '2025-07-04', 6, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(258, '2025-07-04', 6, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(259, '2025-07-04', 1, 4, 3, 2, 2, 2.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(260, '2025-07-04', 1, 4, 3, 1, NULL, 6.00, '2025-07-05 01:51:47', '2025-07-05 01:51:47', 3, NULL), +(261, '2025-07-05', 8, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:38', '2025-07-05 05:36:38', 5, NULL), +(262, '2025-07-05', 5, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:38', '2025-07-05 05:36:38', 5, NULL), +(263, '2025-07-05', 4, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:39', '2025-07-05 05:36:39', 5, NULL), +(264, '2025-07-05', 3, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:39', '2025-07-05 05:36:39', 5, NULL), +(265, '2025-07-05', 2, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:39', '2025-07-05 05:36:39', 5, NULL), +(266, '2025-07-05', 1, 4, 2, 1, NULL, 8.00, '2025-07-05 05:36:39', '2025-07-05 05:36:39', 5, NULL), +(267, '2025-07-06', 10, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:08', 5, 3), +(268, '2025-07-06', 9, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:16', 5, 3), +(269, '2025-07-06', 7, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:22', 5, 3), +(270, '2025-07-06', 6, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:27', 5, 3), +(271, '2025-07-06', 4, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:33', 5, 3), +(272, '2025-07-06', 3, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:39', 5, 3), +(273, '2025-07-06', 2, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:44', 5, 3), +(274, '2025-07-06', 1, 4, 3, 1, NULL, 8.00, '2025-07-06 05:34:32', '2025-07-06 05:46:49', 5, 3), +(275, '2025-07-07', 10, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(276, '2025-07-07', 9, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(277, '2025-07-07', 8, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(278, '2025-07-07', 7, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(279, '2025-07-07', 3, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(280, '2025-07-07', 4, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(281, '2025-07-07', 5, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(282, '2025-07-07', 6, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(283, '2025-07-07', 2, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(284, '2025-07-07', 1, 4, 3, 1, NULL, 8.00, '2025-07-07 06:49:31', '2025-07-07 06:49:31', 6, NULL), +(285, '2025-07-08', 10, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:57', '2025-07-08 06:36:57', 3, NULL), +(286, '2025-07-08', 9, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(287, '2025-07-08', 8, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(288, '2025-07-08', 7, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(289, '2025-07-08', 6, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(290, '2025-07-08', 1, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(291, '2025-07-08', 2, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(292, '2025-07-08', 3, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(293, '2025-07-08', 5, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(294, '2025-07-08', 4, 4, 3, 1, NULL, 8.00, '2025-07-08 06:36:58', '2025-07-08 06:36:58', 3, NULL), +(295, '2025-07-09', 10, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:40', '2025-07-09 22:08:40', 5, NULL), +(296, '2025-07-09', 9, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:40', '2025-07-09 22:08:40', 5, NULL), +(297, '2025-07-09', 8, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:40', '2025-07-09 22:08:40', 5, NULL), +(298, '2025-07-09', 7, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:41', '2025-07-09 22:08:41', 5, NULL), +(299, '2025-07-09', 6, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:41', '2025-07-09 22:08:41', 5, NULL), +(300, '2025-07-09', 2, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:41', '2025-07-09 22:08:41', 5, NULL), +(301, '2025-07-09', 3, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:42', '2025-07-09 22:08:42', 5, NULL), +(302, '2025-07-09', 4, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:42', '2025-07-09 22:08:42', 5, NULL), +(303, '2025-07-09', 5, 4, 3, 1, NULL, 8.00, '2025-07-09 22:08:42', '2025-07-09 22:08:42', 5, NULL), +(304, '2025-07-09', 1, 4, 3, 1, NULL, 4.00, '2025-07-09 22:09:10', '2025-07-09 22:09:10', 5, NULL), +(305, '2025-07-10', 9, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:58', '2025-07-10 06:33:58', 3, NULL), +(306, '2025-07-10', 8, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:58', '2025-07-10 06:33:58', 3, NULL), +(307, '2025-07-10', 5, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:58', '2025-07-10 06:33:58', 3, NULL), +(308, '2025-07-10', 6, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(309, '2025-07-10', 2, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(310, '2025-07-10', 3, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(311, '2025-07-10', 4, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(312, '2025-07-10', 1, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(313, '2025-07-10', 7, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(314, '2025-07-10', 10, 4, 3, 1, NULL, 8.00, '2025-07-10 06:33:59', '2025-07-10 06:33:59', 3, NULL), +(315, '2025-07-12', 9, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(316, '2025-07-12', 8, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(317, '2025-07-12', 6, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(318, '2025-07-12', 5, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(319, '2025-07-12', 4, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(320, '2025-07-12', 2, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(321, '2025-07-12', 1, 4, 3, 1, NULL, 8.00, '2025-07-12 05:41:30', '2025-07-12 05:41:30', 3, NULL), +(322, '2025-07-14', 8, 4, 3, 1, NULL, 6.00, '2025-07-14 06:46:30', '2025-07-14 06:46:30', 3, NULL), +(323, '2025-07-14', 10, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(324, '2025-07-14', 9, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(325, '2025-07-14', 7, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(326, '2025-07-14', 6, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(327, '2025-07-14', 1, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(328, '2025-07-14', 2, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(329, '2025-07-14', 3, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(330, '2025-07-14', 4, 4, 3, 1, NULL, 8.00, '2025-07-14 06:46:57', '2025-07-14 06:46:57', 3, NULL), +(331, '2025-07-15', 3, 3, 2, 1, NULL, 8.00, '2025-07-15 05:57:06', '2025-07-15 05:57:06', 5, NULL), +(332, '2025-07-15', 9, 3, 2, 1, NULL, 8.00, '2025-07-15 05:57:06', '2025-07-15 05:57:06', 5, NULL), +(333, '2025-07-15', 5, 3, 2, 2, 4, 4.00, '2025-07-15 05:57:47', '2025-07-15 05:57:47', 5, NULL), +(334, '2025-07-15', 5, 4, 3, 1, NULL, 4.00, '2025-07-15 05:57:47', '2025-07-15 05:57:47', 5, NULL), +(335, '2025-07-15', 10, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(336, '2025-07-15', 8, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(337, '2025-07-15', 7, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(338, '2025-07-15', 6, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(339, '2025-07-15', 2, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(340, '2025-07-15', 1, 4, 3, 1, NULL, 8.00, '2025-07-15 05:58:19', '2025-07-15 05:58:19', 5, NULL), +(341, '2025-07-14', 5, 4, 3, 1, NULL, 8.00, '2025-07-15 06:57:26', '2025-07-15 06:57:26', 3, NULL), +(342, '2025-07-16', 4, 4, 3, 1, NULL, 2.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(343, '2025-07-16', 4, 3, 2, 1, NULL, 4.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(344, '2025-07-16', 4, 3, 2, 1, NULL, 2.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(345, '2025-07-16', 5, 4, 3, 1, NULL, 2.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(346, '2025-07-16', 5, 3, 2, 1, NULL, 4.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(347, '2025-07-16', 5, 3, 2, 1, NULL, 2.00, '2025-07-16 06:46:46', '2025-07-16 06:46:46', 5, NULL), +(348, '2025-07-16', 10, 4, 3, 1, NULL, 2.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(349, '2025-07-16', 10, 3, 2, 1, NULL, 4.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(350, '2025-07-16', 10, 3, 2, 1, NULL, 2.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(351, '2025-07-16', 6, 4, 3, 1, NULL, 2.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(352, '2025-07-16', 6, 3, 2, 1, NULL, 4.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(353, '2025-07-16', 6, 3, 2, 1, NULL, 2.00, '2025-07-16 06:47:53', '2025-07-16 06:47:53', 5, NULL), +(354, '2025-07-16', 9, 3, 2, 1, NULL, 8.00, '2025-07-16 06:48:32', '2025-07-16 06:48:32', 5, NULL), +(355, '2025-07-16', 8, 3, 2, 1, NULL, 8.00, '2025-07-16 06:48:32', '2025-07-16 06:48:32', 5, NULL), +(356, '2025-07-16', 3, 3, 2, 1, NULL, 8.00, '2025-07-16 06:48:32', '2025-07-16 06:48:32', 5, NULL), +(357, '2025-07-16', 2, 3, 2, 1, NULL, 8.00, '2025-07-16 06:48:32', '2025-07-16 06:48:32', 5, NULL), +(358, '2025-07-16', 1, 4, 3, 1, NULL, 8.00, '2025-07-16 06:51:31', '2025-07-16 06:51:31', 3, NULL), +(359, '2025-07-16', 7, 4, 3, 1, NULL, 8.00, '2025-07-16 06:51:31', '2025-07-16 06:51:31', 3, NULL), +(360, '2025-07-17', 1, 3, 3, 1, NULL, 8.00, '2025-07-17 06:45:22', '2025-07-17 06:45:22', 3, NULL), +(361, '2025-07-17', 5, 3, 2, 1, NULL, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(362, '2025-07-17', 5, 3, 2, 2, 4, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(363, '2025-07-17', 4, 3, 2, 1, NULL, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(364, '2025-07-17', 4, 3, 2, 2, 4, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(365, '2025-07-17', 2, 3, 2, 1, NULL, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(366, '2025-07-17', 2, 3, 2, 2, 4, 4.00, '2025-07-17 06:46:48', '2025-07-17 06:46:48', 5, NULL), +(367, '2025-07-17', 10, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(368, '2025-07-17', 9, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(369, '2025-07-17', 8, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(370, '2025-07-17', 7, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(371, '2025-07-17', 6, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(372, '2025-07-17', 3, 3, 2, 1, NULL, 8.00, '2025-07-17 06:47:19', '2025-07-17 06:47:19', 5, NULL), +(373, '2025-07-18', 7, 4, 3, 2, 1, 2.00, '2025-07-18 05:54:47', '2025-07-18 05:54:47', 3, NULL), +(374, '2025-07-18', 1, 4, 3, 2, 1, 2.00, '2025-07-18 05:54:48', '2025-07-18 05:54:48', 3, NULL), +(376, '2025-07-18', 5, 4, 3, 1, NULL, 2.00, '2025-07-18 05:58:33', '2025-07-18 05:58:33', 3, NULL), +(377, '2025-07-18', 5, 3, 2, 1, NULL, 6.00, '2025-07-18 05:58:33', '2025-07-18 05:58:33', 3, NULL), +(378, '2025-07-18', 7, 3, 2, 1, NULL, 6.00, '2025-07-18 05:59:42', '2025-07-18 05:59:42', 3, NULL), +(379, '2025-07-18', 1, 3, 3, 1, NULL, 6.00, '2025-07-18 06:00:15', '2025-07-18 06:00:15', 3, NULL), +(380, '2025-07-18', 10, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(381, '2025-07-18', 9, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(382, '2025-07-18', 8, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(383, '2025-07-18', 6, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(384, '2025-07-18', 4, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(385, '2025-07-18', 3, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(386, '2025-07-18', 2, 3, 2, 1, NULL, 8.00, '2025-07-18 06:36:13', '2025-07-18 06:36:13', 5, NULL), +(387, '2025-07-21', 5, 4, 3, 2, 1, 4.00, '2025-07-21 06:40:08', '2025-07-21 06:40:08', 5, NULL), +(388, '2025-07-21', 5, 3, 2, 1, NULL, 4.00, '2025-07-21 06:40:08', '2025-07-21 06:40:08', 5, NULL), +(389, '2025-07-21', 4, 4, 3, 2, 1, 4.00, '2025-07-21 06:40:08', '2025-07-21 06:40:08', 5, NULL), +(390, '2025-07-21', 4, 3, 2, 1, NULL, 4.00, '2025-07-21 06:40:08', '2025-07-21 06:40:08', 5, NULL), +(391, '2025-07-21', 10, 3, 2, 1, NULL, 6.00, '2025-07-21 06:40:32', '2025-07-22 06:58:42', 5, 3), +(392, '2025-07-21', 9, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(393, '2025-07-21', 8, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(394, '2025-07-21', 7, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(395, '2025-07-21', 6, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(396, '2025-07-21', 3, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(397, '2025-07-21', 2, 3, 2, 1, NULL, 8.00, '2025-07-21 06:40:32', '2025-07-21 06:40:32', 5, NULL), +(398, '2025-07-21', 1, 3, 3, 1, NULL, 8.00, '2025-07-21 06:53:37', '2025-07-21 06:53:37', 3, NULL), +(399, '2025-07-22', 10, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:47', '2025-07-22 06:45:47', 5, NULL), +(400, '2025-07-22', 9, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(401, '2025-07-22', 8, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(402, '2025-07-22', 7, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(403, '2025-07-22', 6, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(404, '2025-07-22', 4, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(405, '2025-07-22', 3, 3, 2, 1, NULL, 8.00, '2025-07-22 06:45:48', '2025-07-22 06:45:48', 5, NULL), +(406, '2025-07-22', 2, 4, 3, 2, 1, 8.00, '2025-07-22 06:46:11', '2025-07-22 06:46:11', 5, NULL), +(407, '2025-07-22', 5, 3, 3, 1, NULL, 8.00, '2025-07-22 06:46:11', '2025-07-22 06:46:11', 3, NULL), +(408, '2025-07-22', 1, 3, 3, 1, NULL, 8.00, '2025-07-22 06:46:11', '2025-07-22 06:46:11', 3, NULL), +(409, '2025-07-23', 4, 3, 3, 1, NULL, 8.00, '2025-07-23 06:45:06', '2025-07-23 06:45:06', 5, NULL), +(410, '2025-07-23', 5, 3, 3, 1, NULL, 8.00, '2025-07-23 06:45:28', '2025-07-23 06:45:28', 3, NULL), +(411, '2025-07-23', 1, 3, 3, 1, NULL, 8.00, '2025-07-23 06:45:28', '2025-07-23 06:45:28', 3, NULL), +(412, '2025-07-23', 10, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(413, '2025-07-23', 9, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(414, '2025-07-23', 7, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(415, '2025-07-23', 6, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(416, '2025-07-23', 3, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(417, '2025-07-23', 2, 3, 2, 1, NULL, 8.00, '2025-07-23 06:45:30', '2025-07-23 06:45:30', 5, NULL), +(418, '2025-07-24', 4, 3, 3, 1, NULL, 8.00, '2025-07-24 06:36:55', '2025-07-24 06:36:55', 5, NULL), +(419, '2025-07-24', 10, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(420, '2025-07-24', 9, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(421, '2025-07-24', 7, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(422, '2025-07-24', 6, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(423, '2025-07-24', 3, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(424, '2025-07-24', 2, 3, 2, 1, NULL, 8.00, '2025-07-24 06:37:18', '2025-07-24 06:37:18', 5, NULL), +(425, '2025-07-24', 5, 3, 3, 1, NULL, 8.00, '2025-07-24 06:47:04', '2025-07-24 06:47:04', 3, NULL), +(426, '2025-07-24', 1, 3, 3, 1, NULL, 8.00, '2025-07-24 06:47:04', '2025-07-24 06:47:04', 3, NULL), +(427, '2025-07-25', 4, 3, 3, 1, NULL, 8.00, '2025-07-25 06:44:23', '2025-07-25 06:44:23', 5, NULL), +(428, '2025-07-25', 10, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(429, '2025-07-25', 9, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(430, '2025-07-25', 8, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(431, '2025-07-25', 6, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(432, '2025-07-25', 3, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(433, '2025-07-25', 2, 3, 2, 1, NULL, 8.00, '2025-07-25 06:45:15', '2025-07-25 06:45:15', 5, NULL), +(434, '2025-07-25', 5, 4, 3, 1, NULL, 8.00, '2025-07-25 06:45:18', '2025-07-25 06:45:18', 3, NULL), +(435, '2025-07-25', 7, 4, 3, 1, NULL, 8.00, '2025-07-25 06:45:19', '2025-07-25 06:45:19', 3, NULL), +(436, '2025-07-25', 1, 4, 3, 1, NULL, 8.00, '2025-07-25 06:45:19', '2025-07-25 06:45:19', 3, NULL), +(437, '2025-07-28', 5, 3, 3, 1, NULL, 8.00, '2025-07-28 06:30:39', '2025-07-28 06:30:39', 3, NULL), +(438, '2025-07-28', 4, 3, 3, 1, NULL, 8.00, '2025-07-28 06:30:39', '2025-07-28 06:30:39', 3, NULL), +(439, '2025-07-28', 1, 3, 3, 1, NULL, 8.00, '2025-07-28 06:30:39', '2025-07-28 06:30:39', 3, NULL), +(440, '2025-07-28', 2, 5, 2, 1, NULL, 4.00, '2025-07-28 06:33:08', '2025-07-28 06:33:08', 5, NULL), +(441, '2025-07-28', 2, 3, 2, 1, NULL, 4.00, '2025-07-28 06:33:08', '2025-07-28 06:33:08', 5, NULL), +(442, '2025-07-28', 10, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(443, '2025-07-28', 9, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(444, '2025-07-28', 8, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(445, '2025-07-28', 7, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(446, '2025-07-28', 6, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(447, '2025-07-28', 3, 3, 2, 1, NULL, 8.00, '2025-07-28 06:33:34', '2025-07-28 06:33:34', 5, NULL), +(448, '2025-07-29', 5, 3, 3, 1, NULL, 8.00, '2025-07-29 06:39:13', '2025-07-29 06:39:13', 3, NULL), +(449, '2025-07-29', 4, 3, 3, 1, NULL, 8.00, '2025-07-29 06:39:13', '2025-07-29 06:39:13', 3, NULL), +(450, '2025-07-29', 1, 3, 3, 1, NULL, 8.00, '2025-07-29 06:39:13', '2025-07-29 06:39:13', 3, NULL), +(451, '2025-07-30', 5, 3, 3, 1, NULL, 8.00, '2025-07-30 06:50:30', '2025-07-30 06:50:30', 3, NULL), +(452, '2025-07-30', 4, 3, 3, 1, NULL, 8.00, '2025-07-30 06:50:30', '2025-07-30 06:50:30', 3, NULL), +(453, '2025-07-30', 1, 3, 3, 1, NULL, 8.00, '2025-07-30 06:50:30', '2025-07-30 06:50:30', 3, NULL), +(454, '2025-07-30', 10, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(455, '2025-07-30', 9, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(456, '2025-07-30', 8, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(457, '2025-07-30', 7, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(458, '2025-07-30', 6, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(459, '2025-07-30', 3, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(460, '2025-07-30', 2, 3, 2, 1, NULL, 8.00, '2025-07-30 06:52:16', '2025-07-30 06:52:16', 5, NULL), +(461, '2025-07-31', 1, 3, 3, 1, NULL, 4.00, '2025-07-31 06:42:56', '2025-07-31 06:42:56', 5, NULL), +(462, '2025-07-31', 4, 3, 3, 1, NULL, 4.00, '2025-07-31 06:43:32', '2025-07-31 06:43:32', 5, NULL), +(463, '2025-07-31', 4, 3, 2, 1, NULL, 4.00, '2025-07-31 06:43:32', '2025-07-31 06:43:32', 5, NULL), +(464, '2025-07-31', 5, 3, 3, 1, NULL, 4.00, '2025-07-31 06:43:32', '2025-07-31 06:43:32', 5, NULL), +(465, '2025-07-31', 5, 3, 2, 1, NULL, 4.00, '2025-07-31 06:43:32', '2025-07-31 06:43:32', 5, NULL), +(466, '2025-07-31', 10, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(467, '2025-07-31', 9, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(468, '2025-07-31', 8, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(469, '2025-07-31', 7, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(470, '2025-07-31', 6, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(471, '2025-07-31', 3, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(472, '2025-07-31', 2, 3, 2, 1, NULL, 8.00, '2025-07-31 06:44:00', '2025-07-31 06:44:00', 5, NULL), +(473, '2025-07-11', 10, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(474, '2025-07-11', 5, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(475, '2025-07-11', 4, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(476, '2025-07-11', 9, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(477, '2025-07-11', 8, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(478, '2025-07-11', 3, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(479, '2025-07-11', 2, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(480, '2025-07-11', 7, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(481, '2025-07-11', 6, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(482, '2025-07-11', 1, 3, 2, 1, NULL, 8.00, '2025-07-31 22:24:47', '2025-07-31 22:24:47', 3, NULL), +(483, '2025-08-01', 10, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(484, '2025-08-01', 9, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(485, '2025-08-01', 8, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(486, '2025-08-01', 7, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(487, '2025-08-01', 6, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(488, '2025-08-01', 3, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:47', '2025-08-01 04:57:47', 5, NULL), +(489, '2025-08-01', 2, 3, 2, 1, NULL, 8.00, '2025-08-01 04:57:48', '2025-08-01 04:57:48', 5, NULL), +(490, '2025-08-01', 4, 3, 3, 1, NULL, 4.00, '2025-08-01 05:02:28', '2025-08-01 05:02:28', 3, NULL), +(491, '2025-08-01', 4, 5, 1, 1, NULL, 4.00, '2025-08-01 05:02:28', '2025-08-01 05:02:28', 3, NULL), +(492, '2025-08-01', 5, 3, 3, 1, NULL, 4.00, '2025-08-01 05:02:28', '2025-08-01 05:02:28', 3, NULL), +(493, '2025-08-01', 5, 5, 1, 1, NULL, 4.00, '2025-08-01 05:02:28', '2025-08-01 05:02:28', 3, NULL), +(494, '2025-08-07', 9, 3, 2, 2, 4, 4.00, '2025-08-07 06:42:39', '2025-08-07 06:42:39', 5, NULL), +(495, '2025-08-07', 9, 3, 2, 1, NULL, 4.00, '2025-08-07 06:42:39', '2025-08-07 06:42:39', 5, NULL), +(496, '2025-08-07', 7, 3, 2, 2, 4, 4.00, '2025-08-07 06:42:39', '2025-08-07 06:42:39', 5, NULL), +(497, '2025-08-07', 7, 3, 2, 1, NULL, 4.00, '2025-08-07 06:42:39', '2025-08-07 06:42:39', 5, NULL), +(498, '2025-08-07', 10, 5, 2, 1, NULL, 8.00, '2025-08-07 06:43:14', '2025-08-07 06:43:14', 5, NULL), +(499, '2025-08-07', 4, 5, 2, 1, NULL, 8.00, '2025-08-07 06:43:15', '2025-08-07 06:43:15', 5, NULL), +(500, '2025-08-07', 2, 5, 2, 1, NULL, 8.00, '2025-08-07 06:43:15', '2025-08-07 06:43:15', 5, NULL), +(501, '2025-08-07', 6, 3, 2, 1, NULL, 8.00, '2025-08-07 06:43:39', '2025-08-07 06:43:39', 5, NULL), +(502, '2025-08-07', 3, 3, 2, 1, NULL, 8.00, '2025-08-07 06:43:39', '2025-08-07 06:43:39', 5, NULL), +(503, '2025-08-07', 8, 3, 2, 1, NULL, 8.00, '2025-08-07 06:43:39', '2025-08-07 06:43:39', 5, NULL), +(504, '2025-08-07', 1, 3, 3, 1, NULL, 8.00, '2025-08-07 06:43:52', '2025-08-07 06:43:52', 3, NULL), +(505, '2025-08-08', 1, 3, 3, 1, NULL, 8.00, '2025-08-08 06:45:20', '2025-08-08 06:45:20', 3, NULL), +(506, '2025-08-08', 10, 5, 2, 1, NULL, 8.00, '2025-08-08 06:58:42', '2025-08-08 06:58:42', 5, NULL), +(507, '2025-08-08', 2, 5, 2, 1, NULL, 8.00, '2025-08-08 06:58:42', '2025-08-08 06:58:42', 5, NULL), +(508, '2025-08-08', 9, 3, 2, 1, NULL, 8.00, '2025-08-08 06:59:18', '2025-08-08 06:59:18', 5, NULL), +(509, '2025-08-08', 8, 3, 2, 1, NULL, 8.00, '2025-08-08 06:59:19', '2025-08-08 06:59:19', 5, NULL), +(510, '2025-08-08', 3, 3, 2, 1, NULL, 8.00, '2025-08-08 06:59:19', '2025-08-08 06:59:19', 5, NULL), +(511, '2025-08-08', 4, 3, 2, 1, NULL, 8.00, '2025-08-08 06:59:19', '2025-08-08 06:59:19', 5, NULL), +(512, '2025-08-08', 6, 3, 2, 1, NULL, 8.00, '2025-08-08 06:59:19', '2025-08-08 06:59:19', 5, NULL), +(513, '2025-08-11', 1, 3, 3, 1, NULL, 8.00, '2025-08-11 06:27:37', '2025-08-11 06:27:37', 3, NULL), +(514, '2025-08-11', 1, 3, 3, 1, NULL, 8.00, '2025-08-11 06:27:37', '2025-08-11 06:27:37', 3, NULL), +(515, '2025-08-11', 10, 5, 2, 1, NULL, 8.00, '2025-08-11 06:46:23', '2025-08-11 06:46:23', 5, NULL), +(516, '2025-08-11', 2, 5, 2, 1, NULL, 8.00, '2025-08-11 06:46:23', '2025-08-11 06:46:23', 5, NULL), +(517, '2025-08-11', 8, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:49', '2025-08-11 06:46:49', 5, NULL), +(518, '2025-08-11', 7, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:49', '2025-08-11 06:46:49', 5, NULL), +(519, '2025-08-11', 6, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:50', '2025-08-11 06:46:50', 5, NULL), +(520, '2025-08-11', 5, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:50', '2025-08-11 06:46:50', 5, NULL), +(521, '2025-08-11', 4, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:50', '2025-08-11 06:46:50', 5, NULL), +(522, '2025-08-11', 3, 3, 2, 1, NULL, 8.00, '2025-08-11 06:46:50', '2025-08-11 06:46:50', 5, NULL), +(523, '2025-08-12', 10, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(524, '2025-08-12', 9, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(525, '2025-08-12', 8, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(526, '2025-08-12', 7, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(527, '2025-08-12', 5, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(528, '2025-08-12', 4, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(529, '2025-08-12', 3, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(530, '2025-08-12', 1, 3, 2, 1, NULL, 8.00, '2025-08-12 06:47:24', '2025-08-12 06:47:24', 3, NULL), +(531, '2025-08-13', 1, 3, 3, 1, NULL, 8.00, '2025-08-13 06:31:32', '2025-08-13 06:31:32', 3, NULL), +(532, '2025-08-13', 2, 3, 2, 1, NULL, 4.00, '2025-08-13 06:36:13', '2025-08-13 06:36:13', 5, NULL); +INSERT INTO `daily_work_reports` (`id`, `report_date`, `worker_id`, `project_id`, `work_type_id`, `work_status_id`, `error_type_id`, `work_hours`, `created_at`, `updated_at`, `created_by`, `updated_by`) VALUES +(533, '2025-08-13', 2, 5, 2, 1, NULL, 4.00, '2025-08-13 06:36:13', '2025-08-13 06:36:13', 5, NULL), +(534, '2025-08-13', 9, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(535, '2025-08-13', 8, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(536, '2025-08-13', 7, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(537, '2025-08-13', 6, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(538, '2025-08-13', 5, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(539, '2025-08-13', 4, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(540, '2025-08-13', 3, 3, 2, 1, NULL, 8.00, '2025-08-13 06:36:48', '2025-08-13 06:36:48', 5, NULL), +(541, '2025-08-13', 10, 5, 2, 1, NULL, 8.00, '2025-08-13 06:37:19', '2025-08-13 06:37:19', 5, NULL), +(542, '2025-08-14', 1, 3, 3, 2, 1, 4.00, '2025-08-14 06:35:27', '2025-08-14 06:35:27', 3, NULL), +(543, '2025-08-14', 1, 3, 3, 1, NULL, 4.00, '2025-08-14 06:35:27', '2025-08-14 06:35:27', 3, NULL), +(544, '2025-08-14', 10, 5, 2, 1, NULL, 4.00, '2025-08-14 06:39:03', '2025-08-14 06:39:03', 5, NULL), +(545, '2025-08-14', 10, 5, 3, 1, NULL, 4.00, '2025-08-14 06:39:03', '2025-08-14 06:39:03', 5, NULL), +(546, '2025-08-14', 2, 5, 2, 1, NULL, 2.00, '2025-08-14 06:39:44', '2025-08-14 06:39:44', 5, NULL), +(547, '2025-08-14', 2, 3, 2, 1, NULL, 6.00, '2025-08-14 06:39:44', '2025-08-14 06:39:44', 5, NULL), +(548, '2025-08-14', 9, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(549, '2025-08-14', 8, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(550, '2025-08-14', 7, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(551, '2025-08-14', 6, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(552, '2025-08-14', 5, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(553, '2025-08-14', 4, 3, 2, 1, NULL, 8.00, '2025-08-14 06:40:10', '2025-08-14 06:40:10', 5, NULL), +(554, '2025-08-18', 2, 3, 2, 1, NULL, 8.00, '2025-08-18 06:21:36', '2025-08-18 06:21:36', 5, NULL), +(555, '2025-08-18', 8, 3, 2, 1, NULL, 8.00, '2025-08-18 06:21:36', '2025-08-18 06:21:36', 5, NULL), +(556, '2025-08-18', 4, 3, 2, 1, NULL, 8.00, '2025-08-18 06:22:01', '2025-08-18 06:22:01', 5, NULL), +(557, '2025-08-18', 10, 5, 3, 1, NULL, 6.00, '2025-08-18 06:22:53', '2025-08-18 06:22:53', 5, NULL), +(558, '2025-08-18', 10, 3, 2, 1, NULL, 2.00, '2025-08-18 06:22:53', '2025-08-18 06:22:53', 5, NULL), +(559, '2025-08-18', 9, 3, 2, 1, NULL, 4.00, '2025-08-18 06:23:34', '2025-08-18 06:23:34', 5, NULL), +(560, '2025-08-18', 9, 3, 3, 1, NULL, 4.00, '2025-08-18 06:23:34', '2025-08-18 06:23:34', 5, NULL), +(561, '2025-08-18', 5, 3, 3, 2, 1, 4.00, '2025-08-18 06:41:24', '2025-08-18 06:41:24', 3, NULL), +(562, '2025-08-18', 1, 3, 3, 2, 1, 4.00, '2025-08-18 06:41:24', '2025-08-18 06:41:24', 3, NULL), +(563, '2025-08-18', 7, 3, 3, 2, 1, 4.00, '2025-08-18 06:41:24', '2025-08-18 06:41:24', 3, NULL), +(564, '2025-08-18', 7, 3, 3, 1, NULL, 4.00, '2025-08-18 06:43:10', '2025-08-18 06:43:10', 3, NULL), +(565, '2025-08-18', 5, 3, 3, 1, NULL, 4.00, '2025-08-18 06:43:10', '2025-08-18 06:43:10', 3, NULL), +(566, '2025-08-18', 1, 3, 3, 1, NULL, 4.00, '2025-08-18 06:43:10', '2025-08-18 06:43:10', 3, NULL), +(567, '2025-08-18', 6, 3, 3, 1, NULL, 8.00, '2025-08-18 06:43:35', '2025-08-18 06:43:35', 6, NULL), +(568, '2025-08-18', 3, 3, 3, 1, NULL, 8.00, '2025-08-18 06:43:35', '2025-08-18 06:43:35', 6, NULL), +(569, '2025-08-19', 1, 3, 3, 1, NULL, 6.00, '2025-08-19 08:02:49', '2025-08-19 08:02:49', 5, NULL), +(573, '2025-08-19', 9, 3, 3, 1, NULL, 10.00, '2025-08-19 08:03:30', '2025-08-19 08:03:30', 5, NULL), +(574, '2025-08-19', 10, 3, 2, 1, NULL, 10.00, '2025-08-19 08:04:05', '2025-08-19 08:04:05', 5, NULL), +(575, '2025-08-19', 8, 3, 2, 1, NULL, 10.00, '2025-08-19 08:04:05', '2025-08-19 08:04:05', 5, NULL), +(576, '2025-08-19', 5, 3, 2, 1, NULL, 10.00, '2025-08-19 08:04:05', '2025-08-19 08:04:05', 5, NULL), +(577, '2025-08-19', 4, 3, 2, 1, NULL, 10.00, '2025-08-19 08:04:05', '2025-08-19 08:04:05', 5, NULL), +(578, '2025-08-19', 2, 3, 2, 1, NULL, 10.00, '2025-08-19 08:04:05', '2025-08-19 08:04:05', 5, NULL), +(579, '2025-08-19', 3, 3, 3, 1, NULL, 10.00, '2025-08-19 08:36:51', '2025-08-19 08:36:51', 6, NULL), +(580, '2025-08-19', 7, 3, 3, 1, NULL, 10.00, '2025-08-19 08:36:51', '2025-08-19 08:36:51', 6, NULL), +(581, '2025-08-19', 6, 3, 3, 1, NULL, 10.00, '2025-08-19 08:36:51', '2025-08-19 08:36:51', 6, NULL), +(582, '2025-08-20', 2, 3, 2, 1, NULL, 8.00, '2025-08-20 06:19:36', '2025-08-20 06:19:36', 5, NULL), +(583, '2025-08-20', 5, 3, 1, 1, NULL, 2.00, '2025-08-20 06:21:28', '2025-08-20 06:21:28', 5, NULL), +(584, '2025-08-20', 5, 3, 2, 1, NULL, 6.00, '2025-08-20 06:21:28', '2025-08-20 06:21:28', 5, NULL), +(585, '2025-08-20', 4, 3, 1, 1, NULL, 2.00, '2025-08-20 06:21:28', '2025-08-20 06:21:28', 5, NULL), +(586, '2025-08-20', 4, 3, 2, 1, NULL, 6.00, '2025-08-20 06:21:28', '2025-08-20 06:21:28', 5, NULL), +(587, '2025-08-20', 6, 3, 3, 1, NULL, 4.00, '2025-08-20 06:43:46', '2025-08-20 06:43:46', 3, NULL), +(589, '2025-08-20', 9, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:23', '2025-08-20 06:44:23', 3, NULL), +(590, '2025-08-20', 8, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:23', '2025-08-20 06:44:23', 3, NULL), +(591, '2025-08-20', 7, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:24', '2025-08-20 06:44:24', 3, NULL), +(593, '2025-08-20', 1, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:24', '2025-08-20 06:44:24', 3, NULL), +(594, '2025-08-20', 10, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:26', '2025-08-20 06:44:26', 6, NULL), +(595, '2025-08-20', 3, 3, 3, 1, NULL, 8.00, '2025-08-20 06:44:26', '2025-08-20 06:44:26', 6, NULL), +(596, '2025-08-21', 7, 3, 3, 1, NULL, 8.00, '2025-08-21 06:30:36', '2025-08-21 06:30:36', 3, NULL), +(597, '2025-08-21', 1, 3, 3, 1, NULL, 8.00, '2025-08-21 06:30:36', '2025-08-21 06:30:36', 3, NULL), +(600, '2025-08-21', 10, 3, 3, 1, NULL, 8.00, '2025-08-21 07:51:23', '2025-08-21 07:51:23', 5, NULL), +(601, '2025-08-21', 10, 3, 3, 1, NULL, 2.00, '2025-08-21 07:51:23', '2025-08-21 07:51:23', 5, NULL), +(602, '2025-08-21', 9, 3, 3, 1, NULL, 8.00, '2025-08-21 07:51:23', '2025-08-21 07:51:23', 5, NULL), +(603, '2025-08-21', 9, 3, 3, 1, NULL, 2.00, '2025-08-21 07:51:23', '2025-08-21 07:51:23', 5, NULL), +(608, '2025-08-21', 2, 3, 2, 1, NULL, 8.00, '2025-08-21 07:54:46', '2025-08-21 07:54:46', 5, NULL), +(609, '2025-08-21', 2, 5, 2, 1, NULL, 2.00, '2025-08-21 07:54:46', '2025-08-21 07:54:46', 5, NULL), +(610, '2025-08-21', 8, 3, 3, 1, NULL, 4.00, '2025-08-21 07:55:25', '2025-08-21 07:55:25', 5, NULL), +(611, '2025-08-21', 8, 3, 2, 1, NULL, 6.00, '2025-08-21 07:55:25', '2025-08-21 07:55:25', 5, NULL), +(612, '2025-08-21', 6, 3, 3, 1, NULL, 10.00, '2025-08-21 08:24:50', '2025-08-21 08:24:50', 6, NULL), +(613, '2025-08-21', 3, 3, 3, 1, NULL, 10.00, '2025-08-21 08:24:50', '2025-08-21 08:24:50', 6, NULL), +(614, '2025-08-22', 2, 3, 2, 1, NULL, 8.00, '2025-08-22 06:21:15', '2025-08-22 06:21:15', 5, NULL), +(615, '2025-08-22', 8, 3, 2, 1, NULL, 4.00, '2025-08-22 06:23:12', '2025-08-22 06:23:12', 5, NULL), +(616, '2025-08-22', 8, 3, 3, 1, NULL, 4.00, '2025-08-22 06:23:12', '2025-08-22 06:23:12', 5, NULL), +(617, '2025-08-22', 5, 3, 3, 1, NULL, 8.00, '2025-08-22 06:23:55', '2025-08-22 06:23:55', 5, NULL), +(618, '2025-08-22', 6, 3, 2, 1, NULL, 4.00, '2025-08-22 06:27:43', '2025-08-22 06:27:43', 3, NULL), +(619, '2025-08-22', 10, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(620, '2025-08-22', 9, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(621, '2025-08-22', 7, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(622, '2025-08-22', 4, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(623, '2025-08-22', 3, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(624, '2025-08-22', 1, 3, 3, 1, NULL, 8.00, '2025-08-22 06:28:15', '2025-08-22 06:28:15', 3, NULL), +(625, '2025-08-23', 4, 3, 2, 1, NULL, 2.00, '2025-08-23 04:57:02', '2025-08-23 04:57:02', 5, NULL), +(626, '2025-08-23', 4, 3, 3, 1, NULL, 6.00, '2025-08-23 04:57:02', '2025-08-23 04:57:02', 5, NULL), +(627, '2025-08-23', 2, 3, 2, 1, NULL, 8.00, '2025-08-23 04:57:25', '2025-08-23 04:57:25', 5, NULL), +(628, '2025-08-23', 10, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(629, '2025-08-23', 9, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(630, '2025-08-23', 8, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(631, '2025-08-23', 6, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(632, '2025-08-23', 5, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(633, '2025-08-23', 3, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(634, '2025-08-23', 1, 3, 3, 1, NULL, 8.00, '2025-08-23 04:57:54', '2025-08-23 04:57:54', 5, NULL), +(635, '2025-08-25', 10, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(636, '2025-08-25', 9, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(637, '2025-08-25', 8, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(638, '2025-08-25', 7, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(640, '2025-08-25', 5, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(641, '2025-08-25', 4, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(643, '2025-08-25', 2, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(644, '2025-08-25', 1, 3, 3, 1, NULL, 8.00, '2025-08-25 06:48:34', '2025-08-25 06:48:34', 3, NULL), +(645, '2025-08-25', 6, 3, 3, 1, NULL, 8.00, '2025-08-25 06:49:16', '2025-08-25 06:49:16', 6, NULL), +(646, '2025-08-25', 3, 3, 3, 1, NULL, 8.00, '2025-08-25 06:49:17', '2025-08-25 06:49:17', 6, NULL), +(647, '2025-08-26', 4, 8, 3, 1, NULL, 8.00, '2025-08-26 07:28:03', '2025-08-26 07:28:03', 5, NULL), +(648, '2025-08-26', 4, 3, 3, 1, NULL, 2.00, '2025-08-26 07:28:03', '2025-08-26 07:28:03', 5, NULL), +(649, '2025-08-26', 2, 8, 3, 1, NULL, 10.00, '2025-08-26 07:28:35', '2025-08-26 07:28:35', 5, NULL), +(651, '2025-08-26', 9, 3, 3, 1, NULL, 10.00, '2025-08-26 07:29:02', '2025-08-26 07:29:02', 5, NULL), +(652, '2025-08-26', 8, 3, 3, 1, NULL, 10.00, '2025-08-26 07:29:02', '2025-08-26 07:29:02', 5, NULL), +(653, '2025-08-26', 7, 3, 3, 1, NULL, 10.00, '2025-08-26 07:29:02', '2025-08-26 07:29:02', 5, NULL), +(655, '2025-08-26', 5, 3, 3, 1, NULL, 10.00, '2025-08-26 07:29:02', '2025-08-26 07:29:02', 5, NULL), +(657, '2025-08-26', 1, 3, 3, 1, NULL, 10.00, '2025-08-26 07:29:03', '2025-08-26 07:29:03', 5, NULL), +(658, '2025-08-26', 6, 3, 3, 1, NULL, 10.00, '2025-08-26 08:22:12', '2025-08-26 08:22:12', 6, NULL), +(659, '2025-08-26', 10, 3, 3, 1, NULL, 10.00, '2025-08-26 08:22:12', '2025-08-26 08:22:12', 6, NULL), +(660, '2025-08-26', 3, 3, 3, 1, NULL, 10.00, '2025-08-26 08:22:12', '2025-08-26 08:22:12', 6, NULL), +(661, '2025-08-27', 10, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(662, '2025-08-27', 9, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(663, '2025-08-27', 7, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(664, '2025-08-27', 6, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(665, '2025-08-27', 5, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(666, '2025-08-27', 4, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(667, '2025-08-27', 3, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:47', '2025-08-27 06:44:47', 3, NULL), +(668, '2025-08-27', 1, 3, 3, 2, 5, 8.00, '2025-08-27 06:44:48', '2025-08-27 06:44:48', 3, NULL), +(669, '2025-08-27', 2, 3, 3, 2, 1, 2.00, '2025-08-27 06:45:32', '2025-08-27 06:45:32', 5, NULL), +(670, '2025-08-27', 2, 8, 2, 1, NULL, 6.00, '2025-08-27 06:45:32', '2025-08-27 06:45:32', 5, NULL), +(671, '2025-08-27', 8, 3, 3, 2, 1, 2.00, '2025-08-27 06:45:32', '2025-08-27 06:45:32', 5, NULL), +(672, '2025-08-27', 8, 8, 2, 1, NULL, 6.00, '2025-08-27 06:45:32', '2025-08-27 06:45:32', 5, NULL), +(673, '2025-08-28', 10, 3, 3, 1, NULL, 6.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(674, '2025-08-28', 10, 3, 3, 2, 1, 4.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(675, '2025-08-28', 5, 3, 3, 1, NULL, 6.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(676, '2025-08-28', 5, 3, 3, 2, 1, 4.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(677, '2025-08-28', 6, 3, 3, 1, NULL, 6.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(678, '2025-08-28', 6, 3, 3, 2, 1, 4.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(679, '2025-08-28', 3, 3, 3, 1, NULL, 6.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(680, '2025-08-28', 3, 3, 3, 2, 1, 4.00, '2025-08-28 08:31:42', '2025-08-28 08:31:42', 6, NULL), +(681, '2025-08-28', 4, 3, 3, 1, NULL, 4.00, '2025-08-28 08:37:46', '2025-08-28 08:37:46', 5, NULL), +(682, '2025-08-28', 4, 5, 3, 1, NULL, 4.00, '2025-08-28 08:37:46', '2025-08-28 08:37:46', 5, NULL), +(683, '2025-08-28', 8, 8, 2, 1, NULL, 4.00, '2025-08-28 08:38:15', '2025-08-28 08:38:15', 5, NULL), +(684, '2025-08-28', 8, 5, 3, 1, NULL, 4.00, '2025-08-28 08:38:15', '2025-08-28 08:38:15', 5, NULL), +(685, '2025-08-28', 2, 3, 3, 2, 1, 2.00, '2025-08-28 08:38:50', '2025-08-28 08:38:50', 5, NULL), +(686, '2025-08-28', 2, 5, 3, 1, NULL, 6.00, '2025-08-28 08:38:50', '2025-08-28 08:38:50', 5, NULL), +(687, '2025-08-28', 1, 3, 3, 2, 1, 8.00, '2025-08-28 08:39:24', '2025-08-28 08:39:24', 5, NULL), +(689, '2025-08-28', 9, 3, 3, 2, 4, 8.00, '2025-08-28 08:40:00', '2025-08-28 08:40:00', 5, NULL), +(690, '2025-08-28', 7, 3, 3, 2, 4, 8.00, '2025-08-28 08:40:00', '2025-08-28 08:40:00', 5, NULL), +(694, '2025-08-28', 4, 5, 3, 1, NULL, 2.00, '2025-08-28 08:44:56', '2025-08-28 08:44:56', 5, NULL), +(695, '2025-08-28', 8, 5, 3, 1, NULL, 2.00, '2025-08-28 08:44:56', '2025-08-28 08:44:56', 5, NULL), +(696, '2025-08-28', 2, 5, 3, 1, NULL, 2.00, '2025-08-28 08:44:56', '2025-08-28 08:44:56', 5, NULL), +(698, '2025-08-28', 9, 3, 3, 1, NULL, 2.00, '2025-08-28 08:45:19', '2025-08-28 08:45:19', 5, NULL), +(699, '2025-08-28', 7, 3, 3, 1, NULL, 2.00, '2025-08-28 08:45:19', '2025-08-28 08:45:19', 5, NULL), +(703, '2025-08-29', 10, 3, 3, 2, 5, 8.00, '2025-08-29 06:47:02', '2025-08-29 06:47:02', 3, NULL), +(704, '2025-08-29', 9, 3, 3, 2, 5, 8.00, '2025-08-29 06:47:02', '2025-08-29 06:47:02', 3, NULL), +(706, '2025-08-29', 7, 3, 3, 2, 5, 8.00, '2025-08-29 06:47:02', '2025-08-29 06:47:02', 3, NULL), +(710, '2025-08-29', 1, 3, 3, 2, 5, 8.00, '2025-08-29 06:47:02', '2025-08-29 06:47:02', 3, NULL), +(713, '2025-08-29', 5, 3, 3, 1, NULL, 6.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(714, '2025-08-29', 5, 3, 3, 2, 1, 2.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(715, '2025-08-29', 3, 3, 3, 1, NULL, 6.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(716, '2025-08-29', 3, 3, 3, 2, 1, 2.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(717, '2025-08-29', 6, 3, 3, 1, NULL, 6.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(718, '2025-08-29', 6, 3, 3, 2, 1, 2.00, '2025-08-29 06:47:35', '2025-08-29 06:47:35', 6, NULL), +(719, '2025-08-29', 8, 5, 3, 1, NULL, 8.00, '2025-08-29 21:55:56', '2025-08-29 21:55:56', 5, NULL), +(720, '2025-08-29', 4, 5, 3, 1, NULL, 8.00, '2025-08-29 21:55:56', '2025-08-29 21:55:56', 5, NULL), +(721, '2025-08-29', 2, 5, 3, 1, NULL, 8.00, '2025-08-29 21:55:56', '2025-08-29 21:55:56', 5, NULL), +(722, '2025-08-30', 2, 5, 3, 1, NULL, 8.00, '2025-08-30 05:12:03', '2025-08-30 05:12:03', 5, NULL), +(723, '2025-08-30', 8, 5, 3, 1, NULL, 8.00, '2025-08-30 05:12:03', '2025-08-30 05:12:03', 5, NULL), +(724, '2025-08-30', 4, 5, 3, 1, NULL, 8.00, '2025-08-30 05:12:03', '2025-08-30 05:12:03', 5, NULL), +(725, '2025-08-30', 10, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(726, '2025-08-30', 9, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(727, '2025-08-30', 7, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(728, '2025-08-30', 6, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(729, '2025-08-30', 5, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(730, '2025-08-30', 3, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(731, '2025-08-30', 1, 3, 3, 2, 1, 8.00, '2025-08-30 05:36:49', '2025-08-30 05:36:49', 3, NULL), +(732, '2025-09-01', 7, 3, 3, 1, NULL, 8.00, '2025-09-01 06:18:28', '2025-09-01 06:18:28', 3, NULL), +(733, '2025-09-01', 9, 3, 3, 1, NULL, 8.00, '2025-09-01 06:18:28', '2025-09-01 06:18:28', 3, NULL), +(734, '2025-09-01', 10, 3, 3, 2, 5, 4.00, '2025-09-01 06:19:11', '2025-09-01 06:19:11', 3, NULL), +(735, '2025-09-01', 3, 3, 3, 2, 5, 4.00, '2025-09-01 06:19:11', '2025-09-01 06:19:11', 3, NULL), +(736, '2025-09-01', 1, 3, 3, 2, 5, 4.00, '2025-09-01 06:19:11', '2025-09-01 06:19:11', 3, NULL), +(737, '2025-09-01', 10, 3, 3, 1, NULL, 4.00, '2025-09-01 06:19:35', '2025-09-01 06:19:35', 3, NULL), +(738, '2025-09-01', 3, 3, 3, 1, NULL, 4.00, '2025-09-01 06:19:35', '2025-09-01 06:19:35', 3, NULL), +(739, '2025-09-01', 1, 3, 3, 1, NULL, 4.00, '2025-09-01 06:19:35', '2025-09-01 06:19:35', 3, NULL), +(740, '2025-09-01', 5, 3, 3, 2, 1, 8.00, '2025-09-01 06:20:03', '2025-09-01 06:20:03', 3, NULL), +(741, '2025-08-21', 4, 3, 3, 1, NULL, 10.00, '2025-09-01 23:18:03', '2025-09-01 23:18:03', 3, NULL), +(742, '2025-08-21', 5, 3, 3, 1, NULL, 10.00, '2025-09-01 23:18:03', '2025-09-01 23:18:03', 3, NULL), +(745, '2025-09-02', 10, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(746, '2025-09-02', 9, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(747, '2025-09-02', 6, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(748, '2025-09-02', 5, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(749, '2025-09-02', 3, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(750, '2025-09-02', 1, 3, 3, 2, 1, 6.00, '2025-09-02 07:36:04', '2025-09-02 07:36:04', 3, NULL), +(751, '2025-09-02', 10, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(752, '2025-09-02', 9, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(753, '2025-09-02', 6, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(754, '2025-09-02', 5, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(755, '2025-09-02', 3, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(756, '2025-09-02', 1, 3, 3, 1, NULL, 4.00, '2025-09-02 07:36:31', '2025-09-02 07:36:31', 3, NULL), +(757, '2025-09-02', 8, 3, 3, 1, NULL, 10.00, '2025-09-02 07:37:19', '2025-09-02 07:37:19', 3, NULL), +(758, '2025-09-02', 7, 3, 3, 1, NULL, 10.00, '2025-09-02 07:37:19', '2025-09-02 07:37:19', 3, NULL), +(759, '2025-09-02', 2, 5, 3, 1, NULL, 8.00, '2025-09-02 08:16:14', '2025-09-02 08:16:14', 5, NULL), +(760, '2025-09-02', 2, 5, 3, 1, NULL, 2.00, '2025-09-02 08:16:14', '2025-09-02 08:16:14', 5, NULL), +(761, '2025-09-02', 4, 5, 3, 1, NULL, 8.00, '2025-09-02 08:16:14', '2025-09-02 08:16:14', 5, NULL), +(762, '2025-09-02', 4, 5, 3, 1, NULL, 2.00, '2025-09-02 08:16:14', '2025-09-02 08:16:14', 5, NULL), +(763, '2025-09-03', 10, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:47', '2025-09-03 06:34:47', 3, NULL), +(764, '2025-09-03', 9, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:47', '2025-09-03 06:34:47', 3, NULL), +(765, '2025-09-03', 8, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(766, '2025-09-03', 7, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(767, '2025-09-03', 6, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(768, '2025-09-03', 5, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(769, '2025-09-03', 3, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(770, '2025-09-03', 1, 3, 3, 1, NULL, 8.00, '2025-09-03 06:34:48', '2025-09-03 06:34:48', 3, NULL), +(771, '2025-09-03', 2, 5, 3, 1, NULL, 8.00, '2025-09-03 06:44:18', '2025-09-03 06:44:18', 5, NULL), +(772, '2025-09-04', 10, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:32', '2025-09-04 06:41:32', 6, NULL), +(773, '2025-09-04', 5, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:32', '2025-09-04 06:41:32', 6, NULL), +(774, '2025-09-04', 9, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:32', '2025-09-04 06:41:32', 6, NULL), +(775, '2025-09-04', 8, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:32', '2025-09-04 06:41:32', 6, NULL), +(776, '2025-09-04', 3, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:33', '2025-09-04 06:41:33', 6, NULL), +(777, '2025-09-04', 7, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:33', '2025-09-04 06:41:33', 6, NULL), +(778, '2025-09-04', 1, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:33', '2025-09-04 06:41:33', 6, NULL), +(779, '2025-09-04', 6, 3, 3, 1, NULL, 8.00, '2025-09-04 06:41:33', '2025-09-04 06:41:33', 6, NULL), +(780, '2025-09-04', 2, 5, 3, 1, NULL, 8.00, '2025-09-04 06:48:34', '2025-09-04 06:48:34', 5, NULL), +(781, '2025-09-04', 4, 5, 3, 1, NULL, 8.00, '2025-09-04 06:48:34', '2025-09-04 06:48:34', 5, NULL), +(782, '2025-09-05', 10, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:30', '2025-09-05 06:39:30', 3, NULL), +(783, '2025-09-05', 9, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:30', '2025-09-05 06:39:30', 3, NULL), +(784, '2025-09-05', 7, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:30', '2025-09-05 06:39:30', 3, NULL), +(785, '2025-09-05', 6, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:31', '2025-09-05 06:39:31', 3, NULL), +(786, '2025-09-05', 5, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:31', '2025-09-05 06:39:31', 3, NULL), +(787, '2025-09-05', 3, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:31', '2025-09-05 06:39:31', 3, NULL), +(788, '2025-09-05', 1, 3, 3, 1, NULL, 8.00, '2025-09-05 06:39:31', '2025-09-05 06:39:31', 3, NULL), +(789, '2025-09-05', 2, 5, 3, 1, NULL, 8.00, '2025-09-05 22:09:55', '2025-09-05 22:09:55', 5, NULL), +(790, '2025-09-05', 8, 5, 3, 1, NULL, 8.00, '2025-09-05 22:09:55', '2025-09-05 22:09:55', 5, NULL), +(791, '2025-09-05', 4, 5, 3, 1, NULL, 8.00, '2025-09-05 22:09:55', '2025-09-05 22:09:55', 5, NULL), +(792, '2025-09-06', 8, 10, 3, 1, NULL, 8.00, '2025-09-06 04:21:10', '2025-09-06 04:21:10', 5, NULL), +(793, '2025-09-06', 4, 10, 3, 1, NULL, 8.00, '2025-09-06 04:21:10', '2025-09-06 04:21:10', 5, NULL), +(794, '2025-09-06', 2, 10, 3, 1, NULL, 8.00, '2025-09-06 04:21:10', '2025-09-06 04:21:10', 5, NULL), +(795, '2025-09-06', 10, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:18', '2025-09-06 05:28:18', 3, NULL), +(796, '2025-09-06', 9, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:18', '2025-09-06 05:28:18', 3, NULL), +(797, '2025-09-06', 7, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:18', '2025-09-06 05:28:18', 3, NULL), +(798, '2025-09-06', 6, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:19', '2025-09-06 05:28:19', 3, NULL), +(799, '2025-09-06', 5, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:19', '2025-09-06 05:28:19', 3, NULL), +(800, '2025-09-06', 3, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:19', '2025-09-06 05:28:19', 3, NULL), +(801, '2025-09-06', 1, 3, 3, 1, NULL, 8.00, '2025-09-06 05:28:19', '2025-09-06 05:28:19', 3, NULL), +(802, '2025-09-08', 10, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(803, '2025-09-08', 9, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(804, '2025-09-08', 7, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(805, '2025-09-08', 6, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(806, '2025-09-08', 5, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(807, '2025-09-08', 3, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(808, '2025-09-08', 1, 3, 3, 1, NULL, 8.00, '2025-09-08 06:15:43', '2025-09-08 06:15:43', 3, NULL), +(809, '2025-09-08', 8, 5, 3, 1, NULL, 8.00, '2025-09-08 06:47:37', '2025-09-08 06:47:37', 5, NULL), +(810, '2025-09-08', 4, 5, 3, 1, NULL, 8.00, '2025-09-08 06:47:37', '2025-09-08 06:47:37', 5, NULL), +(811, '2025-09-08', 2, 5, 3, 1, NULL, 8.00, '2025-09-08 06:47:37', '2025-09-08 06:47:37', 5, NULL), +(812, '2025-09-09', 10, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(813, '2025-09-09', 9, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(814, '2025-09-09', 7, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(815, '2025-09-09', 6, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(816, '2025-09-09', 5, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(817, '2025-09-09', 3, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(818, '2025-09-09', 1, 3, 3, 1, NULL, 8.00, '2025-09-09 06:03:27', '2025-09-09 06:03:27', 3, NULL), +(819, '2025-09-09', 8, 5, 3, 1, NULL, 8.00, '2025-09-09 06:44:29', '2025-09-09 06:44:29', 5, NULL), +(820, '2025-09-09', 4, 5, 3, 1, NULL, 8.00, '2025-09-09 06:44:29', '2025-09-09 06:44:29', 5, NULL), +(821, '2025-09-09', 2, 5, 3, 1, NULL, 8.00, '2025-09-09 06:44:29', '2025-09-09 06:44:29', 5, NULL), +(822, '2025-09-10', 10, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(823, '2025-09-10', 9, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(824, '2025-09-10', 7, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(825, '2025-09-10', 6, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(826, '2025-09-10', 5, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(827, '2025-09-10', 3, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(828, '2025-09-10', 1, 3, 3, 1, NULL, 8.00, '2025-09-10 06:27:52', '2025-09-10 06:27:52', 3, NULL), +(829, '2025-09-10', 8, 5, 3, 1, NULL, 8.00, '2025-09-10 06:48:43', '2025-09-10 06:48:43', 5, NULL), +(830, '2025-09-10', 4, 5, 3, 1, NULL, 8.00, '2025-09-10 06:48:43', '2025-09-10 06:48:43', 5, NULL), +(831, '2025-09-10', 2, 5, 3, 1, NULL, 8.00, '2025-09-10 06:48:43', '2025-09-10 06:48:43', 5, NULL), +(832, '2025-09-11', 2, 5, 3, 1, NULL, 2.00, '2025-09-11 06:37:11', '2025-09-11 06:37:11', 5, NULL), +(833, '2025-09-11', 2, 8, 3, 1, NULL, 6.00, '2025-09-11 06:37:11', '2025-09-11 06:37:11', 5, NULL), +(834, '2025-09-11', 4, 5, 3, 1, NULL, 2.00, '2025-09-11 06:38:24', '2025-09-11 06:38:24', 5, NULL), +(835, '2025-09-11', 4, 8, 3, 1, NULL, 2.00, '2025-09-11 06:38:24', '2025-09-11 06:38:24', 5, NULL), +(836, '2025-09-11', 4, 3, 3, 1, NULL, 4.00, '2025-09-11 06:38:24', '2025-09-11 06:38:24', 5, NULL), +(838, '2025-09-11', 1, 3, 1, 1, NULL, 4.00, '2025-09-11 06:40:48', '2025-09-11 06:40:48', 5, NULL), +(840, '2025-09-11', 5, 3, 2, 1, NULL, 8.00, '2025-09-11 06:41:47', '2025-09-11 06:41:47', 6, NULL), +(841, '2025-09-11', 8, 3, 2, 1, NULL, 8.00, '2025-09-11 06:41:47', '2025-09-11 06:41:47', 6, NULL), +(842, '2025-09-11', 3, 3, 2, 1, NULL, 8.00, '2025-09-11 06:41:47', '2025-09-11 06:41:47', 6, NULL), +(843, '2025-09-11', 7, 3, 2, 1, NULL, 8.00, '2025-09-11 06:41:47', '2025-09-11 06:41:47', 6, NULL), +(844, '2025-09-11', 6, 3, 2, 1, NULL, 8.00, '2025-09-11 06:41:47', '2025-09-11 06:41:47', 6, NULL), +(845, '2025-09-11', 10, 3, 2, 1, NULL, 4.00, '2025-09-11 06:41:51', '2025-09-11 06:41:51', 5, NULL), +(846, '2025-09-11', 10, 3, 3, 1, NULL, 4.00, '2025-09-11 06:41:51', '2025-09-11 06:41:51', 5, NULL), +(847, '2025-09-11', 9, 3, 2, 1, NULL, 4.00, '2025-09-11 06:41:51', '2025-09-11 06:41:51', 5, NULL), +(848, '2025-09-11', 9, 3, 3, 1, NULL, 4.00, '2025-09-11 06:41:51', '2025-09-11 06:41:51', 5, NULL), +(851, '2025-09-12', 10, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(852, '2025-09-12', 9, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(853, '2025-09-12', 8, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(854, '2025-09-12', 6, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(855, '2025-09-12', 5, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(856, '2025-09-12', 4, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(857, '2025-09-12', 3, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(858, '2025-09-12', 2, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(859, '2025-09-12', 1, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(860, '2025-09-12', 7, 3, 3, 1, NULL, 8.00, '2025-09-12 06:45:29', '2025-09-12 06:45:29', 3, NULL), +(861, '2025-09-13', 10, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(862, '2025-09-13', 8, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(863, '2025-09-13', 7, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(864, '2025-09-13', 6, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(865, '2025-09-13', 5, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(866, '2025-09-13', 4, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(867, '2025-09-13', 3, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(868, '2025-09-13', 2, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(869, '2025-09-13', 1, 3, 3, 1, NULL, 8.00, '2025-09-13 06:38:14', '2025-09-13 06:38:14', 3, NULL), +(870, '2025-09-14', 9, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:40', '2025-09-14 04:47:40', 3, NULL), +(871, '2025-09-14', 8, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:40', '2025-09-14 04:47:40', 3, NULL), +(872, '2025-09-14', 7, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:40', '2025-09-14 04:47:40', 3, NULL), +(873, '2025-09-14', 6, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:40', '2025-09-14 04:47:40', 3, NULL), +(874, '2025-09-14', 5, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:41', '2025-09-14 04:47:41', 3, NULL), +(875, '2025-09-14', 4, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:41', '2025-09-14 04:47:41', 3, NULL), +(876, '2025-09-14', 3, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:41', '2025-09-14 04:47:41', 3, NULL), +(877, '2025-09-14', 2, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:41', '2025-09-14 04:47:41', 3, NULL), +(878, '2025-09-14', 1, 3, 3, 1, NULL, 8.00, '2025-09-14 04:47:41', '2025-09-14 04:47:41', 3, NULL), +(879, '2025-09-15', 5, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:00', '2025-09-15 06:50:00', 3, NULL), +(880, '2025-09-15', 10, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:00', '2025-09-15 06:50:00', 3, NULL), +(881, '2025-09-15', 9, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:00', '2025-09-15 06:50:00', 3, NULL), +(882, '2025-09-15', 8, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:00', '2025-09-15 06:50:00', 3, NULL), +(883, '2025-09-15', 7, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(884, '2025-09-15', 6, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(885, '2025-09-15', 4, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(886, '2025-09-15', 3, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(887, '2025-09-15', 2, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(888, '2025-09-15', 1, 3, 3, 1, NULL, 8.00, '2025-09-15 06:50:01', '2025-09-15 06:50:01', 3, NULL), +(889, '2025-09-16', 2, 8, 3, 1, NULL, 8.00, '2025-09-16 06:51:19', '2025-09-16 06:51:19', 5, NULL), +(890, '2025-09-16', 4, 8, 3, 1, NULL, 8.00, '2025-09-16 06:51:19', '2025-09-16 06:51:19', 5, NULL), +(891, '2025-09-16', 8, 8, 2, 1, NULL, 2.00, '2025-09-16 06:52:12', '2025-09-16 06:52:12', 5, NULL), +(892, '2025-09-16', 8, 3, 2, 1, NULL, 6.00, '2025-09-16 06:52:12', '2025-09-16 06:52:12', 5, NULL), +(893, '2025-09-17', 4, 8, 3, 1, NULL, 8.00, '2025-09-17 06:43:08', '2025-09-17 06:43:08', 5, NULL), +(894, '2025-09-17', 2, 8, 3, 1, NULL, 8.00, '2025-09-17 06:43:08', '2025-09-17 06:43:08', 5, NULL), +(895, '2025-09-17', 10, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(896, '2025-09-17', 9, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(897, '2025-09-17', 8, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(898, '2025-09-17', 7, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(899, '2025-09-17', 6, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(900, '2025-09-17', 5, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(901, '2025-09-17', 3, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(902, '2025-09-17', 1, 3, 3, 1, NULL, 8.00, '2025-09-17 06:45:06', '2025-09-17 06:45:06', 3, NULL), +(903, '2025-09-18', 7, 3, 3, 1, NULL, 8.00, '2025-09-18 06:43:40', '2025-09-18 06:43:40', 3, NULL), +(904, '2025-09-18', 1, 3, 3, 1, NULL, 8.00, '2025-09-18 06:43:40', '2025-09-18 06:43:40', 3, NULL), +(905, '2025-09-18', 10, 3, 2, 1, NULL, 8.00, '2025-09-18 06:44:42', '2025-09-18 06:44:42', 3, NULL), +(906, '2025-09-18', 9, 3, 2, 1, NULL, 8.00, '2025-09-18 06:44:42', '2025-09-18 06:44:42', 3, NULL), +(907, '2025-09-18', 8, 3, 2, 1, NULL, 8.00, '2025-09-18 06:44:42', '2025-09-18 06:44:42', 3, NULL), +(908, '2025-09-18', 6, 3, 2, 1, NULL, 8.00, '2025-09-18 06:44:42', '2025-09-18 06:44:42', 3, NULL), +(909, '2025-09-18', 3, 3, 2, 1, NULL, 8.00, '2025-09-18 06:44:42', '2025-09-18 06:44:42', 3, NULL), +(910, '2025-09-18', 5, 3, 2, 1, NULL, 6.00, '2025-09-18 06:46:39', '2025-09-18 06:46:39', 3, NULL), +(911, '2025-09-18', 2, 8, 3, 1, NULL, 8.00, '2025-09-18 06:54:48', '2025-09-18 06:54:48', 5, NULL), +(912, '2025-09-18', 4, 8, 3, 1, NULL, 8.00, '2025-09-18 06:54:48', '2025-09-18 06:54:48', 5, NULL), +(913, '2025-09-19', 4, 8, 3, 1, NULL, 8.00, '2025-09-19 06:51:40', '2025-09-19 06:51:40', 5, NULL), +(914, '2025-09-19', 2, 8, 3, 1, NULL, 8.00, '2025-09-19 06:51:40', '2025-09-19 06:51:40', 5, NULL), +(915, '2025-09-19', 10, 3, 2, 1, NULL, 8.00, '2025-09-19 06:52:05', '2025-09-19 06:52:05', 5, NULL), +(916, '2025-09-19', 8, 3, 2, 1, NULL, 8.00, '2025-09-19 06:52:05', '2025-09-19 06:52:05', 5, NULL), +(917, '2025-09-19', 7, 3, 2, 1, NULL, 8.00, '2025-09-19 06:52:05', '2025-09-19 06:52:05', 5, NULL), +(918, '2025-09-19', 6, 3, 2, 1, NULL, 8.00, '2025-09-19 06:52:05', '2025-09-19 06:52:05', 5, NULL), +(919, '2025-09-19', 5, 3, 2, 1, NULL, 8.00, '2025-09-19 06:52:05', '2025-09-19 06:52:05', 5, NULL), +(920, '2025-09-19', 3, 3, 2, 1, NULL, 4.00, '2025-09-19 06:52:23', '2025-09-19 06:52:23', 5, NULL), +(921, '2025-09-20', 4, 8, 3, 1, NULL, 8.00, '2025-09-20 05:30:19', '2025-09-20 05:30:19', 5, NULL), +(922, '2025-09-20', 2, 8, 3, 1, NULL, 8.00, '2025-09-20 05:30:19', '2025-09-20 05:30:19', 5, NULL), +(923, '2025-09-22', 10, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(924, '2025-09-22', 9, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(925, '2025-09-22', 8, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(926, '2025-09-22', 7, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(927, '2025-09-22', 5, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(928, '2025-09-22', 1, 3, 2, 1, NULL, 8.00, '2025-09-22 06:47:25', '2025-09-22 06:47:25', 3, NULL), +(929, '2025-09-22', 4, 8, 3, 1, NULL, 8.00, '2025-09-22 06:50:29', '2025-09-22 06:50:29', 5, NULL), +(930, '2025-09-22', 2, 8, 3, 1, NULL, 8.00, '2025-09-22 06:50:29', '2025-09-22 06:50:29', 5, NULL), +(931, '2025-09-23', 4, 8, 3, 1, NULL, 8.00, '2025-09-23 05:46:40', '2025-09-23 05:46:40', 5, NULL), +(932, '2025-09-23', 2, 8, 3, 1, NULL, 8.00, '2025-09-23 05:46:40', '2025-09-23 05:46:40', 5, NULL), +(933, '2025-09-24', 4, 8, 3, 1, NULL, 8.00, '2025-09-25 01:14:58', '2025-09-25 01:14:58', 5, NULL), +(934, '2025-09-24', 2, 8, 3, 1, NULL, 8.00, '2025-09-25 01:14:58', '2025-09-25 01:14:58', 5, NULL), +(935, '2025-09-29', 7, 14, 1, 1, NULL, 8.00, '2025-09-29 06:36:07', '2025-09-29 06:36:07', 3, NULL), +(936, '2025-09-29', 1, 14, 1, 1, NULL, 8.00, '2025-09-29 06:36:07', '2025-09-29 06:36:07', 3, NULL), +(937, '2025-09-29', 10, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(938, '2025-09-29', 8, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(939, '2025-09-29', 6, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(940, '2025-09-29', 9, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(941, '2025-09-29', 5, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(942, '2025-09-29', 4, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(943, '2025-09-29', 3, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(944, '2025-09-29', 2, 3, 2, 1, NULL, 8.00, '2025-09-29 06:36:47', '2025-09-29 06:36:47', 3, NULL), +(945, '2025-09-30', 10, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(946, '2025-09-30', 9, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(947, '2025-09-30', 8, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(948, '2025-09-30', 6, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(949, '2025-09-30', 5, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(950, '2025-09-30', 4, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:26', '2025-09-30 06:52:26', 3, NULL), +(951, '2025-09-30', 3, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:27', '2025-09-30 06:52:27', 3, NULL), +(953, '2025-09-30', 1, 3, 2, 1, NULL, 8.00, '2025-09-30 06:52:27', '2025-09-30 06:52:27', 3, NULL), +(954, '2025-09-30', 2, 8, 3, 1, NULL, 8.00, '2025-09-30 06:56:55', '2025-09-30 06:56:55', 5, NULL), +(955, '2025-10-02', 5, 3, 2, 1, NULL, 6.00, '2025-10-02 05:25:58', '2025-10-02 05:25:58', 3, NULL), +(956, '2025-10-02', 8, 3, 2, 1, NULL, 6.00, '2025-10-02 05:25:59', '2025-10-02 05:25:59', 3, NULL), +(957, '2025-10-02', 10, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:32', '2025-10-02 06:22:32', 3, NULL), +(958, '2025-10-02', 9, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:32', '2025-10-02 06:22:32', 3, NULL), +(959, '2025-10-02', 7, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:32', '2025-10-02 06:22:32', 3, NULL), +(960, '2025-10-02', 6, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:32', '2025-10-02 06:22:32', 3, NULL), +(961, '2025-10-02', 4, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:33', '2025-10-02 06:22:33', 3, NULL), +(962, '2025-10-02', 2, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:33', '2025-10-02 06:22:33', 3, NULL), +(963, '2025-10-02', 1, 3, 2, 1, NULL, 8.00, '2025-10-02 06:22:33', '2025-10-02 06:22:33', 3, NULL), +(964, '2025-09-01', 8, 5, 3, 1, NULL, 8.00, '2025-10-10 23:35:07', '2025-10-10 23:35:07', 3, NULL), +(965, '2025-09-01', 4, 5, 3, 1, NULL, 8.00, '2025-10-10 23:35:07', '2025-10-10 23:35:07', 3, NULL), +(966, '2025-09-01', 2, 5, 3, 1, NULL, 8.00, '2025-10-10 23:35:07', '2025-10-10 23:35:07', 3, NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `EquipmentList` +-- + +CREATE TABLE `EquipmentList` ( + `equipment_id` int(11) NOT NULL, + `factory_id` int(11) DEFAULT NULL, + `equipment_name` varchar(255) NOT NULL, + `model` varchar(100) DEFAULT NULL, + `status` text DEFAULT 'operational', + `purchase_date` date DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `error_types` +-- + +CREATE TABLE `error_types` ( + `id` int(11) NOT NULL, + `name` varchar(100) NOT NULL COMMENT '에러 유형명', + `description` text DEFAULT NULL COMMENT '에러 설명', + `severity` enum('low','medium','high','critical') DEFAULT 'medium' COMMENT '심각도', + `solution_guide` text DEFAULT NULL COMMENT '해결 가이드', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `error_types` +-- + +INSERT INTO `error_types` (`id`, `name`, `description`, `severity`, `solution_guide`, `created_at`, `updated_at`) VALUES +(1, '설계미스', '설계미스', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:03'), +(2, '외주작업 불량', '입고 자재 불량', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:05'), +(3, '입고지연', '자재 미입고', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:11'), +(4, '작업불량', '작업자 실수', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:13'), +(5, '설비고장', '장비없음', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-16 03:02:16'), +(6, '검사불량', '검사불량', 'medium', NULL, '2025-06-16 02:21:32', '2025-06-24 04:36:18'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `FactoryInfo` +-- + +CREATE TABLE `FactoryInfo` ( + `factory_id` int(11) NOT NULL, + `factory_name` varchar(255) NOT NULL, + `address` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `map_image_url` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `FactoryInfo` +-- + +INSERT INTO `FactoryInfo` (`factory_id`, `factory_name`, `address`, `description`, `map_image_url`, `created_at`, `updated_at`) VALUES +(3, '제1공장 휴게공간 및 작업자 사물함', '현대기아로 771-9', '개인 보관함, 컨테이너(휴게공간), 화장실, 흡연장', '/uploads/map_image-1746593523450.png', '2025-05-07 04:52:03', '2025-05-07 04:52:03'), +(4, '제 1공장 공구 및 용접봉 보관 구역', '현대기아로 771-9', '소모품, 공구류, 용접봉 보관 구역', '/uploads/map_image-1746593674259.png', '2025-05-07 04:53:59', '2025-05-07 04:53:59'), +(5, 'ee', 'ee', 'ee', NULL, '2025-06-03 22:13:23', '2025-06-03 22:13:23'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `IssueTypes` +-- + +CREATE TABLE `IssueTypes` ( + `issue_type_id` int(11) NOT NULL, + `category` varchar(100) NOT NULL, + `subcategory` varchar(100) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `IssueTypes` +-- + +INSERT INTO `IssueTypes` (`issue_type_id`, `category`, `subcategory`) VALUES +(1, '구매팀', '자재입고지연'), +(2, '구매팀', '자재전달 미흡'), +(3, '품질', '검사 내용 전달 미흡'), +(4, '품질', '검사오류'), +(5, '설계', '설계미스(치수)'), +(6, '설계', '설계미스(작업불가)'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `login_logs` +-- + +CREATE TABLE `login_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `login_time` datetime DEFAULT current_timestamp(), + `logout_time` datetime DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `login_status` enum('success','failed','locked') DEFAULT 'success', + `failure_reason` varchar(100) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `login_logs` +-- + +INSERT INTO `login_logs` (`log_id`, `user_id`, `login_time`, `logout_time`, `ip_address`, `user_agent`, `login_status`, `failure_reason`) VALUES +(1, 3, '2025-06-15 05:58:39', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(3, 4, '2025-06-15 06:04:06', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(4, 3, '2025-06-15 06:24:53', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(5, 3, '2025-06-15 06:24:55', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(6, 3, '2025-06-15 06:32:41', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(7, 3, '2025-06-15 07:03:19', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(8, 3, '2025-06-15 07:03:21', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(9, 3, '2025-06-15 07:03:25', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(10, 1, '2025-06-15 07:40:16', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(11, 6, '2025-06-15 07:42:02', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(12, 3, '2025-06-15 07:43:30', NULL, '118.235.6.135', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(13, 3, '2025-06-15 22:02:59', NULL, '118.235.6.29', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(14, 4, '2025-06-15 22:15:25', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(15, 3, '2025-06-15 22:15:34', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(16, 6, '2025-06-15 22:15:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'failed', 'invalid_password'), +(17, 6, '2025-06-15 22:15:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(18, 3, '2025-06-15 22:16:39', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(19, 3, '2025-06-15 22:17:14', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(20, 6, '2025-06-15 22:21:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(21, 1, '2025-06-15 22:21:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(22, 6, '2025-06-15 22:22:06', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(23, 5, '2025-06-15 22:22:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(24, 6, '2025-06-15 22:23:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(25, 3, '2025-06-15 22:24:49', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(26, 3, '2025-06-15 22:30:18', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(27, 3, '2025-06-15 22:31:21', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(28, 5, '2025-06-15 22:44:31', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(29, 4, '2025-06-15 22:57:51', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(30, 4, '2025-06-15 22:57:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(31, 4, '2025-06-15 22:57:54', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(32, 4, '2025-06-15 22:57:55', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(33, 4, '2025-06-15 23:11:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(34, 4, '2025-06-15 23:28:04', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(35, 3, '2025-06-15 23:33:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(36, 3, '2025-06-16 00:58:53', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(37, 3, '2025-06-16 01:15:46', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(38, 5, '2025-06-16 01:16:43', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(39, 1, '2025-06-16 01:25:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(40, 1, '2025-06-16 01:26:08', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(41, 3, '2025-06-16 02:27:20', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(42, 3, '2025-06-16 02:45:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(43, 3, '2025-06-16 03:04:13', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(44, 3, '2025-06-16 03:17:28', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(45, 5, '2025-06-16 03:17:55', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(46, 3, '2025-06-16 03:18:56', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(47, 5, '2025-06-16 03:19:13', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(48, 1, '2025-06-16 03:55:56', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(49, 1, '2025-06-16 04:24:37', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(50, 1, '2025-06-16 04:51:36', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(51, 1, '2025-06-16 05:07:05', NULL, '118.235.7.233', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(52, 1, '2025-06-16 05:07:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(53, 1, '2025-06-16 05:43:14', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(54, 5, '2025-06-16 06:11:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(55, 1, '2025-06-16 06:19:46', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(56, 1, '2025-06-16 06:23:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(57, 1, '2025-06-16 06:39:12', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(58, 3, '2025-06-16 06:45:26', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(59, 6, '2025-06-16 06:46:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(60, 1, '2025-06-16 21:18:09', NULL, '118.235.7.45', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(61, 1, '2025-06-17 08:15:45', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(62, 5, '2025-06-17 08:22:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(63, 3, '2025-06-17 08:23:05', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'failed', 'invalid_password'), +(64, 3, '2025-06-17 08:23:21', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(65, 3, '2025-06-17 08:28:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(66, 3, '2025-06-17 08:32:25', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(67, 6, '2025-06-17 08:33:07', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(68, 1, '2025-06-17 08:36:01', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(69, 5, '2025-06-17 09:00:56', NULL, '118.235.7.173', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(70, 3, '2025-06-18 02:30:13', NULL, '118.235.6.77', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(71, 1, '2025-06-18 08:07:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'failed', 'invalid_password'), +(72, 1, '2025-06-18 08:07:47', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(73, 5, '2025-06-18 08:39:59', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(74, 6, '2025-06-18 08:46:53', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(75, 3, '2025-06-18 08:47:03', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(76, 6, '2025-06-18 08:57:48', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(77, 5, '2025-06-18 08:58:14', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(78, 3, '2025-06-18 08:59:12', NULL, '118.235.7.5', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(79, 5, '2025-06-19 06:37:35', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(80, 3, '2025-06-19 06:57:01', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(81, 6, '2025-06-19 06:57:22', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(82, 5, '2025-06-19 06:57:56', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(83, 6, '2025-06-19 06:58:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(84, 3, '2025-06-19 06:59:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(85, 3, '2025-06-20 06:42:26', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(86, 6, '2025-06-20 06:45:06', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(87, 5, '2025-06-20 06:49:26', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(88, 3, '2025-06-20 06:49:47', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(89, 6, '2025-06-20 06:50:17', NULL, '118.235.7.134', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(90, 3, '2025-06-20 22:46:20', NULL, '192.168.1.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(91, 1, '2025-06-23 05:03:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(92, 6, '2025-06-23 06:41:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(93, 3, '2025-06-23 06:49:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(94, 6, '2025-06-23 06:50:01', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(95, 5, '2025-06-23 06:50:28', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(96, 1, '2025-06-24 05:24:17', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(97, 3, '2025-06-24 05:25:52', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(98, 1, '2025-06-24 09:22:29', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(99, 3, '2025-06-24 11:09:38', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(100, 6, '2025-06-24 11:09:48', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(101, 5, '2025-06-24 11:10:23', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(102, 3, '2025-06-24 11:11:29', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(103, 5, '2025-06-24 11:12:06', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(104, 6, '2025-06-24 11:12:31', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(105, 3, '2025-06-24 21:41:01', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(106, 3, '2025-06-25 04:40:44', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(107, 3, '2025-06-25 05:24:57', NULL, '118.235.6.179', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(108, 1, '2025-06-25 07:05:20', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(109, 1, '2025-06-25 07:06:41', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(110, 3, '2025-06-25 07:09:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(111, 3, '2025-06-25 08:49:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(112, 3, '2025-06-25 09:20:05', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(113, 3, '2025-06-25 09:40:11', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(114, 3, '2025-06-25 09:57:27', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(115, 1, '2025-06-25 10:11:03', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(116, 1, '2025-06-25 10:26:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(117, 1, '2025-06-25 10:49:29', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(118, 5, '2025-06-25 11:07:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(119, 6, '2025-06-25 11:10:41', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(120, 6, '2025-06-25 11:13:55', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(121, 5, '2025-06-25 11:14:25', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(122, 6, '2025-06-25 11:20:16', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(123, 1, '2025-06-25 11:24:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(124, 3, '2025-06-26 10:27:57', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(125, 5, '2025-06-26 11:10:47', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(126, 6, '2025-06-26 11:15:57', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(127, 3, '2025-06-26 11:17:07', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(128, 5, '2025-06-26 11:17:40', NULL, '118.235.6.58', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(129, 6, '2025-06-26 11:19:00', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(130, 1, '2025-06-26 22:15:30', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(131, 1, '2025-06-26 22:31:02', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(132, 1, '2025-06-26 22:47:22', NULL, '123.142.67.74', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(133, 5, '2025-06-27 01:52:48', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(134, 5, '2025-06-27 01:53:58', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(135, 3, '2025-06-27 06:47:09', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(136, 6, '2025-06-27 06:48:39', NULL, '123.142.67.74', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0', 'success', NULL), +(137, 3, '2025-06-27 06:57:15', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(138, 5, '2025-06-27 06:57:34', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(139, 6, '2025-06-27 06:57:59', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(140, 3, '2025-06-27 06:59:04', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(141, 5, '2025-06-27 06:59:29', NULL, '123.142.67.74', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(142, 3, '2025-07-05 01:25:41', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(143, 3, '2025-07-05 01:26:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(144, 3, '2025-07-05 01:41:35', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(145, 3, '2025-07-05 01:46:29', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(146, 3, '2025-07-05 01:46:57', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(147, 3, '2025-07-05 01:47:17', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(148, 5, '2025-07-05 01:48:23', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(149, 3, '2025-07-05 01:49:42', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(150, 3, '2025-07-05 01:50:41', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(151, 1, '2025-07-05 01:52:14', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(152, 3, '2025-07-05 02:12:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(153, 3, '2025-07-05 04:48:01', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(154, 5, '2025-07-05 05:36:08', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(155, 3, '2025-07-05 05:52:08', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(156, 5, '2025-07-06 05:33:53', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(157, 3, '2025-07-06 05:45:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(158, 1, '2025-07-07 01:40:15', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(159, 1, '2025-07-07 01:40:39', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(160, 3, '2025-07-07 01:54:37', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(161, 3, '2025-07-07 02:13:32', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(162, 1, '2025-07-07 02:28:26', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(163, 3, '2025-07-07 02:45:15', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(164, 1, '2025-07-07 03:33:06', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(165, 1, '2025-07-07 03:51:07', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(166, 1, '2025-07-07 03:56:23', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(167, 1, '2025-07-07 03:57:20', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(168, 1, '2025-07-07 03:58:02', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(169, 1, '2025-07-07 03:58:37', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(170, 3, '2025-07-07 04:00:06', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(171, 1, '2025-07-07 04:03:01', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(172, 1, '2025-07-07 04:10:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(173, 3, '2025-07-07 04:13:46', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(174, 1, '2025-07-07 04:23:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(175, 3, '2025-07-07 04:25:09', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(176, 6, '2025-07-07 06:48:30', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(177, 3, '2025-07-07 06:51:59', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(178, 1, '2025-07-07 23:33:26', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(179, 1, '2025-07-07 23:37:30', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(180, 3, '2025-07-08 06:36:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(181, 3, '2025-07-08 06:59:17', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(182, 3, '2025-07-09 06:59:29', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(183, 5, '2025-07-09 22:07:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(184, 3, '2025-07-10 02:09:48', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(185, 1, '2025-07-10 02:11:20', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(186, 3, '2025-07-10 06:28:37', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(187, 3, '2025-07-10 06:57:12', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(188, 3, '2025-07-11 06:59:42', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(189, 3, '2025-07-12 05:39:34', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(190, 3, '2025-07-12 05:41:00', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(191, 3, '2025-07-12 05:58:31', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(192, 3, '2025-07-14 06:45:52', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(193, 3, '2025-07-15 00:09:52', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(194, 5, '2025-07-15 05:56:33', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(195, 3, '2025-07-15 06:56:35', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(196, 5, '2025-07-16 06:45:52', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(197, 3, '2025-07-16 06:51:11', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(198, 3, '2025-07-17 06:44:45', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(199, 5, '2025-07-17 06:45:54', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(200, 3, '2025-07-17 06:58:06', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(201, 3, '2025-07-18 05:54:03', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(202, 5, '2025-07-18 06:35:45', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(203, 5, '2025-07-21 06:39:22', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(204, 3, '2025-07-21 06:53:15', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(205, 5, '2025-07-22 06:45:21', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(206, 3, '2025-07-22 06:45:41', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(207, 3, '2025-07-22 06:46:38', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(208, 3, '2025-07-22 06:57:45', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(209, 5, '2025-07-23 06:44:46', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(210, 3, '2025-07-23 06:44:59', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(211, 3, '2025-07-23 06:59:50', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(212, 5, '2025-07-24 06:36:37', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(213, 3, '2025-07-24 06:46:42', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(214, 5, '2025-07-25 06:44:01', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(215, 3, '2025-07-25 06:44:45', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(216, 5, '2025-07-27 21:28:11', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(217, 3, '2025-07-28 06:30:12', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(218, 3, '2025-07-28 06:31:32', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(219, 5, '2025-07-28 06:32:30', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(220, 3, '2025-07-28 06:54:43', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(221, 3, '2025-07-29 06:38:49', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(222, 1, '2025-07-30 01:57:11', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(223, 1, '2025-07-30 02:03:46', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(224, 3, '2025-07-30 02:04:01', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(225, 1, '2025-07-30 02:20:29', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(226, 1, '2025-07-30 02:24:55', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(227, 3, '2025-07-30 05:01:07', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(228, 3, '2025-07-30 06:50:12', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(229, 5, '2025-07-30 06:51:38', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(230, 1, '2025-07-30 22:38:28', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(231, 5, '2025-07-31 06:42:33', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(232, 3, '2025-07-31 22:23:54', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(233, 5, '2025-08-01 04:56:06', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(234, 5, '2025-08-01 04:57:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(235, 3, '2025-08-01 05:01:42', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(236, 5, '2025-08-07 06:41:51', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(237, 3, '2025-08-07 06:43:30', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(238, 3, '2025-08-08 06:44:56', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(239, 3, '2025-08-08 06:55:18', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15', 'success', NULL), +(240, 5, '2025-08-08 06:58:09', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(241, 3, '2025-08-11 02:06:53', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(242, 1, '2025-08-11 04:16:44', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'failed', 'invalid_password'), +(243, 1, '2025-08-11 04:17:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(244, 3, '2025-08-11 06:27:03', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(245, 5, '2025-08-11 06:45:58', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(246, 3, '2025-08-12 06:46:57', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(247, 6, '2025-08-13 05:14:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(248, 3, '2025-08-13 06:30:59', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(249, 5, '2025-08-13 06:35:40', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(250, 5, '2025-08-14 02:02:04', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0', 'success', NULL), +(251, 3, '2025-08-14 06:34:37', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(252, 5, '2025-08-14 06:38:26', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(253, 5, '2025-08-18 06:21:07', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL); +INSERT INTO `login_logs` (`log_id`, `user_id`, `login_time`, `logout_time`, `ip_address`, `user_agent`, `login_status`, `failure_reason`) VALUES +(254, 3, '2025-08-18 06:40:43', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(255, 6, '2025-08-18 06:42:10', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(256, 3, '2025-08-18 06:47:57', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(257, 5, '2025-08-19 08:02:10', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(258, 6, '2025-08-19 08:35:46', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(259, 5, '2025-08-20 06:19:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(260, 3, '2025-08-20 06:42:31', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(261, 6, '2025-08-20 06:43:54', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(262, 3, '2025-08-21 06:29:56', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(263, 5, '2025-08-21 07:50:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(264, 6, '2025-08-21 08:23:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(265, 5, '2025-08-22 06:20:28', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(266, 5, '2025-08-22 06:22:28', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(267, 3, '2025-08-22 06:27:17', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(268, 5, '2025-08-23 04:56:25', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(269, 3, '2025-08-25 06:48:11', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(270, 6, '2025-08-25 06:48:48', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(271, 5, '2025-08-26 07:07:36', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(272, 1, '2025-08-26 07:11:06', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(273, 5, '2025-08-26 07:27:16', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(274, 6, '2025-08-26 08:21:22', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(275, 3, '2025-08-27 00:51:26', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1', 'success', NULL), +(276, 3, '2025-08-27 06:43:38', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(277, 5, '2025-08-27 06:44:44', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(278, 1, '2025-08-28 01:48:08', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(279, 3, '2025-08-28 01:49:21', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(280, 3, '2025-08-28 03:28:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(281, 6, '2025-08-28 08:29:27', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(282, 5, '2025-08-28 08:37:06', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(283, 5, '2025-08-28 08:44:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(284, 3, '2025-08-29 06:45:33', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(285, 6, '2025-08-29 06:46:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(286, 5, '2025-08-29 21:54:56', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(287, 3, '2025-08-30 02:57:31', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(288, 5, '2025-08-30 05:11:35', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(289, 3, '2025-08-30 05:35:51', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(290, 3, '2025-09-01 06:17:50', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(291, 3, '2025-09-01 23:13:28', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(292, 3, '2025-09-02 03:59:38', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(293, 3, '2025-09-02 07:33:36', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(294, 5, '2025-09-02 08:15:36', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(295, 3, '2025-09-02 23:36:25', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(296, 3, '2025-09-03 01:32:24', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(297, 3, '2025-09-03 06:32:44', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(298, 5, '2025-09-03 06:43:58', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(299, 6, '2025-09-04 06:40:35', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(300, 5, '2025-09-04 06:48:15', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(301, 3, '2025-09-05 06:39:03', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(302, 5, '2025-09-05 22:09:08', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(303, 5, '2025-09-06 04:20:51', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(304, 3, '2025-09-06 05:27:55', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(305, 3, '2025-09-08 06:15:03', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(306, 5, '2025-09-08 06:47:15', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(307, 3, '2025-09-09 06:02:53', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(308, 5, '2025-09-09 06:44:09', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(309, 3, '2025-09-10 06:27:30', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(310, 5, '2025-09-10 06:48:23', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(311, 5, '2025-09-11 06:36:20', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(312, 6, '2025-09-11 06:40:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(313, 3, '2025-09-12 06:43:55', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(314, 3, '2025-09-13 06:37:35', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(315, 5, '2025-09-13 23:16:18', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(316, 3, '2025-09-14 04:47:13', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(317, 3, '2025-09-15 06:49:28', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(318, 5, '2025-09-16 06:50:55', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(319, 5, '2025-09-17 06:42:49', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(320, 3, '2025-09-17 06:44:41', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(321, 1, '2025-09-17 23:51:39', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(322, 3, '2025-09-18 06:43:14', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(323, 3, '2025-09-18 06:46:17', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(324, 5, '2025-09-18 06:54:31', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(325, 5, '2025-09-19 06:51:14', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(326, 5, '2025-09-20 05:30:00', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(327, 3, '2025-09-22 06:46:29', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(328, 5, '2025-09-22 06:50:11', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(329, 5, '2025-09-23 05:46:19', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(330, 3, '2025-09-23 06:46:57', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(331, 3, '2025-09-23 06:47:27', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(332, 5, '2025-09-25 01:14:07', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(333, 3, '2025-09-25 06:56:18', NULL, '172.18.0.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1', 'success', NULL), +(334, 1, '2025-09-28 22:11:51', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(335, 3, '2025-09-29 06:35:29', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(336, 3, '2025-09-30 06:52:01', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(337, 5, '2025-09-30 06:56:12', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(338, 5, '2025-10-01 06:55:37', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0', 'success', NULL), +(339, 1, '2025-10-01 23:48:39', NULL, '172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(340, 3, '2025-10-02 05:25:11', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(341, 3, '2025-10-02 06:21:56', NULL, '172.18.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'success', NULL), +(342, 1, '2025-10-06 01:01:56', NULL, '::ffff:172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(343, 1, '2025-10-10 23:13:57', NULL, '::ffff:172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL), +(344, 3, '2025-10-10 23:32:38', NULL, '::ffff:172.18.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15', 'success', NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `password_change_logs` +-- + +CREATE TABLE `password_change_logs` ( + `log_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `changed_by_user_id` int(11) DEFAULT NULL, + `changed_at` datetime DEFAULT current_timestamp(), + `change_type` enum('self','admin','reset','initial') DEFAULT 'self', + `ip_address` varchar(45) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `password_change_logs` +-- + +INSERT INTO `password_change_logs` (`log_id`, `user_id`, `changed_by_user_id`, `changed_at`, `change_type`, `ip_address`) VALUES +(1, 4, NULL, '2025-06-15 06:03:42', 'admin', NULL), +(2, 3, NULL, '2025-06-15 06:03:52', 'admin', NULL), +(3, 3, 3, '2025-06-15 06:32:30', 'self', NULL), +(4, 3, 1, '2025-06-15 07:40:39', 'admin', NULL), +(5, 5, 1, '2025-06-15 07:41:02', 'initial', NULL), +(6, 6, 1, '2025-06-15 07:41:32', 'initial', NULL); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `PipeSpecs` +-- + +CREATE TABLE `PipeSpecs` ( + `spec_id` int(11) NOT NULL, + `material` varchar(50) NOT NULL COMMENT '재질 (예: SS400, STS304)', + `diameter_in` varchar(10) NOT NULL COMMENT '직경 (inch, 예: 2")', + `schedule` varchar(50) NOT NULL COMMENT '스케줄 (예: STD, SCH10, SCH40)' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- +-- 테이블의 덤프 데이터 `PipeSpecs` +-- + +INSERT INTO `PipeSpecs` (`spec_id`, `material`, `diameter_in`, `schedule`) VALUES +(2, '516-70N', '1', 'SCH80'), +(1, 'A106', '3/4', 'SCH80'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Processes` +-- + +CREATE TABLE `Processes` ( + `process_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `process_name` varchar(255) NOT NULL, + `process_start` date NOT NULL, + `process_end` date DEFAULT NULL, + `planned_worker_count` int(11) NOT NULL, + `process_description` text DEFAULT NULL, + `note` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Projects` +-- + +CREATE TABLE `Projects` ( + `project_id` int(11) NOT NULL, + `job_no` varchar(50) NOT NULL, + `project_name` varchar(255) NOT NULL, + `contract_date` date DEFAULT NULL, + `due_date` date DEFAULT NULL, + `delivery_method` varchar(100) DEFAULT NULL, + `site` varchar(100) DEFAULT NULL, + `pm` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Projects` +-- + +INSERT INTO `Projects` (`project_id`, `job_no`, `project_name`, `contract_date`, `due_date`, `delivery_method`, `site`, `pm`, `created_at`, `updated_at`) VALUES +(1, 'TKO-24008P', 'YHP Project', '2024-05-16', '2025-05-16', 'FOB', 'Quang Ninh(Vietnam)', '장형태', '2025-04-15 22:40:28', '2025-04-15 22:40:28'), +(2, 'TKG-24009P', '한화에어로스페이스 순천', '2024-06-05', '2025-05-31', '.', '순천', '장형태', '2025-04-15 22:42:41', '2025-04-15 22:42:41'), +(3, 'TKG-24011P', '효성화학 에틸렌 탱크 건설공사', '2024-06-22', '2025-12-25', '.', '울산', '김길종', '2025-04-15 22:43:53', '2025-04-15 22:43:53'), +(4, 'TKG-24013P', '김천 솔라 파워 그린 수소 Project', '2024-10-08', '2025-07-25', '.', '김천', '김길종', '2025-04-15 22:44:57', '2025-04-15 22:44:57'), +(5, 'TKG-24016P', 'LG Chem P3RE Project', '2024-11-27', '2025-09-30', '.', '.', '장형태', '2025-04-15 22:46:36', '2025-04-15 22:46:36'), +(7, 'TKO-25003F', '25년 안전보건시설설비', '2025-01-03', '2025-12-31', '.', '.', '.', '2025-04-15 22:47:32', '2025-04-15 22:47:32'), +(8, 'TKG-25007P', 'P Project', '2025-01-16', '2025-10-31', '.', '오창읍', '장형태', '2025-04-15 22:48:50', '2025-04-15 22:48:50'), +(10, 'TKR-25008P', 'DIG Airgas LG CHEM', '2025-01-23', '2025-10-15', '.', '여수', '서태원', '2025-04-15 22:50:05', '2025-04-15 22:50:05'), +(11, 'TKR-25010P', 'FK FISCHER Project', '2025-03-12', '2025-11-30', '.', '울산', '전상신', '2025-04-15 22:51:12', '2025-04-15 22:51:12'), +(12, 'TKO-24007P', 'MP7 Project', '2024-07-03', '2025-01-05', '.', '.', '윤지민', '2025-04-15 23:56:26', '2025-04-15 23:56:26'), +(13, '연차/휴무', '연차/휴무', '2025-01-01', '2025-12-31', '.', '.', '.', '2025-04-16 01:58:23', '2025-04-16 01:58:23'), +(14, 'TKO-25009R', 'M Project', '2025-08-01', '2025-12-31', '', '', '이민후', '2025-09-28 22:13:33', '2025-09-28 22:13:33'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Tasks` +-- + +CREATE TABLE `Tasks` ( + `task_id` int(11) NOT NULL, + `category` varchar(255) NOT NULL, + `subcategory` varchar(255) DEFAULT NULL, + `task_name` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Tasks` +-- + +INSERT INTO `Tasks` (`task_id`, `category`, `subcategory`, `task_name`, `description`, `created_at`, `updated_at`) VALUES +(1, 'Base', 'Fabrication', '용접', '...', '2025-04-15 10:41:43', '2025-04-15 10:41:43'), +(3, 'Vessel', 'MI and Marking', 'Marking', '..', '2025-04-15 22:25:58', '2025-04-15 22:25:58'), +(4, 'Vessel', 'Cutting', '자재 커팅', '..', '2025-04-15 22:26:17', '2025-04-15 22:26:17'), +(5, 'Vessel', 'Fabrication', '용접', '..', '2025-04-15 22:26:43', '2025-04-15 22:26:43'), +(7, 'PKG', 'Pipe Pre-Fabrication', '취부&용접', '배관사 1명\n용접사 1명', '2025-04-15 22:37:14', '2025-04-15 22:37:14'), +(8, 'PKG', '1st Piping Assembly', '1차 조립', '.', '2025-04-15 22:38:49', '2025-04-15 22:38:49'), +(9, 'PKG', 'Re-Assembly', '재조립', '.', '2025-04-15 22:39:18', '2025-04-15 22:39:18'), +(13, '작업지원', '구매팀', '.', '.', '2025-04-16 03:03:40', '2025-04-16 03:03:40'), +(14, '기타', '시설설비제작', '.', '.', '2025-04-16 03:30:53', '2025-04-16 03:30:53'), +(15, '기타', '휴가/연차/휴무', '.', '.', '2025-04-16 05:18:13', '2025-04-16 05:18:13'), +(16, 'PKG', '제품설치', '설치작업', 'Skid, 용기 등 설치', '2025-04-29 04:39:36', '2025-04-29 04:39:36'), +(18, '작업지원', '품질팀', 'test지원', '.', '2025-06-25 07:07:08', '2025-06-25 07:07:08'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `uploaded_documents` +-- + +CREATE TABLE `uploaded_documents` ( + `id` int(11) NOT NULL, + `title` varchar(255) NOT NULL, + `tags` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `original_name` varchar(255) DEFAULT NULL, + `stored_name` varchar(255) NOT NULL, + `file_path` varchar(500) DEFAULT NULL, + `file_type` varchar(50) DEFAULT NULL, + `file_size` int(11) DEFAULT NULL, + `submitted_by` varchar(100) DEFAULT NULL, + `dt_imported` tinyint(1) DEFAULT 0, + `dt_uuid` varchar(100) DEFAULT NULL, + `of_task_created` tinyint(1) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Users` +-- + +CREATE TABLE `Users` ( + `user_id` int(11) NOT NULL, + `username` varchar(100) NOT NULL, + `password` varchar(255) NOT NULL, + `role` varchar(30) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `access_level` varchar(30) DEFAULT NULL, + `worker_id` int(11) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `last_login_at` datetime DEFAULT NULL, + `password_changed_at` datetime DEFAULT NULL, + `failed_login_attempts` int(11) DEFAULT 0, + `locked_until` datetime DEFAULT NULL, + `name` varchar(50) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Users` +-- + +INSERT INTO `Users` (`user_id`, `username`, `password`, `role`, `created_at`, `access_level`, `worker_id`, `is_active`, `last_login_at`, `password_changed_at`, `failed_login_attempts`, `locked_until`, `name`, `email`, `updated_at`) VALUES +(1, 'hyungi', '$2b$10$lwSfKipx0fQ.9nfMUBmzt.WXzerdxuT5MVX4b3YhFeHxyYlUjM7bi', 'admin', '2025-05-06 05:03:02', 'system', NULL, 1, '2025-10-10 23:13:57', '2025-05-06 05:03:02', 0, NULL, NULL, NULL, '2025-10-10 23:13:57'), +(3, '김두수', '$2a$10$z3i2EVOotRFBj.KHzx5LQOKlXD0QHLNFEvJcd6FlO6/1TCYGk6SSu', 'leader', '2025-06-07 23:48:35', 'group_leader', 1, 1, '2025-10-10 23:32:38', '2025-06-15 07:40:39', 0, NULL, '김두수', NULL, '2025-10-10 23:32:38'), +(4, '김아무개', '$2a$10$QAJIoPyi.apz91exp8GsiO/prAD5Xwanht6XImP1jvKsy/7Ba/b8.', 'user', '2025-06-11 08:03:59', 'worker', NULL, 1, '2025-06-15 23:28:04', '2025-06-15 06:03:42', 0, NULL, '김아무개', NULL, '2025-06-15 23:28:04'), +(5, '임영규', '$2a$10$66ps/MEEi4BVABfJc5P0y.yCap09NhTMyd1A/7rFVxESytQGlB3wC', NULL, '2025-06-15 07:41:02', 'group_leader', 3, 1, '2025-10-01 06:55:37', '2025-06-15 07:41:02', 0, NULL, '임영규', NULL, '2025-10-01 06:55:37'), +(6, '반치원', '$2a$10$jcn6f7flRLZlr5yKQcXDIePodRK0rsM4deNnNGjuOlredeTVsRYZ6', NULL, '2025-06-15 07:41:32', 'group_leader', 3, 1, '2025-09-11 06:40:19', '2025-06-15 07:41:32', 0, NULL, '반치원', NULL, '2025-09-11 06:40:19'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `Workers` +-- + +CREATE TABLE `Workers` ( + `worker_id` int(11) NOT NULL, + `worker_name` varchar(100) NOT NULL, + `join_date` date DEFAULT NULL, + `job_type` varchar(100) DEFAULT NULL, + `salary` decimal(10,2) DEFAULT NULL, + `annual_leave` int(11) DEFAULT NULL, + `status` text DEFAULT 'active', + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `Workers` +-- + +INSERT INTO `Workers` (`worker_id`, `worker_name`, `join_date`, `job_type`, `salary`, `annual_leave`, `status`, `created_at`, `updated_at`) VALUES +(1, '김두수', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:08', '2025-04-15 22:23:08'), +(2, '임영규', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:17', '2025-04-15 22:23:17'), +(3, '반치원', '2025-04-01', '배관', 220000.00, 15, '..', '2025-04-15 22:23:22', '2025-04-15 22:23:22'), +(4, '황인용', '2025-04-01', '가공,조공', 220000.00, 15, '..', '2025-04-15 22:23:33', '2025-04-15 22:23:33'), +(5, '표영진', '2025-04-01', '가공,조공', 220000.00, 15, '..', '2025-04-15 22:23:38', '2025-04-15 22:23:38'), +(6, '김윤섭', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:23:46', '2025-04-15 22:23:46'), +(7, '이창호', '2025-04-01', '용접,배관', 220000.00, 15, '..', '2025-04-15 22:23:51', '2025-04-15 22:23:51'), +(8, '최광욱', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:23:57', '2025-04-15 22:23:57'), +(9, '박현수', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:24:01', '2025-04-15 22:24:01'), +(10, '조윤호', '2025-04-01', '용접', 220000.00, 15, '..', '2025-04-15 22:24:07', '2025-04-15 22:24:07'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `worker_groups` +-- + +CREATE TABLE `worker_groups` ( + `id` int(11) NOT NULL, + `group_leader_id` int(11) NOT NULL, + `worker_id` int(11) NOT NULL, + `group_name` varchar(100) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `WorkReports` +-- + +CREATE TABLE `WorkReports` ( + `id` int(11) NOT NULL, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `morning_task_id` int(11) DEFAULT NULL, + `afternoon_task_id` int(11) DEFAULT NULL, + `overtime_hours` decimal(4,1) DEFAULT 0.0, + `overtime_task_id` int(11) DEFAULT NULL, + `work_details` text DEFAULT NULL, + `note` text DEFAULT NULL, + `memo` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `morning_project_id` int(11) DEFAULT NULL, + `afternoon_project_id` int(11) DEFAULT NULL, + `overtime_project_id` int(11) DEFAULT NULL, + `task_id` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `WorkReports` +-- + +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(176, '2025-01-02', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(177, '2025-01-02', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(178, '2025-01-02', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(179, '2025-01-02', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(180, '2025-01-02', 8, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(181, '2025-01-02', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(182, '2025-01-02', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 9), +(183, '2025-01-02', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:40:56', '2025-04-16 05:40:56', NULL, NULL, NULL, 15), +(194, '2025-01-03', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(195, '2025-01-03', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(196, '2025-01-03', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 15), +(197, '2025-01-03', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(198, '2025-01-03', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 15), +(199, '2025-01-03', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(200, '2025-01-03', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(201, '2025-01-03', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(202, '2025-01-03', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:42:07', '2025-04-16 05:42:07', NULL, NULL, NULL, 9), +(203, '2025-01-04', 7, 12, NULL, NULL, NULL, NULL, '휴일근무', NULL, NULL, '2025-04-16 05:43:25', '2025-04-16 05:43:25', NULL, NULL, NULL, 12), +(204, '2025-01-06', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:03', '2025-04-16 05:44:03', NULL, NULL, NULL, 12), +(205, '2025-01-06', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:03', '2025-04-16 05:44:03', NULL, NULL, NULL, 12), +(206, '2025-01-06', 2, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(207, '2025-01-06', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(208, '2025-01-06', 8, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(209, '2025-01-06', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(210, '2025-01-06', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(211, '2025-01-06', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(212, '2025-01-06', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:44:04', '2025-04-16 05:44:04', NULL, NULL, NULL, 12), +(213, '2025-01-07', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(214, '2025-01-07', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 1), +(215, '2025-01-07', 3, 12, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(216, '2025-01-07', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(217, '2025-01-07', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 1), +(218, '2025-01-07', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(219, '2025-01-07', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:24', '2025-04-16 05:45:24', NULL, NULL, NULL, 12), +(220, '2025-01-07', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:25', '2025-04-16 05:45:25', NULL, NULL, NULL, 12), +(221, '2025-01-07', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:45:25', '2025-04-16 05:45:25', NULL, NULL, NULL, 1), +(222, '2025-01-08', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(223, '2025-01-08', 2, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(224, '2025-01-08', 3, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(225, '2025-01-08', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(226, '2025-01-08', 8, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(227, '2025-01-08', 9, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(228, '2025-01-08', 6, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(229, '2025-01-08', 4, 2, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 1), +(230, '2025-01-08', 5, 12, NULL, NULL, 1.0, NULL, '근무', NULL, NULL, '2025-04-16 05:46:50', '2025-04-16 05:46:50', NULL, NULL, NULL, 13), +(231, '2025-01-09', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(232, '2025-01-09', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(233, '2025-01-09', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(234, '2025-01-09', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(235, '2025-01-09', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(236, '2025-01-09', 6, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(237, '2025-01-09', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 1), +(238, '2025-01-09', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(239, '2025-01-09', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:48:02', '2025-04-16 05:48:02', NULL, NULL, NULL, 13), +(240, '2025-01-10', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:16', '2025-04-16 05:49:16', NULL, NULL, NULL, 13), +(241, '2025-01-10', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(242, '2025-01-10', 3, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(243, '2025-01-10', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(244, '2025-01-10', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(245, '2025-01-10', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(246, '2025-01-10', 6, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 15), +(247, '2025-01-10', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 1), +(248, '2025-01-10', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:49:17', '2025-04-16 05:49:17', NULL, NULL, NULL, 13), +(249, '2025-01-13', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(250, '2025-01-13', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(251, '2025-01-13', 3, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(252, '2025-01-13', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(253, '2025-01-13', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(254, '2025-01-13', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(255, '2025-01-13', 6, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 1), +(256, '2025-01-13', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 15), +(257, '2025-01-13', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:50:22', '2025-04-16 05:50:22', NULL, NULL, NULL, 13), +(258, '2025-01-14', 1, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(259, '2025-01-14', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(260, '2025-01-14', 3, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(261, '2025-01-14', 7, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(262, '2025-01-14', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(263, '2025-01-14', 9, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(265, '2025-01-14', 4, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(266, '2025-01-14', 5, 12, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 13), +(267, '2025-01-14', 6, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:51:24', '2025-04-16 05:51:24', NULL, NULL, NULL, 1), +(268, '2025-01-15', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(269, '2025-01-15', 2, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 14), +(270, '2025-01-15', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(271, '2025-01-15', 7, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 13), +(272, '2025-01-15', 8, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 14), +(273, '2025-01-15', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(275, '2025-01-15', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:37', '2025-04-16 05:52:37', NULL, NULL, NULL, 1), +(276, '2025-01-15', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:38', '2025-04-16 05:52:38', NULL, NULL, NULL, 1), +(277, '2025-01-15', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:52:38', '2025-04-16 05:52:38', NULL, NULL, NULL, 1), +(278, '2025-01-16', 1, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(279, '2025-01-16', 2, 7, NULL, NULL, NULL, NULL, '근무', NULL, '볼트 보관함 제작', '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 14), +(280, '2025-01-16', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(281, '2025-01-16', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 1), +(282, '2025-01-16', 8, 7, NULL, NULL, NULL, NULL, '근무', NULL, '볼트 보관함 제작', '2025-04-16 05:54:11', '2025-04-16 05:54:11', NULL, NULL, NULL, 14), +(283, '2025-01-16', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(285, '2025-01-16', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(286, '2025-01-16', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(287, '2025-01-16', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:54:12', '2025-04-16 05:54:12', NULL, NULL, NULL, 1), +(288, '2025-01-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(289, '2025-01-17', 2, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(290, '2025-01-17', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(291, '2025-01-17', 7, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(292, '2025-01-17', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(293, '2025-01-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(295, '2025-01-17', 4, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(296, '2025-01-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(297, '2025-01-17', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:55:22', '2025-04-16 05:55:22', NULL, NULL, NULL, 1), +(298, '2025-01-20', 1, 7, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(299, '2025-01-20', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 8), +(300, '2025-01-20', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(301, '2025-01-20', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(302, '2025-01-20', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(303, '2025-01-20', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(304, '2025-01-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 1), +(305, '2025-01-20', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(306, '2025-01-20', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:58:05', '2025-04-16 05:58:05', NULL, NULL, NULL, 14), +(307, '2025-01-21', 1, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 15), +(308, '2025-01-21', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 8), +(309, '2025-01-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(310, '2025-01-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(311, '2025-01-21', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 8), +(312, '2025-01-21', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 15), +(313, '2025-01-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(314, '2025-01-21', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:06', '2025-04-16 05:59:06', NULL, NULL, NULL, 1), +(315, '2025-01-21', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 05:59:07', '2025-04-16 05:59:07', NULL, NULL, NULL, 1), +(316, '2025-01-22', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(317, '2025-01-22', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(318, '2025-01-22', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(319, '2025-01-22', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(320, '2025-01-22', 8, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(321, '2025-01-22', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(322, '2025-01-22', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(323, '2025-01-22', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 1), +(324, '2025-01-22', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:00:28', '2025-04-16 06:00:28', NULL, NULL, NULL, 8), +(325, '2025-01-23', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(326, '2025-01-23', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 8), +(327, '2025-01-23', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(328, '2025-01-23', 7, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(329, '2025-01-23', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(330, '2025-01-23', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(331, '2025-01-23', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(332, '2025-01-23', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 1), +(333, '2025-01-23', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:01:57', '2025-04-16 06:01:57', NULL, NULL, NULL, 8), +(334, '2025-01-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(335, '2025-01-24', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 8), +(336, '2025-01-24', 3, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(337, '2025-01-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(338, '2025-01-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(339, '2025-01-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(340, '2025-01-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(341, '2025-01-24', 5, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 8), +(342, '2025-01-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:03:43', '2025-04-16 06:03:43', NULL, NULL, NULL, 1), +(343, '2025-02-03', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(344, '2025-02-03', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 8), +(345, '2025-02-03', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(346, '2025-02-03', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(347, '2025-02-03', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(348, '2025-02-03', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(349, '2025-02-03', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(350, '2025-02-03', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 8), +(351, '2025-02-03', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:07:37', '2025-04-16 06:07:37', NULL, NULL, NULL, 1), +(352, '2025-02-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(353, '2025-02-04', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(354, '2025-02-04', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 8), +(355, '2025-02-04', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(356, '2025-02-04', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(357, '2025-02-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(358, '2025-02-04', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(359, '2025-02-04', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 8), +(360, '2025-02-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:08:43', '2025-04-16 06:08:43', NULL, NULL, NULL, 1), +(361, '2025-02-05', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 8), +(362, '2025-02-05', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(363, '2025-02-05', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(364, '2025-02-05', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(365, '2025-02-05', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(366, '2025-02-05', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:02', '2025-04-16 06:10:02', NULL, NULL, NULL, 1), +(367, '2025-02-05', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 1), +(368, '2025-02-05', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 8), +(369, '2025-02-05', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:03', '2025-04-16 06:10:03', NULL, NULL, NULL, 1), +(370, '2025-02-06', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(371, '2025-02-06', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 15), +(372, '2025-02-06', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(373, '2025-02-06', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(374, '2025-02-06', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(375, '2025-02-06', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(376, '2025-02-06', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(377, '2025-02-06', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(378, '2025-02-06', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:10:55', '2025-04-16 06:10:55', NULL, NULL, NULL, 1), +(379, '2025-02-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(380, '2025-02-07', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 8), +(381, '2025-02-07', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(382, '2025-02-07', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 15), +(383, '2025-02-07', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(384, '2025-02-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(385, '2025-02-07', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(386, '2025-02-07', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 8), +(387, '2025-02-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:11:54', '2025-04-16 06:11:54', NULL, NULL, NULL, 1), +(388, '2025-02-10', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(389, '2025-02-10', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 8), +(390, '2025-02-10', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(391, '2025-02-10', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(392, '2025-02-10', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(393, '2025-02-10', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(394, '2025-02-10', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(395, '2025-02-10', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 8), +(396, '2025-02-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:12:54', '2025-04-16 06:12:54', NULL, NULL, NULL, 1), +(397, '2025-02-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(398, '2025-02-11', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 8), +(399, '2025-02-11', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(400, '2025-02-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(401, '2025-02-11', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(402, '2025-02-11', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(403, '2025-02-11', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(404, '2025-02-11', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 8), +(405, '2025-02-11', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:13:53', '2025-04-16 06:13:53', NULL, NULL, NULL, 1), +(406, '2025-02-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(407, '2025-02-12', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 8), +(408, '2025-02-12', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(409, '2025-02-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(410, '2025-02-12', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(411, '2025-02-12', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(412, '2025-02-12', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 15), +(413, '2025-02-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(414, '2025-02-12', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:14:52', '2025-04-16 06:14:52', NULL, NULL, NULL, 1), +(415, '2025-02-13', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(416, '2025-02-13', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 7), +(417, '2025-02-13', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(418, '2025-02-13', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(419, '2025-02-13', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(420, '2025-02-13', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(421, '2025-02-13', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(422, '2025-02-13', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 7), +(423, '2025-02-13', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:16:00', '2025-04-16 06:16:00', NULL, NULL, NULL, 1), +(424, '2025-02-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(425, '2025-02-14', 2, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 7), +(426, '2025-02-14', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(427, '2025-02-14', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(428, '2025-02-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(429, '2025-02-14', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(430, '2025-02-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(431, '2025-02-14', 4, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 7), +(432, '2025-02-14', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:17:21', '2025-04-16 06:17:21', NULL, NULL, NULL, 1), +(433, '2025-02-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:39', '2025-04-16 06:18:39', NULL, NULL, NULL, 1), +(434, '2025-02-17', 2, 2, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 8), +(435, '2025-02-17', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(436, '2025-02-17', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(437, '2025-02-17', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 15), +(438, '2025-02-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(439, '2025-02-17', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(440, '2025-02-17', 4, 2, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 8), +(441, '2025-02-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:18:40', '2025-04-16 06:18:40', NULL, NULL, NULL, 1), +(442, '2025-02-18', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(443, '2025-02-18', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 15), +(444, '2025-02-18', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(445, '2025-02-18', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(446, '2025-02-18', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(447, '2025-02-18', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(448, '2025-02-18', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 7), +(449, '2025-02-18', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(450, '2025-02-18', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:19:57', '2025-04-16 06:19:57', NULL, NULL, NULL, 1), +(451, '2025-02-19', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(452, '2025-02-19', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(453, '2025-02-19', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(454, '2025-02-19', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(455, '2025-02-19', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(456, '2025-02-19', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(457, '2025-02-19', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(458, '2025-02-19', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(459, '2025-02-19', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:21:01', '2025-04-16 06:21:01', NULL, NULL, NULL, 7), +(460, '2025-02-20', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(461, '2025-02-20', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(462, '2025-02-20', 3, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(463, '2025-02-20', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(464, '2025-02-20', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(465, '2025-02-20', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(466, '2025-02-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(467, '2025-02-20', 7, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(468, '2025-02-20', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:22:23', '2025-04-16 06:22:23', NULL, NULL, NULL, 7), +(469, '2025-02-21', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(470, '2025-02-21', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(471, '2025-02-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(472, '2025-02-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(473, '2025-02-21', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(474, '2025-02-21', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(475, '2025-02-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(476, '2025-02-21', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(477, '2025-02-21', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:23:40', '2025-04-16 06:23:40', NULL, NULL, NULL, 7), +(478, '2025-02-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(479, '2025-02-24', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(480, '2025-02-24', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(481, '2025-02-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(482, '2025-02-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(483, '2025-02-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(484, '2025-02-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(485, '2025-02-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:32', '2025-04-16 06:24:32', NULL, NULL, NULL, 7), +(486, '2025-02-24', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:24:33', '2025-04-16 06:24:33', NULL, NULL, NULL, 7), +(487, '2025-02-24', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, '근무시작', '2025-04-16 06:25:07', '2025-04-16 06:25:07', NULL, NULL, NULL, 7), +(488, '2025-02-25', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(489, '2025-02-25', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(490, '2025-02-25', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(491, '2025-02-25', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(492, '2025-02-25', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(493, '2025-02-25', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(494, '2025-02-25', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(495, '2025-02-25', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(496, '2025-02-25', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(497, '2025-02-25', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:26:02', '2025-04-16 06:26:02', NULL, NULL, NULL, 7), +(498, '2025-02-26', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '당진출장 건', '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 14), +(499, '2025-02-26', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(500, '2025-02-26', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(501, '2025-02-26', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '당진출장 건', '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 14), +(502, '2025-02-26', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(503, '2025-02-26', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(504, '2025-02-26', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(505, '2025-02-26', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 15), +(506, '2025-02-26', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(507, '2025-02-26', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:27:50', '2025-04-16 06:27:50', NULL, NULL, NULL, 7), +(508, '2025-02-27', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(509, '2025-02-27', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(510, '2025-02-27', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(511, '2025-02-27', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(512, '2025-02-27', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(513, '2025-02-27', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(514, '2025-02-27', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(515, '2025-02-27', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(516, '2025-02-27', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(517, '2025-02-27', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:28:41', '2025-04-16 06:28:41', NULL, NULL, NULL, 7), +(518, '2025-02-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 13), +(519, '2025-02-28', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(520, '2025-02-28', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(521, '2025-02-28', 7, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 13), +(522, '2025-02-28', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(523, '2025-02-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(524, '2025-02-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(525, '2025-02-28', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(526, '2025-02-28', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 15), +(527, '2025-02-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:29:53', '2025-04-16 06:29:53', NULL, NULL, NULL, 7), +(528, '2025-03-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(529, '2025-03-04', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(530, '2025-03-04', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 8), +(531, '2025-03-04', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 15), +(532, '2025-03-04', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(533, '2025-03-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(534, '2025-03-04', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(535, '2025-03-04', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(536, '2025-03-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 7), +(537, '2025-03-04', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:32:11', '2025-04-16 06:32:11', NULL, NULL, NULL, 8), +(538, '2025-03-05', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(539, '2025-03-05', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(540, '2025-03-05', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 8), +(541, '2025-03-05', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(542, '2025-03-05', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(543, '2025-03-05', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(544, '2025-03-05', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(545, '2025-03-05', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 15), +(546, '2025-03-05', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 7), +(547, '2025-03-05', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:33:15', '2025-04-16 06:33:15', NULL, NULL, NULL, 8), +(548, '2025-03-06', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(549, '2025-03-06', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(550, '2025-03-06', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 8), +(551, '2025-03-06', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 15), +(552, '2025-03-06', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(553, '2025-03-06', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(554, '2025-03-06', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(555, '2025-03-06', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(556, '2025-03-06', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 7), +(557, '2025-03-06', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:34:18', '2025-04-16 06:34:18', NULL, NULL, NULL, 8), +(558, '2025-03-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7); +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(559, '2025-03-07', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 13), +(560, '2025-03-07', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 8), +(561, '2025-03-07', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 15), +(562, '2025-03-07', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(563, '2025-03-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(564, '2025-03-07', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(565, '2025-03-07', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 13), +(566, '2025-03-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 7), +(567, '2025-03-07', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:35:36', '2025-04-16 06:35:36', NULL, NULL, NULL, 8), +(568, '2025-03-10', 1, 1, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(569, '2025-03-10', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 3), +(570, '2025-03-10', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(571, '2025-03-10', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 15), +(572, '2025-03-10', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 7), +(573, '2025-03-10', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 15), +(574, '2025-03-10', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 7), +(575, '2025-03-10', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 3), +(576, '2025-03-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(577, '2025-03-10', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:37:11', '2025-04-16 06:37:11', NULL, NULL, NULL, 8), +(578, '2025-03-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:06', '2025-04-16 06:39:06', NULL, NULL, NULL, 8), +(579, '2025-03-11', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(580, '2025-03-11', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(581, '2025-03-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(582, '2025-03-11', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(583, '2025-03-11', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 15), +(584, '2025-03-11', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 7), +(585, '2025-03-11', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(586, '2025-03-11', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(587, '2025-03-11', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:39:07', '2025-04-16 06:39:07', NULL, NULL, NULL, 8), +(588, '2025-03-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(589, '2025-03-12', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(590, '2025-03-12', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(591, '2025-03-12', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(592, '2025-03-12', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(593, '2025-03-12', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 15), +(594, '2025-03-12', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(595, '2025-03-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 7), +(596, '2025-03-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(597, '2025-03-12', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:40:08', '2025-04-16 06:40:08', NULL, NULL, NULL, 8), +(598, '2025-03-13', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(599, '2025-03-13', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(600, '2025-03-13', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 8), +(601, '2025-03-13', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(602, '2025-03-13', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(603, '2025-03-13', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 15), +(604, '2025-03-13', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:07', '2025-04-16 06:41:07', NULL, NULL, NULL, 7), +(605, '2025-03-13', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(606, '2025-03-13', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(607, '2025-03-13', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:41:08', '2025-04-16 06:41:08', NULL, NULL, NULL, 8), +(608, '2025-03-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(609, '2025-03-14', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 4), +(610, '2025-03-14', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(612, '2025-03-14', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(613, '2025-03-14', 9, 13, NULL, NULL, NULL, NULL, '유급', NULL, '결혼(5일)', '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 15), +(614, '2025-03-14', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(615, '2025-03-14', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(616, '2025-03-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 8), +(617, '2025-03-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:42:24', '2025-04-16 06:42:24', NULL, NULL, NULL, 7), +(628, '2025-03-18', 1, 1, NULL, NULL, NULL, NULL, '조퇴', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(629, '2025-03-18', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(630, '2025-03-18', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(631, '2025-03-18', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(632, '2025-03-18', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(633, '2025-03-18', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 15), +(634, '2025-03-18', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(635, '2025-03-18', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 4), +(636, '2025-03-18', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(637, '2025-03-18', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:46:29', '2025-04-16 06:46:29', NULL, NULL, NULL, 8), +(648, '2025-03-17', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(649, '2025-03-17', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 4), +(650, '2025-03-17', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(651, '2025-03-17', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 4), +(652, '2025-03-17', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(653, '2025-03-17', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 15), +(654, '2025-03-17', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(655, '2025-03-17', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(656, '2025-03-17', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 8), +(657, '2025-03-17', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:50:50', '2025-04-16 06:50:50', NULL, NULL, NULL, 7), +(658, '2025-03-19', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 4), +(659, '2025-03-19', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(660, '2025-03-19', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(661, '2025-03-19', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 4), +(662, '2025-03-19', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:33', '2025-04-16 06:52:33', NULL, NULL, NULL, 8), +(663, '2025-03-19', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(664, '2025-03-19', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(665, '2025-03-19', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, '용접기 보관함 제작', '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 14), +(666, '2025-03-19', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 4), +(667, '2025-03-19', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:52:34', '2025-04-16 06:52:34', NULL, NULL, NULL, 8), +(668, '2025-03-20', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(669, '2025-03-20', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(670, '2025-03-20', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(671, '2025-03-20', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(672, '2025-03-20', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(673, '2025-03-20', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(674, '2025-03-20', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(675, '2025-03-20', 4, 7, NULL, NULL, 2.0, NULL, '근무', NULL, '용접기 보관함 제작', '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 14), +(676, '2025-03-20', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 4), +(677, '2025-03-20', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 06:54:20', '2025-04-16 06:54:20', NULL, NULL, NULL, 8), +(678, '2025-03-21', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:27', '2025-04-16 21:34:27', NULL, NULL, NULL, 8), +(679, '2025-03-21', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(680, '2025-03-21', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(681, '2025-03-21', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(682, '2025-03-21', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(683, '2025-03-21', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(684, '2025-03-21', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(685, '2025-03-21', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, '용기 보관함 제작', '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 14), +(686, '2025-03-21', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 4), +(687, '2025-03-21', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:34:28', '2025-04-16 21:34:28', NULL, NULL, NULL, 8), +(688, '2025-03-24', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(689, '2025-03-24', 2, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(690, '2025-03-24', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(691, '2025-03-24', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(692, '2025-03-24', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 5), +(693, '2025-03-24', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:47', '2025-04-16 21:39:47', NULL, NULL, NULL, 8), +(694, '2025-03-24', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(695, '2025-03-24', 4, 7, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 보관함 제작', '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 14), +(696, '2025-03-24', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(697, '2025-03-24', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:39:48', '2025-04-16 21:39:48', NULL, NULL, NULL, 8), +(698, '2025-03-25', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(699, '2025-03-25', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(700, '2025-03-25', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(701, '2025-03-25', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(702, '2025-03-25', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(703, '2025-03-25', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(704, '2025-03-25', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(705, '2025-03-25', 4, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 14), +(706, '2025-03-25', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 5), +(707, '2025-03-25', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:42:13', '2025-04-16 21:42:13', NULL, NULL, NULL, 13), +(708, '2025-03-26', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 13), +(709, '2025-03-26', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 15), +(710, '2025-03-26', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(711, '2025-03-26', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(712, '2025-03-26', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(713, '2025-03-26', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(714, '2025-03-26', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(715, '2025-03-26', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 13), +(716, '2025-03-26', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 5), +(717, '2025-03-26', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:43:37', '2025-04-16 21:43:37', NULL, NULL, NULL, 8), +(718, '2025-03-27', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(719, '2025-03-27', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(720, '2025-03-27', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(721, '2025-03-27', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(722, '2025-03-27', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(723, '2025-03-27', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(724, '2025-03-27', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 15), +(725, '2025-03-27', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 5), +(726, '2025-03-27', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(727, '2025-03-27', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-16 21:45:14', '2025-04-16 21:45:14', NULL, NULL, NULL, 8), +(728, '2025-03-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(729, '2025-03-28', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(730, '2025-03-28', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 15), +(731, '2025-03-28', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 15), +(732, '2025-03-28', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(733, '2025-03-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(734, '2025-03-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(735, '2025-03-28', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(736, '2025-03-28', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 5), +(737, '2025-03-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:46:31', '2025-04-16 21:46:31', NULL, NULL, NULL, 8), +(738, '2025-03-31', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(739, '2025-03-31', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 5), +(740, '2025-03-31', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(741, '2025-03-31', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(742, '2025-03-31', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(743, '2025-03-31', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(744, '2025-03-31', 10, 13, NULL, NULL, NULL, NULL, '유급', NULL, '외조모상(2일)', '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 15), +(745, '2025-03-31', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 5), +(746, '2025-03-31', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(747, '2025-03-31', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-16 21:47:37', '2025-04-16 21:47:37', NULL, NULL, NULL, 8), +(748, '2025-03-14', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-17 01:53:24', '2025-04-17 01:53:24', NULL, NULL, NULL, 4), +(749, '2025-04-01', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(750, '2025-04-01', 2, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(751, '2025-04-01', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(752, '2025-04-01', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(753, '2025-04-01', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(754, '2025-04-01', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(755, '2025-04-01', 10, 13, NULL, NULL, NULL, NULL, '유급', NULL, '외조모상', '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 15), +(756, '2025-04-01', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 5), +(757, '2025-04-01', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:42', '2025-04-17 04:22:42', NULL, NULL, NULL, 9), +(758, '2025-04-01', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:22:43', '2025-04-17 04:22:43', NULL, NULL, NULL, 9), +(769, '2025-04-02', 1, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-17 04:25:55', '2025-04-17 04:25:55', NULL, NULL, NULL, 9), +(770, '2025-04-02', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(771, '2025-04-02', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(773, '2025-04-02', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(774, '2025-04-02', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(775, '2025-04-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 15), +(776, '2025-04-02', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 15), +(777, '2025-04-02', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(778, '2025-04-02', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:25:56', '2025-04-17 04:25:56', NULL, NULL, NULL, 9), +(779, '2025-04-03', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(780, '2025-04-03', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(781, '2025-04-03', 3, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(783, '2025-04-03', 8, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(784, '2025-04-03', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(785, '2025-04-03', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(786, '2025-04-03', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(787, '2025-04-03', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(788, '2025-04-03', 6, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:27:12', '2025-04-17 04:27:12', NULL, NULL, NULL, 9), +(789, '2025-04-04', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(790, '2025-04-04', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(791, '2025-04-04', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(792, '2025-04-04', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(793, '2025-04-04', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(794, '2025-04-04', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(795, '2025-04-04', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(796, '2025-04-04', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(797, '2025-04-04', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 9), +(798, '2025-04-04', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:30:07', '2025-04-17 04:30:07', NULL, NULL, NULL, 5), +(799, '2025-04-07', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(800, '2025-04-07', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(801, '2025-04-07', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(802, '2025-04-07', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(803, '2025-04-07', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(804, '2025-04-07', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(805, '2025-04-07', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(806, '2025-04-07', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(807, '2025-04-07', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 9), +(808, '2025-04-07', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:39:43', '2025-04-17 04:39:43', NULL, NULL, NULL, 5), +(809, '2025-04-08', 1, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(811, '2025-04-08', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(812, '2025-04-08', 7, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(813, '2025-04-08', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(814, '2025-04-08', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(815, '2025-04-08', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(816, '2025-04-08', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(817, '2025-04-08', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 9), +(818, '2025-04-08', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:41:16', '2025-04-17 04:41:16', NULL, NULL, NULL, 5), +(819, '2025-04-09', 1, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-17 04:43:02', '2025-04-17 04:43:02', NULL, NULL, NULL, 9), +(820, '2025-04-09', 2, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:02', '2025-04-17 04:43:02', NULL, NULL, NULL, 9), +(821, '2025-04-09', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(822, '2025-04-09', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(823, '2025-04-09', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(824, '2025-04-09', 9, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(825, '2025-04-09', 10, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(826, '2025-04-09', 4, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(827, '2025-04-09', 5, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 9), +(828, '2025-04-09', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-04-17 04:43:03', '2025-04-17 04:43:03', NULL, NULL, NULL, 5), +(829, '2025-04-10', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(830, '2025-04-10', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(831, '2025-04-10', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(832, '2025-04-10', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(833, '2025-04-10', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(834, '2025-04-10', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(835, '2025-04-10', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(836, '2025-04-10', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(837, '2025-04-10', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 9), +(838, '2025-04-10', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:44:30', '2025-04-17 04:44:30', NULL, NULL, NULL, 5), +(839, '2025-04-11', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 9), +(840, '2025-04-11', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 9), +(841, '2025-04-11', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:24', '2025-04-17 04:46:24', NULL, NULL, NULL, 5), +(842, '2025-04-11', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(843, '2025-04-11', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 5), +(844, '2025-04-11', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 15), +(845, '2025-04-11', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 5), +(846, '2025-04-11', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(847, '2025-04-11', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 15), +(848, '2025-04-11', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:46:25', '2025-04-17 04:46:25', NULL, NULL, NULL, 9), +(849, '2025-04-14', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(850, '2025-04-14', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(851, '2025-04-14', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 5), +(852, '2025-04-14', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:37', '2025-04-17 04:47:37', NULL, NULL, NULL, 9), +(853, '2025-04-14', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 5), +(854, '2025-04-14', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(855, '2025-04-14', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(856, '2025-04-14', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(857, '2025-04-14', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(858, '2025-04-14', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:47:38', '2025-04-17 04:47:38', NULL, NULL, NULL, 9), +(859, '2025-04-17', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(860, '2025-04-17', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(861, '2025-04-17', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(862, '2025-04-17', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(863, '2025-04-17', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(864, '2025-04-17', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(865, '2025-04-17', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(866, '2025-04-17', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(867, '2025-04-17', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 9), +(868, '2025-04-17', 6, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-04-17 04:48:39', '2025-04-17 04:48:39', NULL, NULL, NULL, 5), +(879, '2025-04-21', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(880, '2025-04-21', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(881, '2025-04-21', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(882, '2025-04-21', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(883, '2025-04-21', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(884, '2025-04-21', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(885, '2025-04-21', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(886, '2025-04-21', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(887, '2025-04-21', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 14), +(888, '2025-04-21', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-21 06:22:20', '2025-04-21 06:22:20', NULL, NULL, NULL, 5), +(889, '2025-04-22', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(890, '2025-04-22', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(891, '2025-04-22', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(892, '2025-04-22', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(893, '2025-04-22', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(894, '2025-04-22', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(895, '2025-04-22', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(896, '2025-04-22', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(897, '2025-04-22', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, 'ICK 크레인 공사', '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 14), +(898, '2025-04-22', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-22 01:49:11', '2025-04-22 01:49:11', NULL, NULL, NULL, 5), +(899, '2025-04-23', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(900, '2025-04-23', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(901, '2025-04-23', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(902, '2025-04-23', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(903, '2025-04-23', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(904, '2025-04-23', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(905, '2025-04-23', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(906, '2025-04-23', 4, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(907, '2025-04-23', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 14), +(908, '2025-04-23', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-23 06:57:29', '2025-04-23 06:57:29', NULL, NULL, NULL, 5), +(909, '2025-04-24', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, '벨브 부적합 관련 작업 추가', '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(910, '2025-04-24', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(911, '2025-04-24', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(912, '2025-04-24', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(913, '2025-04-24', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(914, '2025-04-24', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(915, '2025-04-24', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(916, '2025-04-24', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(917, '2025-04-24', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(918, '2025-04-24', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-24 05:42:30', '2025-04-24 05:42:30', NULL, NULL, NULL, 9), +(919, '2025-04-25', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(920, '2025-04-25', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(921, '2025-04-25', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 5), +(922, '2025-04-25', 7, 1, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(923, '2025-04-25', 8, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(924, '2025-04-25', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(925, '2025-04-25', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(926, '2025-04-25', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '확관 작업', '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 5), +(927, '2025-04-25', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:38', '2025-04-25 04:23:38', NULL, NULL, NULL, 9), +(928, '2025-04-25', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-25 04:23:39', '2025-04-25 04:23:39', NULL, NULL, NULL, 5), +(929, '2025-04-28', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:22', '2025-04-28 23:20:22', NULL, NULL, NULL, 9), +(930, '2025-04-28', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(931, '2025-04-28', 3, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(932, '2025-04-28', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(934, '2025-04-28', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(935, '2025-04-28', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(936, '2025-04-28', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(937, '2025-04-28', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(938, '2025-04-28', 6, 1, NULL, NULL, NULL, NULL, '근무', NULL, 'NCR 벨브 라인 설치', '2025-04-28 23:20:23', '2025-04-28 23:20:23', NULL, NULL, NULL, 9), +(939, '2025-04-29', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 9), +(940, '2025-04-29', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(941, '2025-04-29', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(942, '2025-04-29', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 9), +(943, '2025-04-29', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(944, '2025-04-29', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(945, '2025-04-29', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 14), +(946, '2025-04-29', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(947, '2025-04-29', 8, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(948, '2025-04-29', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-29 04:41:11', '2025-04-29 04:41:11', NULL, NULL, NULL, 16), +(949, '2025-04-30', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(950, '2025-04-30', 2, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(951, '2025-04-30', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(953, '2025-04-30', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 15), +(954, '2025-04-30', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(955, '2025-04-30', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(956, '2025-04-30', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 14), +(957, '2025-04-30', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 15), +(958, '2025-04-30', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-04-30 03:43:51', '2025-04-30 03:43:51', NULL, NULL, NULL, 16), +(959, '2025-04-30', 4, 7, NULL, NULL, NULL, NULL, '반반차', NULL, '제2공장 공사', '2025-04-30 04:22:04', '2025-04-30 04:22:04', NULL, NULL, NULL, 14), +(1023, '2025-04-15', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1024, '2025-04-15', 2, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1025, '2025-04-15', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1026, '2025-04-15', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1027, '2025-04-15', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1028, '2025-04-15', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1029, '2025-04-15', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1030, '2025-04-15', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1031, '2025-04-15', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 5), +(1032, '2025-04-15', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:01:35', '2025-05-07 01:01:35', NULL, NULL, NULL, 9), +(1033, '2025-04-16', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1034, '2025-04-16', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1035, '2025-04-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5); +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(1036, '2025-04-16', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1037, '2025-04-16', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1038, '2025-04-16', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1039, '2025-04-16', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1040, '2025-04-16', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 15), +(1041, '2025-04-16', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 5), +(1042, '2025-04-16', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:03:57', '2025-05-07 01:03:57', NULL, NULL, NULL, 9), +(1043, '2025-04-18', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1044, '2025-04-18', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1045, '2025-04-18', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1046, '2025-04-18', 4, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1047, '2025-04-18', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 15), +(1048, '2025-04-18', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1049, '2025-04-18', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1050, '2025-04-18', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1051, '2025-04-18', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 5), +(1052, '2025-04-18', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 01:05:17', '2025-05-07 01:05:17', NULL, NULL, NULL, 9), +(1053, '2025-04-02', 7, 1, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-07 02:19:00', '2025-05-07 02:19:00', NULL, NULL, NULL, 9), +(1054, '2025-04-03', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 02:19:45', '2025-05-07 02:19:45', NULL, NULL, NULL, 9), +(1055, '2025-04-08', 2, 1, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 02:20:22', '2025-05-07 02:20:22', NULL, NULL, NULL, 9), +(1056, '2025-04-28', 8, 1, NULL, NULL, NULL, NULL, '반반차', NULL, 'NCR 벨브라인 설치', '2025-05-07 02:21:44', '2025-05-07 02:21:44', NULL, NULL, NULL, 9), +(1057, '2025-05-02', 1, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1058, '2025-05-02', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1059, '2025-05-02', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1060, '2025-05-02', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1061, '2025-05-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1062, '2025-05-02', 6, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1063, '2025-05-02', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1064, '2025-05-02', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1065, '2025-05-02', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1066, '2025-05-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-07 03:13:26', '2025-05-07 03:13:26', NULL, NULL, NULL, 15), +(1067, '2025-05-07', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1068, '2025-05-07', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1069, '2025-05-07', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1070, '2025-05-07', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1071, '2025-05-07', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1072, '2025-05-07', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1073, '2025-05-07', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1074, '2025-05-07', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1075, '2025-05-07', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 14), +(1076, '2025-05-07', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 03:19:18', '2025-05-07 03:19:18', NULL, NULL, NULL, 16), +(1078, '2025-05-08', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1079, '2025-05-08', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1080, '2025-05-08', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1081, '2025-05-08', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1082, '2025-05-08', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1083, '2025-05-08', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1084, '2025-05-08', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1085, '2025-05-08', 9, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 14), +(1086, '2025-05-08', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-07 23:06:52', '2025-05-07 23:06:52', NULL, NULL, NULL, 16), +(1087, '2025-05-08', 1, 7, NULL, NULL, NULL, NULL, '반반차', NULL, '작업장 구역 설치', '2025-05-08 06:57:51', '2025-05-08 06:57:51', NULL, NULL, NULL, 14), +(1088, '2025-05-09', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1089, '2025-05-09', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1090, '2025-05-09', 3, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1091, '2025-05-09', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1092, '2025-05-09', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1093, '2025-05-09', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1094, '2025-05-09', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1095, '2025-05-09', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1096, '2025-05-09', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 16), +(1097, '2025-05-09', 10, 7, NULL, NULL, NULL, NULL, '근무', NULL, '작업장 구역 정리', '2025-05-09 06:12:16', '2025-05-09 06:12:16', NULL, NULL, NULL, 14), +(1100, '2025-05-12', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-11 21:52:46', '2025-05-11 21:52:46', NULL, NULL, NULL, 15), +(1108, '2025-05-12', 1, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1111, '2025-05-12', 5, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1113, '2025-05-12', 7, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1115, '2025-05-12', 9, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1116, '2025-05-12', 10, 1, NULL, NULL, NULL, NULL, '근무', NULL, '포장', '2025-05-12 23:55:17', '2025-05-12 23:55:17', NULL, NULL, NULL, 13), +(1117, '2025-05-13', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1118, '2025-05-13', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1119, '2025-05-13', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1120, '2025-05-13', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1121, '2025-05-13', 5, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1122, '2025-05-13', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1123, '2025-05-13', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 14), +(1124, '2025-05-13', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1125, '2025-05-13', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 3), +(1126, '2025-05-13', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:00:41', '2025-05-13 00:00:41', NULL, NULL, NULL, 7), +(1127, '2025-05-12', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1128, '2025-05-12', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1129, '2025-05-12', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1130, '2025-05-12', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-13 00:01:44', '2025-05-13 00:01:44', NULL, NULL, NULL, 3), +(1131, '2025-05-14', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1132, '2025-05-14', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1133, '2025-05-14', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1134, '2025-05-14', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1135, '2025-05-14', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1136, '2025-05-14', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1137, '2025-05-14', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 3), +(1138, '2025-05-14', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1139, '2025-05-14', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1140, '2025-05-14', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-14 22:42:17', '2025-05-14 22:42:17', NULL, NULL, NULL, 7), +(1141, '2025-05-15', 1, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 14), +(1142, '2025-05-15', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1143, '2025-05-15', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1144, '2025-05-15', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1145, '2025-05-15', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1146, '2025-05-15', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1147, '2025-05-15', 7, 7, NULL, NULL, NULL, NULL, '근무', NULL, '제2공장 공사', '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 14), +(1148, '2025-05-15', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1149, '2025-05-15', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 3), +(1150, '2025-05-15', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:53:53', '2025-05-16 02:53:53', NULL, NULL, NULL, 7), +(1151, '2025-05-16', 1, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1152, '2025-05-16', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1153, '2025-05-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1154, '2025-05-16', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1155, '2025-05-16', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1156, '2025-05-16', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1157, '2025-05-16', 7, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1158, '2025-05-16', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1159, '2025-05-16', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 3), +(1160, '2025-05-16', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-16 02:55:12', '2025-05-16 02:55:12', NULL, NULL, NULL, 7), +(1171, '2025-05-19', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1172, '2025-05-19', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 4), +(1173, '2025-05-19', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1174, '2025-05-19', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1175, '2025-05-19', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1176, '2025-05-19', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1177, '2025-05-19', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1179, '2025-05-19', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1180, '2025-05-19', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:47:56', '2025-05-22 04:47:56', NULL, NULL, NULL, 7), +(1181, '2025-05-21', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1183, '2025-05-21', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1184, '2025-05-21', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1185, '2025-05-21', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1186, '2025-05-21', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1187, '2025-05-21', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1188, '2025-05-21', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1189, '2025-05-21', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1190, '2025-05-21', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:49:38', '2025-05-22 04:49:38', NULL, NULL, NULL, 7), +(1191, '2025-05-20', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1192, '2025-05-20', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 3), +(1193, '2025-05-20', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1194, '2025-05-20', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1195, '2025-05-20', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1196, '2025-05-20', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1197, '2025-05-20', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1198, '2025-05-20', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1199, '2025-05-20', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1200, '2025-05-20', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-05-22 04:51:34', '2025-05-22 04:51:34', NULL, NULL, NULL, 7), +(1201, '2025-05-22', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1202, '2025-05-22', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 3), +(1203, '2025-05-22', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1204, '2025-05-22', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1205, '2025-05-22', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1206, '2025-05-22', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1207, '2025-05-22', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1208, '2025-05-22', 8, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1209, '2025-05-22', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1210, '2025-05-22', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-05-22 04:53:17', '2025-05-22 04:53:17', NULL, NULL, NULL, 7), +(1211, '2025-05-21', 2, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-22 04:54:12', '2025-05-22 04:54:12', NULL, NULL, NULL, 15), +(1215, '2025-05-26', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-05-26 06:58:00', '2025-05-26 06:58:00', NULL, NULL, NULL, 15), +(1222, '2025-05-19', 8, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-01 22:34:36', '2025-06-01 22:34:36', NULL, NULL, NULL, 3), +(1223, '2025-05-26', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1224, '2025-05-26', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1225, '2025-05-26', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1226, '2025-05-26', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1227, '2025-05-26', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1228, '2025-05-26', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1229, '2025-05-26', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 5), +(1230, '2025-05-26', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1231, '2025-05-26', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:37:29', '2025-06-01 22:37:29', NULL, NULL, NULL, 8), +(1232, '2025-05-23', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1233, '2025-05-23', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 3), +(1234, '2025-05-23', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1235, '2025-05-23', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1236, '2025-05-23', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1237, '2025-05-23', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1238, '2025-05-23', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1239, '2025-05-23', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1240, '2025-05-23', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1241, '2025-05-23', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:41:30', '2025-06-01 22:41:30', NULL, NULL, NULL, 8), +(1242, '2025-05-27', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1243, '2025-05-27', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1244, '2025-05-27', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1245, '2025-05-27', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1246, '2025-05-27', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1247, '2025-05-27', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1248, '2025-05-27', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1249, '2025-05-27', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 5), +(1250, '2025-05-27', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1251, '2025-05-27', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:45:06', '2025-06-01 22:45:06', NULL, NULL, NULL, 8), +(1252, '2025-05-28', 1, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-06-01 22:46:40', '2025-06-01 22:46:40', NULL, NULL, NULL, 8), +(1258, '2025-05-28', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:46:40', '2025-06-01 22:46:40', NULL, NULL, NULL, 8), +(1262, '2025-05-28', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1263, '2025-05-28', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1264, '2025-05-28', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1265, '2025-05-28', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1266, '2025-05-28', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1267, '2025-05-28', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 5), +(1268, '2025-05-28', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1269, '2025-05-28', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:48:21', '2025-06-01 22:48:21', NULL, NULL, NULL, 8), +(1270, '2025-05-29', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1271, '2025-05-29', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1272, '2025-05-29', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1273, '2025-05-29', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1274, '2025-05-29', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1275, '2025-05-29', 6, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1276, '2025-05-29', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1277, '2025-05-29', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 5), +(1278, '2025-05-29', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1279, '2025-05-29', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-01 22:49:55', '2025-06-01 22:49:55', NULL, NULL, NULL, 8), +(1281, '2025-05-30', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1282, '2025-05-30', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1283, '2025-05-30', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1284, '2025-05-30', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1285, '2025-05-30', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1286, '2025-05-30', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1287, '2025-05-30', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 5), +(1288, '2025-05-30', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1289, '2025-05-30', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:50:53', '2025-06-01 22:50:53', NULL, NULL, NULL, 8), +(1290, '2025-06-02', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:18', '2025-06-01 22:52:18', NULL, NULL, NULL, 8), +(1291, '2025-06-02', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 5), +(1292, '2025-06-02', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1293, '2025-06-02', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1294, '2025-06-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1295, '2025-06-02', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1296, '2025-06-02', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1297, '2025-06-02', 8, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1298, '2025-06-02', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 8), +(1299, '2025-06-02', 10, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 22:52:19', '2025-06-01 22:52:19', NULL, NULL, NULL, 15), +(1300, '2025-05-30', 1, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-01 23:17:51', '2025-06-01 23:17:51', NULL, NULL, NULL, 8), +(1301, '2025-01-02', 5, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-01 23:31:26', '2025-06-01 23:31:26', NULL, NULL, NULL, 15), +(1302, '2025-06-04', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1303, '2025-06-04', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1304, '2025-06-04', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1305, '2025-06-04', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 15), +(1306, '2025-06-04', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1307, '2025-06-04', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1308, '2025-06-04', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1309, '2025-06-04', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 5), +(1310, '2025-06-04', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1311, '2025-06-04', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-04 22:13:30', '2025-06-04 22:13:30', NULL, NULL, NULL, 8), +(1312, '2025-06-09', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:28', NULL, NULL, NULL, 8), +(1313, '2025-06-09', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1314, '2025-06-09', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:30', NULL, NULL, NULL, 8), +(1315, '2025-06-09', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1316, '2025-06-09', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:31', NULL, NULL, NULL, 8), +(1317, '2025-06-09', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1318, '2025-06-09', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:32', NULL, NULL, NULL, 8), +(1319, '2025-06-09', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 5), +(1320, '2025-06-09', 9, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-09 06:47:48', '2025-06-09 06:47:48', NULL, NULL, NULL, 15), +(1321, '2025-06-09', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-09 06:47:48', '2025-06-13 03:43:34', NULL, NULL, NULL, 8), +(1322, '2025-06-10', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:03', '2025-06-13 03:43:51', NULL, NULL, NULL, 8), +(1323, '2025-06-10', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:03', '2025-06-10 08:47:03', NULL, NULL, NULL, 5), +(1324, '2025-06-10', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:03', '2025-06-13 03:43:53', NULL, NULL, NULL, 8), +(1325, '2025-06-10', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:54', NULL, NULL, NULL, 8), +(1326, '2025-06-10', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1327, '2025-06-10', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1328, '2025-06-10', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:55', NULL, NULL, NULL, 8), +(1329, '2025-06-10', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-10 08:47:04', '2025-06-10 08:47:04', NULL, NULL, NULL, 5), +(1330, '2025-06-10', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:56', NULL, NULL, NULL, 8), +(1331, '2025-06-10', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-10 08:47:04', '2025-06-13 03:43:56', NULL, NULL, NULL, 8), +(1332, '2025-06-11', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:18', NULL, NULL, NULL, 8), +(1333, '2025-06-11', 2, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1334, '2025-06-11', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:19', NULL, NULL, NULL, 8), +(1335, '2025-06-11', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:20', NULL, NULL, NULL, 8), +(1336, '2025-06-11', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1337, '2025-06-11', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1338, '2025-06-11', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:22', NULL, NULL, NULL, 8), +(1339, '2025-06-11', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-11 07:59:16', '2025-06-11 07:59:16', NULL, NULL, NULL, 5), +(1340, '2025-06-11', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:23', NULL, NULL, NULL, 8), +(1341, '2025-06-11', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-11 07:59:16', '2025-06-13 03:44:23', NULL, NULL, NULL, 8), +(1342, '2025-06-13', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1343, '2025-06-13', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1344, '2025-06-13', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1345, '2025-06-13', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1346, '2025-06-13', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1347, '2025-06-13', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1348, '2025-06-13', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 15), +(1349, '2025-06-13', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 5), +(1350, '2025-06-13', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1351, '2025-06-13', 10, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:25:23', '2025-06-13 03:25:23', NULL, NULL, NULL, 8), +(1352, '2025-06-05', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1353, '2025-06-05', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1354, '2025-06-05', 3, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1355, '2025-06-05', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1356, '2025-06-05', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1357, '2025-06-05', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1358, '2025-06-05', 7, 4, NULL, NULL, NULL, NULL, '반반차', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1359, '2025-06-05', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 5), +(1360, '2025-06-05', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1361, '2025-06-05', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:34:20', '2025-06-13 03:34:20', NULL, NULL, NULL, 8), +(1362, '2025-06-12', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1363, '2025-06-12', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1364, '2025-06-12', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1365, '2025-06-12', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1366, '2025-06-12', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1367, '2025-06-12', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1368, '2025-06-12', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1369, '2025-06-12', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 5), +(1370, '2025-06-12', 9, 4, NULL, NULL, NULL, NULL, '반차', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1371, '2025-06-12', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, '라인수정', '2025-06-13 03:36:11', '2025-06-13 03:36:11', NULL, NULL, NULL, 8), +(1372, '2025-06-16', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:26', '2025-06-16 04:26:26', NULL, NULL, NULL, 8), +(1373, '2025-06-16', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1374, '2025-06-16', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1375, '2025-06-16', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1376, '2025-06-16', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1377, '2025-06-16', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'Vessel NDE 불량 수리', '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1378, '2025-06-16', 7, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 15), +(1379, '2025-06-16', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'Vessel NDE 불량 수리', '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 5), +(1380, '2025-06-16', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1381, '2025-06-16', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-16 04:26:27', '2025-06-16 04:26:27', NULL, NULL, NULL, 8), +(1382, '2025-06-17', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1383, '2025-06-17', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1384, '2025-06-17', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1385, '2025-06-17', 4, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:36:28', NULL, NULL, NULL, 5), +(1386, '2025-06-17', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1387, '2025-06-17', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 비파괴 불량', '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1388, '2025-06-17', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1389, '2025-06-17', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, '용기 비파괴 불량', '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 5), +(1390, '2025-06-17', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1391, '2025-06-17', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-17 08:17:30', '2025-06-17 08:17:30', NULL, NULL, NULL, 8), +(1392, '2025-06-18', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1393, '2025-06-18', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1394, '2025-06-18', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1395, '2025-06-18', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1396, '2025-06-18', 5, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1397, '2025-06-18', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1398, '2025-06-18', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1399, '2025-06-18', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 5), +(1400, '2025-06-18', 9, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1401, '2025-06-18', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-06-18 08:16:50', '2025-06-18 08:16:50', NULL, NULL, NULL, 8), +(1402, '2025-06-24', 1, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1403, '2025-06-24', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 5), +(1404, '2025-06-24', 3, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1405, '2025-06-24', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1406, '2025-06-24', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1407, '2025-06-24', 6, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1408, '2025-06-24', 7, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1409, '2025-06-24', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 5), +(1410, '2025-06-24', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1411, '2025-06-24', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-24 09:25:01', '2025-06-24 09:25:01', NULL, NULL, NULL, 8), +(1412, '2025-06-25', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1413, '2025-06-25', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 5), +(1414, '2025-06-25', 3, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1415, '2025-06-25', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1416, '2025-06-25', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1417, '2025-06-25', 6, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1418, '2025-06-25', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1419, '2025-06-25', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 5), +(1420, '2025-06-25', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1421, '2025-06-25', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-25 07:08:25', '2025-06-25 07:08:25', NULL, NULL, NULL, 18), +(1422, '2025-06-26', 1, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1423, '2025-06-26', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1424, '2025-06-26', 3, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1425, '2025-06-26', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1426, '2025-06-26', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1427, '2025-06-26', 6, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1428, '2025-06-26', 7, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1429, '2025-06-26', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 5), +(1430, '2025-06-26', 9, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1431, '2025-06-26', 10, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-06-26 22:45:15', '2025-06-26 22:45:15', NULL, NULL, NULL, 18), +(1432, '2025-06-27', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1433, '2025-06-27', 2, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1434, '2025-06-27', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1435, '2025-06-27', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1436, '2025-06-27', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1437, '2025-06-27', 6, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1438, '2025-06-27', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1439, '2025-06-27', 8, 3, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 5), +(1440, '2025-06-27', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1441, '2025-06-27', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-06-26 22:48:37', '2025-06-26 22:48:37', NULL, NULL, NULL, 18), +(1442, '2025-06-19', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1443, '2025-06-19', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 5), +(1444, '2025-06-19', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1445, '2025-06-19', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8); +INSERT INTO `WorkReports` (`id`, `date`, `worker_id`, `project_id`, `morning_task_id`, `afternoon_task_id`, `overtime_hours`, `overtime_task_id`, `work_details`, `note`, `memo`, `created_at`, `updated_at`, `morning_project_id`, `afternoon_project_id`, `overtime_project_id`, `task_id`) VALUES +(1446, '2025-06-19', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 5), +(1447, '2025-06-19', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1448, '2025-06-19', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1449, '2025-06-19', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 5), +(1450, '2025-06-19', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1451, '2025-06-19', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:53:46', '2025-07-07 03:53:46', NULL, NULL, NULL, 8), +(1452, '2025-06-20', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1453, '2025-06-20', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 5), +(1454, '2025-06-20', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1455, '2025-06-20', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1456, '2025-06-20', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 5), +(1457, '2025-06-20', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1458, '2025-06-20', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1459, '2025-06-20', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 5), +(1460, '2025-06-20', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1461, '2025-06-20', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:54:44', '2025-07-07 03:54:44', NULL, NULL, NULL, 8), +(1462, '2025-06-23', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1463, '2025-06-23', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 5), +(1464, '2025-06-23', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1465, '2025-06-23', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1466, '2025-06-23', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 5), +(1467, '2025-06-23', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1468, '2025-06-23', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1469, '2025-06-23', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 5), +(1470, '2025-06-23', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1471, '2025-06-23', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 03:55:50', '2025-07-07 03:55:50', NULL, NULL, NULL, 8), +(1472, '2025-06-30', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1473, '2025-06-30', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 5), +(1474, '2025-06-30', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1475, '2025-06-30', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1476, '2025-06-30', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 5), +(1477, '2025-06-30', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 5), +(1478, '2025-06-30', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1479, '2025-06-30', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 5), +(1480, '2025-06-30', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1481, '2025-06-30', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:24:36', '2025-07-07 04:24:36', NULL, NULL, NULL, 8), +(1482, '2025-07-01', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 8), +(1483, '2025-07-01', 2, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1484, '2025-07-01', 3, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1485, '2025-07-01', 4, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 8), +(1486, '2025-07-01', 5, 4, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 8), +(1487, '2025-07-01', 6, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1488, '2025-07-01', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 8), +(1489, '2025-07-01', 8, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1490, '2025-07-01', 9, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1491, '2025-07-01', 10, 3, NULL, NULL, 4.0, NULL, '근무', NULL, NULL, '2025-07-07 04:26:44', '2025-07-07 04:26:44', NULL, NULL, NULL, 5), +(1492, '2025-07-02', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 9), +(1493, '2025-07-02', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1494, '2025-07-02', 3, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1495, '2025-07-02', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 9), +(1496, '2025-07-02', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 9), +(1497, '2025-07-02', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1498, '2025-07-02', 7, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1499, '2025-07-02', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1500, '2025-07-02', 9, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1501, '2025-07-02', 10, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:28:16', '2025-07-07 04:28:16', NULL, NULL, NULL, 5), +(1502, '2025-07-03', 1, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1503, '2025-07-03', 2, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 5), +(1504, '2025-07-03', 3, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1505, '2025-07-03', 4, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1506, '2025-07-03', 5, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1507, '2025-07-03', 6, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 5), +(1508, '2025-07-03', 7, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1509, '2025-07-03', 8, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 5), +(1510, '2025-07-03', 9, 3, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 5), +(1511, '2025-07-03', 10, 4, NULL, NULL, 2.0, NULL, '근무', NULL, NULL, '2025-07-07 04:30:04', '2025-07-07 04:30:04', NULL, NULL, NULL, 9), +(1512, '2025-07-04', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1513, '2025-07-04', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1514, '2025-07-04', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1515, '2025-07-04', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1516, '2025-07-04', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1517, '2025-07-04', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1518, '2025-07-04', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1519, '2025-07-04', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1520, '2025-07-04', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1521, '2025-07-04', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:09', '2025-07-07 04:31:09', NULL, NULL, NULL, 9), +(1522, '2025-07-05', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1523, '2025-07-05', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1524, '2025-07-05', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1525, '2025-07-05', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1526, '2025-07-05', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1527, '2025-07-05', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:31:53', '2025-07-07 04:31:53', NULL, NULL, NULL, 9), +(1528, '2025-07-06', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1529, '2025-07-06', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1530, '2025-07-06', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1531, '2025-07-06', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1532, '2025-07-06', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1533, '2025-07-06', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1534, '2025-07-06', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1535, '2025-07-06', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 04:32:52', '2025-07-07 04:32:52', NULL, NULL, NULL, 9), +(1536, '2025-07-07', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:13', '2025-07-07 23:35:13', NULL, NULL, NULL, 9), +(1537, '2025-07-07', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-07 23:35:13', '2025-07-07 23:35:13', NULL, NULL, NULL, 9), +(1538, '2025-07-07', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:13', '2025-07-07 23:35:13', NULL, NULL, NULL, 9), +(1539, '2025-07-07', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-07 23:35:13', '2025-07-07 23:35:13', NULL, NULL, NULL, 9), +(1540, '2025-07-07', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:13', '2025-07-07 23:35:13', NULL, NULL, NULL, 9), +(1541, '2025-07-07', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:14', '2025-07-07 23:35:14', NULL, NULL, NULL, 9), +(1542, '2025-07-07', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:14', '2025-07-07 23:35:14', NULL, NULL, NULL, 9), +(1543, '2025-07-07', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:14', '2025-07-07 23:35:14', NULL, NULL, NULL, 9), +(1544, '2025-07-07', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:14', '2025-07-07 23:35:14', NULL, NULL, NULL, 9), +(1545, '2025-07-07', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-07 23:35:14', '2025-07-07 23:35:14', NULL, NULL, NULL, 9), +(1546, '2025-07-08', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1547, '2025-07-08', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1548, '2025-07-08', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1549, '2025-07-08', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1550, '2025-07-08', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1551, '2025-07-08', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1552, '2025-07-08', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1553, '2025-07-08', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1554, '2025-07-08', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1555, '2025-07-08', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:12:44', '2025-07-10 02:12:44', NULL, NULL, NULL, 9), +(1556, '2025-07-09', 1, 4, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1557, '2025-07-09', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1558, '2025-07-09', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1559, '2025-07-09', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, 'tubing', '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1560, '2025-07-09', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1561, '2025-07-09', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1562, '2025-07-09', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1563, '2025-07-09', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1564, '2025-07-09', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1565, '2025-07-09', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-10 02:13:45', '2025-07-10 02:13:45', NULL, NULL, NULL, 9), +(1566, '2025-07-10', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1567, '2025-07-10', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1568, '2025-07-10', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1569, '2025-07-10', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1570, '2025-07-10', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1571, '2025-07-10', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1572, '2025-07-10', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1573, '2025-07-10', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1574, '2025-07-10', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1575, '2025-07-10', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:06:02', '2025-07-30 02:06:02', NULL, NULL, NULL, 8), +(1576, '2025-07-14', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1577, '2025-07-14', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1578, '2025-07-14', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1579, '2025-07-14', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1580, '2025-07-14', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1581, '2025-07-14', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1582, '2025-07-14', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1583, '2025-07-14', 8, 4, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1584, '2025-07-14', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1585, '2025-07-14', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:07:29', '2025-07-30 02:07:29', NULL, NULL, NULL, 8), +(1586, '2025-07-15', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:41', '2025-07-30 02:23:58', NULL, NULL, NULL, 8), +(1587, '2025-07-15', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:41', '2025-07-30 02:23:58', NULL, NULL, NULL, 8), +(1588, '2025-07-15', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:41', '2025-07-30 02:24:00', NULL, NULL, NULL, 8), +(1589, '2025-07-15', 4, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-07-30 02:08:41', '2025-07-30 02:24:00', NULL, NULL, NULL, 15), +(1590, '2025-07-15', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:01', NULL, NULL, NULL, 5), +(1591, '2025-07-15', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:02', NULL, NULL, NULL, 8), +(1592, '2025-07-15', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:02', NULL, NULL, NULL, 8), +(1593, '2025-07-15', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:03', NULL, NULL, NULL, 8), +(1594, '2025-07-15', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:03', NULL, NULL, NULL, 5), +(1595, '2025-07-15', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:08:42', '2025-07-30 02:24:04', NULL, NULL, NULL, 8), +(1596, '2025-07-16', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:17', '2025-07-30 02:10:17', NULL, NULL, NULL, 8), +(1597, '2025-07-16', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1598, '2025-07-16', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1599, '2025-07-16', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 8), +(1600, '2025-07-16', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1601, '2025-07-16', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1602, '2025-07-16', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 8), +(1603, '2025-07-16', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1604, '2025-07-16', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1605, '2025-07-16', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:10:18', '2025-07-30 02:10:18', NULL, NULL, NULL, 5), +(1606, '2025-07-17', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:24:31', NULL, NULL, NULL, 7), +(1607, '2025-07-17', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1608, '2025-07-17', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1609, '2025-07-17', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1610, '2025-07-17', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1611, '2025-07-17', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1612, '2025-07-17', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1613, '2025-07-17', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1614, '2025-07-17', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1615, '2025-07-17', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:11:12', '2025-07-30 02:11:12', NULL, NULL, NULL, 18), +(1616, '2025-07-18', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 9), +(1617, '2025-07-18', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1618, '2025-07-18', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1619, '2025-07-18', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1620, '2025-07-18', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 9), +(1621, '2025-07-18', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1622, '2025-07-18', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 9), +(1623, '2025-07-18', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1624, '2025-07-18', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1625, '2025-07-18', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:13:22', '2025-07-30 02:13:22', NULL, NULL, NULL, 5), +(1626, '2025-07-21', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 7), +(1627, '2025-07-21', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1628, '2025-07-21', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1629, '2025-07-21', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 9), +(1630, '2025-07-21', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 9), +(1631, '2025-07-21', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1632, '2025-07-21', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1633, '2025-07-21', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1634, '2025-07-21', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1635, '2025-07-21', 10, 3, NULL, NULL, NULL, NULL, '반반차', NULL, NULL, '2025-07-30 02:14:45', '2025-07-30 02:14:45', NULL, NULL, NULL, 5), +(1636, '2025-07-22', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 5), +(1637, '2025-07-22', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1638, '2025-07-22', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1639, '2025-07-22', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 7), +(1640, '2025-07-22', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 7), +(1641, '2025-07-22', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1642, '2025-07-22', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1643, '2025-07-22', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1644, '2025-07-22', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1645, '2025-07-22', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:16:04', '2025-07-30 02:16:04', NULL, NULL, NULL, 9), +(1646, '2025-07-23', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 7), +(1647, '2025-07-23', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1648, '2025-07-23', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1649, '2025-07-23', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 7), +(1650, '2025-07-23', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 7), +(1651, '2025-07-23', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1652, '2025-07-23', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1653, '2025-07-23', 8, 13, NULL, NULL, NULL, NULL, '유급', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 22:39:10', NULL, NULL, NULL, 15), +(1654, '2025-07-23', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1655, '2025-07-23', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:17:15', '2025-07-30 02:17:15', NULL, NULL, NULL, 5), +(1656, '2025-07-24', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 7), +(1657, '2025-07-24', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1658, '2025-07-24', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1659, '2025-07-24', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 7), +(1660, '2025-07-24', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 7), +(1661, '2025-07-24', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1662, '2025-07-24', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1663, '2025-07-24', 8, 13, NULL, NULL, NULL, NULL, '유급', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 15), +(1664, '2025-07-24', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1665, '2025-07-24', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:18:29', '2025-07-30 02:18:29', NULL, NULL, NULL, 5), +(1666, '2025-07-25', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 13), +(1667, '2025-07-25', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1668, '2025-07-25', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1669, '2025-07-25', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1670, '2025-07-25', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 13), +(1671, '2025-07-25', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 13), +(1672, '2025-07-25', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 18), +(1673, '2025-07-25', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1674, '2025-07-25', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1675, '2025-07-25', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:21:24', '2025-07-30 02:21:24', NULL, NULL, NULL, 5), +(1676, '2025-07-28', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 7), +(1677, '2025-07-28', 2, 5, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 13), +(1678, '2025-07-28', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1679, '2025-07-28', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 7), +(1680, '2025-07-28', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 7), +(1681, '2025-07-28', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1682, '2025-07-28', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1683, '2025-07-28', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1684, '2025-07-28', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1685, '2025-07-28', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 02:22:32', '2025-07-30 02:22:32', NULL, NULL, NULL, 5), +(1686, '2025-07-11', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1687, '2025-07-11', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1688, '2025-07-11', 3, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1689, '2025-07-11', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1690, '2025-07-11', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1691, '2025-07-11', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1692, '2025-07-11', 7, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1693, '2025-07-11', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1694, '2025-07-11', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:30', '2025-07-30 22:48:30', NULL, NULL, NULL, 9), +(1695, '2025-07-11', 10, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:48:31', '2025-07-30 22:48:31', NULL, NULL, NULL, 9), +(1696, '2025-07-12', 1, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1697, '2025-07-12', 2, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1698, '2025-07-12', 3, 13, NULL, NULL, NULL, NULL, '휴무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 15), +(1699, '2025-07-12', 4, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1700, '2025-07-12', 5, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1701, '2025-07-12', 6, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1702, '2025-07-12', 7, 13, NULL, NULL, NULL, NULL, '휴무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 15), +(1703, '2025-07-12', 8, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1704, '2025-07-12', 9, 4, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 9), +(1705, '2025-07-12', 10, 13, NULL, NULL, NULL, NULL, '휴무', NULL, NULL, '2025-07-30 22:49:19', '2025-07-30 22:49:19', NULL, NULL, NULL, 15), +(1706, '2025-07-29', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 7), +(1707, '2025-07-29', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1708, '2025-07-29', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1709, '2025-07-29', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 7), +(1710, '2025-07-29', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 7), +(1711, '2025-07-29', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1712, '2025-07-29', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1713, '2025-07-29', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1714, '2025-07-29', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1715, '2025-07-29', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:50:13', '2025-07-30 22:50:13', NULL, NULL, NULL, 5), +(1716, '2025-07-30', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 7), +(1717, '2025-07-30', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1718, '2025-07-30', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1719, '2025-07-30', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 7), +(1720, '2025-07-30', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 7), +(1721, '2025-07-30', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1722, '2025-07-30', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1723, '2025-07-30', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1724, '2025-07-30', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1725, '2025-07-30', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:05', '2025-07-30 22:51:05', NULL, NULL, NULL, 5), +(1726, '2025-07-31', 1, 3, NULL, NULL, NULL, NULL, '반차', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 7), +(1727, '2025-07-31', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1728, '2025-07-31', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1729, '2025-07-31', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 7), +(1730, '2025-07-31', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 7), +(1731, '2025-07-31', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1732, '2025-07-31', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1733, '2025-07-31', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1734, '2025-07-31', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1735, '2025-07-31', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-07-30 22:51:54', '2025-07-30 22:51:54', NULL, NULL, NULL, 5), +(1736, '2025-09-18', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, '냉동기', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 18), +(1737, '2025-09-18', 2, 8, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 8), +(1738, '2025-09-18', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'BOG', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 5), +(1739, '2025-09-18', 4, 8, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 8), +(1740, '2025-09-18', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, '냉동기', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 9), +(1741, '2025-09-18', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'BOG', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 5), +(1742, '2025-09-18', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, '냉동기', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 18), +(1743, '2025-09-18', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'BOG', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 5), +(1744, '2025-09-18', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'BOG', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 5), +(1745, '2025-09-18', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, 'BOG', '2025-09-17 23:53:35', '2025-09-17 23:53:35', NULL, NULL, NULL, 5), +(1746, '2025-10-01', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 16), +(1747, '2025-10-01', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 16), +(1748, '2025-10-01', 3, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1749, '2025-10-01', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 5), +(1750, '2025-10-01', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 16), +(1751, '2025-10-01', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1752, '2025-10-01', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1753, '2025-10-01', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1754, '2025-10-01', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1755, '2025-10-01', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:49:56', '2025-10-01 23:49:56', NULL, NULL, NULL, 7), +(1756, '2025-10-02', 1, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1757, '2025-10-02', 2, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1758, '2025-10-02', 3, 13, NULL, NULL, NULL, NULL, '연차', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 15), +(1759, '2025-10-02', 4, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1760, '2025-10-02', 5, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1761, '2025-10-02', 6, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1762, '2025-10-02', 7, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1763, '2025-10-02', 8, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1764, '2025-10-02', 9, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7), +(1765, '2025-10-02', 10, 3, NULL, NULL, NULL, NULL, '근무', NULL, NULL, '2025-10-01 23:50:57', '2025-10-01 23:50:57', NULL, NULL, NULL, 7); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_report_audit_log` +-- + +CREATE TABLE `work_report_audit_log` ( + `log_id` int(11) NOT NULL, + `action` enum('ADD_ACCUMULATE','DELETE_SINGLE','UPDATE','DELETE','CREATE','DELETE_BATCH') NOT NULL COMMENT '작업 유형', + `report_id` int(11) DEFAULT NULL COMMENT '관련 보고서 ID', + `old_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 전 값' CHECK (json_valid(`old_values`)), + `new_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 후 값' CHECK (json_valid(`new_values`)), + `changed_by` int(11) NOT NULL COMMENT '변경자 ID', + `change_reason` varchar(500) DEFAULT NULL COMMENT '변경 사유', + `ip_address` varchar(45) DEFAULT NULL COMMENT 'IP 주소', + `user_agent` text DEFAULT NULL COMMENT '사용자 에이전트', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '변경 시간' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_report_audit_log` +-- + +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(1, 'ADD_ACCUMULATE', 12, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 02:56:12'), +(2, 'DELETE_SINGLE', 12, '{\"worker_name\":\"김두수\",\"project_name\":\"MP7 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:36'), +(3, 'DELETE_SINGLE', 11, '{\"worker_name\":\"김두수\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:39'), +(4, 'DELETE_SINGLE', 7, '{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:17:41'), +(5, 'ADD_ACCUMULATE', 13, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":1,\"my_total\":\"1.00\",\"grand_total\":1,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"1.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 03:18:37'), +(6, 'DELETE_SINGLE', 13, '{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 03:19:23'), +(7, 'ADD_ACCUMULATE', 14, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(8, 'ADD_ACCUMULATE', 15, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(9, 'ADD_ACCUMULATE', 16, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(10, 'ADD_ACCUMULATE', 17, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(11, 'ADD_ACCUMULATE', 18, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(12, 'ADD_ACCUMULATE', 19, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:23'), +(13, 'ADD_ACCUMULATE', 20, NULL, '{\"report_date\":\"2025-06-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:10:47'), +(14, 'ADD_ACCUMULATE', 21, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(15, 'ADD_ACCUMULATE', 22, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(16, 'ADD_ACCUMULATE', 23, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(17, 'ADD_ACCUMULATE', 24, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(18, 'ADD_ACCUMULATE', 25, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(19, 'ADD_ACCUMULATE', 26, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:11:37'), +(20, 'ADD_ACCUMULATE', 27, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(21, 'ADD_ACCUMULATE', 28, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(22, 'ADD_ACCUMULATE', 29, NULL, '{\"report_date\":\"2025-06-04\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:07'), +(23, 'ADD_ACCUMULATE', 30, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(24, 'ADD_ACCUMULATE', 31, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(25, 'ADD_ACCUMULATE', 32, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(26, 'ADD_ACCUMULATE', 33, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(27, 'ADD_ACCUMULATE', 34, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(28, 'ADD_ACCUMULATE', 35, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:12:57'), +(29, 'ADD_ACCUMULATE', 36, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(30, 'ADD_ACCUMULATE', 37, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(31, 'ADD_ACCUMULATE', 38, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(32, 'ADD_ACCUMULATE', 39, NULL, '{\"report_date\":\"2025-06-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}', 1, '누적 추가 by hyungi - 삭제 없음', NULL, NULL, '2025-06-16 05:13:56'), +(33, 'ADD_ACCUMULATE', 40, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(34, 'ADD_ACCUMULATE', 41, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(35, 'ADD_ACCUMULATE', 42, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(36, 'ADD_ACCUMULATE', 43, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:12:01'), +(37, 'DELETE_SINGLE', 42, '{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:12:33'), +(38, 'ADD_ACCUMULATE', 44, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:13:02'), +(39, 'ADD_ACCUMULATE', 45, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:13:50'), +(40, 'DELETE_SINGLE', 41, '{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:14:48'), +(41, 'ADD_ACCUMULATE', 46, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-16 06:15:22'), +(42, 'DELETE_SINGLE', 1, '{\"worker_name\":\"김두수\",\"project_name\":\"25년 안전보건시설설비\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-01T00:00:00.000Z\"}', NULL, 1, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:20:38'), +(43, 'ADD_ACCUMULATE', 48, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(44, 'ADD_ACCUMULATE', 49, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(45, 'ADD_ACCUMULATE', 50, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:46:44'), +(46, 'DELETE_SINGLE', 49, '{\"worker_name\":\"박현수\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-16 06:47:54'), +(47, 'ADD_ACCUMULATE', 51, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-16 06:48:29'), +(48, 'ADD_ACCUMULATE', 52, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-16 06:50:09'), +(49, 'ADD_ACCUMULATE', 54, NULL, '{\"report_date\":\"2025-06-16\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-16 06:50:09'), +(50, 'ADD_ACCUMULATE', 56, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:23:41'), +(51, 'ADD_ACCUMULATE', 58, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:23:41'), +(52, 'ADD_ACCUMULATE', 60, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:33'), +(53, 'ADD_ACCUMULATE', 62, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:33'), +(54, 'ADD_ACCUMULATE', 64, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:24:44'), +(55, 'ADD_ACCUMULATE', 65, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:25:24'), +(56, 'DELETE_SINGLE', 64, '{\"worker_name\":\"황인용\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-17T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-06-17 08:26:17'), +(57, 'ADD_ACCUMULATE', 66, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:27:06'), +(58, 'ADD_ACCUMULATE', 67, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:27:06'), +(59, 'ADD_ACCUMULATE', 68, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(60, 'ADD_ACCUMULATE', 69, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(61, 'ADD_ACCUMULATE', 70, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:31:06'), +(62, 'ADD_ACCUMULATE', 71, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(63, 'ADD_ACCUMULATE', 72, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(64, 'ADD_ACCUMULATE', 73, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-17 08:33:06'), +(65, 'ADD_ACCUMULATE', 74, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-17 08:34:11'), +(66, 'ADD_ACCUMULATE', 76, NULL, '{\"report_date\":\"2025-06-17\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-17 08:34:11'), +(67, 'ADD_ACCUMULATE', 78, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(68, 'ADD_ACCUMULATE', 79, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(69, 'ADD_ACCUMULATE', 80, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:40:27'), +(70, 'ADD_ACCUMULATE', 81, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:02'), +(71, 'ADD_ACCUMULATE', 82, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:03'), +(72, 'ADD_ACCUMULATE', 83, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:03'), +(73, 'ADD_ACCUMULATE', 84, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-18 08:41:45'), +(74, 'ADD_ACCUMULATE', 86, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-18 08:47:55'), +(75, 'ADD_ACCUMULATE', 88, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-18 08:47:55'), +(76, 'ADD_ACCUMULATE', 90, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(77, 'ADD_ACCUMULATE', 92, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(78, 'ADD_ACCUMULATE', 94, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 08:50:19'), +(79, 'ADD_ACCUMULATE', 96, NULL, '{\"report_date\":\"2025-06-18\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-18 09:00:17'), +(80, 'ADD_ACCUMULATE', 98, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-19 06:37:59'), +(81, 'ADD_ACCUMULATE', 99, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-19 06:37:59'), +(82, 'ADD_ACCUMULATE', 100, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(83, 'ADD_ACCUMULATE', 101, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(84, 'ADD_ACCUMULATE', 102, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-19 06:59:36'), +(85, 'ADD_ACCUMULATE', 103, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(86, 'ADD_ACCUMULATE', 105, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(87, 'ADD_ACCUMULATE', 107, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(88, 'ADD_ACCUMULATE', 109, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(89, 'ADD_ACCUMULATE', 111, NULL, '{\"report_date\":\"2025-06-19\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-19 07:01:02'), +(90, 'ADD_ACCUMULATE', 113, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(91, 'ADD_ACCUMULATE', 115, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(92, 'ADD_ACCUMULATE', 117, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:01'), +(93, 'ADD_ACCUMULATE', 119, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(94, 'ADD_ACCUMULATE', 121, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(95, 'ADD_ACCUMULATE', 123, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-20 06:44:02'), +(96, 'ADD_ACCUMULATE', 125, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-20 06:45:30'), +(97, 'ADD_ACCUMULATE', 126, NULL, '{\"report_date\":\"2025-06-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-20 06:45:31'), +(98, 'ADD_ACCUMULATE', 127, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-23 06:42:58'), +(99, 'ADD_ACCUMULATE', 128, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-23 06:42:58'), +(100, 'ADD_ACCUMULATE', 129, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(101, 'ADD_ACCUMULATE', 131, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(102, 'ADD_ACCUMULATE', 133, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(103, 'ADD_ACCUMULATE', 135, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(104, 'ADD_ACCUMULATE', 137, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(105, 'ADD_ACCUMULATE', 139, NULL, '{\"report_date\":\"2025-06-23\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-23 06:51:28'), +(106, 'ADD_ACCUMULATE', 141, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-24 11:10:32'), +(107, 'ADD_ACCUMULATE', 142, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-24 11:10:32'), +(108, 'ADD_ACCUMULATE', 143, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(109, 'ADD_ACCUMULATE', 145, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(110, 'ADD_ACCUMULATE', 147, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(111, 'ADD_ACCUMULATE', 149, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(112, 'ADD_ACCUMULATE', 151, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(113, 'ADD_ACCUMULATE', 153, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:00'), +(114, 'ADD_ACCUMULATE', 155, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:05'), +(115, 'ADD_ACCUMULATE', 157, NULL, '{\"report_date\":\"2025-06-24\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-24 11:11:05'), +(116, 'ADD_ACCUMULATE', 159, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-25 11:08:04'), +(117, 'ADD_ACCUMULATE', 161, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-25 11:08:05'), +(118, 'ADD_ACCUMULATE', 163, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(119, 'ADD_ACCUMULATE', 164, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(120, 'ADD_ACCUMULATE', 165, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(121, 'ADD_ACCUMULATE', 166, NULL, '{\"report_date\":\"2025-06-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-25 11:11:30'), +(122, 'ADD_ACCUMULATE', 167, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(123, 'ADD_ACCUMULATE', 168, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(124, 'ADD_ACCUMULATE', 169, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(125, 'ADD_ACCUMULATE', 170, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(126, 'ADD_ACCUMULATE', 171, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-26 10:29:38'), +(127, 'ADD_ACCUMULATE', 172, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:31'), +(128, 'ADD_ACCUMULATE', 174, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:32'), +(129, 'ADD_ACCUMULATE', 176, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-26 11:11:32'), +(130, 'ADD_ACCUMULATE', 178, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-26 11:19:34'), +(131, 'ADD_ACCUMULATE', 179, NULL, '{\"report_date\":\"2025-06-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-26 11:19:34'), +(132, 'ADD_ACCUMULATE', 180, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:21'), +(133, 'ADD_ACCUMULATE', 181, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:21'), +(134, 'ADD_ACCUMULATE', 182, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 01:54:40'), +(135, 'ADD_ACCUMULATE', 183, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(136, 'ADD_ACCUMULATE', 184, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(137, 'ADD_ACCUMULATE', 185, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(138, 'ADD_ACCUMULATE', 186, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(139, 'ADD_ACCUMULATE', 187, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(140, 'ADD_ACCUMULATE', 188, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-06-27 06:47:43'), +(141, 'ADD_ACCUMULATE', 189, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:49:08'), +(142, 'ADD_ACCUMULATE', 190, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:49:08'), +(143, 'DELETE_SINGLE', 190, '{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 6, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:58:25'), +(144, 'ADD_ACCUMULATE', 191, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"4.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-06-27 06:58:46'), +(145, 'DELETE_SINGLE', 181, '{\"worker_name\":\"박현수\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:59:37'), +(146, 'DELETE_SINGLE', 180, '{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}', NULL, 5, '개별 항목 삭제', NULL, NULL, '2025-06-27 06:59:42'), +(147, 'ADD_ACCUMULATE', 192, NULL, '{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"6.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-06-27 07:00:10'), +(148, 'ADD_ACCUMULATE', 193, NULL, '{\"report_date\":\"2025-06-30\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:37:29'), +(149, 'ADD_ACCUMULATE', 195, NULL, '{\"report_date\":\"2025-06-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:38:19'), +(150, 'ADD_ACCUMULATE', 196, NULL, '{\"report_date\":\"2025-06-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:38:19'), +(151, 'ADD_ACCUMULATE', 197, NULL, '{\"report_date\":\"2025-06-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:38:19'), +(152, 'ADD_ACCUMULATE', 198, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(153, 'ADD_ACCUMULATE', 199, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(154, 'ADD_ACCUMULATE', 200, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(155, 'ADD_ACCUMULATE', 201, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(156, 'ADD_ACCUMULATE', 202, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(157, 'ADD_ACCUMULATE', 203, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:21'), +(158, 'ADD_ACCUMULATE', 204, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:48'), +(159, 'ADD_ACCUMULATE', 205, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:48'), +(160, 'ADD_ACCUMULATE', 206, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:48'), +(161, 'ADD_ACCUMULATE', 207, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:39:48'), +(162, 'ADD_ACCUMULATE', 208, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:40:10'), +(163, 'ADD_ACCUMULATE', 209, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:40:10'), +(164, 'ADD_ACCUMULATE', 210, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:42:57'), +(165, 'ADD_ACCUMULATE', 212, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:42:57'), +(166, 'ADD_ACCUMULATE', 214, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:42:57'), +(167, 'ADD_ACCUMULATE', 216, NULL, '{\"report_date\":\"2025-07-01\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:42:57'), +(168, 'ADD_ACCUMULATE', 218, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(169, 'ADD_ACCUMULATE', 219, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(170, 'ADD_ACCUMULATE', 220, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(171, 'ADD_ACCUMULATE', 221, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(172, 'ADD_ACCUMULATE', 222, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(173, 'ADD_ACCUMULATE', 223, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(174, 'ADD_ACCUMULATE', 224, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:43:36'), +(175, 'ADD_ACCUMULATE', 225, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:44:11'); +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(176, 'ADD_ACCUMULATE', 227, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:44:11'), +(177, 'ADD_ACCUMULATE', 229, NULL, '{\"report_date\":\"2025-07-02\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:44:11'), +(178, 'ADD_ACCUMULATE', 231, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:45:44'), +(179, 'ADD_ACCUMULATE', 232, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:45:45'), +(180, 'ADD_ACCUMULATE', 233, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:45:45'), +(181, 'ADD_ACCUMULATE', 234, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:45:45'), +(182, 'ADD_ACCUMULATE', 235, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:07'), +(183, 'ADD_ACCUMULATE', 236, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:07'), +(184, 'ADD_ACCUMULATE', 237, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:08'), +(185, 'ADD_ACCUMULATE', 238, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:08'), +(186, 'ADD_ACCUMULATE', 239, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:08'), +(187, 'ADD_ACCUMULATE', 240, NULL, '{\"report_date\":\"2025-07-03\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:46:08'), +(188, 'ADD_ACCUMULATE', 241, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(189, 'ADD_ACCUMULATE', 243, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(190, 'ADD_ACCUMULATE', 245, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(191, 'ADD_ACCUMULATE', 247, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(192, 'ADD_ACCUMULATE', 249, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(193, 'ADD_ACCUMULATE', 251, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(194, 'ADD_ACCUMULATE', 253, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(195, 'ADD_ACCUMULATE', 255, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(196, 'ADD_ACCUMULATE', 257, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(197, 'ADD_ACCUMULATE', 259, NULL, '{\"report_date\":\"2025-07-04\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-05 01:51:47'), +(198, 'ADD_ACCUMULATE', 261, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:38'), +(199, 'ADD_ACCUMULATE', 262, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:38'), +(200, 'ADD_ACCUMULATE', 263, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:39'), +(201, 'ADD_ACCUMULATE', 264, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:39'), +(202, 'ADD_ACCUMULATE', 265, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:39'), +(203, 'ADD_ACCUMULATE', 266, NULL, '{\"report_date\":\"2025-07-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-05 05:36:39'), +(204, 'ADD_ACCUMULATE', 267, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(205, 'ADD_ACCUMULATE', 268, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(206, 'ADD_ACCUMULATE', 269, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(207, 'ADD_ACCUMULATE', 270, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(208, 'ADD_ACCUMULATE', 271, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(209, 'ADD_ACCUMULATE', 272, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(210, 'ADD_ACCUMULATE', 273, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(211, 'ADD_ACCUMULATE', 274, NULL, '{\"report_date\":\"2025-07-06\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-06 05:34:32'), +(212, 'ADD_ACCUMULATE', 275, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(213, 'ADD_ACCUMULATE', 276, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(214, 'ADD_ACCUMULATE', 277, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(215, 'ADD_ACCUMULATE', 278, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(216, 'ADD_ACCUMULATE', 279, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(217, 'ADD_ACCUMULATE', 280, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(218, 'ADD_ACCUMULATE', 281, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(219, 'ADD_ACCUMULATE', 282, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(220, 'ADD_ACCUMULATE', 283, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(221, 'ADD_ACCUMULATE', 284, NULL, '{\"report_date\":\"2025-07-07\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-07-07 06:49:31'), +(222, 'ADD_ACCUMULATE', 285, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:57'), +(223, 'ADD_ACCUMULATE', 286, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(224, 'ADD_ACCUMULATE', 287, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(225, 'ADD_ACCUMULATE', 288, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(226, 'ADD_ACCUMULATE', 289, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(227, 'ADD_ACCUMULATE', 290, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(228, 'ADD_ACCUMULATE', 291, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(229, 'ADD_ACCUMULATE', 292, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(230, 'ADD_ACCUMULATE', 293, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(231, 'ADD_ACCUMULATE', 294, NULL, '{\"report_date\":\"2025-07-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-08 06:36:58'), +(232, 'ADD_ACCUMULATE', 295, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:40'), +(233, 'ADD_ACCUMULATE', 296, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:40'), +(234, 'ADD_ACCUMULATE', 297, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:40'), +(235, 'ADD_ACCUMULATE', 298, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:41'), +(236, 'ADD_ACCUMULATE', 299, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:41'), +(237, 'ADD_ACCUMULATE', 300, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:41'), +(238, 'ADD_ACCUMULATE', 301, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:42'), +(239, 'ADD_ACCUMULATE', 302, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:42'), +(240, 'ADD_ACCUMULATE', 303, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:08:42'), +(241, 'ADD_ACCUMULATE', 304, NULL, '{\"report_date\":\"2025-07-09\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-09 22:09:10'), +(242, 'ADD_ACCUMULATE', 305, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:58'), +(243, 'ADD_ACCUMULATE', 306, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:58'), +(244, 'ADD_ACCUMULATE', 307, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:58'), +(245, 'ADD_ACCUMULATE', 308, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(246, 'ADD_ACCUMULATE', 309, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(247, 'ADD_ACCUMULATE', 310, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(248, 'ADD_ACCUMULATE', 311, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(249, 'ADD_ACCUMULATE', 312, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(250, 'ADD_ACCUMULATE', 313, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(251, 'ADD_ACCUMULATE', 314, NULL, '{\"report_date\":\"2025-07-10\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-10 06:33:59'), +(252, 'ADD_ACCUMULATE', 315, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(253, 'ADD_ACCUMULATE', 316, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(254, 'ADD_ACCUMULATE', 317, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(255, 'ADD_ACCUMULATE', 318, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(256, 'ADD_ACCUMULATE', 319, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(257, 'ADD_ACCUMULATE', 320, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(258, 'ADD_ACCUMULATE', 321, NULL, '{\"report_date\":\"2025-07-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-12 05:41:30'), +(259, 'ADD_ACCUMULATE', 322, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:30'), +(260, 'ADD_ACCUMULATE', 323, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(261, 'ADD_ACCUMULATE', 324, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(262, 'ADD_ACCUMULATE', 325, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(263, 'ADD_ACCUMULATE', 326, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(264, 'ADD_ACCUMULATE', 327, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(265, 'ADD_ACCUMULATE', 328, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(266, 'ADD_ACCUMULATE', 329, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(267, 'ADD_ACCUMULATE', 330, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-14 06:46:57'), +(268, 'ADD_ACCUMULATE', 331, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:57:06'), +(269, 'ADD_ACCUMULATE', 332, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:57:06'), +(270, 'ADD_ACCUMULATE', 333, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:57:47'), +(271, 'ADD_ACCUMULATE', 335, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(272, 'ADD_ACCUMULATE', 336, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(273, 'ADD_ACCUMULATE', 337, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(274, 'ADD_ACCUMULATE', 338, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(275, 'ADD_ACCUMULATE', 339, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(276, 'ADD_ACCUMULATE', 340, NULL, '{\"report_date\":\"2025-07-15\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-15 05:58:19'), +(277, 'ADD_ACCUMULATE', 341, NULL, '{\"report_date\":\"2025-07-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-15 06:57:26'), +(278, 'ADD_ACCUMULATE', 342, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":4,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:46:46'), +(279, 'ADD_ACCUMULATE', 345, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":5,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:46:46'), +(280, 'ADD_ACCUMULATE', 348, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":10,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:47:53'), +(281, 'ADD_ACCUMULATE', 351, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":6,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:47:53'), +(282, 'ADD_ACCUMULATE', 354, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:48:32'), +(283, 'ADD_ACCUMULATE', 355, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:48:32'), +(284, 'ADD_ACCUMULATE', 356, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:48:32'), +(285, 'ADD_ACCUMULATE', 357, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-16 06:48:32'), +(286, 'ADD_ACCUMULATE', 358, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-16 06:51:31'), +(287, 'ADD_ACCUMULATE', 359, NULL, '{\"report_date\":\"2025-07-16\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-16 06:51:31'), +(288, 'ADD_ACCUMULATE', 360, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-17 06:45:22'), +(289, 'ADD_ACCUMULATE', 361, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:46:48'), +(290, 'ADD_ACCUMULATE', 363, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:46:48'), +(291, 'ADD_ACCUMULATE', 365, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:46:48'), +(292, 'ADD_ACCUMULATE', 367, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(293, 'ADD_ACCUMULATE', 368, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(294, 'ADD_ACCUMULATE', 369, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(295, 'ADD_ACCUMULATE', 370, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(296, 'ADD_ACCUMULATE', 371, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(297, 'ADD_ACCUMULATE', 372, NULL, '{\"report_date\":\"2025-07-17\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-17 06:47:19'), +(298, 'ADD_ACCUMULATE', 373, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"2.00\",\"grand_total\":2,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"2.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-18 05:54:47'), +(299, 'ADD_ACCUMULATE', 374, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"2.00\",\"grand_total\":2,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"2.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-18 05:54:48'), +(300, 'ADD_ACCUMULATE', 375, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":5,\"work_entries_count\":3,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-18 05:58:33'), +(301, 'DELETE_SINGLE', 375, '{\"worker_name\":\"표영진\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"2.00\",\"report_date\":\"2025-07-18T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-07-18 05:58:49'), +(302, 'ADD_ACCUMULATE', 378, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-18 05:59:42'), +(303, 'ADD_ACCUMULATE', 379, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-18 06:00:15'), +(304, 'ADD_ACCUMULATE', 380, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(305, 'ADD_ACCUMULATE', 381, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(306, 'ADD_ACCUMULATE', 382, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(307, 'ADD_ACCUMULATE', 383, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(308, 'ADD_ACCUMULATE', 384, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(309, 'ADD_ACCUMULATE', 385, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(310, 'ADD_ACCUMULATE', 386, NULL, '{\"report_date\":\"2025-07-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-18 06:36:13'), +(311, 'ADD_ACCUMULATE', 387, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:08'), +(312, 'ADD_ACCUMULATE', 389, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:08'), +(313, 'ADD_ACCUMULATE', 391, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(314, 'ADD_ACCUMULATE', 392, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(315, 'ADD_ACCUMULATE', 393, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(316, 'ADD_ACCUMULATE', 394, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(317, 'ADD_ACCUMULATE', 395, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(318, 'ADD_ACCUMULATE', 396, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(319, 'ADD_ACCUMULATE', 397, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-21 06:40:32'), +(320, 'ADD_ACCUMULATE', 398, NULL, '{\"report_date\":\"2025-07-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-21 06:53:37'), +(321, 'ADD_ACCUMULATE', 399, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:47'), +(322, 'ADD_ACCUMULATE', 400, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(323, 'ADD_ACCUMULATE', 401, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(324, 'ADD_ACCUMULATE', 402, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(325, 'ADD_ACCUMULATE', 403, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(326, 'ADD_ACCUMULATE', 404, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(327, 'ADD_ACCUMULATE', 405, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:45:48'), +(328, 'ADD_ACCUMULATE', 406, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-22 06:46:11'), +(329, 'ADD_ACCUMULATE', 407, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-22 06:46:11'), +(330, 'ADD_ACCUMULATE', 408, NULL, '{\"report_date\":\"2025-07-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-22 06:46:11'), +(331, 'ADD_ACCUMULATE', 409, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:06'), +(332, 'ADD_ACCUMULATE', 410, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:28'), +(333, 'ADD_ACCUMULATE', 411, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:28'), +(334, 'ADD_ACCUMULATE', 412, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(335, 'ADD_ACCUMULATE', 413, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(336, 'ADD_ACCUMULATE', 414, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(337, 'ADD_ACCUMULATE', 415, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(338, 'ADD_ACCUMULATE', 416, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(339, 'ADD_ACCUMULATE', 417, NULL, '{\"report_date\":\"2025-07-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-23 06:45:30'), +(340, 'ADD_ACCUMULATE', 418, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:36:55'), +(341, 'ADD_ACCUMULATE', 419, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(342, 'ADD_ACCUMULATE', 420, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(343, 'ADD_ACCUMULATE', 421, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(344, 'ADD_ACCUMULATE', 422, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(345, 'ADD_ACCUMULATE', 423, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(346, 'ADD_ACCUMULATE', 424, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-24 06:37:18'), +(347, 'ADD_ACCUMULATE', 425, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-24 06:47:04'), +(348, 'ADD_ACCUMULATE', 426, NULL, '{\"report_date\":\"2025-07-24\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-24 06:47:04'); +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(349, 'ADD_ACCUMULATE', 427, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:44:23'), +(350, 'ADD_ACCUMULATE', 428, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(351, 'ADD_ACCUMULATE', 429, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(352, 'ADD_ACCUMULATE', 430, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(353, 'ADD_ACCUMULATE', 431, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(354, 'ADD_ACCUMULATE', 432, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(355, 'ADD_ACCUMULATE', 433, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:15'), +(356, 'ADD_ACCUMULATE', 434, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:18'), +(357, 'ADD_ACCUMULATE', 435, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:19'), +(358, 'ADD_ACCUMULATE', 436, NULL, '{\"report_date\":\"2025-07-25\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-25 06:45:19'), +(359, 'ADD_ACCUMULATE', 437, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-28 06:30:39'), +(360, 'ADD_ACCUMULATE', 438, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-28 06:30:39'), +(361, 'ADD_ACCUMULATE', 439, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-28 06:30:39'), +(362, 'ADD_ACCUMULATE', 440, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:08'), +(363, 'ADD_ACCUMULATE', 442, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(364, 'ADD_ACCUMULATE', 443, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(365, 'ADD_ACCUMULATE', 444, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(366, 'ADD_ACCUMULATE', 445, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(367, 'ADD_ACCUMULATE', 446, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(368, 'ADD_ACCUMULATE', 447, NULL, '{\"report_date\":\"2025-07-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-28 06:33:34'), +(369, 'ADD_ACCUMULATE', 448, NULL, '{\"report_date\":\"2025-07-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-29 06:39:13'), +(370, 'ADD_ACCUMULATE', 449, NULL, '{\"report_date\":\"2025-07-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-29 06:39:13'), +(371, 'ADD_ACCUMULATE', 450, NULL, '{\"report_date\":\"2025-07-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-29 06:39:13'), +(372, 'ADD_ACCUMULATE', 451, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-30 06:50:30'), +(373, 'ADD_ACCUMULATE', 452, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-30 06:50:30'), +(374, 'ADD_ACCUMULATE', 453, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-30 06:50:30'), +(375, 'ADD_ACCUMULATE', 454, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(376, 'ADD_ACCUMULATE', 455, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(377, 'ADD_ACCUMULATE', 456, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(378, 'ADD_ACCUMULATE', 457, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(379, 'ADD_ACCUMULATE', 458, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(380, 'ADD_ACCUMULATE', 459, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(381, 'ADD_ACCUMULATE', 460, NULL, '{\"report_date\":\"2025-07-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-30 06:52:16'), +(382, 'ADD_ACCUMULATE', 461, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:42:56'), +(383, 'ADD_ACCUMULATE', 462, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:43:32'), +(384, 'ADD_ACCUMULATE', 464, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:43:32'), +(385, 'ADD_ACCUMULATE', 466, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(386, 'ADD_ACCUMULATE', 467, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(387, 'ADD_ACCUMULATE', 468, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(388, 'ADD_ACCUMULATE', 469, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(389, 'ADD_ACCUMULATE', 470, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(390, 'ADD_ACCUMULATE', 471, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(391, 'ADD_ACCUMULATE', 472, NULL, '{\"report_date\":\"2025-07-31\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-07-31 06:44:00'), +(392, 'ADD_ACCUMULATE', 473, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(393, 'ADD_ACCUMULATE', 474, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(394, 'ADD_ACCUMULATE', 475, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(395, 'ADD_ACCUMULATE', 476, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(396, 'ADD_ACCUMULATE', 477, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(397, 'ADD_ACCUMULATE', 478, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(398, 'ADD_ACCUMULATE', 479, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(399, 'ADD_ACCUMULATE', 480, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(400, 'ADD_ACCUMULATE', 481, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(401, 'ADD_ACCUMULATE', 482, NULL, '{\"report_date\":\"2025-07-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-07-31 22:24:47'), +(402, 'ADD_ACCUMULATE', 483, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(403, 'ADD_ACCUMULATE', 484, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(404, 'ADD_ACCUMULATE', 485, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(405, 'ADD_ACCUMULATE', 486, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(406, 'ADD_ACCUMULATE', 487, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(407, 'ADD_ACCUMULATE', 488, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:47'), +(408, 'ADD_ACCUMULATE', 489, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-01 04:57:48'), +(409, 'ADD_ACCUMULATE', 490, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-01 05:02:28'), +(410, 'ADD_ACCUMULATE', 492, NULL, '{\"report_date\":\"2025-08-01\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-01 05:02:28'), +(411, 'ADD_ACCUMULATE', 494, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:42:39'), +(412, 'ADD_ACCUMULATE', 496, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:42:39'), +(413, 'ADD_ACCUMULATE', 498, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:14'), +(414, 'ADD_ACCUMULATE', 499, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:15'), +(415, 'ADD_ACCUMULATE', 500, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:15'), +(416, 'ADD_ACCUMULATE', 501, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:39'), +(417, 'ADD_ACCUMULATE', 502, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:39'), +(418, 'ADD_ACCUMULATE', 503, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:39'), +(419, 'ADD_ACCUMULATE', 504, NULL, '{\"report_date\":\"2025-08-07\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-07 06:43:52'), +(420, 'ADD_ACCUMULATE', 505, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-08 06:45:20'), +(421, 'ADD_ACCUMULATE', 506, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:58:42'), +(422, 'ADD_ACCUMULATE', 507, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:58:42'), +(423, 'ADD_ACCUMULATE', 508, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:59:18'), +(424, 'ADD_ACCUMULATE', 509, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:59:19'), +(425, 'ADD_ACCUMULATE', 510, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:59:19'), +(426, 'ADD_ACCUMULATE', 511, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:59:19'), +(427, 'ADD_ACCUMULATE', 512, NULL, '{\"report_date\":\"2025-08-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-08 06:59:19'), +(428, 'ADD_ACCUMULATE', 513, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-11 06:27:37'), +(429, 'ADD_ACCUMULATE', 514, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"16.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"16.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-11 06:27:37'), +(430, 'ADD_ACCUMULATE', 515, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:23'), +(431, 'ADD_ACCUMULATE', 516, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:23'), +(432, 'ADD_ACCUMULATE', 517, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:49'), +(433, 'ADD_ACCUMULATE', 518, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:49'), +(434, 'ADD_ACCUMULATE', 519, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:50'), +(435, 'ADD_ACCUMULATE', 520, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:50'), +(436, 'ADD_ACCUMULATE', 521, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:50'), +(437, 'ADD_ACCUMULATE', 522, NULL, '{\"report_date\":\"2025-08-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-11 06:46:50'), +(438, 'ADD_ACCUMULATE', 523, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(439, 'ADD_ACCUMULATE', 524, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(440, 'ADD_ACCUMULATE', 525, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(441, 'ADD_ACCUMULATE', 526, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(442, 'ADD_ACCUMULATE', 527, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(443, 'ADD_ACCUMULATE', 528, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(444, 'ADD_ACCUMULATE', 529, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(445, 'ADD_ACCUMULATE', 530, NULL, '{\"report_date\":\"2025-08-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-12 06:47:24'), +(446, 'ADD_ACCUMULATE', 531, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-13 06:31:32'), +(447, 'ADD_ACCUMULATE', 532, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:13'), +(448, 'ADD_ACCUMULATE', 534, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(449, 'ADD_ACCUMULATE', 535, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(450, 'ADD_ACCUMULATE', 536, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(451, 'ADD_ACCUMULATE', 537, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(452, 'ADD_ACCUMULATE', 538, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(453, 'ADD_ACCUMULATE', 539, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(454, 'ADD_ACCUMULATE', 540, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:36:48'), +(455, 'ADD_ACCUMULATE', 541, NULL, '{\"report_date\":\"2025-08-13\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-13 06:37:19'), +(456, 'ADD_ACCUMULATE', 542, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-14 06:35:27'), +(457, 'ADD_ACCUMULATE', 544, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:39:03'), +(458, 'ADD_ACCUMULATE', 546, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:39:44'), +(459, 'ADD_ACCUMULATE', 548, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(460, 'ADD_ACCUMULATE', 549, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(461, 'ADD_ACCUMULATE', 550, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(462, 'ADD_ACCUMULATE', 551, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(463, 'ADD_ACCUMULATE', 552, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(464, 'ADD_ACCUMULATE', 553, NULL, '{\"report_date\":\"2025-08-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-14 06:40:10'), +(465, 'ADD_ACCUMULATE', 554, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-18 06:21:36'), +(466, 'ADD_ACCUMULATE', 555, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-18 06:21:36'), +(467, 'ADD_ACCUMULATE', 556, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-18 06:22:01'), +(468, 'ADD_ACCUMULATE', 557, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-18 06:22:53'), +(469, 'ADD_ACCUMULATE', 559, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-18 06:23:34'), +(470, 'ADD_ACCUMULATE', 561, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:41:24'), +(471, 'ADD_ACCUMULATE', 562, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:41:24'), +(472, 'ADD_ACCUMULATE', 563, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:41:24'), +(473, 'ADD_ACCUMULATE', 564, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:43:10'), +(474, 'ADD_ACCUMULATE', 565, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:43:10'), +(475, 'ADD_ACCUMULATE', 566, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-18 06:43:10'), +(476, 'ADD_ACCUMULATE', 567, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-18 06:43:35'), +(477, 'ADD_ACCUMULATE', 568, NULL, '{\"report_date\":\"2025-08-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-18 06:43:35'), +(478, 'ADD_ACCUMULATE', 569, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"6.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:02:49'), +(479, 'ADD_ACCUMULATE', 570, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:03:30'), +(480, 'ADD_ACCUMULATE', 571, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:03:30'), +(481, 'ADD_ACCUMULATE', 572, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:03:30'), +(482, 'ADD_ACCUMULATE', 573, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:03:30'), +(483, 'ADD_ACCUMULATE', 574, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:04:05'), +(484, 'ADD_ACCUMULATE', 575, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:04:05'), +(485, 'ADD_ACCUMULATE', 576, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:04:05'), +(486, 'ADD_ACCUMULATE', 577, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:04:05'), +(487, 'ADD_ACCUMULATE', 578, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-19 08:04:05'), +(488, 'ADD_ACCUMULATE', 579, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-19 08:36:51'), +(489, 'ADD_ACCUMULATE', 580, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-19 08:36:51'), +(490, 'ADD_ACCUMULATE', 581, NULL, '{\"report_date\":\"2025-08-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-19 08:36:51'), +(491, 'ADD_ACCUMULATE', 582, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-20 06:19:36'), +(492, 'ADD_ACCUMULATE', 583, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-20 06:21:28'), +(493, 'ADD_ACCUMULATE', 585, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-20 06:21:28'), +(494, 'ADD_ACCUMULATE', 587, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:43:46'), +(495, 'ADD_ACCUMULATE', 588, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:23'), +(496, 'ADD_ACCUMULATE', 589, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:23'), +(497, 'ADD_ACCUMULATE', 590, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:23'), +(498, 'ADD_ACCUMULATE', 591, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:24'), +(499, 'ADD_ACCUMULATE', 592, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:24'), +(500, 'ADD_ACCUMULATE', 593, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:24'), +(501, 'ADD_ACCUMULATE', 594, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:26'), +(502, 'ADD_ACCUMULATE', 595, NULL, '{\"report_date\":\"2025-08-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-20 06:44:26'), +(503, 'ADD_ACCUMULATE', 596, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-21 06:30:36'), +(504, 'ADD_ACCUMULATE', 597, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-21 06:30:36'), +(505, 'ADD_ACCUMULATE', 598, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:50:38'), +(506, 'ADD_ACCUMULATE', 599, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:50:38'), +(507, 'ADD_ACCUMULATE', 600, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:51:23'), +(508, 'ADD_ACCUMULATE', 602, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:51:23'), +(509, 'ADD_ACCUMULATE', 604, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:51:23'), +(510, 'ADD_ACCUMULATE', 606, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:51:23'), +(511, 'ADD_ACCUMULATE', 608, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:54:46'), +(512, 'ADD_ACCUMULATE', 610, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-21 07:55:25'), +(513, 'ADD_ACCUMULATE', 612, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-21 08:24:50'), +(514, 'ADD_ACCUMULATE', 613, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-21 08:24:50'), +(515, 'ADD_ACCUMULATE', 614, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-22 06:21:15'), +(516, 'ADD_ACCUMULATE', 615, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-22 06:23:12'), +(517, 'ADD_ACCUMULATE', 617, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-22 06:23:55'), +(518, 'ADD_ACCUMULATE', 618, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:27:43'), +(519, 'ADD_ACCUMULATE', 619, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'); +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(520, 'ADD_ACCUMULATE', 620, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'), +(521, 'ADD_ACCUMULATE', 621, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'), +(522, 'ADD_ACCUMULATE', 622, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'), +(523, 'ADD_ACCUMULATE', 623, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'), +(524, 'ADD_ACCUMULATE', 624, NULL, '{\"report_date\":\"2025-08-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-22 06:28:15'), +(525, 'ADD_ACCUMULATE', 625, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:02'), +(526, 'ADD_ACCUMULATE', 627, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:25'), +(527, 'ADD_ACCUMULATE', 628, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(528, 'ADD_ACCUMULATE', 629, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(529, 'ADD_ACCUMULATE', 630, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(530, 'ADD_ACCUMULATE', 631, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(531, 'ADD_ACCUMULATE', 632, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(532, 'ADD_ACCUMULATE', 633, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(533, 'ADD_ACCUMULATE', 634, NULL, '{\"report_date\":\"2025-08-23\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-23 04:57:54'), +(534, 'ADD_ACCUMULATE', 635, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(535, 'ADD_ACCUMULATE', 636, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(536, 'ADD_ACCUMULATE', 637, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(537, 'ADD_ACCUMULATE', 638, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(538, 'ADD_ACCUMULATE', 639, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(539, 'ADD_ACCUMULATE', 640, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(540, 'ADD_ACCUMULATE', 641, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(541, 'ADD_ACCUMULATE', 642, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(542, 'ADD_ACCUMULATE', 643, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(543, 'ADD_ACCUMULATE', 644, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-25 06:48:34'), +(544, 'ADD_ACCUMULATE', 645, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-25 06:49:16'), +(545, 'ADD_ACCUMULATE', 646, NULL, '{\"report_date\":\"2025-08-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-25 06:49:17'), +(546, 'ADD_ACCUMULATE', 647, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:28:03'), +(547, 'ADD_ACCUMULATE', 649, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:28:35'), +(548, 'ADD_ACCUMULATE', 650, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(549, 'ADD_ACCUMULATE', 651, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(550, 'ADD_ACCUMULATE', 652, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(551, 'ADD_ACCUMULATE', 653, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(552, 'ADD_ACCUMULATE', 654, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(553, 'ADD_ACCUMULATE', 655, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(554, 'ADD_ACCUMULATE', 656, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:02'), +(555, 'ADD_ACCUMULATE', 657, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-26 07:29:03'), +(556, 'ADD_ACCUMULATE', 658, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-26 08:22:12'), +(557, 'ADD_ACCUMULATE', 659, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-26 08:22:12'), +(558, 'ADD_ACCUMULATE', 660, NULL, '{\"report_date\":\"2025-08-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-26 08:22:12'), +(559, 'ADD_ACCUMULATE', 661, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(560, 'ADD_ACCUMULATE', 662, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(561, 'ADD_ACCUMULATE', 663, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(562, 'ADD_ACCUMULATE', 664, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(563, 'ADD_ACCUMULATE', 665, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(564, 'ADD_ACCUMULATE', 666, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(565, 'ADD_ACCUMULATE', 667, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:47'), +(566, 'ADD_ACCUMULATE', 668, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-27 06:44:48'), +(567, 'ADD_ACCUMULATE', 669, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-27 06:45:32'), +(568, 'ADD_ACCUMULATE', 671, NULL, '{\"report_date\":\"2025-08-27\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-27 06:45:32'), +(569, 'ADD_ACCUMULATE', 673, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-28 08:31:42'), +(570, 'ADD_ACCUMULATE', 675, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-28 08:31:42'), +(571, 'ADD_ACCUMULATE', 677, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-28 08:31:42'), +(572, 'ADD_ACCUMULATE', 679, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-28 08:31:42'), +(573, 'ADD_ACCUMULATE', 681, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:37:46'), +(574, 'ADD_ACCUMULATE', 683, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:38:15'), +(575, 'ADD_ACCUMULATE', 685, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:38:50'), +(576, 'ADD_ACCUMULATE', 687, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:39:24'), +(577, 'ADD_ACCUMULATE', 688, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(578, 'ADD_ACCUMULATE', 689, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(579, 'ADD_ACCUMULATE', 690, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(580, 'ADD_ACCUMULATE', 691, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(581, 'ADD_ACCUMULATE', 692, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(582, 'ADD_ACCUMULATE', 693, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:40:00'), +(583, 'ADD_ACCUMULATE', 694, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:44:56'), +(584, 'ADD_ACCUMULATE', 695, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:44:56'), +(585, 'ADD_ACCUMULATE', 696, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:44:56'), +(586, 'ADD_ACCUMULATE', 697, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(587, 'ADD_ACCUMULATE', 698, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(588, 'ADD_ACCUMULATE', 699, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(589, 'ADD_ACCUMULATE', 700, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(590, 'ADD_ACCUMULATE', 701, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(591, 'ADD_ACCUMULATE', 702, NULL, '{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-28 08:45:19'), +(592, 'DELETE', 693, '{\"id\":693,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:05'), +(593, 'DELETE', 702, '{\"id\":702,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:16'), +(594, 'DELETE', 697, '{\"id\":697,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:26'), +(595, 'DELETE', 688, '{\"id\":688,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:32'), +(596, 'DELETE', 691, '{\"id\":691,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:41'), +(597, 'DELETE', 700, '{\"id\":700,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:48'), +(598, 'DELETE', 692, '{\"id\":692,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:46:56'), +(599, 'DELETE', 701, '{\"id\":701,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-28 08:47:01'), +(600, 'ADD_ACCUMULATE', 703, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(601, 'ADD_ACCUMULATE', 704, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(602, 'ADD_ACCUMULATE', 705, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(603, 'ADD_ACCUMULATE', 706, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(604, 'ADD_ACCUMULATE', 707, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(605, 'ADD_ACCUMULATE', 708, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(606, 'ADD_ACCUMULATE', 709, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(607, 'ADD_ACCUMULATE', 710, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:02'), +(608, 'ADD_ACCUMULATE', 711, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:35'), +(609, 'ADD_ACCUMULATE', 713, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:35'), +(610, 'ADD_ACCUMULATE', 715, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:35'), +(611, 'ADD_ACCUMULATE', 717, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-08-29 06:47:35'), +(612, 'DELETE', 705, '{\"id\":705,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":8,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:55:28'), +(613, 'ADD_ACCUMULATE', 719, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-29 21:55:56'), +(614, 'ADD_ACCUMULATE', 720, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-29 21:55:56'), +(615, 'ADD_ACCUMULATE', 721, NULL, '{\"report_date\":\"2025-08-29\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-29 21:55:56'), +(616, 'DELETE', 711, '{\"id\":711,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"6.00\",\"created_at\":\"2025-08-29T06:47:35.000Z\",\"updated_at\":\"2025-08-29T06:47:35.000Z\",\"created_by\":6,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:56:26'), +(617, 'DELETE', 712, '{\"id\":712,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":1,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-29T06:47:35.000Z\",\"updated_at\":\"2025-08-29T06:47:35.000Z\",\"created_by\":6,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:56:43'), +(618, 'DELETE', 707, '{\"id\":707,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:57:03'), +(619, 'DELETE', 708, '{\"id\":708,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:57:16'), +(620, 'DELETE', 709, '{\"id\":709,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-08-29 21:57:26'), +(621, 'ADD_ACCUMULATE', 722, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-30 05:12:03'), +(622, 'ADD_ACCUMULATE', 723, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-30 05:12:03'), +(623, 'ADD_ACCUMULATE', 724, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-08-30 05:12:03'), +(624, 'ADD_ACCUMULATE', 725, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(625, 'ADD_ACCUMULATE', 726, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(626, 'ADD_ACCUMULATE', 727, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(627, 'ADD_ACCUMULATE', 728, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(628, 'ADD_ACCUMULATE', 729, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(629, 'ADD_ACCUMULATE', 730, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(630, 'ADD_ACCUMULATE', 731, NULL, '{\"report_date\":\"2025-08-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-08-30 05:36:49'), +(631, 'ADD_ACCUMULATE', 732, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:18:28'), +(632, 'ADD_ACCUMULATE', 733, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:18:28'), +(633, 'ADD_ACCUMULATE', 734, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:11'), +(634, 'ADD_ACCUMULATE', 735, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:11'), +(635, 'ADD_ACCUMULATE', 736, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:11'), +(636, 'ADD_ACCUMULATE', 737, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:35'), +(637, 'ADD_ACCUMULATE', 738, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:35'), +(638, 'ADD_ACCUMULATE', 739, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:19:35'), +(639, 'ADD_ACCUMULATE', 740, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 06:20:03'), +(640, 'DELETE', 650, '{\"id\":650,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:13:55'), +(641, 'DELETE', 654, '{\"id\":654,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:14:02'), +(642, 'DELETE', 656, '{\"id\":656,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:14:11'), +(643, 'DELETE', 572, '{\"id\":572,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":7,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:15:09'), +(644, 'DELETE', 571, '{\"id\":571,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:15:17'), +(645, 'DELETE', 570, '{\"id\":570,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:15:27'), +(646, 'DELETE', 599, '{\"id\":599,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":7,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:50:38.000Z\",\"updated_at\":\"2025-08-21T07:50:38.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:15:59'), +(647, 'DELETE', 604, '{\"id\":604,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:16:14'), +(648, 'DELETE', 605, '{\"id\":605,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:16:19'), +(649, 'DELETE', 606, '{\"id\":606,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:16:28'), +(650, 'DELETE', 607, '{\"id\":607,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:16:33'), +(651, 'DELETE', 598, '{\"id\":598,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":1,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:50:38.000Z\",\"updated_at\":\"2025-08-21T07:50:38.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:16:54'), +(652, 'ADD_ACCUMULATE', 741, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 23:18:03'), +(653, 'ADD_ACCUMULATE', 742, NULL, '{\"report_date\":\"2025-08-21\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-01 23:18:03'), +(654, 'DELETE', 588, '{\"id\":588,\"report_date\":\"2025-08-20T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-20T06:44:23.000Z\",\"updated_at\":\"2025-08-20T06:44:23.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:26:52'), +(655, 'DELETE', 592, '{\"id\":592,\"report_date\":\"2025-08-20T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-20T06:44:24.000Z\",\"updated_at\":\"2025-08-20T06:44:24.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:26:58'), +(656, 'DELETE', 639, '{\"id\":639,\"report_date\":\"2025-08-25T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-25T06:48:34.000Z\",\"updated_at\":\"2025-08-25T06:48:34.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:27:26'), +(657, 'DELETE', 642, '{\"id\":642,\"report_date\":\"2025-08-25T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-25T06:48:34.000Z\",\"updated_at\":\"2025-08-25T06:48:34.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 3, 'Manual deletion', NULL, NULL, '2025-09-01 23:27:31'), +(658, 'ADD_ACCUMULATE', 743, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:34:20'), +(659, 'ADD_ACCUMULATE', 744, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:34:20'), +(660, 'DELETE_SINGLE', 744, '{\"worker_name\":\"이창호\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-09-02T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-09-02 07:35:18'), +(661, 'DELETE_SINGLE', 743, '{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-09-02T00:00:00.000Z\"}', NULL, 3, '개별 항목 삭제', NULL, NULL, '2025-09-02 07:35:21'), +(662, 'ADD_ACCUMULATE', 745, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(663, 'ADD_ACCUMULATE', 746, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(664, 'ADD_ACCUMULATE', 747, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(665, 'ADD_ACCUMULATE', 748, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(666, 'ADD_ACCUMULATE', 749, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(667, 'ADD_ACCUMULATE', 750, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:04'), +(668, 'ADD_ACCUMULATE', 751, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(669, 'ADD_ACCUMULATE', 752, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(670, 'ADD_ACCUMULATE', 753, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(671, 'ADD_ACCUMULATE', 754, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(672, 'ADD_ACCUMULATE', 755, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(673, 'ADD_ACCUMULATE', 756, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:36:31'), +(674, 'ADD_ACCUMULATE', 757, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:37:19'), +(675, 'ADD_ACCUMULATE', 758, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-02 07:37:19'), +(676, 'ADD_ACCUMULATE', 759, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-02 08:16:14'), +(677, 'ADD_ACCUMULATE', 761, NULL, '{\"report_date\":\"2025-09-02\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-02 08:16:14'), +(678, 'ADD_ACCUMULATE', 763, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:47'), +(679, 'ADD_ACCUMULATE', 764, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:47'); +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(680, 'ADD_ACCUMULATE', 765, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(681, 'ADD_ACCUMULATE', 766, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(682, 'ADD_ACCUMULATE', 767, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(683, 'ADD_ACCUMULATE', 768, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(684, 'ADD_ACCUMULATE', 769, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(685, 'ADD_ACCUMULATE', 770, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-03 06:34:48'), +(686, 'ADD_ACCUMULATE', 771, NULL, '{\"report_date\":\"2025-09-03\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-03 06:44:18'), +(687, 'ADD_ACCUMULATE', 772, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:32'), +(688, 'ADD_ACCUMULATE', 773, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:32'), +(689, 'ADD_ACCUMULATE', 774, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:32'), +(690, 'ADD_ACCUMULATE', 775, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:32'), +(691, 'ADD_ACCUMULATE', 776, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:33'), +(692, 'ADD_ACCUMULATE', 777, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:33'), +(693, 'ADD_ACCUMULATE', 778, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:33'), +(694, 'ADD_ACCUMULATE', 779, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-04 06:41:33'), +(695, 'ADD_ACCUMULATE', 780, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-04 06:48:34'), +(696, 'ADD_ACCUMULATE', 781, NULL, '{\"report_date\":\"2025-09-04\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-04 06:48:34'), +(697, 'ADD_ACCUMULATE', 782, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:30'), +(698, 'ADD_ACCUMULATE', 783, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:30'), +(699, 'ADD_ACCUMULATE', 784, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:30'), +(700, 'ADD_ACCUMULATE', 785, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:31'), +(701, 'ADD_ACCUMULATE', 786, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:31'), +(702, 'ADD_ACCUMULATE', 787, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:31'), +(703, 'ADD_ACCUMULATE', 788, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-05 06:39:31'), +(704, 'ADD_ACCUMULATE', 789, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-05 22:09:55'), +(705, 'ADD_ACCUMULATE', 790, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-05 22:09:55'), +(706, 'ADD_ACCUMULATE', 791, NULL, '{\"report_date\":\"2025-09-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-05 22:09:55'), +(707, 'ADD_ACCUMULATE', 792, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-06 04:21:10'), +(708, 'ADD_ACCUMULATE', 793, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-06 04:21:10'), +(709, 'ADD_ACCUMULATE', 794, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-06 04:21:10'), +(710, 'ADD_ACCUMULATE', 795, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:18'), +(711, 'ADD_ACCUMULATE', 796, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:18'), +(712, 'ADD_ACCUMULATE', 797, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:18'), +(713, 'ADD_ACCUMULATE', 798, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:19'), +(714, 'ADD_ACCUMULATE', 799, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:19'), +(715, 'ADD_ACCUMULATE', 800, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:19'), +(716, 'ADD_ACCUMULATE', 801, NULL, '{\"report_date\":\"2025-09-06\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-06 05:28:19'), +(717, 'ADD_ACCUMULATE', 802, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(718, 'ADD_ACCUMULATE', 803, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(719, 'ADD_ACCUMULATE', 804, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(720, 'ADD_ACCUMULATE', 805, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(721, 'ADD_ACCUMULATE', 806, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(722, 'ADD_ACCUMULATE', 807, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(723, 'ADD_ACCUMULATE', 808, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-08 06:15:43'), +(724, 'ADD_ACCUMULATE', 809, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-08 06:47:37'), +(725, 'ADD_ACCUMULATE', 810, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-08 06:47:37'), +(726, 'ADD_ACCUMULATE', 811, NULL, '{\"report_date\":\"2025-09-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-08 06:47:37'), +(727, 'ADD_ACCUMULATE', 812, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(728, 'ADD_ACCUMULATE', 813, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(729, 'ADD_ACCUMULATE', 814, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(730, 'ADD_ACCUMULATE', 815, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(731, 'ADD_ACCUMULATE', 816, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(732, 'ADD_ACCUMULATE', 817, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(733, 'ADD_ACCUMULATE', 818, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-09 06:03:27'), +(734, 'ADD_ACCUMULATE', 819, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-09 06:44:29'), +(735, 'ADD_ACCUMULATE', 820, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-09 06:44:29'), +(736, 'ADD_ACCUMULATE', 821, NULL, '{\"report_date\":\"2025-09-09\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-09 06:44:29'), +(737, 'ADD_ACCUMULATE', 822, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(738, 'ADD_ACCUMULATE', 823, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(739, 'ADD_ACCUMULATE', 824, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(740, 'ADD_ACCUMULATE', 825, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(741, 'ADD_ACCUMULATE', 826, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(742, 'ADD_ACCUMULATE', 827, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(743, 'ADD_ACCUMULATE', 828, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-10 06:27:52'), +(744, 'ADD_ACCUMULATE', 829, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-10 06:48:43'), +(745, 'ADD_ACCUMULATE', 830, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-10 06:48:43'), +(746, 'ADD_ACCUMULATE', 831, NULL, '{\"report_date\":\"2025-09-10\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-10 06:48:43'), +(747, 'ADD_ACCUMULATE', 832, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:37:11'), +(748, 'ADD_ACCUMULATE', 834, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":4,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:38:24'), +(749, 'ADD_ACCUMULATE', 837, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:39:38'), +(750, 'ADD_ACCUMULATE', 838, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:40:48'), +(751, 'ADD_ACCUMULATE', 839, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:46'), +(752, 'ADD_ACCUMULATE', 840, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:47'), +(753, 'ADD_ACCUMULATE', 841, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:47'), +(754, 'ADD_ACCUMULATE', 842, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:47'), +(755, 'ADD_ACCUMULATE', 843, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:47'), +(756, 'ADD_ACCUMULATE', 844, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 6, '누적 추가 by 반치원 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:47'), +(757, 'ADD_ACCUMULATE', 845, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:51'), +(758, 'ADD_ACCUMULATE', 847, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:51'), +(759, 'ADD_ACCUMULATE', 849, NULL, '{\"report_date\":\"2025-09-11\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-11 06:41:51'), +(760, 'DELETE', 849, '{\"id\":849,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"4.00\",\"created_at\":\"2025-09-11T06:41:51.000Z\",\"updated_at\":\"2025-09-11T06:41:51.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-09-11 06:42:40'), +(761, 'DELETE', 850, '{\"id\":850,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"4.00\",\"created_at\":\"2025-09-11T06:41:51.000Z\",\"updated_at\":\"2025-09-11T06:41:51.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-09-11 06:42:49'), +(762, 'DELETE', 839, '{\"id\":839,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-11T06:41:46.000Z\",\"updated_at\":\"2025-09-11T06:41:46.000Z\",\"created_by\":6,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-09-11 06:43:07'), +(763, 'DELETE', 837, '{\"id\":837,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":8,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-11T06:39:38.000Z\",\"updated_at\":\"2025-09-11T06:39:38.000Z\",\"created_by\":5,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-09-11 06:43:16'), +(764, 'ADD_ACCUMULATE', 851, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(765, 'ADD_ACCUMULATE', 852, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(766, 'ADD_ACCUMULATE', 853, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(767, 'ADD_ACCUMULATE', 854, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(768, 'ADD_ACCUMULATE', 855, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(769, 'ADD_ACCUMULATE', 856, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(770, 'ADD_ACCUMULATE', 857, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(771, 'ADD_ACCUMULATE', 858, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(772, 'ADD_ACCUMULATE', 859, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(773, 'ADD_ACCUMULATE', 860, NULL, '{\"report_date\":\"2025-09-12\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-12 06:45:29'), +(774, 'ADD_ACCUMULATE', 861, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(775, 'ADD_ACCUMULATE', 862, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(776, 'ADD_ACCUMULATE', 863, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(777, 'ADD_ACCUMULATE', 864, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(778, 'ADD_ACCUMULATE', 865, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(779, 'ADD_ACCUMULATE', 866, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(780, 'ADD_ACCUMULATE', 867, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(781, 'ADD_ACCUMULATE', 868, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(782, 'ADD_ACCUMULATE', 869, NULL, '{\"report_date\":\"2025-09-13\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-13 06:38:14'), +(783, 'ADD_ACCUMULATE', 870, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:40'), +(784, 'ADD_ACCUMULATE', 871, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:40'), +(785, 'ADD_ACCUMULATE', 872, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:40'), +(786, 'ADD_ACCUMULATE', 873, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:40'), +(787, 'ADD_ACCUMULATE', 874, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:41'), +(788, 'ADD_ACCUMULATE', 875, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:41'), +(789, 'ADD_ACCUMULATE', 876, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:41'), +(790, 'ADD_ACCUMULATE', 877, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:41'), +(791, 'ADD_ACCUMULATE', 878, NULL, '{\"report_date\":\"2025-09-14\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-14 04:47:41'), +(792, 'ADD_ACCUMULATE', 879, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:00'), +(793, 'ADD_ACCUMULATE', 880, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:00'), +(794, 'ADD_ACCUMULATE', 881, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:00'), +(795, 'ADD_ACCUMULATE', 882, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:00'), +(796, 'ADD_ACCUMULATE', 883, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(797, 'ADD_ACCUMULATE', 884, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(798, 'ADD_ACCUMULATE', 885, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(799, 'ADD_ACCUMULATE', 886, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(800, 'ADD_ACCUMULATE', 887, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(801, 'ADD_ACCUMULATE', 888, NULL, '{\"report_date\":\"2025-09-15\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-15 06:50:01'), +(802, 'ADD_ACCUMULATE', 889, NULL, '{\"report_date\":\"2025-09-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-16 06:51:19'), +(803, 'ADD_ACCUMULATE', 890, NULL, '{\"report_date\":\"2025-09-16\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-16 06:51:19'), +(804, 'ADD_ACCUMULATE', 891, NULL, '{\"report_date\":\"2025-09-16\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-16 06:52:12'), +(805, 'ADD_ACCUMULATE', 893, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-17 06:43:08'), +(806, 'ADD_ACCUMULATE', 894, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-17 06:43:08'), +(807, 'ADD_ACCUMULATE', 895, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(808, 'ADD_ACCUMULATE', 896, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(809, 'ADD_ACCUMULATE', 897, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(810, 'ADD_ACCUMULATE', 898, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(811, 'ADD_ACCUMULATE', 899, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(812, 'ADD_ACCUMULATE', 900, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(813, 'ADD_ACCUMULATE', 901, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(814, 'ADD_ACCUMULATE', 902, NULL, '{\"report_date\":\"2025-09-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-17 06:45:06'), +(815, 'ADD_ACCUMULATE', 903, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:43:40'), +(816, 'ADD_ACCUMULATE', 904, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:43:40'), +(817, 'ADD_ACCUMULATE', 905, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:44:42'), +(818, 'ADD_ACCUMULATE', 906, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:44:42'), +(819, 'ADD_ACCUMULATE', 907, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:44:42'), +(820, 'ADD_ACCUMULATE', 908, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:44:42'), +(821, 'ADD_ACCUMULATE', 909, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:44:42'), +(822, 'ADD_ACCUMULATE', 910, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-18 06:46:39'), +(823, 'ADD_ACCUMULATE', 911, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-18 06:54:48'), +(824, 'ADD_ACCUMULATE', 912, NULL, '{\"report_date\":\"2025-09-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-18 06:54:48'), +(825, 'ADD_ACCUMULATE', 913, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:51:40'), +(826, 'ADD_ACCUMULATE', 914, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:51:40'), +(827, 'ADD_ACCUMULATE', 915, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:05'), +(828, 'ADD_ACCUMULATE', 916, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:05'), +(829, 'ADD_ACCUMULATE', 917, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:05'), +(830, 'ADD_ACCUMULATE', 918, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:05'), +(831, 'ADD_ACCUMULATE', 919, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:05'), +(832, 'ADD_ACCUMULATE', 920, NULL, '{\"report_date\":\"2025-09-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-19 06:52:23'), +(833, 'ADD_ACCUMULATE', 921, NULL, '{\"report_date\":\"2025-09-20\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-20 05:30:19'), +(834, 'ADD_ACCUMULATE', 922, NULL, '{\"report_date\":\"2025-09-20\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-20 05:30:19'), +(835, 'ADD_ACCUMULATE', 923, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(836, 'ADD_ACCUMULATE', 924, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(837, 'ADD_ACCUMULATE', 925, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(838, 'ADD_ACCUMULATE', 926, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(839, 'ADD_ACCUMULATE', 927, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(840, 'ADD_ACCUMULATE', 928, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-22 06:47:25'), +(841, 'ADD_ACCUMULATE', 929, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-22 06:50:29'), +(842, 'ADD_ACCUMULATE', 930, NULL, '{\"report_date\":\"2025-09-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-22 06:50:29'), +(843, 'ADD_ACCUMULATE', 931, NULL, '{\"report_date\":\"2025-09-23\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-23 05:46:40'), +(844, 'ADD_ACCUMULATE', 932, NULL, '{\"report_date\":\"2025-09-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-23 05:46:40'), +(845, 'ADD_ACCUMULATE', 933, NULL, '{\"report_date\":\"2025-09-24\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-25 01:14:58'), +(846, 'ADD_ACCUMULATE', 934, NULL, '{\"report_date\":\"2025-09-24\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-25 01:14:58'), +(847, 'ADD_ACCUMULATE', 935, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:07'), +(848, 'ADD_ACCUMULATE', 936, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:07'), +(849, 'ADD_ACCUMULATE', 937, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(850, 'ADD_ACCUMULATE', 938, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'); +INSERT INTO `work_report_audit_log` (`log_id`, `action`, `report_id`, `old_values`, `new_values`, `changed_by`, `change_reason`, `ip_address`, `user_agent`, `created_at`) VALUES +(851, 'ADD_ACCUMULATE', 939, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(852, 'ADD_ACCUMULATE', 940, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(853, 'ADD_ACCUMULATE', 941, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(854, 'ADD_ACCUMULATE', 942, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(855, 'ADD_ACCUMULATE', 943, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(856, 'ADD_ACCUMULATE', 944, NULL, '{\"report_date\":\"2025-09-29\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-29 06:36:47'), +(857, 'ADD_ACCUMULATE', 945, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(858, 'ADD_ACCUMULATE', 946, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(859, 'ADD_ACCUMULATE', 947, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(860, 'ADD_ACCUMULATE', 948, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(861, 'ADD_ACCUMULATE', 949, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(862, 'ADD_ACCUMULATE', 950, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:26'), +(863, 'ADD_ACCUMULATE', 951, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:27'), +(864, 'ADD_ACCUMULATE', 952, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:27'), +(865, 'ADD_ACCUMULATE', 953, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-09-30 06:52:27'), +(866, 'DELETE', 952, '{\"id\":952,\"report_date\":\"2025-09-30T00:00:00.000Z\",\"worker_id\":2,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-30T06:52:27.000Z\",\"updated_at\":\"2025-09-30T06:52:27.000Z\",\"created_by\":3,\"updated_by\":null}', NULL, 5, 'Manual deletion', NULL, NULL, '2025-09-30 06:56:36'), +(867, 'ADD_ACCUMULATE', 954, NULL, '{\"report_date\":\"2025-09-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}', 5, '누적 추가 by 임영규 - 삭제 없음', NULL, NULL, '2025-09-30 06:56:55'), +(868, 'ADD_ACCUMULATE', 955, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 05:25:58'), +(869, 'ADD_ACCUMULATE', 956, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 05:25:59'), +(870, 'ADD_ACCUMULATE', 957, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:32'), +(871, 'ADD_ACCUMULATE', 958, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:32'), +(872, 'ADD_ACCUMULATE', 959, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:32'), +(873, 'ADD_ACCUMULATE', 960, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:32'), +(874, 'ADD_ACCUMULATE', 961, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:33'), +(875, 'ADD_ACCUMULATE', 962, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:33'), +(876, 'ADD_ACCUMULATE', 963, NULL, '{\"report_date\":\"2025-10-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-02 06:22:33'), +(877, 'ADD_ACCUMULATE', 964, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-10 23:35:07'), +(878, 'ADD_ACCUMULATE', 965, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-10 23:35:07'), +(879, 'ADD_ACCUMULATE', 966, NULL, '{\"report_date\":\"2025-09-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}', 3, '누적 추가 by 김두수 - 삭제 없음', NULL, NULL, '2025-10-10 23:35:07'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_status_types` +-- + +CREATE TABLE `work_status_types` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL COMMENT '상태명', + `description` text DEFAULT NULL COMMENT '상태 설명', + `is_error` tinyint(1) DEFAULT 0 COMMENT '에러 상태 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_status_types` +-- + +INSERT INTO `work_status_types` (`id`, `name`, `description`, `is_error`, `created_at`) VALUES +(1, '정규', '정상적으로 완료된 작업', 0, '2025-06-16 02:21:16'), +(2, '에러', '오류가 발생한 작업', 1, '2025-06-16 02:21:16'); + +-- -------------------------------------------------------- + +-- +-- 테이블 구조 `work_types` +-- + +CREATE TABLE `work_types` ( + `id` int(11) NOT NULL, + `name` varchar(100) NOT NULL COMMENT '작업 유형명', + `description` text DEFAULT NULL COMMENT '작업 유형 설명', + `category` varchar(50) DEFAULT NULL COMMENT '작업 카테고리', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- 테이블의 덤프 데이터 `work_types` +-- + +INSERT INTO `work_types` (`id`, `name`, `description`, `category`, `created_at`, `updated_at`) VALUES +(1, 'Base(구조물)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:42'), +(2, 'Vessel(용기)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:47'), +(3, 'Piping Assembly(배관)', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:50'), +(4, '작업대기', NULL, NULL, '2025-06-16 02:21:32', '2025-06-16 03:03:56'); + +-- +-- 덤프된 테이블의 인덱스 +-- + +-- +-- 테이블의 인덱스 `activity_logs` +-- +ALTER TABLE `activity_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_user_activity` (`user_id`,`activity_type`,`created_at`), + ADD KEY `idx_table_record` (`table_name`,`record_id`); + +-- +-- 테이블의 인덱스 `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + ADD PRIMARY KEY (`cutting_plan_id`), + ADD KEY `project_id` (`project_id`), + ADD KEY `fk_cuttingplan_spec` (`spec_id`); + +-- +-- 테이블의 인덱스 `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + ADD PRIMARY KEY (`id`), + ADD KEY `worker_id` (`worker_id`), + ADD KEY `fk_dird_project` (`project_id`), + ADD KEY `fk_dird_issuetype` (`issue_type_id`); + +-- +-- 테이블의 인덱스 `daily_worker_summary` +-- +ALTER TABLE `daily_worker_summary` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `unique_worker_date` (`worker_id`,`report_date`); + +-- +-- 테이블의 인덱스 `daily_work_reports` +-- +ALTER TABLE `daily_work_reports` + ADD PRIMARY KEY (`id`), + ADD KEY `idx_report_date` (`report_date`), + ADD KEY `idx_worker_date` (`worker_id`,`report_date`), + ADD KEY `idx_project_date` (`project_id`,`report_date`), + ADD KEY `idx_work_type` (`work_type_id`), + ADD KEY `idx_work_status` (`work_status_id`), + ADD KEY `idx_error_type` (`error_type_id`), + ADD KEY `idx_created_by` (`created_by`), + ADD KEY `idx_date_worker_creator` (`report_date`,`worker_id`,`created_by`); + +-- +-- 테이블의 인덱스 `EquipmentList` +-- +ALTER TABLE `EquipmentList` + ADD PRIMARY KEY (`equipment_id`), + ADD KEY `factory_id` (`factory_id`); + +-- +-- 테이블의 인덱스 `error_types` +-- +ALTER TABLE `error_types` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `FactoryInfo` +-- +ALTER TABLE `FactoryInfo` + ADD PRIMARY KEY (`factory_id`); + +-- +-- 테이블의 인덱스 `IssueTypes` +-- +ALTER TABLE `IssueTypes` + ADD PRIMARY KEY (`issue_type_id`); + +-- +-- 테이블의 인덱스 `login_logs` +-- +ALTER TABLE `login_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_user_login` (`user_id`,`login_time`); + +-- +-- 테이블의 인덱스 `password_change_logs` +-- +ALTER TABLE `password_change_logs` + ADD PRIMARY KEY (`log_id`), + ADD KEY `changed_by_user_id` (`changed_by_user_id`), + ADD KEY `idx_user_changes` (`user_id`,`changed_at`); + +-- +-- 테이블의 인덱스 `PipeSpecs` +-- +ALTER TABLE `PipeSpecs` + ADD PRIMARY KEY (`spec_id`), + ADD UNIQUE KEY `unique_spec` (`material`,`diameter_in`,`schedule`); + +-- +-- 테이블의 인덱스 `Processes` +-- +ALTER TABLE `Processes` + ADD PRIMARY KEY (`process_id`), + ADD KEY `project_id` (`project_id`); + +-- +-- 테이블의 인덱스 `Projects` +-- +ALTER TABLE `Projects` + ADD PRIMARY KEY (`project_id`); + +-- +-- 테이블의 인덱스 `Tasks` +-- +ALTER TABLE `Tasks` + ADD PRIMARY KEY (`task_id`); + +-- +-- 테이블의 인덱스 `uploaded_documents` +-- +ALTER TABLE `uploaded_documents` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `Users` +-- +ALTER TABLE `Users` + ADD PRIMARY KEY (`user_id`), + ADD UNIQUE KEY `username` (`username`), + ADD UNIQUE KEY `email` (`email`), + ADD KEY `fk_worker` (`worker_id`), + ADD KEY `idx_username` (`username`), + ADD KEY `idx_active_users` (`is_active`,`access_level`); + +-- +-- 테이블의 인덱스 `Workers` +-- +ALTER TABLE `Workers` + ADD PRIMARY KEY (`worker_id`); + +-- +-- 테이블의 인덱스 `worker_groups` +-- +ALTER TABLE `worker_groups` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `uk_leader_worker` (`group_leader_id`,`worker_id`), + ADD KEY `idx_group_leader` (`group_leader_id`), + ADD KEY `idx_worker` (`worker_id`), + ADD KEY `idx_is_active` (`is_active`); + +-- +-- 테이블의 인덱스 `WorkReports` +-- +ALTER TABLE `WorkReports` + ADD PRIMARY KEY (`id`), + ADD KEY `worker_id` (`worker_id`), + ADD KEY `project_id` (`project_id`), + ADD KEY `morning_task_id` (`morning_task_id`), + ADD KEY `afternoon_task_id` (`afternoon_task_id`), + ADD KEY `overtime_task_id` (`overtime_task_id`); + +-- +-- 테이블의 인덱스 `work_report_audit_log` +-- +ALTER TABLE `work_report_audit_log` + ADD PRIMARY KEY (`log_id`), + ADD KEY `idx_action_date` (`action`,`created_at`), + ADD KEY `idx_changed_by` (`changed_by`), + ADD KEY `idx_report_id` (`report_id`); + +-- +-- 테이블의 인덱스 `work_status_types` +-- +ALTER TABLE `work_status_types` + ADD PRIMARY KEY (`id`); + +-- +-- 테이블의 인덱스 `work_types` +-- +ALTER TABLE `work_types` + ADD PRIMARY KEY (`id`); + +-- +-- 덤프된 테이블의 AUTO_INCREMENT +-- + +-- +-- 테이블의 AUTO_INCREMENT `activity_logs` +-- +ALTER TABLE `activity_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + MODIFY `cutting_plan_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10; + +-- +-- 테이블의 AUTO_INCREMENT `daily_worker_summary` +-- +ALTER TABLE `daily_worker_summary` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- 테이블의 AUTO_INCREMENT `daily_work_reports` +-- +ALTER TABLE `daily_work_reports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=967; + +-- +-- 테이블의 AUTO_INCREMENT `EquipmentList` +-- +ALTER TABLE `EquipmentList` + MODIFY `equipment_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `error_types` +-- +ALTER TABLE `error_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10; + +-- +-- 테이블의 AUTO_INCREMENT `FactoryInfo` +-- +ALTER TABLE `FactoryInfo` + MODIFY `factory_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; + +-- +-- 테이블의 AUTO_INCREMENT `IssueTypes` +-- +ALTER TABLE `IssueTypes` + MODIFY `issue_type_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `login_logs` +-- +ALTER TABLE `login_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=345; + +-- +-- 테이블의 AUTO_INCREMENT `password_change_logs` +-- +ALTER TABLE `password_change_logs` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `PipeSpecs` +-- +ALTER TABLE `PipeSpecs` + MODIFY `spec_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +-- +-- 테이블의 AUTO_INCREMENT `Processes` +-- +ALTER TABLE `Processes` + MODIFY `process_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `Projects` +-- +ALTER TABLE `Projects` + MODIFY `project_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15; + +-- +-- 테이블의 AUTO_INCREMENT `Tasks` +-- +ALTER TABLE `Tasks` + MODIFY `task_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19; + +-- +-- 테이블의 AUTO_INCREMENT `uploaded_documents` +-- +ALTER TABLE `uploaded_documents` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `Users` +-- +ALTER TABLE `Users` + MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- 테이블의 AUTO_INCREMENT `Workers` +-- +ALTER TABLE `Workers` + MODIFY `worker_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12; + +-- +-- 테이블의 AUTO_INCREMENT `worker_groups` +-- +ALTER TABLE `worker_groups` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- 테이블의 AUTO_INCREMENT `WorkReports` +-- +ALTER TABLE `WorkReports` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1766; + +-- +-- 테이블의 AUTO_INCREMENT `work_report_audit_log` +-- +ALTER TABLE `work_report_audit_log` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=880; + +-- +-- 테이블의 AUTO_INCREMENT `work_status_types` +-- +ALTER TABLE `work_status_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- 테이블의 AUTO_INCREMENT `work_types` +-- +ALTER TABLE `work_types` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11; + +-- +-- 덤프된 테이블의 제약사항 +-- + +-- +-- 테이블의 제약사항 `activity_logs` +-- +ALTER TABLE `activity_logs` + ADD CONSTRAINT `activity_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE SET NULL; + +-- +-- 테이블의 제약사항 `CuttingPlan` +-- +ALTER TABLE `CuttingPlan` + ADD CONSTRAINT `CuttingPlan_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`), + ADD CONSTRAINT `fk_cuttingplan_spec` FOREIGN KEY (`spec_id`) REFERENCES `PipeSpecs` (`spec_id`); + +-- +-- 테이블의 제약사항 `DailyIssueReports` +-- +ALTER TABLE `DailyIssueReports` + ADD CONSTRAINT `dailyissuereports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`), + ADD CONSTRAINT `fk_dird_issuetype` FOREIGN KEY (`issue_type_id`) REFERENCES `IssueTypes` (`issue_type_id`), + ADD CONSTRAINT `fk_dird_project` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`); + +-- +-- 테이블의 제약사항 `EquipmentList` +-- +ALTER TABLE `EquipmentList` + ADD CONSTRAINT `EquipmentList_ibfk_1` FOREIGN KEY (`factory_id`) REFERENCES `FactoryInfo` (`factory_id`); + +-- +-- 테이블의 제약사항 `login_logs` +-- +ALTER TABLE `login_logs` + ADD CONSTRAINT `login_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE; + +-- +-- 테이블의 제약사항 `password_change_logs` +-- +ALTER TABLE `password_change_logs` + ADD CONSTRAINT `password_change_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE, + ADD CONSTRAINT `password_change_logs_ibfk_2` FOREIGN KEY (`changed_by_user_id`) REFERENCES `Users` (`user_id`) ON DELETE SET NULL; + +-- +-- 테이블의 제약사항 `Processes` +-- +ALTER TABLE `Processes` + ADD CONSTRAINT `Processes_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`); + +-- +-- 테이블의 제약사항 `Users` +-- +ALTER TABLE `Users` + ADD CONSTRAINT `fk_worker` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`); + +-- +-- 테이블의 제약사항 `worker_groups` +-- +ALTER TABLE `worker_groups` + ADD CONSTRAINT `fk_group_leader` FOREIGN KEY (`group_leader_id`) REFERENCES `Users` (`user_id`) ON DELETE CASCADE, + ADD CONSTRAINT `fk_group_worker` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`) ON DELETE CASCADE; + +-- +-- 테이블의 제약사항 `WorkReports` +-- +ALTER TABLE `WorkReports` + ADD CONSTRAINT `WorkReports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `Workers` (`worker_id`), + ADD CONSTRAINT `WorkReports_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `Projects` (`project_id`), + ADD CONSTRAINT `WorkReports_ibfk_3` FOREIGN KEY (`morning_task_id`) REFERENCES `Tasks` (`task_id`), + ADD CONSTRAINT `WorkReports_ibfk_4` FOREIGN KEY (`afternoon_task_id`) REFERENCES `Tasks` (`task_id`), + ADD CONSTRAINT `WorkReports_ibfk_5` FOREIGN KEY (`overtime_task_id`) REFERENCES `Tasks` (`task_id`); +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/002_add_master_tables.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/002_add_master_tables.sql new file mode 100644 index 0000000..8158b2b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/002_add_master_tables.sql @@ -0,0 +1,115 @@ +-- migrations/002_add_master_tables.sql +-- 기존 daily_work_reports 테이블을 유지하면서 필요한 마스터 테이블들만 추가 + +-- 1. 작업 유형 테이블 생성 +CREATE TABLE IF NOT EXISTS work_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(100) NOT NULL COMMENT '작업 유형명', + description TEXT COMMENT '작업 유형 설명', + category VARCHAR(50) COMMENT '작업 카테고리', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 2. 업무 상태 유형 테이블 생성 +CREATE TABLE IF NOT EXISTS work_status_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(50) NOT NULL COMMENT '상태명', + description TEXT COMMENT '상태 설명', + is_error BOOLEAN DEFAULT FALSE COMMENT '에러 상태 여부', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 3. 에러 유형 테이블 생성 +CREATE TABLE IF NOT EXISTS error_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(100) NOT NULL COMMENT '에러 유형명', + description TEXT COMMENT '에러 설명', + severity ENUM('low', 'medium', 'high', 'critical') DEFAULT 'medium' COMMENT '심각도', + solution_guide TEXT COMMENT '해결 가이드', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 4. 감사 로그 테이블 생성 (누적입력 추적용) +CREATE TABLE IF NOT EXISTS work_report_audit_log ( + log_id INT PRIMARY KEY AUTO_INCREMENT, + action ENUM('ADD_ACCUMULATE', 'DELETE_SINGLE', 'UPDATE', 'DELETE', 'CREATE', 'DELETE_BATCH') NOT NULL COMMENT '작업 유형', + report_id INT NULL COMMENT '관련 보고서 ID', + old_values JSON NULL COMMENT '변경 전 값', + new_values JSON NULL COMMENT '변경 후 값', + changed_by INT NOT NULL COMMENT '변경자 ID', + change_reason VARCHAR(500) COMMENT '변경 사유', + ip_address VARCHAR(45) COMMENT 'IP 주소', + user_agent TEXT COMMENT '사용자 에이전트', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '변경 시간', + + INDEX idx_action_date (action, created_at), + INDEX idx_changed_by (changed_by), + INDEX idx_report_id (report_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 5. 기존 daily_work_reports 테이블에 누적입력을 위한 인덱스만 추가 +ALTER TABLE daily_work_reports +ADD INDEX IF NOT EXISTS idx_created_by (created_by), +ADD INDEX IF NOT EXISTS idx_date_worker_creator (report_date, worker_id, created_by); + +-- 6. 기본 데이터 삽입 (기존 데이터와 호환되도록) + +-- 업무 상태 유형 기본 데이터 +INSERT IGNORE INTO work_status_types (id, name, description, is_error) VALUES +(1, '정규', '정상적으로 완료된 작업', FALSE), +(2, '에러', '오류가 발생한 작업', TRUE); + +-- 작업 유형 기본 데이터 (기존 데이터의 work_type_id=1과 호환) +INSERT IGNORE INTO work_types (id, name, description, category) VALUES +(1, '일반작업', '기본 작업 유형', '생산관리'), +(2, '생산', '제품 생산 작업', '생산관리'), +(3, '품질검사', '제품 품질 검사', '품질관리'), +(4, '안전점검', '안전 상태 점검', '안전관리'), +(5, '자재입고', '원자재 입고 작업', '구매관리'), +(6, '설비점검', '생산 설비 점검', '설비관리'), +(7, '재고관리', '재고 현황 관리', '창고관리'), +(8, '포장', '제품 포장 작업', '생산관리'), +(9, '출하', '제품 출하 작업', '물류관리'); + +-- 에러 유형 기본 데이터 +INSERT IGNORE INTO error_types (id, name, description, severity, solution_guide) VALUES +(1, '설비고장', '생산 설비 고장', 'high', '즉시 설비팀에 연락하여 수리 요청'), +(2, '자재부족', '필요 자재 부족', 'medium', '구매팀에 긴급 주문 요청'), +(3, '품질불량', '제품 품질 기준 미달', 'high', '품질팀에 즉시 보고 및 생산 중단'), +(4, '안전사고', '작업 중 안전사고 발생', 'critical', '즉시 작업 중단 및 안전팀 신고'), +(5, '시스템오류', 'IT 시스템 오류', 'medium', 'IT팀에 장애 신고'); + +-- 7. 기존 데이터 호환성을 위한 뷰 생성 +CREATE OR REPLACE VIEW v_daily_reports_with_names AS +SELECT + dwr.id, + dwr.report_date, + dwr.worker_id, + w.worker_name, + dwr.project_id, + p.project_name, + dwr.work_type_id, + COALESCE(wt.name, '일반작업') as work_type_name, + COALESCE(wt.category, '생산관리') as work_category, + dwr.work_status_id, + COALESCE(wst.name, '정규') as work_status_name, + COALESCE(wst.is_error, FALSE) as is_error, + dwr.error_type_id, + et.name as error_type_name, + et.severity as error_severity, + dwr.work_hours, + dwr.created_by, + u.name as created_by_name, + dwr.created_at, + dwr.updated_at +FROM daily_work_reports dwr +LEFT JOIN Workers w ON dwr.worker_id = w.worker_id +LEFT JOIN Projects p ON dwr.project_id = p.project_id +LEFT JOIN work_types wt ON dwr.work_type_id = wt.id +LEFT JOIN work_status_types wst ON dwr.work_status_id = wst.id +LEFT JOIN error_types et ON dwr.error_type_id = et.id +LEFT JOIN Users u ON dwr.created_by = u.user_id; + +COMMIT; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/003_normalize_table_names.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/003_normalize_table_names.sql new file mode 100644 index 0000000..89bbcf1 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/003_normalize_table_names.sql @@ -0,0 +1,56 @@ +-- migrations/003_normalize_table_names.sql +-- 모든 테이블명을 snake_case로 변경하여 룰 준수 + +-- 기존 PascalCase 테이블들을 snake_case로 변경 + +-- 1. Users -> users +RENAME TABLE Users TO users; + +-- 2. CuttingPlan -> cutting_plan +RENAME TABLE CuttingPlan TO cutting_plan; + +-- 3. DailyIssueReports -> daily_issue_reports +RENAME TABLE DailyIssueReports TO daily_issue_reports; + +-- 4. EquipmentList -> equipment_list +RENAME TABLE EquipmentList TO equipment_list; + +-- 5. FactoryInfo -> factory_info +RENAME TABLE FactoryInfo TO factory_info; + +-- 6. IssueTypes -> issue_types +RENAME TABLE IssueTypes TO issue_types; + +-- 7. PipeSpecs -> pipe_specs +RENAME TABLE PipeSpecs TO pipe_specs; + +-- 8. Processes -> processes (이미 소문자이지만 통일성 위해) +-- RENAME TABLE Processes TO processes; -- 이미 소문자면 스킵 + +-- 9. Projects -> projects +RENAME TABLE Projects TO projects; + +-- 10. Tasks -> tasks +RENAME TABLE Tasks TO tasks; + +-- 11. WorkReports -> work_reports +RENAME TABLE WorkReports TO work_reports; + +-- 12. Workers -> workers +RENAME TABLE Workers TO workers; + +-- 이미 snake_case인 테이블들은 그대로 유지: +-- activity_logs +-- daily_work_reports +-- daily_worker_summary +-- error_types +-- login_logs +-- password_change_logs +-- uploaded_documents +-- work_report_audit_log +-- work_status_types +-- work_types +-- worker_groups + +-- 변경 완료 로그 +SELECT 'Table names normalized to snake_case according to project rules' as migration_status; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/01_schema.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/01_schema.sql new file mode 100644 index 0000000..e69de29 diff --git a/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/update_hyungi_system_role.sql b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/update_hyungi_system_role.sql new file mode 100644 index 0000000..a864eb9 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/db_archive/migrations_backup/update_hyungi_system_role.sql @@ -0,0 +1,45 @@ +-- hyungi 계정을 시스템 권한으로 업데이트 +-- 실행 날짜: 2025-01-XX + +-- hyungi 계정의 role을 system으로 변경 +UPDATE Users +SET + role = 'system', + access_level = 'system', + name = '시스템 관리자', + updated_at = NOW() +WHERE username = 'hyungi'; + +-- 변경 결과 확인 +SELECT + user_id, + username, + name, + role, + access_level, + is_active, + updated_at +FROM Users +WHERE username = 'hyungi'; + +-- 시스템 권한 확인을 위한 쿼리 +SELECT + username, + name, + role, + access_level, + CASE + WHEN role = 'system' THEN '✅ 시스템 관리자' + WHEN role = 'admin' THEN '🔧 관리자' + WHEN role = 'leader' THEN '👨‍🏫 그룹장' + ELSE '👤 일반 사용자' + END as permission_level +FROM Users +ORDER BY + CASE role + WHEN 'system' THEN 1 + WHEN 'admin' THEN 2 + WHEN 'leader' THEN 3 + ELSE 4 + END, + username; diff --git a/deploy/tkfb-package/api.hyungi.net/deploy.sh b/deploy/tkfb-package/api.hyungi.net/deploy.sh new file mode 100755 index 0000000..5983d8e --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/deploy.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +# 색상 정의 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +echo -e "${BLUE}========================================${NC}" +echo -e "${BLUE} API 서버 배포 스크립트${NC}" +echo -e "${BLUE}========================================${NC}" +echo "" + +# 현재 디렉토리 확인 +if [ ! -f "package.json" ]; then + echo -e "${RED}❌ 오류: package.json을 찾을 수 없습니다.${NC}" + echo -e "${RED} api.hyungi.net 디렉토리에서 실행해주세요.${NC}" + exit 1 +fi + +echo -e "${BLUE}📂 현재 디렉토리:${NC} $(pwd)" +echo "" + +# 1. Git Pull +echo -e "${YELLOW}1️⃣ Git Pull 시작...${NC}" +git pull +if [ $? -ne 0 ]; then + echo -e "${RED}❌ Git Pull 실패${NC}" + exit 1 +fi +echo -e "${GREEN}✅ Git Pull 완료${NC}" +echo "" + +# 2. NPM Install (package.json 변경 확인) +echo -e "${YELLOW}2️⃣ 의존성 확인 중...${NC}" +if git diff HEAD@{1} HEAD --name-only | grep -q "package.json"; then + echo -e "${YELLOW}📦 package.json 변경 감지 - npm install 실행${NC}" + npm install + if [ $? -ne 0 ]; then + echo -e "${RED}❌ npm install 실패${NC}" + exit 1 + fi + echo -e "${GREEN}✅ npm install 완료${NC}" +else + echo -e "${GREEN}✅ package.json 변경 없음 - 건너뜀${NC}" +fi +echo "" + +# 3. 데이터베이스 마이그레이션 +echo -e "${YELLOW}3️⃣ 데이터베이스 마이그레이션 시작...${NC}" +echo -e "${YELLOW}⚠️ 주의: 마이그레이션 전 데이터베이스 백업을 권장합니다.${NC}" +echo "" +read -p "마이그레이션을 실행하시겠습니까? (y/n): " -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]]; then + npm run db:migrate + if [ $? -ne 0 ]; then + echo -e "${RED}❌ 마이그레이션 실패${NC}" + echo -e "${YELLOW}💡 롤백이 필요하면 다음 명령어를 실행하세요:${NC}" + echo -e "${YELLOW} npm run db:rollback${NC}" + exit 1 + fi + echo -e "${GREEN}✅ 마이그레이션 완료${NC}" +else + echo -e "${YELLOW}⏭️ 마이그레이션 건너뜀${NC}" +fi +echo "" + +# 4. PM2 재시작 +echo -e "${YELLOW}4️⃣ PM2 서버 재시작...${NC}" +if command -v pm2 &> /dev/null; then + pm2 reload ecosystem.config.js --env production + if [ $? -ne 0 ]; then + echo -e "${RED}❌ PM2 reload 실패${NC}" + exit 1 + fi + echo -e "${GREEN}✅ PM2 reload 완료${NC}" + echo "" + + # PM2 상태 확인 + echo -e "${BLUE}📊 PM2 프로세스 상태:${NC}" + pm2 list +else + echo -e "${YELLOW}⚠️ PM2가 설치되지 않았습니다. 수동으로 서버를 재시작해주세요.${NC}" +fi +echo "" + +echo -e "${GREEN}========================================${NC}" +echo -e "${GREEN} ✅ 배포 완료!${NC}" +echo -e "${GREEN}========================================${NC}" +echo "" +echo -e "${BLUE}📝 배포 후 확인사항:${NC}" +echo -e " 1. API 서버 응답 확인: curl http://localhost:20005/health" +echo -e " 2. 로그 확인: pm2 logs hyungi-api" +echo -e " 3. 에러 발생 시: pm2 logs hyungi-api --err" +echo "" diff --git a/deploy/tkfb-package/api.hyungi.net/docker-compose.yml b/deploy/tkfb-package/api.hyungi.net/docker-compose.yml new file mode 100644 index 0000000..5c4cf6d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/docker-compose.yml @@ -0,0 +1,113 @@ +version: "3.8" + +services: + db: + image: mariadb:10.9 + container_name: db_hyungi_net + restart: unless-stopped + env_file: + - ./.env + environment: + - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD} + - MYSQL_DATABASE=${DB_NAME} + - MYSQL_USER=${DB_USER} + - MYSQL_PASSWORD=${DB_PASSWORD} + volumes: + - db_data:/var/lib/mysql + - ./migrations:/docker-entrypoint-initdb.d # SQL 마이그레이션 자동 실행 + ports: + - "20306:3306" # RULES.md 준수: DB 포트 20306 + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + timeout: 20s + retries: 10 + + api: + build: + context: . + dockerfile: Dockerfile + container_name: api_hyungi_net + depends_on: + db: + condition: service_healthy # DB가 준비된 후 시작 + redis: + condition: service_healthy # Redis가 준비된 후 시작 + restart: unless-stopped + ports: + - "20005:3005" # RULES.md 준수: API 포트 20005 + env_file: + - ./.env + environment: + - NODE_ENV=production + - REDIS_HOST=redis + - REDIS_PORT=6379 + volumes: + - ./public/img:/usr/src/app/public/img:ro + - ./uploads:/usr/src/app/uploads + - ./logs:/usr/src/app/logs # 로그 파일 저장 + - ./routes:/usr/src/app/routes + - ./controllers:/usr/src/app/controllers + - ./models:/usr/src/app/models + - ./index.js:/usr/src/app/index.js + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + + phpmyadmin: + image: phpmyadmin/phpmyadmin:latest + container_name: pma_hyungi_net + depends_on: + - db + restart: unless-stopped + ports: + - "20080:80" # RULES.md 준수: phpMyAdmin 포트 20080 + env_file: + - ./.env + environment: + - PMA_HOST=${DB_HOST:-db} + - PMA_USER=${DB_ROOT_USER:-root} + - PMA_PASSWORD=${DB_ROOT_PASSWORD} + - UPLOAD_LIMIT=50M + + # Redis 캐시 서버 (세션 관리 및 속도 제한용) + redis: + image: redis:7-alpine + container_name: redis_hyungi_net + restart: unless-stopped + ports: + - "20379:6379" # RULES.md 준수: Redis 포트 20379 + volumes: + - redis_data:/data + command: redis-server --appendonly yes + healthcheck: + test: ["CMD", "redis-cli", "ping"] + timeout: 3s + retries: 5 + networks: + - default + + # Nginx 리버스 프록시 (선택사항 - HTTPS 및 로드밸런싱용) + # nginx: + # image: nginx:alpine + # container_name: nginx_hyungi_net + # restart: unless-stopped + # ports: + # - "80:80" + # - "443:443" + # volumes: + # - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro + # - ./nginx/ssl:/etc/nginx/ssl:ro + # depends_on: + # - api + +volumes: + db_data: + driver: local + redis_data: + driver: local + +networks: + default: + name: hyungi_network \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/ecosystem.config.js b/deploy/tkfb-package/api.hyungi.net/ecosystem.config.js new file mode 100644 index 0000000..031b363 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/ecosystem.config.js @@ -0,0 +1,16 @@ +module.exports = { + apps: [ + { + name: 'hyungi-api', + script: './index.js', + env: { + NODE_ENV: 'development' + }, + env_production: { + NODE_ENV: 'production' + }, + // 메모리 200MB 이상일 때 자동 재시작 + max_memory_restart: '200M' + } + ] +} \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/hyungi_schema_v2.sql b/deploy/tkfb-package/api.hyungi.net/hyungi_schema_v2.sql new file mode 100644 index 0000000..d2ff224 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/hyungi_schema_v2.sql @@ -0,0 +1,297 @@ +-- Hyungi Technical Korea - Database Schema v2 +-- 개선 사항: +-- 1. 모든 테이블 및 컬럼 이름을 snake_case로 통일 +-- 2. 데이터 무결성 강화를 위한 외래 키(Foreign Key) 제약조건 추가 +-- 3. 유사/중복 테이블 통합 및 정리 제안 (예: tasks, work_types) +-- 4. 컬럼의 기본값(Default), 코멘트 등 명확화 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+09:00"; + +-- ================================================================= +-- 1. 인증 및 사용자 관련 (Auth Domain) +-- ================================================================= + +-- 사용자 계정 정보 +CREATE TABLE `users` ( + `user_id` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(100) NOT NULL, + `password` varchar(255) NOT NULL, + `name` varchar(50) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `role` varchar(30) DEFAULT 'user' COMMENT '역할 (system, admin, leader, user)', + `access_level` varchar(30) DEFAULT NULL COMMENT '접근 레벨 (레거시 필드, role로 통합 고려)', + `worker_id` int(11) DEFAULT NULL COMMENT '연결된 작업자 ID', + `is_active` tinyint(1) DEFAULT 1 COMMENT '계정 활성화 여부', + `last_login_at` datetime DEFAULT NULL COMMENT '마지막 로그인 시간', + `password_changed_at` datetime DEFAULT NULL, + `failed_login_attempts` int(11) DEFAULT 0, + `locked_until` datetime DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`user_id`), + UNIQUE KEY `username` (`username`), + KEY `fk_users_worker_id` (`worker_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 로그인 이력 +CREATE TABLE `login_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) DEFAULT NULL, + `login_time` datetime DEFAULT current_timestamp(), + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `login_status` enum('success','failed','locked') DEFAULT 'success', + `failure_reason` varchar(100) DEFAULT NULL, + PRIMARY KEY (`log_id`), + KEY `fk_login_logs_user_id` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 비밀번호 변경 이력 +CREATE TABLE `password_change_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `changed_by_user_id` int(11) DEFAULT NULL COMMENT '누가 변경했는지 (관리자)', + `changed_at` datetime DEFAULT current_timestamp(), + `change_type` enum('self','admin','reset','initial') DEFAULT 'self', + `ip_address` varchar(45) DEFAULT NULL, + PRIMARY KEY (`log_id`), + KEY `fk_pw_change_user_id` (`user_id`), + KEY `fk_pw_change_changed_by` (`changed_by_user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + + +-- ================================================================= +-- 2. 기초 정보 (Master Data) +-- ================================================================= + +-- 프로젝트 정보 +CREATE TABLE `projects` ( + `project_id` int(11) NOT NULL AUTO_INCREMENT, + `job_no` varchar(50) NOT NULL, + `project_name` varchar(255) NOT NULL, + `contract_date` date DEFAULT NULL, + `due_date` date DEFAULT NULL, + `delivery_method` varchar(100) DEFAULT NULL, + `site` varchar(100) DEFAULT NULL, + `pm` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`project_id`), + UNIQUE KEY `job_no` (`job_no`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 작업자(인력) 정보 +CREATE TABLE `workers` ( + `worker_id` int(11) NOT NULL AUTO_INCREMENT, + `worker_name` varchar(100) NOT NULL, + `job_type` varchar(100) DEFAULT NULL COMMENT '직종', + `join_date` date DEFAULT NULL COMMENT '입사일', + `status` varchar(20) DEFAULT 'active' COMMENT '상태 (active, inactive)', + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`worker_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 작업자 그룹 (팀) +CREATE TABLE `worker_groups` ( + `group_id` int(11) NOT NULL AUTO_INCREMENT, + `group_name` varchar(100) DEFAULT NULL, + `group_leader_id` int(11) NOT NULL COMMENT '그룹장 user_id', + `worker_id` int(11) NOT NULL COMMENT '소속 작업자 worker_id', + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`group_id`), + KEY `fk_w_groups_leader_id` (`group_leader_id`), + KEY `fk_w_groups_worker_id` (`worker_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 표준 작업(공수) 종류 (기존 Tasks 와 work_types 통합 제안) +CREATE TABLE `tasks` ( + `task_id` int(11) NOT NULL AUTO_INCREMENT, + `task_category` varchar(255) NOT NULL COMMENT '작업 대분류 (예: PKG, Vessel)', + `task_subcategory` varchar(255) DEFAULT NULL COMMENT '작업 중분류 (예: Pipe Pre-Fabrication)', + `task_name` varchar(255) NOT NULL COMMENT '실제 작업명 (예: 취부&용접)', + `description` text DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`task_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 파이프 사양(Spec) 정보 +CREATE TABLE `pipe_specs` ( + `spec_id` int(11) NOT NULL AUTO_INCREMENT, + `material` varchar(50) NOT NULL COMMENT '재질 (예: SS400, STS304)', + `diameter_in` varchar(10) NOT NULL COMMENT '직경 (inch, 예: 2")', + `schedule` varchar(50) NOT NULL COMMENT '스케줄 (예: STD, SCH10, SCH40)', + PRIMARY KEY (`spec_id`), + UNIQUE KEY `uk_pipe_specs` (`material`,`diameter_in`,`schedule`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- 공장 설비/장비 목록 +CREATE TABLE `equipment_list` ( + `equipment_id` int(11) NOT NULL AUTO_INCREMENT, + `factory_id` int(11) DEFAULT NULL COMMENT '소속 공장 ID', + `equipment_name` varchar(255) NOT NULL, + `model` varchar(100) DEFAULT NULL, + `status` varchar(50) DEFAULT 'operational', + `purchase_date` date DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`equipment_id`), + KEY `fk_equip_factory_id` (`factory_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 공장 구역 정보 +CREATE TABLE `factory_info` ( + `factory_id` int(11) NOT NULL AUTO_INCREMENT, + `factory_name` varchar(255) NOT NULL, + `address` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `map_image_url` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`factory_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 코드 정의 (기존 IssueTypes, error_types 등을 통합 관리) +CREATE TABLE `code_types` ( + `code_type_id` VARCHAR(50) NOT NULL COMMENT '코드 타입 ID (예: ISSUE_TYPE, ERROR_TYPE)', + `code_type_name` VARCHAR(100) NOT NULL COMMENT '코드 타입명 (예: 이슈 유형, 에러 유형)', + `description` TEXT, + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`code_type_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE `codes` ( + `code_id` INT NOT NULL AUTO_INCREMENT, + `code_type_id` VARCHAR(50) NOT NULL COMMENT '참조하는 코드 타입 ID', + `code_value` VARCHAR(100) NOT NULL COMMENT '코드 값 (예: design_miss)', + `code_name` VARCHAR(100) NOT NULL COMMENT '코드 표시명 (예: 설계 미스)', + `code_order` INT DEFAULT 0 COMMENT '정렬 순서', + `is_active` TINYINT(1) DEFAULT 1, + `description` TEXT, + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`code_id`), + UNIQUE KEY `uk_code` (`code_type_id`, `code_value`), + KEY `fk_codes_code_type_id` (`code_type_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + + +-- ================================================================= +-- 3. 업무 데이터 (Transactional Data) +-- ================================================================= + +-- 일일 작업 보고 +CREATE TABLE `daily_work_reports` ( + `report_id` int(11) NOT NULL AUTO_INCREMENT, + `report_date` date NOT NULL COMMENT '작업 날짜', + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `project_id` int(11) NOT NULL COMMENT '프로젝트 ID', + `task_id` int(11) NOT NULL COMMENT '작업 ID', + `work_hours` decimal(4,2) NOT NULL COMMENT '작업 시간', + `is_error` tinyint(1) NOT NULL DEFAULT 0 COMMENT '에러 여부 (0: 정상, 1: 에러)', + `error_type_code_id` int(11) DEFAULT NULL COMMENT '에러 유형 코드 ID (codes 테이블 참조)', + `created_by_user_id` int(11) NOT NULL COMMENT '작성자 user_id', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`report_id`), + KEY `fk_dwr_worker_id` (`worker_id`), + KEY `fk_dwr_project_id` (`project_id`), + KEY `fk_dwr_task_id` (`task_id`), + KEY `fk_dwr_error_type` (`error_type_code_id`), + KEY `fk_dwr_created_by` (`created_by_user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 일일 이슈 보고 +CREATE TABLE `daily_issue_reports` ( + `issue_report_id` int(11) NOT NULL AUTO_INCREMENT, + `report_date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `issue_type_code_id` int(11) DEFAULT NULL COMMENT '이슈 유형 코드 ID (codes 테이블 참조)', + `description` text DEFAULT NULL, + `start_time` time NOT NULL, + `end_time` time NOT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`issue_report_id`), + KEY `fk_dir_worker_id` (`worker_id`), + KEY `fk_dir_project_id` (`project_id`), + KEY `fk_dir_issue_type` (`issue_type_code_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- 절단 계획 +CREATE TABLE `cutting_plans` ( + `cutting_plan_id` int(11) NOT NULL AUTO_INCREMENT, + `project_id` int(11) NOT NULL, + `spec_id` int(11) NOT NULL COMMENT '파이프 사양 ID', + `drawing_name` varchar(255) NOT NULL, + `area_number` varchar(100) DEFAULT NULL, + `spool_number` varchar(255) DEFAULT NULL, + `length` decimal(10,2) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`cutting_plan_id`), + KEY `fk_cp_project_id` (`project_id`), + KEY `fk_cp_spec_id` (`spec_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- ================================================================= +-- 외래 키(Foreign Key) 제약조건 설정 +-- ================================================================= + +-- Auth Domain +ALTER TABLE `users` + ADD CONSTRAINT `fk_users_worker_id` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE SET NULL; +ALTER TABLE `login_logs` + ADD CONSTRAINT `fk_login_logs_user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE SET NULL; +ALTER TABLE `password_change_logs` + ADD CONSTRAINT `fk_pw_change_user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE, + ADD CONSTRAINT `fk_pw_change_changed_by` FOREIGN KEY (`changed_by_user_id`) REFERENCES `users` (`user_id`) ON DELETE SET NULL; + +-- Master Data +ALTER TABLE `worker_groups` + ADD CONSTRAINT `fk_w_groups_leader_id` FOREIGN KEY (`group_leader_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE, + ADD CONSTRAINT `fk_w_groups_worker_id` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE CASCADE; +ALTER TABLE `equipment_list` + ADD CONSTRAINT `fk_equip_factory_id` FOREIGN KEY (`factory_id`) REFERENCES `factory_info` (`factory_id`) ON DELETE SET NULL; +ALTER TABLE `codes` + ADD CONSTRAINT `fk_codes_code_type_id` FOREIGN KEY (`code_type_id`) REFERENCES `code_types` (`code_type_id`) ON DELETE CASCADE; + +-- Transactional Data +ALTER TABLE `daily_work_reports` + ADD CONSTRAINT `fk_dwr_worker_id` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE RESTRICT, + ADD CONSTRAINT `fk_dwr_project_id` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) ON DELETE RESTRICT, + ADD CONSTRAINT `fk_dwr_task_id` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`task_id`) ON DELETE RESTRICT, + ADD CONSTRAINT `fk_dwr_error_type` FOREIGN KEY (`error_type_code_id`) REFERENCES `codes` (`code_id`) ON DELETE SET NULL, + ADD CONSTRAINT `fk_dwr_created_by` FOREIGN KEY (`created_by_user_id`) REFERENCES `users` (`user_id`) ON DELETE RESTRICT; +ALTER TABLE `daily_issue_reports` + ADD CONSTRAINT `fk_dir_worker_id` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE RESTRICT, + ADD CONSTRAINT `fk_dir_project_id` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) ON DELETE RESTRICT, + ADD CONSTRAINT `fk_dir_issue_type` FOREIGN KEY (`issue_type_code_id`) REFERENCES `codes` (`code_id`) ON DELETE SET NULL; +ALTER TABLE `cutting_plans` + ADD CONSTRAINT `fk_cp_project_id` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) ON DELETE CASCADE, + ADD CONSTRAINT `fk_cp_spec_id` FOREIGN KEY (`spec_id`) REFERENCES `pipe_specs` (`spec_id`) ON DELETE RESTRICT; + + +COMMIT; + +-- ================================================================= +-- 기존 테이블 (Legacy) - 검토 후 마이그레이션 및 삭제 필요 +-- ================================================================= +/* +-- 기존 Tasks, IssueTypes, error_types 등은 `codes` 와 `code_types`로 통합 제안 +-- 아래 테이블들은 `codes` 테이블로 데이터 마이그레이션 후 삭제 고려 +CREATE TABLE `IssueTypes` ( ... ); +CREATE TABLE `error_types` ( ... ); +CREATE TABLE `work_status_types` ( ... ); +CREATE TABLE `work_types` ( ... ); + +-- daily_work_reports 로 통합된 것으로 추정되는 레거시 테이블 +CREATE TABLE `WorkReports` ( ... ); +CREATE TABLE `daily_worker_summary` ( ... ); +*/ \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/index.js b/deploy/tkfb-package/api.hyungi.net/index.js new file mode 100644 index 0000000..fded5b8 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/index.js @@ -0,0 +1,344 @@ +/** + * TK-FB-Project API Server + * + * 작업 관리 시스템의 메인 서버 애플리케이션 + * + * @author TK-FB-Project + * @since 2025-12-11 + * @version 2.2.0 + */ + +require('dotenv').config(); +const express = require('express'); +const setupMiddlewares = require('./config/middleware'); +const setupRoutes = require('./config/routes'); +const { errorHandler } = require('./middlewares/errorHandler'); +const logger = require('./utils/logger'); +const cache = require('./utils/cache'); + +const app = express(); +const PORT = process.env.PORT || 20005; + +// Trust proxy for accurate IP addresses +app.set('trust proxy', 1); + +// JSON body parser 미리 적용 (마이그레이션용) +app.use(express.json()); + +// 임시 분석 테스트 엔드포인트 - 실행 후 삭제! +app.get('/api/test-analysis', async (req, res) => { + try { + const { getDb } = require('./dbPool'); + const db = await getDb(); + + // 수정된 COALESCE 로직 테스트 (tasks 우선) + const [results] = await db.query(` + SELECT + dwr.id, + w.worker_name, + dwr.report_date, + dwr.work_type_id as original_work_type_id, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN t.work_type_id ELSE NULL END, + wt.id + ) as resolved_work_type_id, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN wt2.name ELSE NULL END, + wt.name + ) as work_type_name, + t.task_name, + wt.name as direct_match_work_type, + wt2.name as task_work_type + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt2 ON t.work_type_id = wt2.id + WHERE w.worker_name LIKE '%조승민%' OR w.worker_name LIKE '%최광욱%' + ORDER BY dwr.report_date DESC + LIMIT 20 + `); + + res.json({ + success: true, + message: 'tasks 테이블 우선 조회 결과', + data: results.map(r => ({ + id: r.id, + worker: r.worker_name, + date: r.report_date, + original_id: r.original_work_type_id, + resolved_work_type: r.work_type_name, + task: r.task_name, + note: `원래 ID ${r.original_work_type_id} → ${r.work_type_name}` + })) + }); + + } catch (error) { + console.error('테스트 실패:', error); + res.status(500).json({ success: false, error: error.message }); + } +}); + +// 임시 진단 엔드포인트 - 실행 후 삭제! +app.get('/api/diagnose-work-type-id', async (req, res) => { + try { + const { getDb } = require('./dbPool'); + const db = await getDb(); + + // 1. 전체 작업보고서 현황 + const [totalStats] = await db.query(` + SELECT + COUNT(*) as total_reports, + COUNT(tbm_assignment_id) as tbm_reports, + COUNT(CASE WHEN tbm_assignment_id IS NULL THEN 1 END) as non_tbm_reports + FROM daily_work_reports + `); + + // 2. work_type_id 값 분포 (상위 20개) + const [workTypeDistribution] = await db.query(` + SELECT + dwr.work_type_id, + COUNT(*) as count, + wt.name as if_work_type, + t.task_name as if_task, + wt2.name as task_work_type + FROM daily_work_reports dwr + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt2 ON t.work_type_id = wt2.id + GROUP BY dwr.work_type_id + ORDER BY count DESC + LIMIT 20 + `); + + // 3. 특정 작업자 데이터 확인 (조승민, 최광욱) + const [workerSamples] = await db.query(` + SELECT + dwr.id, + w.worker_name, + dwr.work_type_id, + dwr.tbm_assignment_id, + wt.name as direct_work_type, + t.task_name, + wt2.name as task_work_type, + dwr.report_date + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt2 ON t.work_type_id = wt2.id + WHERE w.worker_name LIKE '%조승민%' OR w.worker_name LIKE '%최광욱%' + ORDER BY dwr.report_date DESC + LIMIT 20 + `); + + res.json({ + success: true, + data: { + total_stats: totalStats[0], + work_type_distribution: workTypeDistribution, + worker_samples: workerSamples + } + }); + + } catch (error) { + console.error('진단 실패:', error); + res.status(500).json({ success: false, error: error.message }); + } +}); + +// 임시 마이그레이션 엔드포인트 (인증 없이 실행) - 실행 후 삭제! +app.post('/api/migrate-work-type-id', async (req, res) => { + try { + const { getDb } = require('./dbPool'); + const db = await getDb(); + + console.log('🔄 TBM 기반 작업보고서 work_type_id 수정 시작...'); + + // 1. 수정 대상 확인 + const [checkResult] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id as current_work_type_id, + ta.task_id as correct_task_id, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + INNER JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + ORDER BY dwr.report_date DESC + `); + + console.log('📊 수정 대상:', checkResult.length, '개 레코드'); + + if (checkResult.length === 0) { + return res.json({ + success: true, + message: '수정할 데이터가 없습니다.', + data: { affected_rows: 0 } + }); + } + + // 2. 업데이트 실행 + const [updateResult] = await db.query(` + UPDATE daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + SET dwr.work_type_id = ta.task_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + `); + + console.log('✅ 업데이트 완료:', updateResult.affectedRows, '개 레코드 수정됨'); + + // 3. 수정 후 확인 + const [samples] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id, + t.task_name, + wt.name as work_type_name, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + ORDER BY dwr.report_date DESC + LIMIT 10 + `); + + res.json({ + success: true, + message: updateResult.affectedRows + '개 레코드가 수정되었습니다.', + data: { + affected_rows: updateResult.affectedRows, + before_count: checkResult.length, + samples: samples.map(s => ({ + id: s.id, + worker: s.worker_name, + date: s.report_date, + task: s.task_name, + work_type: s.work_type_name + })) + } + }); + + } catch (error) { + console.error('마이그레이션 실패:', error); + res.status(500).json({ + success: false, + error: '마이그레이션 실패: ' + error.message + }); + } +}); + +// 미들웨어 설정 +setupMiddlewares(app); + +// 라우트 설정 +setupRoutes(app); + +// 에러 핸들러 (모든 라우트 이후에 위치) +app.use(errorHandler); + +// 404 핸들러 +app.use((req, res) => { + logger.warn('404 Not Found', { url: req.originalUrl, method: req.method }); + res.status(404).json({ + success: false, + error: '요청하신 경로를 찾을 수 없습니다', + path: req.originalUrl + }); +}); + +// 서버 시작 +const server = app.listen(PORT, () => { + logger.info(`서버 시작 완료`, { + port: PORT, + env: process.env.NODE_ENV || 'development', + nodeVersion: process.version + }); + console.log(`\n🚀 서버가 포트 ${PORT}에서 실행 중입니다.`); + console.log(`📚 API 문서: http://localhost:${PORT}/api-docs\n`); +}); + +// Graceful Shutdown +const gracefulShutdown = (signal) => { + logger.info(`${signal} 신호 수신 - 서버 종료 시작`); + console.log(`\n🛑 ${signal} 신호를 받았습니다. 서버를 종료합니다...`); + + server.close(async () => { + logger.info('HTTP 서버 종료 완료'); + console.log('✅ HTTP 서버가 정상적으로 종료되었습니다.'); + + // 리소스 정리 + try { + // DB 연결 종료는 각 요청에서 pool을 사용하므로 불필요 + // Redis 종료 (사용 중인 경우) + if (cache.redis) { + await cache.redis.quit(); + logger.info('캐시 시스템 종료 완료'); + } + } catch (error) { + logger.error('리소스 정리 중 오류 발생', { error: error.message }); + } + + process.exit(0); + }); + + // 30초 후 강제 종료 + setTimeout(() => { + logger.error('강제 종료 - 정상 종료 시간 초과'); + console.error('❌ 정상 종료 실패, 강제 종료합니다.'); + process.exit(1); + }, 30000); +}; + +// 시그널 핸들러 등록 +process.on('SIGTERM', () => gracefulShutdown('SIGTERM')); +process.on('SIGINT', () => gracefulShutdown('SIGINT')); + +// 처리되지 않은 Promise 거부 +process.on('unhandledRejection', (reason, promise) => { + logger.error('처리되지 않은 Promise 거부', { + reason: reason, + promise: promise + }); + console.error('⚠️ 처리되지 않은 Promise 거부:', reason); + + if (process.env.NODE_ENV === 'development') { + process.exit(1); + } +}); + +// 처리되지 않은 예외 +process.on('uncaughtException', (error) => { + logger.error('처리되지 않은 예외', { + error: error.message, + stack: error.stack + }); + console.error('💥 처리되지 않은 예외:', error); + gracefulShutdown('UNCAUGHT_EXCEPTION'); +}); + +// 캐시 시스템 초기화 (선택적) +(async () => { + try { + if (cache.initRedis) { + await cache.initRedis(); + logger.info('캐시 시스템 초기화 완료'); + console.log('✅ 캐시 시스템 초기화 완료'); + } + } catch (error) { + logger.warn('캐시 시스템 초기화 실패 - 계속 진행', { error: error.message }); + console.warn('⚠️ 캐시 시스템 초기화 실패:', error.message); + } +})(); + +module.exports = app; diff --git a/deploy/tkfb-package/api.hyungi.net/jest.config.js b/deploy/tkfb-package/api.hyungi.net/jest.config.js new file mode 100644 index 0000000..89a2a5c --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/jest.config.js @@ -0,0 +1,91 @@ +/** + * Jest 설정 파일 + * + * TK-FB-Project 테스트 환경 설정 + */ + +module.exports = { + // Node.js 환경에서 테스트 실행 + testEnvironment: 'node', + + // 커버리지 리포트 저장 디렉토리 + coverageDirectory: 'coverage', + + // 커버리지 수집 대상 파일 + collectCoverageFrom: [ + 'controllers/**/*.js', + 'services/**/*.js', + 'models/**/*.js', + 'middlewares/**/*.js', + 'utils/**/*.js', + '!**/node_modules/**', + '!**/coverage/**', + '!**/tests/**', + '!index.js' // 서버 시작 파일 제외 + ], + + // 테스트 파일 패턴 + testMatch: [ + '**/tests/**/*.test.js', + '**/tests/**/*.spec.js' + ], + + // 테스트 실행 전 설정 파일 + setupFilesAfterEnv: ['/tests/setup.js'], + + // 상세 출력 모드 + verbose: true, + + // 커버리지 수집 활성화 + collectCoverage: false, // 기본은 false, npm run test:coverage에서만 true + + // 커버리지 리포트 형식 + coverageReporters: ['text', 'lcov', 'html', 'json-summary'], + + // 커버리지 임계값 (이 값 이하면 테스트 실패) + coverageThreshold: { + global: { + branches: 50, + functions: 50, + lines: 50, + statements: 50 + } + }, + + // 테스트 타임아웃 (밀리초) + testTimeout: 10000, + + // 모듈 경로 매핑 (선택사항) + moduleNameMapper: { + '^@/(.*)$': '/$1', + '^@controllers/(.*)$': '/controllers/$1', + '^@services/(.*)$': '/services/$1', + '^@models/(.*)$': '/models/$1', + '^@utils/(.*)$': '/utils/$1', + '^@middlewares/(.*)$': '/middlewares/$1' + }, + + // 무시할 경로 + testPathIgnorePatterns: [ + '/node_modules/', + '/coverage/', + '/dist/' + ], + + // 병렬 테스트 실행 워커 수 (기본값: CPU 코어 수 - 1) + // maxWorkers: 4, + + // 실패한 테스트만 재실행 옵션 + // bail: 1, // 첫 번째 실패 시 중단 + + // 테스트 결과 리포터 + reporters: [ + 'default', + // ['jest-junit', { outputDirectory: 'coverage', outputName: 'junit.xml' }] + ], + + // 글로벌 설정 + globals: { + 'NODE_ENV': 'test' + } +}; diff --git a/deploy/tkfb-package/api.hyungi.net/knexfile.js b/deploy/tkfb-package/api.hyungi.net/knexfile.js new file mode 100644 index 0000000..09a7d08 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/knexfile.js @@ -0,0 +1,57 @@ +require('dotenv').config(); + +module.exports = { + development: { + client: 'mysql2', + connection: { + host: process.env.DB_HOST, + port: process.env.DB_PORT, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + database: process.env.DB_NAME, + socketPath: process.env.DB_SOCKET + }, + migrations: { + directory: './db/migrations' + }, + seeds: { + directory: './db/seeds' + } + }, + + staging: { + client: 'mysql2', + connection: { + host: process.env.DB_HOST, + port: process.env.DB_PORT, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + database: process.env.DB_NAME, + socketPath: process.env.DB_SOCKET + }, + migrations: { + directory: './db/migrations' + }, + seeds: { + directory: './db/seeds' + } + }, + + production: { + client: 'mysql2', + connection: { + host: process.env.DB_HOST, + port: process.env.DB_PORT, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + database: process.env.DB_NAME, + socketPath: process.env.DB_SOCKET + }, + migrations: { + directory: './db/migrations' + }, + seeds: { + directory: './db/seeds' + } + } +}; diff --git a/deploy/tkfb-package/api.hyungi.net/middlewares/access.js b/deploy/tkfb-package/api.hyungi.net/middlewares/access.js new file mode 100644 index 0000000..2e12395 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/middlewares/access.js @@ -0,0 +1,9 @@ +// utils/access.js +exports.requireAccess = (...allowed) => { + return (req, res, next) => { + if (!req.user || !allowed.includes(req.user.access_level)) { + return res.status(403).json({ error: '접근 권한이 없습니다' }); + } + next(); + }; +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/middlewares/accessMiddleware.js b/deploy/tkfb-package/api.hyungi.net/middlewares/accessMiddleware.js new file mode 100644 index 0000000..d774915 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/middlewares/accessMiddleware.js @@ -0,0 +1,29 @@ +/** + * @deprecated 이 파일은 하위 호환성을 위해 유지됩니다. + * 새로운 코드에서는 '../middlewares/auth'의 requireMinLevel을 사용하세요. + * + * @example + * // 이전 방식 (deprecated) + * const { requireAccess, ACCESS_LEVELS } = require('../middlewares/accessMiddleware'); + * router.get('/admin', requireAccess('admin'), handler); + * + * // 새로운 방식 (권장) + * const { requireMinLevel, ACCESS_LEVELS } = require('../middlewares/auth'); + * router.get('/admin', requireAuth, requireMinLevel('admin'), handler); + */ + +const { requireMinLevel, ACCESS_LEVELS } = require('./auth'); + +/** + * @deprecated requireMinLevel을 사용하세요 + */ +const requireAccess = (requiredLevel) => { + return requireMinLevel(requiredLevel); +}; + +module.exports = { + requireAccess, + ACCESS_LEVELS, + // 새로운 API + requireMinLevel +}; diff --git a/deploy/tkfb-package/api.hyungi.net/middlewares/activityLogger.js b/deploy/tkfb-package/api.hyungi.net/middlewares/activityLogger.js new file mode 100644 index 0000000..7008cbd --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/middlewares/activityLogger.js @@ -0,0 +1,71 @@ +/** + * 활동 로깅 미들웨어 + * + * HTTP 요청/응답 활동을 기록하는 미들웨어 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const logger = require('../utils/logger'); + +/** + * 활동 로거 미들웨어 + * 모든 HTTP 요청의 시작과 완료를 기록 + */ +const activityLogger = (req, res, next) => { + const start = Date.now(); + + // 응답 완료 시 로깅 + res.on('finish', () => { + const duration = Date.now() - start; + const username = req.user?.username || 'anonymous'; + + const logData = { + method: req.method, + url: req.originalUrl, + statusCode: res.statusCode, + duration: `${duration}ms`, + ip: req.ip, + user: username, + userAgent: req.get('User-Agent') + }; + + // 상태 코드에 따른 로그 레벨 분기 + if (res.statusCode >= 500) { + logger.error('HTTP Request - Server Error', logData); + } else if (res.statusCode >= 400) { + logger.warn('HTTP Request - Client Error', logData); + } else if (res.statusCode >= 300) { + logger.info('HTTP Request - Redirect', logData); + } else { + logger.info('HTTP Request - Success', logData); + } + }); + + next(); +}; + +/** + * 민감한 경로 필터 미들웨어 + * 로그에서 민감한 정보를 제외 + */ +const sensitivePathFilter = (req, res, next) => { + const sensitivePaths = [ + '/api/auth/login', + '/api/auth/refresh-token', + '/api/users/password' + ]; + + // 민감한 경로의 경우 바디 로깅 스킵 + if (sensitivePaths.some(path => req.originalUrl.includes(path))) { + req.skipBodyLog = true; + } + + next(); +}; + +module.exports = { + activityLogger, + sensitivePathFilter +}; diff --git a/deploy/tkfb-package/api.hyungi.net/middlewares/auth.js b/deploy/tkfb-package/api.hyungi.net/middlewares/auth.js new file mode 100644 index 0000000..e956724 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/middlewares/auth.js @@ -0,0 +1,357 @@ +/** + * 통합 인증/인가 미들웨어 + * + * JWT 토큰 검증 및 권한 체크를 위한 미들웨어 모음 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const jwt = require('jsonwebtoken'); +const { AuthenticationError, ForbiddenError } = require('../utils/errors'); +const logger = require('../utils/logger'); + +/** + * 권한 레벨 계층 구조 + * 숫자가 높을수록 상위 권한 + */ +const ACCESS_LEVELS = { + worker: 1, + group_leader: 2, + support_team: 3, + admin: 4, + system: 5 +}; + +/** + * JWT 토큰 검증 미들웨어 + * + * Authorization 헤더에서 Bearer 토큰을 추출하고 검증합니다. + * 검증 성공 시 req.user에 디코딩된 사용자 정보를 저장합니다. + * + * @throws {AuthenticationError} 토큰이 없거나 유효하지 않을 때 + * + * @example + * router.get('/profile', requireAuth, getProfile); + */ +const requireAuth = (req, res, next) => { + try { + const authHeader = req.headers['authorization']; + + if (!authHeader) { + logger.warn('인증 실패: Authorization 헤더 없음', { + path: req.path, + method: req.method, + ip: req.ip + }); + throw new AuthenticationError('Authorization 헤더가 필요합니다'); + } + + const token = authHeader.split(' ')[1]; + + if (!token) { + logger.warn('인증 실패: Bearer 토큰 누락', { + path: req.path, + method: req.method, + ip: req.ip + }); + throw new AuthenticationError('Bearer 토큰이 필요합니다'); + } + + // JWT 검증 + const decoded = jwt.verify(token, process.env.JWT_SECRET); + req.user = decoded; + + logger.debug('인증 성공', { + user_id: decoded.user_id || decoded.id, + username: decoded.username, + role: decoded.role, + access_level: decoded.access_level + }); + + next(); + } catch (err) { + if (err.name === 'JsonWebTokenError') { + logger.warn('인증 실패: 유효하지 않은 토큰', { + error: err.message, + path: req.path, + ip: req.ip + }); + throw new AuthenticationError('유효하지 않은 토큰입니다'); + } else if (err.name === 'TokenExpiredError') { + logger.warn('인증 실패: 만료된 토큰', { + error: err.message, + path: req.path, + ip: req.ip + }); + throw new AuthenticationError('토큰이 만료되었습니다'); + } else if (err instanceof AuthenticationError) { + // 이미 AuthenticationError인 경우 그대로 throw + throw err; + } else { + logger.error('인증 처리 중 예상치 못한 오류', { + error: err.message, + stack: err.stack + }); + throw new AuthenticationError('인증 처리 중 오류가 발생했습니다'); + } + } +}; + +/** + * 특정 역할(들) 권한 체크 미들웨어 + * + * 사용자가 지정된 역할 중 하나를 가지고 있는지 확인합니다. + * requireAuth 미들웨어가 먼저 실행되어야 합니다. + * + * @param {...string} roles - 허용할 역할 목록 + * @returns {Function} Express 미들웨어 함수 + * @throws {AuthenticationError} 인증되지 않은 경우 + * @throws {ForbiddenError} 권한이 없는 경우 + * + * @example + * // 단일 역할 + * router.post('/admin/users', requireAuth, requireRole('admin'), createUser); + * + * // 여러 역할 + * router.get('/reports', requireAuth, requireRole('admin', 'support_team'), getReports); + */ +const requireRole = (...roles) => { + return (req, res, next) => { + try { + if (!req.user) { + logger.warn('권한 체크 실패: 인증되지 않은 요청', { + path: req.path, + method: req.method, + ip: req.ip + }); + throw new AuthenticationError('인증이 필요합니다'); + } + + const userRole = req.user.role; + const userRoleLower = userRole ? userRole.toLowerCase() : ''; + const rolesLower = roles.map(r => r.toLowerCase()); + + if (!rolesLower.includes(userRoleLower)) { + logger.warn('권한 체크 실패: 역할 불일치', { + user_id: req.user.user_id || req.user.id, + username: req.user.username, + current_role: userRole, + required_roles: roles, + path: req.path + }); + throw new ForbiddenError( + `이 기능을 사용하려면 ${roles.join(' 또는 ')} 권한이 필요합니다` + ); + } + + logger.debug('역할 권한 확인 성공', { + user_id: req.user.user_id || req.user.id, + username: req.user.username, + role: userRole, + required_roles: roles + }); + + next(); + } catch (err) { + next(err); + } + }; +}; + +/** + * 최소 권한 레벨 체크 미들웨어 (계층적) + * + * 사용자가 요구되는 최소 권한 레벨 이상인지 확인합니다. + * worker(1) < group_leader(2) < support_team(3) < admin(4) < system(5) + * requireAuth 미들웨어가 먼저 실행되어야 합니다. + * + * @param {string} minLevel - 최소 권한 레벨 (worker, group_leader, support_team, admin, system) + * @returns {Function} Express 미들웨어 함수 + * @throws {AuthenticationError} 인증되지 않은 경우 + * @throws {ForbiddenError} 권한이 부족한 경우 + * + * @example + * // admin 이상 필요 (admin, system만 허용) + * router.delete('/users/:id', requireAuth, requireMinLevel('admin'), deleteUser); + * + * // group_leader 이상 필요 (group_leader, support_team, admin, system 허용) + * router.get('/team-reports', requireAuth, requireMinLevel('group_leader'), getTeamReports); + */ +const requireMinLevel = (minLevel) => { + return (req, res, next) => { + try { + if (!req.user) { + logger.warn('권한 레벨 체크 실패: 인증되지 않은 요청', { + path: req.path, + method: req.method, + ip: req.ip + }); + throw new AuthenticationError('인증이 필요합니다'); + } + + const userLevel = ACCESS_LEVELS[req.user.access_level] || 0; + const requiredLevel = ACCESS_LEVELS[minLevel] || 999; + + if (userLevel < requiredLevel) { + logger.warn('권한 레벨 체크 실패: 권한 부족', { + user_id: req.user.user_id || req.user.id, + username: req.user.username, + current_level: req.user.access_level, + current_level_value: userLevel, + required_level: minLevel, + required_level_value: requiredLevel, + path: req.path + }); + throw new ForbiddenError( + `이 기능을 사용하려면 ${minLevel} 이상의 권한이 필요합니다 (현재: ${req.user.access_level})` + ); + } + + logger.debug('권한 레벨 확인 성공', { + user_id: req.user.user_id || req.user.id, + username: req.user.username, + access_level: req.user.access_level, + required_level: minLevel + }); + + next(); + } catch (err) { + next(err); + } + }; +}; + +/** + * 리소스 소유자 또는 관리자 권한 체크 미들웨어 + * + * 요청한 사용자가 리소스의 소유자이거나 관리자 권한이 있는지 확인합니다. + * requireAuth 미들웨어가 먼저 실행되어야 합니다. + * + * @param {Object} options - 옵션 객체 + * @param {string} options.resourceField - 리소스 ID를 가져올 req 필드 (예: 'params.user_id', 'body.worker_id') + * @param {string} options.userField - 사용자 ID 필드명 (기본값: 'user_id', 'id'도 자동 시도) + * @param {string[]} options.adminRoles - 관리자로 인정할 역할들 (기본값: ['admin', 'system']) + * @returns {Function} Express 미들웨어 함수 + * @throws {AuthenticationError} 인증되지 않은 경우 + * @throws {ForbiddenError} 소유자도 아니고 관리자도 아닌 경우 + * + * @example + * // URL 파라미터의 user_id로 체크 + * router.put('/users/:user_id', requireAuth, requireOwnerOrAdmin({ + * resourceField: 'params.user_id' + * }), updateUser); + * + * // 요청 body의 worker_id로 체크, support_team도 관리자로 인정 + * router.delete('/reports/:id', requireAuth, requireOwnerOrAdmin({ + * resourceField: 'body.worker_id', + * adminRoles: ['admin', 'system', 'support_team'] + * }), deleteReport); + */ +const requireOwnerOrAdmin = (options = {}) => { + const { + resourceField = 'params.id', + userField = 'user_id', + adminRoles = ['admin', 'system'] + } = options; + + return (req, res, next) => { + try { + if (!req.user) { + logger.warn('소유자/관리자 체크 실패: 인증되지 않은 요청', { + path: req.path, + method: req.method, + ip: req.ip + }); + throw new AuthenticationError('인증이 필요합니다'); + } + + // 관리자 권한 체크 + const userRole = req.user.role; + const isAdmin = adminRoles.includes(userRole); + + if (isAdmin) { + logger.debug('관리자 권한으로 접근 허용', { + user_id: req.user.user_id || req.user.id, + username: req.user.username, + role: userRole, + path: req.path + }); + return next(); + } + + // 리소스 ID 추출 + const fieldParts = resourceField.split('.'); + let resourceId = req; + for (const part of fieldParts) { + resourceId = resourceId[part]; + if (resourceId === undefined) break; + } + + // 사용자 ID (user_id 또는 id) + const userId = req.user[userField] || req.user.id || req.user.user_id; + + // 소유자 체크 + const isOwner = resourceId && String(resourceId) === String(userId); + + if (!isOwner) { + logger.warn('소유자/관리자 체크 실패: 권한 부족', { + user_id: userId, + username: req.user.username, + role: userRole, + resource_id: resourceId, + resource_field: resourceField, + is_admin: isAdmin, + is_owner: isOwner, + path: req.path + }); + throw new ForbiddenError('본인의 리소스이거나 관리자 권한이 필요합니다'); + } + + logger.debug('리소스 소유자로 접근 허용', { + user_id: userId, + username: req.user.username, + resource_id: resourceId, + path: req.path + }); + + next(); + } catch (err) { + next(err); + } + }; +}; + +/** + * 레거시 호환성을 위한 별칭 + * @deprecated requireAuth를 사용하세요 + */ +const verifyToken = requireAuth; + +/** + * 레거시 호환성을 위한 별칭 + * @deprecated requireRole('admin', 'system')을 사용하세요 + */ +const requireAdmin = requireRole('admin', 'system'); + +/** + * 레거시 호환성을 위한 별칭 + * @deprecated requireRole('system')을 사용하세요 + */ +const requireSystem = requireRole('system'); + +module.exports = { + // 주요 미들웨어 + requireAuth, + requireRole, + requireMinLevel, + requireOwnerOrAdmin, + + // 레거시 호환성 + verifyToken, + requireAdmin, + requireSystem, + + // 상수 + ACCESS_LEVELS +}; diff --git a/deploy/tkfb-package/api.hyungi.net/middlewares/authMiddleware.js b/deploy/tkfb-package/api.hyungi.net/middlewares/authMiddleware.js new file mode 100644 index 0000000..6fded28 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/middlewares/authMiddleware.js @@ -0,0 +1,36 @@ +/** + * @deprecated 이 파일은 하위 호환성을 위해 유지됩니다. + * 새로운 코드에서는 './auth'를 직접 import하세요. + * + * @example + * // 이전 방식 (deprecated) + * const { verifyToken, requireAdmin } = require('../middlewares/authMiddleware'); + * + * // 새로운 방식 (권장) + * const { requireAuth, requireRole } = require('../middlewares/auth'); + */ + +const { + requireAuth, + requireRole, + requireMinLevel, + requireOwnerOrAdmin, + verifyToken, + requireAdmin, + requireSystem, + ACCESS_LEVELS +} = require('./auth'); + +module.exports = { + // 레거시 별칭 (하위 호환성) + verifyToken, + requireAdmin, + requireSystem, + + // 새로운 API (권장) + requireAuth, + requireRole, + requireMinLevel, + requireOwnerOrAdmin, + ACCESS_LEVELS +}; diff --git a/deploy/tkfb-package/api.hyungi.net/middlewares/csrf.js b/deploy/tkfb-package/api.hyungi.net/middlewares/csrf.js new file mode 100644 index 0000000..ef2bca6 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/middlewares/csrf.js @@ -0,0 +1,201 @@ +/** + * CSRF Protection Middleware + * + * Cross-Site Request Forgery 방지를 위한 토큰 기반 보호 + * + * 구현 방식: + * 1. 서버에서 CSRF 토큰 생성 및 응답 헤더로 전송 + * 2. 클라이언트는 state-changing 요청 시 토큰을 헤더에 포함 + * 3. 서버에서 토큰 검증 + * + * @author TK-FB-Project + * @since 2026-02-04 + */ + +const crypto = require('crypto'); +const logger = require('../utils/logger'); + +// 토큰 저장소 (프로덕션에서는 Redis 사용 권장) +const tokenStore = new Map(); + +// 토큰 유효 시간 (1시간) +const TOKEN_EXPIRY = 60 * 60 * 1000; + +// 토큰 정리 주기 (5분) +const CLEANUP_INTERVAL = 5 * 60 * 1000; + +/** + * 만료된 토큰 정리 + */ +const cleanupExpiredTokens = () => { + const now = Date.now(); + for (const [token, data] of tokenStore.entries()) { + if (now > data.expiresAt) { + tokenStore.delete(token); + } + } +}; + +// 주기적 정리 +setInterval(cleanupExpiredTokens, CLEANUP_INTERVAL); + +/** + * CSRF 토큰 생성 + * + * @param {string} sessionId - 세션 ID 또는 사용자 식별자 + * @returns {string} 생성된 CSRF 토큰 + */ +const generateToken = (sessionId) => { + const token = crypto.randomBytes(32).toString('hex'); + const expiresAt = Date.now() + TOKEN_EXPIRY; + + tokenStore.set(token, { + sessionId, + expiresAt, + createdAt: Date.now() + }); + + return token; +}; + +/** + * CSRF 토큰 검증 + * + * @param {string} token - 검증할 토큰 + * @param {string} sessionId - 세션 ID + * @returns {boolean} 유효 여부 + */ +const validateToken = (token, sessionId) => { + if (!token || !tokenStore.has(token)) { + return false; + } + + const data = tokenStore.get(token); + + // 만료 체크 + if (Date.now() > data.expiresAt) { + tokenStore.delete(token); + return false; + } + + // 세션 일치 체크 + if (data.sessionId !== sessionId) { + return false; + } + + return true; +}; + +/** + * CSRF 토큰을 응답 헤더에 설정하는 미들웨어 + * + * @param {Object} req - Express request + * @param {Object} res - Express response + * @param {Function} next - Next middleware + */ +const setCsrfToken = (req, res, next) => { + // 세션 ID 또는 사용자 ID 사용 + const sessionId = req.user?.user_id?.toString() || req.sessionID || req.ip; + + // 새 토큰 생성 + const token = generateToken(sessionId); + + // 응답 헤더에 토큰 설정 + res.setHeader('X-CSRF-Token', token); + + // 요청 객체에 저장 (다른 미들웨어에서 사용 가능) + req.csrfToken = token; + + next(); +}; + +/** + * CSRF 토큰 검증 미들웨어 + * POST, PUT, DELETE, PATCH 요청에 적용 + * + * @param {Object} options - 옵션 + * @param {string[]} options.ignoreMethods - 검증 제외 메서드 (기본: GET, HEAD, OPTIONS) + * @param {string[]} options.ignorePaths - 검증 제외 경로 (정규식 패턴 가능) + * @returns {Function} Express 미들웨어 + */ +const verifyCsrfToken = (options = {}) => { + const { + ignoreMethods = ['GET', 'HEAD', 'OPTIONS'], + ignorePaths = ['/api/auth/login', '/api/auth/register', '/api/health'] + } = options; + + return (req, res, next) => { + // 제외 메서드 체크 + if (ignoreMethods.includes(req.method)) { + return next(); + } + + // 제외 경로 체크 + for (const pattern of ignorePaths) { + if (typeof pattern === 'string' && req.path === pattern) { + return next(); + } + if (pattern instanceof RegExp && pattern.test(req.path)) { + return next(); + } + } + + // 토큰 추출 (헤더 또는 body에서) + const token = req.headers['x-csrf-token'] || + req.headers['csrf-token'] || + req.body?._csrf || + req.query?._csrf; + + // 세션 ID + const sessionId = req.user?.user_id?.toString() || req.sessionID || req.ip; + + // 토큰 검증 + if (!validateToken(token, sessionId)) { + logger.warn('CSRF 토큰 검증 실패', { + path: req.path, + method: req.method, + ip: req.ip, + hasToken: !!token + }); + + return res.status(403).json({ + success: false, + error: 'CSRF 토큰이 유효하지 않습니다. 페이지를 새로고침 후 다시 시도해주세요.', + code: 'CSRF_TOKEN_INVALID' + }); + } + + // 사용된 토큰 제거 (일회성 사용) + tokenStore.delete(token); + + // 새 토큰 발급 + const newToken = generateToken(sessionId); + res.setHeader('X-CSRF-Token', newToken); + req.csrfToken = newToken; + + next(); + }; +}; + +/** + * CSRF 토큰 발급 엔드포인트 핸들러 + * GET /api/csrf-token + */ +const getCsrfToken = (req, res) => { + const sessionId = req.user?.user_id?.toString() || req.sessionID || req.ip; + const token = generateToken(sessionId); + + res.json({ + success: true, + csrfToken: token, + expiresIn: TOKEN_EXPIRY / 1000 // 초 단위 + }); +}; + +module.exports = { + generateToken, + validateToken, + setCsrfToken, + verifyCsrfToken, + getCsrfToken +}; diff --git a/deploy/tkfb-package/api.hyungi.net/middlewares/errorHandler.js b/deploy/tkfb-package/api.hyungi.net/middlewares/errorHandler.js new file mode 100644 index 0000000..646926d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/middlewares/errorHandler.js @@ -0,0 +1,102 @@ +/** + * 에러 핸들러 미들웨어 + * + * 애플리케이션 전역 에러를 처리하는 Express 미들웨어 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const { AppError } = require('../utils/errors'); +const logger = require('../utils/logger'); + +/** + * 에러 응답 포맷터 + */ +const formatErrorResponse = (error, req) => { + const response = { + success: false, + error: { + message: error.message || '알 수 없는 오류가 발생했습니다', + code: error.code || 'INTERNAL_ERROR' + }, + timestamp: new Date().toISOString() + }; + + // 검증 에러의 경우 상세 정보 포함 + if (error.details) { + response.error.details = error.details; + } + + // 개발 환경에서만 스택 트레이스 포함 + if (process.env.NODE_ENV === 'development') { + response.error.stack = error.stack; + response.request = { + method: req.method, + url: req.originalUrl, + ip: req.ip, + user: req.user?.username || 'anonymous' + }; + } + + return response; +}; + +/** + * 에러 핸들러 미들웨어 + */ +const errorHandler = (error, req, res, next) => { + // AppError가 아닌 경우 변환 + if (!(error instanceof AppError)) { + error = new AppError( + error.message || '서버 내부 오류가 발생했습니다', + 500, + 'INTERNAL_ERROR' + ); + } + + // 로깅 + if (error.statusCode >= 500) { + logger.error(error.message, { + code: error.code, + stack: error.stack, + url: req.originalUrl, + method: req.method, + user: req.user?.username || 'anonymous' + }); + } else { + logger.warn(error.message, { + code: error.code, + url: req.originalUrl, + method: req.method, + user: req.user?.username || 'anonymous' + }); + } + + // 응답 + const response = formatErrorResponse(error, req); + res.status(error.statusCode).json(response); +}; + +/** + * 비동기 함수 래퍼 (에러 자동 처리) + */ +const asyncHandler = (fn) => { + return (req, res, next) => { + Promise.resolve(fn(req, res, next)).catch(next); + }; +}; + +/** + * 404 Not Found 핸들러 + */ +const notFoundHandler = (req, res, next) => { + const { NotFoundError } = require('../utils/errors'); + next(new NotFoundError(`경로를 찾을 수 없습니다: ${req.originalUrl}`)); +}; + +module.exports = { + errorHandler, + asyncHandler, + notFoundHandler +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/models/WorkAnalysis.js b/deploy/tkfb-package/api.hyungi.net/models/WorkAnalysis.js new file mode 100644 index 0000000..8513ace --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/WorkAnalysis.js @@ -0,0 +1,519 @@ +// models/WorkAnalysis.js - 향상된 버전 + +class WorkAnalysis { + constructor(db) { + this.db = db; + } + + // 기본 통계 조회 + async getBasicStats(startDate, endDate) { + const query = ` + SELECT + COALESCE(SUM(work_hours), 0) as total_hours, + COUNT(*) as total_reports, + COUNT(DISTINCT project_id) as active_projects, + COUNT(DISTINCT worker_id) as active_workers, + SUM(CASE WHEN work_status_id = 2 THEN 1 ELSE 0 END) as error_reports, + ROUND(AVG(work_hours), 2) as avg_hours_per_report + FROM daily_work_reports + WHERE report_date BETWEEN ? AND ? + `; + + try { + const [results] = await this.db.execute(query, [startDate, endDate]); + const stats = results[0]; + + const errorRate = stats.total_reports > 0 + ? (stats.error_reports / stats.total_reports) * 100 + : 0; + + return { + totalHours: parseFloat(stats.total_hours) || 0, + totalReports: parseInt(stats.total_reports) || 0, + activeProjects: parseInt(stats.active_projects) || 0, + activeworkers: parseInt(stats.active_workers) || 0, + errorRate: parseFloat(errorRate.toFixed(2)) || 0, + avgHoursPerReport: parseFloat(stats.avg_hours_per_report) || 0 + }; + } catch (error) { + throw new Error(`기본 통계 조회 실패: ${error.message}`); + } + } + + // 일별 작업시간 추이 + async getDailyTrend(startDate, endDate) { + const query = ` + SELECT + report_date as date, + SUM(work_hours) as hours, + COUNT(*) as reports, + COUNT(DISTINCT worker_id) as workers, + SUM(CASE WHEN work_status_id = 2 THEN 1 ELSE 0 END) as errors + FROM daily_work_reports + WHERE report_date BETWEEN ? AND ? + GROUP BY report_date + ORDER BY report_date + `; + + try { + const [results] = await this.db.execute(query, [startDate, endDate]); + return results.map(row => ({ + date: row.date, + hours: parseFloat(row.hours) || 0, + reports: parseInt(row.reports) || 0, + workers: parseInt(row.workers) || 0, + errors: parseInt(row.errors) || 0 + })); + } catch (error) { + throw new Error(`일별 추이 조회 실패: ${error.message}`); + } + } + + // 작업자별 통계 + async getWorkerStats(startDate, endDate) { + const query = ` + SELECT + dwr.worker_id, + w.worker_name, + SUM(dwr.work_hours) as totalHours, + COUNT(*) as totalReports, + ROUND(AVG(dwr.work_hours), 2) as avgHours, + COUNT(DISTINCT dwr.project_id) as projectCount, + SUM(CASE WHEN dwr.work_status_id = 2 THEN 1 ELSE 0 END) as errorCount, + COUNT(DISTINCT dwr.report_date) as workingDays + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.report_date BETWEEN ? AND ? + GROUP BY dwr.worker_id, w.worker_name + ORDER BY totalHours DESC + `; + + try { + const [results] = await this.db.execute(query, [startDate, endDate]); + return results.map(row => ({ + worker_id: row.worker_id, + worker_name: row.worker_name || `작업자 ${row.worker_id}`, + totalHours: parseFloat(row.totalHours) || 0, + totalReports: parseInt(row.totalReports) || 0, + avgHours: parseFloat(row.avgHours) || 0, + projectCount: parseInt(row.projectCount) || 0, + errorCount: parseInt(row.errorCount) || 0, + workingDays: parseInt(row.workingDays) || 0, + errorRate: row.totalReports > 0 ? parseFloat(((row.errorCount / row.totalReports) * 100).toFixed(2)) : 0 + })); + } catch (error) { + throw new Error(`작업자별 통계 조회 실패: ${error.message}`); + } + } + + // 프로젝트별 통계 + async getProjectStats(startDate, endDate) { + const query = ` + SELECT + dwr.project_id, + p.project_name, + SUM(dwr.work_hours) as totalHours, + COUNT(*) as totalReports, + COUNT(DISTINCT dwr.worker_id) as workerCount, + ROUND(AVG(dwr.work_hours), 2) as avgHours, + SUM(CASE WHEN dwr.work_status_id = 2 THEN 1 ELSE 0 END) as errorCount, + COUNT(DISTINCT dwr.report_date) as activeDays + FROM daily_work_reports dwr + LEFT JOIN projects p ON dwr.project_id = p.project_id + WHERE dwr.report_date BETWEEN ? AND ? + GROUP BY dwr.project_id, p.project_name + ORDER BY totalHours DESC + `; + + try { + const [results] = await this.db.execute(query, [startDate, endDate]); + return results.map(row => ({ + project_id: row.project_id, + project_name: row.project_name || `프로젝트 ${row.project_id}`, + totalHours: parseFloat(row.totalHours) || 0, + totalReports: parseInt(row.totalReports) || 0, + workerCount: parseInt(row.workerCount) || 0, + avgHours: parseFloat(row.avgHours) || 0, + errorCount: parseInt(row.errorCount) || 0, + activeDays: parseInt(row.activeDays) || 0, + errorRate: row.totalReports > 0 ? parseFloat(((row.errorCount / row.totalReports) * 100).toFixed(2)) : 0 + })); + } catch (error) { + throw new Error(`프로젝트별 통계 조회 실패: ${error.message}`); + } + } + + // 작업유형별 통계 + async getWorkTypeStats(startDate, endDate) { + const query = ` + SELECT + dwr.work_type_id, + wt.name as work_type_name, + SUM(dwr.work_hours) as totalHours, + COUNT(*) as totalReports, + ROUND(AVG(dwr.work_hours), 2) as avgHours, + COUNT(DISTINCT dwr.worker_id) as workerCount, + SUM(CASE WHEN dwr.work_status_id = 2 THEN 1 ELSE 0 END) as errorCount, + COUNT(DISTINCT dwr.project_id) as projectCount + FROM daily_work_reports dwr + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + WHERE dwr.report_date BETWEEN ? AND ? + GROUP BY dwr.work_type_id, wt.name + ORDER BY totalHours DESC + `; + + try { + const [results] = await this.db.execute(query, [startDate, endDate]); + return results.map(row => ({ + work_type_id: row.work_type_id, + work_type_name: row.work_type_name || `작업유형 ${row.work_type_id}`, + totalHours: parseFloat(row.totalHours) || 0, + totalReports: parseInt(row.totalReports) || 0, + avgHours: parseFloat(row.avgHours) || 0, + workerCount: parseInt(row.workerCount) || 0, + errorCount: parseInt(row.errorCount) || 0, + projectCount: parseInt(row.projectCount) || 0, + errorRate: row.totalReports > 0 ? parseFloat(((row.errorCount / row.totalReports) * 100).toFixed(2)) : 0 + })); + } catch (error) { + throw new Error(`작업유형별 통계 조회 실패: ${error.message}`); + } + } + + // 최근 작업 현황 + async getRecentWork(startDate, endDate, limit = 50) { + // work_type_id 컬럼에는 task_id가 저장됨 (tasks 테이블 우선 조회) + // task_id로 매칭되면 해당 task의 work_type_id로 공정(대분류) 조회 + // 매칭 안 되면 직접 work_types 테이블 조회 (레거시 데이터 호환) + // error_type_id는 issue_report_items 테이블 참조 (issue-categories.html에서 관리) + const query = ` + SELECT + dwr.id, + dwr.report_date, + dwr.worker_id, + w.worker_name, + dwr.project_id, + p.project_name, + p.job_no, + dwr.work_type_id as original_work_type_id, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN t.work_type_id ELSE NULL END, + wt.id + ) as work_type_id, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN wt2.name ELSE NULL END, + wt.name + ) as work_type_name, + t.task_name as task_name, + dwr.work_status_id, + wst.name as work_status_name, + dwr.error_type_id, + iri.item_name as error_type_name, + irc.category_name as error_category_name, + dwr.work_hours, + dwr.created_by, + u.name as created_by_name, + dwr.created_at + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN projects p ON dwr.project_id = p.project_id + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt2 ON t.work_type_id = wt2.id + LEFT JOIN work_status_types wst ON dwr.work_status_id = wst.id + LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id + LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id + LEFT JOIN users u ON dwr.created_by = u.user_id + WHERE dwr.report_date BETWEEN ? AND ? + ORDER BY dwr.created_at DESC + LIMIT ? + `; + + try { + const [results] = await this.db.execute(query, [startDate, endDate, parseInt(limit)]); + return results.map(row => ({ + id: row.id, + report_date: row.report_date, + worker_id: row.worker_id, + worker_name: row.worker_name || `작업자 ${row.worker_id}`, + project_id: row.project_id, + project_name: row.project_name || `프로젝트 ${row.project_id}`, + job_no: row.job_no || 'N/A', + work_type_id: row.work_type_id, + work_type_name: row.work_type_name || `작업유형 ${row.original_work_type_id}`, + task_name: row.task_name || null, + work_status_id: row.work_status_id, + work_status_name: row.work_status_name || '정상', + error_type_id: row.error_type_id, + error_type_name: row.error_type_name || null, + error_category_name: row.error_category_name || null, + work_hours: parseFloat(row.work_hours) || 0, + created_by: row.created_by, + created_by_name: row.created_by_name || '미지정', + created_at: row.created_at + })); + } catch (error) { + throw new Error(`최근 작업 현황 조회 실패: ${error.message}`); + } + } + + // 요일별 패턴 분석 + async getWeekdayPattern(startDate, endDate) { + const query = ` + SELECT + DAYOFWEEK(report_date) as day_of_week, + CASE DAYOFWEEK(report_date) + WHEN 1 THEN '일요일' + WHEN 2 THEN '월요일' + WHEN 3 THEN '화요일' + WHEN 4 THEN '수요일' + WHEN 5 THEN '목요일' + WHEN 6 THEN '금요일' + WHEN 7 THEN '토요일' + END as day_name, + SUM(work_hours) as total_hours, + COUNT(*) as total_reports, + ROUND(AVG(work_hours), 2) as avg_hours, + COUNT(DISTINCT worker_id) as active_workers + FROM daily_work_reports + WHERE report_date BETWEEN ? AND ? + GROUP BY DAYOFWEEK(report_date) + ORDER BY day_of_week + `; + + try { + const [results] = await this.db.execute(query, [startDate, endDate]); + return results.map(row => ({ + dayOfWeek: row.day_of_week, + dayName: row.day_name, + totalHours: parseFloat(row.total_hours) || 0, + totalReports: parseInt(row.total_reports) || 0, + avgHours: parseFloat(row.avg_hours) || 0, + activeworkers: parseInt(row.active_workers) || 0 + })); + } catch (error) { + throw new Error(`요일별 패턴 분석 실패: ${error.message}`); + } + } + + // 에러 분석 + // error_type_id는 issue_report_items 테이블 참조 (issue-categories.html에서 관리) + async getErrorAnalysis(startDate, endDate) { + const query = ` + SELECT + dwr.error_type_id, + iri.item_name as error_type_name, + irc.category_name as error_category_name, + COUNT(*) as error_count, + SUM(dwr.work_hours) as total_hours, + COUNT(DISTINCT dwr.worker_id) as affected_workers, + COUNT(DISTINCT dwr.project_id) as affected_projects + FROM daily_work_reports dwr + LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id + LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id + WHERE dwr.report_date BETWEEN ? AND ? + AND dwr.work_status_id = 2 + GROUP BY dwr.error_type_id, iri.item_name, irc.category_name + ORDER BY error_count DESC + `; + + try { + const [results] = await this.db.execute(query, [startDate, endDate]); + return results.map(row => ({ + error_type_id: row.error_type_id, + error_type_name: row.error_type_name || `에러유형 ${row.error_type_id}`, + error_category_name: row.error_category_name || null, + errorCount: parseInt(row.error_count) || 0, + totalHours: parseFloat(row.total_hours) || 0, + affectedworkers: parseInt(row.affected_workers) || 0, + affectedProjects: parseInt(row.affected_projects) || 0 + })); + } catch (error) { + throw new Error(`에러 분석 실패: ${error.message}`); + } + } + + // 월별 비교 분석 + async getMonthlyComparison(year) { + const query = ` + SELECT + MONTH(report_date) as month, + MONTHNAME(report_date) as month_name, + SUM(work_hours) as total_hours, + COUNT(*) as total_reports, + COUNT(DISTINCT worker_id) as active_workers, + COUNT(DISTINCT project_id) as active_projects, + SUM(CASE WHEN work_status_id = 2 THEN 1 ELSE 0 END) as error_count + FROM daily_work_reports + WHERE YEAR(report_date) = ? + GROUP BY MONTH(report_date), MONTHNAME(report_date) + ORDER BY month + `; + + try { + const [results] = await this.db.execute(query, [year]); + return results.map(row => ({ + month: row.month, + monthName: row.month_name, + totalHours: parseFloat(row.total_hours) || 0, + totalReports: parseInt(row.total_reports) || 0, + activeworkers: parseInt(row.active_workers) || 0, + activeProjects: parseInt(row.active_projects) || 0, + errorCount: parseInt(row.error_count) || 0, + errorRate: row.total_reports > 0 ? parseFloat(((row.error_count / row.total_reports) * 100).toFixed(2)) : 0 + })); + } catch (error) { + throw new Error(`월별 비교 분석 실패: ${error.message}`); + } + } + + // 작업자별 전문분야 분석 + async getWorkerSpecialization(startDate, endDate) { + const query = ` + SELECT + dwr.worker_id, + w.worker_name, + dwr.work_type_id, + wt.name as work_type_name, + dwr.project_id, + p.project_name, + SUM(dwr.work_hours) as totalHours, + COUNT(*) as totalReports, + ROUND((SUM(dwr.work_hours) / ( + SELECT SUM(work_hours) + FROM daily_work_reports + WHERE worker_id = dwr.worker_id + AND report_date BETWEEN ? AND ? + )) * 100, 2) as percentage + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN projects p ON dwr.project_id = p.project_id + WHERE dwr.report_date BETWEEN ? AND ? + GROUP BY dwr.worker_id, w.worker_name, dwr.work_type_id, wt.name, dwr.project_id, p.project_name + HAVING totalHours > 0 + ORDER BY dwr.worker_id, totalHours DESC + `; + + try { + const [results] = await this.db.execute(query, [startDate, endDate, startDate, endDate]); + return results.map(row => ({ + worker_id: row.worker_id, + worker_name: row.worker_name || `작업자 ${row.worker_id}`, + work_type_id: row.work_type_id, + work_type_name: row.work_type_name || `작업유형 ${row.work_type_id}`, + project_id: row.project_id, + project_name: row.project_name || `프로젝트 ${row.project_id}`, + totalHours: parseFloat(row.totalHours) || 0, + totalReports: parseInt(row.totalReports) || 0, + percentage: parseFloat(row.percentage) || 0 + })); + } catch (error) { + throw new Error(`작업자별 전문분야 분석 실패: ${error.message}`); + } + } + + // 대시보드용 종합 데이터 + async getDashboardData(startDate, endDate) { + try { + // 병렬로 모든 데이터 조회 + const [ + stats, + dailyTrend, + workerStats, + projectStats, + workTypeStats, + recentWork + ] = await Promise.all([ + this.getBasicStats(startDate, endDate), + this.getDailyTrend(startDate, endDate), + this.getWorkerStats(startDate, endDate), + this.getProjectStats(startDate, endDate), + this.getWorkTypeStats(startDate, endDate), + this.getRecentWork(startDate, endDate, 20) + ]); + + return { + stats, + dailyTrend, + workerStats, + projectStats, + workTypeStats, + recentWork, + metadata: { + period: `${startDate} ~ ${endDate}`, + timestamp: new Date().toISOString() + } + }; + } catch (error) { + throw new Error(`대시보드 데이터 조회 실패: ${error.message}`); + } + } + // 프로젝트별-작업별 시간 분석용 데이터 조회 (공정/대분류 기준) + async getProjectWorkTypeRawData(startDate, endDate) { + // work_type_id 컬럼에는 task_id가 저장됨 (tasks 테이블 우선 조회) + // task_id로 매칭되면 해당 task의 work_type_id로 공정 조회 + // 매칭 안 되면 직접 work_types 조회 (레거시 데이터 호환) + const query = ` + SELECT + COALESCE(p.project_id, dwr.project_id) as project_id, + COALESCE(p.project_name, CONCAT('프로젝트 ', dwr.project_id)) as project_name, + COALESCE(p.job_no, 'N/A') as job_no, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN t.work_type_id ELSE NULL END, + wt.id + ) as work_type_id, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN wt2.name ELSE NULL END, + wt.name, + CONCAT('작업유형 ', dwr.work_type_id) + ) as work_type_name, + + -- 총 시간 + SUM(dwr.work_hours) as total_hours, + + -- 정규 시간 (work_status_id = 1) + SUM(CASE WHEN dwr.work_status_id = 1 THEN dwr.work_hours ELSE 0 END) as regular_hours, + + -- 에러 시간 (work_status_id = 2) + SUM(CASE WHEN dwr.work_status_id = 2 THEN dwr.work_hours ELSE 0 END) as error_hours, + + -- 작업 건수 + COUNT(*) as total_reports, + COUNT(CASE WHEN dwr.work_status_id = 1 THEN 1 END) as regular_reports, + COUNT(CASE WHEN dwr.work_status_id = 2 THEN 1 END) as error_reports, + + -- 에러율 계산 + ROUND( + (SUM(CASE WHEN dwr.work_status_id = 2 THEN dwr.work_hours ELSE 0 END) / + SUM(dwr.work_hours)) * 100, 2 + ) as error_rate_percent + + FROM daily_work_reports dwr + LEFT JOIN projects p ON dwr.project_id = p.project_id + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt2 ON t.work_type_id = wt2.id + WHERE dwr.report_date BETWEEN ? AND ? + GROUP BY dwr.project_id, p.project_name, p.job_no, + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN t.work_type_id ELSE NULL END, + wt.id + ), + COALESCE( + CASE WHEN t.task_id IS NOT NULL THEN wt2.name ELSE NULL END, + wt.name + ) + ORDER BY p.project_name, work_type_name + `; + + try { + const [results] = await this.db.execute(query, [startDate, endDate]); + return results; + } catch (error) { + throw new Error(`프로젝트-작업유형별 원본 데이터 조회 실패: ${error.message}`); + } + } +} + +module.exports = WorkAnalysis; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/models/analysisModel.js b/deploy/tkfb-package/api.hyungi.net/models/analysisModel.js new file mode 100644 index 0000000..c0b5b84 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/analysisModel.js @@ -0,0 +1,115 @@ +// /models/analysisModel.js +const { getDb } = require('../dbPool'); + +/** + * 지정된 기간 동안의 작업 보고서 데이터를 집계하여 분석합니다. + * 이 함수는 여러 개의 SQL 쿼리를 병렬로 실행하여 효율성을 높입니다. + * @param {string} startDate - 시작일 (YYYY-MM-DD) + * @param {string} endDate - 종료일 (YYYY-MM-DD) + * @returns {Promise} - 요약, 프로젝트별, 작업자별, 작업별 집계 데이터 및 상세 내역 + */ +const getAnalysis = async (startDate, endDate) => { + try { + const db = await getDb(); + + // SQL 쿼리에서 반복적으로 사용될 WHERE 조건과 실제 투입 시간 계산 로직 + const whereClause = `WHERE dwr.report_date BETWEEN ? AND ?`; + const workHoursCalc = ` + CASE dwr.work_details + WHEN '연차' THEN 0 WHEN '반차' THEN 4 WHEN '반반차' THEN 6 + WHEN '조퇴' THEN 2 WHEN '휴무' THEN 0 WHEN '유급' THEN 0 + ELSE 8 + END + (COALESCE(dwr.overtime_hours, 0) * 1.5) + `; + + // 1. 요약 정보 쿼리 + const summarySql = ` + SELECT + COUNT(DISTINCT dwr.project_id) as totalProjects, + COUNT(DISTINCT dwr.worker_id) as totalworkers, + COUNT(DISTINCT dwr.task_id) as totalTasks, + SUM(${workHoursCalc}) as totalHours + FROM DailyWorkReports dwr + ${whereClause} AND (${workHoursCalc}) > 0 + `; + + // 2. 프로젝트별 집계 쿼리 + const byProjectSql = ` + SELECT p.project_name as name, SUM(${workHoursCalc}) as hours, COUNT(DISTINCT dwr.worker_id) as participants + FROM DailyWorkReports dwr + JOIN projects p ON dwr.project_id = p.project_id + ${whereClause} + GROUP BY p.project_name + HAVING hours > 0 + ORDER BY hours DESC; + `; + + // 3. 작업자별 집계 쿼리 + const byWorkerSql = ` + SELECT w.worker_name as name, SUM(${workHoursCalc}) as hours, COUNT(DISTINCT dwr.project_id) as participants + FROM DailyWorkReports dwr + JOIN workers w ON dwr.worker_id = w.worker_id + ${whereClause} + GROUP BY w.worker_name + HAVING hours > 0 + ORDER BY hours DESC; + `; + + // 4. 작업별 집계 쿼리 + const byTaskSql = ` + SELECT t.category as name, SUM(${workHoursCalc}) as hours, COUNT(DISTINCT dwr.worker_id) as participants + FROM DailyWorkReports dwr + JOIN Tasks t ON dwr.task_id = t.task_id + ${whereClause} + GROUP BY t.category + HAVING hours > 0 + ORDER BY hours DESC; + `; + + // 5. 상세 내역 쿼리 + const detailsSql = ` + SELECT + dwr.report_date as date, p.project_name, w.worker_name, + t.category as task_category, dwr.work_details, + (${workHoursCalc}) as work_hours, dwr.memo + FROM DailyWorkReports dwr + JOIN projects p ON dwr.project_id = p.project_id + JOIN workers w ON dwr.worker_id = w.worker_id + JOIN Tasks t ON dwr.task_id = t.task_id + ${whereClause} + HAVING work_hours > 0 + ORDER BY dwr.report_date DESC; + `; + + // 모든 쿼리를 병렬로 실행 + const [ + [summaryResult], + [byProject], + [byWorker], + [byTask], + [details] + ] = await Promise.all([ + db.query(summarySql, [startDate, endDate]), + db.query(byProjectSql, [startDate, endDate]), + db.query(byWorkerSql, [startDate, endDate]), + db.query(byTaskSql, [startDate, endDate]), + db.query(detailsSql, [startDate, endDate]) + ]); + + return { + summary: summaryResult[0], + byProject, + byWorker, + byTask, + details + }; + + } catch (err) { + console.error('[Model] 분석 데이터 조회 오류:', err); + throw new Error('데이터베이스에서 분석 데이터를 조회하는 중 오류가 발생했습니다.'); + } +}; + +module.exports = { + getAnalysis +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/models/attendanceModel.js b/deploy/tkfb-package/api.hyungi.net/models/attendanceModel.js new file mode 100644 index 0000000..a14c411 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/attendanceModel.js @@ -0,0 +1,530 @@ +const { getDb } = require('../dbPool'); + +class AttendanceModel { + // 일일 근태 기록 조회 + static async getDailyAttendanceRecords(date, workerId = null) { + const db = await getDb(); + let query = ` + SELECT + dar.*, + w.worker_name, + w.job_type, + wat.type_name as attendance_type_name, + wat.type_code as attendance_type_code, + vt.type_name as vacation_type_name, + vt.type_code as vacation_type_code, + vt.deduct_days as vacation_days + FROM daily_attendance_records dar + LEFT JOIN workers w ON dar.worker_id = w.worker_id + LEFT JOIN work_attendance_types wat ON dar.attendance_type_id = wat.id + LEFT JOIN vacation_types vt ON dar.vacation_type_id = vt.id + WHERE dar.record_date = ? + `; + + const params = [date]; + + if (workerId) { + query += ' AND dar.worker_id = ?'; + params.push(workerId); + } + + query += ' ORDER BY w.worker_name'; + + const [rows] = await db.execute(query, params); + return rows; + } + + // 기간별 근태 기록 조회 (월별 조회용) + static async getDailyRecords(startDate, endDate, workerId = null) { + const db = await getDb(); + let query = ` + SELECT + dar.*, + w.worker_name, + w.job_type, + wat.type_name as attendance_type_name, + wat.type_code as attendance_type_code, + vt.type_name as vacation_type_name, + vt.type_code as vacation_type_code, + vt.deduct_days as vacation_days + FROM daily_attendance_records dar + LEFT JOIN workers w ON dar.worker_id = w.worker_id + LEFT JOIN work_attendance_types wat ON dar.attendance_type_id = wat.id + LEFT JOIN vacation_types vt ON dar.vacation_type_id = vt.id + WHERE dar.record_date BETWEEN ? AND ? + `; + + const params = [startDate, endDate]; + + if (workerId) { + query += ' AND dar.worker_id = ?'; + params.push(workerId); + } + + query += ' ORDER BY dar.record_date ASC'; + + const [rows] = await db.execute(query, params); + return rows; + } + + // 작업 보고서와 근태 기록 동기화 (시간 합산 및 상태 업데이트) + static async syncWithWorkReports(workerId, date) { + const db = await getDb(); + + // 1. 해당 날짜의 총 작업 시간 계산 + const [reportStats] = await db.execute(` + SELECT + COALESCE(SUM(work_hours), 0) as total_hours, + COUNT(*) as report_count + FROM daily_work_reports + WHERE worker_id = ? AND report_date = ? + `, [workerId, date]); + + const totalHours = parseFloat(reportStats[0].total_hours || 0); + const reportCount = reportStats[0].report_count; + + // 2. 근태 유형 및 상태 결정 + // 기본 규칙: 0시간 -> incomplete, <8시간 -> partial, 8시간 -> complete, >8시간 -> overtime + // (휴가는 별도 로직이지만 여기서 덮어쓰지 않도록 주의해야 함. 하지만 작업보고서가 추가되면 실 근무로 간주) + + let status = 'incomplete'; + let typeCode = 'REGULAR'; // 기본값 + + if (totalHours === 0) { + status = 'incomplete'; + } else if (totalHours < 8) { + status = 'partial'; + typeCode = 'PARTIAL'; + } else if (totalHours === 8) { + status = 'complete'; + typeCode = 'REGULAR'; + } else { + status = 'overtime'; + typeCode = 'OVERTIME'; + } + + // 근태 유형 ID 조회 + const [types] = await db.execute('SELECT id FROM work_attendance_types WHERE type_code = ?', [typeCode]); + const typeId = types[0]?.id; + + // 3. 기록 업데이트 (휴가 정보는 유지) + // 기존 기록 조회 + const [existing] = await db.execute( + 'SELECT id, vacation_type_id FROM daily_attendance_records WHERE worker_id = ? AND record_date = ?', + [workerId, date] + ); + + if (existing.length > 0) { + // 휴가가 설정되어 있고 시간이 0이면 휴가 상태 유지, 시간이 있으면 근무+휴가 복합 상태일 수 있음 + // 여기서는 단순화하여 근무 시간이 있으면 근무 상태로 업데이트 (단, vacation_type_id는 유지) + + const recordId = existing[0].id; + // 만약 기존 상태가 'vacation'이고 근무시간이 0이면 업데이트 건너뛸 수도 있지만, + // 작업보고서가 삭제되어 0이 된 경우도 있으므로 업데이트는 수행해야 함. + + await db.execute(` + UPDATE daily_attendance_records + SET + total_work_hours = ?, + attendance_type_id = ?, + status = ?, + updated_at = CURRENT_TIMESTAMP + WHERE id = ? + `, [totalHours, typeId, status, recordId]); + + return { synced: true, totalHours, status }; + } else { + // 기록이 없으면 생성 (일반적으로는 initializeDailyRecords로 생성되어 있어야 함) + // 생성자가 명확하지 않으므로 시스템(1) 또는 알 수 없음 처리 + await db.execute(` + INSERT INTO daily_attendance_records + (record_date, worker_id, total_work_hours, attendance_type_id, status, created_by) + VALUES (?, ?, ?, ?, ?, 1) + `, [date, workerId, totalHours, typeId, status]); + + return { synced: true, totalHours, status, created: true }; + } + } + + // 일일 근태 기록 초기화 (모든 활성 작업자에 대한 기본 레코드 생성) + static async initializeDailyRecords(date, createdBy) { + const db = await getDb(); + + // 1. 활성 작업자 조회 + const [workers] = await db.execute( + 'SELECT worker_id FROM workers WHERE status = "active"' // is_active check not needed as status covers it based on previous fix? Wait, previous fix used status='active'. + ); + + if (workers.length === 0) return { inserted: 0 }; + + // 2. 일일 근태 레코드 일괄 생성 (이미 존재하면 무시) + // VALUES (...), (...), ... + const values = workers.map(w => [date, w.worker_id, 'incomplete', createdBy]); + + // Bulk INSERT IGNORE + // Note: mysql2 execute doesn't support nested arrays for bulk insert easily with placeholder ? + // We should build the query or use query method for pool? + // Using simple loop for safety and compatibility or building string. + + let insertedCount = 0; + + // 트랜잭션 사용 권장 + const conn = await db.getConnection(); + try { + await conn.beginTransaction(); + + for (const w of workers) { + const [result] = await conn.execute(` + INSERT IGNORE INTO daily_attendance_records + (record_date, worker_id, status, created_by) + VALUES (?, ?, 'incomplete', ?) + `, [date, w.worker_id, createdBy]); + + insertedCount += result.affectedRows; + } + + await conn.commit(); + } catch (err) { + await conn.rollback(); + throw err; + } finally { + conn.release(); + } + + return { inserted: insertedCount, total_active_workers: workers.length }; + } + + // 근태 기록 생성 또는 업데이트 + static async upsertAttendanceRecord(recordData) { + const db = await getDb(); + + const { + record_date, + worker_id, + total_work_hours = 8, + work_attendance_type_id = 1, + vacation_type_id = null, + is_overtime_approved = false, + created_by = 1 + } = recordData; + + const attendance_type_id = work_attendance_type_id; + + // 기존 기록 확인 + const [existing] = await db.execute( + 'SELECT id FROM daily_attendance_records WHERE worker_id = ? AND record_date = ?', + [worker_id, record_date] + ); + + if (existing.length > 0) { + // 업데이트 + const [result] = await db.execute(` + UPDATE daily_attendance_records + SET + total_work_hours = ?, + attendance_type_id = ?, + vacation_type_id = ?, + is_overtime_approved = ?, + updated_at = CURRENT_TIMESTAMP + WHERE id = ? + `, [ + total_work_hours, + attendance_type_id, + vacation_type_id, + is_overtime_approved, + existing[0].id + ]); + + return { id: existing[0].id, affected: result.affectedRows }; + } else { + // 생성 + const [result] = await db.execute(` + INSERT INTO daily_attendance_records ( + record_date, worker_id, total_work_hours, attendance_type_id, + vacation_type_id, is_overtime_approved, created_by + ) VALUES (?, ?, ?, ?, ?, ?, ?) + `, [ + record_date, + worker_id, + total_work_hours, + attendance_type_id, + vacation_type_id, + is_overtime_approved, + created_by + ]); + + return { id: result.insertId, affected: result.affectedRows }; + } + } + + // 작업자별 근태 현황 조회 (대시보드용) + static async getWorkerAttendanceStatus(date) { + const db = await getDb(); + + // 모든 작업자와 해당 날짜의 근태 기록을 조회 + const [rows] = await db.execute(` + SELECT + w.worker_id, + w.worker_name, + w.job_type, + COALESCE(dar.total_work_hours, 0) as total_work_hours, + COALESCE(dar.status, 'incomplete') as status, + dar.is_vacation_processed, + dar.overtime_approved, + wat.type_name as attendance_type_name, + wat.type_code as attendance_type_code, + vt.type_name as vacation_type_name, + vt.type_code as vacation_type_code, + dar.notes, + -- 작업 건수 계산 + (SELECT COUNT(*) FROM daily_work_reports dwr + WHERE dwr.worker_id = w.worker_id AND dwr.report_date = ?) as work_count, + -- 오류 건수 계산 + (SELECT COUNT(*) FROM daily_work_reports dwr + WHERE dwr.worker_id = w.worker_id AND dwr.report_date = ? AND dwr.work_status_id = 2) as error_count + FROM workers w + LEFT JOIN daily_attendance_records dar ON w.worker_id = dar.worker_id AND dar.record_date = ? + LEFT JOIN work_attendance_types wat ON dar.attendance_type_id = wat.id + LEFT JOIN vacation_types vt ON dar.vacation_type_id = vt.id + WHERE w.is_active = TRUE + ORDER BY w.worker_name + `, [date, date, date]); + + return rows; + } + + // 휴가 처리 + static async processVacation(workerId, date, vacationType, createdBy) { + const db = await getDb(); + + // 휴가 유형 정보 조회 + const [vacationTypes] = await db.execute( + 'SELECT id, type_code, type_name, deduct_days, is_active, created_at, updated_at FROM vacation_types WHERE type_code = ?', + [vacationType] + ); + + if (vacationTypes.length === 0) { + throw new Error('유효하지 않은 휴가 유형입니다.'); + } + + const vacationTypeInfo = vacationTypes[0]; + + // 현재 작업 시간 조회 + const [workHours] = await db.execute(` + SELECT COALESCE(SUM(work_hours), 0) as total_hours + FROM daily_work_reports + WHERE worker_id = ? AND report_date = ? + `, [workerId, date]); + + const currentHours = parseFloat(workHours[0].total_hours); + // deduct_days를 시간으로 변환 (1일 = 8시간) + const vacationHours = parseFloat(vacationTypeInfo.deduct_days) * 8; + const totalHours = currentHours + vacationHours; + + // 근로 유형 결정 + let attendanceTypeCode = 'VACATION'; + let status = 'vacation'; + + if (totalHours >= 8) { + attendanceTypeCode = totalHours > 8 ? 'OVERTIME' : 'REGULAR'; + status = totalHours > 8 ? 'overtime' : 'complete'; + } + + const [attendanceTypes] = await db.execute( + 'SELECT id FROM work_attendance_types WHERE type_code = ?', + [attendanceTypeCode] + ); + + // 휴가 작업 기록 생성 (프로젝트 ID 13 = "연차/휴무", work_type_id 1 = 기본) + await db.execute(` + INSERT INTO daily_work_reports ( + report_date, worker_id, project_id, work_type_id, work_status_id, + work_hours, description, created_by + ) VALUES (?, ?, 13, 1, 1, ?, ?, ?) + `, [ + date, + workerId, + vacationHours, + `${vacationTypeInfo.type_name} 처리`, + createdBy + ]); + + // 근태 기록 업데이트 + const attendanceData = { + record_date: date, + worker_id: workerId, + total_work_hours: totalHours, + work_attendance_type_id: attendanceTypes[0]?.id, + vacation_type_id: vacationTypeInfo.id, + is_overtime_approved: false, + created_by: createdBy + }; + + return await this.upsertAttendanceRecord(attendanceData); + } + + // 초과근무 승인 + static async approveOvertime(workerId, date, approvedBy) { + const db = await getDb(); + + const [result] = await db.execute(` + UPDATE daily_attendance_records + SET + overtime_approved = TRUE, + overtime_approved_by = ?, + overtime_approved_at = CURRENT_TIMESTAMP, + updated_by = ?, + updated_at = CURRENT_TIMESTAMP + WHERE worker_id = ? AND record_date = ? + `, [approvedBy, approvedBy, workerId, date]); + + return result.affectedRows > 0; + } + + // 근로 유형 목록 조회 + static async getAttendanceTypes() { + const db = await getDb(); + const [rows] = await db.execute( + 'SELECT id, type_code, type_name, description, is_active, created_at, updated_at FROM work_attendance_types WHERE is_active = TRUE ORDER BY id' + ); + return rows; + } + + // 휴가 유형 목록 조회 + static async getVacationTypes() { + const db = await getDb(); + const [rows] = await db.execute( + 'SELECT id, type_code, type_name, deduct_days, is_active, created_at, updated_at FROM vacation_types WHERE is_active = TRUE ORDER BY deduct_days DESC' + ); + return rows; + } + + // 작업자 휴가 잔여 조회 + static async getWorkerVacationBalance(workerId, year = null) { + const db = await getDb(); + const currentYear = year || new Date().getFullYear(); + + const [rows] = await db.execute(` + SELECT id, worker_id, year, total_annual_leave, used_annual_leave, notes, created_at, updated_at FROM worker_vacation_balance + WHERE worker_id = ? AND year = ? + `, [workerId, currentYear]); + + if (rows.length === 0) { + // 기본 연차 생성 (15일) + await db.execute(` + INSERT INTO worker_vacation_balance (worker_id, year, total_annual_leave) + VALUES (?, ?, 15.0) + `, [workerId, currentYear]); + + return { + worker_id: workerId, + year: currentYear, + total_annual_leave: 15.0, + used_annual_leave: 0, + remaining_annual_leave: 15.0 + }; + } + + return rows[0]; + } + + // 월별 근태 통계 + static async getMonthlyAttendanceStats(year, month, workerId = null) { + const db = await getDb(); + + // work_attendance_types: 1=NORMAL, 2=LATE, 3=EARLY_LEAVE, 4=ABSENT, 5=VACATION + // vacation_types: 1=ANNUAL(연차), 2=HALF_ANNUAL(반차), 3=SICK(병가), 4=SPECIAL(경조사) + let query = ` + SELECT + w.worker_id, + w.worker_name, + COUNT(CASE WHEN dar.attendance_type_id = 1 AND (dar.is_overtime_approved = 0 OR dar.is_overtime_approved IS NULL) THEN 1 END) as regular_days, + COUNT(CASE WHEN dar.is_overtime_approved = 1 OR dar.total_work_hours > 8 THEN 1 END) as overtime_days, + COUNT(CASE WHEN dar.attendance_type_id = 5 AND dar.vacation_type_id = 1 THEN 1 END) as vacation_days, + COUNT(CASE WHEN dar.vacation_type_id = 2 THEN 1 END) as partial_days, + COUNT(CASE WHEN dar.attendance_type_id = 4 THEN 1 END) as incomplete_days, + COALESCE(SUM(dar.total_work_hours), 0) as total_work_hours, + COALESCE(AVG(dar.total_work_hours), 0) as avg_work_hours + FROM workers w + LEFT JOIN daily_attendance_records dar ON w.worker_id = dar.worker_id + AND YEAR(dar.record_date) = ? AND MONTH(dar.record_date) = ? + WHERE w.employment_status = 'employed' + `; + + const params = [year, month]; + + if (workerId) { + query += ' AND w.worker_id = ?'; + params.push(workerId); + } + + query += ' GROUP BY w.worker_id, w.worker_name ORDER BY w.worker_name'; + + const [rows] = await db.execute(query, params); + return rows; + } + + // 출근 체크 기록 생성 또는 업데이트 + static async upsertCheckin(checkinData) { + const db = await getDb(); + const { worker_id, record_date, is_present } = checkinData; + + // 해당 날짜에 기록이 있는지 확인 + const [existing] = await db.execute( + 'SELECT id FROM daily_attendance_records WHERE worker_id = ? AND record_date = ?', + [worker_id, record_date] + ); + + if (existing.length > 0) { + // 업데이트 + await db.execute( + 'UPDATE daily_attendance_records SET is_present = ? WHERE id = ?', + [is_present, existing[0].id] + ); + return existing[0].id; + } else { + // 새로 생성 (기본값으로) + const [result] = await db.execute( + `INSERT INTO daily_attendance_records + (worker_id, record_date, is_present, attendance_type_id, created_by) + VALUES (?, ?, ?, 1, 1)`, + [worker_id, record_date, is_present] + ); + return result.insertId; + } + } + + // 특정 날짜의 출근 체크 목록 조회 (휴가 정보 포함) + static async getCheckinList(date) { + const db = await getDb(); + const query = ` + SELECT + w.worker_id, + w.worker_name, + w.job_type, + w.employment_status, + COALESCE(dar.is_present, TRUE) as is_present, + dar.id as record_id, + vr.request_id as vacation_request_id, + vr.status as vacation_status, + vt.type_name as vacation_type_name, + vt.type_code as vacation_type_code, + vr.days_used as vacation_days + FROM workers w + LEFT JOIN daily_attendance_records dar + ON w.worker_id = dar.worker_id AND dar.record_date = ? + LEFT JOIN vacation_requests vr + ON w.worker_id = vr.worker_id + AND ? BETWEEN vr.start_date AND vr.end_date + AND vr.status = 'approved' + LEFT JOIN vacation_types vt ON vr.vacation_type_id = vt.id + WHERE w.employment_status = 'employed' + ORDER BY w.worker_name + `; + + const [rows] = await db.execute(query, [date, date]); + return rows; + } +} + +module.exports = AttendanceModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/dailyIssueReportModel.js b/deploy/tkfb-package/api.hyungi.net/models/dailyIssueReportModel.js new file mode 100644 index 0000000..8d7f119 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/dailyIssueReportModel.js @@ -0,0 +1,154 @@ +const { getDb } = require('../dbPool'); + +/** + * 1. 여러 개의 이슈 보고서를 트랜잭션으로 생성합니다. + * @param {Array} reports - 생성할 보고서 데이터 배열 + * @returns {Promise>} - 삽입된 ID 배열 + */ +const createMany = async (reports) => { + const db = await getDb(); + const conn = await db.getConnection(); + try { + await conn.beginTransaction(); + + const insertedIds = []; + const sql = ` + INSERT INTO DailyIssueReports + (date, worker_id, project_id, start_time, end_time, issue_type_id) + VALUES (?, ?, ?, ?, ?, ?) + `; + + for (const report of reports) { + const { date, worker_id, project_id, start_time, end_time, issue_type_id } = report; + const [result] = await conn.query(sql, [date, worker_id, project_id, start_time, end_time, issue_type_id]); + insertedIds.push(result.insertId); + } + + await conn.commit(); + return insertedIds; + } catch (err) { + await conn.rollback(); + console.error('[Model] 여러 이슈 보고서 생성 중 오류:', err); + throw new Error('데이터베이스에 이슈 보고서를 생성하는 중 오류가 발생했습니다.'); + } finally { + conn.release(); + } +}; + +/** + * 2. 특정 날짜의 전체 이슈 목록 조회 (Promise 기반) + */ +const getAllByDate = async (date) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT + d.id, d.date, w.worker_name, p.project_name, d.start_time, d.end_time, + t.category, t.subcategory, d.description + FROM DailyIssueReports d + LEFT JOIN workers w ON d.worker_id = w.worker_id + LEFT JOIN projects p ON d.project_id = p.project_id + LEFT JOIN IssueTypes t ON d.issue_type_id = t.issue_type_id + WHERE d.date = ? + ORDER BY d.start_time ASC`, + [date] + ); + return rows; + } catch (err) { + console.error(`[Model] ${date} 이슈 목록 조회 오류:`, err); + throw new Error('데이터베이스에서 이슈 목록을 조회하는 중 오류가 발생했습니다.'); + } +}; + +/** + * 3. 단일 조회 (선택사항: 컨트롤러에서 사용 중) + */ +const getById = async (id, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query(`SELECT id, date, worker_id, project_id, issue_type_id, description, created_at, start_time, end_time FROM DailyIssueReports WHERE id = ?`, [id]); + callback(null, rows[0]); + } catch (err) { + callback(err); + } +}; + +/** + * 4. 수정 + */ +const update = async (id, data, callback) => { + try { + const db = await getDb(); + + const fields = []; + const values = []; + + for (const key in data) { + fields.push(`${key} = ?`); + values.push(data[key]); + } + + values.push(id); // 마지막에 id + + const [result] = await db.query( + `UPDATE DailyIssueReports SET ${fields.join(', ')} WHERE id = ?`, + values + ); + + callback(null, result.affectedRows); + } catch (err) { + callback(err); + } +}; + +/** + * 5. 삭제 (Promise 기반) + */ +const remove = async (id) => { + try { + const db = await getDb(); + const [result] = await db.query(`DELETE FROM DailyIssueReports WHERE id = ?`, [id]); + return result.affectedRows; + } catch (err) { + console.error(`[Model] 이슈(id: ${id}) 삭제 오류:`, err); + throw new Error('데이터베이스에서 이슈를 삭제하는 중 오류가 발생했습니다.'); + } +}; + +// V1 함수들은 점진적으로 제거 예정 +const create = async (report, callback) => { + try { + const db = await getDb(); + const { + date, + worker_id, + project_id, + start_time, + end_time, + issue_type_id, + description = null // 선택값 처리 + } = report; + + const [result] = await db.query( + `INSERT INTO DailyIssueReports + (date, worker_id, project_id, start_time, end_time, issue_type_id, description) + VALUES (?, ?, ?, ?, ?, ?, ?)`, + [date, worker_id, project_id, start_time, end_time, issue_type_id, description] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + + +module.exports = { + createMany, // 신규 + getAllByDate, + remove, + // 레거시 호환성을 위해 V1 함수들 임시 유지 + create: (report, callback) => createMany([report]).then(ids => callback(null, ids[0])).catch(err => callback(err)), + getById, + update, +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/models/dailyWorkReportModel.js b/deploy/tkfb-package/api.hyungi.net/models/dailyWorkReportModel.js new file mode 100644 index 0000000..8cf266a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/dailyWorkReportModel.js @@ -0,0 +1,1388 @@ +// models/dailyWorkReportModel.js - 누적입력 방식 + 모든 기존 기능 포함 +const { getDb } = require('../dbPool'); + +/** + * 📋 마스터 데이터 조회 함수들 + */ +const getAllWorkTypes = async (callback) => { + try { + const db = await getDb(); + const [rows] = await db.query('SELECT id, name, description, category, created_at, updated_at FROM work_types ORDER BY name ASC'); + callback(null, rows); + } catch (err) { + console.error('작업 유형 조회 오류:', err); + callback(err); + } +}; + +const getAllWorkStatusTypes = async (callback) => { + try { + const db = await getDb(); + const [rows] = await db.query('SELECT id, name, description, is_error, created_at FROM work_status_types ORDER BY id ASC'); + callback(null, rows); + } catch (err) { + console.error('업무 상태 유형 조회 오류:', err); + callback(err); + } +}; + +const getAllErrorTypes = async (callback) => { + try { + const db = await getDb(); + // issue_report_items에서 부적합(nonconformity) 타입의 항목만 조회 + const [rows] = await db.query(` + SELECT + iri.item_id as id, + iri.item_name as name, + iri.description, + iri.severity, + irc.category_name as category, + iri.display_order, + iri.created_at + FROM issue_report_items iri + INNER JOIN issue_report_categories irc ON iri.category_id = irc.category_id + WHERE irc.category_type = 'nonconformity' AND iri.is_active = TRUE + ORDER BY irc.display_order, iri.display_order, iri.item_name ASC + `); + callback(null, rows); + } catch (err) { + console.error('에러 유형 조회 오류:', err); + callback(err); + } +}; + +/** + * 🔄 누적 추가 전용 함수 (createDailyReport 대체) - 절대 삭제 안함! + */ +const createDailyReport = async (reportData, callback) => { + const { report_date, worker_id, work_entries, created_by, created_by_name, total_hours } = reportData; + const db = await getDb(); + const conn = await db.getConnection(); + + try { + await conn.beginTransaction(); + + console.log(`📝 ${created_by_name}이 ${report_date} ${worker_id}번 작업자에게 데이터 추가 중...`); + + // ✅ 수정된 쿼리 (테이블 alias 추가): + const [existingReports] = await conn.query( + `SELECT dwr.created_by, u.name as created_by_name, COUNT(*) as count, SUM(dwr.work_hours) as total_hours + FROM daily_work_reports dwr + LEFT JOIN users u ON dwr.created_by = u.user_id + WHERE dwr.report_date = ? AND dwr.worker_id = ? + GROUP BY dwr.created_by`, + [report_date, worker_id] + ); + + + console.log('기존 데이터 (삭제하지 않음):', existingReports); + + // 2. ✅ 삭제 없이 새로운 데이터만 추가! + const insertedIds = []; + for (const entry of work_entries) { + const { project_id, work_type_id, work_status_id, error_type_id, work_hours } = entry; + + const [insertResult] = await conn.query( + `INSERT INTO daily_work_reports + (report_date, worker_id, project_id, work_type_id, work_status_id, error_type_id, work_hours, created_by, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, NOW())`, + [report_date, worker_id, project_id, work_type_id, work_status_id || 1, error_type_id || null, work_hours, created_by] + ); + + insertedIds.push(insertResult.insertId); + } + + // ✅ 수정된 쿼리: + const [finalReports] = await conn.query( + `SELECT dwr.created_by, u.name as created_by_name, COUNT(*) as count, SUM(dwr.work_hours) as total_hours + FROM daily_work_reports dwr + LEFT JOIN users u ON dwr.created_by = u.user_id + WHERE dwr.report_date = ? AND dwr.worker_id = ? + GROUP BY dwr.created_by`, + [report_date, worker_id] + ); + + const grandTotal = finalReports.reduce((sum, report) => sum + parseFloat(report.total_hours || 0), 0); + const myTotal = finalReports.find(r => r.created_by === created_by)?.total_hours || 0; + + console.log('최종 결과:'); + finalReports.forEach(report => { + console.log(` - ${report.created_by_name}: ${report.total_hours}시간 (${report.count}개 항목)`); + }); + console.log(` 📊 총합: ${grandTotal}시간`); + + // 4. 감사 로그 추가 + try { + await conn.query( + `INSERT INTO work_report_audit_log + (action, report_id, new_values, changed_by, change_reason, created_at) + VALUES (?, ?, ?, ?, ?, NOW())`, + [ + 'ADD_ACCUMULATE', + insertedIds[0] || null, + JSON.stringify({ + report_date, + worker_id, + work_entries_count: work_entries.length, + added_hours: total_hours, + my_total: myTotal, + grand_total: grandTotal, + contributors: finalReports.map(r => ({ name: r.created_by_name, hours: r.total_hours })) + }), + created_by, + `누적 추가 by ${created_by_name} - 삭제 없음` + ] + ); + } catch (auditErr) { + console.warn('감사 로그 추가 실패:', auditErr.message); + } + + await conn.commit(); + + // 5. 근태 기록 동기화 (추가) + try { + const AttendanceModel = require('./attendanceModel'); + await AttendanceModel.syncWithWorkReports(worker_id, report_date); + } catch (syncErr) { + console.error('근태 기록 동기화 실패:', syncErr); + // 메인 트랜잭션은 성공했으므로 동기화 실패로 롤백하지 않음 (비동기 처리 또는 무시) + } + + callback(null, { + success: true, + inserted_count: insertedIds.length, + deleted_count: 0, // 항상 0 (삭제 안함) + action: 'accumulated', + message: `${created_by_name}이 ${total_hours}시간 추가했습니다. (개인 총 ${myTotal}시간, 전체 총 ${grandTotal}시간)`, + final_summary: { + my_total: parseFloat(myTotal), + grand_total: grandTotal, + total_contributors: finalReports.length, + contributors: finalReports + } + }); + + } catch (err) { + await conn.rollback(); + console.error('작업보고서 누적 추가 오류:', err); + callback(err); + } finally { + conn.release(); + } +}; + +/** + * 📊 특정 날짜 + 작업자 + 작성자의 누적 현황 조회 + */ +const getMyAccumulatedHours = async (date, worker_id, created_by, callback) => { + try { + const db = await getDb(); + + const sql = ` + SELECT + SUM(work_hours) as my_total_hours, + COUNT(*) as my_entry_count, + GROUP_CONCAT( + CONCAT(p.project_name, ':', work_hours, 'h') + ORDER BY created_at + ) as my_entries + FROM daily_work_reports dwr + LEFT JOIN projects p ON dwr.project_id = p.project_id + WHERE dwr.report_date = ? AND dwr.worker_id = ? AND dwr.created_by = ? + `; + + const [rows] = await db.query(sql, [date, worker_id, created_by]); + callback(null, rows[0] || { my_total_hours: 0, my_entry_count: 0, my_entries: null }); + } catch (err) { + console.error('개인 누적 현황 조회 오류:', err); + callback(err); + } +}; + +/** + * 📊 누적 현황 조회 - 날짜+작업자별 (모든 기여자) + */ +const getAccumulatedReportsByDate = async (date, worker_id, callback) => { + try { + const db = await getDb(); + + const sql = getSelectQuery() + ` + WHERE dwr.report_date = ? AND dwr.worker_id = ? + ORDER BY dwr.created_by, dwr.created_at ASC + `; + + const [rows] = await db.query(sql, [date, worker_id]); + callback(null, rows); + } catch (err) { + console.error('누적 현황 조회 오류:', err); + callback(err); + } +}; + +/** + * 📊 기여자별 요약 조회 + */ +const getContributorsByDate = async (date, worker_id, callback) => { + try { + const db = await getDb(); + + const sql = ` + SELECT + dwr.created_by, + u.name as created_by_name, + COUNT(*) as entry_count, + SUM(dwr.work_hours) as total_hours, + MIN(dwr.created_at) as first_entry, + MAX(dwr.created_at) as last_entry, + GROUP_CONCAT( + CONCAT(p.project_name, ':', dwr.work_hours, 'h') + ORDER BY dwr.created_at SEPARATOR ', ' + ) as entry_details + FROM daily_work_reports dwr + LEFT JOIN users u ON dwr.created_by = u.user_id + LEFT JOIN projects p ON dwr.project_id = p.project_id + WHERE dwr.report_date = ? AND dwr.worker_id = ? + GROUP BY dwr.created_by + ORDER BY total_hours DESC, first_entry ASC + `; + + const [rows] = await db.query(sql, [date, worker_id]); + callback(null, rows); + } catch (err) { + console.error('기여자별 요약 조회 오류:', err); + callback(err); + } +}; + +/** + * 🗑️ 특정 작업 항목만 삭제 (개별 삭제) + */ +const removeSpecificEntry = async (entry_id, deleted_by, callback) => { + const db = await getDb(); + const conn = await db.getConnection(); + + try { + await conn.beginTransaction(); + + // 삭제 전 정보 확인 + const [entryInfo] = await conn.query( + `SELECT dwr.*, w.worker_name, p.project_name, u.name as created_by_name + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN projects p ON dwr.project_id = p.project_id + LEFT JOIN users u ON dwr.created_by = u.user_id + WHERE dwr.id = ?`, + [entry_id] + ); + + if (entryInfo.length === 0) { + await conn.rollback(); + return callback(new Error('삭제할 항목을 찾을 수 없습니다.')); + } + + const entry = entryInfo[0]; + + // 권한 확인: 본인이 작성한 것만 삭제 가능 + if (entry.created_by !== deleted_by) { + await conn.rollback(); + return callback(new Error('본인이 작성한 항목만 삭제할 수 있습니다.')); + } + + // 개별 항목 삭제 + const [result] = await conn.query('DELETE FROM daily_work_reports WHERE id = ?', [entry_id]); + + // 감사 로그 (삭제된 테이블이므로 콘솔 로그로 대체) + console.log(`[삭제 로그] 작업자: ${entry.worker_name}, 프로젝트: ${entry.project_name}, 작업시간: ${entry.work_hours}시간, 삭제자: ${deleted_by}`); + + await conn.commit(); + callback(null, { + success: true, + deleted_entry: { + worker_name: entry.worker_name, + project_name: entry.project_name, + work_hours: entry.work_hours + } + }); + + } catch (err) { + await conn.rollback(); + console.error('개별 항목 삭제 오류:', err); + callback(err); + } finally { + conn.release(); + } +}; + +/** + * 공통 SELECT 쿼리 부분 + * error_type_id는 issue_report_items 테이블 참조 (issue-categories.html에서 관리) + */ +const getSelectQuery = () => ` + SELECT + dwr.id, + dwr.report_date, + dwr.worker_id, + dwr.project_id, + dwr.work_type_id, + dwr.work_status_id, + dwr.error_type_id, + dwr.work_hours, + dwr.created_by, + w.worker_name, + p.project_name, + wt.name as work_type_name, + wst.name as work_status_name, + iri.item_name as error_type_name, + irc.category_name as error_category_name, + u.name as created_by_name, + dwr.created_at, + dwr.updated_at + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN projects p ON dwr.project_id = p.project_id + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN work_status_types wst ON dwr.work_status_id = wst.id + LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id + LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id + LEFT JOIN users u ON dwr.created_by = u.user_id +`; + +/** + * 7. ID로 작업보고서 조회 + */ +const getById = async (id, callback) => { + try { + const db = await getDb(); + const sql = getSelectQuery() + 'WHERE dwr.id = ?'; + const [rows] = await db.query(sql, [id]); + callback(null, rows[0] || null); + } catch (err) { + console.error('ID로 작업보고서 조회 오류:', err); + callback(err); + } +}; + +/** + * 8. 일일 작업보고서 조회 (날짜별) + */ +const getByDate = async (date, callback) => { + try { + const db = await getDb(); + const sql = getSelectQuery() + ` + WHERE dwr.report_date = ? + ORDER BY w.worker_name ASC, p.project_name ASC, dwr.id ASC + `; + const [rows] = await db.query(sql, [date]); + callback(null, rows); + } catch (err) { + console.error('날짜별 작업보고서 조회 오류:', err); + callback(err); + } +}; + +/** + * 9. 일일 작업보고서 조회 (날짜 + 작성자별) + */ +const getByDateAndCreator = async (date, created_by, callback) => { + try { + const db = await getDb(); + const sql = getSelectQuery() + ` + WHERE dwr.report_date = ? AND dwr.created_by = ? + ORDER BY w.worker_name ASC, p.project_name ASC, dwr.id ASC + `; + const [rows] = await db.query(sql, [date, created_by]); + callback(null, rows); + } catch (err) { + console.error('날짜+작성자별 작업보고서 조회 오류:', err); + callback(err); + } +}; + +/** + * 10. 일일 작업보고서 조회 (작업자별) + */ +const getByWorker = async (worker_id, callback) => { + try { + const db = await getDb(); + const sql = getSelectQuery() + ` + WHERE dwr.worker_id = ? + ORDER BY dwr.report_date DESC, dwr.id ASC + `; + const [rows] = await db.query(sql, [worker_id]); + callback(null, rows); + } catch (err) { + console.error('작업자별 작업보고서 조회 오류:', err); + callback(err); + } +}; + +/** + * 11. 일일 작업보고서 조회 (날짜 + 작업자) + */ +const getByDateAndWorker = async (date, worker_id, callback) => { + try { + const db = await getDb(); + const sql = getSelectQuery() + ` + WHERE dwr.report_date = ? AND dwr.worker_id = ? + ORDER BY dwr.id ASC + `; + const [rows] = await db.query(sql, [date, worker_id]); + callback(null, rows); + } catch (err) { + console.error('날짜+작업자별 작업보고서 조회 오류:', err); + callback(err); + } +}; + +/** + * 12. 기간별 조회 + */ +const getByRange = async (start_date, end_date, callback) => { + try { + const db = await getDb(); + const sql = getSelectQuery() + ` + WHERE dwr.report_date BETWEEN ? AND ? + ORDER BY dwr.report_date DESC, w.worker_name ASC, dwr.id ASC + `; + const [rows] = await db.query(sql, [start_date, end_date]); + callback(null, rows); + } catch (err) { + console.error('기간별 작업보고서 조회 오류:', err); + callback(err); + } +}; + +/** + * 13. 상세 검색 (페이지네이션 포함) + */ +const searchWithDetails = async (params, callback) => { + const { start_date, end_date, worker_id, project_id, work_status_id, created_by, page, limit } = params; + + try { + const db = await getDb(); + + // 조건 구성 + let whereConditions = ['dwr.report_date BETWEEN ? AND ?']; + let queryParams = [start_date, end_date]; + + if (worker_id) { + whereConditions.push('dwr.worker_id = ?'); + queryParams.push(worker_id); + } + + if (project_id) { + whereConditions.push('dwr.project_id = ?'); + queryParams.push(project_id); + } + + if (work_status_id) { + whereConditions.push('dwr.work_status_id = ?'); + queryParams.push(work_status_id); + } + + if (created_by) { + whereConditions.push('dwr.created_by = ?'); + queryParams.push(created_by); + } + + const whereClause = whereConditions.join(' AND '); + + // 총 개수 조회 + const countQuery = ` + SELECT COUNT(*) as total + FROM daily_work_reports dwr + WHERE ${whereClause} + `; + const [countResult] = await db.query(countQuery, queryParams); + const total = countResult[0].total; + + // 데이터 조회 (JOIN 포함) + const offset = (page - 1) * limit; + const dataQuery = getSelectQuery() + ` + WHERE ${whereClause} + ORDER BY dwr.report_date DESC, w.worker_name ASC, dwr.created_at DESC + LIMIT ? OFFSET ? + `; + + const dataParams = [...queryParams, limit, offset]; + const [rows] = await db.query(dataQuery, dataParams); + + callback(null, { reports: rows, total }); + } catch (err) { + console.error('상세 검색 오류:', err); + callback(err); + } +}; + +/** + * 14. 일일 근무 요약 조회 (날짜별) + */ +const getSummaryByDate = async (date, callback) => { + try { + const db = await getDb(); + + const sql = ` + SELECT + dwr.worker_id, + w.worker_name, + dwr.report_date, + SUM(dwr.work_hours) as total_hours, + COUNT(*) as work_entries_count, + SUM(CASE WHEN dwr.work_status_id = 2 THEN 1 ELSE 0 END) as error_count + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.report_date = ? + GROUP BY dwr.worker_id, dwr.report_date + ORDER BY w.worker_name ASC + `; + const [rows] = await db.query(sql, [date]); + callback(null, rows); + } catch (err) { + console.error('일일 근무 요약 조회 오류:', err); + callback(err); + } +}; + +/** + * 15. 일일 근무 요약 조회 (작업자별) + */ +const getSummaryByWorker = async (worker_id, callback) => { + try { + const db = await getDb(); + + const sql = ` + SELECT + dwr.report_date, + dwr.worker_id, + w.worker_name, + SUM(dwr.work_hours) as total_hours, + COUNT(*) as work_entries_count, + SUM(CASE WHEN dwr.work_status_id = 2 THEN 1 ELSE 0 END) as error_count + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.worker_id = ? + GROUP BY dwr.report_date, dwr.worker_id + ORDER BY dwr.report_date DESC + `; + const [rows] = await db.query(sql, [worker_id]); + callback(null, rows); + } catch (err) { + console.error('작업자별 근무 요약 조회 오류:', err); + callback(err); + } +}; + +/** + * 16. 월간 요약 + */ +const getMonthlySummary = async (year, month, callback) => { + try { + const db = await getDb(); + const start = `${year.padStart(4, '0')}-${month.padStart(2, '0')}-01`; + const end = `${year.padStart(4, '0')}-${month.padStart(2, '0')}-31`; + + const sql = ` + SELECT + dwr.report_date, + dwr.worker_id, + w.worker_name, + SUM(dwr.work_hours) as total_work_hours, + COUNT(DISTINCT dwr.project_id) as project_count, + COUNT(*) as work_entries_count, + SUM(CASE WHEN dwr.work_status_id = 2 THEN 1 ELSE 0 END) as error_count, + GROUP_CONCAT(DISTINCT p.project_name ORDER BY p.project_name) as projects, + GROUP_CONCAT(DISTINCT wt.name ORDER BY wt.name) as work_types + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN projects p ON dwr.project_id = p.project_id + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + WHERE dwr.report_date BETWEEN ? AND ? + GROUP BY dwr.report_date, dwr.worker_id + ORDER BY dwr.report_date DESC, w.worker_name ASC + `; + const [rows] = await db.query(sql, [start, end]); + callback(null, rows); + } catch (err) { + console.error('월간 요약 조회 오류:', err); + callback(err); + } +}; + +/** + * 17. 작업보고서 수정 + */ +const updateById = async (id, updateData, callback) => { + try { + const db = await getDb(); + + const setFields = []; + const values = []; + + if (updateData.work_hours !== undefined) { + setFields.push('work_hours = ?'); + values.push(updateData.work_hours); + } + + if (updateData.work_status_id !== undefined) { + setFields.push('work_status_id = ?'); + values.push(updateData.work_status_id); + } + + if (updateData.error_type_id !== undefined) { + setFields.push('error_type_id = ?'); + values.push(updateData.error_type_id); + } + + if (updateData.project_id !== undefined) { + setFields.push('project_id = ?'); + values.push(updateData.project_id); + } + + if (updateData.work_type_id !== undefined) { + setFields.push('work_type_id = ?'); + values.push(updateData.work_type_id); + } + + setFields.push('updated_at = NOW()'); + + if (updateData.updated_by) { + setFields.push('updated_by = ?'); + values.push(updateData.updated_by); + } + + values.push(id); + + const sql = `UPDATE daily_work_reports SET ${setFields.join(', ')} WHERE id = ?`; + const [result] = await db.query(sql, values); + + + + // [Sync] 근태 기록 동기화 + try { + const [targetReport] = await db.query('SELECT worker_id, report_date FROM daily_work_reports WHERE id = ?', [id]); + if (targetReport.length > 0) { + const { worker_id, report_date } = targetReport[0]; + const AttendanceModel = require('./attendanceModel'); + await AttendanceModel.syncWithWorkReports(worker_id, report_date); + } + } catch (syncErr) { + console.error('근태 기록 동기화 실패 (Update):', syncErr); + } + + callback(null, result.affectedRows); + } catch (err) { + console.error('작업보고서 수정 오류:', err); + callback(err); + } +}; + +/** + * 18. 특정 작업보고서 삭제 + */ +const removeById = async (id, deletedBy, callback) => { + const db = await getDb(); + const conn = await db.getConnection(); + + try { + await conn.beginTransaction(); + + // 삭제 전 정보 저장 (감사 로그용) + const [reportInfo] = await conn.query('SELECT * FROM daily_work_reports WHERE id = ?', [id]); + + // 작업보고서 삭제 + const [result] = await conn.query('DELETE FROM daily_work_reports WHERE id = ?', [id]); + + // 감사 로그 추가 + if (reportInfo.length > 0 && deletedBy) { + try { + await conn.query( + `INSERT INTO work_report_audit_log + (action, report_id, old_values, changed_by, change_reason, created_at) + VALUES ('DELETE', ?, ?, ?, 'Manual deletion', NOW())`, + [id, JSON.stringify(reportInfo[0]), deletedBy] + ); + } catch (auditErr) { + console.warn('감사 로그 추가 실패:', auditErr.message); + } + } + + await conn.commit(); + + + // [Sync] 근태 기록 동기화 + if (reportInfo.length > 0) { + try { + const { worker_id, report_date } = reportInfo[0]; + const AttendanceModel = require('./attendanceModel'); + await AttendanceModel.syncWithWorkReports(worker_id, report_date); + } catch (syncErr) { + console.error('근태 기록 동기화 실패 (Delete):', syncErr); + } + } + + callback(null, result.affectedRows); + } catch (err) { + await conn.rollback(); + console.error('작업보고서 삭제 오류:', err); + callback(err); + } finally { + conn.release(); + } +}; + +/** + * 19. 작업자의 특정 날짜 전체 삭제 + */ +const removeByDateAndWorker = async (date, worker_id, deletedBy, callback) => { + const db = await getDb(); + const conn = await db.getConnection(); + + try { + await conn.beginTransaction(); + + // 삭제 전 정보 저장 (감사 로그용) + const [reportInfos] = await conn.query( + 'SELECT id, report_date, worker_id, project_id, work_type_id, work_status_id, error_type_id, work_hours, created_at, updated_at, created_by, updated_by FROM daily_work_reports WHERE report_date = ? AND worker_id = ?', + [date, worker_id] + ); + + // 작업보고서 삭제 + const [result] = await conn.query( + 'DELETE FROM daily_work_reports WHERE report_date = ? AND worker_id = ?', + [date, worker_id] + ); + + // 감사 로그 추가 + if (reportInfos.length > 0 && deletedBy) { + try { + await conn.query( + `INSERT INTO work_report_audit_log + (action, old_values, changed_by, change_reason, created_at) + VALUES ('DELETE_BATCH', ?, ?, 'Batch deletion by date and worker', NOW())`, + [JSON.stringify({ deleted_reports: reportInfos, count: reportInfos.length }), deletedBy] + ); + } catch (auditErr) { + console.warn('감사 로그 추가 실패:', auditErr.message); + } + } + + await conn.commit(); + + + // [Sync] 근태 기록 동기화 + try { + const AttendanceModel = require('./attendanceModel'); + await AttendanceModel.syncWithWorkReports(worker_id, date); + } catch (syncErr) { + console.error('근태 기록 동기화 실패 (Batch Delete):', syncErr); + } + + callback(null, result.affectedRows); + } catch (err) { + await conn.rollback(); + console.error('작업보고서 전체 삭제 오류:', err); + callback(err); + } finally { + conn.release(); + } +}; + +/** + * 20. 통계 조회 (Promise 기반) + */ +const getStatistics = async (start_date, end_date) => { + try { + const db = await getDb(); + + const overallSql = ` + SELECT + COUNT(*) as total_reports, + SUM(work_hours) as total_hours, + COUNT(DISTINCT worker_id) as unique_workers, + COUNT(DISTINCT project_id) as unique_projects + FROM daily_work_reports + WHERE report_date BETWEEN ? AND ? + `; + const [overallRows] = await db.query(overallSql, [start_date, end_date]); + + const dailyStatsSql = ` + SELECT + report_date, + SUM(work_hours) as daily_hours, + COUNT(DISTINCT worker_id) as daily_workers + FROM daily_work_reports + WHERE report_date BETWEEN ? AND ? + GROUP BY report_date + ORDER BY report_date DESC + `; + const [dailyStats] = await db.query(dailyStatsSql, [start_date, end_date]); + + return { + overall: overallRows[0], + daily_breakdown: dailyStats + }; + } catch (err) { + console.error('통계 조회 오류:', err); + throw new Error('데이터베이스에서 통계 정보를 조회하는 중 오류가 발생했습니다.'); + } +}; + +/** + * [V2] 여러 작업 보고서 항목을 트랜잭션으로 생성합니다. (Promise 기반) + * @param {object} modelData - 서비스 레이어에서 전달된 데이터 + * @returns {Promise} 삽입된 항목의 ID 배열과 개수 + */ +const createReportEntries = async ({ report_date, worker_id, entries }) => { + const db = await getDb(); + const conn = await db.getConnection(); + try { + await conn.beginTransaction(); + + const insertedIds = []; + const sql = ` + INSERT INTO daily_work_reports + (report_date, worker_id, project_id, work_type_id, work_hours, work_status_id, error_type_id, created_by) + VALUES (?, ?, ?, ?, ?, ?, ?, ?) + `; + + for (const entry of entries) { + const { project_id, work_type_id, work_hours, work_status_id, error_type_id, created_by } = entry; + const [result] = await conn.query(sql, [ + report_date, + worker_id, + project_id, + work_type_id, + work_hours, + work_status_id || 1, + error_type_id, + created_by + ]); + insertedIds.push(result.insertId); + } + + await conn.commit(); + + + + // [Sync] 근태 기록 동기화 + try { + const AttendanceModel = require('./attendanceModel'); + await AttendanceModel.syncWithWorkReports(worker_id, report_date); + } catch (syncErr) { + console.error('근태 기록 동기화 실패 (V2 Create):', syncErr); + } + + console.log(`[Model] ${insertedIds.length}개 작업 항목 생성 완료.`); + return { + inserted_ids: insertedIds, + inserted_count: insertedIds.length + }; + + } catch (err) { + await conn.rollback(); + console.error('[Model] 작업 보고서 생성 중 오류 발생:', err); + // 여기서 발생한 에러는 서비스 레이어로 전파됩니다. + throw new Error('데이터베이스에 작업 보고서를 생성하는 중 오류가 발생했습니다.'); + } finally { + conn.release(); + } +}; + +/** + * [V2] 공통 SELECT 쿼리 (새로운 스키마 기준) + * 주의: work_type_id 컬럼에는 실제로 task_id가 저장됨 + * error_type_id는 issue_report_items 테이블 참조 (issue-categories.html에서 관리) + */ +const getSelectQueryV2 = () => ` + SELECT + dwr.id, + dwr.report_date, + dwr.worker_id, + dwr.project_id, + dwr.work_type_id, + dwr.work_status_id, + dwr.error_type_id, + dwr.work_hours, + dwr.created_by, + w.worker_name, + p.project_name, + t.task_name, + wt.name as work_type_name, + wst.name as work_status_name, + iri.item_name as error_type_name, + irc.category_name as error_category_name, + u.name as created_by_name, + dwr.created_at + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN projects p ON dwr.project_id = p.project_id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + LEFT JOIN work_status_types wst ON dwr.work_status_id = wst.id + LEFT JOIN issue_report_items iri ON dwr.error_type_id = iri.item_id + LEFT JOIN issue_report_categories irc ON iri.category_id = irc.category_id + LEFT JOIN users u ON dwr.created_by = u.user_id +`; + +/** + * [V2] 옵션 기반으로 작업 보고서를 조회합니다. (Promise 기반) + * @param {object} options - 조회 조건 (date, worker_id, created_by_user_id 등) + * @returns {Promise} 조회된 작업 보고서 배열 + */ +const getReportsWithOptions = async (options) => { + const db = await getDb(); + let whereConditions = []; + let queryParams = []; + + // 날짜 조건 처리 (단일 날짜 또는 날짜 범위) + if (options.date) { + whereConditions.push('dwr.report_date = ?'); + queryParams.push(options.date); + } else if (options.start_date && options.end_date) { + whereConditions.push('dwr.report_date BETWEEN ? AND ?'); + queryParams.push(options.start_date, options.end_date); + } + + if (options.worker_id) { + whereConditions.push('dwr.worker_id = ?'); + queryParams.push(options.worker_id); + } + if (options.created_by_user_id) { + whereConditions.push('dwr.created_by = ?'); + queryParams.push(options.created_by_user_id); + } + // 필요에 따라 다른 조건 추가 가능 (project_id 등) + + if (whereConditions.length === 0) { + throw new Error('조회 조건이 하나 이상 필요합니다.'); + } + + const whereClause = whereConditions.join(' AND '); + const sql = `${getSelectQueryV2()} WHERE ${whereClause} ORDER BY w.worker_name ASC, p.project_name ASC`; + + try { + const [rows] = await db.query(sql, queryParams); + return rows; + } catch (err) { + console.error('[Model] 작업 보고서 조회 오류:', err); + throw new Error('데이터베이스에서 작업 보고서를 조회하는 중 오류가 발생했습니다.'); + } +}; + +/** + * [V2] ID를 기준으로 특정 작업 보고서 항목을 수정합니다. (Promise 기반) + * @param {string} reportId - 수정할 보고서의 ID + * @param {object} updateData - 수정할 필드와 값 + * @returns {Promise} 영향을 받은 행의 수 + */ +const updateReportById = async (reportId, updateData) => { + const db = await getDb(); + + // 허용된 필드 목록 (보안 및 안정성) - 실제 테이블 컬럼명 사용 + const allowedFields = ['project_id', 'work_type_id', 'work_hours', 'work_status_id', 'error_type_id']; + const setClauses = []; + const queryParams = []; + + for (const field of allowedFields) { + if (updateData[field] !== undefined) { + setClauses.push(`${field} = ?`); + queryParams.push(updateData[field]); + } + } + + // updated_by는 항상 업데이트 + if (updateData.updated_by_user_id) { + setClauses.push('updated_by = ?'); + queryParams.push(updateData.updated_by_user_id); + } + + if (setClauses.length === 0) { + throw new Error('수정할 데이터가 없습니다.'); + } + + queryParams.push(reportId); + + // [Sync] 업데이트 전 정보 조회 (동기화를 위해) + let targetInfo = null; + try { + const [rows] = await db.query('SELECT worker_id, report_date FROM daily_work_reports WHERE id = ?', [reportId]); + if (rows.length > 0) targetInfo = rows[0]; + } catch (e) { console.warn('Sync fetch failed', e); } + + const sql = `UPDATE daily_work_reports SET ${setClauses.join(', ')} WHERE id = ?`; + + try { + const [result] = await db.query(sql, queryParams); + + // [Sync] 근태 기록 동기화 + if (targetInfo) { + try { + const AttendanceModel = require('./attendanceModel'); + await AttendanceModel.syncWithWorkReports(targetInfo.worker_id, targetInfo.report_date); + } catch (syncErr) { + console.error('근태 기록 동기화 실패 (V2 Update):', syncErr); + } + } + + return result.affectedRows; + } catch (err) { + console.error(`[Model] 작업 보고서 수정 오류 (id: ${reportId}):`, err); + throw new Error('데이터베이스에서 작업 보고서를 수정하는 중 오류가 발생했습니다.'); + } +}; + +/** + * [V2] ID를 기준으로 특정 작업 보고서를 삭제합니다. (Promise 기반) + * @param {string} reportId - 삭제할 보고서 ID + * @param {number} deletedByUserId - 삭제를 수행하는 사용자 ID + * @returns {Promise} 영향을 받은 행의 수 + */ +const removeReportById = async (reportId, deletedByUserId) => { + const db = await getDb(); + const conn = await db.getConnection(); + + try { + await conn.beginTransaction(); + + // 감사 로그를 위해 삭제 전 정보 조회 + const [reportInfo] = await conn.query('SELECT id, report_date, worker_id, project_id, work_type_id, work_status_id, error_type_id, work_hours, created_at, updated_at, created_by, updated_by FROM daily_work_reports WHERE id = ?', [reportId]); + + // 실제 삭제 작업 + const [result] = await conn.query('DELETE FROM daily_work_reports WHERE id = ?', [reportId]); + + // 감사 로그 (삭제된 테이블이므로 콘솔 로그로 대체) + if (reportInfo.length > 0 && deletedByUserId) { + console.log(`[삭제 로그] 보고서 ID: ${reportId}, 삭제자: ${deletedByUserId}, 사유: Manual deletion by user`); + } + + await conn.commit(); + + // [Sync] 근태 기록 동기화 + if (reportInfo.length > 0) { + try { + const { worker_id, report_date } = reportInfo[0]; + const AttendanceModel = require('./attendanceModel'); + await AttendanceModel.syncWithWorkReports(worker_id, report_date); + } catch (syncErr) { + console.error('근태 기록 동기화 실패 (V2 Delete):', syncErr); + } + } + + return result.affectedRows; + + } catch (err) { + await conn.rollback(); + console.error(`[Model] 작업 보고서 삭제 오류 (id: ${reportId}):`, err); + throw new Error('데이터베이스에서 작업 보고서를 삭제하는 중 오류가 발생했습니다.'); + } finally { + conn.release(); + } +}; + +// ========== 마스터 데이터 CRUD 메서드들 ========== + +/** + * 📝 작업 유형 생성 + */ +const createWorkType = async (data, callback) => { + try { + const db = await getDb(); + const { name, description, category } = data; + const [result] = await db.query( + 'INSERT INTO work_types (name, description, category) VALUES (?, ?, ?)', + [name, description, category] + ); + callback(null, { id: result.insertId, ...data }); + } catch (err) { + console.error('작업 유형 생성 오류:', err); + callback(err); + } +}; + +/** + * ✏️ 작업 유형 수정 + */ +const updateWorkType = async (id, data, callback) => { + try { + const db = await getDb(); + const { name, description, category } = data; + const [result] = await db.query( + 'UPDATE work_types SET name = ?, description = ?, category = ? WHERE id = ?', + [name, description, category, id] + ); + callback(null, result); + } catch (err) { + console.error('작업 유형 수정 오류:', err); + callback(err); + } +}; + +/** + * 🗑️ 작업 유형 삭제 + */ +const deleteWorkType = async (id, callback) => { + try { + const db = await getDb(); + const [result] = await db.query('DELETE FROM work_types WHERE id = ?', [id]); + callback(null, result); + } catch (err) { + console.error('작업 유형 삭제 오류:', err); + callback(err); + } +}; + +/** + * 📝 작업 상태 생성 + */ +const createWorkStatus = async (data, callback) => { + try { + const db = await getDb(); + const { name, description, is_error } = data; + const [result] = await db.query( + 'INSERT INTO work_status_types (name, description, is_error) VALUES (?, ?, ?)', + [name, description, is_error || 0] + ); + callback(null, { id: result.insertId, ...data }); + } catch (err) { + console.error('작업 상태 생성 오류:', err); + callback(err); + } +}; + +/** + * ✏️ 작업 상태 수정 + */ +const updateWorkStatus = async (id, data, callback) => { + try { + const db = await getDb(); + const { name, description, is_error } = data; + const [result] = await db.query( + 'UPDATE work_status_types SET name = ?, description = ?, is_error = ? WHERE id = ?', + [name, description, is_error || 0, id] + ); + callback(null, result); + } catch (err) { + console.error('작업 상태 수정 오류:', err); + callback(err); + } +}; + +/** + * 🗑️ 작업 상태 삭제 + */ +const deleteWorkStatus = async (id, callback) => { + try { + const db = await getDb(); + const [result] = await db.query('DELETE FROM work_status_types WHERE id = ?', [id]); + callback(null, result); + } catch (err) { + console.error('작업 상태 삭제 오류:', err); + callback(err); + } +}; + +/** + * 📝 오류 유형 생성 + */ +const createErrorType = async (data, callback) => { + try { + const db = await getDb(); + const { name, description, severity } = data; + const [result] = await db.query( + 'INSERT INTO error_types (name, description, severity) VALUES (?, ?, ?)', + [name, description, severity || 'medium'] + ); + callback(null, { id: result.insertId, ...data }); + } catch (err) { + console.error('오류 유형 생성 오류:', err); + callback(err); + } +}; + +/** + * ✏️ 오류 유형 수정 + */ +const updateErrorType = async (id, data, callback) => { + try { + const db = await getDb(); + const { name, description, severity } = data; + const [result] = await db.query( + 'UPDATE error_types SET name = ?, description = ?, severity = ? WHERE id = ?', + [name, description, severity || 'medium', id] + ); + callback(null, result); + } catch (err) { + console.error('오류 유형 수정 오류:', err); + callback(err); + } +}; + +/** + * 🗑️ 오류 유형 삭제 + */ +const deleteErrorType = async (id, callback) => { + try { + const db = await getDb(); + const [result] = await db.query('DELETE FROM error_types WHERE id = ?', [id]); + callback(null, result); + } catch (err) { + console.error('오류 유형 삭제 오류:', err); + callback(err); + } +}; + + +/** + * TBM 기반 작업보고서 생성 및 TBM 세션 완료 처리 + * @param {object} reportData - TBM 작업보고서 데이터 + * @returns {Promise} 생성 결과 + */ +const createFromTbmAssignment = async (reportData) => { + const { + tbm_assignment_id, + tbm_session_id, + worker_id, + project_id, + work_type_id, + report_date, + start_time, + end_time, + total_hours, + error_hours, + regular_hours, + work_status_id, + error_type_id, + created_by + } = reportData; + + const db = await getDb(); + const conn = await db.getConnection(); + + try { + await conn.beginTransaction(); + + // 1. 작업보고서 생성 + const sql = ` + INSERT INTO daily_work_reports + (tbm_session_id, tbm_assignment_id, report_date, worker_id, project_id, work_type_id, + start_time, end_time, work_hours, total_hours, regular_hours, error_hours, + work_status_id, error_type_id, created_by, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW()) + `; + + const [result] = await conn.query(sql, [ + tbm_session_id, + tbm_assignment_id, + report_date, + worker_id, + project_id, + work_type_id, + start_time || null, + end_time || null, + total_hours, // work_hours는 TBM에서 total_hours와 동일 + total_hours, + regular_hours, + error_hours || 0, + work_status_id || 1, + error_type_id || null, + created_by + ]); + + const reportId = result.insertId; + + // 2. TBM 세션의 모든 팀 배정이 작업보고서를 제출했는지 확인 + const [assignmentCheck] = await conn.query(` + SELECT + COUNT(*) as total_assignments, + COUNT(dwr.tbm_assignment_id) as completed_assignments + FROM tbm_team_assignments ta + LEFT JOIN daily_work_reports dwr ON ta.assignment_id = dwr.tbm_assignment_id + WHERE ta.session_id = ? + `, [tbm_session_id]); + + const { total_assignments, completed_assignments } = assignmentCheck[0]; + + // 3. 모든 팀원이 작업보고서를 제출했으면 TBM 세션을 완료로 표시 + if (total_assignments === completed_assignments) { + await conn.query(` + UPDATE tbm_sessions + SET status = 'completed', updated_at = NOW() + WHERE session_id = ? + `, [tbm_session_id]); + } + + await conn.commit(); + + // 4. 근태 기록 동기화 + try { + const AttendanceModel = require('./attendanceModel'); + await AttendanceModel.syncWithWorkReports(worker_id, report_date); + } catch (syncErr) { + console.error('근태 기록 동기화 실패 (TBM Report):', syncErr); + } + + console.log(`[Model] TBM 작업보고서 생성 완료: report_id=${reportId}, session=${tbm_session_id}, assignment=${tbm_assignment_id}`); + + return { + success: true, + report_id: reportId, + tbm_completed: total_assignments === completed_assignments, + completion_status: `${completed_assignments}/${total_assignments} 작업 완료` + }; + + } catch (err) { + await conn.rollback(); + console.error('[Model] TBM 작업보고서 생성 중 오류 발생:', err); + throw new Error('TBM 작업보고서 생성 중 오류가 발생했습니다.'); + } finally { + conn.release(); + } +}; + +// 모든 함수 내보내기 (Promise 기반 함수 위주로 재구성) +module.exports = { + // 새로 추가된 V2 함수 (Promise 기반) + createReportEntries, + getReportsWithOptions, + updateReportById, + removeReportById, + createFromTbmAssignment, + + // Promise 기반으로 리팩토링된 함수 + getStatistics, + getSummaryByDate, + getSummaryByWorker, + + // 아직 리팩토링되지 않았지만 필요한 기존 함수들... + // (점진적으로 아래 함수들도 Promise 기반으로 전환해야 함) + getAllWorkTypes, + getAllWorkStatusTypes, + getAllErrorTypes, + + // 마스터 데이터 CRUD + createWorkType, + updateWorkType, + deleteWorkType, + createWorkStatus, + updateWorkStatus, + deleteWorkStatus, + createErrorType, + updateErrorType, + deleteErrorType, + createDailyReport, + getMyAccumulatedHours, + getAccumulatedReportsByDate, + getContributorsByDate, + removeSpecificEntry, + getById, + getByDate, + getByDateAndCreator, + getByWorker, + getByDateAndWorker, + getByRange, + searchWithDetails, + getMonthlySummary, + updateById, + removeById, + removeByDateAndWorker, +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/models/departmentModel.js b/deploy/tkfb-package/api.hyungi.net/models/departmentModel.js new file mode 100644 index 0000000..e9c329b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/departmentModel.js @@ -0,0 +1,120 @@ +// models/departmentModel.js +const { getDb } = require('../dbPool'); + +const departmentModel = { + // 모든 부서 조회 (계층 구조 포함) + async getAll() { + const db = await getDb(); + const [rows] = await db.query(` + SELECT d.*, + p.department_name as parent_name, + (SELECT COUNT(*) FROM workers w WHERE w.department_id = d.department_id AND w.status = 'active') as worker_count + FROM departments d + LEFT JOIN departments p ON d.parent_id = p.department_id + ORDER BY d.display_order, d.department_name + `); + return rows; + }, + + // 활성 부서만 조회 + async getActive() { + const db = await getDb(); + const [rows] = await db.query(` + SELECT d.*, + p.department_name as parent_name, + (SELECT COUNT(*) FROM workers w WHERE w.department_id = d.department_id AND w.status = 'active') as worker_count + FROM departments d + LEFT JOIN departments p ON d.parent_id = p.department_id + WHERE d.is_active = TRUE + ORDER BY d.display_order, d.department_name + `); + return rows; + }, + + // 부서 ID로 조회 + async getById(departmentId) { + const db = await getDb(); + const [rows] = await db.query(` + SELECT d.*, + p.department_name as parent_name + FROM departments d + LEFT JOIN departments p ON d.parent_id = p.department_id + WHERE d.department_id = ? + `, [departmentId]); + return rows[0]; + }, + + // 부서 생성 + async create(data) { + const db = await getDb(); + const { department_name, parent_id, description, is_active, display_order } = data; + const [result] = await db.query(` + INSERT INTO departments (department_name, parent_id, description, is_active, display_order) + VALUES (?, ?, ?, ?, ?) + `, [department_name, parent_id || null, description || null, is_active !== false, display_order || 0]); + return result.insertId; + }, + + // 부서 수정 + async update(departmentId, data) { + const db = await getDb(); + const { department_name, parent_id, description, is_active, display_order } = data; + const [result] = await db.query(` + UPDATE departments + SET department_name = ?, parent_id = ?, description = ?, is_active = ?, display_order = ? + WHERE department_id = ? + `, [department_name, parent_id || null, description || null, is_active, display_order || 0, departmentId]); + return result.affectedRows > 0; + }, + + // 부서 삭제 + async delete(departmentId) { + const db = await getDb(); + // 하위 부서가 있는지 확인 + const [children] = await db.query('SELECT COUNT(*) as count FROM departments WHERE parent_id = ?', [departmentId]); + if (children[0].count > 0) { + throw new Error('하위 부서가 있어 삭제할 수 없습니다.'); + } + // 소속 작업자가 있는지 확인 + const [workers] = await db.query('SELECT COUNT(*) as count FROM workers WHERE department_id = ?', [departmentId]); + if (workers[0].count > 0) { + throw new Error('소속 작업자가 있어 삭제할 수 없습니다. 먼저 작업자를 다른 부서로 이동하세요.'); + } + const [result] = await db.query('DELETE FROM departments WHERE department_id = ?', [departmentId]); + return result.affectedRows > 0; + }, + + // 부서별 작업자 조회 + async getWorkersByDepartment(departmentId) { + const db = await getDb(); + const [rows] = await db.query(` + SELECT w.*, d.department_name, u.user_id, u.username + FROM workers w + LEFT JOIN departments d ON w.department_id = d.department_id + LEFT JOIN users u ON u.worker_id = w.worker_id + WHERE w.department_id = ? + ORDER BY w.worker_name + `, [departmentId]); + return rows; + }, + + // 작업자 부서 변경 + async moveWorker(workerId, departmentId) { + const db = await getDb(); + const [result] = await db.query(` + UPDATE workers SET department_id = ? WHERE worker_id = ? + `, [departmentId, workerId]); + return result.affectedRows > 0; + }, + + // 여러 작업자 부서 일괄 변경 + async moveWorkers(workerIds, departmentId) { + const db = await getDb(); + const [result] = await db.query(` + UPDATE workers SET department_id = ? WHERE worker_id IN (?) + `, [departmentId, workerIds]); + return result.affectedRows; + } +}; + +module.exports = departmentModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/equipmentModel.js b/deploy/tkfb-package/api.hyungi.net/models/equipmentModel.js new file mode 100644 index 0000000..ec0bd15 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/equipmentModel.js @@ -0,0 +1,949 @@ +// models/equipmentModel.js +const { getDb } = require('../dbPool'); +const notificationModel = require('./notificationModel'); + +const EquipmentModel = { + // CREATE - 설비 생성 + create: async (equipmentData, callback) => { + try { + const db = await getDb(); + const query = ` + INSERT INTO equipments ( + equipment_code, equipment_name, equipment_type, model_name, + manufacturer, supplier, purchase_price, installation_date, serial_number, specifications, + status, notes, workplace_id, map_x_percent, map_y_percent, + map_width_percent, map_height_percent + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `; + + const values = [ + equipmentData.equipment_code, + equipmentData.equipment_name, + equipmentData.equipment_type || null, + equipmentData.model_name || null, + equipmentData.manufacturer || null, + equipmentData.supplier || null, + equipmentData.purchase_price || null, + equipmentData.installation_date || null, + equipmentData.serial_number || null, + equipmentData.specifications || null, + equipmentData.status || 'active', + equipmentData.notes || null, + equipmentData.workplace_id || null, + equipmentData.map_x_percent || null, + equipmentData.map_y_percent || null, + equipmentData.map_width_percent || null, + equipmentData.map_height_percent || null + ]; + + const [result] = await db.query(query, values); + callback(null, { + equipment_id: result.insertId, + ...equipmentData + }); + } catch (error) { + callback(error); + } + }, + + // READ ALL - 모든 설비 조회 (필터링 옵션 포함) + getAll: async (filters, callback) => { + try { + const db = await getDb(); + let query = ` + SELECT + e.*, + w.workplace_name, + wc.category_name + FROM equipments e + LEFT JOIN workplaces w ON e.workplace_id = w.workplace_id + LEFT JOIN workplace_categories wc ON w.category_id = wc.category_id + WHERE 1=1 + `; + + const values = []; + + // 필터링: 작업장 ID + if (filters.workplace_id) { + query += ' AND e.workplace_id = ?'; + values.push(filters.workplace_id); + } + + // 필터링: 설비 유형 + if (filters.equipment_type) { + query += ' AND e.equipment_type = ?'; + values.push(filters.equipment_type); + } + + // 필터링: 상태 + if (filters.status) { + query += ' AND e.status = ?'; + values.push(filters.status); + } + + // 필터링: 검색어 (설비명, 설비코드) + if (filters.search) { + query += ' AND (e.equipment_name LIKE ? OR e.equipment_code LIKE ?)'; + const searchTerm = `%${filters.search}%`; + values.push(searchTerm, searchTerm); + } + + query += ' ORDER BY e.equipment_code ASC'; + + const [rows] = await db.query(query, values); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + // READ ONE - 특정 설비 조회 + getById: async (equipmentId, callback) => { + try { + const db = await getDb(); + const query = ` + SELECT + e.*, + w.workplace_name, + wc.category_name + FROM equipments e + LEFT JOIN workplaces w ON e.workplace_id = w.workplace_id + LEFT JOIN workplace_categories wc ON w.category_id = wc.category_id + WHERE e.equipment_id = ? + `; + + const [rows] = await db.query(query, [equipmentId]); + callback(null, rows[0]); + } catch (error) { + callback(error); + } + }, + + // READ BY WORKPLACE - 특정 작업장의 설비 조회 + getByWorkplace: async (workplaceId, callback) => { + try { + const db = await getDb(); + const query = ` + SELECT e.* + FROM equipments e + WHERE e.workplace_id = ? + ORDER BY e.equipment_code ASC + `; + + const [rows] = await db.query(query, [workplaceId]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + // READ ACTIVE - 활성 설비만 조회 + getActive: async (callback) => { + try { + const db = await getDb(); + const query = ` + SELECT + e.*, + w.workplace_name, + wc.category_name + FROM equipments e + LEFT JOIN workplaces w ON e.workplace_id = w.workplace_id + LEFT JOIN workplace_categories wc ON w.category_id = wc.category_id + WHERE e.status = 'active' + ORDER BY e.equipment_code ASC + `; + + const [rows] = await db.query(query); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + // UPDATE - 설비 수정 + update: async (equipmentId, equipmentData, callback) => { + try { + const db = await getDb(); + const query = ` + UPDATE equipments SET + equipment_code = ?, + equipment_name = ?, + equipment_type = ?, + model_name = ?, + manufacturer = ?, + supplier = ?, + purchase_price = ?, + installation_date = ?, + serial_number = ?, + specifications = ?, + status = ?, + notes = ?, + workplace_id = ?, + map_x_percent = ?, + map_y_percent = ?, + map_width_percent = ?, + map_height_percent = ?, + updated_at = NOW() + WHERE equipment_id = ? + `; + + const values = [ + equipmentData.equipment_code, + equipmentData.equipment_name, + equipmentData.equipment_type || null, + equipmentData.model_name || null, + equipmentData.manufacturer || null, + equipmentData.supplier || null, + equipmentData.purchase_price || null, + equipmentData.installation_date || null, + equipmentData.serial_number || null, + equipmentData.specifications || null, + equipmentData.status || 'active', + equipmentData.notes || null, + equipmentData.workplace_id || null, + equipmentData.map_x_percent || null, + equipmentData.map_y_percent || null, + equipmentData.map_width_percent || null, + equipmentData.map_height_percent || null, + equipmentId + ]; + + const [result] = await db.query(query, values); + if (result.affectedRows === 0) { + return callback(new Error('Equipment not found')); + } + callback(null, { equipment_id: equipmentId, ...equipmentData }); + } catch (error) { + callback(error); + } + }, + + // UPDATE MAP POSITION - 지도상 위치 업데이트 (선택적으로 workplace_id도 업데이트) + updateMapPosition: async (equipmentId, positionData, callback) => { + try { + const db = await getDb(); + + // workplace_id가 포함된 경우 함께 업데이트 + const hasWorkplaceId = positionData.workplace_id !== undefined; + + const query = hasWorkplaceId ? ` + UPDATE equipments SET + workplace_id = ?, + map_x_percent = ?, + map_y_percent = ?, + map_width_percent = ?, + map_height_percent = ?, + updated_at = NOW() + WHERE equipment_id = ? + ` : ` + UPDATE equipments SET + map_x_percent = ?, + map_y_percent = ?, + map_width_percent = ?, + map_height_percent = ?, + updated_at = NOW() + WHERE equipment_id = ? + `; + + const values = hasWorkplaceId ? [ + positionData.workplace_id, + positionData.map_x_percent, + positionData.map_y_percent, + positionData.map_width_percent, + positionData.map_height_percent, + equipmentId + ] : [ + positionData.map_x_percent, + positionData.map_y_percent, + positionData.map_width_percent, + positionData.map_height_percent, + equipmentId + ]; + + const [result] = await db.query(query, values); + if (result.affectedRows === 0) { + return callback(new Error('Equipment not found')); + } + callback(null, { equipment_id: equipmentId, ...positionData }); + } catch (error) { + callback(error); + } + }, + + // DELETE - 설비 삭제 + delete: async (equipmentId, callback) => { + try { + const db = await getDb(); + const query = 'DELETE FROM equipments WHERE equipment_id = ?'; + + const [result] = await db.query(query, [equipmentId]); + if (result.affectedRows === 0) { + return callback(new Error('Equipment not found')); + } + callback(null, { equipment_id: equipmentId }); + } catch (error) { + callback(error); + } + }, + + // CHECK DUPLICATE CODE - 설비 코드 중복 확인 + checkDuplicateCode: async (equipmentCode, excludeEquipmentId, callback) => { + try { + const db = await getDb(); + let query = 'SELECT equipment_id FROM equipments WHERE equipment_code = ?'; + const values = [equipmentCode]; + + if (excludeEquipmentId) { + query += ' AND equipment_id != ?'; + values.push(excludeEquipmentId); + } + + const [rows] = await db.query(query, values); + callback(null, rows.length > 0); + } catch (error) { + callback(error); + } + }, + + // GET EQUIPMENT TYPES - 사용 중인 설비 유형 목록 조회 + getEquipmentTypes: async (callback) => { + try { + const db = await getDb(); + const query = ` + SELECT DISTINCT equipment_type + FROM equipments + WHERE equipment_type IS NOT NULL + ORDER BY equipment_type ASC + `; + + const [rows] = await db.query(query); + callback(null, rows.map(row => row.equipment_type)); + } catch (error) { + callback(error); + } + }, + + // GET NEXT EQUIPMENT CODE - 다음 관리번호 자동 생성 (TKP-001 형식) + getNextEquipmentCode: async (prefix = 'TKP', callback) => { + try { + const db = await getDb(); + // 해당 접두사로 시작하는 가장 큰 번호 찾기 + const query = ` + SELECT equipment_code + FROM equipments + WHERE equipment_code LIKE ? + ORDER BY equipment_code DESC + LIMIT 1 + `; + + const [rows] = await db.query(query, [`${prefix}-%`]); + + let nextNumber = 1; + if (rows.length > 0) { + // TKP-001 형식에서 숫자 부분 추출 + const lastCode = rows[0].equipment_code; + const match = lastCode.match(new RegExp(`^${prefix}-(\\d+)$`)); + if (match) { + nextNumber = parseInt(match[1], 10) + 1; + } + } + + // 3자리로 패딩 (001, 002, ...) + const nextCode = `${prefix}-${String(nextNumber).padStart(3, '0')}`; + callback(null, nextCode); + } catch (error) { + callback(error); + } + }, + + // ========================================== + // 설비 사진 관리 + // ========================================== + + // ADD PHOTO - 설비 사진 추가 + addPhoto: async (equipmentId, photoData, callback) => { + try { + const db = await getDb(); + const query = ` + INSERT INTO equipment_photos ( + equipment_id, photo_path, description, display_order, uploaded_by + ) VALUES (?, ?, ?, ?, ?) + `; + + const values = [ + equipmentId, + photoData.photo_path, + photoData.description || null, + photoData.display_order || 0, + photoData.uploaded_by || null + ]; + + const [result] = await db.query(query, values); + callback(null, { + photo_id: result.insertId, + equipment_id: equipmentId, + ...photoData + }); + } catch (error) { + callback(error); + } + }, + + // GET PHOTOS - 설비 사진 조회 + getPhotos: async (equipmentId, callback) => { + try { + const db = await getDb(); + const query = ` + SELECT ep.*, u.name AS uploaded_by_name + FROM equipment_photos ep + LEFT JOIN users u ON ep.uploaded_by = u.user_id + WHERE ep.equipment_id = ? + ORDER BY ep.display_order ASC, ep.created_at ASC + `; + + const [rows] = await db.query(query, [equipmentId]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + // DELETE PHOTO - 설비 사진 삭제 + deletePhoto: async (photoId, callback) => { + try { + const db = await getDb(); + + // 먼저 사진 정보 조회 (파일 삭제용) + const [photo] = await db.query( + 'SELECT photo_path FROM equipment_photos WHERE photo_id = ?', + [photoId] + ); + + const query = 'DELETE FROM equipment_photos WHERE photo_id = ?'; + const [result] = await db.query(query, [photoId]); + + if (result.affectedRows === 0) { + return callback(new Error('Photo not found')); + } + + callback(null, { photo_id: photoId, photo_path: photo[0]?.photo_path }); + } catch (error) { + callback(error); + } + }, + + // ========================================== + // 설비 임시 이동 + // ========================================== + + // MOVE TEMPORARILY - 설비 임시 이동 + moveTemporarily: async (equipmentId, moveData, callback) => { + try { + const db = await getDb(); + + // 1. 설비 현재 위치 업데이트 + const updateQuery = ` + UPDATE equipments SET + current_workplace_id = ?, + current_map_x_percent = ?, + current_map_y_percent = ?, + current_map_width_percent = ?, + current_map_height_percent = ?, + is_temporarily_moved = TRUE, + moved_at = NOW(), + moved_by = ?, + updated_at = NOW() + WHERE equipment_id = ? + `; + + const updateValues = [ + moveData.target_workplace_id, + moveData.target_x_percent, + moveData.target_y_percent, + moveData.target_width_percent || null, + moveData.target_height_percent || null, + moveData.moved_by || null, + equipmentId + ]; + + const [result] = await db.query(updateQuery, updateValues); + + if (result.affectedRows === 0) { + return callback(new Error('Equipment not found')); + } + + // 2. 이동 이력 기록 + const logQuery = ` + INSERT INTO equipment_move_logs ( + equipment_id, move_type, + from_workplace_id, to_workplace_id, + from_x_percent, from_y_percent, + to_x_percent, to_y_percent, + reason, moved_by + ) VALUES (?, 'temporary', ?, ?, ?, ?, ?, ?, ?, ?) + `; + + await db.query(logQuery, [ + equipmentId, + moveData.from_workplace_id || null, + moveData.target_workplace_id, + moveData.from_x_percent || null, + moveData.from_y_percent || null, + moveData.target_x_percent, + moveData.target_y_percent, + moveData.reason || null, + moveData.moved_by || null + ]); + + callback(null, { equipment_id: equipmentId, moved: true }); + } catch (error) { + callback(error); + } + }, + + // RETURN TO ORIGINAL - 설비 원위치 복귀 + returnToOriginal: async (equipmentId, userId, callback) => { + try { + const db = await getDb(); + + // 1. 현재 임시 위치 정보 조회 + const [equipment] = await db.query( + 'SELECT current_workplace_id, current_map_x_percent, current_map_y_percent FROM equipments WHERE equipment_id = ?', + [equipmentId] + ); + + if (!equipment[0]) { + return callback(new Error('Equipment not found')); + } + + // 2. 임시 위치 필드 초기화 + const updateQuery = ` + UPDATE equipments SET + current_workplace_id = NULL, + current_map_x_percent = NULL, + current_map_y_percent = NULL, + current_map_width_percent = NULL, + current_map_height_percent = NULL, + is_temporarily_moved = FALSE, + moved_at = NULL, + moved_by = NULL, + updated_at = NOW() + WHERE equipment_id = ? + `; + + await db.query(updateQuery, [equipmentId]); + + // 3. 복귀 이력 기록 + const logQuery = ` + INSERT INTO equipment_move_logs ( + equipment_id, move_type, + from_workplace_id, from_x_percent, from_y_percent, + reason, moved_by + ) VALUES (?, 'return', ?, ?, ?, '원위치 복귀', ?) + `; + + await db.query(logQuery, [ + equipmentId, + equipment[0].current_workplace_id, + equipment[0].current_map_x_percent, + equipment[0].current_map_y_percent, + userId || null + ]); + + callback(null, { equipment_id: equipmentId, returned: true }); + } catch (error) { + callback(error); + } + }, + + // GET TEMPORARILY MOVED - 임시 이동된 설비 목록 + getTemporarilyMoved: async (callback) => { + try { + const db = await getDb(); + const query = ` + SELECT + e.*, + w_orig.workplace_name AS original_workplace_name, + w_curr.workplace_name AS current_workplace_name, + u.name AS moved_by_name + FROM equipments e + LEFT JOIN workplaces w_orig ON e.workplace_id = w_orig.workplace_id + LEFT JOIN workplaces w_curr ON e.current_workplace_id = w_curr.workplace_id + LEFT JOIN users u ON e.moved_by = u.user_id + WHERE e.is_temporarily_moved = TRUE + ORDER BY e.moved_at DESC + `; + + const [rows] = await db.query(query); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + // GET MOVE LOGS - 설비 이동 이력 조회 + getMoveLogs: async (equipmentId, callback) => { + try { + const db = await getDb(); + const query = ` + SELECT + eml.*, + w_from.workplace_name AS from_workplace_name, + w_to.workplace_name AS to_workplace_name, + u.name AS moved_by_name + FROM equipment_move_logs eml + LEFT JOIN workplaces w_from ON eml.from_workplace_id = w_from.workplace_id + LEFT JOIN workplaces w_to ON eml.to_workplace_id = w_to.workplace_id + LEFT JOIN users u ON eml.moved_by = u.user_id + WHERE eml.equipment_id = ? + ORDER BY eml.moved_at DESC + `; + + const [rows] = await db.query(query, [equipmentId]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + // ========================================== + // 설비 외부 반출/반입 + // ========================================== + + // EXPORT EQUIPMENT - 설비 외부 반출 + exportEquipment: async (exportData, callback) => { + try { + const db = await getDb(); + + // 1. 반출 로그 생성 + const logQuery = ` + INSERT INTO equipment_external_logs ( + equipment_id, log_type, export_date, expected_return_date, + destination, reason, notes, exported_by + ) VALUES (?, 'export', ?, ?, ?, ?, ?, ?) + `; + + const logValues = [ + exportData.equipment_id, + exportData.export_date || new Date().toISOString().slice(0, 10), + exportData.expected_return_date || null, + exportData.destination || null, + exportData.reason || null, + exportData.notes || null, + exportData.exported_by || null + ]; + + const [logResult] = await db.query(logQuery, logValues); + + // 2. 설비 상태 업데이트 + const status = exportData.is_repair ? 'repair_external' : 'external'; + await db.query( + 'UPDATE equipments SET status = ?, updated_at = NOW() WHERE equipment_id = ?', + [status, exportData.equipment_id] + ); + + callback(null, { + log_id: logResult.insertId, + equipment_id: exportData.equipment_id, + exported: true + }); + } catch (error) { + callback(error); + } + }, + + // RETURN EQUIPMENT - 설비 반입 (외부에서 복귀) + returnEquipment: async (logId, returnData, callback) => { + try { + const db = await getDb(); + + // 1. 반출 로그 조회 + const [logs] = await db.query( + 'SELECT equipment_id FROM equipment_external_logs WHERE log_id = ?', + [logId] + ); + + if (!logs[0]) { + return callback(new Error('Export log not found')); + } + + const equipmentId = logs[0].equipment_id; + + // 2. 반출 로그 업데이트 + await db.query( + `UPDATE equipment_external_logs SET + actual_return_date = ?, + returned_by = ?, + notes = CONCAT(IFNULL(notes, ''), '\n반입: ', IFNULL(?, '')), + updated_at = NOW() + WHERE log_id = ?`, + [ + returnData.return_date || new Date().toISOString().slice(0, 10), + returnData.returned_by || null, + returnData.notes || '', + logId + ] + ); + + // 3. 설비 상태 복원 + await db.query( + 'UPDATE equipments SET status = ?, updated_at = NOW() WHERE equipment_id = ?', + [returnData.new_status || 'active', equipmentId] + ); + + callback(null, { + log_id: logId, + equipment_id: equipmentId, + returned: true + }); + } catch (error) { + callback(error); + } + }, + + // GET EXTERNAL LOGS - 설비 외부 반출 이력 조회 + getExternalLogs: async (equipmentId, callback) => { + try { + const db = await getDb(); + const query = ` + SELECT + eel.*, + u_exp.name AS exported_by_name, + u_ret.name AS returned_by_name + FROM equipment_external_logs eel + LEFT JOIN users u_exp ON eel.exported_by = u_exp.user_id + LEFT JOIN users u_ret ON eel.returned_by = u_ret.user_id + WHERE eel.equipment_id = ? + ORDER BY eel.created_at DESC + `; + + const [rows] = await db.query(query, [equipmentId]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + // GET EXPORTED EQUIPMENTS - 현재 외부 반출 중인 설비 목록 + getExportedEquipments: async (callback) => { + try { + const db = await getDb(); + const query = ` + SELECT + e.*, + w.workplace_name, + eel.export_date, + eel.expected_return_date, + eel.destination, + eel.reason, + u.name AS exported_by_name + FROM equipments e + INNER JOIN ( + SELECT equipment_id, MAX(log_id) AS latest_log_id + FROM equipment_external_logs + WHERE actual_return_date IS NULL + GROUP BY equipment_id + ) latest ON e.equipment_id = latest.equipment_id + INNER JOIN equipment_external_logs eel ON eel.log_id = latest.latest_log_id + LEFT JOIN workplaces w ON e.workplace_id = w.workplace_id + LEFT JOIN users u ON eel.exported_by = u.user_id + WHERE e.status IN ('external', 'repair_external') + ORDER BY eel.export_date DESC + `; + + const [rows] = await db.query(query); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + // ========================================== + // 설비 수리 신청 (work_issue_reports 연동) + // ========================================== + + // CREATE REPAIR REQUEST - 수리 신청 (신고 시스템 활용) + createRepairRequest: async (requestData, callback) => { + try { + const db = await getDb(); + + // 설비 수리 카테고리 ID 조회 + const [categories] = await db.query( + "SELECT category_id FROM issue_report_categories WHERE category_name = '설비 수리' LIMIT 1" + ); + + if (!categories[0]) { + return callback(new Error('설비 수리 카테고리가 없습니다')); + } + + const categoryId = categories[0].category_id; + + // 항목 ID 조회 (지정된 항목이 없으면 첫번째 항목 사용) + let itemId = requestData.item_id; + if (!itemId) { + const [items] = await db.query( + 'SELECT item_id FROM issue_report_items WHERE category_id = ? LIMIT 1', + [categoryId] + ); + itemId = items[0]?.item_id; + } + + // 사진 경로 분리 (최대 5장) + const photos = requestData.photo_paths || []; + + // work_issue_reports에 삽입 + const query = ` + INSERT INTO work_issue_reports ( + reporter_id, issue_category_id, issue_item_id, + workplace_id, equipment_id, + additional_description, + photo_path1, photo_path2, photo_path3, photo_path4, photo_path5, + status + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'reported') + `; + + const values = [ + requestData.reported_by || null, + categoryId, + itemId, + requestData.workplace_id || null, + requestData.equipment_id, + requestData.description || null, + photos[0] || null, + photos[1] || null, + photos[2] || null, + photos[3] || null, + photos[4] || null + ]; + + const [result] = await db.query(query, values); + + // 설비 상태를 repair_needed로 업데이트 + await db.query( + 'UPDATE equipments SET status = ?, updated_at = NOW() WHERE equipment_id = ?', + ['repair_needed', requestData.equipment_id] + ); + + // 알림 생성 + try { + await notificationModel.createRepairNotification({ + equipment_id: requestData.equipment_id, + equipment_name: requestData.equipment_name || '설비', + repair_type: requestData.repair_type || '일반 수리', + request_id: result.insertId, + created_by: requestData.reported_by + }); + } catch (notifError) { + console.error('알림 생성 실패:', notifError); + // 알림 생성 실패해도 수리 신청은 성공으로 처리 + } + + callback(null, { + report_id: result.insertId, + equipment_id: requestData.equipment_id, + created: true + }); + } catch (error) { + callback(error); + } + }, + + // GET REPAIR HISTORY - 설비 수리 이력 조회 + getRepairHistory: async (equipmentId, callback) => { + try { + const db = await getDb(); + const query = ` + SELECT + wir.*, + irc.category_name, + iri.item_name, + u_rep.name AS reported_by_name, + u_res.name AS resolved_by_name, + w.workplace_name + FROM work_issue_reports wir + LEFT JOIN issue_report_categories irc ON wir.issue_category_id = irc.category_id + LEFT JOIN issue_report_items iri ON wir.issue_item_id = iri.item_id + LEFT JOIN users u_rep ON wir.reporter_id = u_rep.user_id + LEFT JOIN users u_res ON wir.resolved_by = u_res.user_id + LEFT JOIN workplaces w ON wir.workplace_id = w.workplace_id + WHERE wir.equipment_id = ? + ORDER BY wir.created_at DESC + `; + + const [rows] = await db.query(query, [equipmentId]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + // GET REPAIR CATEGORIES - 설비 수리 항목 목록 조회 + getRepairCategories: async (callback) => { + try { + const db = await getDb(); + + // 설비 수리 카테고리의 항목들 조회 + const query = ` + SELECT iri.item_id, iri.item_name, iri.description, iri.severity + FROM issue_report_items iri + INNER JOIN issue_report_categories irc ON iri.category_id = irc.category_id + WHERE irc.category_name = '설비 수리' AND iri.is_active = 1 + ORDER BY iri.display_order ASC + `; + + const [rows] = await db.query(query); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + // ADD REPAIR CATEGORY - 새 수리 항목 추가 + addRepairCategory: async (itemName, callback) => { + try { + const db = await getDb(); + + // 설비 수리 카테고리 ID 조회 + const [categories] = await db.query( + "SELECT category_id FROM issue_report_categories WHERE category_name = '설비 수리'" + ); + + if (categories.length === 0) { + return callback(new Error('설비 수리 카테고리가 없습니다.')); + } + + const categoryId = categories[0].category_id; + + // 중복 확인 + const [existing] = await db.query( + 'SELECT item_id FROM issue_report_items WHERE category_id = ? AND item_name = ?', + [categoryId, itemName] + ); + + if (existing.length > 0) { + // 이미 존재하면 해당 ID 반환 + return callback(null, { item_id: existing[0].item_id, item_name: itemName, isNew: false }); + } + + // 다음 display_order 구하기 + const [maxOrder] = await db.query( + 'SELECT MAX(display_order) as max_order FROM issue_report_items WHERE category_id = ?', + [categoryId] + ); + const nextOrder = (maxOrder[0].max_order || 0) + 1; + + // 새 항목 추가 + const [result] = await db.query( + `INSERT INTO issue_report_items (category_id, item_name, display_order, is_active) + VALUES (?, ?, ?, 1)`, + [categoryId, itemName, nextOrder] + ); + + callback(null, { item_id: result.insertId, item_name: itemName, isNew: true }); + } catch (error) { + callback(error); + } + } +}; + +module.exports = EquipmentModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/issueTypeModel.js b/deploy/tkfb-package/api.hyungi.net/models/issueTypeModel.js new file mode 100644 index 0000000..b00f94d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/issueTypeModel.js @@ -0,0 +1,42 @@ +const { getDb } = require('../dbPool'); + +// CREATE +const create = async (type) => { + const db = await getDb(); + const [result] = await db.query( + `INSERT INTO IssueTypes (category, subcategory) VALUES (?, ?)`, + [type.category, type.subcategory] + ); + return result.insertId; +}; + +// READ ALL +const getAll = async () => { + const db = await getDb(); + const [rows] = await db.query(`SELECT issue_type_id, category, subcategory FROM IssueTypes ORDER BY category, subcategory`); + return rows; +}; + +// UPDATE +const update = async (id, type) => { + const db = await getDb(); + const [result] = await db.query( + `UPDATE IssueTypes SET category = ?, subcategory = ? WHERE id = ?`, + [type.category, type.subcategory, id] + ); + return result.affectedRows; +}; + +// DELETE +const remove = async (id) => { + const db = await getDb(); + const [result] = await db.query(`DELETE FROM IssueTypes WHERE id = ?`, [id]); + return result.affectedRows; +}; + +module.exports = { + create, + getAll, + update, + remove +}; diff --git a/deploy/tkfb-package/api.hyungi.net/models/monthlyStatusModel.js b/deploy/tkfb-package/api.hyungi.net/models/monthlyStatusModel.js new file mode 100644 index 0000000..d7e86e4 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/monthlyStatusModel.js @@ -0,0 +1,183 @@ +// models/monthlyStatusModel.js +// 월별 작업자 상태 집계 모델 + +const { getDb } = require('../dbPool'); + +class MonthlyStatusModel { + // 월별 일자별 요약 조회 (캘린더용) + static async getMonthlySummary(year, month) { + const db = await getDb(); + + try { + const [rows] = await db.execute(` + SELECT + date, + total_workers, + working_workers, + incomplete_workers, + partial_workers, + complete_workers, + overtime_workers, + vacation_workers, + error_workers, + overtime_warning_workers, + total_work_hours, + total_work_count, + total_error_count, + has_issues, + has_errors, + has_overtime_warning, + last_updated + FROM monthly_summary + WHERE year = ? AND month = ? + ORDER BY date ASC + `, [year, month]); + + return rows; + } catch (error) { + console.error('월별 요약 조회 오류:', error); + throw error; + } + } + + // 특정 날짜의 작업자별 상태 조회 (모달용) + // ✅ 리팩토링: 집계 테이블 대신 daily_work_reports에서 직접 조회 (중복 문제 완전 해결) + static async getDailyWorkerStatus(date) { + const db = await getDb(); + + try { + // daily_work_reports에서 직접 집계하여 조회 (중복 없음 보장) + const [rows] = await db.query(` + SELECT + w.worker_id, + w.worker_name, + w.job_type, + YEAR(?) as year, + MONTH(?) as month, + ? as date, + COALESCE(SUM(dwr.work_hours), 0) as total_work_hours, + COALESCE(SUM(CASE WHEN dwr.project_id != 13 THEN dwr.work_hours ELSE 0 END), 0) as actual_work_hours, + COALESCE(SUM(CASE WHEN dwr.project_id = 13 THEN dwr.work_hours ELSE 0 END), 0) as vacation_hours, + COUNT(dwr.id) as total_work_count, + COUNT(CASE WHEN dwr.project_id != 13 AND dwr.work_status_id != 2 THEN 1 END) as regular_work_count, + COUNT(CASE WHEN dwr.work_status_id = 2 THEN 1 END) as error_work_count, + CASE + WHEN MAX(CASE WHEN dwr.work_status_id = 2 THEN 1 ELSE 0 END) = 1 THEN 'error' + WHEN SUM(dwr.work_hours) > 12 THEN 'overtime-warning' + WHEN SUM(dwr.work_hours) > 8 THEN 'overtime' + WHEN SUM(dwr.work_hours) = 8 THEN 'complete' + WHEN SUM(dwr.work_hours) > 0 THEN 'partial' + ELSE 'incomplete' + END as work_status, + MAX(CASE WHEN dwr.project_id = 13 THEN 1 ELSE 0 END) as has_vacation, + MAX(CASE WHEN dwr.work_status_id = 2 THEN 1 ELSE 0 END) as has_error, + CASE + WHEN SUM(dwr.work_hours) < 8 AND SUM(dwr.work_hours) > 0 THEN 1 + ELSE 0 + END as has_issues, + MAX(dwr.created_at) as last_updated + FROM workers w + LEFT JOIN daily_work_reports dwr ON w.worker_id = dwr.worker_id AND dwr.report_date = ? + WHERE w.status = 'active' + GROUP BY w.worker_id, w.worker_name, w.job_type + ORDER BY w.worker_name ASC + `, [date, date, date, date]); + + return rows; + } catch (error) { + console.error('일별 작업자 상태 조회 오류:', error); + throw error; + } + } + + // 월별 집계 데이터 강제 재계산 (관리용) + static async recalculateMonth(year, month) { + const db = await getDb(); + + try { + // 해당 월의 모든 날짜와 작업자 조합을 찾아서 재계산 + const [workDates] = await db.execute(` + SELECT DISTINCT report_date, worker_id + FROM daily_work_reports + WHERE YEAR(report_date) = ? AND MONTH(report_date) = ? + `, [year, month]); + + let updatedCount = 0; + + for (const { report_date, worker_id } of workDates) { + await db.execute('CALL UpdateMonthlyWorkerStatus(?, ?)', [report_date, worker_id]); + updatedCount++; + } + + console.log(`✅ ${year}년 ${month}월 집계 재계산 완료: ${updatedCount}건`); + return { success: true, updatedCount }; + + } catch (error) { + console.error('월별 집계 재계산 오류:', error); + throw error; + } + } + + // 특정 날짜 집계 강제 업데이트 + static async updateDateSummary(date, workerId = null) { + const db = await getDb(); + + try { + if (workerId) { + // 특정 작업자만 업데이트 + await db.execute('CALL UpdateMonthlyWorkerStatus(?, ?)', [date, workerId]); + } else { + // 해당 날짜의 모든 작업자 업데이트 + const [workers] = await db.execute(` + SELECT DISTINCT worker_id + FROM daily_work_reports + WHERE report_date = ? + `, [date]); + + for (const { worker_id } of workers) { + await db.execute('CALL UpdateMonthlyWorkerStatus(?, ?)', [date, worker_id]); + } + } + + return { success: true }; + } catch (error) { + console.error('날짜별 집계 업데이트 오류:', error); + throw error; + } + } + + // 집계 테이블 상태 확인 + static async getStatusInfo() { + const db = await getDb(); + + try { + const [summaryCount] = await db.execute(` + SELECT + COUNT(*) as total_days, + MIN(date) as earliest_date, + MAX(date) as latest_date, + MAX(last_updated) as last_update + FROM monthly_summary + `); + + const [workerStatusCount] = await db.execute(` + SELECT + COUNT(*) as total_records, + COUNT(DISTINCT worker_id) as unique_workers, + COUNT(DISTINCT date) as unique_dates, + MAX(last_updated) as last_update + FROM monthly_worker_status + `); + + return { + summary: summaryCount[0], + workerStatus: workerStatusCount[0] + }; + } catch (error) { + console.error('집계 테이블 상태 확인 오류:', error); + throw error; + } + } +} + +module.exports = MonthlyStatusModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/notificationModel.js b/deploy/tkfb-package/api.hyungi.net/models/notificationModel.js new file mode 100644 index 0000000..a3a52af --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/notificationModel.js @@ -0,0 +1,197 @@ +// models/notificationModel.js +const { getDb } = require('../dbPool'); + +// 순환 참조를 피하기 위해 함수 내에서 require +async function getRecipientIds(notificationType) { + const db = await getDb(); + const [rows] = await db.query( + `SELECT user_id FROM notification_recipients + WHERE notification_type = ? AND is_active = 1`, + [notificationType] + ); + return rows.map(r => r.user_id); +} + +const notificationModel = { + // 알림 생성 + async create(notificationData) { + const db = await getDb(); + const { user_id, type, title, message, link_url, reference_type, reference_id, created_by } = notificationData; + + const [result] = await db.query( + `INSERT INTO notifications (user_id, type, title, message, link_url, reference_type, reference_id, created_by) + VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, + [user_id || null, type || 'system', title, message || null, link_url || null, reference_type || null, reference_id || null, created_by || null] + ); + + return result.insertId; + }, + + // 읽지 않은 알림 조회 (특정 사용자 또는 전체) + async getUnread(userId = null) { + const db = await getDb(); + const [rows] = await db.query( + `SELECT * FROM notifications + WHERE is_read = 0 + AND (user_id IS NULL OR user_id = ?) + ORDER BY created_at DESC + LIMIT 50`, + [userId || 0] + ); + return rows; + }, + + // 전체 알림 조회 (페이징) + async getAll(userId = null, page = 1, limit = 20) { + const db = await getDb(); + const offset = (page - 1) * limit; + + const [rows] = await db.query( + `SELECT * FROM notifications + WHERE (user_id IS NULL OR user_id = ?) + ORDER BY created_at DESC + LIMIT ? OFFSET ?`, + [userId || 0, limit, offset] + ); + + const [[{ total }]] = await db.query( + `SELECT COUNT(*) as total FROM notifications + WHERE (user_id IS NULL OR user_id = ?)`, + [userId || 0] + ); + + return { notifications: rows, total, page, limit }; + }, + + // 알림 읽음 처리 + async markAsRead(notificationId) { + const db = await getDb(); + const [result] = await db.query( + `UPDATE notifications SET is_read = 1, read_at = NOW() WHERE notification_id = ?`, + [notificationId] + ); + return result.affectedRows > 0; + }, + + // 모든 알림 읽음 처리 + async markAllAsRead(userId = null) { + const db = await getDb(); + const [result] = await db.query( + `UPDATE notifications SET is_read = 1, read_at = NOW() + WHERE is_read = 0 AND (user_id IS NULL OR user_id = ?)`, + [userId || 0] + ); + return result.affectedRows; + }, + + // 알림 삭제 + async delete(notificationId) { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM notifications WHERE notification_id = ?`, + [notificationId] + ); + return result.affectedRows > 0; + }, + + // 오래된 알림 삭제 (30일 이상) + async deleteOld(days = 30) { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM notifications WHERE created_at < DATE_SUB(NOW(), INTERVAL ? DAY)`, + [days] + ); + return result.affectedRows; + }, + + // 읽지 않은 알림 개수 + async getUnreadCount(userId = null) { + const db = await getDb(); + const [[{ count }]] = await db.query( + `SELECT COUNT(*) as count FROM notifications + WHERE is_read = 0 AND (user_id IS NULL OR user_id = ?)`, + [userId || 0] + ); + return count; + }, + + // 수리 신청 알림 생성 헬퍼 (지정된 수신자에게 전송) + async createRepairNotification(repairData) { + const { equipment_id, equipment_name, repair_type, request_id, created_by } = repairData; + + // 수리 알림 수신자 목록 가져오기 + const recipientIds = await getRecipientIds('repair'); + + if (recipientIds.length === 0) { + // 수신자가 지정되지 않은 경우 전체 알림 (user_id = null) + return await this.create({ + type: 'repair', + title: `수리 신청: ${equipment_name || '설비'}`, + message: `${repair_type} 수리가 신청되었습니다.`, + link_url: `/pages/admin/repair-management.html`, + reference_type: 'work_issue_reports', + reference_id: request_id, + created_by + }); + } + + // 지정된 수신자 각각에게 알림 생성 + const results = []; + for (const userId of recipientIds) { + const notificationId = await this.create({ + user_id: userId, + type: 'repair', + title: `수리 신청: ${equipment_name || '설비'}`, + message: `${repair_type} 수리가 신청되었습니다.`, + link_url: `/pages/admin/repair-management.html`, + reference_type: 'work_issue_reports', + reference_id: request_id, + created_by + }); + results.push(notificationId); + } + + return results; + }, + + // 일반 알림 생성 (유형별 지정된 수신자에게 전송) + async createTypedNotification(notificationData) { + const { type, title, message, link_url, reference_type, reference_id, created_by } = notificationData; + + // 해당 유형의 수신자 목록 가져오기 + const recipientIds = await getRecipientIds(type); + + if (recipientIds.length === 0) { + // 수신자가 지정되지 않은 경우 전체 알림 + return await this.create({ + type, + title, + message, + link_url, + reference_type, + reference_id, + created_by + }); + } + + // 지정된 수신자 각각에게 알림 생성 + const results = []; + for (const userId of recipientIds) { + const notificationId = await this.create({ + user_id: userId, + type, + title, + message, + link_url, + reference_type, + reference_id, + created_by + }); + results.push(notificationId); + } + + return results; + } +}; + +module.exports = notificationModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/notificationRecipientModel.js b/deploy/tkfb-package/api.hyungi.net/models/notificationRecipientModel.js new file mode 100644 index 0000000..0867e07 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/notificationRecipientModel.js @@ -0,0 +1,146 @@ +// models/notificationRecipientModel.js +const { getDb } = require('../dbPool'); + +const NOTIFICATION_TYPES = { + repair: '설비 수리', + safety: '안전 신고', + nonconformity: '부적합 신고', + equipment: '설비 관련', + maintenance: '정기점검', + system: '시스템' +}; + +const notificationRecipientModel = { + // 알림 유형 목록 가져오기 + getTypes() { + return NOTIFICATION_TYPES; + }, + + // 유형별 수신자 목록 조회 + async getByType(notificationType) { + const db = await getDb(); + const [rows] = await db.query( + `SELECT nr.*, u.username, u.name as user_name, r.name as role + FROM notification_recipients nr + JOIN users u ON nr.user_id = u.user_id + LEFT JOIN roles r ON u.role_id = r.id + WHERE nr.notification_type = ? AND nr.is_active = 1 + ORDER BY u.name`, + [notificationType] + ); + return rows; + }, + + // 전체 수신자 목록 조회 (유형별 그룹화) + async getAll() { + const db = await getDb(); + const [rows] = await db.query( + `SELECT nr.*, u.username, u.name as user_name, r.name as role + FROM notification_recipients nr + JOIN users u ON nr.user_id = u.user_id + LEFT JOIN roles r ON u.role_id = r.id + WHERE nr.is_active = 1 + ORDER BY nr.notification_type, u.name` + ); + + // 유형별로 그룹화 + const grouped = {}; + for (const type in NOTIFICATION_TYPES) { + grouped[type] = { + label: NOTIFICATION_TYPES[type], + recipients: [] + }; + } + + rows.forEach(row => { + if (grouped[row.notification_type]) { + grouped[row.notification_type].recipients.push(row); + } + }); + + return grouped; + }, + + // 수신자 추가 + async add(notificationType, userId, createdBy = null) { + const db = await getDb(); + const [result] = await db.query( + `INSERT INTO notification_recipients (notification_type, user_id, created_by) + VALUES (?, ?, ?) + ON DUPLICATE KEY UPDATE is_active = 1`, + [notificationType, userId, createdBy] + ); + return result.insertId || result.affectedRows > 0; + }, + + // 수신자 제거 (soft delete) + async remove(notificationType, userId) { + const db = await getDb(); + const [result] = await db.query( + `UPDATE notification_recipients SET is_active = 0 + WHERE notification_type = ? AND user_id = ?`, + [notificationType, userId] + ); + return result.affectedRows > 0; + }, + + // 수신자 완전 삭제 + async delete(notificationType, userId) { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM notification_recipients + WHERE notification_type = ? AND user_id = ?`, + [notificationType, userId] + ); + return result.affectedRows > 0; + }, + + // 유형별 수신자 user_id 목록만 가져오기 (알림 생성용) + async getRecipientIds(notificationType) { + const db = await getDb(); + const [rows] = await db.query( + `SELECT user_id FROM notification_recipients + WHERE notification_type = ? AND is_active = 1`, + [notificationType] + ); + return rows.map(r => r.user_id); + }, + + // 사용자가 특정 유형의 수신자인지 확인 + async isRecipient(notificationType, userId) { + const db = await getDb(); + const [[row]] = await db.query( + `SELECT 1 FROM notification_recipients + WHERE notification_type = ? AND user_id = ? AND is_active = 1`, + [notificationType, userId] + ); + return !!row; + }, + + // 유형별 수신자 일괄 설정 + async setRecipients(notificationType, userIds, createdBy = null) { + const db = await getDb(); + + // 기존 수신자 비활성화 + await db.query( + `UPDATE notification_recipients SET is_active = 0 + WHERE notification_type = ?`, + [notificationType] + ); + + // 새 수신자 추가 + if (userIds && userIds.length > 0) { + const values = userIds.map(userId => [notificationType, userId, createdBy]); + await db.query( + `INSERT INTO notification_recipients (notification_type, user_id, created_by) + VALUES ? + ON DUPLICATE KEY UPDATE is_active = 1`, + [values] + ); + } + + return true; + } +}; + +module.exports = notificationRecipientModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/pageAccessModel.js b/deploy/tkfb-package/api.hyungi.net/models/pageAccessModel.js new file mode 100644 index 0000000..f6801f6 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/pageAccessModel.js @@ -0,0 +1,160 @@ +// models/pageAccessModel.js +const db = require('../db/connection'); + +const PageAccessModel = { + // 사용자의 페이지 권한 조회 + getUserPageAccess: (userId, callback) => { + const sql = ` + SELECT + p.id, + p.page_key, + p.page_name, + p.page_path, + p.category, + p.is_admin_only, + COALESCE(upa.can_access, 0) as can_access, + upa.granted_at, + upa.granted_by, + granter.username as granted_by_username + FROM pages p + LEFT JOIN user_page_access upa ON p.id = upa.page_id AND upa.user_id = ? + LEFT JOIN users granter ON upa.granted_by = granter.user_id + WHERE p.is_admin_only = 0 + ORDER BY p.category, p.display_order + `; + + db.query(sql, [userId], callback); + }, + + // 모든 페이지 목록 조회 + getAllPages: (callback) => { + const sql = ` + SELECT + id, + page_key, + page_name, + page_path, + category, + description, + is_admin_only, + display_order + FROM pages + WHERE is_admin_only = 0 + ORDER BY category, display_order + `; + + db.query(sql, callback); + }, + + // 페이지 권한 부여 + grantPageAccess: (userId, pageId, grantedBy, callback) => { + const sql = ` + INSERT INTO user_page_access (user_id, page_id, can_access, granted_by, granted_at) + VALUES (?, ?, 1, ?, NOW()) + ON DUPLICATE KEY UPDATE + can_access = 1, + granted_by = ?, + granted_at = NOW() + `; + + db.query(sql, [userId, pageId, grantedBy, grantedBy], callback); + }, + + // 페이지 권한 회수 + revokePageAccess: (userId, pageId, callback) => { + const sql = ` + DELETE FROM user_page_access + WHERE user_id = ? AND page_id = ? + `; + + db.query(sql, [userId, pageId], callback); + }, + + // 여러 페이지 권한 일괄 설정 + setUserPageAccess: (userId, pageIds, grantedBy, callback) => { + db.beginTransaction((err) => { + if (err) return callback(err); + + // 기존 권한 모두 삭제 + const deleteSql = 'DELETE FROM user_page_access WHERE user_id = ?'; + + db.query(deleteSql, [userId], (err) => { + if (err) { + return db.rollback(() => callback(err)); + } + + // 새 권한이 없으면 커밋하고 종료 + if (!pageIds || pageIds.length === 0) { + return db.commit((err) => { + if (err) return db.rollback(() => callback(err)); + callback(null, { affectedRows: 0 }); + }); + } + + // 새 권한 추가 + const values = pageIds.map(pageId => [userId, pageId, 1, grantedBy]); + const insertSql = ` + INSERT INTO user_page_access (user_id, page_id, can_access, granted_by, granted_at) + VALUES ? + `; + + db.query(insertSql, [values], (err, result) => { + if (err) { + return db.rollback(() => callback(err)); + } + + db.commit((err) => { + if (err) return db.rollback(() => callback(err)); + callback(null, result); + }); + }); + }); + }); + }, + + // 특정 페이지 접근 권한 확인 + checkPageAccess: (userId, pageKey, callback) => { + const sql = ` + SELECT + COALESCE(upa.can_access, 0) as can_access, + p.is_admin_only + FROM pages p + LEFT JOIN user_page_access upa ON p.id = upa.page_id AND upa.user_id = ? + WHERE p.page_key = ? + `; + + db.query(sql, [userId, pageKey], (err, results) => { + if (err) return callback(err); + if (results.length === 0) return callback(null, { can_access: false }); + callback(null, results[0]); + }); + }, + + // 계정이 있는 작업자 목록 조회 (권한 관리용) + getUsersWithAccounts: (callback) => { + const sql = ` + SELECT + u.user_id, + u.username, + u.name, + u.role_id, + r.name as role_name, + u.worker_id, + w.worker_name, + w.job_type, + COUNT(upa.page_id) as granted_pages_count + FROM users u + LEFT JOIN roles r ON u.role_id = r.id + LEFT JOIN workers w ON u.worker_id = w.worker_id + LEFT JOIN user_page_access upa ON u.user_id = upa.user_id AND upa.can_access = 1 + WHERE u.is_active = 1 + AND u.role_id IN (4, 5) + GROUP BY u.user_id + ORDER BY w.worker_name, u.username + `; + + db.query(sql, callback); + } +}; + +module.exports = PageAccessModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/patrolModel.js b/deploy/tkfb-package/api.hyungi.net/models/patrolModel.js new file mode 100644 index 0000000..c6f052e --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/patrolModel.js @@ -0,0 +1,358 @@ +// patrolModel.js +// 일일순회점검 시스템 모델 + +const { getDb } = require('../dbPool'); + +const PatrolModel = { + // ==================== 순회점검 세션 ==================== + + // 세션 생성 또는 조회 + getOrCreateSession: async (patrolDate, patrolTime, categoryId, inspectorId) => { + const db = await getDb(); + + // 기존 세션 확인 + const [existingRows] = await db.query(` + SELECT session_id, status, started_at, completed_at + FROM daily_patrol_sessions + WHERE patrol_date = ? AND patrol_time = ? AND category_id = ? + `, [patrolDate, patrolTime, categoryId]); + + if (existingRows.length > 0) { + return existingRows[0]; + } + + // 새 세션 생성 + const [result] = await db.query(` + INSERT INTO daily_patrol_sessions (patrol_date, patrol_time, category_id, inspector_id, started_at) + VALUES (?, ?, ?, ?, CURTIME()) + `, [patrolDate, patrolTime, categoryId, inspectorId]); + + return { + session_id: result.insertId, + status: 'in_progress', + started_at: new Date().toTimeString().slice(0, 8) + }; + }, + + // 세션 조회 + getSession: async (sessionId) => { + const db = await getDb(); + const [rows] = await db.query(` + SELECT s.*, u.name AS inspector_name, wc.category_name + FROM daily_patrol_sessions s + LEFT JOIN users u ON s.inspector_id = u.user_id + LEFT JOIN workplace_categories wc ON s.category_id = wc.category_id + WHERE s.session_id = ? + `, [sessionId]); + return rows[0] || null; + }, + + // 세션 목록 조회 + getSessions: async (filters = {}) => { + const db = await getDb(); + let query = ` + SELECT s.*, u.name AS inspector_name, wc.category_name, + (SELECT COUNT(*) FROM patrol_check_records WHERE session_id = s.session_id AND is_checked = 1) AS checked_count, + (SELECT COUNT(*) FROM patrol_check_records WHERE session_id = s.session_id) AS total_count + FROM daily_patrol_sessions s + LEFT JOIN users u ON s.inspector_id = u.user_id + LEFT JOIN workplace_categories wc ON s.category_id = wc.category_id + WHERE 1=1 + `; + const params = []; + + if (filters.patrol_date) { + query += ' AND s.patrol_date = ?'; + params.push(filters.patrol_date); + } + if (filters.patrol_time) { + query += ' AND s.patrol_time = ?'; + params.push(filters.patrol_time); + } + if (filters.category_id) { + query += ' AND s.category_id = ?'; + params.push(filters.category_id); + } + if (filters.status) { + query += ' AND s.status = ?'; + params.push(filters.status); + } + + query += ' ORDER BY s.patrol_date DESC, s.patrol_time DESC'; + + if (filters.limit) { + query += ' LIMIT ?'; + params.push(parseInt(filters.limit)); + } + + const [rows] = await db.query(query, params); + return rows; + }, + + // 세션 완료 처리 + completeSession: async (sessionId) => { + const db = await getDb(); + await db.query(` + UPDATE daily_patrol_sessions + SET status = 'completed', completed_at = CURTIME(), updated_at = NOW() + WHERE session_id = ? + `, [sessionId]); + return true; + }, + + // 세션 메모 업데이트 + updateSessionNotes: async (sessionId, notes) => { + const db = await getDb(); + await db.query(` + UPDATE daily_patrol_sessions + SET notes = ?, updated_at = NOW() + WHERE session_id = ? + `, [notes, sessionId]); + return true; + }, + + // ==================== 체크리스트 항목 ==================== + + // 체크리스트 항목 조회 (공장/작업장별 필터링) + getChecklistItems: async (categoryId = null, workplaceId = null) => { + const db = await getDb(); + let query = ` + SELECT * + FROM patrol_checklist_items + WHERE is_active = 1 + AND (workplace_id IS NULL OR workplace_id = ?) + AND (category_id IS NULL OR category_id = ?) + ORDER BY check_category, display_order, check_item + `; + const [rows] = await db.query(query, [workplaceId, categoryId]); + return rows; + }, + + // 체크리스트 항목 CRUD + createChecklistItem: async (data) => { + const db = await getDb(); + const [result] = await db.query(` + INSERT INTO patrol_checklist_items (workplace_id, category_id, check_category, check_item, description, display_order, is_required) + VALUES (?, ?, ?, ?, ?, ?, ?) + `, [data.workplace_id, data.category_id, data.check_category, data.check_item, data.description, data.display_order || 0, data.is_required !== false]); + return result.insertId; + }, + + updateChecklistItem: async (itemId, data) => { + const db = await getDb(); + const fields = []; + const params = []; + + ['workplace_id', 'category_id', 'check_category', 'check_item', 'description', 'display_order', 'is_required', 'is_active'].forEach(key => { + if (data[key] !== undefined) { + fields.push(`${key} = ?`); + params.push(data[key]); + } + }); + + if (fields.length === 0) return false; + + params.push(itemId); + await db.query(`UPDATE patrol_checklist_items SET ${fields.join(', ')}, updated_at = NOW() WHERE item_id = ?`, params); + return true; + }, + + deleteChecklistItem: async (itemId) => { + const db = await getDb(); + await db.query('UPDATE patrol_checklist_items SET is_active = 0, updated_at = NOW() WHERE item_id = ?', [itemId]); + return true; + }, + + // ==================== 체크 기록 ==================== + + // 작업장별 체크 기록 조회 + getCheckRecords: async (sessionId, workplaceId = null) => { + const db = await getDb(); + let query = ` + SELECT r.*, ci.check_category, ci.check_item, ci.is_required + FROM patrol_check_records r + JOIN patrol_checklist_items ci ON r.check_item_id = ci.item_id + WHERE r.session_id = ? + `; + const params = [sessionId]; + + if (workplaceId) { + query += ' AND r.workplace_id = ?'; + params.push(workplaceId); + } + + query += ' ORDER BY ci.check_category, ci.display_order'; + + const [rows] = await db.query(query, params); + return rows; + }, + + // 체크 기록 저장 (upsert) + saveCheckRecord: async (sessionId, workplaceId, checkItemId, isChecked, checkResult = null, note = null) => { + const db = await getDb(); + await db.query(` + INSERT INTO patrol_check_records (session_id, workplace_id, check_item_id, is_checked, check_result, note, checked_at) + VALUES (?, ?, ?, ?, ?, ?, NOW()) + ON DUPLICATE KEY UPDATE + is_checked = VALUES(is_checked), + check_result = VALUES(check_result), + note = VALUES(note), + checked_at = NOW() + `, [sessionId, workplaceId, checkItemId, isChecked, checkResult, note]); + return true; + }, + + // 여러 체크 기록 일괄 저장 + saveCheckRecords: async (sessionId, workplaceId, records) => { + const db = await getDb(); + for (const record of records) { + await db.query(` + INSERT INTO patrol_check_records (session_id, workplace_id, check_item_id, is_checked, check_result, note, checked_at) + VALUES (?, ?, ?, ?, ?, ?, NOW()) + ON DUPLICATE KEY UPDATE + is_checked = VALUES(is_checked), + check_result = VALUES(check_result), + note = VALUES(note), + checked_at = NOW() + `, [sessionId, workplaceId, record.check_item_id, record.is_checked, record.check_result, record.note]); + } + return true; + }, + + // ==================== 작업장 물품 현황 ==================== + + // 작업장 물품 조회 + getWorkplaceItems: async (workplaceId, activeOnly = true) => { + const db = await getDb(); + let query = ` + SELECT wi.*, u.name AS created_by_name, it.type_name, it.icon, it.color + FROM workplace_items wi + LEFT JOIN users u ON wi.created_by = u.user_id + LEFT JOIN item_types it ON wi.item_type = it.type_code + WHERE wi.workplace_id = ? + `; + if (activeOnly) { + query += ' AND wi.is_active = 1'; + } + query += ' ORDER BY wi.created_at DESC'; + + const [rows] = await db.query(query, [workplaceId]); + return rows; + }, + + // 물품 추가 + createWorkplaceItem: async (data) => { + const db = await getDb(); + const [result] = await db.query(` + INSERT INTO workplace_items + (workplace_id, patrol_session_id, project_id, item_type, item_name, quantity, x_percent, y_percent, width_percent, height_percent, created_by) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, [ + data.workplace_id, + data.patrol_session_id, + data.project_id, + data.item_type, + data.item_name, + data.quantity || 1, + data.x_percent, + data.y_percent, + data.width_percent, + data.height_percent, + data.created_by + ]); + return result.insertId; + }, + + // 물품 수정 + updateWorkplaceItem: async (itemId, data, userId) => { + const db = await getDb(); + const fields = []; + const params = []; + + ['item_type', 'item_name', 'quantity', 'x_percent', 'y_percent', 'width_percent', 'height_percent', 'is_active', 'project_id'].forEach(key => { + if (data[key] !== undefined) { + fields.push(`${key} = ?`); + params.push(data[key]); + } + }); + + if (fields.length === 0) return false; + + fields.push('updated_by = ?', 'updated_at = NOW()'); + params.push(userId, itemId); + + await db.query(`UPDATE workplace_items SET ${fields.join(', ')} WHERE item_id = ?`, params); + return true; + }, + + // 물품 삭제 (비활성화) + deleteWorkplaceItem: async (itemId, userId) => { + const db = await getDb(); + await db.query('UPDATE workplace_items SET is_active = 0, updated_by = ?, updated_at = NOW() WHERE item_id = ?', [userId, itemId]); + return true; + }, + + // 물품 영구 삭제 + hardDeleteWorkplaceItem: async (itemId) => { + const db = await getDb(); + await db.query('DELETE FROM workplace_items WHERE item_id = ?', [itemId]); + return true; + }, + + // ==================== 물품 유형 ==================== + + // 물품 유형 목록 조회 + getItemTypes: async () => { + const db = await getDb(); + const [rows] = await db.query('SELECT * FROM item_types WHERE is_active = 1 ORDER BY display_order'); + return rows; + }, + + // ==================== 대시보드/통계 ==================== + + // 오늘 순회점검 현황 + getTodayPatrolStatus: async (categoryId = null) => { + const db = await getDb(); + const today = new Date().toISOString().slice(0, 10); + + let query = ` + SELECT s.session_id, s.patrol_time, s.status, s.inspector_id, u.name AS inspector_name, + s.started_at, s.completed_at, + (SELECT COUNT(*) FROM patrol_check_records WHERE session_id = s.session_id AND is_checked = 1) AS checked_count, + (SELECT COUNT(*) FROM patrol_check_records WHERE session_id = s.session_id) AS total_count + FROM daily_patrol_sessions s + LEFT JOIN users u ON s.inspector_id = u.user_id + WHERE s.patrol_date = ? + `; + const params = [today]; + + if (categoryId) { + query += ' AND s.category_id = ?'; + params.push(categoryId); + } + + query += ' ORDER BY s.patrol_time'; + + const [rows] = await db.query(query, params); + return rows; + }, + + // 작업장별 점검 현황 (세션 기준) + getWorkplaceCheckStatus: async (sessionId) => { + const db = await getDb(); + const [rows] = await db.query(` + SELECT w.workplace_id, w.workplace_name, + COUNT(DISTINCT r.check_item_id) AS checked_count, + (SELECT COUNT(*) FROM patrol_checklist_items WHERE is_active = 1) AS total_items, + MAX(r.checked_at) AS last_check_time + FROM workplaces w + LEFT JOIN patrol_check_records r ON w.workplace_id = r.workplace_id AND r.session_id = ? + WHERE w.is_active = 1 + GROUP BY w.workplace_id + ORDER BY w.workplace_name + `, [sessionId]); + return rows; + } +}; + +module.exports = PatrolModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/projectModel.js b/deploy/tkfb-package/api.hyungi.net/models/projectModel.js new file mode 100644 index 0000000..01e008b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/projectModel.js @@ -0,0 +1,96 @@ +const { getDb } = require('../dbPool'); + +const create = async (project) => { + const db = await getDb(); + const { + job_no, project_name, + contract_date, due_date, + delivery_method, site, pm, + is_active = true, + project_status = 'active', + completed_date = null + } = project; + + const [result] = await db.query( + `INSERT INTO projects + (job_no, project_name, contract_date, due_date, delivery_method, site, pm, is_active, project_status, completed_date) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, + [job_no, project_name, contract_date, due_date, delivery_method, site, pm, is_active, project_status, completed_date] + ); + + return result.insertId; +}; + +const getAll = async () => { + const db = await getDb(); + const [rows] = await db.query( + `SELECT project_id, job_no, project_name, contract_date, due_date, delivery_method, site, pm, is_active, project_status, completed_date, created_at, updated_at FROM projects ORDER BY project_id DESC` + ); + return rows; +}; + +// 활성 프로젝트만 조회 (작업보고서용) +const getActiveProjects = async () => { + const db = await getDb(); + const [rows] = await db.query( + `SELECT project_id, job_no, project_name, contract_date, due_date, delivery_method, site, pm, is_active, project_status, completed_date, created_at, updated_at FROM projects + WHERE is_active = TRUE + ORDER BY project_name ASC` + ); + return rows; +}; + +const getById = async (project_id) => { + const db = await getDb(); + const [rows] = await db.query( + `SELECT project_id, job_no, project_name, contract_date, due_date, delivery_method, site, pm, is_active, project_status, completed_date, created_at, updated_at FROM projects WHERE project_id = ?`, + [project_id] + ); + return rows[0]; +}; + +const update = async (project) => { + const db = await getDb(); + const { + project_id, job_no, project_name, + contract_date, due_date, + delivery_method, site, pm, + is_active, project_status, completed_date + } = project; + + const [result] = await db.query( + `UPDATE projects + SET job_no = ?, + project_name = ?, + contract_date = ?, + due_date = ?, + delivery_method= ?, + site = ?, + pm = ?, + is_active = ?, + project_status = ?, + completed_date = ? + WHERE project_id = ?`, + [job_no, project_name, contract_date, due_date, delivery_method, site, pm, is_active, project_status, completed_date, project_id] + ); + + return result.affectedRows; +}; + +const remove = async (project_id) => { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM projects WHERE project_id = ?`, + [project_id] + ); + return result.affectedRows; +}; + +module.exports = { + create, + getAll, + getActiveProjects, + getById, + update, + remove +}; diff --git a/deploy/tkfb-package/api.hyungi.net/models/roleModel.js b/deploy/tkfb-package/api.hyungi.net/models/roleModel.js new file mode 100644 index 0000000..5224eae --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/roleModel.js @@ -0,0 +1,43 @@ +const { getDb } = require('../dbPool'); + +class RoleModel { + /** + * 모든 역할 목록을 조회합니다. + * @returns {Promise} 역할 목록 + */ + static async findAll() { + const db = await getDb(); + const [rows] = await db.query('SELECT id, name, description FROM roles ORDER BY id'); + return rows; + } + + /** + * ID로 특정 역할을 조회합니다. + * @param {number} id - 역할 ID + * @returns {Promise} 역할 객체 + */ + static async findById(id) { + const db = await getDb(); + const [rows] = await db.query('SELECT id, name, description FROM roles WHERE id = ?', [id]); + return rows[0]; + } + + /** + * 역할에 속한 모든 권한을 조회합니다. + * @param {number} roleId - 역할 ID + * @returns {Promise} 권한 이름 목록 + */ + static async findPermissionsByRoleId(roleId) { + const db = await getDb(); + const [rows] = await db.query( + `SELECT p.name + FROM permissions p + JOIN role_permissions rp ON p.id = rp.permission_id + WHERE rp.role_id = ?`, + [roleId] + ); + return rows.map(p => p.name); + } +} + +module.exports = RoleModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/taskModel.js b/deploy/tkfb-package/api.hyungi.net/models/taskModel.js new file mode 100644 index 0000000..432d431 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/taskModel.js @@ -0,0 +1,142 @@ +/** + * 작업 모델 + * + * @author TK-FB-Project + * @since 2026-01-26 + */ + +const { getDb } = require('../dbPool'); + +// ==================== 작업 CRUD ==================== + +/** + * 작업 생성 + */ +const createTask = async (taskData) => { + const db = await getDb(); + const { work_type_id, task_name, description } = taskData; + + const [result] = await db.query( + `INSERT INTO tasks (work_type_id, task_name, description, is_active) + VALUES (?, ?, ?, 1)`, + [work_type_id || null, task_name, description || null] + ); + + return result.insertId; +}; + +/** + * 전체 작업 목록 조회 (공정 정보 포함) + */ +const getAllTasks = async () => { + const db = await getDb(); + const [rows] = await db.query( + `SELECT t.task_id, t.work_type_id, t.task_name, t.description, t.is_active, + t.created_at, t.updated_at, + wt.name as work_type_name, wt.category + FROM tasks t + LEFT JOIN work_types wt ON t.work_type_id = wt.id + ORDER BY wt.category ASC, t.task_id DESC` + ); + return rows; +}; + +/** + * 활성 작업만 조회 + */ +const getActiveTasks = async () => { + const db = await getDb(); + const [rows] = await db.query( + `SELECT t.task_id, t.work_type_id, t.task_name, t.description, + wt.name as work_type_name, wt.category + FROM tasks t + LEFT JOIN work_types wt ON t.work_type_id = wt.id + WHERE t.is_active = 1 + ORDER BY wt.category ASC, t.task_name ASC` + ); + return rows; +}; + +/** + * 공정별 작업 목록 조회 (활성 작업만) + */ +const getTasksByWorkType = async (workTypeId) => { + const db = await getDb(); + const [rows] = await db.query( + `SELECT t.task_id, t.work_type_id, t.task_name, t.description, t.is_active, + t.created_at, t.updated_at, + wt.name as work_type_name, wt.category + FROM tasks t + LEFT JOIN work_types wt ON t.work_type_id = wt.id + WHERE t.work_type_id = ? AND t.is_active = 1 + ORDER BY t.task_name ASC`, + [workTypeId] + ); + return rows; +}; + +/** + * 단일 작업 조회 + */ +const getTaskById = async (taskId) => { + const db = await getDb(); + const [rows] = await db.query( + `SELECT t.task_id, t.work_type_id, t.task_name, t.description, t.is_active, + t.created_at, t.updated_at, + wt.name as work_type_name, wt.category + FROM tasks t + LEFT JOIN work_types wt ON t.work_type_id = wt.id + WHERE t.task_id = ?`, + [taskId] + ); + return rows[0] || null; +}; + +/** + * 작업 수정 + */ +const updateTask = async (taskId, taskData) => { + const db = await getDb(); + const { work_type_id, task_name, description, is_active } = taskData; + + const [result] = await db.query( + `UPDATE tasks + SET work_type_id = ?, + task_name = ?, + description = ?, + is_active = ?, + updated_at = NOW() + WHERE task_id = ?`, + [ + work_type_id || null, + task_name, + description || null, + is_active !== undefined ? is_active : 1, + taskId + ] + ); + + return result; +}; + +/** + * 작업 삭제 + */ +const deleteTask = async (taskId) => { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM tasks WHERE task_id = ?`, + [taskId] + ); + return result; +}; + +module.exports = { + createTask, + getAllTasks, + getActiveTasks, + getTasksByWorkType, + getTaskById, + updateTask, + deleteTask +}; diff --git a/deploy/tkfb-package/api.hyungi.net/models/tbmModel.js b/deploy/tkfb-package/api.hyungi.net/models/tbmModel.js new file mode 100644 index 0000000..a191243 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/tbmModel.js @@ -0,0 +1,994 @@ +// models/tbmModel.js - TBM 시스템 모델 +const { getDb } = require('../dbPool'); + +const TbmModel = { + // ==================== TBM 세션 관련 ==================== + + /** + * TBM 세션 생성 + */ + createSession: async (sessionData, callback) => { + try { + const db = await getDb(); + const sql = ` + INSERT INTO tbm_sessions + (session_date, leader_id, project_id, work_type_id, task_id, work_location, created_by) + VALUES (?, ?, ?, ?, ?, ?, ?) + `; + + const values = [ + sessionData.session_date, + sessionData.leader_id, + sessionData.project_id || null, + sessionData.work_type_id || null, + sessionData.task_id || null, + sessionData.work_location || null, + sessionData.created_by + ]; + + const [result] = await db.query(sql, values); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + /** + * 특정 날짜의 TBM 세션 조회 + */ + getSessionsByDate: async (date, callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT + s.*, + w.worker_name as leader_name, + w.job_type as leader_job_type, + u.username as created_by_username, + u.name as created_by_name, + COUNT(DISTINCT ta.worker_id) as team_member_count, + -- 첫 번째 팀원의 작업 정보 가져오기 + first_ta.project_id, + first_ta.work_type_id, + first_ta.task_id, + first_ta.workplace_id, + first_p.project_name, + first_wt.name as work_type_name, + first_t.task_name, + first_wp.workplace_name as work_location + FROM tbm_sessions s + LEFT JOIN workers w ON s.leader_id = w.worker_id + LEFT JOIN users u ON s.created_by = u.user_id + LEFT JOIN tbm_team_assignments ta ON s.session_id = ta.session_id + -- 첫 번째 팀원 정보 (가장 먼저 등록된 작업) + LEFT JOIN ( + SELECT * FROM tbm_team_assignments + WHERE (session_id, assignment_id) IN ( + SELECT session_id, MIN(assignment_id) + FROM tbm_team_assignments + GROUP BY session_id + ) + ) first_ta ON s.session_id = first_ta.session_id + LEFT JOIN projects first_p ON first_ta.project_id = first_p.project_id + LEFT JOIN work_types first_wt ON first_ta.work_type_id = first_wt.id + LEFT JOIN tasks first_t ON first_ta.task_id = first_t.task_id + LEFT JOIN workplaces first_wp ON first_ta.workplace_id = first_wp.workplace_id + WHERE s.session_date = ? + GROUP BY s.session_id + ORDER BY s.session_id DESC + `; + + const [rows] = await db.query(sql, [date]); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * TBM 세션 상세 조회 + */ + getSessionById: async (sessionId, callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT + s.*, + w.worker_name as leader_name, + w.job_type as leader_job_type, + w.phone_number as leader_phone, + p.project_name, + p.job_no, + p.site, + wt.name as work_type_name, + wt.category as work_type_category, + t.task_name, + t.description as task_description, + u.username as created_by_username, + u.name as created_by_name + FROM tbm_sessions s + LEFT JOIN workers w ON s.leader_id = w.worker_id + LEFT JOIN projects p ON s.project_id = p.project_id + LEFT JOIN work_types wt ON s.work_type_id = wt.id + LEFT JOIN tasks t ON s.task_id = t.task_id + LEFT JOIN users u ON s.created_by = u.user_id + WHERE s.session_id = ? + `; + + const [rows] = await db.query(sql, [sessionId]); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * TBM 세션 수정 + */ + updateSession: async (sessionId, sessionData, callback) => { + try { + const db = await getDb(); + const sql = ` + UPDATE tbm_sessions + SET + project_id = ?, + work_location = ?, + status = ?, + updated_at = NOW() + WHERE session_id = ? + `; + + const values = [ + sessionData.project_id, + sessionData.work_location, + sessionData.status, + sessionId + ]; + + const [result] = await db.query(sql, values); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + /** + * TBM 세션 완료 처리 + */ + completeSession: async (sessionId, endTime, callback) => { + try { + const db = await getDb(); + const sql = ` + UPDATE tbm_sessions + SET + status = 'completed', + end_time = ?, + updated_at = NOW() + WHERE session_id = ? + `; + + const [result] = await db.query(sql, [endTime, sessionId]); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + // ==================== 팀 구성 관련 ==================== + + /** + * 팀원 추가 (작업자별 상세 정보 포함) + */ + addTeamMember: async (assignmentData, callback) => { + try { + const db = await getDb(); + const sql = ` + INSERT INTO tbm_team_assignments + (session_id, worker_id, assigned_role, work_detail, is_present, absence_reason, + project_id, work_type_id, task_id, workplace_category_id, workplace_id) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + ON DUPLICATE KEY UPDATE + assigned_role = VALUES(assigned_role), + work_detail = VALUES(work_detail), + is_present = VALUES(is_present), + absence_reason = VALUES(absence_reason), + project_id = VALUES(project_id), + work_type_id = VALUES(work_type_id), + task_id = VALUES(task_id), + workplace_category_id = VALUES(workplace_category_id), + workplace_id = VALUES(workplace_id) + `; + + const values = [ + assignmentData.session_id, + assignmentData.worker_id, + assignmentData.assigned_role, + assignmentData.work_detail, + assignmentData.is_present !== undefined ? assignmentData.is_present : true, + assignmentData.absence_reason, + assignmentData.project_id || null, + assignmentData.work_type_id || null, + assignmentData.task_id || null, + assignmentData.workplace_category_id || null, + assignmentData.workplace_id || null + ]; + + const [result] = await db.query(sql, values); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + /** + * 팀 구성 일괄 추가 (작업자별 상세 정보 포함) + */ + addTeamMembers: async (sessionId, members, callback) => { + try { + if (!members || members.length === 0) { + return callback(null, { affectedRows: 0 }); + } + + const db = await getDb(); + const values = members.map(m => [ + sessionId, + m.worker_id, + m.assigned_role || null, + m.work_detail || null, + m.is_present !== undefined ? m.is_present : true, + m.absence_reason || null, + m.project_id || null, + m.work_type_id || null, + m.task_id || null, + m.workplace_category_id || null, + m.workplace_id || null + ]); + + const sql = ` + INSERT INTO tbm_team_assignments + (session_id, worker_id, assigned_role, work_detail, is_present, absence_reason, + project_id, work_type_id, task_id, workplace_category_id, workplace_id) + VALUES ? + `; + + const [result] = await db.query(sql, [values]); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + /** + * TBM 세션의 팀 구성 조회 (작업자별 상세 정보 포함) + */ + getTeamMembers: async (sessionId, callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT + ta.*, + w.worker_name, + w.job_type, + w.phone_number, + w.department, + p.project_name, + wt.name as work_type_name, + t.task_name, + wc.category_name AS workplace_category_name, + wp.workplace_name + FROM tbm_team_assignments ta + INNER JOIN workers w ON ta.worker_id = w.worker_id + LEFT JOIN projects p ON ta.project_id = p.project_id + LEFT JOIN work_types wt ON ta.work_type_id = wt.id + LEFT JOIN tasks t ON ta.task_id = t.task_id + LEFT JOIN workplace_categories wc ON ta.workplace_category_id = wc.category_id + LEFT JOIN workplaces wp ON ta.workplace_id = wp.workplace_id + WHERE ta.session_id = ? + ORDER BY ta.assigned_at DESC + `; + + const [rows] = await db.query(sql, [sessionId]); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * 팀원 제거 + */ + removeTeamMember: async (sessionId, workerId, callback) => { + try { + const db = await getDb(); + const sql = ` + DELETE FROM tbm_team_assignments + WHERE session_id = ? AND worker_id = ? + `; + + const [result] = await db.query(sql, [sessionId, workerId]); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + /** + * 세션의 모든 팀원 삭제 + */ + clearAllTeamMembers: async (sessionId, callback) => { + try { + const db = await getDb(); + const sql = ` + DELETE FROM tbm_team_assignments + WHERE session_id = ? + `; + + const [result] = await db.query(sql, [sessionId]); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + // ==================== 안전 체크리스트 관련 ==================== + + /** + * 모든 안전 체크 항목 조회 + */ + getAllSafetyChecks: async (callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT * + FROM tbm_safety_checks + WHERE is_active = 1 + ORDER BY check_category, display_order + `; + + const [rows] = await db.query(sql); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * 카테고리별 안전 체크 항목 조회 + */ + getSafetyChecksByCategory: async (category, callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT * + FROM tbm_safety_checks + WHERE check_category = ? AND is_active = 1 + ORDER BY display_order + `; + + const [rows] = await db.query(sql, [category]); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * TBM 세션의 안전 체크 기록 조회 + */ + getSafetyRecords: async (sessionId, callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT + sr.*, + sc.check_category, + sc.check_item, + sc.description, + sc.is_required, + u.username as checked_by_username, + u.name as checked_by_name + FROM tbm_safety_records sr + INNER JOIN tbm_safety_checks sc ON sr.check_id = sc.check_id + LEFT JOIN users u ON sr.checked_by = u.user_id + WHERE sr.session_id = ? + ORDER BY sc.check_category, sc.display_order + `; + + const [rows] = await db.query(sql, [sessionId]); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * 안전 체크 기록 저장/업데이트 + */ + saveSafetyRecord: async (recordData, callback) => { + try { + const db = await getDb(); + const sql = ` + INSERT INTO tbm_safety_records + (session_id, check_id, is_checked, notes, checked_by, checked_at) + VALUES (?, ?, ?, ?, ?, NOW()) + ON DUPLICATE KEY UPDATE + is_checked = VALUES(is_checked), + notes = VALUES(notes), + checked_by = VALUES(checked_by), + checked_at = NOW() + `; + + const values = [ + recordData.session_id, + recordData.check_id, + recordData.is_checked, + recordData.notes, + recordData.checked_by + ]; + + const [result] = await db.query(sql, values); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + /** + * 안전 체크 일괄 저장 + */ + saveSafetyRecords: async (sessionId, records, checkedBy, callback) => { + try { + if (!records || records.length === 0) { + return callback(null, { affectedRows: 0 }); + } + + const db = await getDb(); + const values = records.map(r => [ + sessionId, + r.check_id, + r.is_checked, + r.notes || null, + checkedBy + ]); + + const sql = ` + INSERT INTO tbm_safety_records + (session_id, check_id, is_checked, notes, checked_by, checked_at) + VALUES ? + ON DUPLICATE KEY UPDATE + is_checked = VALUES(is_checked), + notes = VALUES(notes), + checked_by = VALUES(checked_by), + checked_at = NOW() + `; + + const [result] = await db.query(sql, [values]); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + // ==================== 작업 인계 관련 ==================== + + /** + * 작업 인계 생성 + */ + createHandover: async (handoverData, callback) => { + try { + const db = await getDb(); + const sql = ` + INSERT INTO team_handovers + (session_id, from_leader_id, to_leader_id, handover_date, handover_time, + reason, handover_notes, worker_ids) + VALUES (?, ?, ?, ?, ?, ?, ?, ?) + `; + + const values = [ + handoverData.session_id, + handoverData.from_leader_id, + handoverData.to_leader_id, + handoverData.handover_date, + handoverData.handover_time, + handoverData.reason, + handoverData.handover_notes, + JSON.stringify(handoverData.worker_ids || []) + ]; + + const [result] = await db.query(sql, values); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + /** + * 작업 인계 확인 + */ + confirmHandover: async (handoverId, confirmedBy, callback) => { + try { + const db = await getDb(); + const sql = ` + UPDATE team_handovers + SET + is_confirmed = 1, + confirmed_at = NOW(), + confirmed_by = ? + WHERE handover_id = ? + `; + + const [result] = await db.query(sql, [confirmedBy, handoverId]); + callback(null, result); + } catch (err) { + callback(err); + } + }, + + /** + * 특정 날짜의 작업 인계 목록 조회 + */ + getHandoversByDate: async (date, callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT + h.*, + w1.worker_name as from_leader_name, + w2.worker_name as to_leader_name, + u.username as confirmed_by_username, + u.name as confirmed_by_name + FROM team_handovers h + INNER JOIN workers w1 ON h.from_leader_id = w1.worker_id + INNER JOIN workers w2 ON h.to_leader_id = w2.worker_id + LEFT JOIN users u ON h.confirmed_by = u.user_id + WHERE h.handover_date = ? + ORDER BY h.handover_time DESC + `; + + const [rows] = await db.query(sql, [date]); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * 인수자가 받은 미확인 인계 건 조회 + */ + getPendingHandovers: async (toLeaderId, callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT + h.*, + w1.worker_name as from_leader_name, + w1.phone_number as from_leader_phone, + s.work_location + FROM team_handovers h + INNER JOIN workers w1 ON h.from_leader_id = w1.worker_id + LEFT JOIN tbm_sessions s ON h.session_id = s.session_id + WHERE h.to_leader_id = ? AND h.is_confirmed = 0 + ORDER BY h.handover_date DESC, h.handover_time DESC + `; + + const [rows] = await db.query(sql, [toLeaderId]); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + // ==================== 통계 및 리포트 ==================== + + /** + * 특정 기간의 TBM 통계 + */ + getTbmStatistics: async (startDate, endDate, callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT + DATE(session_date) as date, + COUNT(DISTINCT session_id) as session_count, + COUNT(DISTINCT leader_id) as leader_count, + SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) as completed_count + FROM tbm_sessions + WHERE session_date BETWEEN ? AND ? + GROUP BY DATE(session_date) + ORDER BY date DESC + `; + + const [rows] = await db.query(sql, [startDate, endDate]); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * 리더별 TBM 진행 현황 + */ + getLeaderStatistics: async (startDate, endDate, callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT + s.leader_id, + w.worker_name as leader_name, + COUNT(DISTINCT s.session_id) as total_sessions, + SUM(CASE WHEN s.status = 'completed' THEN 1 ELSE 0 END) as completed_sessions, + COUNT(DISTINCT ta.worker_id) as total_team_members + FROM tbm_sessions s + INNER JOIN workers w ON s.leader_id = w.worker_id + LEFT JOIN tbm_team_assignments ta ON s.session_id = ta.session_id + WHERE s.session_date BETWEEN ? AND ? + GROUP BY s.leader_id + ORDER BY total_sessions DESC + `; + + const [rows] = await db.query(sql, [startDate, endDate]); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * 작업보고서가 작성되지 않은 TBM 세션의 팀 배정 조회 + * @param {number|null} userId - 조회할 사용자 ID (null이면 모든 TBM 조회 - 관리자용) + */ + getIncompleteWorkReports: async (userId, callback) => { + try { + const db = await getDb(); + + // WHERE 조건 동적 생성 + let whereClause = ` + WHERE dwr.id IS NULL + AND s.status = 'draft' + `; + const params = []; + + // userId가 있으면 created_by 조건 추가 (일반 사용자) + if (userId !== null && userId !== undefined) { + whereClause = ` + WHERE s.created_by = ? + AND dwr.id IS NULL + AND s.status = 'draft' + `; + params.push(userId); + } + + const sql = ` + SELECT + ta.assignment_id, + ta.session_id, + ta.worker_id, + ta.project_id, + ta.work_type_id, + ta.task_id, + ta.workplace_category_id, + ta.workplace_id, + s.session_date, + s.status as session_status, + s.created_by, + w.worker_name, + w.job_type, + p.project_name, + wt.name as work_type_name, + t.task_name, + wp.workplace_name, + wc.category_name, + creator.name as created_by_name + FROM tbm_team_assignments ta + INNER JOIN tbm_sessions s ON ta.session_id = s.session_id + INNER JOIN workers w ON ta.worker_id = w.worker_id + LEFT JOIN users creator ON s.created_by = creator.user_id + LEFT JOIN projects p ON ta.project_id = p.project_id + LEFT JOIN work_types wt ON ta.work_type_id = wt.id + LEFT JOIN tasks t ON ta.task_id = t.task_id + LEFT JOIN workplaces wp ON ta.workplace_id = wp.workplace_id + LEFT JOIN workplace_categories wc ON ta.workplace_category_id = wc.category_id + LEFT JOIN daily_work_reports dwr ON ta.assignment_id = dwr.tbm_assignment_id + ${whereClause} + ORDER BY s.session_date DESC, ta.assignment_id ASC + `; + + const [rows] = await db.query(sql, params); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + // ========== 안전 체크리스트 확장 메서드 ========== + + /** + * 유형별 안전 체크 항목 조회 + * @param {string} checkType - 체크 유형 (basic, weather, task) + * @param {Object} options - 추가 옵션 (weatherCondition, taskId) + */ + getSafetyChecksByType: async (checkType, options = {}, callback) => { + try { + const db = await getDb(); + let sql = ` + SELECT sc.*, + wc.condition_name as weather_condition_name, + wc.icon as weather_icon, + t.task_name + FROM tbm_safety_checks sc + LEFT JOIN weather_conditions wc ON sc.weather_condition = wc.condition_code + LEFT JOIN tasks t ON sc.task_id = t.task_id + WHERE sc.is_active = 1 AND sc.check_type = ? + `; + const params = [checkType]; + + if (checkType === 'weather' && options.weatherCondition) { + sql += ' AND sc.weather_condition = ?'; + params.push(options.weatherCondition); + } + + if (checkType === 'task' && options.taskId) { + sql += ' AND sc.task_id = ?'; + params.push(options.taskId); + } + + sql += ' ORDER BY sc.check_category, sc.display_order'; + + const [rows] = await db.query(sql, params); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * 날씨 조건별 안전 체크 항목 조회 (복수 조건) + * @param {string[]} conditions - 날씨 조건 배열 ['rain', 'wind'] + */ + getSafetyChecksByWeather: async (conditions, callback) => { + try { + const db = await getDb(); + + if (!conditions || conditions.length === 0) { + return callback(null, []); + } + + const placeholders = conditions.map(() => '?').join(','); + const sql = ` + SELECT sc.*, + wc.condition_name as weather_condition_name, + wc.icon as weather_icon + FROM tbm_safety_checks sc + LEFT JOIN weather_conditions wc ON sc.weather_condition = wc.condition_code + WHERE sc.is_active = 1 + AND sc.check_type = 'weather' + AND sc.weather_condition IN (${placeholders}) + ORDER BY sc.weather_condition, sc.display_order + `; + + const [rows] = await db.query(sql, conditions); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * 작업별 안전 체크 항목 조회 (복수 작업) + * @param {number[]} taskIds - 작업 ID 배열 + */ + getSafetyChecksByTasks: async (taskIds, callback) => { + try { + const db = await getDb(); + + if (!taskIds || taskIds.length === 0) { + return callback(null, []); + } + + const placeholders = taskIds.map(() => '?').join(','); + const sql = ` + SELECT sc.*, + t.task_name, + wt.name as work_type_name + FROM tbm_safety_checks sc + LEFT JOIN tasks t ON sc.task_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + WHERE sc.is_active = 1 + AND sc.check_type = 'task' + AND sc.task_id IN (${placeholders}) + ORDER BY sc.task_id, sc.display_order + `; + + const [rows] = await db.query(sql, taskIds); + callback(null, rows); + } catch (err) { + callback(err); + } + }, + + /** + * TBM 세션에 맞는 필터링된 안전 체크 항목 조회 + * 기본 + 날씨 + 작업별 체크항목 통합 조회 + * @param {number} sessionId - TBM 세션 ID + * @param {string[]} weatherConditions - 날씨 조건 배열 (optional) + */ + getFilteredSafetyChecks: async (sessionId, weatherConditions = [], callback) => { + try { + const db = await getDb(); + + // 1. 세션 정보에서 작업 ID 목록 조회 + const [assignments] = await db.query(` + SELECT DISTINCT task_id + FROM tbm_team_assignments + WHERE session_id = ? AND task_id IS NOT NULL + `, [sessionId]); + + const taskIds = assignments.map(a => a.task_id); + + // 2. 기본 체크항목 조회 + const [basicChecks] = await db.query(` + SELECT sc.*, 'basic' as section_type + FROM tbm_safety_checks sc + WHERE sc.is_active = 1 AND sc.check_type = 'basic' + ORDER BY sc.check_category, sc.display_order + `); + + // 3. 날씨별 체크항목 조회 + let weatherChecks = []; + if (weatherConditions && weatherConditions.length > 0) { + const wcPlaceholders = weatherConditions.map(() => '?').join(','); + const [rows] = await db.query(` + SELECT sc.*, wc.condition_name as weather_condition_name, wc.icon as weather_icon, + 'weather' as section_type + FROM tbm_safety_checks sc + LEFT JOIN weather_conditions wc ON sc.weather_condition = wc.condition_code + WHERE sc.is_active = 1 + AND sc.check_type = 'weather' + AND sc.weather_condition IN (${wcPlaceholders}) + ORDER BY sc.weather_condition, sc.display_order + `, weatherConditions); + weatherChecks = rows; + } + + // 4. 작업별 체크항목 조회 + let taskChecks = []; + if (taskIds.length > 0) { + const taskPlaceholders = taskIds.map(() => '?').join(','); + const [rows] = await db.query(` + SELECT sc.*, t.task_name, wt.name as work_type_name, + 'task' as section_type + FROM tbm_safety_checks sc + LEFT JOIN tasks t ON sc.task_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + WHERE sc.is_active = 1 + AND sc.check_type = 'task' + AND sc.task_id IN (${taskPlaceholders}) + ORDER BY sc.task_id, sc.display_order + `, taskIds); + taskChecks = rows; + } + + // 5. 기존 체크 기록 조회 + const [existingRecords] = await db.query(` + SELECT check_id, is_checked, notes + FROM tbm_safety_records + WHERE session_id = ? + `, [sessionId]); + + const recordMap = {}; + existingRecords.forEach(r => { + recordMap[r.check_id] = { is_checked: r.is_checked, notes: r.notes }; + }); + + // 6. 기록과 병합 + const mergeWithRecords = (checks) => { + return checks.map(check => ({ + ...check, + is_checked: recordMap[check.check_id]?.is_checked || false, + notes: recordMap[check.check_id]?.notes || null + })); + }; + + const result = { + basic: mergeWithRecords(basicChecks), + weather: mergeWithRecords(weatherChecks), + task: mergeWithRecords(taskChecks), + totalCount: basicChecks.length + weatherChecks.length + taskChecks.length, + weatherConditions: weatherConditions + }; + + callback(null, result); + } catch (err) { + callback(err); + } + }, + + /** + * 안전 체크 항목 생성 (관리자용) + */ + createSafetyCheck: async (checkData, callback) => { + try { + const db = await getDb(); + const sql = ` + INSERT INTO tbm_safety_checks + (check_category, check_type, weather_condition, task_id, check_item, description, is_required, display_order) + VALUES (?, ?, ?, ?, ?, ?, ?, ?) + `; + + const values = [ + checkData.check_category, + checkData.check_type || 'basic', + checkData.weather_condition || null, + checkData.task_id || null, + checkData.check_item, + checkData.description || null, + checkData.is_required !== false, + checkData.display_order || 0 + ]; + + const [result] = await db.query(sql, values); + callback(null, { insertId: result.insertId }); + } catch (err) { + callback(err); + } + }, + + /** + * 안전 체크 항목 수정 (관리자용) + */ + updateSafetyCheck: async (checkId, checkData, callback) => { + try { + const db = await getDb(); + const sql = ` + UPDATE tbm_safety_checks + SET check_category = ?, + check_type = ?, + weather_condition = ?, + task_id = ?, + check_item = ?, + description = ?, + is_required = ?, + display_order = ?, + is_active = ?, + updated_at = NOW() + WHERE check_id = ? + `; + + const values = [ + checkData.check_category, + checkData.check_type || 'basic', + checkData.weather_condition || null, + checkData.task_id || null, + checkData.check_item, + checkData.description || null, + checkData.is_required !== false, + checkData.display_order || 0, + checkData.is_active !== false, + checkId + ]; + + const [result] = await db.query(sql, values); + callback(null, { affectedRows: result.affectedRows }); + } catch (err) { + callback(err); + } + }, + + /** + * 안전 체크 항목 삭제 (비활성화) + */ + deleteSafetyCheck: async (checkId, callback) => { + try { + const db = await getDb(); + // 실제 삭제 대신 비활성화 + const sql = `UPDATE tbm_safety_checks SET is_active = 0 WHERE check_id = ?`; + + const [result] = await db.query(sql, [checkId]); + callback(null, { affectedRows: result.affectedRows }); + } catch (err) { + callback(err); + } + } +}; + +module.exports = TbmModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/toolsModel.js b/deploy/tkfb-package/api.hyungi.net/models/toolsModel.js new file mode 100644 index 0000000..957ac3b --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/toolsModel.js @@ -0,0 +1,68 @@ +const { getDb } = require('../dbPool'); + +// 1. 전체 도구 조회 +const getAll = async () => { + const db = await getDb(); + const [rows] = await db.query('SELECT id, name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note FROM Tools'); + return rows; +}; + +// 2. 단일 도구 조회 +const getById = async (id) => { + const db = await getDb(); + const [rows] = await db.query('SELECT id, name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note FROM Tools WHERE id = ?', [id]); + return rows[0]; +}; + +// 3. 도구 생성 +const create = async (tool) => { + const db = await getDb(); + const { name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note } = tool; + + const [result] = await db.query( + `INSERT INTO Tools + (name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, + [name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note] + ); + + return result.insertId; +}; + +// 4. 도구 수정 +const update = async (id, tool) => { + const db = await getDb(); + const { name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note } = tool; + + const [result] = await db.query( + `UPDATE Tools + SET name = ?, + location = ?, + stock = ?, + status = ?, + factory_id = ?, + map_x = ?, + map_y = ?, + map_zone = ?, + map_note = ? + WHERE id = ?`, + [name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note, id] + ); + + return result.affectedRows; +}; + +// 5. 도구 삭제 +const remove = async (id) => { + const db = await getDb(); + const [result] = await db.query('DELETE FROM Tools WHERE id = ?', [id]); + return result.affectedRows; +}; + +module.exports = { + getAll, + getById, + create, + update, + remove +}; diff --git a/deploy/tkfb-package/api.hyungi.net/models/uploadModel.js b/deploy/tkfb-package/api.hyungi.net/models/uploadModel.js new file mode 100644 index 0000000..24ae0ab --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/uploadModel.js @@ -0,0 +1,36 @@ +const { getDb } = require('../dbPool'); + +// 1. 문서 업로드 +const create = async (doc) => { + const db = await getDb(); + const sql = ` + INSERT INTO uploaded_documents + (title, tags, description, original_name, stored_name, file_path, file_type, file_size, submitted_by) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) + `; + const values = [ + doc.title, + doc.tags, + doc.description, + doc.original_name, + doc.stored_name, + doc.file_path, + doc.file_type, + doc.file_size, + doc.submitted_by + ]; + const [result] = await db.query(sql, values); + return result.insertId; +}; + +// 2. 전체 문서 목록 조회 +const getAll = async () => { + const db = await getDb(); + const [rows] = await db.query(`SELECT * FROM uploaded_documents ORDER BY created_at DESC`); + return rows; +}; + +module.exports = { + create, + getAll +}; diff --git a/deploy/tkfb-package/api.hyungi.net/models/userModel.js b/deploy/tkfb-package/api.hyungi.net/models/userModel.js new file mode 100644 index 0000000..bd4c54f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/userModel.js @@ -0,0 +1,82 @@ +const { getDb } = require('../dbPool'); + +// 사용자 조회 +const findByUsername = async (username) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT u.user_id, u.username, u.password, u.name, u.email, + u.role_id, r.name as role_name, + u._access_level_old as access_level, u.worker_id, u.is_active, + u.last_login_at, u.password_changed_at, u.failed_login_attempts, + u.locked_until, u.created_at, u.updated_at + FROM users u + LEFT JOIN roles r ON u.role_id = r.id + WHERE u.username = ?`, [username] + ); + return rows[0]; + } catch (err) { + console.error('DB 오류 - 사용자 조회 실패:', err); + throw err; + } +}; + +/** + * 로그인 실패 횟수를 1 증가시킵니다. + * @param {number} userId - 사용자 ID + */ +const incrementFailedLoginAttempts = async (userId) => { + try { + const db = await getDb(); + await db.query( + 'UPDATE users SET failed_login_attempts = failed_login_attempts + 1 WHERE user_id = ?', + [userId] + ); + } catch (err) { + console.error('DB 오류 - 로그인 실패 횟수 증가 실패:', err); + throw err; + } +}; + +/** + * 특정 사용자의 계정을 잠급니다. + * @param {number} userId - 사용자 ID + */ +const lockUserAccount = async (userId) => { + try { + const db = await getDb(); + await db.query( + 'UPDATE users SET locked_until = DATE_ADD(NOW(), INTERVAL 15 MINUTE) WHERE user_id = ?', + [userId] + ); + } catch (err) { + console.error('DB 오류 - 계정 잠금 실패:', err); + throw err; + } +}; + +/** + * 로그인 성공 시, 마지막 로그인 시간을 업데이트하고 실패 횟수와 잠금 상태를 초기화합니다. + * @param {number} userId - 사용자 ID + */ +const resetLoginAttempts = async (userId) => { + try { + const db = await getDb(); + await db.query( + 'UPDATE users SET last_login_at = NOW(), failed_login_attempts = 0, locked_until = NULL WHERE user_id = ?', + [userId] + ); + } catch (err) { + console.error('DB 오류 - 로그인 상태 초기화 실패:', err); + throw err; + } +}; + + +// 명확한 내보내기 +module.exports = { + findByUsername, + incrementFailedLoginAttempts, + lockUserAccount, + resetLoginAttempts +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/models/vacationBalanceModel.js b/deploy/tkfb-package/api.hyungi.net/models/vacationBalanceModel.js new file mode 100644 index 0000000..d342417 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/vacationBalanceModel.js @@ -0,0 +1,400 @@ +/** + * vacationBalanceModel.js + * 휴가 잔액 관련 데이터베이스 쿼리 모델 + */ + +const { getDb } = require('../dbPool'); + +const vacationBalanceModel = { + /** + * 특정 작업자의 모든 휴가 잔액 조회 (특정 연도) + */ + async getByWorkerAndYear(workerId, year, callback) { + try { + const db = await getDb(); + const query = ` + SELECT + vbd.*, + vt.type_name, + vt.type_code, + vt.priority, + vt.is_special + FROM vacation_balance_details vbd + INNER JOIN vacation_types vt ON vbd.vacation_type_id = vt.id + WHERE vbd.worker_id = ? AND vbd.year = ? + ORDER BY vt.priority ASC, vt.type_name ASC + `; + const [rows] = await db.query(query, [workerId, year]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 특정 작업자의 특정 휴가 유형 잔액 조회 + */ + async getByWorkerTypeYear(workerId, vacationTypeId, year, callback) { + try { + const db = await getDb(); + const query = ` + SELECT + vbd.*, + vt.type_name, + vt.type_code + FROM vacation_balance_details vbd + INNER JOIN vacation_types vt ON vbd.vacation_type_id = vt.id + WHERE vbd.worker_id = ? + AND vbd.vacation_type_id = ? + AND vbd.year = ? + `; + const [rows] = await db.query(query, [workerId, vacationTypeId, year]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 모든 작업자의 휴가 잔액 조회 (특정 연도) + * - 연간 연차 현황 차트용 + */ + async getAllByYear(year, callback) { + try { + const db = await getDb(); + const query = ` + SELECT + vbd.*, + w.worker_name, + w.employment_status, + vt.type_name, + vt.type_code, + vt.priority + FROM vacation_balance_details vbd + INNER JOIN workers w ON vbd.worker_id = w.worker_id + INNER JOIN vacation_types vt ON vbd.vacation_type_id = vt.id + WHERE vbd.year = ? + AND w.employment_status = 'employed' + ORDER BY w.worker_name ASC, vt.priority ASC + `; + const [rows] = await db.query(query, [year]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 잔액 생성 + */ + async create(balanceData, callback) { + try { + const db = await getDb(); + const query = `INSERT INTO vacation_balance_details SET ?`; + const [rows] = await db.query(query, balanceData); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 잔액 수정 + */ + async update(id, updateData, callback) { + try { + const db = await getDb(); + const query = `UPDATE vacation_balance_details SET ? WHERE id = ?`; + const [rows] = await db.query(query, [updateData, id]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 잔액 삭제 + */ + async delete(id, callback) { + try { + const db = await getDb(); + const query = `DELETE FROM vacation_balance_details WHERE id = ?`; + const [rows] = await db.query(query, [id]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 작업자의 휴가 사용 일수 업데이트 (차감) + * - 휴가 신청 승인 시 호출 + */ + async deductDays(workerId, vacationTypeId, year, daysToDeduct, callback) { + try { + const db = await getDb(); + const query = ` + UPDATE vacation_balance_details + SET used_days = used_days + ?, + updated_at = NOW() + WHERE worker_id = ? + AND vacation_type_id = ? + AND year = ? + `; + const [rows] = await db.query(query, [daysToDeduct, workerId, vacationTypeId, year]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 작업자의 휴가 사용 일수 복구 (취소) + * - 휴가 신청 취소/거부 시 호출 + */ + async restoreDays(workerId, vacationTypeId, year, daysToRestore, callback) { + try { + const db = await getDb(); + const query = ` + UPDATE vacation_balance_details + SET used_days = GREATEST(0, used_days - ?), + updated_at = NOW() + WHERE worker_id = ? + AND vacation_type_id = ? + AND year = ? + `; + const [rows] = await db.query(query, [daysToRestore, workerId, vacationTypeId, year]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 특정 작업자의 사용 가능한 휴가 일수 확인 + * - 우선순위가 높은 순서대로 차감 가능 여부 확인 + */ + async getAvailableVacationDays(workerId, year, callback) { + try { + const db = await getDb(); + const query = ` + SELECT + vbd.id, + vbd.vacation_type_id, + vt.type_name, + vt.type_code, + vt.priority, + vbd.total_days, + vbd.used_days, + vbd.remaining_days + FROM vacation_balance_details vbd + INNER JOIN vacation_types vt ON vbd.vacation_type_id = vt.id + WHERE vbd.worker_id = ? + AND vbd.year = ? + AND vbd.remaining_days > 0 + ORDER BY vt.priority ASC + `; + const [rows] = await db.query(query, [workerId, year]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 작업자별 휴가 잔액 일괄 생성 (연도별) + * - 매년 초 또는 입사 시 사용 + */ + async bulkCreate(balances, callback) { + try { + const db = await getDb(); + + if (!balances || balances.length === 0) { + return callback(new Error('생성할 휴가 잔액 데이터가 없습니다')); + } + + const query = `INSERT INTO vacation_balance_details + (worker_id, vacation_type_id, year, total_days, used_days, notes, created_by) + VALUES ?`; + + const values = balances.map(b => [ + b.worker_id, + b.vacation_type_id, + b.year, + b.total_days || 0, + b.used_days || 0, + b.notes || null, + b.created_by + ]); + + const [rows] = await db.query(query, [values]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 근속년수 기반 연차 일수 계산 (한국 근로기준법) + * @param {Date} hireDate - 입사일 + * @param {number} targetYear - 대상 연도 + * @returns {number} - 부여받을 연차 일수 + */ + calculateAnnualLeaveDays(hireDate, targetYear) { + const hire = new Date(hireDate); + const targetDate = new Date(targetYear, 0, 1); + + // 근속 월수 계산 + const monthsDiff = (targetDate.getFullYear() - hire.getFullYear()) * 12 + + (targetDate.getMonth() - hire.getMonth()); + + // 1년 미만: 월 1일 + if (monthsDiff < 12) { + return Math.floor(monthsDiff); + } + + // 1년 이상: 15일 기본 + 2년마다 1일 추가 (최대 25일) + const yearsWorked = Math.floor(monthsDiff / 12); + const additionalDays = Math.floor((yearsWorked - 1) / 2); + + return Math.min(15 + additionalDays, 25); + }, + + /** + * 휴가 사용 시 우선순위에 따라 잔액에서 차감 (Promise 버전) + * - 일일 근태 기록 저장 시 호출 + * @param {number} workerId - 작업자 ID + * @param {number} year - 연도 + * @param {number} daysToDeduct - 차감할 일수 (1, 0.5, 0.25) + * @returns {Promise} - 차감 결과 + */ + async deductByPriority(workerId, year, daysToDeduct) { + const db = await getDb(); + + // 우선순위순으로 잔여 일수가 있는 잔액 조회 + const [balances] = await db.query(` + SELECT vbd.id, vbd.vacation_type_id, vbd.total_days, vbd.used_days, + (vbd.total_days - vbd.used_days) as remaining_days, + vt.type_code, vt.type_name, vt.priority + FROM vacation_balance_details vbd + INNER JOIN vacation_types vt ON vbd.vacation_type_id = vt.id + WHERE vbd.worker_id = ? AND vbd.year = ? + AND (vbd.total_days - vbd.used_days) > 0 + ORDER BY vt.priority ASC + `, [workerId, year]); + + if (balances.length === 0) { + // 잔액이 없어도 일단 기록은 저장 (경고만) + console.warn(`[VacationBalance] 작업자 ${workerId}의 ${year}년 휴가 잔액이 없습니다`); + return { success: false, message: '휴가 잔액이 없습니다', deducted: 0 }; + } + + let remaining = daysToDeduct; + const deductions = []; + + for (const balance of balances) { + if (remaining <= 0) break; + + const available = parseFloat(balance.remaining_days); + const toDeduct = Math.min(remaining, available); + + if (toDeduct > 0) { + await db.query(` + UPDATE vacation_balance_details + SET used_days = used_days + ?, updated_at = NOW() + WHERE id = ? + `, [toDeduct, balance.id]); + + deductions.push({ + balance_id: balance.id, + type_code: balance.type_code, + type_name: balance.type_name, + deducted: toDeduct + }); + + remaining -= toDeduct; + } + } + + console.log(`[VacationBalance] 작업자 ${workerId}: ${daysToDeduct}일 차감 완료`, deductions); + return { success: true, deductions, totalDeducted: daysToDeduct - remaining }; + }, + + /** + * 휴가 취소 시 우선순위 역순으로 복구 (Promise 버전) + * @param {number} workerId - 작업자 ID + * @param {number} year - 연도 + * @param {number} daysToRestore - 복구할 일수 + * @returns {Promise} - 복구 결과 + */ + async restoreByPriority(workerId, year, daysToRestore) { + const db = await getDb(); + + // 우선순위 역순으로 사용 일수가 있는 잔액 조회 (나중에 차감된 것부터 복구) + const [balances] = await db.query(` + SELECT vbd.id, vbd.vacation_type_id, vbd.used_days, + vt.type_code, vt.type_name, vt.priority + FROM vacation_balance_details vbd + INNER JOIN vacation_types vt ON vbd.vacation_type_id = vt.id + WHERE vbd.worker_id = ? AND vbd.year = ? + AND vbd.used_days > 0 + ORDER BY vt.priority DESC + `, [workerId, year]); + + let remaining = daysToRestore; + const restorations = []; + + for (const balance of balances) { + if (remaining <= 0) break; + + const usedDays = parseFloat(balance.used_days); + const toRestore = Math.min(remaining, usedDays); + + if (toRestore > 0) { + await db.query(` + UPDATE vacation_balance_details + SET used_days = used_days - ?, updated_at = NOW() + WHERE id = ? + `, [toRestore, balance.id]); + + restorations.push({ + balance_id: balance.id, + type_code: balance.type_code, + type_name: balance.type_name, + restored: toRestore + }); + + remaining -= toRestore; + } + } + + console.log(`[VacationBalance] 작업자 ${workerId}: ${daysToRestore}일 복구 완료`, restorations); + return { success: true, restorations, totalRestored: daysToRestore - remaining }; + }, + + /** + * 특정 ID로 휴가 잔액 조회 + */ + async getById(id, callback) { + try { + const db = await getDb(); + const query = ` + SELECT + vbd.*, + w.worker_name, + vt.type_name, + vt.type_code + FROM vacation_balance_details vbd + INNER JOIN workers w ON vbd.worker_id = w.worker_id + INNER JOIN vacation_types vt ON vbd.vacation_type_id = vt.id + WHERE vbd.id = ? + `; + const [rows] = await db.query(query, [id]); + callback(null, rows); + } catch (error) { + callback(error); + } + } +}; + +module.exports = vacationBalanceModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/vacationRequestModel.js b/deploy/tkfb-package/api.hyungi.net/models/vacationRequestModel.js new file mode 100644 index 0000000..adee31c --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/vacationRequestModel.js @@ -0,0 +1,271 @@ +/** + * vacationRequestModel.js + * 휴가 신청 관련 데이터베이스 쿼리 모델 + */ + +const { getDb } = require('../dbPool'); + +const vacationRequestModel = { + /** + * 휴가 신청 생성 + */ + async create(requestData, callback) { + try { + const db = await getDb(); + const query = `INSERT INTO vacation_requests SET ?`; + const [result] = await db.query(query, requestData); + callback(null, result); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 신청 목록 조회 (필터링 지원) + */ + async getAll(filters = {}, callback) { + try { + const db = await getDb(); + + let query = ` + SELECT + vr.*, + w.worker_name, + vt.type_name as vacation_type_name, + vt.deduct_days as vacation_deduct_days, + requester.name as requester_name, + reviewer.name as reviewer_name + FROM vacation_requests vr + INNER JOIN workers w ON vr.worker_id = w.worker_id + INNER JOIN vacation_types vt ON vr.vacation_type_id = vt.id + LEFT JOIN users requester ON vr.requested_by = requester.user_id + LEFT JOIN users reviewer ON vr.reviewed_by = reviewer.user_id + WHERE 1=1 + `; + + const params = []; + + // 작업자 필터 + if (filters.worker_id) { + query += ` AND vr.worker_id = ?`; + params.push(filters.worker_id); + } + + // 상태 필터 + if (filters.status) { + query += ` AND vr.status = ?`; + params.push(filters.status); + } + + // 기간 필터 + if (filters.start_date) { + query += ` AND vr.start_date >= ?`; + params.push(filters.start_date); + } + + if (filters.end_date) { + query += ` AND vr.end_date <= ?`; + params.push(filters.end_date); + } + + // 휴가 유형 필터 + if (filters.vacation_type_id) { + query += ` AND vr.vacation_type_id = ?`; + params.push(filters.vacation_type_id); + } + + query += ` ORDER BY vr.created_at DESC`; + + const [rows] = await db.query(query, params); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 특정 휴가 신청 조회 + */ + async getById(requestId, callback) { + try { + const db = await getDb(); + const query = ` + SELECT + vr.*, + w.worker_name, + w.phone_number as worker_phone, + w.email as worker_email, + vt.type_name as vacation_type_name, + vt.type_code as vacation_type_code, + vt.deduct_days as vacation_deduct_days, + requester.name as requester_name, + requester.username as requester_username, + reviewer.name as reviewer_name, + reviewer.username as reviewer_username + FROM vacation_requests vr + INNER JOIN workers w ON vr.worker_id = w.worker_id + INNER JOIN vacation_types vt ON vr.vacation_type_id = vt.id + LEFT JOIN users requester ON vr.requested_by = requester.user_id + LEFT JOIN users reviewer ON vr.reviewed_by = reviewer.user_id + WHERE vr.request_id = ? + `; + const [rows] = await db.query(query, [requestId]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 신청 수정 + */ + async update(requestId, updateData, callback) { + try { + const db = await getDb(); + const query = `UPDATE vacation_requests SET ? WHERE request_id = ?`; + const [result] = await db.query(query, [updateData, requestId]); + callback(null, result); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 신청 삭제 + */ + async delete(requestId, callback) { + try { + const db = await getDb(); + const query = `DELETE FROM vacation_requests WHERE request_id = ?`; + const [result] = await db.query(query, [requestId]); + callback(null, result); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 신청 승인/거부 + */ + async updateStatus(requestId, statusData, callback) { + try { + const db = await getDb(); + const query = ` + UPDATE vacation_requests + SET + status = ?, + reviewed_by = ?, + reviewed_at = NOW(), + review_note = ? + WHERE request_id = ? + `; + const [result] = await db.query(query, [ + statusData.status, + statusData.reviewed_by, + statusData.review_note || null, + requestId + ]); + callback(null, result); + } catch (error) { + callback(error); + } + }, + + /** + * 특정 작업자의 대기 중인 휴가 신청 수 + */ + async getPendingCount(workerId, callback) { + try { + const db = await getDb(); + const query = ` + SELECT COUNT(*) as count + FROM vacation_requests + WHERE worker_id = ? AND status = 'pending' + `; + const [rows] = await db.query(query, [workerId]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 특정 작업자의 승인된 휴가 일수 합계 (특정 기간) + */ + async getApprovedDaysInPeriod(workerId, startDate, endDate, callback) { + try { + const db = await getDb(); + const query = ` + SELECT COALESCE(SUM(days_used), 0) as total_days + FROM vacation_requests + WHERE worker_id = ? + AND status = 'approved' + AND start_date >= ? + AND end_date <= ? + `; + const [rows] = await db.query(query, [workerId, startDate, endDate]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 기간 중복 체크 + */ + async checkOverlap(workerId, startDate, endDate, excludeRequestId = null, callback) { + try { + const db = await getDb(); + let query = ` + SELECT COUNT(*) as count + FROM vacation_requests + WHERE worker_id = ? + AND status IN ('pending', 'approved') + AND ( + (start_date <= ? AND end_date >= ?) OR + (start_date <= ? AND end_date >= ?) OR + (start_date >= ? AND end_date <= ?) + ) + `; + const params = [workerId, startDate, startDate, endDate, endDate, startDate, endDate]; + + if (excludeRequestId) { + query += ` AND request_id != ?`; + params.push(excludeRequestId); + } + + const [rows] = await db.query(query, params); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 모든 대기 중인 휴가 신청 (관리자용) + */ + async getAllPending(callback) { + try { + const db = await getDb(); + const query = ` + SELECT + vr.*, + w.worker_name, + vt.type_name as vacation_type_name, + requester.name as requester_name + FROM vacation_requests vr + INNER JOIN workers w ON vr.worker_id = w.worker_id + INNER JOIN vacation_types vt ON vr.vacation_type_id = vt.id + LEFT JOIN users requester ON vr.requested_by = requester.user_id + WHERE vr.status = 'pending' + ORDER BY vr.created_at ASC + `; + const [rows] = await db.query(query); + callback(null, rows); + } catch (error) { + callback(error); + } + } +}; + +module.exports = vacationRequestModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/vacationTypeModel.js b/deploy/tkfb-package/api.hyungi.net/models/vacationTypeModel.js new file mode 100644 index 0000000..9ecce63 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/vacationTypeModel.js @@ -0,0 +1,132 @@ +/** + * vacationTypeModel.js + * 휴가 유형 관련 데이터베이스 쿼리 모델 + */ + +const { getDb } = require('../dbPool'); + +const vacationTypeModel = { + /** + * 모든 활성 휴가 유형 조회 (우선순위 순서대로) + */ + async getAll(callback) { + try { + const db = await getDb(); + const query = ` + SELECT * + FROM vacation_types + WHERE is_active = 1 + ORDER BY priority ASC, id ASC + `; + const [rows] = await db.query(query); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 시스템 기본 휴가 유형만 조회 + */ + async getSystemTypes(callback) { + try { + const db = await getDb(); + const query = ` + SELECT * + FROM vacation_types + WHERE is_system = 1 AND is_active = 1 + ORDER BY priority ASC + `; + const [rows] = await db.query(query); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 특정 ID로 휴가 유형 조회 + */ + async getById(id, callback) { + try { + const db = await getDb(); + const query = `SELECT * FROM vacation_types WHERE id = ?`; + const [rows] = await db.query(query, [id]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 유형 코드로 조회 + */ + async getByCode(code, callback) { + try { + const db = await getDb(); + const query = `SELECT * FROM vacation_types WHERE type_code = ?`; + const [rows] = await db.query(query, [code]); + callback(null, rows); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 유형 생성 + */ + async create(typeData, callback) { + try { + const db = await getDb(); + const query = `INSERT INTO vacation_types SET ?`; + const [result] = await db.query(query, typeData); + callback(null, result); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 유형 수정 + */ + async update(id, updateData, callback) { + try { + const db = await getDb(); + const query = `UPDATE vacation_types SET ? WHERE id = ?`; + const [result] = await db.query(query, [updateData, id]); + callback(null, result); + } catch (error) { + callback(error); + } + }, + + /** + * 휴가 유형 삭제 (논리적 삭제 - is_active = 0) + */ + async delete(id, callback) { + try { + const db = await getDb(); + const query = `UPDATE vacation_types SET is_active = 0, updated_at = NOW() WHERE id = ?`; + const [result] = await db.query(query, [id]); + callback(null, result); + } catch (error) { + callback(error); + } + }, + + /** + * 우선순위 업데이트 + */ + async updatePriority(id, priority, callback) { + try { + const db = await getDb(); + const query = `UPDATE vacation_types SET priority = ?, updated_at = NOW() WHERE id = ?`; + const [result] = await db.query(query, [priority, id]); + callback(null, result); + } catch (error) { + callback(error); + } + } +}; + +module.exports = vacationTypeModel; diff --git a/deploy/tkfb-package/api.hyungi.net/models/visitRequestModel.js b/deploy/tkfb-package/api.hyungi.net/models/visitRequestModel.js new file mode 100644 index 0000000..87bb6c9 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/visitRequestModel.js @@ -0,0 +1,505 @@ +const { getDb } = require('../dbPool'); + +// ==================== 출입 신청 관리 ==================== + +/** + * 출입 신청 생성 + */ +const createVisitRequest = async (requestData, callback) => { + try { + const db = await getDb(); + const { + requester_id, + visitor_company, + visitor_count = 1, + category_id, + workplace_id, + visit_date, + visit_time, + purpose_id, + notes = null + } = requestData; + + const [result] = await db.query( + `INSERT INTO workplace_visit_requests + (requester_id, visitor_company, visitor_count, category_id, workplace_id, + visit_date, visit_time, purpose_id, notes) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, + [requester_id, visitor_company, visitor_count, category_id, workplace_id, + visit_date, visit_time, purpose_id, notes] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + +/** + * 출입 신청 목록 조회 (필터 옵션 포함) + */ +const getAllVisitRequests = async (filters = {}, callback) => { + try { + const db = await getDb(); + let query = ` + SELECT + vr.request_id, vr.requester_id, vr.visitor_company, vr.visitor_count, + vr.category_id, vr.workplace_id, vr.visit_date, vr.visit_time, + vr.purpose_id, vr.notes, vr.status, + vr.approved_by, vr.approved_at, vr.rejection_reason, + vr.created_at, vr.updated_at, + u.username as requester_name, u.name as requester_full_name, + wc.category_name, w.workplace_name, + vpt.purpose_name, + approver.username as approver_name + FROM workplace_visit_requests vr + INNER JOIN users u ON vr.requester_id = u.user_id + INNER JOIN workplace_categories wc ON vr.category_id = wc.category_id + INNER JOIN workplaces w ON vr.workplace_id = w.workplace_id + INNER JOIN visit_purpose_types vpt ON vr.purpose_id = vpt.purpose_id + LEFT JOIN users approver ON vr.approved_by = approver.user_id + WHERE 1=1 + `; + + const params = []; + + // 필터 적용 + if (filters.status) { + query += ` AND vr.status = ?`; + params.push(filters.status); + } + + if (filters.visit_date) { + query += ` AND vr.visit_date = ?`; + params.push(filters.visit_date); + } + + if (filters.start_date && filters.end_date) { + query += ` AND vr.visit_date BETWEEN ? AND ?`; + params.push(filters.start_date, filters.end_date); + } + + if (filters.requester_id) { + query += ` AND vr.requester_id = ?`; + params.push(filters.requester_id); + } + + if (filters.category_id) { + query += ` AND vr.category_id = ?`; + params.push(filters.category_id); + } + + query += ` ORDER BY vr.visit_date DESC, vr.visit_time DESC, vr.created_at DESC`; + + const [rows] = await db.query(query, params); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 출입 신청 상세 조회 + */ +const getVisitRequestById = async (requestId, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT + vr.request_id, vr.requester_id, vr.visitor_company, vr.visitor_count, + vr.category_id, vr.workplace_id, vr.visit_date, vr.visit_time, + vr.purpose_id, vr.notes, vr.status, + vr.approved_by, vr.approved_at, vr.rejection_reason, + vr.created_at, vr.updated_at, + u.username as requester_name, u.name as requester_full_name, + wc.category_name, w.workplace_name, + vpt.purpose_name, + approver.username as approver_name + FROM workplace_visit_requests vr + INNER JOIN users u ON vr.requester_id = u.user_id + INNER JOIN workplace_categories wc ON vr.category_id = wc.category_id + INNER JOIN workplaces w ON vr.workplace_id = w.workplace_id + INNER JOIN visit_purpose_types vpt ON vr.purpose_id = vpt.purpose_id + LEFT JOIN users approver ON vr.approved_by = approver.user_id + WHERE vr.request_id = ?`, + [requestId] + ); + + callback(null, rows[0]); + } catch (err) { + callback(err); + } +}; + +/** + * 출입 신청 수정 + */ +const updateVisitRequest = async (requestId, requestData, callback) => { + try { + const db = await getDb(); + const { + visitor_company, + visitor_count, + category_id, + workplace_id, + visit_date, + visit_time, + purpose_id, + notes + } = requestData; + + const [result] = await db.query( + `UPDATE workplace_visit_requests + SET visitor_company = ?, visitor_count = ?, category_id = ?, workplace_id = ?, + visit_date = ?, visit_time = ?, purpose_id = ?, notes = ?, updated_at = NOW() + WHERE request_id = ?`, + [visitor_company, visitor_count, category_id, workplace_id, + visit_date, visit_time, purpose_id, notes, requestId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 출입 신청 삭제 + */ +const deleteVisitRequest = async (requestId, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM workplace_visit_requests WHERE request_id = ?`, + [requestId] + ); + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 출입 신청 승인 + */ +const approveVisitRequest = async (requestId, approvedBy, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `UPDATE workplace_visit_requests + SET status = 'approved', approved_by = ?, approved_at = NOW(), updated_at = NOW() + WHERE request_id = ?`, + [approvedBy, requestId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 출입 신청 반려 + */ +const rejectVisitRequest = async (requestId, rejectionData, callback) => { + try { + const db = await getDb(); + const { approved_by, rejection_reason } = rejectionData; + + const [result] = await db.query( + `UPDATE workplace_visit_requests + SET status = 'rejected', approved_by = ?, approved_at = NOW(), + rejection_reason = ?, updated_at = NOW() + WHERE request_id = ?`, + [approved_by, rejection_reason, requestId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 출입 신청 상태 변경 + */ +const updateVisitRequestStatus = async (requestId, status, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `UPDATE workplace_visit_requests + SET status = ?, updated_at = NOW() + WHERE request_id = ?`, + [status, requestId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +// ==================== 방문 목적 관리 ==================== + +/** + * 모든 방문 목적 조회 + */ +const getAllVisitPurposes = async (callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT purpose_id, purpose_name, display_order, is_active, created_at + FROM visit_purpose_types + ORDER BY display_order ASC, purpose_id ASC` + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 활성 방문 목적만 조회 + */ +const getActiveVisitPurposes = async (callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT purpose_id, purpose_name, display_order, is_active, created_at + FROM visit_purpose_types + WHERE is_active = TRUE + ORDER BY display_order ASC, purpose_id ASC` + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 방문 목적 추가 + */ +const createVisitPurpose = async (purposeData, callback) => { + try { + const db = await getDb(); + const { purpose_name, display_order = 0, is_active = true } = purposeData; + + const [result] = await db.query( + `INSERT INTO visit_purpose_types (purpose_name, display_order, is_active) + VALUES (?, ?, ?)`, + [purpose_name, display_order, is_active] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + +/** + * 방문 목적 수정 + */ +const updateVisitPurpose = async (purposeId, purposeData, callback) => { + try { + const db = await getDb(); + const { purpose_name, display_order, is_active } = purposeData; + + const [result] = await db.query( + `UPDATE visit_purpose_types + SET purpose_name = ?, display_order = ?, is_active = ? + WHERE purpose_id = ?`, + [purpose_name, display_order, is_active, purposeId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 방문 목적 삭제 + */ +const deleteVisitPurpose = async (purposeId, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM visit_purpose_types WHERE purpose_id = ?`, + [purposeId] + ); + callback(null, result); + } catch (err) { + callback(err); + } +}; + +// ==================== 안전교육 기록 관리 ==================== + +/** + * 안전교육 기록 생성 + */ +const createTrainingRecord = async (trainingData, callback) => { + try { + const db = await getDb(); + const { + request_id, + trainer_id, + training_date, + training_start_time, + training_end_time = null, + training_topics = null + } = trainingData; + + const [result] = await db.query( + `INSERT INTO safety_training_records + (request_id, trainer_id, training_date, training_start_time, training_end_time, training_topics) + VALUES (?, ?, ?, ?, ?, ?)`, + [request_id, trainer_id, training_date, training_start_time, training_end_time, training_topics] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + +/** + * 특정 출입 신청의 안전교육 기록 조회 + */ +const getTrainingRecordByRequestId = async (requestId, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT + str.training_id, str.request_id, str.trainer_id, str.training_date, + str.training_start_time, str.training_end_time, str.training_topics, + str.signature_data, str.completed_at, str.created_at, str.updated_at, + u.username as trainer_name, u.name as trainer_full_name + FROM safety_training_records str + INNER JOIN users u ON str.trainer_id = u.user_id + WHERE str.request_id = ?`, + [requestId] + ); + + callback(null, rows[0]); + } catch (err) { + callback(err); + } +}; + +/** + * 안전교육 기록 수정 + */ +const updateTrainingRecord = async (trainingId, trainingData, callback) => { + try { + const db = await getDb(); + const { + training_date, + training_start_time, + training_end_time, + training_topics + } = trainingData; + + const [result] = await db.query( + `UPDATE safety_training_records + SET training_date = ?, training_start_time = ?, training_end_time = ?, + training_topics = ?, updated_at = NOW() + WHERE training_id = ?`, + [training_date, training_start_time, training_end_time, training_topics, trainingId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 안전교육 완료 (서명 포함) + */ +const completeTraining = async (trainingId, signatureData, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `UPDATE safety_training_records + SET signature_data = ?, completed_at = NOW(), updated_at = NOW() + WHERE training_id = ?`, + [signatureData, trainingId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 안전교육 목록 조회 (날짜별 필터) + */ +const getTrainingRecords = async (filters = {}, callback) => { + try { + const db = await getDb(); + let query = ` + SELECT + str.training_id, str.request_id, str.trainer_id, str.training_date, + str.training_start_time, str.training_end_time, str.training_topics, + str.completed_at, str.created_at, str.updated_at, + u.username as trainer_name, u.name as trainer_full_name, + vr.visitor_company, vr.visitor_count, vr.visit_date + FROM safety_training_records str + INNER JOIN users u ON str.trainer_id = u.user_id + INNER JOIN workplace_visit_requests vr ON str.request_id = vr.request_id + WHERE 1=1 + `; + + const params = []; + + if (filters.training_date) { + query += ` AND str.training_date = ?`; + params.push(filters.training_date); + } + + if (filters.start_date && filters.end_date) { + query += ` AND str.training_date BETWEEN ? AND ?`; + params.push(filters.start_date, filters.end_date); + } + + if (filters.trainer_id) { + query += ` AND str.trainer_id = ?`; + params.push(filters.trainer_id); + } + + query += ` ORDER BY str.training_date DESC, str.training_start_time DESC`; + + const [rows] = await db.query(query, params); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +module.exports = { + // 출입 신청 + createVisitRequest, + getAllVisitRequests, + getVisitRequestById, + updateVisitRequest, + deleteVisitRequest, + approveVisitRequest, + rejectVisitRequest, + updateVisitRequestStatus, + + // 방문 목적 + getAllVisitPurposes, + getActiveVisitPurposes, + createVisitPurpose, + updateVisitPurpose, + deleteVisitPurpose, + + // 안전교육 + createTrainingRecord, + getTrainingRecordByRequestId, + updateTrainingRecord, + completeTraining, + getTrainingRecords +}; diff --git a/deploy/tkfb-package/api.hyungi.net/models/workIssueModel.js b/deploy/tkfb-package/api.hyungi.net/models/workIssueModel.js new file mode 100644 index 0000000..34ec5ef --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/workIssueModel.js @@ -0,0 +1,887 @@ +/** + * 작업 중 문제 신고 모델 + * 부적합/안전 신고 관련 DB 쿼리 + */ + +const { getDb } = require('../dbPool'); + +// ==================== 신고 카테고리 관리 ==================== + +/** + * 모든 신고 카테고리 조회 + */ +const getAllCategories = async (callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT category_id, category_type, category_name, description, display_order, is_active, created_at + FROM issue_report_categories + ORDER BY category_type, display_order, category_id` + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 타입별 활성 카테고리 조회 (nonconformity/safety) + */ +const getCategoriesByType = async (categoryType, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT category_id, category_type, category_name, description, display_order + FROM issue_report_categories + WHERE category_type = ? AND is_active = TRUE + ORDER BY display_order, category_id`, + [categoryType] + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 카테고리 생성 + */ +const createCategory = async (categoryData, callback) => { + try { + const db = await getDb(); + const { category_type, category_name, description = null, display_order = 0 } = categoryData; + + const [result] = await db.query( + `INSERT INTO issue_report_categories (category_type, category_name, description, display_order) + VALUES (?, ?, ?, ?)`, + [category_type, category_name, description, display_order] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + +/** + * 카테고리 수정 + */ +const updateCategory = async (categoryId, categoryData, callback) => { + try { + const db = await getDb(); + const { category_name, description, display_order, is_active } = categoryData; + + const [result] = await db.query( + `UPDATE issue_report_categories + SET category_name = ?, description = ?, display_order = ?, is_active = ? + WHERE category_id = ?`, + [category_name, description, display_order, is_active, categoryId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 카테고리 삭제 + */ +const deleteCategory = async (categoryId, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM issue_report_categories WHERE category_id = ?`, + [categoryId] + ); + callback(null, result); + } catch (err) { + callback(err); + } +}; + +// ==================== 사전 정의 신고 항목 관리 ==================== + +/** + * 카테고리별 활성 항목 조회 + */ +const getItemsByCategory = async (categoryId, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT item_id, category_id, item_name, description, severity, display_order + FROM issue_report_items + WHERE category_id = ? AND is_active = TRUE + ORDER BY display_order, item_id`, + [categoryId] + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 모든 항목 조회 (관리용) + */ +const getAllItems = async (callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT iri.item_id, iri.category_id, iri.item_name, iri.description, + iri.severity, iri.display_order, iri.is_active, iri.created_at, + irc.category_name, irc.category_type + FROM issue_report_items iri + INNER JOIN issue_report_categories irc ON iri.category_id = irc.category_id + ORDER BY irc.category_type, irc.display_order, iri.display_order, iri.item_id` + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 항목 생성 + */ +const createItem = async (itemData, callback) => { + try { + const db = await getDb(); + const { category_id, item_name, description = null, severity = 'medium', display_order = 0 } = itemData; + + const [result] = await db.query( + `INSERT INTO issue_report_items (category_id, item_name, description, severity, display_order) + VALUES (?, ?, ?, ?, ?)`, + [category_id, item_name, description, severity, display_order] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + +/** + * 항목 수정 + */ +const updateItem = async (itemId, itemData, callback) => { + try { + const db = await getDb(); + const { item_name, description, severity, display_order, is_active } = itemData; + + const [result] = await db.query( + `UPDATE issue_report_items + SET item_name = ?, description = ?, severity = ?, display_order = ?, is_active = ? + WHERE item_id = ?`, + [item_name, description, severity, display_order, is_active, itemId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 항목 삭제 + */ +const deleteItem = async (itemId, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM issue_report_items WHERE item_id = ?`, + [itemId] + ); + callback(null, result); + } catch (err) { + callback(err); + } +}; + +// ==================== 문제 신고 관리 ==================== + +// 한국 시간 유틸리티 import +const { getKoreaDatetime } = require('../utils/dateUtils'); + +/** + * 신고 생성 + */ +const createReport = async (reportData, callback) => { + try { + const db = await getDb(); + const { + reporter_id, + factory_category_id = null, + workplace_id = null, + custom_location = null, + tbm_session_id = null, + visit_request_id = null, + issue_category_id, + issue_item_id = null, + additional_description = null, + photo_path1 = null, + photo_path2 = null, + photo_path3 = null, + photo_path4 = null, + photo_path5 = null + } = reportData; + + // 한국 시간 기준으로 신고 일시 설정 + const reportDate = getKoreaDatetime(); + + const [result] = await db.query( + `INSERT INTO work_issue_reports + (reporter_id, report_date, factory_category_id, workplace_id, custom_location, + tbm_session_id, visit_request_id, issue_category_id, issue_item_id, + additional_description, photo_path1, photo_path2, photo_path3, photo_path4, photo_path5) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, + [reporter_id, reportDate, factory_category_id, workplace_id, custom_location, + tbm_session_id, visit_request_id, issue_category_id, issue_item_id, + additional_description, photo_path1, photo_path2, photo_path3, photo_path4, photo_path5] + ); + + // 상태 변경 로그 기록 + await db.query( + `INSERT INTO work_issue_status_logs (report_id, previous_status, new_status, changed_by) + VALUES (?, NULL, 'reported', ?)`, + [result.insertId, reporter_id] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + +/** + * 신고 목록 조회 (필터 옵션 포함) + */ +const getAllReports = async (filters = {}, callback) => { + try { + const db = await getDb(); + let query = ` + SELECT + wir.report_id, wir.reporter_id, wir.report_date, + wir.factory_category_id, wir.workplace_id, wir.custom_location, + wir.tbm_session_id, wir.visit_request_id, + wir.issue_category_id, wir.issue_item_id, wir.additional_description, + wir.photo_path1, wir.photo_path2, wir.photo_path3, wir.photo_path4, wir.photo_path5, + wir.status, wir.assigned_department, wir.assigned_user_id, wir.assigned_at, + wir.resolution_notes, wir.resolved_at, + wir.created_at, wir.updated_at, + u.username as reporter_name, u.name as reporter_full_name, + wc.category_name as factory_name, + w.workplace_name, + irc.category_type, irc.category_name as issue_category_name, + iri.item_name as issue_item_name, iri.severity, + assignee.username as assigned_user_name, assignee.name as assigned_full_name + FROM work_issue_reports wir + INNER JOIN users u ON wir.reporter_id = u.user_id + LEFT JOIN workplace_categories wc ON wir.factory_category_id = wc.category_id + LEFT JOIN workplaces w ON wir.workplace_id = w.workplace_id + INNER JOIN issue_report_categories irc ON wir.issue_category_id = irc.category_id + LEFT JOIN issue_report_items iri ON wir.issue_item_id = iri.item_id + LEFT JOIN users assignee ON wir.assigned_user_id = assignee.user_id + WHERE 1=1 + `; + + const params = []; + + // 필터 적용 + if (filters.status) { + query += ` AND wir.status = ?`; + params.push(filters.status); + } + + if (filters.category_type) { + query += ` AND irc.category_type = ?`; + params.push(filters.category_type); + } + + if (filters.issue_category_id) { + query += ` AND wir.issue_category_id = ?`; + params.push(filters.issue_category_id); + } + + if (filters.factory_category_id) { + query += ` AND wir.factory_category_id = ?`; + params.push(filters.factory_category_id); + } + + if (filters.workplace_id) { + query += ` AND wir.workplace_id = ?`; + params.push(filters.workplace_id); + } + + if (filters.reporter_id) { + query += ` AND wir.reporter_id = ?`; + params.push(filters.reporter_id); + } + + if (filters.assigned_user_id) { + query += ` AND wir.assigned_user_id = ?`; + params.push(filters.assigned_user_id); + } + + if (filters.start_date && filters.end_date) { + query += ` AND DATE(wir.report_date) BETWEEN ? AND ?`; + params.push(filters.start_date, filters.end_date); + } + + if (filters.search) { + query += ` AND (wir.additional_description LIKE ? OR iri.item_name LIKE ? OR wir.custom_location LIKE ?)`; + const searchTerm = `%${filters.search}%`; + params.push(searchTerm, searchTerm, searchTerm); + } + + query += ` ORDER BY wir.report_date DESC, wir.report_id DESC`; + + // 페이지네이션 + if (filters.limit) { + query += ` LIMIT ?`; + params.push(parseInt(filters.limit)); + + if (filters.offset) { + query += ` OFFSET ?`; + params.push(parseInt(filters.offset)); + } + } + + const [rows] = await db.query(query, params); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 신고 상세 조회 + */ +const getReportById = async (reportId, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT + wir.report_id, wir.reporter_id, wir.report_date, + wir.factory_category_id, wir.workplace_id, wir.custom_location, + wir.tbm_session_id, wir.visit_request_id, + wir.issue_category_id, wir.issue_item_id, wir.additional_description, + wir.photo_path1, wir.photo_path2, wir.photo_path3, wir.photo_path4, wir.photo_path5, + wir.status, wir.assigned_department, wir.assigned_user_id, wir.assigned_at, wir.assigned_by, + wir.resolution_notes, wir.resolution_photo_path1, wir.resolution_photo_path2, + wir.resolved_at, wir.resolved_by, + wir.modification_history, + wir.created_at, wir.updated_at, + u.username as reporter_name, u.name as reporter_full_name, + wc.category_name as factory_name, + w.workplace_name, + irc.category_type, irc.category_name as issue_category_name, + iri.item_name as issue_item_name, iri.severity, + assignee.username as assigned_user_name, assignee.name as assigned_full_name, + assigner.username as assigned_by_name, + resolver.username as resolved_by_name + FROM work_issue_reports wir + INNER JOIN users u ON wir.reporter_id = u.user_id + LEFT JOIN workplace_categories wc ON wir.factory_category_id = wc.category_id + LEFT JOIN workplaces w ON wir.workplace_id = w.workplace_id + INNER JOIN issue_report_categories irc ON wir.issue_category_id = irc.category_id + LEFT JOIN issue_report_items iri ON wir.issue_item_id = iri.item_id + LEFT JOIN users assignee ON wir.assigned_user_id = assignee.user_id + LEFT JOIN users assigner ON wir.assigned_by = assigner.user_id + LEFT JOIN users resolver ON wir.resolved_by = resolver.user_id + WHERE wir.report_id = ?`, + [reportId] + ); + + callback(null, rows[0]); + } catch (err) { + callback(err); + } +}; + +/** + * 신고 수정 + */ +const updateReport = async (reportId, reportData, userId, callback) => { + try { + const db = await getDb(); + + // 기존 데이터 조회 + const [existing] = await db.query( + `SELECT * FROM work_issue_reports WHERE report_id = ?`, + [reportId] + ); + + if (existing.length === 0) { + return callback(new Error('신고를 찾을 수 없습니다.')); + } + + const current = existing[0]; + + // 수정 이력 생성 + const modifications = []; + const now = new Date().toISOString(); + + for (const key of Object.keys(reportData)) { + if (current[key] !== reportData[key] && reportData[key] !== undefined) { + modifications.push({ + field: key, + old_value: current[key], + new_value: reportData[key], + modified_at: now, + modified_by: userId + }); + } + } + + // 기존 이력과 병합 + const existingHistory = current.modification_history ? JSON.parse(current.modification_history) : []; + const newHistory = [...existingHistory, ...modifications]; + + const { + factory_category_id, + workplace_id, + custom_location, + issue_category_id, + issue_item_id, + additional_description, + photo_path1, + photo_path2, + photo_path3, + photo_path4, + photo_path5 + } = reportData; + + const [result] = await db.query( + `UPDATE work_issue_reports + SET factory_category_id = COALESCE(?, factory_category_id), + workplace_id = COALESCE(?, workplace_id), + custom_location = COALESCE(?, custom_location), + issue_category_id = COALESCE(?, issue_category_id), + issue_item_id = COALESCE(?, issue_item_id), + additional_description = COALESCE(?, additional_description), + photo_path1 = COALESCE(?, photo_path1), + photo_path2 = COALESCE(?, photo_path2), + photo_path3 = COALESCE(?, photo_path3), + photo_path4 = COALESCE(?, photo_path4), + photo_path5 = COALESCE(?, photo_path5), + modification_history = ?, + updated_at = NOW() + WHERE report_id = ?`, + [factory_category_id, workplace_id, custom_location, + issue_category_id, issue_item_id, additional_description, + photo_path1, photo_path2, photo_path3, photo_path4, photo_path5, + JSON.stringify(newHistory), reportId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 신고 삭제 + */ +const deleteReport = async (reportId, callback) => { + try { + const db = await getDb(); + + // 먼저 사진 경로 조회 (삭제용) + const [photos] = await db.query( + `SELECT photo_path1, photo_path2, photo_path3, photo_path4, photo_path5, + resolution_photo_path1, resolution_photo_path2 + FROM work_issue_reports WHERE report_id = ?`, + [reportId] + ); + + const [result] = await db.query( + `DELETE FROM work_issue_reports WHERE report_id = ?`, + [reportId] + ); + + // 삭제할 사진 경로 반환 + callback(null, { result, photos: photos[0] }); + } catch (err) { + callback(err); + } +}; + +// ==================== 상태 관리 ==================== + +/** + * 신고 접수 (reported → received) + */ +const receiveReport = async (reportId, userId, callback) => { + try { + const db = await getDb(); + + // 현재 상태 확인 + const [current] = await db.query( + `SELECT status FROM work_issue_reports WHERE report_id = ?`, + [reportId] + ); + + if (current.length === 0) { + return callback(new Error('신고를 찾을 수 없습니다.')); + } + + if (current[0].status !== 'reported') { + return callback(new Error('접수 대기 상태가 아닙니다.')); + } + + const [result] = await db.query( + `UPDATE work_issue_reports + SET status = 'received', updated_at = NOW() + WHERE report_id = ?`, + [reportId] + ); + + // 상태 변경 로그 + await db.query( + `INSERT INTO work_issue_status_logs (report_id, previous_status, new_status, changed_by) + VALUES (?, 'reported', 'received', ?)`, + [reportId, userId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 담당자 배정 + */ +const assignReport = async (reportId, assignData, callback) => { + try { + const db = await getDb(); + const { assigned_department, assigned_user_id, assigned_by } = assignData; + + // 현재 상태 확인 + const [current] = await db.query( + `SELECT status FROM work_issue_reports WHERE report_id = ?`, + [reportId] + ); + + if (current.length === 0) { + return callback(new Error('신고를 찾을 수 없습니다.')); + } + + // 접수 상태 이상이어야 배정 가능 + const validStatuses = ['received', 'in_progress']; + if (!validStatuses.includes(current[0].status)) { + return callback(new Error('접수된 상태에서만 담당자 배정이 가능합니다.')); + } + + const [result] = await db.query( + `UPDATE work_issue_reports + SET assigned_department = ?, assigned_user_id = ?, + assigned_at = NOW(), assigned_by = ?, updated_at = NOW() + WHERE report_id = ?`, + [assigned_department, assigned_user_id, assigned_by, reportId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 처리 시작 (received → in_progress) + */ +const startProcessing = async (reportId, userId, callback) => { + try { + const db = await getDb(); + + // 현재 상태 확인 + const [current] = await db.query( + `SELECT status FROM work_issue_reports WHERE report_id = ?`, + [reportId] + ); + + if (current.length === 0) { + return callback(new Error('신고를 찾을 수 없습니다.')); + } + + if (current[0].status !== 'received') { + return callback(new Error('접수된 상태에서만 처리를 시작할 수 있습니다.')); + } + + const [result] = await db.query( + `UPDATE work_issue_reports + SET status = 'in_progress', updated_at = NOW() + WHERE report_id = ?`, + [reportId] + ); + + // 상태 변경 로그 + await db.query( + `INSERT INTO work_issue_status_logs (report_id, previous_status, new_status, changed_by) + VALUES (?, 'received', 'in_progress', ?)`, + [reportId, userId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 처리 완료 (in_progress → completed) + */ +const completeReport = async (reportId, completionData, callback) => { + try { + const db = await getDb(); + const { resolution_notes, resolution_photo_path1, resolution_photo_path2, resolved_by } = completionData; + + // 현재 상태 확인 + const [current] = await db.query( + `SELECT status FROM work_issue_reports WHERE report_id = ?`, + [reportId] + ); + + if (current.length === 0) { + return callback(new Error('신고를 찾을 수 없습니다.')); + } + + if (current[0].status !== 'in_progress') { + return callback(new Error('처리 중 상태에서만 완료할 수 있습니다.')); + } + + const [result] = await db.query( + `UPDATE work_issue_reports + SET status = 'completed', resolution_notes = ?, + resolution_photo_path1 = ?, resolution_photo_path2 = ?, + resolved_at = NOW(), resolved_by = ?, updated_at = NOW() + WHERE report_id = ?`, + [resolution_notes, resolution_photo_path1, resolution_photo_path2, resolved_by, reportId] + ); + + // 상태 변경 로그 + await db.query( + `INSERT INTO work_issue_status_logs (report_id, previous_status, new_status, changed_by, change_reason) + VALUES (?, 'in_progress', 'completed', ?, ?)`, + [reportId, resolved_by, resolution_notes] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 신고 종료 (completed → closed) + */ +const closeReport = async (reportId, userId, callback) => { + try { + const db = await getDb(); + + // 현재 상태 확인 + const [current] = await db.query( + `SELECT status FROM work_issue_reports WHERE report_id = ?`, + [reportId] + ); + + if (current.length === 0) { + return callback(new Error('신고를 찾을 수 없습니다.')); + } + + if (current[0].status !== 'completed') { + return callback(new Error('완료된 상태에서만 종료할 수 있습니다.')); + } + + const [result] = await db.query( + `UPDATE work_issue_reports + SET status = 'closed', updated_at = NOW() + WHERE report_id = ?`, + [reportId] + ); + + // 상태 변경 로그 + await db.query( + `INSERT INTO work_issue_status_logs (report_id, previous_status, new_status, changed_by) + VALUES (?, 'completed', 'closed', ?)`, + [reportId, userId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 상태 변경 이력 조회 + */ +const getStatusLogs = async (reportId, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT wisl.log_id, wisl.report_id, wisl.previous_status, wisl.new_status, + wisl.changed_by, wisl.change_reason, wisl.changed_at, + u.username as changed_by_name, u.name as changed_by_full_name + FROM work_issue_status_logs wisl + INNER JOIN users u ON wisl.changed_by = u.user_id + WHERE wisl.report_id = ? + ORDER BY wisl.changed_at ASC`, + [reportId] + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +// ==================== 통계 ==================== + +/** + * 신고 통계 요약 + */ +const getStatsSummary = async (filters = {}, callback) => { + try { + const db = await getDb(); + + let whereClause = '1=1'; + const params = []; + + if (filters.start_date && filters.end_date) { + whereClause += ` AND DATE(report_date) BETWEEN ? AND ?`; + params.push(filters.start_date, filters.end_date); + } + + if (filters.factory_category_id) { + whereClause += ` AND factory_category_id = ?`; + params.push(filters.factory_category_id); + } + + const [rows] = await db.query( + `SELECT + COUNT(*) as total, + SUM(CASE WHEN status = 'reported' THEN 1 ELSE 0 END) as reported, + SUM(CASE WHEN status = 'received' THEN 1 ELSE 0 END) as received, + SUM(CASE WHEN status = 'in_progress' THEN 1 ELSE 0 END) as in_progress, + SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) as completed, + SUM(CASE WHEN status = 'closed' THEN 1 ELSE 0 END) as closed + FROM work_issue_reports + WHERE ${whereClause}`, + params + ); + + callback(null, rows[0]); + } catch (err) { + callback(err); + } +}; + +/** + * 카테고리별 통계 + */ +const getStatsByCategory = async (filters = {}, callback) => { + try { + const db = await getDb(); + + let whereClause = '1=1'; + const params = []; + + if (filters.start_date && filters.end_date) { + whereClause += ` AND DATE(wir.report_date) BETWEEN ? AND ?`; + params.push(filters.start_date, filters.end_date); + } + + const [rows] = await db.query( + `SELECT + irc.category_type, irc.category_name, + COUNT(*) as count + FROM work_issue_reports wir + INNER JOIN issue_report_categories irc ON wir.issue_category_id = irc.category_id + WHERE ${whereClause} + GROUP BY irc.category_id + ORDER BY irc.category_type, count DESC`, + params + ); + + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 작업장별 통계 + */ +const getStatsByWorkplace = async (filters = {}, callback) => { + try { + const db = await getDb(); + + let whereClause = 'wir.workplace_id IS NOT NULL'; + const params = []; + + if (filters.start_date && filters.end_date) { + whereClause += ` AND DATE(wir.report_date) BETWEEN ? AND ?`; + params.push(filters.start_date, filters.end_date); + } + + if (filters.factory_category_id) { + whereClause += ` AND wir.factory_category_id = ?`; + params.push(filters.factory_category_id); + } + + const [rows] = await db.query( + `SELECT + wir.factory_category_id, wc.category_name as factory_name, + wir.workplace_id, w.workplace_name, + COUNT(*) as count + FROM work_issue_reports wir + INNER JOIN workplace_categories wc ON wir.factory_category_id = wc.category_id + INNER JOIN workplaces w ON wir.workplace_id = w.workplace_id + WHERE ${whereClause} + GROUP BY wir.factory_category_id, wir.workplace_id + ORDER BY count DESC`, + params + ); + + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +module.exports = { + // 카테고리 + getAllCategories, + getCategoriesByType, + createCategory, + updateCategory, + deleteCategory, + + // 항목 + getItemsByCategory, + getAllItems, + createItem, + updateItem, + deleteItem, + + // 신고 + createReport, + getAllReports, + getReportById, + updateReport, + deleteReport, + + // 상태 관리 + receiveReport, + assignReport, + startProcessing, + completeReport, + closeReport, + getStatusLogs, + + // 통계 + getStatsSummary, + getStatsByCategory, + getStatsByWorkplace +}; diff --git a/deploy/tkfb-package/api.hyungi.net/models/workReportModel.js b/deploy/tkfb-package/api.hyungi.net/models/workReportModel.js new file mode 100644 index 0000000..db0cf48 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/workReportModel.js @@ -0,0 +1,223 @@ +const { getDb } = require('../dbPool'); + +/** + * 1. 여러 건 등록 (트랜잭션 사용) + */ +const createBatch = async (reports, callback) => { + const db = await getDb(); + const conn = await db.getConnection(); + + try { + await conn.beginTransaction(); + + const sql = ` + INSERT INTO WorkReports + (\`date\`, worker_id, project_id, task_id, overtime_hours, work_details, memo) + VALUES (?, ?, ?, ?, ?, ?, ?) + `; + + for (const rpt of reports) { + const params = [ + rpt.date, + rpt.worker_id, + rpt.project_id, + rpt.task_id || null, + rpt.overtime_hours || null, + rpt.work_details || null, + rpt.memo || null + ]; + await conn.query(sql, params); + } + + await conn.commit(); + callback(null); + } catch (err) { + await conn.rollback(); + callback(err); + } finally { + conn.release(); + } +}; + +/** + * 2. 단일 등록 + */ +const create = async (report, callback) => { + try { + const db = await getDb(); + const { + date, worker_id, project_id, + task_id, overtime_hours, + work_details, memo + } = report; + + const [result] = await db.query( + `INSERT INTO WorkReports + (\`date\`, worker_id, project_id, task_id, overtime_hours, work_details, memo) + VALUES (?, ?, ?, ?, ?, ?, ?)`, + [ + date, + worker_id, + project_id, + task_id || null, + overtime_hours || null, + work_details || null, + memo || null + ] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + + /** + * 3. 날짜별 조회 + */ + const getAllByDate = async (date, callback) => { + try { + const db = await getDb(); + const sql = ` + SELECT + wr.worker_id, -- 이 줄을 추가했습니다 + wr.id, + wr.\`date\`, + w.worker_name, + p.project_name, + CONCAT(t.category, ':', t.subcategory) AS task_name, + wr.overtime_hours, + wr.work_details, + wr.memo + FROM WorkReports wr + LEFT JOIN workers w ON wr.worker_id = w.worker_id + LEFT JOIN projects p ON wr.project_id = p.project_id + LEFT JOIN Tasks t ON wr.task_id = t.task_id + WHERE wr.\`date\` = ? + ORDER BY w.worker_name ASC + `; + const [rows] = await db.query(sql, [date]); + callback(null, rows); + } catch (err) { + callback(err); + } + }; + +/** + * 4. 기간 조회 + */ +const getByRange = async (start, end, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT id, \`date\`, worker_id, project_id, morning_task_id, afternoon_task_id, overtime_hours, overtime_task_id, work_details, note, memo, created_at, updated_at, morning_project_id, afternoon_project_id, overtime_project_id, task_id FROM WorkReports + WHERE \`date\` BETWEEN ? AND ? + ORDER BY \`date\` ASC`, + [start, end] + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 5. ID로 조회 + */ +const getById = async (id, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT id, \`date\`, worker_id, project_id, morning_task_id, afternoon_task_id, overtime_hours, overtime_task_id, work_details, note, memo, created_at, updated_at, morning_project_id, afternoon_project_id, overtime_project_id, task_id FROM WorkReports WHERE id = ?`, + [id] + ); + callback(null, rows[0]); + } catch (err) { + callback(err); + } +}; + +/** + * 6. 수정 + */ +const update = async (id, report, callback) => { + try { + const db = await getDb(); + const { + date, worker_id, project_id, + task_id, overtime_hours, + work_details, memo + } = report; + + const [result] = await db.query( + `UPDATE WorkReports + SET \`date\` = ?, + worker_id = ?, + project_id = ?, + task_id = ?, + overtime_hours = ?, + work_details = ?, + memo = ?, + updated_at = CURRENT_TIMESTAMP + WHERE id = ?`, + [ + date, + worker_id, + project_id, + task_id || null, + overtime_hours || null, + work_details || null, + memo || null, + id + ] + ); + + callback(null, result.affectedRows); + } catch (err) { + callback(err); + } +}; + +/** + * 7. 삭제 + */ +const remove = async (id, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM WorkReports WHERE id = ?`, + [id] + ); + callback(null, result.affectedRows); + } catch (err) { + callback(new Error(err.message || String(err))); + } +}; + +/** + * 8. 중복 확인 + */ +const existsByDateAndWorker = async (date, worker_id, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT 1 FROM WorkReports WHERE \`date\` = ? AND worker_id = ? LIMIT 1`, + [date, worker_id] + ); + callback(null, rows.length > 0); + } catch (err) { + callback(err); + } +}; + +// ✅ 내보내기 +module.exports = { + create, + createBatch, + getAllByDate, + getByRange, + getById, + update, + remove, + existsByDateAndWorker +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/models/workerModel.js b/deploy/tkfb-package/api.hyungi.net/models/workerModel.js new file mode 100644 index 0000000..b549750 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/workerModel.js @@ -0,0 +1,197 @@ +const { getDb } = require('../dbPool'); + +// 날짜 형식 변환 헬퍼 함수 (ISO 8601 -> MySQL DATE) +const formatDate = (dateStr) => { + if (!dateStr) return null; + if (typeof dateStr === 'string' && dateStr.includes('T')) { + return dateStr.split('T')[0]; // ISO 8601 -> YYYY-MM-DD + } + return dateStr; +}; + +// 1. 작업자 생성 +const create = async (worker) => { + const db = await getDb(); + const { + worker_name, + job_type = null, + join_date = null, + salary = null, + annual_leave = null, + status = 'active', + employment_status = 'employed', + department_id = null + } = worker; + + const [result] = await db.query( + `INSERT INTO workers + (worker_name, job_type, join_date, salary, annual_leave, status, employment_status, department_id) + VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, + [worker_name, job_type, formatDate(join_date), salary, annual_leave, status, employment_status, department_id] + ); + + return result.insertId; +}; + +// 2. 전체 조회 +const getAll = async () => { + const db = await getDb(); + const [rows] = await db.query(` + SELECT + w.*, + CASE WHEN w.status = 'active' THEN 1 ELSE 0 END AS is_active, + u.user_id, + d.department_name + FROM workers w + LEFT JOIN users u ON w.worker_id = u.worker_id + LEFT JOIN departments d ON w.department_id = d.department_id + ORDER BY w.worker_id DESC + `); + return rows; +}; + +// 3. 단일 조회 +const getById = async (worker_id) => { + const db = await getDb(); + const [rows] = await db.query(` + SELECT + w.*, + CASE WHEN w.status = 'active' THEN 1 ELSE 0 END AS is_active, + u.user_id, + d.department_name + FROM workers w + LEFT JOIN users u ON w.worker_id = u.worker_id + LEFT JOIN departments d ON w.department_id = d.department_id + WHERE w.worker_id = ? + `, [worker_id]); + return rows[0]; +}; + +// 4. 작업자 수정 +const update = async (worker) => { + const db = await getDb(); + const { + worker_id, + worker_name, + job_type, + status, + join_date, + salary, + annual_leave, + employment_status, + department_id + } = worker; + + // 업데이트할 필드만 동적으로 구성 + const updates = []; + const values = []; + + if (worker_name !== undefined) { + updates.push('worker_name = ?'); + values.push(worker_name); + } + if (job_type !== undefined) { + updates.push('job_type = ?'); + values.push(job_type); + } + if (status !== undefined) { + updates.push('status = ?'); + values.push(status); + } + if (join_date !== undefined) { + updates.push('join_date = ?'); + values.push(formatDate(join_date)); + } + if (salary !== undefined) { + updates.push('salary = ?'); + values.push(salary); + } + if (annual_leave !== undefined) { + updates.push('annual_leave = ?'); + values.push(annual_leave); + } + if (employment_status !== undefined) { + updates.push('employment_status = ?'); + values.push(employment_status); + } + if (department_id !== undefined) { + updates.push('department_id = ?'); + values.push(department_id); + } + + if (updates.length === 0) { + throw new Error('업데이트할 필드가 없습니다'); + } + + values.push(worker_id); // WHERE 조건용 + + const query = `UPDATE workers SET ${updates.join(', ')} WHERE worker_id = ?`; + + console.log('🔍 실행할 SQL:', query); + console.log('🔍 SQL 파라미터:', values); + + const [result] = await db.query(query, values); + + return result.affectedRows; +}; + +// 5. 삭제 (외래키 제약조건 처리) +const remove = async (worker_id) => { + const db = await getDb(); + const conn = await db.getConnection(); + + try { + await conn.beginTransaction(); + + console.log(`🗑️ 작업자 삭제 시작: worker_id=${worker_id}`); + + // 안전한 삭제: 각 테이블을 개별적으로 처리하고 오류가 발생해도 계속 진행 + const tables = [ + { name: 'users', query: 'UPDATE users SET worker_id = NULL WHERE worker_id = ?', action: '업데이트' }, + { name: 'Users', query: 'UPDATE Users SET worker_id = NULL WHERE worker_id = ?', action: '업데이트' }, + { name: 'daily_issue_reports', query: 'DELETE FROM daily_issue_reports WHERE worker_id = ?', action: '삭제' }, + { name: 'DailyIssueReports', query: 'DELETE FROM DailyIssueReports WHERE worker_id = ?', action: '삭제' }, + { name: 'work_reports', query: 'DELETE FROM work_reports WHERE worker_id = ?', action: '삭제' }, + { name: 'WorkReports', query: 'DELETE FROM WorkReports WHERE worker_id = ?', action: '삭제' }, + { name: 'daily_work_reports', query: 'DELETE FROM daily_work_reports WHERE worker_id = ?', action: '삭제' }, + { name: 'monthly_worker_status', query: 'DELETE FROM monthly_worker_status WHERE worker_id = ?', action: '삭제' }, + { name: 'worker_groups', query: 'DELETE FROM worker_groups WHERE worker_id = ?', action: '삭제' } + ]; + + for (const table of tables) { + try { + const [result] = await conn.query(table.query, [worker_id]); + if (result.affectedRows > 0) { + console.log(`✅ ${table.name} 테이블 ${table.action}: ${result.affectedRows}건`); + } + } catch (tableError) { + console.log(`⚠️ ${table.name} 테이블 ${table.action} 실패 (무시): ${tableError.message}`); + } + } + + // 마지막으로 작업자 삭제 + const [result] = await conn.query( + `DELETE FROM workers WHERE worker_id = ?`, + [worker_id] + ); + console.log(`✅ 작업자 삭제 완료: ${result.affectedRows}건`); + + await conn.commit(); + return result.affectedRows; + + } catch (err) { + await conn.rollback(); + console.error(`❌ 작업자 삭제 오류 (worker_id: ${worker_id}):`, err); + throw new Error(`작업자 삭제 중 오류가 발생했습니다: ${err.message}`); + } finally { + conn.release(); + } +}; + +module.exports = { + create, + getAll, + getById, + update, + remove +}; diff --git a/deploy/tkfb-package/api.hyungi.net/models/workplaceModel.js b/deploy/tkfb-package/api.hyungi.net/models/workplaceModel.js new file mode 100644 index 0000000..4a7e754 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/models/workplaceModel.js @@ -0,0 +1,440 @@ +const { getDb } = require('../dbPool'); + +// ==================== 카테고리(공장) 관련 ==================== + +/** + * 카테고리 생성 + */ +const createCategory = async (category, callback) => { + try { + const db = await getDb(); + const { + category_name, + description = null, + display_order = 0, + is_active = true + } = category; + + const [result] = await db.query( + `INSERT INTO workplace_categories + (category_name, description, display_order, is_active) + VALUES (?, ?, ?, ?)`, + [category_name, description, display_order, is_active] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + +/** + * 모든 카테고리 조회 + */ +const getAllCategories = async (callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT category_id, category_name, description, display_order, is_active, layout_image, created_at, updated_at + FROM workplace_categories + ORDER BY display_order ASC, category_id ASC` + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 활성 카테고리만 조회 + */ +const getActiveCategories = async (callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT category_id, category_name, description, display_order, is_active, layout_image, created_at, updated_at + FROM workplace_categories + WHERE is_active = TRUE + ORDER BY display_order ASC, category_id ASC` + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * ID로 카테고리 조회 + */ +const getCategoryById = async (categoryId, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT category_id, category_name, description, display_order, is_active, layout_image, created_at, updated_at + FROM workplace_categories + WHERE category_id = ?`, + [categoryId] + ); + callback(null, rows[0]); + } catch (err) { + callback(err); + } +}; + +/** + * 카테고리 수정 + */ +const updateCategory = async (categoryId, category, callback) => { + try { + const db = await getDb(); + const { + category_name, + description, + display_order, + is_active, + layout_image + } = category; + + const [result] = await db.query( + `UPDATE workplace_categories + SET category_name = ?, description = ?, display_order = ?, is_active = ?, layout_image = ?, updated_at = NOW() + WHERE category_id = ?`, + [category_name, description, display_order, is_active, layout_image, categoryId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 카테고리 삭제 + */ +const deleteCategory = async (categoryId, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM workplace_categories WHERE category_id = ?`, + [categoryId] + ); + callback(null, result); + } catch (err) { + callback(err); + } +}; + +// ==================== 작업장 관련 ==================== + +/** + * 작업장 생성 + */ +const createWorkplace = async (workplace, callback) => { + try { + const db = await getDb(); + const { + category_id = null, + workplace_name, + description = null, + is_active = true, + workplace_purpose = null, + display_priority = 0 + } = workplace; + + const [result] = await db.query( + `INSERT INTO workplaces + (category_id, workplace_name, description, is_active, workplace_purpose, display_priority) + VALUES (?, ?, ?, ?, ?, ?)`, + [category_id, workplace_name, description, is_active, workplace_purpose, display_priority] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + +/** + * 모든 작업장 조회 (카테고리 정보 포함) + */ +const getAllWorkplaces = async (callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT w.workplace_id, w.category_id, w.workplace_name, w.description, w.is_active, w.workplace_purpose, w.display_priority, + w.layout_image, w.created_at, w.updated_at, + wc.category_name + FROM workplaces w + LEFT JOIN workplace_categories wc ON w.category_id = wc.category_id + ORDER BY wc.display_order ASC, w.display_priority ASC, w.workplace_id DESC` + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 활성 작업장만 조회 + */ +const getActiveWorkplaces = async (callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT w.workplace_id, w.category_id, w.workplace_name, w.description, w.is_active, w.workplace_purpose, w.display_priority, + w.layout_image, w.created_at, w.updated_at, + wc.category_name + FROM workplaces w + LEFT JOIN workplace_categories wc ON w.category_id = wc.category_id + WHERE w.is_active = TRUE + ORDER BY wc.display_order ASC, w.workplace_id DESC` + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 카테고리별 작업장 조회 + */ +const getWorkplacesByCategory = async (categoryId, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT w.workplace_id, w.category_id, w.workplace_name, w.description, w.is_active, w.workplace_purpose, w.display_priority, + w.layout_image, w.created_at, w.updated_at, + wc.category_name + FROM workplaces w + LEFT JOIN workplace_categories wc ON w.category_id = wc.category_id + WHERE w.category_id = ? + ORDER BY w.workplace_id DESC`, + [categoryId] + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * ID로 작업장 조회 + */ +const getWorkplaceById = async (workplaceId, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT w.workplace_id, w.category_id, w.workplace_name, w.description, w.is_active, w.workplace_purpose, w.display_priority, + w.layout_image, w.created_at, w.updated_at, + wc.category_name + FROM workplaces w + LEFT JOIN workplace_categories wc ON w.category_id = wc.category_id + WHERE w.workplace_id = ?`, + [workplaceId] + ); + callback(null, rows[0]); + } catch (err) { + callback(err); + } +}; + +/** + * 작업장 수정 + */ +const updateWorkplace = async (workplaceId, workplace, callback) => { + try { + const db = await getDb(); + const { + category_id, + workplace_name, + description, + is_active, + workplace_purpose, + display_priority, + layout_image + } = workplace; + + const [result] = await db.query( + `UPDATE workplaces + SET category_id = ?, workplace_name = ?, description = ?, is_active = ?, + workplace_purpose = ?, display_priority = ?, layout_image = ?, updated_at = NOW() + WHERE workplace_id = ?`, + [category_id, workplace_name, description, is_active, workplace_purpose, display_priority, layout_image, workplaceId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 작업장 삭제 + */ +const deleteWorkplace = async (workplaceId, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM workplaces WHERE workplace_id = ?`, + [workplaceId] + ); + callback(null, result); + } catch (err) { + callback(err); + } +}; + +// ==================== 작업장 지도 영역 관련 ==================== + +/** + * 작업장 지도 영역 생성 + */ +const createMapRegion = async (region, callback) => { + try { + const db = await getDb(); + const { + workplace_id, + category_id, + x_start, + y_start, + x_end, + y_end, + shape = 'rect', + polygon_points = null + } = region; + + const [result] = await db.query( + `INSERT INTO workplace_map_regions + (workplace_id, category_id, x_start, y_start, x_end, y_end, shape, polygon_points) + VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, + [workplace_id, category_id, x_start, y_start, x_end, y_end, shape, polygon_points] + ); + + callback(null, result.insertId); + } catch (err) { + callback(err); + } +}; + +/** + * 카테고리(공장)별 지도 영역 조회 + */ +const getMapRegionsByCategory = async (categoryId, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT mr.*, w.workplace_name, w.description + FROM workplace_map_regions mr + INNER JOIN workplaces w ON mr.workplace_id = w.workplace_id + WHERE mr.category_id = ? AND w.is_active = TRUE + ORDER BY mr.region_id ASC`, + [categoryId] + ); + callback(null, rows); + } catch (err) { + callback(err); + } +}; + +/** + * 작업장별 지도 영역 조회 + */ +const getMapRegionByWorkplace = async (workplaceId, callback) => { + try { + const db = await getDb(); + const [rows] = await db.query( + `SELECT * FROM workplace_map_regions WHERE workplace_id = ?`, + [workplaceId] + ); + callback(null, rows[0]); + } catch (err) { + callback(err); + } +}; + +/** + * 지도 영역 수정 + */ +const updateMapRegion = async (regionId, region, callback) => { + try { + const db = await getDb(); + const { + x_start, + y_start, + x_end, + y_end, + shape, + polygon_points + } = region; + + const [result] = await db.query( + `UPDATE workplace_map_regions + SET x_start = ?, y_start = ?, x_end = ?, y_end = ?, shape = ?, polygon_points = ?, updated_at = NOW() + WHERE region_id = ?`, + [x_start, y_start, x_end, y_end, shape, polygon_points, regionId] + ); + + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 지도 영역 삭제 + */ +const deleteMapRegion = async (regionId, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM workplace_map_regions WHERE region_id = ?`, + [regionId] + ); + callback(null, result); + } catch (err) { + callback(err); + } +}; + +/** + * 작업장 영역 일괄 삭제 (카테고리별) + */ +const deleteMapRegionsByCategory = async (categoryId, callback) => { + try { + const db = await getDb(); + const [result] = await db.query( + `DELETE FROM workplace_map_regions WHERE category_id = ?`, + [categoryId] + ); + callback(null, result); + } catch (err) { + callback(err); + } +}; + +module.exports = { + // 카테고리 + createCategory, + getAllCategories, + getActiveCategories, + getCategoryById, + updateCategory, + deleteCategory, + + // 작업장 + createWorkplace, + getAllWorkplaces, + getActiveWorkplaces, + getWorkplacesByCategory, + getWorkplaceById, + updateWorkplace, + deleteWorkplace, + + // 지도 영역 + createMapRegion, + getMapRegionsByCategory, + getMapRegionByWorkplace, + updateMapRegion, + deleteMapRegion, + deleteMapRegionsByCategory +}; diff --git a/deploy/tkfb-package/api.hyungi.net/package-lock.json b/deploy/tkfb-package/api.hyungi.net/package-lock.json new file mode 100644 index 0000000..40600a7 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/package-lock.json @@ -0,0 +1,8605 @@ +{ + "name": "hyungi-api", + "version": "2.2.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hyungi-api", + "version": "2.2.0", + "dependencies": { + "@simplewebauthn/server": "^13.1.1", + "async-retry": "^1.3.3", + "axios": "^1.6.7", + "bcrypt": "^6.0.0", + "bcryptjs": "^2.4.3", + "compression": "^1.8.1", + "cors": "^2.8.5", + "dotenv": "^16.4.5", + "express": "^4.18.2", + "express-rate-limit": "^7.5.1", + "express-validator": "^7.2.1", + "helmet": "^7.2.0", + "jsonwebtoken": "^9.0.0", + "knex": "^3.1.0", + "multer": "^1.4.5-lts.1", + "mysql2": "^3.14.1", + "node-cache": "^5.1.2", + "pm2": "^5.3.0", + "qrcode": "^1.5.4", + "redis": "^5.9.0", + "sqlite3": "^5.1.6", + "swagger-jsdoc": "^6.2.8", + "swagger-ui-express": "^5.0.1" + }, + "devDependencies": { + "@types/jest": "^29.5.12", + "jest": "^29.7.0", + "supertest": "^7.0.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", + "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", + "license": "MIT", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" + } + }, + "node_modules/@apidevtools/openapi-schemas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", + "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@apidevtools/swagger-methods": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", + "license": "MIT" + }, + "node_modules/@apidevtools/swagger-parser": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.0.3.tgz", + "integrity": "sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==", + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^9.0.6", + "@apidevtools/openapi-schemas": "^2.0.4", + "@apidevtools/swagger-methods": "^3.0.2", + "@jsdevtools/ono": "^7.1.3", + "call-me-maybe": "^1.0.1", + "z-schema": "^5.0.1" + }, + "peerDependencies": { + "openapi-types": ">=7" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "license": "MIT", + "optional": true + }, + "node_modules/@hexagon/base64": { + "version": "1.1.28", + "resolved": "https://registry.npmjs.org/@hexagon/base64/-/base64-1.1.28.tgz", + "integrity": "sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw==" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "license": "MIT" + }, + "node_modules/@levischuck/tiny-cbor": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@levischuck/tiny-cbor/-/tiny-cbor-0.2.11.tgz", + "integrity": "sha512-llBRm4dT4Z89aRsm6u2oEZ8tfwL/2l6BwpZ7JcyieouniDECM5AqNgr/y08zalEIvW3RSK4upYyybDcmjXqAow==" + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", + "optional": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz", + "integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.1.5" + } + }, + "node_modules/@peculiar/asn1-android": { + "version": "2.3.16", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-android/-/asn1-android-2.3.16.tgz", + "integrity": "sha512-a1viIv3bIahXNssrOIkXZIlI2ePpZaNmR30d4aBL99mu2rO+mT9D6zBsp7H6eROWGtmwv0Ionp5olJurIo09dw==", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.15", + "asn1js": "^3.0.5", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-android/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.3.15.tgz", + "integrity": "sha512-/HtR91dvgog7z/WhCVdxZJ/jitJuIu8iTqiyWVgRE9Ac5imt2sT/E4obqIVGKQw7PIy+X6i8lVBoT6wC73XUgA==", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", + "asn1js": "^3.0.5", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.3.15.tgz", + "integrity": "sha512-p6hsanvPhexRtYSOHihLvUUgrJ8y0FtOM97N5UEpC+VifFYyZa0iZ5cXjTkZoDwxJ/TTJ1IJo3HVTB2JJTpXvg==", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", + "asn1js": "^3.0.5", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.15.tgz", + "integrity": "sha512-QPeD8UA8axQREpgR5UTAfu2mqQmm97oUqahDtNdBcfj3qAnoXzFdQW+aNf/tD2WVXF8Fhmftxoj0eMIT++gX2w==", + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.3.15.tgz", + "integrity": "sha512-0dK5xqTqSLaxv1FHXIcd4Q/BZNuopg+u1l23hT9rOmQ1g4dNtw0g/RnEi+TboB0gOwGtrWn269v27cMgchFIIg==", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.15", + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/@pm2/agent": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.4.tgz", + "integrity": "sha512-n7WYvvTJhHLS2oBb1PjOtgLpMhgImOq8sXkPBw6smeg9LJBWZjiEgPKOpR8mn9UJZsB5P3W4V/MyvNnp31LKeA==", + "dependencies": { + "async": "~3.2.0", + "chalk": "~3.0.0", + "dayjs": "~1.8.24", + "debug": "~4.3.1", + "eventemitter2": "~5.0.1", + "fast-json-patch": "^3.0.0-1", + "fclone": "~1.0.11", + "nssocket": "0.6.0", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.0", + "proxy-agent": "~6.3.0", + "semver": "~7.5.0", + "ws": "~7.5.10" + } + }, + "node_modules/@pm2/agent/node_modules/dayjs": { + "version": "1.8.36", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", + "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" + }, + "node_modules/@pm2/agent/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/@pm2/agent/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pm2/io": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@pm2/io/-/io-6.0.1.tgz", + "integrity": "sha512-KiA+shC6sULQAr9mGZ1pg+6KVW9MF8NpG99x26Lf/082/Qy8qsTCtnJy+HQReW1A9Rdf0C/404cz0RZGZro+IA==", + "dependencies": { + "async": "~2.6.1", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "require-in-the-middle": "^5.0.0", + "semver": "~7.5.4", + "shimmer": "^1.2.0", + "signal-exit": "^3.0.3", + "tslib": "1.9.3" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@pm2/io/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/@pm2/io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/io/node_modules/eventemitter2": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" + }, + "node_modules/@pm2/io/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/@pm2/io/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pm2/js-api": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.8.0.tgz", + "integrity": "sha512-nmWzrA/BQZik3VBz+npRcNIu01kdBhWL0mxKmP1ciF/gTcujPTQqt027N9fc1pK9ERM8RipFhymw7RcmCyOEYA==", + "dependencies": { + "async": "^2.6.3", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "extrareqp2": "^1.0.0", + "ws": "^7.0.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@pm2/js-api/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/@pm2/js-api/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@pm2/js-api/node_modules/eventemitter2": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" + }, + "node_modules/@pm2/js-api/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/@pm2/pm2-version-check": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", + "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", + "dependencies": { + "debug": "^4.3.1" + } + }, + "node_modules/@redis/bloom": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-5.9.0.tgz", + "integrity": "sha512-W9D8yfKTWl4tP8lkC3MRYkMz4OfbuzE/W8iObe0jFgoRmgMfkBV+Vj38gvIqZPImtY0WB34YZkX3amYuQebvRQ==", + "license": "MIT", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@redis/client": "^5.9.0" + } + }, + "node_modules/@redis/client": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@redis/client/-/client-5.9.0.tgz", + "integrity": "sha512-EI0Ti5pojD2p7TmcS7RRa+AJVahdQvP/urpcSbK/K9Rlk6+dwMJTQ354pCNGCwfke8x4yKr5+iH85wcERSkwLQ==", + "license": "MIT", + "dependencies": { + "cluster-key-slot": "1.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@redis/json": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@redis/json/-/json-5.9.0.tgz", + "integrity": "sha512-Bm2jjLYaXdUWPb9RaEywxnjmzw7dWKDZI4MS79mTWPV16R982jVWBj6lY2ZGelJbwxHtEVg4/FSVgYDkuO/MxA==", + "license": "MIT", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@redis/client": "^5.9.0" + } + }, + "node_modules/@redis/search": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@redis/search/-/search-5.9.0.tgz", + "integrity": "sha512-jdk2csmJ29DlpvCIb2ySjix2co14/0iwIT3C0I+7ZaToXgPbgBMB+zfEilSuncI2F9JcVxHki0YtLA0xX3VdpA==", + "license": "MIT", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@redis/client": "^5.9.0" + } + }, + "node_modules/@redis/time-series": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-5.9.0.tgz", + "integrity": "sha512-W6ILxcyOqhnI7ELKjJXOktIg3w4+aBHugDbVpgVLPZ+YDjObis1M0v7ZzwlpXhlpwsfePfipeSK+KWNuymk52w==", + "license": "MIT", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@redis/client": "^5.9.0" + } + }, + "node_modules/@scarf/scarf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz", + "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==", + "hasInstallScript": true, + "license": "Apache-2.0" + }, + "node_modules/@simplewebauthn/server": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@simplewebauthn/server/-/server-13.1.1.tgz", + "integrity": "sha512-1hsLpRHfSuMB9ee2aAdh0Htza/X3f4djhYISrggqGe3xopNjOcePiSDkDDoPzDYaaMCrbqGP1H2TYU7bgL9PmA==", + "dependencies": { + "@hexagon/base64": "^1.1.27", + "@levischuck/tiny-cbor": "^0.2.2", + "@peculiar/asn1-android": "^2.3.10", + "@peculiar/asn1-ecc": "^2.3.8", + "@peculiar/asn1-rsa": "^2.3.8", + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/asn1-x509": "^2.3.8" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.0.tgz", + "integrity": "sha512-rl78HwuZlaDIUSeUKkmogkhebA+8K1Hy7tddZuJ3D0xV8pZSfsYGTsliGUol1JPzu9EKnTxPC4L1fiWouStRew==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC", + "optional": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "optional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/amp": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", + "integrity": "sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw==" + }, + "node_modules/amp-message": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", + "integrity": "sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==", + "dependencies": { + "amp": "0.3.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "license": "MIT" + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "license": "ISC", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/asn1js": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.6.tgz", + "integrity": "sha512-UOCGPYbl0tv8+006qks/dTgV9ajs97X2p0FAbyS2iyCRrmLSRolDaHdp+v/CLgnzHc3fVB+CwYiUmei7ndFcgA==", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/asn1js/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ast-types/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/async-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/aws-ssl-profiles": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", + "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/axios": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.4.tgz", + "integrity": "sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.6.tgz", + "integrity": "sha512-v9BVVpOTLB59C9E7aSnmIF8h7qRsFpx+A2nugVMTszEOMcfjlZMsXRm4LF23I3Z9AJxc8ANpIvzbzONoX9VJlg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/bcrypt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-6.0.0.tgz", + "integrity": "sha512-cU8v/EGSrnH+HnxV2z0J7/blxH8gq7Xh2JFT6Aroax7UohdmiJJlxApMxtKfuI7z68NvvVcmR78k2LbT6efhRg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^8.3.0", + "node-gyp-build": "^4.8.4" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/bcrypt/node_modules/node-addon-api": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz", + "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/blessed": { + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", + "integrity": "sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==", + "bin": { + "blessed": "bin/tput.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/bodec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", + "integrity": "sha512-Ylo+MAo5BDUq1KA3f3R/MFhh+g8cnHmo8bz3YPGhI1znrMaf77ol1sfvYJzsw3nTE+Y2GryfDxBaR+AqpAkEHQ==" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001760", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", + "integrity": "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/charm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", + "integrity": "sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-tableau": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", + "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", + "dependencies": { + "chalk": "3.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "license": "ISC", + "optional": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/croner": { + "version": "4.1.97", + "resolved": "https://registry.npmjs.org/croner/-/croner-4.1.97.tgz", + "integrity": "sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/culvert": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", + "integrity": "sha512-yi1x3EAWKjQTreYWeSd98431AV+IEE0qoDyOoaHJ7KJ21gv6HtBXHVLX74opVSGqcR8/AbjJBHAHpcOy2bj5Gg==" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dedent": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT", + "optional": true + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "license": "MIT", + "optional": true + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==" + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz", + "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "node_modules/express-validator": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-7.2.1.tgz", + "integrity": "sha512-CjNE6aakfpuwGaHQZ3m8ltCG2Qvivd7RHtVMS/6nVxOM7xVGqr4bhflsm4+N5FP5zI7Zxp+Hae+9RE+o8e3ZOQ==", + "dependencies": { + "lodash": "^4.17.21", + "validator": "~13.12.0" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/extrareqp2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/extrareqp2/-/extrareqp2-1.0.0.tgz", + "integrity": "sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/fast-json-patch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", + "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fclone": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", + "integrity": "sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz", + "integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", + "dezalgo": "^1.0.4", + "once": "^1.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "license": "MIT", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/getopts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", + "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==", + "license": "MIT" + }, + "node_modules/git-node-fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", + "integrity": "sha512-bLQypt14llVXBg0S0u8q8HmU7g9p3ysH+NvVlae5vILuUvs759665HvmR5+wb04KjHyjFcDRxdYb4kyNnluMUQ==" + }, + "node_modules/git-sha1": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", + "integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg==" + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "devOptional": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "license": "ISC", + "optional": true + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/helmet": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.2.0.tgz", + "integrity": "sha512-ZRiwvN089JfMXokizgqEPXsl2Guk094yExfoDXR0cBYWxtBbaSww/w+vT4WEJsBW2iTUi1GgZ6swmoug3Oy4Xw==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "license": "BSD-2-Clause", + "optional": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "license": "ISC", + "optional": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "license": "MIT", + "optional": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "license": "MIT" + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-cli/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-git": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", + "integrity": "sha512-+E5ZH/HeRnoc/LW0AmAyhU+mNcWBzAKE+30+IDMLSLbbK+Tdt02AdkOKq9u15rlJsDEGFqtgckc8ZM59LhhiUA==", + "dependencies": { + "bodec": "^0.1.0", + "culvert": "^0.1.2", + "git-sha1": "^0.1.2", + "pako": "^0.2.5" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "optional": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/jwa": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", + "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/knex": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/knex/-/knex-3.1.0.tgz", + "integrity": "sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==", + "license": "MIT", + "dependencies": { + "colorette": "2.0.19", + "commander": "^10.0.0", + "debug": "4.3.4", + "escalade": "^3.1.1", + "esm": "^3.2.25", + "get-package-type": "^0.1.0", + "getopts": "2.3.0", + "interpret": "^2.2.0", + "lodash": "^4.17.21", + "pg-connection-string": "2.6.2", + "rechoir": "^0.8.0", + "resolve-from": "^5.0.0", + "tarn": "^3.0.2", + "tildify": "2.0.0" + }, + "bin": { + "knex": "bin/cli.js" + }, + "engines": { + "node": ">=16" + }, + "peerDependenciesMeta": { + "better-sqlite3": { + "optional": true + }, + "mysql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/knex/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/knex/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/knex/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru.min": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.2.tgz", + "integrity": "sha512-Nv9KddBcQSlQopmBHXSsZVY5xsdlZkdH/Iey0BlcBYggMd4two7cZnKOK9vmy3nY0O5RGH99z1PCeTpPqszUYg==", + "license": "MIT", + "engines": { + "bun": ">=1.0.0", + "deno": ">=1.30.0", + "node": ">=8.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wellwelwel" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "license": "ISC", + "optional": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" + }, + "node_modules/module-details-from-path": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz", + "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/multer": { + "version": "1.4.5-lts.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.2.tgz", + "integrity": "sha512-VzGiVigcG9zUAoCNU+xShztrlr1auZOlurXynNvO9GiWD1/mTBbUljOKY+qMeazBqXgRnjzeEgJI/wyjJUHg9A==", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/mysql2": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.14.1.tgz", + "integrity": "sha512-7ytuPQJjQB8TNAYX/H2yhL+iQOnIBjAMam361R7UAL0lOVXWjtdrmoL9HYKqKoLp/8UUTRcvo1QPvK9KL7wA8w==", + "license": "MIT", + "dependencies": { + "aws-ssl-profiles": "^1.1.1", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru.min": "^1.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "license": "MIT", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/needle": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", + "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/needle/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/node-abi": { + "version": "3.74.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz", + "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/node-cache": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", + "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", + "license": "MIT", + "dependencies": { + "clone": "2.x" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "license": "MIT", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/nssocket": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", + "integrity": "sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==", + "dependencies": { + "eventemitter2": "~0.4.14", + "lazy": "~1.0.11" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/nssocket/node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openapi-types": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", + "license": "MIT", + "peer": true + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/pg-connection-string": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", + "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidusage": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.2.tgz", + "integrity": "sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==", + "dependencies": { + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pm2": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/pm2/-/pm2-5.4.3.tgz", + "integrity": "sha512-4/I1htIHzZk1Y67UgOCo4F1cJtas1kSds31N8zN0PybO230id1nigyjGuGFzUnGmUFPmrJ0On22fO1ChFlp7VQ==", + "dependencies": { + "@pm2/agent": "~2.0.0", + "@pm2/io": "~6.0.1", + "@pm2/js-api": "~0.8.0", + "@pm2/pm2-version-check": "latest", + "async": "~3.2.0", + "blessed": "0.1.81", + "chalk": "3.0.0", + "chokidar": "^3.5.3", + "cli-tableau": "^2.0.0", + "commander": "2.15.1", + "croner": "~4.1.92", + "dayjs": "~1.11.5", + "debug": "^4.3.1", + "enquirer": "2.3.6", + "eventemitter2": "5.0.1", + "fclone": "1.0.11", + "js-yaml": "~4.1.0", + "mkdirp": "1.0.4", + "needle": "2.4.0", + "pidusage": "~3.0", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.1", + "pm2-deploy": "~1.0.2", + "pm2-multimeter": "^0.1.2", + "promptly": "^2", + "semver": "^7.2", + "source-map-support": "0.5.21", + "sprintf-js": "1.1.2", + "vizion": "~2.2.1" + }, + "bin": { + "pm2": "bin/pm2", + "pm2-dev": "bin/pm2-dev", + "pm2-docker": "bin/pm2-docker", + "pm2-runtime": "bin/pm2-runtime" + }, + "engines": { + "node": ">=12.0.0" + }, + "optionalDependencies": { + "pm2-sysmonit": "^1.2.8" + } + }, + "node_modules/pm2-axon": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", + "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", + "dependencies": { + "amp": "~0.3.1", + "amp-message": "~0.1.1", + "debug": "^4.3.1", + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=5" + } + }, + "node_modules/pm2-axon-rpc": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", + "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", + "dependencies": { + "debug": "^4.3.1" + }, + "engines": { + "node": ">=5" + } + }, + "node_modules/pm2-deploy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", + "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", + "dependencies": { + "run-series": "^1.1.8", + "tv4": "^1.3.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pm2-multimeter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", + "integrity": "sha512-S+wT6XfyKfd7SJIBqRgOctGxaBzUOmVQzTAS+cg04TsEUObJVreha7lvCfX8zzGVr871XwCSnHUU7DQQ5xEsfA==", + "dependencies": { + "charm": "~0.1.1" + } + }, + "node_modules/pm2-sysmonit": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/pm2-sysmonit/-/pm2-sysmonit-1.2.8.tgz", + "integrity": "sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==", + "optional": true, + "dependencies": { + "async": "^3.2.0", + "debug": "^4.3.1", + "pidusage": "^2.0.21", + "systeminformation": "^5.7", + "tx2": "~1.0.4" + } + }, + "node_modules/pm2-sysmonit/node_modules/pidusage": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", + "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", + "optional": true, + "dependencies": { + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pm2/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pm2/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "license": "ISC", + "optional": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "license": "MIT", + "optional": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/promptly": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", + "integrity": "sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==", + "dependencies": { + "read": "^1.0.4" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-agent": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", + "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-agent/node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvtsutils/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/redis": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/redis/-/redis-5.9.0.tgz", + "integrity": "sha512-E8dQVLSyH6UE/C9darFuwq4usOPrqfZ1864kI4RFbr5Oj9ioB9qPF0oJMwX7s8mf6sPYrz84x/Dx1PGF3/0EaQ==", + "license": "MIT", + "dependencies": { + "@redis/bloom": "5.9.0", + "@redis/client": "5.9.0", + "@redis/json": "5.9.0", + "@redis/search": "5.9.0", + "@redis/time-series": "5.9.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-in-the-middle": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", + "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", + "dependencies": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-series": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", + "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", + "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause" + }, + "node_modules/sqlite3": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", + "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^7.0.0", + "prebuild-install": "^7.1.1", + "tar": "^6.1.11" + }, + "optionalDependencies": { + "node-gyp": "8.x" + }, + "peerDependencies": { + "node-gyp": "8.x" + }, + "peerDependenciesMeta": { + "node-gyp": { + "optional": true + } + } + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/superagent": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.2.3.tgz", + "integrity": "sha512-y/hkYGeXAj7wUMjxRbB21g/l6aAEituGXM9Rwl4o20+SX3e8YOSV6BxFXl+dL3Uk0mjSL3kCbNkwURm8/gEDig==", + "dev": true, + "license": "MIT", + "dependencies": { + "component-emitter": "^1.3.1", + "cookiejar": "^2.1.4", + "debug": "^4.3.7", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.4", + "formidable": "^3.5.4", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supertest": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.4.tgz", + "integrity": "sha512-tjLPs7dVyqgItVFirHYqe2T+MfWc2VOBQ8QFKKbWTA3PU7liZR8zoSpAi/C1k1ilm9RsXIKYf197oap9wXGVYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "methods": "^1.1.2", + "superagent": "^10.2.3" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swagger-jsdoc": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/swagger-jsdoc/-/swagger-jsdoc-6.2.8.tgz", + "integrity": "sha512-VPvil1+JRpmJ55CgAtn8DIcpBs0bL5L3q5bVQvF4tAW/k/9JYSj7dCpaYCAv5rufe0vcCbBRQXGvzpkWjvLklQ==", + "license": "MIT", + "dependencies": { + "commander": "6.2.0", + "doctrine": "3.0.0", + "glob": "7.1.6", + "lodash.mergewith": "^4.6.2", + "swagger-parser": "^10.0.3", + "yaml": "2.0.0-1" + }, + "bin": { + "swagger-jsdoc": "bin/swagger-jsdoc.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/swagger-jsdoc/node_modules/commander": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/swagger-jsdoc/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/swagger-parser": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/swagger-parser/-/swagger-parser-10.0.3.tgz", + "integrity": "sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==", + "license": "MIT", + "dependencies": { + "@apidevtools/swagger-parser": "10.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/swagger-ui-dist": { + "version": "5.30.1", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.30.1.tgz", + "integrity": "sha512-4mNAUM31sr52K3JcK9qiGbfsFKNh/dm3PkEe+F9FAM31YY/NoRYUgsR/L6d7LLFn6PgZXtBG2ygp8+7UnpUIPg==", + "license": "Apache-2.0", + "dependencies": { + "@scarf/scarf": "=1.4.0" + } + }, + "node_modules/swagger-ui-express": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-5.0.1.tgz", + "integrity": "sha512-SrNU3RiBGTLLmFU8GIJdOdanJTl4TOmT27tt3bWWHppqYmAZ6IDuEuBvMU6nZq0zLEe6b/1rACXCgLZqO6ZfrA==", + "license": "MIT", + "dependencies": { + "swagger-ui-dist": ">=5.0.0" + }, + "engines": { + "node": ">= v0.10.32" + }, + "peerDependencies": { + "express": ">=4.0.0 || >=5.0.0-beta" + } + }, + "node_modules/systeminformation": { + "version": "5.27.1", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.27.1.tgz", + "integrity": "sha512-FgkVpT6GgATtNvADgtEzDxI/SVaBisfnQ4fmgQZhCJ4335noTgt9q6O81ioHwzs9HgnJaaFSdHSEMIkneZ55iA==", + "optional": true, + "os": [ + "darwin", + "linux", + "win32", + "freebsd", + "openbsd", + "netbsd", + "sunos", + "android" + ], + "bin": { + "systeminformation": "lib/cli.js" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "Buy me a coffee", + "url": "https://www.buymeacoffee.com/systeminfo" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", + "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tarn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", + "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tildify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tv4": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", + "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tx2": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz", + "integrity": "sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==", + "optional": true, + "dependencies": { + "json-stringify-safe": "^5.0.1" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", + "optional": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", + "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vizion": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", + "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", + "dependencies": { + "async": "^2.6.3", + "git-node-fs": "^1.0.0", + "ini": "^1.3.5", + "js-git": "^0.7.8" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vizion/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.0.0-1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.0.0-1.tgz", + "integrity": "sha512-W7h5dEhywMKenDJh2iX/LABkbFnBxasD27oyXWDS/feDsxiw0dD5ncXdYXgkvAsXIY2MpW/ZKkr9IU30DBdMNQ==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/z-schema": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", + "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", + "license": "MIT", + "dependencies": { + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^13.7.0" + }, + "bin": { + "z-schema": "bin/z-schema" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "commander": "^9.4.1" + } + }, + "node_modules/z-schema/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": "^12.20.0 || >=14" + } + } + } +} diff --git a/deploy/tkfb-package/api.hyungi.net/package.json b/deploy/tkfb-package/api.hyungi.net/package.json new file mode 100644 index 0000000..ff0bf1d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/package.json @@ -0,0 +1,51 @@ +{ + "name": "hyungi-api", + "version": "2.2.0", + "main": "index.js", + "scripts": { + "start": "pm2-runtime start ecosystem.config.js --env production", + "dev": "pm2-runtime start ecosystem.config.js --env development", + "test": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage", + "test:unit": "jest tests/unit", + "test:integration": "jest tests/integration", + "test:verbose": "jest --verbose", + "setup": "node ../setup.js", + "db:migrate": "knex migrate:latest --knexfile knexfile.js", + "db:migrate:make": "knex migrate:make --knexfile knexfile.js", + "db:rollback": "knex migrate:rollback --knexfile knexfile.js", + "db:seed": "knex seed:run --knexfile knexfile.js", + "db:seed:make": "knex seed:make --knexfile knexfile.js" + }, + "dependencies": { + "@simplewebauthn/server": "^13.1.1", + "async-retry": "^1.3.3", + "axios": "^1.6.7", + "bcrypt": "^6.0.0", + "bcryptjs": "^2.4.3", + "compression": "^1.8.1", + "cors": "^2.8.5", + "dotenv": "^16.4.5", + "express": "^4.18.2", + "express-rate-limit": "^7.5.1", + "express-validator": "^7.2.1", + "helmet": "^7.2.0", + "jsonwebtoken": "^9.0.0", + "knex": "^3.1.0", + "multer": "^1.4.5-lts.1", + "mysql2": "^3.14.1", + "node-cache": "^5.1.2", + "pm2": "^5.3.0", + "qrcode": "^1.5.4", + "redis": "^5.9.0", + "sqlite3": "^5.1.6", + "swagger-jsdoc": "^6.2.8", + "swagger-ui-express": "^5.0.1" + }, + "devDependencies": { + "@types/jest": "^29.5.12", + "jest": "^29.7.0", + "supertest": "^7.0.0" + } +} diff --git a/deploy/tkfb-package/api.hyungi.net/public/img/login-bg.jpeg b/deploy/tkfb-package/api.hyungi.net/public/img/login-bg.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1681fd4a946a149de64f7a34876333edd1810ad1 GIT binary patch literal 2721048 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 $8#)6yTyxZ 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 Q98c-gvda{`!}PD%IDHMJ*rq{osU? z&Dzk>TozW6&pW`NUH8%>zYlY<&>zj`cb?i0(RtX1o1h(kB-H)-I43#j{5>Tiskz*zzCmw&~jsA$mCY+$!jI> z;Qf~o0kR54&u=uXB8o}t{{{P=J%0c@?Wm{v`gP?F29ckd;QoNU^+rG(}lnav|T$&D00^oM>f^8Vyq#^E7)72@y zOdfkT#+I13+Tqypj{>%fjI5ZJ=bew-iNdc8jF(n?7=GVpGfS48!>R$VIk!|4=2rzw zLT=d7I3()b)>VR#U(eV=-oppDDao}Sofu_Zel~meUyH zp+CA%ZJQW9FaZTd!+MT?=vD@q!(<#iJ735}d)mEu)kZ?6Aj1A2BIC}y&FF5gGuD(e}K_&nu2C9nS1wV zw?^Vf*%!y*>t3YGdMBH|{*YzjZLB&Y$!{|h%nwG7L*v zK7A{bg`$%e52MrunIV<`H9u^;L%RJgznnS3bp7;Yef~Dc?C6ujSxUszg+*~oa@ANH zYxR@k5}eCY#K^#l)u%{<^642oj7d+J%eupL?*K{-bS&;R9cF*Fo#db))%x5g_2np3 zewf(Ko>22b;6r;Z=c*&HR(R5}GPC(Qebtu#UbW>}eM!Fq`|`xg42R#etCh)L9+%QT zH?)NEzJmg<_!6E<%>>Drt9u9gNpLS|L_k;09z`4{PI6)*p(BkyUz+t=4!Z<>qYALR0LJmB;cQ}LSIkAMgM_o1k6&5`NK_rvzRul1=*rE$jXIqYq2 zt<_gmu5oefU7Neq=%!s28%6t%4r3}Og`|3fIw=I1$Uod&)BNwH{~o0NOLuk<-^Ht3 z%%DYrKe<6>O6?b!+p~4#S2%ZhhppY+;qCz$f&6`yA#$=dMwObq=(dG{`R)25;fiJi zM;F>}TV8eB@I_#0NFwMXl4(hyv!wq*01x^g?&(5~1s@n|aK@}osN2GkF;>K;i^ZN5 z)Z!^qn-5AT{6Atn#T`sJc;c z@&(wq;=QZWfIV^`IP{Q8=UE7X!4u8)w=6 znYMqhoncJ%l99QDv5gp>X!A(1&+oc{WzI~w2oo#X?g!Fq!p;LD{{iuxSBS5!z%(*O9+@=Rj`GI z7>$b?#3sG)f@mID6TUDgQ>#|sUbb@HmJv1_tfzfx$FO6~zsRACyJ&LYFMv?UkA`6P z3fU!GfiF&jS`UD(n|sS??2<&ihE0n2+5m8A&5~u?{1Sj5g(%73tx_7Iy*p;gL8Bc2 zz3~;Rx=b>nMik%>fhnlgl>_V0T~JVE4cUbcsKsoyi%T$)3g^k}+t!^`^-Zh1oWTu&m2 z<}($oy9uRkd5d~Y6J&_5(2(M9!0$w$Kf zY$e%%(#LL+ljj7EneLe7!$eH8hD=BMTAW$GiVSpEbZb1ta_3sd7IGLNRZoLMy25L!dp&a=jO0dCF;Bm91EL>DP1n zLUxi@;qr4Q(^f`Tz+Ksj+SVRrC;o=dKHsX#WDI4MK25d{P0?`PJGLxGE#$o2a<9*) z8cJ>Jv^RbkREAm1qE2|13ohr&usPYe{%8EslL+)b`J%;YzpdfcG(mj8WY=f#p^g)h z&1BzjzSCJ&wMqR`pBDBBxO|Rrnd#yWe-=bDIh9cK((2>%q=!5IN2e>Ec|p#pk}@+@ z7ky8}xH`TCXV?83KMcERfevRnuAO%N6iQvubl|J>&b3XG9qAs|JRGqA%6QZyrUUKI zKlXKJk=6flqWV;e7wc?KHwz=3bExs>y<5aw0=&zl z;yN^}=RAq*eH`d4lPB`}COe`O4f0~O+z%-EY{5vJ>VQ1DWV{RsaDx23Ky$%WixtE# zGBd*3wb^>^FB%1saoNEXg6e})2&aM-L&*LAi4~_$7%&U4!wN<=+L7PF$Usf?rJ`O+ z*8su|4@6hAN)8{Cs?sSCruPGKO5R{SAi#@BAqEti?B)qsVW8U1$lg`39s%|UF?5lM z1p-a52W5}v{=I5ipzfACyj&_hh8OM|PDFniCJB%LJJ3K0xD0n>a+tXj`CzXr-j}Ut zd2yw5(S=coc{T&m%;2oB5NlxsYe9p>8p7k@8f@qdA1}%r4x+f^mgG)SEmiG_z==of z=%pY9djhe1ffyc%B_%xIQ1{}gJSDYK zv6BSMF1g4^%X_9mJvd0jJg=Stg!Lq55gBbYJWm@Hf zHS-o)Y80^9;|*A)6lA`R8<21IVdCtWWLhLzs8SaQ6L(;*acnwJ9EPmt7B?)6id@c2 zSs;i5G-k0ai)FAU!oxjCQ5D64IV||_*O@D5@{lw?m`jQm(!e>$5?%_$DNRW5EO3K#Ka>XUitk~B|BfTvm`bWA7shz#ug|o!{ zY_m{v0sBmk)bsy<-P1RGVm`6NzGcgg@ivIM>7qQJY$Mvu^$++a)nTczpIY3XO02#V zU1r9s6q|or8(Jy*ac(%)S(OV2lw zC143nJ+Xo<_IbO z$XOxEnruLe{*#)NHr`pD3R~&%QC>B|0RP9)xra0P|9||RnR5=A8aWdi6+-4b%4yCM zN+nS_l*4ieQA1Q~79nRAX3kU=a!6`K33JRTHpk?=6sphf{{H@PT`t3RZTEe@@Avcd zd_1I5M6e;e2zY|Lcbrx$s)WqhX6ThuB1FSk$*sLSnG=)}>j4m;il0tcLPZQKb9tu= z6(AS6@_0>#mBgh7HwzAckk4j^fTs{sVqRqF%;1|1|8rLcQ*B8kW}-37koIZ(F~1Nv zZ`y2cC|fVqdq}h$)f`n`wroLoB9{+Vlrp8S=Q1B3dbnYLV}tV+L|!A|^mB2>iE3r* zmeZ{Cf}yM*DiF#*3YtpuYAj%-RUg+-)5ZwNyWsmIR0Fh@F=8B@wFJ12kpQ1OE9K+z z*B@XicBfxi1t!h$0MB0$2cSzj(YV0BsL3Six|tG>**h8+gp~&5+=j-vmVp4iTr?}? z1R5?HxoSz#Mwjjnz9{TS+ZDhdB=t)GT-Bjpl%G(d%4b0Z{HE zSn?v;Q=GWA{NI;?pzb_Pe~PdcLj{GQ&XAl455>m|c>Do|k?={>;T}2Uj6iU-r{5~( z7P<5n^%qsj=*xo zgVMrQb134_TCBkxW;h6dmCdiz6derFa#(&>!f@gzYoa2H;b1HYYv)zB?V_sI(R{eb z1kL!!C6vKGFcJ5$i6euxR1Axp57s7mW&F>1`^ca=Q-nF2XQ7yXQl~+Vz&bQ6)nPdHhJA@mHTVz zTG(^~r9aCXdEp=}0bkf^>m*WrB5EPtZ?*TFV5b8rZy}%L{0;0Mk5-@XH)qb^FaUr; z8<%xeBiQp)FHzyxa%-6~^#n7!fzKeU0dzYr8Q{nToKPU^9bC4B$(eD&6wRpUvl1LS z2NXIN{y1_qB)5QIWs`^ZW{J8x8xuH=ulgtgBjzH z7dJa6I679(Bz-TVtckZ;McbC4Dsd)hI*Ype$tiRUZ{=AJP;Y^))^-+oGK~5i9PTOB zf%Ix{3-AM^eu$Mm&>vg&FTLG=k>~(!7~_c%>p{rI4-0V#Bbllj)ZK^y{DEbLq>Ml4 zQzRFq2ofDyIMkKG0A6`;4vSOLrxV!CN|Q}*$HNaBGfslb18m)qb|aUEMmdM`;*pZz zUCV7Ba(Xs`fk1FTv53LojOzVXoAxGnW7E|TL^Sm>I zL(La5xw80Etf(inSM6ov$dLDnUp-|ejJ;O;xkrrfmmH+0!_4AFkY@Q zXz*Kjqg)4y;_`s*@carIyH#75$L{ z86gOXF;iUXtl(e_jbNbulmpa{a1ly~AFz-xN(=#4D1x9ylK?WtF9!g9#_A^%z!o(? zM)f2Wz=e^@es)rkTyZ2e6`QJ^8do3P?~a0oS881_e1a{m{64Pw;Mj!I$cf_Dk9b&L zFn=E0>u5XqJ7fRC*hJJD-*|8FHoomiFA>Urz)xJht3<>_f4vtwyboi}&-U@1&s`1L zGIWJL(TpqXXgl)z`TphZ1sm#b;S-vt9sUFMkH)yN`X0(EZ|48W%$b^)wEo*5$~((! zdZ?KF8(8i0>}c6*Ed2-Vr^T<``2Bz(wMf*E-9OiI=Yh{t#KKF(^H&w+PyJO7_-04e ze%n+n<}0KWQzb6(<@tz}omZ;mpu^1VnxYZGBXAMJ3h@<2$eT=Z*pzlSJ!>1>2q~nPX%Es$H^jP)&(z z`7q6X8{IzOld3D2NMapA|Eju3bUxyLfSOeIdb=!L)h1(DaC(fCnUdUUHov_ zckpLXZcKOS?2XrvH8o-u6MR?9`h^3S$jXCXzitK@jn>@zaO$b&X$i(q?y17&3j>Z) zy*sfc#=rk*pKDWlaj&j=a_fo{i3l|NMD1MAr4JVEpJ{8$sMx!l{phDHp-B>nt}r;j zc{alPlFi)k3J*qVr8w5lDfjXdd~HC{b_L0*+WLUP?t4#nS3 zlXpu$gw*V2R!f)*=qV39Tse4CnnjSJ1^1xH%~8d*y^eA%2#P?5Q}QD%PUXr?Nn2mp zVdsJ=cjM7-)X-Ov3B9>La&AddgH9I5{qEHj>gZvWws)*}@eK$249{2u$Z&9%@i_v*b5+3nN^XX!6OeW@7b zuY-Oiwt_4D!Mf*3nsPIqYAQpkfm(qj<|?7>3`mdOzNyQIvYx@@KRb1%NqoWRNVGQ} z=gvI?&q7tK`ygF?;H_I)k3%z@O}r5h9a|KeX8+*J-E25q>6~YP@QI)2Td4nLW?Zv; znKwl;eMNIz{*G6@c9|B#mx29LgIcP_4msOvCAg$(=aDfUb2w*w+XePhWnV|VUs&zw z<>j2aUQG6OjX@BU_)7WkUeaOb%&T`FFFS#Fyye$Nit8E<>cm`s#U;ntJ~DYJmq`bJElUw>eJ(t$9cvq2v7 zEr-=j62(#il{eH&Ql#Ui-)i;VBlk6ZdYd2yj=o32p6E*X{;qJU`WDexp6`u4MKE+h z)VwD?4W8W_Qbr0LhL0U^^^QI(wMW}go`2iyW)?1yTYIfu{~elD^NeMcY>`)hu0%;r zth%ycm_;RtYy9I8oSM`}Bx$Kf4ZhqieSN>3)B1NxvmQ2eQH>ECC1PmUB2^ww3afw! zurpYtR_w*+P7(`Qi>4Y^F#IU1&T)Sn##qZC83OvGPn{O^Llmph0vy|B!WjAp$j6c? zkSkw@u?irbQuw&)aL;pC@{1YRnm_$$9Pb<->Ns6;mF(Zx4SxRC3)EGjWG-ukSZ!Ck z?V_s|&>0aMHgaEHKX1yv^yGz+Qk9>q%*Jqh(cg;M;v?<*6BR?5CK{WDZ>%KiUiQhB zoHY>qt&Qog4r-O={?B&loKQVQkmcJ zXqYRWxy^1T6eN$N`2T}%w8-5UQaHk5g z&L>(ztUgNUUum*ePb*^<${)9H@3e4OZ2?^r<-cr&@lNNjE3V5KS0-*ocgwu7A!}dC zaj@cg@yD4rzv!dZHYC;EY}~x8b?_s_bvGAH^=kg5P^8c-@SdmmCeMUthta!lkI{0yEbCrLj>F9eJ4m~$GZZp>~g$0V9 zbsm};ukAuRzERWfY==rE657F_=6P2;=rOPByFSQ4*Q3J2=U=aMgn|8WPIkRO>V0#z- zoVPmS4J^N9wBI%oFIF@8mZiz~qgpl@S%G}PlN@xZ^(@|1X`sc1rMhpi^7on61og(J z>LmknzT={XWP+Q~8!(gk*_jPV7N3ydlx=*a=sXeet882S@bpejcjkweeOe6z^1JSB zYQqipYg9h$)qlNbH{7?HfB5u);DhSc1@YO}75&E7YESKVY1QJ#=`-~M^{1vxn8Ocl z*RFWXiZ0`K`B$7(6N9cQ+I!yegW|S34^6Zr8;EG_ODvyT^{H72e#3d_Q=O5E8DM=- zxLvz=Ue82fNLOj+(kUV6pR&C|18fJ@}+@8Q;%fxr5e68RZCbuJvs(3E+pHiDi)2w6Ll#>qbLeaRnw{tIT=!&W1S^AIy8^cW*OLm&Ow@S&^QF<|)RM%AIY?wA;+ zfiKmydDCvx_v4`A;z+p_?Kkv4{Ky##qo*f6 z2z>q5&8+|MEv&=Mg!ABoTU~AD^(wL+|NVT!MdU!x-=9BnCx-f=*Eb<@O@oS`g#T6`e*A3pbY9dyvrZf%2a7DH?%vYt zoqn~ZJMk%L-z59c@IUbtjFgj~!6jO6I2v7cBD`15;m9$bT@k7;gAy=$-+1!AFk81I z$1Tlgdr~ZeB4pz`O4r(gN=eag%wh(18-f^pwb)m;SBtPh-3WY8FxBcqgq{!T=AwO=)7^|;{1 zni~HfYXn~)&qYpE`*V@RY;0edWAk{u$0g913vp8)bG!6GR-x(2LXFr1M5RG+;-8OS zYjST~CrFw;ygIH>Z}%7GvaeEk*X)+7BQ?TpFFgM#cOpdB@MOYPOo8lUq9-S4@U`GinNLj!H^QhNa%rK%nUMA`6ejZ(m+QA4>ysPJ)n~6uMAM}>FFQ?m11YkoiK2HOo;zl+=r$Jd&=gzQysem)ap8} zSzJhVeLw|_^rue-^Z?(~|G|~<1{r;dXl|+~a2cN{wU)S~rw>MxCog>T z*}a+~0OaQ>M`@p?q>sgxm>()F-NJN|&K=LNxa{!qoq&4(0JAr=g zNJ^-Kpbe@2uo3{4)gl=-8W^(4v7yi2_Fbyx^e42z$ADZ>@>2Yn#^T4umReYJ`qZORxej~%;aZ_`!Jh#||I(w44 zMlj=sg{DW3vkr;;RR5zcUbT;>={Jq1s%l26$5|Jr_n73uijnF(%vCBb(DVM39x>hK zybV&3y3HHl<+q!0#6+#4J4dFGm25tH?CXpx|IsdNXdYSZv24IY)ouN9@5YH<=a>YB z`DZu6sb`BS)a~0F>io(o)g@HJe%K;O)5zU8*1P5b*K6+2yt>dHIg;yOgo;&aKy;}3 zQ&{MA9?RNGLxIq8bd4hG{bH?K;vH#S6k_M=jJuh{+bp006<9}{dU^39Z$Jf|FWK;b zJyK#mAkDAr!rJJ~$~;^**N9rB-j3f4ZJ>jEsHrK?LvPvhbzq$Is9qGU+#6H<{GnFm z1N6Bf{izE(Ju;{2$_hq%GUFJR9z}4f^G_Fk%?LWiRq7*=5_km7_2%bQ^#o@fXITsM z=c9IP&w*u21SIHeHsP^`rXQ>+LY4p8nLkVnkm zoLQZI~gRpLs63Hpf087}YNuM0Mrv^@%CiTEfaWz<3Fe9fo zM^a$R916axT5uFj2rqvq{2g!Q07I00OPa3nU96wO>DdLh|F ztv-0PaQctiCGGY_@w^`9{5lb(T3~G_lc+tO0O~CJ0$ks%SZjBAA^WJ@_0rel(K}Sc zA~W8M5+M!`;f4D!)4+{P4GO5K1GF&937B?Ko&!i$8Ymg`%m>-LSp9Vy4h4#s>Bp>E zd7>tTkq{b*2#?@U8HzKq=|Ce?F(Y!t1`C=CIftS8@R-Ju2{U=G9f|?}vsH%~rjO1Y z?>L@N1_ERp$F$%$@Iz1@0#IDd9YHZ4NO=!;LL&12mj8zLYmFq%_4Bz(f;;jolGFh% z^VIP;0v;Q=jsd(0hg(%=t>7B107_?gh3Lso*~FZ?D9m}VUlgy2WJ^+xfhIrvuFJg) z!?hZu-~nZ+2z1E|8zeCT6^7$m=GD#|4{6x;= zPEDvyV8z)j^|IC@^~|qbpDq?W!#;P$%!S`YAU2b-mlsvHYu~J!+|!VaZ-Z|%`mpjf zf-mcv=En}8xoI~cfBu(&x@m+m{+U9+)!_ZBKev5qpH-QOqIzQ;H}`}8C~V43-wfXx ze%dwvoaaS#Hf}JK-kID;3vvRDtk8ntgGs7j zmZn8p@I(sqf|LHcz~yF!1C5_qWgrSdnS(RoB|LMuTV26eD5Wy)Q&@R~r3;xZZfSYA zjJB&>>zR?2lyQZbCHA6a+wmk@aJ-L%XKk}e<**<^TxJ8sS0S#{CEc$t31*Aa zDR@lSk$T@8ySbSNnlIQu3r15?zMxC@n7^ps)#wmjJD0A@0pM4{qJ$DX5e&)j)>>r0 zPJIeYda!ZT+OLx*pyrS)1U#VYQR)O#^x4F?M0pMvt8$8E>6H7jL(L9&+ayrLx>MC2 z?BI`IWuW7T4y{&jV2V}-_5@+32f%_<)OR$6y9=$8|C{3Bs(&ngjyfd zLo7S2T8&bV@+T`8dXrq2!pfE*%>NDrFF zJz*ADs~VTn8tAY9%cDdh~F(=nT393J;rMLUM9RchMyv zv>{AK?2Co^Bf&1LV?YD|DvW*MNit>d0#0iq*!xQ{28So4Iq*h?d>!8Mq&}5l_!=oF z#s+QCI$Le^S(Tz+9N}5)oTu3%X%Op=B`X|iaDdq$S<6Ov)^_MG(%9cXSS`NY(qDus z11cQjMjppWa^)O`@{}_4q@~0~+xZshGTY<%c`@|_7b&yE6=vFs14EC8V1A09B7~cf zh4GSM{11ar+Ms$^-A;D3vuI*C?6!&ymT z@W6J4=|*uipjo?YPQuM_s1-|4K4_dnw`aQ8lMd3|40(C*JmZ~7Rnf2TQsBvaZ3xPg zPZ;|H3HvlU_>N74pr+ZxXs{+q0wDg`cMX3D?7`_K%L%_sPF40MFBFD}v z8n@wZY1j|tXTycFD3I~YL5Zx+LWiMMYE%hN`qga=f4qo;X@;Q^1%79zq)QH4f2f~_ zHy~7q2tmx?u_k#qK|jmT>B2#tl=w)Q@+c@gKwe)4b&?kg$g>K!IK@tqB$6{J1T_h= zkF7gphC&Pm6BVE)Lqb7FkXVXd1&^SBlyC&VMV@ronZw)f4JvDcG}|d@T!B7)DS% z8&@6Jlp=!Y0Kw3?!5GZ|y{{3QIgV5$8s7L3JeH}D$X=tc5@`W|*TMh8j1OHVibF*x z5(JPSp#L=rJ16AC3zzPPn6asHoj4%p(xpqF}q8vn%v7z%%>dZb4KoJPHX|hAp^|PSSPn2{E zO?l$M`^k&~S|3GZkTl_fAt1l}tSqOoopC}_8^cvQ@9;g6dQmt%fou<5LPrY^`PQwN z@BQz=qFKd=W!vO>AJYt2R9rhadc>7E4GL-N1v(b@>zkkncHmVQ2B~XYw;d&7Ox1!* zK_4*$6y5IVfSV}YB?_k_XyMXKQ3Kot4-9}(ilGrm&uoftQbs!-v1~PxDM>{yk3S}4 zv*G=GVCni&G3chX17RXaFtTJlCgg*rcL5BTFqbjZAEKI|^Tjltba0pgFcSJjiJ4^X zIicBf8OzSRoZG?CppQykHa(nMMV}@V2RqZO#-r(ve>=Kzh(OvaG&cu=$USU9dx3@M?> zIHBcm?r|7ASyV`_qvVXQ7f^oT$Lq%no(2_hd1(Y#%-2orot%w(33fRV#P_&1Pt)7K z;QKkarx%jX?5XXn+cA$%Z#(5HKH{+njbp?VZW`{?Y%D%tWjbzTAHH4Lx%~@Ln`ELC z6S$d4t|>T<<#gQ`IxVI~xhugow>g1$#+~%D)}+R;L~O#A@0V}U?@`twDaJQ!8^lSS)V(1zql-zk$b_=A;y1SXArcqwr+^*XKX@n0*_s_|q)3M%R!STmI~I(Xe*@ zBJ3Z%eC142Z0e4ntK#65;OTE|h;Rv`BMWIkg(8^;Hyek(x6@!HhbBB1v+aY9y|USF zJgdg8K6w6oXIuDW?%WU9F|PT6^yG)pv1;iUm1G6Nvztxd)xU5WWn;tJ0#nOXC6?Sl z`X>G5$KaEfu`|a47n(*sR7^PigcC+`%y{0y`>htN4|BaK3)^o_9+hgDP`c7Fs#p0r zHK1P*)(z!$x7fLp+kZk=G6M5B8Dv)Z#%s;_FE>v&{s%~RDV;xt`_#o<9aiXP&iZB# zsti7CdS+`5{2LDW*7lJ_IPTw|H|i1Fa!T{ZxqhLM)zSybFQam@w}B#;e%ek z?}*HrHLoS=UT9C1d(qQlVv+h_#mz`Qdt>?hz2Q|awI>PdTwS3z^QkxQhC!y_T6zBg z2i$U<=*d`ey^VfM=Y?wb$M(r@Bcm9AZ&haKRTWpYxl`x7Rufio29lMWUj>18q2~O+ zCPw&N$2NkxHEotU^2{iWu3x@mT?{rST(>^Tmberr&w*T~OmVC0Nh}|Fta?`NhhUYZ z`Z2v1OBO)*&4CW;wZMwD7I!_$$iZn{d^)^|IfqyPB5*j08!vl5!r{cZ{4XibN$zKJE9}j^PZxdg|6yE z^-Wu=Vh{f8#%W6=m&lK5%Qef)^KZ7U1VspIV>3NGpLHHL5HY#VCi^?&mjzTVtcc%y z6van_kF?O~rq`K)f4;s6F|7tn_YIv|de_SJGI>mgiAjddGREf1_^4Me%1L^e3I9|= zqeN?+Xc9uVpE=pi`MWLL^jTy84$s^hY~JDuy*SJEw)=+X?{<~ETWI`lg}u6STO6W7 z)k_yKvoHANFz9U?s2r7feAJJ^&uCr!Q4mxvPlWt|Qqi9NJAre{sZpOJ*>v-qAX=q} zwsTtd{d-)S4*!^g_0BsNl*LUc;BP&nmL-qAjM5T*U#fPhmH7kCxY`z0%uGK~9s>sN zu?16aH0b7;2B*@q=$DxP!m}iD)^ROX+Yqu**z(0wROM6K&%dT!+P-x8J3jlq$wlwR z+{ad#PRYuP1?hx6mv^x1{a3u3&s*Mz(famm^<06p>m?OF@0qxS3w+pkzS_^Bh3r>r zx7KGqWE!S3xmJGp)5tKxyPBnqsUzyaF43JP_OnG|@204p2Yjgz zHF4os`7cLaiL{#MPpq;uE~VoptvAvA^Hw)qx43F0%rx5rSKXvHV7J4#b-+!qX-8&W zYLH|f*4102nhPd*IXA&h=>X2UBySMI*3sgK%DyLh4&~}2Xa^Ijb!1>J^pN__n+5)N z^O1)5bvvI27*vaZ#a&H*@RFe5%%mbL7OT%h$w$!iArEv8e%w_;P_CYW*)|vvZO-2R zHk~Hv=CYl3{*@B8r!3-yyvS$Q@9})TZ(4~XA{p~u6|ud+4<>vLSFT>0+LOd{!x{bH@!!D`l)A{c+qkQnU4BafclD#MX z=Fe72*J8|BZQCLnO01Q8VkG(oDYIlMvS1$weTA-k`MdW0p5ndhOA*a;o+tIIKE~+Q zt`xoK%bp+#2rlo9WcmHH2` zeH&gd8$GvuUQeozWQ3^*+rRg+W0Gf?fh`ap{Gp_mv)Y%fbn8~+pE6-@^>2t92KC>r zZ!l`p0tX||WknnJM+0{X;g=72Hb)EC_8q$5!FJr3YATfGDkfgbd=TTzve64*A{0zJ z+R}fhXI^G_N^dOg@jM7#{L*qQs%i*C19vfA@m$?M{&p~j6R7>p!z3xLm}FEqt)%ki znsw3mfb^X(T8~mv|6Q5o9WccJnQGI`zVufOTt}?US9dBYyKfoHN~6?-x^SA0I`L(< z^krFwzm;P4|x0Pv)kG?CNmcJoE++| zdOyvAc#9x(Jj7H)*Dr9brm7}Wcy%j>V^~yhrAwLkyQ=e0Mjy4~6Qxhr&QFSJwYnRc>KP;4r07Y5(giR#bG!gORk$tvAs?!4>0F8^dfh($tdnzj-7C%AH!d9? zgtc&5H7-TB%W4#!S}UL47IIBYM$ASsE}nI_bTx`|Jph(B`nT3D_-^D>%Ii-t>ALEn z!ZahFQug`zTT!*wMNWTyI+WbD>bDe>Iwg8%^Zb_(KKKRHg{&-DZHo_nzvGM=5Yh!n zZ>mLpy}7}=D0p%GA^arDhm5Z7<4--2w_IRwz3{6@eaMrokMmZcZkAu&2jRPHlu@eB ze0Q0Txeb)$#65l9IZ0<~UT*$5+3d8PQ!5g(J=-rf%WZwrWj+S-`%KSh4TjPH8%XmzAiT4?wtU`~7`+C700+vqHgVO3cdM>q}JoU06E z0H^hO5lSF?+?u?$;Kw>ZzW_Cfe;Gsf`vSsHZS8U{6|O+%c`>!kRJ9!1*_(_k)51af@zEN=B=_fs+AurTV?MW-Okb zz~>PT{5PU51TZDCl0>Y zC@3%QQ68EbqtTJiiw#!kL3g}D&FF{D23K6#q_r?UC=#^0pehgSf0Yrr~r z%Dn5_I9>9Cf16;E-nYA**MHR%$ruPa$ddqLbvymY?qyCo;8eYDrsBt`*cWbQf|{B-CF*2~yyy&Z&!WG!WEp|0u%!%^Xm(Hy9 zRXc{WB45qsC~+-s&JJv@5#4_4>973m4ZMR=MeS$PKmV zFq681k;Hx9drjNV)j_t^Tg+BA7fuI=04;TR2! zT@VpoMj9N#b{8_7;(cB;Q1E_z7su9mBhaG~rSfzN)r)m}+i={y7j$rE9*sJoVK*OrN&azVKC+vb<2 zf4j_V^yZg|ds<&={XRAn)~ephQd6Q#F9 z4W~;_*G02(g&$Xbdwrtx?J5ndp9dW9&)PqbuU@D1U>_2Yg)rJe_wE*?|(Ct z8YYh%37_B-1dV!g)h$|~w-d_1IrZR)rIAB+FEPdH?jMp1)9>JH#RON(^i)%PVW`Bp zGZU%3F4Moe>~OWFiI5(&m14|?Aq&#|I2Y|hcDOU&AxXSk*z6M}URSs|!DMG`@NTsmTMEw}uIWnPmrLjq29QfFZ z3Qc9u)1SsB3k=T&s-51>=8098KQhr_5=aS?F!H#eaP-}E9muiKEo=P2@O4)TaUtTH zh5)@%Gqh zejN*|IE61)!gmG?@A_3sDwu{{?dR3Os3I2XNhuYHN(hNAy+_AbrrOuuc$e9-4!^m_ zxdu*TP42#^{fsz%eQL$cNr+eIU&g0X8C92IsaceJ*s&KI)Z}vUfP+CwBLwZm(Vs`Y zac&@pY14)Nv#}mO8>V}lZ0jX*H48yUn__@rQ~iFID5kozjz6q($D+f$bPN#9hZMWG`iK`JiHhU zZhyD$nziTQqL~R@#wc0=65{yDL0O0kWdOR%{E#kN95?|VXBF*q_acNz5Y8KH2(=kn zWRiJ3_@w+4GnI^-`>=qf8Fi)xW%j3>B6RJJ6Zahpt(4p4p>|3}pu9158m2Oy1_cd_ z^$>*JE&qtcgm#)wPQ(Bac&OIj*s0|>vBE6SET%%`+Zk%L0coVok<4;RznAAw|FdXjy{_(o!`JDD57#4kva9{y>&s zt!~eGo=v^PpJSh2CX9Pzjxv9OZJKB2Tpx#mKNMdzb9Ou917~KfIK1mId!6X)61Zwx zFL2D_Vf+T(+9bnd;2%7zE5Jw5RG$*(0vu4`WoEQLKorYV#5T5xU7TFrK`R64KjwfRk;l4y!=%q>X8sgIldqtMYW6| zUg@#qi5?)lO*E>#VmV-4q|i-E0eg9O*SX^PWb1*Sril&@3e*~xw8yC~48Vhj>c(*6 zDL8N)#tEpaKEE`4Me3D~2EP`=T26WxMCYdK!KDt1Z8OfFe*G%-E%s$?0r-)9>ZI1u zdtRXqHM=yYqldd?AoV&ka%L2LwA{^S`uU(#>R@%x5NpQ$gleU8-?=vy<@rXp5fUf+ zE^hS^>C&Cg+o?)XzPhUU1*I52q&Y=hMym#Z1#=E8RO4z3ioD8FBdz0fUdZsFRj#maryBa<;n{$~B zEY7)eYSt{fchVzny!=BRTVkLGtXjC+UTR^zeth!j$??&_IM<6O^XUUos)%LRX+&;q zz?8U>c#xHDZYXbvdi1q3i}Y(3?GoZVl=!7v%IU9&_Y2fk2ZSPjR-hM+D@#=r*(996 zMR5kVD7cYXl*vu@1H$1yuBYbTH(PP+w2;#2<(j*`^&PMFS2P6&$t zh%n>cu`;VwYa$ukKSAl~n!#Wc2>&%ZpN<6GVq#3vDu@oY0kxCXAhmEg4znERuu24T z(t2qD=R7>N6}bR047I`fTbJMD;lNvY>8cK>=o84s_v9&*S$pXYD_v-F%vG6dtsO3< zsm09YR2+TYMfT@48KQuVQcBM&XX%KjEnPk?_K?#0#tCcW?u&>*BL0d>a-YW4#LiS@^iKbhTg0xUourvs0+Jy#sS{TBr) zwYJHA%OeC~3{94os_H2M#>a3W9tUHT)!iX)f;AZ9FxTE0xmaF^!-8b_877-(&SQa& zBlRmZvhqP~tE{F!*pi?CYjH9asVZRISbTo`9)9{vZV*i%Up~Y-ge;N9ZIB z$(4ao%|VKb2SrIJ@X`W&>Bzpj@r1+DcET3tY6Uq1UD{B=dHug+e8P7Hn5Eo3NJB9pp4Ank@C4Wj zQ?Y>q55_Y$N|yYmz$UK<746&Lp*87b^N}Lj8p)N}#*5`&jALkQQLc=XfZRU`d0>-C zkg&qOLhO!EoLx@;tMg77*#5SP#%xr_3vX}lx_22Q?8?H1^Y5Iwv9dl+V88bWk=y>Z z=l;>-`@93Y&$ln4dPxsD8MK zZCcNLEk;RJgzMbO{3n>RsP50;uB?_mo=TD36`7b?Kk60xqW_OnFKwFy78UD@^rEj^ z)>U|~C-LQ`T2Wd-QpvW_3wo0Tus@6+F z_hN~X@Pu*=$zA{Ngss*9w76~! zY+JDUSY%@Ozt$%B@q2|@Lhz2Kknpxdt-s&xe^QI& zJW7=vT7%iQ16?}B`$H9Is%IoMLqWPYIe8bd2+1|vo{VH$)Zd=)3?wJD>Ab2q6no#24!8cQ!@4gDzj8fMM_qP z`i`W%M(zy|U?;BdcWU}aM=;>i`F;zKE}aO)!wnuVkiD6CTO~Z|e+QUf>{P4yZ*oA$b$(rWzO0 zPxz04E`nezERe5k0vw?snh^!+AVg1;l?RT;(ogWfq7IFy)hjK0K(DUJl9gK@L7N#! zu-3Qq*(%Lg9H%Nh!JxFq3G)h_2F}b9HXZaFG@kR7zT=E-7qF9d>hkJ6!E+MHmL9aC z^Ifuh;$jIiMIcJ?sTOg{++N$ZT^?FC;0bTW#laAFCdrYi2TF}?R?oJ3 z8V;;tR&zYH?6^D8@GM#^OkvN7>lVO}?M#;zq4HAQG2$sm&|3C}=-(>?_!W=2B=NJz z1_Bs)IjRvGQL-{fHAKLHto89URT`G(2Nx>#`x^q!PdGluUw>rH2 z;~EB_InVu+c!?1q=vAD%8PEsMjoNdG-(OD zB5BbP@H}#STmr*MSO%%Tgu<{gqWb}TIAt*ooNxM558%hsz+_w))imcrl|QURH;j8% z3c@PMY8QY`D^PqchjjuF6e&M$c*!PazAc>sf-a5|!0H4u;oT0!J4<*EB$lqv%gf))(jrm{hrGu2C+$m4&OoGvy&=i}}RFbFjR(yZuC zA53o(4}(5+q;x-ELkU|*_aY5E@l3ChUqTiWK@P<6v1XVwTLxJ?+5b?yjLJ4;l99{Z zf7A#(0Qh1KBH7PN{|>aXsL6tV$|KQ=xkJ$|U1m9oLYVrs-#Tk(mCWF4D`yp2w?No& z4tgPzJB$L2!%#R>*+XHR?0zM9caM~ zO(7pp)L_)F^^+zPQJV6DcdKO8b`@micOtDLj({{=s-aAxTu&iN(VK86Q#Rd8HvJX> ze1~nxe(S{Br)|@rh7K@zn2xwLXyhaM8G$WhZ6sleTRa zHUem0x3)CECD<3WBf;S<-jVcuyzSt!mGkou0noq@R$S{4pJ9poF67EBG`Lf~5Jz%J zv{8y?rGshzFSt*Rz`RJPt^Jkp{AJ?HV@MAtuq$mvh31@|7Y{v2JOm#!mPn z_SL9KtESrQ6DQWf4wlCrqp1m@B?w~c+^|~(gTW`voyBRE=y$0j- znnhLk@7W#O{s`3w*tWmWb=V^T!5Nkh<0)5utz#^;f1z%m&1O>4^bLJ6`pKi8ffwsf z`F?s#VO%Lq4b^_!>t-(Kmg48bXpIm0^}P9+84szf?Jo7if(cz&?_|fcWuc_&QFvu{6Vf!q24w;_nH{_LKJ?W+#}yS&1Yftl{!bN|woXtxDol)XMxa9nE&JGyrbFr|34mLw5d@VY6V3JTBBmGXlw77MeUk3QhUd$HYKPi zMF|qKs>2?wj!;@FX04JGjZw2osn73zfB!hgIdYtH&&|E>_xt&JJ|2<1>^BzU(6aO9 zt;9@Sr-f}#rRYQ?@s6pzWpb4+eI)klf1n|ZW{4#BF$UTfauqNbHc4{cK)rkN3H^j{ z=Gi?xA#Yo=PK|?FpXenqe-|;xid>f|&;0Oocw6Q#&E(w?fJ;0>IZrW81DUg-N#i#SwOM`}X&W>)nh>D<+=- z)9?FPu3_9#+wuc4;Y09a{KuEe%DG+LSBe-uk9ZB>1Iqmh=4Lb-!D#BW>Ffk z0<#nxP~NO@=VUx_S%f_N?RSOG*>5|hjoxHiHvLCcJh2}Aiu3YCl9Aj-_{i1p!n7B2 z9ODee8xb(0N8NTOH3iQqvF#k?6^{Rb`tU4)rKw=-{UBY`JMgiIm%wisH9k_1smZHz zJjCm_E&yYKuHPNTUA~~@zfn)Aqe4Y;Pe?(1#i8@Y{D@lr`ZdF$oFgt>5BhB$T(Xx> z=l9hl;P#m5s}1CAp6)yIQ?|TmWTU}rPvTKn++>FqBuoG&oh93@zG(06kbg7sUQA#z zc2^Kzy!l8$H+;u+6mhF5_mR72SIT~N>vMH#j)>8r?_G`XI~jH&1I=eyULyGUn|^wT z^sw%}z(|2%>w7M%ha1NworiFDiTzrpxO9a(9MVf!F*WPriUS!%%|fY|Sc;M?!70rh z)(qn2z4mLrZf5_{zdRXQon2;`k{{h_-RtzS>Q!9sWR8-SiuS7-zG@6#$Um7g{6tW0 zQCT(5w3ARnI>;t3wdg_WY_jFBFQ9eikh9(UT=nL~T<-N#e3r;yjv66>wN_9@fknx} z@$-;0NkOgdLHLEzl#&bD{yiMy_bsC9_`dNtFy_E}5P$wrQ|Z>=viuG!CfYBNfaJXB zdAf!90NGHi_z&OWj^33^Yx>5Q7CQCq4LqbQ*iGn}Injv10TSB!+m)?aXTty`S);ml zC}g#1drURm%*M7QTrFV@%ISioe`t&mYRk%geYJ}rxFvKU&;gmkazo?^v4AWrJSwgd zYxizO(t^P{mu%OxUG_lv9DH#i#C!K8$K3dvxoEGCfy-wm{VUh!cHE+FEE|o*rJk!w_z%>>$=K~WY&P~> z;nG8^NU~r5YXyZin>j0?KK1HoH{(&;%T0l~-+5j~(a!Zzo-JS43tqJKGuRa*F}BgT z7ZKIVq!>|1?PvO#%Ax_M z;Dg*hb+32qlmlx##;W&(62{13Q;DKa4s>NEuRh(nHC#PEd`JB2r|sx+hJDo!K>}Y; zhf+1Nu<57${d97C+;e*52#H$De1F4t=IzuWm{BA>wxRgseYJbSTc^V**Vdf*wQbh^ zv^MZ;(IQ!?5fUx+v0LN2?T*XN+)K8!4H1*y2^OFA?~S7KVf90a+)fe;>T<)a9`T$` z2O<}z&)wFqe&FHgtGuU9Vwa0+(Ymm2NshaHrKm5Qq6YV zV#JeCt^CUims@!|l12XmtX?ntaE9HHiSns&eQK*a?q>(+_%)d~Att}OhX zQJE}yJiPWkRlBZ({Y};!q{%0|qf1()Sm@hP%S!R$Y>C$7>-d^bee=i$mAt~E4O!KX ztieR_92yW5GO}B!G>;2k*_kO9|H3fU;1^vn8U0)Akk;&V{uGrG>W9>AmiaMA<(9+@C))a^g)xHL!nlXW6F&Vy-`4nAOue5An>>_f z;L<>eT@6z9ecj;|mH>C6J4Xs;ncM6Vwf?R1N`08zMP=&(oa{AjaZf?WGku-O^^M~R z3lU{*?nW~2%b3=idCsGe9!e8US(=}8L{rpDfAsNfXv?;=YzF}+@)}29HH(@T$!Ce> ztfJ`KE{}Nxk<_>KoUiuw4zVM%-#%fz(rvT#P)!u(BNkBAl?Q^Xzs6jbRXtd2?I*cq zWfS+pC#2ibwpl3;<7+{|_iMO|AM}~r;q>QY3x!VHV&uxC3FD{O|m^+({d&9N$39n<>t1I-Ho zMPigGpF6tBAc>;pq50fKR+2q$>qYZ|yg-5Zl<}Z5^*J(O!RJ%_z%t)WaFR^%8?v`k zFf1cy>d*4N&xx+v_0FV0L4(C^Xqf+sgOs08Bx&aOhA{pmaC4~BXE5R_8>4Seseoy* z(wLZaU;RbJT9mCHrG4F-(KqS`7WC8JPKHa<<|QZlWUYZ6Ql0ErVAqtcYK#FQIe4+X z?y{AlQCQoyZ1&q7v&Ju&+zd`=tWB;y0k2t}eKnd74Xh|e zjUsA3*?;bwqP$w(QK^h6e17#HauDR#w=^g@q&4@YyAKtBFZ%V&(_U6$5Arw6N^fcN z`p=BFB|r9X6W#1p>6J3Wa&thiG1wp1u$HxaL(o8=>B@qLY#Q=cAKs$7hG%<)j5qjOY>loJ>}HP=*a&?146Kb<8Vx42enSzQ{greN)0= z1l0D0Ws-GA!=v>!OYCpRy{R*QZJ^i?(u>em*4iqNkrh}cU()~*{MY*o!6Fc6gAajE z?{3H+8H&Wwgk$Uy0YR%bH?J5B|`y5ib?Q_%LKPAHcX)?eI3nldmlGXe*gz zBPSbi|E{BI0!iJIh}(*+-?l%Y$zf5#q7%(PQCeH)kC_z{a&aPX$>SUABON=pd7L&R^JX*%sTUSq~*aTyrBVh>jQSwIXse*9fQ3oM@-hq|(#t z3=RD8w|qF(&n2AZ7e(lvUwfTU%Dg*1!cycPtMmA6n1W_N+NspSg8egLON$cQg9W~O zi}RmvcVd4ojXvKD9T8>3sQm|e6*%+m^X77&!^Vj$1olUw-OXw9+C$(8XII#{59}EI z?z-RCmE&Ou@cTeMZl+cQtu5JC=QA3vcomJXyo}!)bdcZk;;WK<#V^I??d?fKIPXH7Bh92%@% z!;Saq8nh*&I`*vJ&s98m@8G$A{EZ+!8FjH&w9~oqr#8XUgMQWNge)i1UNTd0k!$(E zz?sSTO>X#H2=1OYEBfkmS)9>l;p$s(MM4mJkekr`B_s(sJ zkV?Px0*F)l{p0W={L9&-`ZV3> zI+#Oa^-DY~bff6E3S7lfRHUmj%K|{S;SY7h=2>^_%nhQy@gKYT$AR-vR{!P{%Nhb_ zqb;cBufLlm;z8@#P=e-_rN8d>aY-R-@7BgEL_TzUdNUfn|NRn}$HJ0l=4O1S+AcFF z>A$Jt#(%k#XCv`Vh1#`-W}ZNvs`!x!y(y$j2qBx6{)}*~8NkjtHr&v^+b&gI`doPH9wA3_L6=jR84lD73J_F7w7`fvj ziR^iRl@M#SFb*OCNWh?V)6+jDW?m%lUDj4;7xn4=^_fyNf*!^e=%u``gsGL|4{CGc zE98`NE$C#)Ih*@RgQk28*ih)Aq6xDP=+&NmnmY7>qJuc$%wxIVa96Z_3na!RoIu2O zA{WO@674+jfFQ~A4o}xBYbg14U$gLSBWTMGr98ZW*V5#L4J^P0A#<09-zB0RCY|PO z-|H=k!f*mQJD#3FgNwk>aOk`FM$CN{I!#IK1^fY)f`!|+p@F*CeY z@z7>GlB}4!=nlF4F5irG$wUK^>zH~+kkzEDK~giSf_76-6XI{iAp<1%eR>wOo0meB z%xCQ*ee#4;o_(?d5W~Ku71i*zDxQ5Jlg{{8Rg*WFzC0opc+g;$r5z2&tOmx$rk46= z=nW`HuNwg_*uKd(3=aIY@99MkWADizuQ%U7T;b5y1k#qzFzG}*=BeX;t=-#z=W5C_ zzX|6$50CuVv%9ToVKOSL&6e=~%nYsY>W7>GHTN`Z#zzNO9z3bWIeoRSwQH-r^6eI; z{+v22@QhKMZG~m5>(?j^iMD!wHRZu86aG@q?_6+vQ)#&JqW8o>6*lOnkKVeqTfh?j zNE*5WCwm*-6U3GnDcX3x2w-8dHEY+hyIjnpF_^2LLe-$wz74Y%HXCQ!agxxxwTF{= z^J9XdZxhK_dx__%=9uc{2|V|o%%grR3WK%WiEyT@v0vf3*rEgjq_*C8S_H4tU!PY?PHZRCm=Ah zl4VsV^~IWKglbr6vcwRF)HW^ER-qVpsZJLB?pf;f_DZ7CCRL89o zc@&KZo5}IxLl7WViUuGdD@M-5@yfhGIILEQeuE)a*l$hAK*>O{hi9&~jV1 zC-D65ClHk;ZEF4p5``%z`05V4y}6U|W&7AloNxDCLxS(IweE>=c)k#)_PhM}ESl=< z_S!$3?gU$6#LlhnpAuB;w#!7O%SD;BWkW^p@IP;W%k(-Y9mpqJY1qwiU|rb~)-v>EFCl`VX@W_qX? z8Orp~P3D$yi?aQG26HCT_1H+XYLvATA53VQxC$8WWOf>QOWcGfMMT)i5K@-5h}N=#8TX(20*UQ!Hxjw3--%(DRNRArYqk_# zz2}k16e%O=@n24Nx@>7fN#>G%PtUcy=IcoDQs!Io zWnD7Tf@(bk20`#0%qL>-fl$L1f=KOK=Pj=amNQX(^GS5ZUOxtQvh(F!UXE^WG zSy&Aya?=F4Zd#g>GiSh6_92;q-}y`eD@RG;vteX7jDF%-#0qt}q9n9q6xsy|9X2r& zD8}=_YK>`FP7D87>eE6tPdulScCC>p3YID~ie)vkUckJp6ftovqZA~Y6E7LoR^#*$ z97+}LwQZ&_X*q={7%0d)Pu=BTGsg3g~uu0?0HW&$2C}gc^pl)XCgv;+7#J=3=v`#5SBnrzEpB zvnCtQ7M-PHpnHP|2umDl#OfY^jB8)XVJorOIkJ*H*Ee4&v}5v)1lCR0WKI(=p$L~y z_Qsl}wQF7;8SO0O)mA4b=NjVdezHg5NvMxbUj!H%BP?KnD_p5 zPz{G2mRmB7Z~&{RxiAX8Obn8$840g!kOVE- zWbh3#xQpdUuva&*0;tm{!WGS#JRBa4RTJm&$9@FF6f7moh?6$NnKS%@a3N~3#Sq-f z^A8ab4ix*(r}y_JNMBPN1mxWyn7QJ#b&-YArU}Ckd@&3uA<5z=>TRtr`#^CD8kPw` zgZZGq)Qo;F$ldA!f*^#V2?3N@;CXtIu12dNg!jeDf$yRBt2Q?Qv`1yL!Ub5ZniMQu zPSJF?6fR5P!oZ=J*s&h|^2dDq)xJVjvD9omW6Tidf)U#CE+n(eTEFMI5?SuM1s?pp zS$fgkI`ljaZF-U}GL(ar(*(JO0XdWfAch`yxxz3a3E<(mAkFR0o7AXD*JB_}>F%;bmp59#z1=ZDMBA!66eY2#o3cpdp^Umadfe zYX@5Mr@i$ztReN0z$5UU-_*>AN{{RT$Bec&~2N7t(xQ$z&t; zQ($f>Y7)pW&w#+{M2S*BnS0`oZep`x0D7(#c%n}xdeHGKS^i};2Zs?+XB>p_jvJlC z&7tJAWfif8%X)N^X!R0Rw zuEkQeb*k_v8uS(jJd?d@*hUhmBD-nPA994^uQ&P$%0`gT|tE4&x2wHJ2~vSx#o+d{xOIFuMQhs6W2-rrjc?(Bwq@~EWM8? z+%y6M3>+;Kn{QDPtcHQeX4S2M+M(PBb}26^!bYr9$HxxASpR*-dVD?b;vb#K0pprd z_bc&NWT+*aLg7`68j;m0%*KrW{8?F9GFOWLg94~q4Y1Y{!Qw?pmQRu&P6G9LEzSV_ z70mf#D?MPPvq=W3!#t_tVtjt+qYg`i$C9fEejt=JkZYAp6VC){z#eKY0dPRiEn#Rum!D%*7zth z5jKR4jvTJhkxCpZm6$@AtA5nok#7oCmH+!er+HVUJT59h(`Di7)P;BUQbhpruuY=v z!$Cvb)hl`3Qvt_QoQSn}!*F;ntEP~z&MjIL&8cN3mUF46LAIRe|LEXRKcm++&x%vu zr%+0hhJg8xoGYzBbwD-)RPsz<^?0WX&#G@DJAo<_l^cP-T zQrnzq%G8J``{LJGvd{R&#Ec}!Z%K5S|11}wnYE@KVltkxGIUv%_`WlQzj9+Q=GMCq zIi(Zro$K>C`cJZgnl0@cY`J0NnIqMXPXu}Ia=FXJivBxifH{6_^^?hgi}vFpaS`up z{;a8vF}-}C2l_d2^+1wlO&#+doZ9lKjw$$C&z!C^EOIX(s;Q+VNoD_Eh22kPL&V=_ ze?F_sIEVMF+jwwwX+#ts#dUo{mpQRHs8-4?n0IhIlNJbs>FCOQOB}stz^tP!Wj}#e zo;|YOhpScjAqK0alMf{J?&#!SZ7HY;;D54xS>- zz{H#3yU?3tvUiSuMxN_UQXKX`kQDN=(?EUJRk>R9wjaNG!n{m7X6+<=Cx+KM^IFGL zkYH`|gT^~NpH7fBkD0qRKeCw6H-jH*I$~C3;45G~23;KmSyh)Jk&Q>6Lb}B7+Aeqx zU1Q;W^E+Bh;P$66;a9D@bzs$xA^~{@n7ph3&`Rs$;V)`WqwF|Yd$S0$#<)~0o#*Kn zFD%Gsx+_NZ6}1~B7g9;-Qr`uvoMDT_#3`zY?;a{>n!ZX2@`jcVV2u}?~# z6rG}-I>ij44zK;Cu&acg@Oa8T-QGOOy}c%VS5?UbjTEj9(=G{!Upcqw(lxX6#8S#M zd&r~LFyQ%&_U4a@AdApfe|?2)xdZHH68ff____{$n&8T^SW;D3A z6PMBw%C2X~Z>ZHIlF^}5^T-f6`CpN>ETo{Ij#>RwiEwu{0*i5ATx9&FD=mQIRW{!C zT>Jx_FC@d#`D-%X6yiIb$VQdX`8bsJ32*8~tdM3|)kZjh$z0C<(a^*ypU|cdgroAT z>wtI$Ji6j)|1jW&Fc6*kn97xLX#I0qRX+uVGGEi2zU$CG zD!MQ@`YIPWB5?P1!0VEvux6=)rpO<+=qd~Du8ZzgOu0@j8vGGoN}Ug5AsmEKyF-r&C&G7x|MZF%PN*sc5_5qNL$JQwghbX9ci+Yu0bIs1`s z8M(^WD16gH@+@m}Vn}Hc-?3Ta;Z5Qy)7WtsnPZ(F=mHwbe!LnJs-X|^B+9TTS$`rG zPuo;6x4DiBaQb1hz6@HA4{gdVJD255?0dc8>)|mt;lJ_=rIeim-0U53$xHSW1(aG} zKv}D@{k6J6o~YoTt&q*@&Wx*mmFTTOu^gLV|HzR`8UC(tgBeRLh|ioa3Kyz>Za!KxcEwm^Du4yVBr}#37Iuj}9 z9_oa>)CdchpeWVih8W1X)pd6c- zR*W0>`c{qt#8-sG*r?@?sj{JhUwdT*_FVNfgWme+;2B0V(p)+{U%yZ`3L2?7dYeC3 zF!B4saz8$ElGK8~x^4OO<0J-d92FP)-s6ZjZ3O!Ha>>@gixf@$tDWWbarYE&B^&vV z)XBo>R^JVDKKJv_<~p5-rAw*R{o(38_-gBg9c5Vi{$}EvFxyna-v=+=WFMYw%#XkM z=-<2gqri^^r_K9Q8(V75@;vlq%r}|VQ;oott@8lYKCQqpE9RrB?!!i1DDJD|YI3}s zb;yq786l8X-%#LB%LfOYW??n6yl8TK|56~n^{_rbzzVyYV|*gJ<|g=k#?^5HXIJ3M z=jP#Re@(Yjn@zU)MlUSUEIFBOW^6fsXV5$^xf5$2tjh4Y5xbUvXyNbO@ZynEW2ICi z_I1nA@396{a?QSXD=O`Q@{tlRK%{HP4n?H4GcLd;sE{oaBt=K1GjYd`*}cMWn&jOK zJB4H93YTM7x|*GrrCs0G_ugsF7wlNwZ4?$~GbBYVl|E71fqb>zrIyS(F78*u7gq{r z4ZkdOSPwE=iSaK&xqeHL-01&9Cl?!rD^;oHk9WL7PO}2Ab#~L zGP|p}HzupZt0D63Wozwc-AB~6QlbJ8162BP((e!U`JvCh0g?ns16iBv@9%^k+1HC@ z=Ar5~j@}&FKE3`<-U*Z*xz(#6Gqip2$EKZ2uD!>!L0_#q{BoU<(WVI%k(s6pd*>Q! z$B=lhN|^ahNyFWh3%qmoF+dl^^TwUqoiXA-C9rxy2E_+hX8RttYy+aN1MR-0?vH}} z_?E>k?0(W?t7_$?cN}-xZ|g4!_3FpHAxM3(?rE%hf5JLEd59fk3s8s~J@9LLUoX#H z@hcLzA9oKHF0>}f+8}N}6-!r*81yk;{&M`r;0$7|n+l4^4Jl<6f+bTXyX(WvjjD82q)I9bW1G!qU+ct{hQdbxgEk z=97;|u=Rw(Ib)|^Z?7oIHAshc^FFcUo{{jps-e(Fn6(u@ogbI@HX!}W51ddv+C;p{ zCpfI<=%90X{KfZ;11^ylvM5fDnQ#Arh;IGe|L9}uMZwSTZ!)#gBB2cV!l`v@;C~vP z^|zTx_j8GobchneP#}xBjq^LfAWy{xxC8&GsyS%iToCY1WVhc??FM2klv*UAoBIUzn2R50+`lY6O^}tbyx^)76YHWYWl>mfyi_0O zu`+MkIfXd-{S0iLX@KE=i)S!zP;SsK7*4>(Qk$qF;if!$FC^^IlkNTSdbQtAw=5p? zW@P5t+=@0tb!u*{XgZe&fF?S3c%OQg-hO;P?_aLV*D0M#lM3(I6n%vp95}Kne^Qc& z*IKj#G#h#7ll?ztsJ}dq@kR_w54y z=ZU20)8D44Eg1d;nk*^gjX(OL^%&OZZoKjHPOL)3@qg06x@jWByRM+$<()x)ynIO! zAa~2gH3!PwSDBmIYk_VYuC4&VPI8HUd%2*P(7|3H`iO#{{2)SF}FGuJ`- ze#Fq8Z^>wLwri?b`}exyR-n<(&QW@H&XJonv9`Z<<@u@QO!DFlAbs%`B)G_ma+BFe zu%3%j$p#zH2FY?OO5L@Q(D4&4%@-oDOzT1<3_w9!NN|jg7;ul(%Wc<%vKwE@5=9{{F-!K3~u{H2`%pub}cEz$((J{k@TjfjiP@F&mn*BI;Wgo#%^Cwr*=x&^S zOm};J%ZGNx=Qk>NXT@8E^Q*2_W-?`k0!xVJss*47HJ;$B8Vk(aTGveIAQal85F9!o(Rj0~acpYVK=4Npb zQqkq#p9eIr<(aAj7#S3yh*Wvv(^J=~k=0#9bzo_S&pN+d1Pj=wS7%)I*^5w-LV)P; zH|`n)(XNT;*)E;Vj9d1LJgz=+Fq)jPFF1dJ zBV*$eZ@*QeV&Hm9{|xAz+M+0=z7AJ$OswziT;eWDa2~l1kdmNiJRFR#hW!Lx(YcTHV=Q2@QoN@~1_Qdh-Y^4p5Xe2K z3LxMp;hF%ErZsLnZ3laHfD*g`KTpecvia~Mys9)*5t{^1KS9}|MWJFv+HipSycmX! zcFJVbuq9A2uvRUI3h+DoOab3YGSR?+r3m>`#-3lu=K7-T=hqsce5*n>fYmXIpq$5m zu_btxa+lWT*@N+R(+JG=QK^+Q5jKT?~^32+*)KOrjDQ?h2pn z^`E0b3pWX0x&FkC;`aYF81d#%4auq@vG{BgpBbj!k^>@tACF8Ul$n}*KIoS}I3ECm=3UOPC${ zt6BC52+7`=P{h|?0J`kD#9x76nxR-h@-6&RjdyxB^%KG4<*&#$b1QsOv~S~_`t55c zI&JUaL#`}_*Zb=PmfF|nwvz_@!XZ7_TsN4kq`E)@v9J<SqAYh zb_+;-yFU#V|SWg4kklknWIR zpu)QbMN%IRFpP}Q`kPKtuZ#O9-I;}Y;LECFc5Y)&9EpM0zxrL2_O^gAp%7i4m=uprm1oghYv@9 zPH^~*OcY}q5QPGbOV(zYu~^g|K<#5*^P`gi4O@2&gCXPN0{;KSsvs6W1Owf40mGld ziV)VHfVIK`ob;=<#VWdX15Z|UiSaq#)iG=NbZX3;}d_+eWJ0#afWjTJG5R0A-6 zDbmw?M40wZphdHU0WwzOLERR1rlT`42bDT_4miORRjNU8=SrRdtcM^r&w_3t4ru@) zerD5n1`pvhV*ng>RtA1Om1;zWOvptr6a_J3^@;+wy z1$s%H@pbq&9vh&O2fb|hh4R+bxy-@T{41}SUOEFDi<#w$$z&bK31R=(|@wQ1&TUy+yI^0ZCjKG z$e;J0wUqo{^R&l9$m$K}q6nq?iu9^ilwn?cB-_MtTLLeH4RFGsA$<-J}-lWU`1lg2;sexctnVFp6y-+9_rJnN*8Ni4vVH>G zIJXq0H<1ziaM={;o$?uWwcTd;C0j-{f<|WV`%Y+&q0_S;w+meZihppxxil6Z>r1L1 zR2lxc7dPH^7mZApVuE;=xMLF+q+jT`0IYyl7g|g61>=XCWn6hL75VkfRXh3VJA)_z zliU5D{m&=SKDL>4I*8Gh&!kpID)$mAD5i7v3XF*0YMyR+o>j(B&>!=i+9+0Fms zBm4N3@O^!59hWh5pVk;2Jt!^Yjdrt-f6odgF&5;`og3L!yH~4{*?r{ec4(9SVQjw3($3h}m zr03NTyInrO5^0~0)W2z%M1n$dp6=5P^yT2wN;m@Y zL7M+PfR^3h9C(U!H2aJ4ZPsjs&iNKGNN6!k7LSj;W@RkY7_rM>z(%s_nQs}6VHtZu zS@cMAk$c7%O@J$Yo}UI($^iH}pm^Dr!djP(d(F~KQ~L>CVSUgOv^m{$Bn;UDBya#4 zmr~-1S-CikN&)!i;AFC-t_-+PjXnu@7J$a04xTwB#~0Bp-7aLs%cyBRNfa?b8tUnZ zhq5vj>Fbv47%yPNLE%KQ@k~~m(8w(gmC+O#WINqR56W++GQ){m7TRjWO(Yv*ek`?sP<1?VDRPnGD}*{2 zCW+RWnM06&t&=IKfIRx0iJ41focrh)RwJC$ClpbB4(|de#QJU+An5>%9Q_JO)NOz> zF&KZYSWL}dH{pbGG(9sHUFMjx>7X1`Gr~En7TK(T)YTNHM!2HNgz`cx<&xz?fcRK3 zxyS`wX5yOiIK?0g8)_9z>}!C-GE5-LTox?wJ}sMVP}Lvk^u5PykQ?T!&7zw{X6iQ( zX$NG@Y7^f?|DQ0X_rQy9zuOQdt<*aMv`krJ?S%35SiQ&5mDf{+7AY^m)d4PE4NQB3 z0w9J`|7jNBO>>3@P5E$vEDEDj^Qr?pmoI>Fq>qtwGw{i=O??_!x~;N6BVTzR%- zC`ESy74}ronsqXN6VCjr{SOpHH%=$5G5aVg(XXd(0xXthIbchMGBmMZHG%v^)eKW= zt}k*ll?~w8gsd*^miqy{+e8pQaWP>gK2R93V7D{aTglv$*PSLQM zmuK^gc%K39xAsj-JQE+ZIBu-Fmf%ajffS-4*j5*aYGfrofM6i|hk&1Qy`S5$kKA5C08>s29wIn`na& zO{*SOEmSx)yVFFSzlt#edJ5``)uc6F6#&ITf;2LP6-}=fe&`zM@nS3km`0442Xk!h zXw%bSGn>;UuVtdq2SxK<|D#{PwQDDU-;ThUaL;PhVg5a60SQVb@}V zFn$Cb)B?49uQC#!Xc*Gbg44wm-Oo`%&`A`EOsBDW4Bc;om#?O_XNpYyM&hs1fa20}vT@qo#zKZ{SZ$PBnr4p`#=u zwf(6IF|}$vEG6|w#s)?b?qVLHr|vJVu`)V#qA?;ctu)GDQ!)!Nq*&n(O-!-p1^22Cl!z|w)p)cf zEZX&Cao`)oG2i+pD^e%F--e&()i+Ca$%NV+)q}U!djEzbU+UEp@kc-T4}`%U`nv5{ zbW#I9#yy|!k5Otdj#TGK7eEZQ8%$_xCfdEaQ`I#V^|xs8Uad_(tZ94ap`BRFK+RID zXNN3|`Nzj=n|&r@$1vP8zV^-_EHDp2RsN1uiR3uwa031x=F1;_U0=SUTc!7R=tVA? zze+^iTxGv>>Fp?s&-+$L6~+elqW2qB#)Fmr195*AK|Re)>Hv&6@T+%;js+Z4{PJ|$ zhgm#H;BB*dnN9vP=ZaF+Wd~Xcg?y7s5(tZx(UnhsT>Bc|_M|SMIVZQO_pC12x?e7NTkAoV1Dwa~;7PT&nQ!5# zB*|3U!8&B2F<)TH#-s9Itm`wszZ~Ri$lO9`?v=w*-q|${i1RA9w_coyHKj8As5*H zl{h@#@=begIU)KUAe7bEP8aW?PQ%q5xW(1$!jdg`*2Nd_Qpc$ zvY_RGT^?kG@}eCKHKUoOLgnWGJ$!X!*XNRq#U3enX$pfLzRS1b zON8V|Wq7(;%wg#ivAO+0bmFqpq1BWL;mZVE8c384*w~5$Tl_0D8auDhsu8_Q4gQ9|v`={003J z5nRFLvq?P89}cc%x1MXA-nulST^GVmy=s3j$@NgFpTI#eO=?aex_)_OxV@4#eyK^= z{wc?;wjmky4Vz6d=XDHM%&bL_`DGSuF`;x?1WVdg62HW;L91^6I9yv=#0p9MZj`<3 zMis|CiF52KQ?<#vO1CCbzVgB(*>nE`B{hR?PF}q5AE?UB1yp~+KO=p$8JhiLtbAS^ z-N|ol+15Np3z{i8^};=fwev`dKvaC!!-#P-%wVp-w3BEwyM)c39H0}KuA=cN5a23p$3e9WI8VIlF&W?-;k|o9&30$662?|zR>iC z$&&@7Y{T>zAmN8ygLo>;KMuHnnMP17k%0#*22hU|v?<=m?5?v62l%3d@Py5q)PwL=NOyIxK$?jo;ZJmb|z4c7z z+LE~V5e$1%8HpFxW`^Vi4l&_f*tthX114v6oCVr?t=h#td(WLu>F zV`QhkwxjW%zvI4pRr}?bgU_B93553EIU7CjLgjKX^rlxkOkWk#?%FK3Co=G%@(!5W zv*!HQw`W64)=vezqi4j=bU?SX&u5fqqy9XA)CpWphRQacyOyJuB;!rX!a z?N=$)l-ay`lO3kUx9J!qeEBi$53geIaBOu@#Xn+jo4U^ZmWHO~*XXoGD;6>TRtE{? zu|%GF-h3#N%FHbH%~fW!MZ&4ummxSKQSrjAJYV(a#!OnS$z{!Zi6|MPuR~!c2!>mF zu{phl(DP0%9Ewgd;t%8dR(T5fR@7M~7VR3ZCa%jnktgGCSI`yT3FUEyb>st1qizuxND+i#TTeit5vihR0iDRIw>6*um^ zFJuF2C`o_g(yJj7ki*6{^{H(pQl~tSYt0tcmugrV6|`xbwMr=#^7^{+{OfB8CZDHW z7g99Bp=m+EtUNMs_Qz_q&P8l@HmZmZtuJ2D7{6Ok2#3kGLVl~iGWtSO8`OuZ(@63I3lrXH-n}s|K4wl) zSPS0+NYXVDwfmaz9GBByCF(}fYu$X`z)IEK!BG}CxS{iG#8SB0XDeBZt@jb&1UNQp zciv(j6u_~H9WT? z3z-~_+!&^N@Jp8SH4`t}Hm~Ql`I02T*`GU&2F0$)dZsMRj@aIQbOqN#2O37$W9zU)sWJoxgaL;tz?C;xp72jGEsW=lWQli%a== zOmne#>KORdg+|A8V^vID@qdImzrQ#TA1vv{()tT(fef2t)exyWx%)Q&LnUZT`J z_`Y?aB(ipy(O@?UfZRaZFBgst&_G~cPXjeOdVlB1cdel#%Z$RKp8c#8o?QBvY4*4JZy_pmv+E0N9_ zFyTCZ!Q>N{*qsDs`?j6`K@SJ^~yFA2GHxyF_3b?vfOxyZQLGE>yG zv$Ah-twPx{BCb`!HM6QK<7RWs=<_?@-(USzj~n;ibI$wqdOe>q3q4^f_Bt_Fn@1bI zD9S`jtZcE{0#jZeaqjQEa-Ea8et56ur}`1cl8v51vO4d@N7RsL#s>b3`K~$@AECFY zyX>Xm$$!GWa=Ct-c)93(-`nY<3V2D?%=_wW5_iv@FNEf`he$%hRf`tY_!5f@GywG6A$zf1M8m&oUPx(G$-&_sjrA79=l(IUvNAFJ7+p}qwbYN%?S z@iXOe9piD(>Qv0lYg3BJp6&UFLjb#zcKl#V>yu^iPNl@I;-K0BFBYO`6l zJv?=MRvKM>7i9z3a`}o) z9dGMS>cTKTK1+W{(5i1p_K!;;H(Ww=?eqBS8i1CnBgDZsPc}dCOy2c83`T3@@G`#J zUQK@jopJYVfzY5~BZEYP<(QL`x3YrnyM0oZxyv0fv_R?B-R zwJ->c0%9)KMAs1{IO+4X7bHd2nM)8v(;KZ1i08$We+@2TaD2It8*9;3Wv34p%M8h;3er$Sh0=}!ik*Y6qY9>ObHZTaHh@H$`AMGD zr@4>Pt3RvUd>!~{xqtJWx*4B1DMs|3&euS(+*RZa6b1d(ZjSS&H4$Kr z$CJdH3t=q6NkwG=PbzQTn|IIwRF!@xwU0<4SOKxM*}BV^|De+WzZm&e3VHr$lcmY{xi=Q>Aofje_-I$ldp0Ux za^(;5t2 zZSy4cmHVZ`4^P6e4%gY}+q(XKZb1t14}GKDPygpK+g4F(ldZ~`X&vuTupVx8{;z^0 z9)_(AuP0!vmG=33fmy!o2lAKi)W1YS%)fKzxmj=ioRJ%DPMRno_~~$b-UgK!s^HAi8^`xNDV{x-`L+SpoA@7l%+JkyI9!3A-$fycRzwFvQqxkD!Jf6 z?s9q!U%2rT!CXZjL`51%Du^;Hen(9cI0Z&p#Km@%N~U@xvKeu7W(gL0 zhRAwx!tXMhnuJf>3FNID+TS)7t@YyKnW5_^XvdMNo!zbmn5E+yBs7~cc-5pHf*o4< z@K0zpq;AWT%3u_uJ}6D@w#m9-QmT_G7Z-+*0Gn5_EG$~|L&D3^JFF^J0>P5KFb^Q5*6s1e>5 zka%}4^(NIIKWee@)rE@3(1mgdH@mF;+|Ql-J~G3!?M>hqqJUL`S+KVG<*Ar^d4 z^>Bu_lHiM|ip#LQ>heh9sz+W-0hy4KBGphm$xJ`odT}8)i4}=7x#%7DejxR)(t3cTL(7!{h>kr>F2sludx5Ky^9#=LnFSfxk>P3tC^ z#|g}rNcjyJ0QDOykrq3ZNeZ`m9{SV5Utl(NU=;@{6JS&>N!m48lh;#mHgCCWe?<7E zT-pyQb$87gz3WNE2U5$Oqo2XVdABX)L1X-!N`|7pTp*Z;Lfq@I&v!GT)}0BR03TiB8AGPIgSBzaxD~-5eOTCFxUl| z$2kH=;T*7qma+mtu*F#w%IX}Z3;aqpbtA?>eN2rvqNSKRnCSB2d;hltL&T;)yLgEb z@i!*B%0b9+f8_Z4QVS3O3RNl~?ZKdzUu^)NU#3*THDuB_N)nz4sF}leq+ar3aYl5T z24Qfl(e1|;F+%M00eMDjqjE%;BtfVZ53Gmq924!qo5q6XB#>_xnvnticzmq|%;V6jFw>xp_j|I^ey^ z9FJW~DZpp)Htb}eik&69TJv9BRYjlFWXlQBLtL*|G-^E8ds9@_MN%XyqI_3RDng}r zbYp3^w(^r_<*RkuK$M%;Cu(h0l+It~&7@@L3O>Jm`{^I;_Uiawxy+ zK)QZb=&ptqT+m;WUS4fIfFBC2q#E%97}R~sZ=EjlB?JZ74M-BdA+|pBO|*x+>DIJ( z`KJA$a!vL^0i~{DLpr-j`X!UC=IHnL7U!)G?AjAkzuGJk9o}ef0Do`gtfs2u+r zjM1hKuB`q5QBqRs)BS?pFEA%QAAuv2=WX~}FDvts%h(_R=!4(j+~AMSqqfqtZOJCF zrjF3r;=mxtINvZx?^~gi+DzF~|8O+8h}R9ms);fW&^zN`g4Dz{)4r5rq95hwJ9JHO4;K6|Aq0d0d)ko>jCrJ}5WJFzjw=-z`dHT(sTe z>7ShX6j@`XUF9B3`-xfo()V}&fgq|#=6}*_8dQ0w_FEOIPY0>BjlVj}zpOg2rH|8Q z@T!id8hCcsR({wY6LXo(9ml2BAj*~sPSI&IKL~WZl?YX^FVcdMmx|{!h+6!d1`|S} zQQzXz{#u+Kmi-(BF$ib=dr~5L0SXfpJS2d_!H+oPb$Iz%1X68*TzQ@!C68k3Up9!O z%n%_EIKUf6(I&Y+M$@Dq%Go#?7U#_w;1>|2i@?JgFaR|r(D6sx0-JYZAWaF-yuBm} z_6IUdUO|h$qbRnqi9M*Qh?gxRBqqwz3es6$FihgO}d1jOFQ_eOdfnoc^aq;`g3dm&KTRRI*M7> zeUA^}C`;Ql`Nm`dRfDp=074rTK+-CVz}qpIWahv33^T*sEQ^^jz)%JVr)CqtQv+v3 zDIYMRjX~kLfDmW8@yaS>3x&r5rFket7jAC`At!;_&6SWO;Y?Od>|zXbjwpIWju}O> zFy;u7*iv^0f}>YhHaz8v36dQMv|NcuwFHCg-s>#F({0^fx)03;;BkgD2y$xFgdo2{ zpIYUM4auoOW5O`qAJ`R7M2YHy{7qB?O~0*U=R^XYNRLHfkSPB=$S4-);>` z6*C+PV5{xB>B zMH_nu_;NNu2JuJ=saT+BW7Z_a0d}fCkU7rHqgh>4B4OnoE|75)|!wXEZ4|c|#r8{B;Q=ze#~P8CcYMiH?Maw3GtnCni$jvqlaLu<58- zx?$|WAs(dwP`6PBC5*40ikiDY+Kau++v2s6NvXn_rC0;R=~y!XM8Clp zax%z63m4KT_#opGfDYyW+F(~Cath3xFQr|~vnNrjMztOV49glI$xpORVq_#qX=oZe z!#XK;Z&yDFpbCS4wnzb38E~7T>40=J3G5*~O^}t0MR7_bw+Eo;IXo?~xNtV(cDC^+ zaZ?#9<;BZ7F`~ma{I&T?Dv6i560Tx(L9r&PR0>K!2h+lxevAh6;fJOFggrTWJ*q{C zNZ!(Z7nHqbUIsk}224w$t|ZfG2CwFs>B56cP@|3@YN=pKxY?R1y!Z<#?U_J;VVcS) z!(a)6q!$|>)Me@fat^}MDL6FWc2@D=JE+sj;F_x;P!0v zG=HK?idkby@qGMv6xF9|;P06EUF`6vq}(eQhAKtJ5kyyUQSy3kHE+8?%Jbw68bsO5 zH+imG+v27*omR|SgRImLP485x)-DoK@?4;$x*u}Fd#Po4_hvG%ts&qXqrt=liw@6s8O zmXz|GPK`&5Xu4_@I;IrQqcjhnI6wan1l}d8OB))iDZSZB|M(KRDsn~mbr_kGtLg6v zTX6p|O;=fuhd0KuuO#JFwN8p*#pmZ|E&Udxl6yWbSA6EgTeN}JJK+zOR0XHiRrsUeqrLW~n0%_3g&|&N3h@=mEJl5XTGhJPH)@Oq!BkGfmp4F4LJeWxJwq$b1c|RDLS0scO zx-~S{Q9;Y%_dB1(w}p69l##8T9RL z6m3T~^lY=6A#|&O_c%%1MeDsSh+6F<8p&am<_;-4*4G?!Wue5H|B?3Ncy<%HBQ6?c z)qCt=S2Sm2_?Y=?^*GS^+*4~8S$`!f-1zl}_qDI1bGj?UhNMG^m7Sh~LH(a;WXL0% z**9$+4NW$UB(a-5^rM(Z|1LMglc&NC_<}PZantlkm&H@aI&nJ9^Q%vO+erSBQ4LdY z^y+ZD9eirza_zh;mET>PE214u7u8c(_owcq?#`)Y<-g2(fdieIKX|z7# zH#aPyG<{k1+RqK%LyJ(%B&xBuwgO+NKGy~JqUpWg^neAbANjlce*c$wBJ0srKZcfS z-gSK`qs01f{?E%?-a|DhmRiCq=7tIc1z`I$N)&?S^37X-RJBa)VB%HNxXcdcF0Re{ zSLHQfpN+QfpW>T0tF0%(#J9j~-+X`ca0q35sB0ajfe zymS&-T>)P*8WBzgw>s4ru0UIsRx0>?@NdC3w5C~e+i22>ck_uAx60;HsuyV-F642q z;94eo+z&zP5V{-s3SR`ljV`5s^4iyh3t9C(nMlv8-rB(_1{L3p96s-MTqwijMP+cM zkQj`@!FW}H9t|db*Be2D%p&_=18X0U+7(LIo?rULgH~fw9A~+`>XnB9B@Zd%nY$Lo zPz1lsptH)qpg&$l5(qqV)_WDp(g*U(^irP`=LNfbJ11%M{m7Yx5rd&htTKB@ zujku)bCHF-RWUciZ4h7Gk6lQ2LF1eZ^8R+;VmUqO)CM0R+Vpap zi2Yod#T?)edhKs7)~$GJq%KI7OB3=~Mm*#CcRNtY-ou75E?uRp`72rrW-;3 zfmn_spJf-)ep^cJLNm4g`*u0t3t25_J2N4V8~0OPc8IgLa>=D_*_03@Qor)<=o6Q0 z&KDRYO;|lEb~j}a8YN*=;Ho$JA4p}nPbPV%yhmLo-es5ee$&Z)4~N%LPdafQc6#e5 z@`Vo~-|5mHk~^b!TYWV8A35km-50HqUQ?6!a(9<8QHZ!Je`8Uh-^E_>a!XJLzq0oL zb?&OtEcSwrYWltB^ReTzO_Jl+;fZl{x4xZsNDBvPN8-K@)+Y9Sp5!d;8QQ&_bcwKav$ZxGz?T|w15DGf^5jjDG&ShomEmykjcbAdv#ox7wmD4~52UaTydhOLD>}x% zX5AhCW}g1Ssm;jZQ=DV$YThi1#9z;CeKLISe&}x2eexSp@y3z2=qAzcIQy#7*jJl% z^Fyht>TIt}-PFqD7#^L*q)4}lF+Ecp3%ypNzpDMq_I*&kN1}PU{@=b7JdPsual@Bg z<<_hLm4{!8|K}0U747utA}QRpZ=gYb03NmRySr z<6#3yU#3{73VVEIcNlozHjNRY;Ny(HH$0@iHN5cZe68hf(V|0Y(Zt*f&5Yj^(`3_y zB_89Y-{izMVlP7ao7Lov?rGgJl96}2dNyz6k~Zgc@kYPPn}LVhJ~bEHVo#FyG zxh*nDHeaoMFF^%9A~dohuet6y*lPM0K+T-=vkVP|P1LWo@|7U5UFAM(`MWrO=l<)k zd$H%UIBKasBrEIgO6jcno{W;7-XGMvzlA!ae&L5%qV`#?QOF6gJI#)!!i_|yLlZEjIRBoyb%)DkI+W=jI6^ z?Du4)s_ttF%WpdrzeyaXnw?FrLB`H1O{rYHms(vqN)>{syp{W7>@r-ruJU|u^R-m< zVp-$P#`fP$g9z9k1r+Cmsu{ia@=W=w@Q63{GMkDWPDfvD<-#9)glYT|8bgEdd9QCh zzp?d7n?Q_F!D{BJI`WS<96vpM+FfwKn71f8M*R=;atu(^N>v?)*iPCFcjUVYPex#7 zB??m;5FWOmA(hVR3ZV}$O+C2sa=LqGhW}ADGL_qo)@{5xJ`(jV_p-y}3=@(o3PLk? zx8Iwma|WBWgj+gudo=ZEuC9!1%F|ZrIqaOj9FcJ^O1`Dp@`<(4hANs-rY5!G57Ln` zBpqCnGN&^}Jsv1#``mgr$T$RTCiE`KHdwI(xHdnH_MGq-^!<)!G9>G5aHhLlI@^(x zzIlK8K!;C&>(sipIZrq{=B(y(z2vU(@|=_>7a)p(Z??<3VBTz<$3}-ooUY`TC)q+D zsWG?}GWCWJa)!ue7cW$=8*}Q7Up$xT4m!Yd_#F5|-;4OJyGuN78Ah{XDwj>4e6e!heI(Yve@CDLm~56m zGi$a7@EdM3Q;F&cC7P`UFM%YTC9Ze2j6YzxZ{eA@-SK0Sx@54huNKG*;H*jd#hqGyXR(NAVY%7U5n!qi_XmMG89?^G__d#%iH_TzOUQ- z>eR=Xz;(mWoFUD03QG84r|^_tZgj(a(Qq3(&tHWqQ;Lf^-nQD0=67%F+`Rz68V?T- zgXeF*$yyfaiZRzooH0i{5P=dg^vL>d#3A8Fa}wAYXB0%x21mKzzOp*C?llWOsPz4E zRtR&rlRS-k5hpqWrR`G~F?cJnFsBPA2-ea;zCQ2U!_e^au{biw|C*VpFe$~MZXh=A zX8f@+ABuQ}=ZGzWqCA#(veaAI9&ILNSDD>&m>>N3yFkRC?z+qpQpu$QL)$)m`ZR$i z*n{-EVM%PO<>5tJuQ#$E6>x=xFZk@y42H&HqJM|tX=@z%mw$0NTl9a~OM$(yaobP1 z6mtbf`>9feLe20(31(jPodIAH$Rul#@-A0xRAv1B?U@X3VtIq?|WEP z8{$Xn7sP7MbU1lF(dk%_G~~5<$k-f;#Y)Vajxx^wgElq2sM7+TkydJg{P-K%*b%jTKQn|-L+8i~ojH(ISR84D8x0r95{ zr&;^?2C2wf=ZDt#!@l*Jt7?CqO+WXoE#aOaE>AdpSE)W_%60>0=pi3TfyJ$&j{tjb zPVcQFpSmIOlzyJ@>7L-7m?QTKYTnw74kD%kXjnf16yRODez~_{kLR%Ztp*3>P*1YW z-+lX@jqug>kD2H3;>}GAN@^l^Cp8{pVM*cEF@gJDc|7Utw8=}P_rPfCeBzmp&GM#= z3_t*3Wo(UzUAKuEdqb()5_qJ7W^_mjIlARF&ArJ(xs?6jmc1}TnBDr3&8_=B)4!RL zY@!Ln5i=gVjw+)M?t338jsA%55ZRi(rIBc`B8{k@ZC1Tkmh5JhP%MKEz&%v)O?Qng zsGLIyHfO!{N*$E1tbXeUp4FkxDc7+50F2UAh9g=aNRAk5-cM7FHlNvaFmw$s;4-RA z&qe3%9TnYdNP;vwd`05A5_)n1nsdatq{CE^ea4;2a{kj@A z#f!28>DarmMqT|vUNa`g6}WIPCi^*aIX$9MiJZgBTXoen$+Cc)jw1B);$Mdc=tkgZ zKyHv-7NA`olP7EbBryxU>r&MBA^U9mLoSH}`>z%489Jf=#z))xzV z2M)2of`jLZ5Q5PC7J?fwoBW*HCv}le2y@{Mz3`hDWL}Q1ibe2#zb*Lvw{meDx|Li+ zn{H4pG-#&P+n20CUb-k97E3B3KLUcQq9VMsshDRZq2*ahvz}22oRS+bGBQXgmjhl0H=Hd3vV}y` ziezU3*ka&sqTzzn5(tO#rVeVU3@X)KIl}-x&GGUq5Cj7&FkfZhX2G$9F-M%&7R_WbF&_Y=1=R8&L6X}C!a5NoN>25q zy3s-W89;P^V$ff$;tFyF_1}*U;@Dki<|Aw3Iz%CPH%`v=jbB)LpYQ6!^9;@Bu_0MwY z4^$Luphj7vMSrL0$dl3|F{5dGgno+t2Ih2}9;Qs-?T0%HV<=R-n&;HA*PFqY?xai$#@wgMl`VHlU}ZpKh~hZpze(G>%PR zBSy|GHo)={<%9rd#o#>)uFZ*(dGC}^ z*B52qa96l}dR(I+M_s-li7iXBpAa#)Tb@e8!^GaHa-6ifq+TNZT}1YK%`wqShcvz?BQi!DrDNh;Z0f|kBLUq7>1@SJ_h;gQ$IetbFqAQ|W^pV>}Lm{X5@fIlpQiK-_HG-9M(X7OZDS>XlUboPZUeJK}6GMiKRosh;cZ7$x|0#sJUXT9r+vh~C zcJ6PDs~PoNdN=ye;n|kDawvwI5Lwa^cPwXjw2l*DHl)5SfgkXiz z6i#~2mAuP>c>vXRUe<&f{yZkNT$ZQkBBq?QmESa8_iSY2BS zBAqy4rLb8D+7}IGaA`RxJt!w9foXdMB4J%_JLR$89-H$JX}LX*OBy8`K{Ar!jflTy zAD_hK`Koy?D3_`Qpjh;qF~bN_py22Ymlh#o-X-`M+k>QFyz0%f9>G+|g@ z6oBRX{vgc*D_7VPJf`wv7c+Pd35SpX#;%4|#*Ehlp-@Nw2&8L^kOUadn|dmL(XUwh z!%-}7w`l@&SUN=vn`c4=dOk6cP>9z5Hn~ro%~KemEmzt-aEwt6EyF@B5^iB?ghr;&;p9}PrKjeH!?YmXaHXH_=0OBypeN+34Y#O6lmHziZazT(NKe!N zknLF1P4;%IuA<^CUO30^NSG#MX;{HmWmFzf0s&jBqhhdnoI(J*cah5G->0CX>kHka z=#S&*GF5g>Rx+9)aS$eG@F1{$4qOLb>}9BME_{A>({yuKLf4js%OatXZwX%1_atsH zPWSy9w2QJBV+87laLH2%OUfmqXt*SbfzQ^dTEd1G0@~OmO7f92>6-GNU}*G-^d3NZ zN<@lcQT9g8F)HRo1pt!;#6UZ$*)@EHLP`y{I)XE4%I7%`AS!j64NTZ+@CnPM0FU8k z38Xy`&$vW@3Bhjf7EufMX+M)Q8U zGK+14)hZWs;p`uPM4dJ>hJh9L_K8c3dM0);X_dePnRo#L&>1WF1?E4OASbv{wTg3j z13e;~Lz(cE1_wN+BY^jzV3(v&k&B-KEfl3W3|DGKsaSY>Pu$7G)uf|k-3NSSCS=O5|7 z^t*GvS0iKIJvQeIH;S0SHv@^aDt8KW z#OuKpO+Tar_-ANe1~kRAM`8qn2y~>Z1biHhi7_)At?Pw>gJ9T{%*a{ua5O)&jwjIB zfc3y3OGQw25DhSw9>-Y_p?^D|+AQ5`@;b9tgG1v9OgL__-PpVkA&h8I2aJY}RWF47 zO=jxnyhw^a7RSQD1QhEwOYlns5K~1dP`7EPmV6?BKyKB@Se+qsDF+5Fq^FSu6{$vm z*?L#u&f}GUz>}XH?D-4!*I2I#1F-4+AiqJvUdBla3?}cZQWp!*HuYj)Qx*%}rC8O$ zc_^Lg4v1&jQSEr_=MUQ1xzmOQ6F1oWQ{_v6V(E$Xa9IZY#fn4WaOy|pTB)E_3+)eUTAaLF9vb=53F26_ zHQdPK`~QKm0tSNsyId*X<7pOU9Bt zze2AdJH;8CmPpW=cul8eGq}8{vwqe8EdVaKHIzpSQ937Hx zXuW|@%xki?W~0x|vsfSY37ft}f0fStF8Ng-t1DOf_4AI3Wr64+9pTeQmu9&Iqsnpb z-5cvr-`Ms}IWo&f(p<@?&V{PxqUgz42{Q7q>ciEZk^G}0BeCaHgLg+ocFgdZo2I+m z77g6G|FWW$mdHEZw=O`A%?J)#nz2aDRJVQA z7x!Qu%@Ep0HZ0B|5mH1H5GMfT%5$YTj$NEVG_dBus{OwE9{jz#?>_)5Y6uVZ&K2OR z<=$1TIQ^{85#~h=ZYpTaG0$M;G}te`bX_KZ_U`%K44xx#<0#}~Ky_~ms+?{PQpD9_ z)tF5hV3hY*IjU^l$4Jf9P%BM%W9Dg{l%W zU3SJ?##=Cffw!g*F2j|D!Ik$vaUbXt{ohUPK0mCSg~AcF%$Guao!cV@S8f^nNu2*m zUK~=3Rrye(+dV!vs~vW2Y(Y7<-XSR`ym0osXjrwPU=KSRa|KpD_aXa_1w64!sLHCv zlMJH`bE#_RF{zt_6ssVwd?0D2n#O_1QyH?nPa$z4|0>Tbi|TJI@{NpzuX+SvO<5 zx0?oH53_vSggCWu`1f}AHvd{&&RER9Mm+x;S=4uv`|%QOoThelS@tmYQQwNqpS!zS zKa2z4{4hzNo95*qc>hY?IhlUwaIRpN*27c9EM~;Hj1nXk#qSMBP82_u^_`s7@?#vW zdJWpNs^i&7s0~j``J$OCN2?zHR$1RepiJ3_xZ4v40_T4@gCWby8V<=lU#%@y>3-0`C)nzf-rRoaX0 zTXfWu4xK3y>GKsoPyW7=G6qoSf1rd;uJ3o{@~!<4r@=hyhx`ulgtnW9TlwLs{)X3T$ zCzRbYJoLV@`V}b&r== zhBepp`xOl+;p)yiH$SEW^G(UgGc9s6H)Z!ck7MJ9ERU-xCq`H($;)>6S6l8!iAM_5 ziZWomva;7;XF)HXJVVrh3rQP`c<%~zwPvdaKPa})+zqYyYlbbyD0Q0O68OACTTB*G zF^rTWhDa8|*3E&8(6G{;Q?h4D8p0IQOJmYr-;(mZ82$BSk-v(yRpN`D$eN*T6FsrG zOx}fi0`KKV!3!$OsWY~HLvu*G>>5m)dT7@-@BMfC$NkgG(KI((O$mA=Kst9B846j` zS?QThOZmn9e3kbtO7N_m&gzFhqWs+>H%S7+8#nH63YLw=|AD^mbG1Ly7^)#={qa&W zdU3s!uB_**qWmMwH&jqcfLGB)M~eCTW#&Su0Y20J#m^T*;4qpGW>WP56a#~UEvU1G zvViU~P#xMeK1mq1V4QC$ldob5cj)+N&bdV`Ne4hcNyf#!<1rP7j!N0<^+8VD)Xt($q%g1Qkv>d=$2xoDzj#}Nt z(7m_k&O1nreYj4ZE3^9hK`<)ocO63ezGLJ1589=W-8;2yG_J~L#1P<$)2n+)K9m$x-ODthtWH<^KtsLzhE&g)e$_^b5y zB9Y2T!Qvyn#WL)%Yst_1w`ZU=8aBJxaizXaw<6wt533O~TZ-nD_z!fv*Q|!<=LsI^ z=@i)6h>H3Um|>sN_6Jq2@f^5xP42-3ba1lU&0j1ucXqBvKim~MNl&;&hebE1cm(gM z%6Qoa4hUKesLGRt{3C07LyGS|1-5_WIA60Ib=b~yg7aRWp3!)@z-^DbL8oJrGn>C; zjrvWITBM1zBYCN-=%N^u?}p@7Kt|q|mgzG?vcjRUFk?L98W2F!Wj1ogwadPCUA@=# z*P>Z+WmqLzsN3h?i(hkUlp`B2x4CNTh8^DLktMxHe^b#N&ujrJun5WYJKW9%D+c&z z*RFoexV?Mh<7Xdhr+O{Povmu#hwYNTDw^zFJ^wr%Cja1y+U@`Dx`CWb^y66Lf0URU z{&VEkYdojLF=rKP>hsdM@*K9Yj~r^xZY@QonZ7W1@R0F^e^hSSnZ(4y(&I#eb}8|B z?yCzL3)S1Rmte1V589IudtHJy>dOpR-7W9QfH?0%jezrghhXZtk;O0#<8 z=8s|p;Q*@wn5#`?*#bpn$X@2K{?<)lh-H$_cE(mp)?Qe_h zCuyJkdpzIOa%-;6eAV2v#eWdMq8)D!Kh*!pZIWLvVW`zprzJ>wV>vCw&>Is-Kkl}a zcW^35N2_|{8dCwaX4*__Ny{cDuBqjRoV2e~e%_`a>o8~Z!fd0gt1EVqFN-{BEqIn{ z+bNxtNc}#F>n81cSL)tcq{mSr94?<4S)}j~g>FmUC_V2s?zW(qCIml1TG%Uy7`(PG z5QNe`b2y_OR(yldOqIvdRkHSgX_x$UJER5u+xZ(=Yv5}xqP^V(dgIIbBQhbHj>Z3GhLA8g8XUsB_K@+XzC1kIhp zROakcznd=8iW_?SY~IP%>r3E^nMdC*NCB?7M6%tj_6Q}=$WI#Rrx3mTb__!Cut9jX?W%hF%h;THax{I-^6>2^ z=TZ36#cwr~sW=7kO-Hebge{Aq@_^t? z2jJc*3)5*27EH;?4vGvhlR!cbIc-6s2|8o&Al6{5mZ}hSSW}~UlbN4*EUwb;*SW!# z!)#_-0wHi`ZR*kxz5nhX4Bb;0ncWxr(j^&qQ1P(~gW>WWm-P)V&pVR0PlqLQR>Dfunen7=@^Z0>tdX0q6B z5f*hJ0jxBjTxK+<1HoF&AkVtc7j%q)nX1T2mXRf6M46h@hyY0K&jqnW0I{s|5~NTR z3H$o1%c8q#9nSsIkU>4Z?*0VLgS$Bahj{jkSH}lc0rpolkj=CoW)1(wzE6Aelw_1} z;X}kIeU8fZEaR7J^V%NLUN$lxI?>+vRMYsGD9UY`sdxPsWHmlx=xz!LGk*%*Y)P4P zaebBoVW6#U5vb$*f^P6k%>jtFM^8S7n<IdJO>@8D*(Hj0s@7Y!SQ(+M+iGNG z4U!R0{Tu^lmPv(1G^FfwX@q}nd7FBX&$8S3+1zZUZrPvH9^Ng!HxQZ$htO2hSk%)k z#o<9RZ1t)Z_e1Nf;-@|`n%)!yPsnEYwTu%CtZ0lSDP`ifL9whPbUycYhi>a|BviWrX<*HP9Bgj|1{nu7U*lM(buOoKgB=9qmDw|4yric&CeHjrti+@F_hI; zL~ZHLLg|8y4R4QM=7#PgLDIs0T#k#)IUd3S9|W!1G}yWy{_{C2z;*h;eUy~kMH@i@ z0hm+bddZK0h))L74Lj$_Z6_~9y9BN5QZMSO@K(Eg3%3rpTc3Sl^~eoE(|Kg8onrqp zoaXL$=o7N1YO;#zDSx&sYyXOGTg0=2YLUjZQ|H;LTaw|R)!7lpc4wg0J=Gosd2)?$ z1=ZhSl|jVxo~Nh{lj`-R8|hwx>CP(XYVDH64N{lyBQ~Uk*NH`LVb*3Bsf4CV)7>a%y#>_K0`(Trxh|HsjJ2SWWne*DfEB_nl& zY{?xNXP((fX69KXAtYoSvbUrz&K{X(oU=!nA&Nu8IzqOy*;>WcbgF|NVe1ysz)ENU&S;$O5NxPgt2$CzQ}-hSb% zFu33ikZ*q}n@?*{vdwA__1lDI(RBJPjbVy?1YiNjM0R&ps zC`23(u#pR}cUn}*D49}56*C1&UO%U8qoSB_t0_s~>mR*r2um7PRGVsP+B6<`Sgz^h zi{b`G{<``|FC$R z3urLFs4KBMh5)*=1?#-!i((QZo{0&)c)n>FXy@e?57eD2o1qOQqY=O%4TTvcs0i$r z1(0ibu%P!XV_$BHWdK!`Kshiz1wy*li>z7+4=Rrdws-_Obf%hm$}1QtmA%y=zrl;W z=R4q7%1(-zF{fRcDq+~}(^uRhX{Iw^AI&0ASJ$wzCgE~VKVXOtR z+~pEzvEB@TDw)TiUoNpL(DXx~FO~=zEdX6`#9qXbU^!qVH2_+`XhpWz0gLP1ipS@! z6nDm3^pW;~?2jK}zdoRsH51=UHtKSX17Mfll#1f9bt4~TQ+sj!w!jJ_X>olo>w#2q zqwe=w12xyaDAWB4;NsRB{({Uw#lhd=Ze%}I(-K53y2h!ArCffoyqemA4-Pg_qGHM2 zOed!Ka0E$m4*pzlTSe`Ed|~^p)wJjArggF6SmR)TZz7lb!-dAl4+_wSmKsGxIm^NR zxag!kl9Yxn1I9dlGLipNHh0!@x^{Wp_AgKF@fU6g2ArL(eiBmwldWCL}n9~#3jm6B#+G0bnR zVuI)guHqjtuK^}vj5ceqG(d&Sm&GdYy8fi3s^_^}x#k6p^4}-$!hyTpt9)sG8z>;y z$Q0$oKkj94V?hq6oM+$@^*vHV7*)uZU3E4MnfzV)2%ONC3KqcV30uu%P#v8l@^AXSdb)MIyoS`8H9l#a$p>gA)~>A@EJ%v z1_kJURm?sxv7{ZxJ-)yT$FroZEc+Gj7iZnNNfU2E??RJyJ_lR9+yTfySqxP`k#Kqy z)9(_rr=@_9lWEuraMnnl&cazuRM3E>k=+!01OcJ#14`pZ&nxctQVRO?pWLR2Zj>%6K5G^D+`Iig^LI|R6v`D7sC0s*l z@R?m^U;|C}0+5=HlGE67xs?^@AlF=JV(IE}4a8br0H~_Ehswe`BzePi2NAlmD0=4G z5cPdJ-VpMz%<~O$&BI+v8IkZPuKIs7Xtwa-K6T|65&j4}$um#nt`p>xO#CemR6?oX zKY`~u=d#wvzDot)7R3R=ilNyt_fhWrl6ryodg!!Ek9HPkHRtDooR+HTN4YXmco8=7 z3{G=Bl&I>2`@ELhg1f0DS=bp12i?UMS5Z&Lvms?D%J*)$zBzox2=zU9(^ zLT=>2R5D|1o<5*|c%+RnwmJ@?q+M<)56zn)fRvFhA*rM*+O>H^g5b=X6)a9TS`UBW zALd?4pNG+n{$8=0_N+8f7e2+!66vO7##WrS#BMqS%7G}v>mg`J?^hRpPH16tK`?Ek zPn+wc;GJrn)H#ClRHTUnt->-B_HLg5PD}ntT4+a^mS8hCC{Vx`3+65Fqsfk;1%`$9 zcWf9Ro78iMuykV`_aF{frvitf0+C$(KeCfgo5X}v%wH`3F6%~hg-y!G<;AFr6CRy$1U^JDg zAEpNT^s50h0!%s!nxP}Q9kl9WBNObRjhy?X+!tDChY|4-oPAJ7etlX=760N6!69qq zVSv`I*#{v=sg=9HjAqb&gum7{&gos)f_~mWqCJyy61nAnjUdOVym++JKGX(6A2meA z1)IH8HpSRHks{|s>FsEdFhnvSy~*4JASc&Y?0LvB0|L<2PvtjQ;C+p9K5z!>05Rb@ z6?B-Z9=|>-O;YbNut4owGUOVRHKJ%n0#Q~7Ba-OtsQjGB!XO7u?Q^pWR(cI4Nrt)f zt)V_`>PXWm)*8WepfR=bB8U*vdERo}PXs7)!kX%^HUpG^82~*c&|DQTJ1R|%(y<1y z-pq;T4ydE*g5?Km(w;qoyL0vPirw#p6KJ z1+V&IMSBVX@Vb>KQ8VzCrEGr$Ns&`^SP+OeofLUteO!cf7^p;UK?Mu!xf4om@VRz# z0W#N1$*~6nDi*^j7Z*d4>oTyXB<=OO@HG@wtT3N;>Z@SUN~>v7&>Ah$I>L~LX#{&m zqi7KWjAoFff9?UkVu8~0V8(E5xUWHmW(*Ea#5E$IIlkl3{U4@*N~ag|XyAhN(nU`%ngW}kZ6e;_l18v*z{`omcx&@jDn0MQo*W2QgJHIc=o zZ8!L6f$`r#uE)HwvX=l@wh|u1t!$zJP>ly@Ck=kXXX&*>RCpXB>z?AY6tQ-04D?Z# z4uF5A{6GTdCW;I&21bUUt%G5JVgge4Vl@qy=2+^|1@v&3H|}ldxSP;{lyg1-19Ng7 zei)L-3v{#sNc4GMnCH`Jq7s2AYXB+++TcgQ1~Ak1aS}j`MhsAhfzsWLej0OxAnKAch6SC<~(SzkIfi=%biEkSkc-NV`iBY?^VXblMj`Wl8z7=1bg z8cHsUvRQZozp=hvq|<+(gK}MdeN8G!YLoy{>{NsIae>g7T+`v0sVLkDMz_;%PuJK0 zb8kMIR?-StEQXZJ;u?^$bIXYY;(gN1JA0^4MGMIN)g0jUBp9gl33Yk7qxl%fx!PKa z5O%9ANYbtf+I~&$V>cG9*9H9H0g7MV0X{-Zy`y}_fvuNL0>da$?v_<0 zf)v$(qw~!d*^7G_D&p=b|EwoIDyifCsl8QC!Ie(eFths^fFYNEy{X{O=+X3O z`_BegbN#{J_7!)dT^eG)r;Si?*>wX7kMSDQ!_DQLL`t+oxhr zMZJPI-2EgvWtm^Kj|X5??-d<+l4c23X}HUL&tM}D`+uSBp73-mMt}8sKTXxhH&ou~ z3sy+HoUnX#ApY^QPmOtw55^yD6C>cpsC14ugoj3DZsxSpC&g$-OEZtP%e}XkkGGI($xZfp%-7%9?n1Ns&LV!sjr{cXXJzzTN2h55sV?AV z1?OTy=jhEDhF$V&&+U@m?xPMYM^tNeOod>)XY27$2a;L)xAZLvo2K=lHRGPhSlfAJ z#21{%g#t0$7~`r4?u{4gj%VG#qf0^I*3@IvhJ_R0v?DTifzDxUuz<(Ecf}-IY3)rL zyC!oPqe|EkYJQSHs_9=V62E3RGKC_pCp@W2RBf|b;rsD)tDqfxjAyJCS@e=rPb+tO z&>5`v*n02bg_nDp?9avMnL(&J0h=XcxeszpoH}fJL8Pub>e#$Uh}s7MZJ!|C&B#5QWL;1^AgFne&8zm}a?b6Bxq;OyV32>6A@5qs>Mu1p_ZNzy zh1LA5B+pygtAFm-8XH(hvCIs~Q9Y8fsK#EZYhQgWE93RmmvY zTlk6!2k864MAlrg_?UIx;QHeHm=&-vRr?ZXfI98%>Lb41!O#`Vmt@giD4b~e=+_O?n#o}Spm?#8 z&wXT9vcdR%9+vGDyq`sRIZNwZX2C1=bfv@1z6>=a2QJ9(>(EWkC*sRXUK|*K$`@W_ zy`PH|rwdS8??AHq_TOo<+F=pP{g9rQYc%0gv2~_wRq#vwc57>daQESm_wtfA&|GKL zarLM!l9{Q~GAhYlkWYNYvA4=BqE4PwH?{e>yZyebzI9K2xA~=Q{TllX>-m@a(zhB^ z>>BS~Lw6$j@w9PozR>o>Rl00XlJ_!+Ik90octKWq+?IbRK8Co=Wc>8K#@!!mM zVbR0>>lg#6MLTA3Ky&qERXH(hHBy-EXo%#)3T#%LHzwEei0rDC>Q{EZs!qJm`SxO+ z^}Fm{M^e7fqcX$THvz(pmxxD--6>TQKIb2n_*%JuxBI0%`p)XU6_H`EI|C;;eowD`fL#CSUv~q-?IJ&NF)J8a4Z1GWmqcz|MQ;jt)gU zE_ExM@BKXY?nTb>1I~lQ`nr!{?^@P7Dy~PceLQ%#yHcuSxNMnGSUN9JpNY;4X*sRz z6&E9sRl5z^>YD2Q4K}~|o}9bV*;}q#@hH_(sglhtSgX3VvFXLz<}3FjtP^+gy6pM& z&rWau6FfM!>ykmN9Zt z-)Vl!xTf$t_|}4H0Bpqm^N8In($(4%)nohS&|#X=3u}bC-U+|=OYPTIHjE#Wm@;%#xHX5Y zEq=zYH6re_MUB6>!1@)FZ6FnFf*257s+IeCEvbd7S8pB9a>nRsygLk`NekCv0(&CM zLx;5)&pu~Ywr~i&Ky|%ccl|7)f!oK1+XsV9GlUF3=fE$?Jv0ld^*PU@M29(=C(n4^ z?=p#)tG$?w{uX0fyqiC2*_Qv08F9zmwDoWoT&pShPYC&*b+N$uS2%1$E^m0ir){Ec z?bu3CF|oFhdHjU#ZC)Zc@vFGZx5e!@PT@Z(m+-%z3*=ff?}aB4fn{_YRdvD$tdV`{ z6pG0N0`1yYjsA+Z0`0%U95t=3EPc*r@0}#|bdNc$CVR9$q#!<;9wJqieX;fD>5I2n z^$ruXO??G^U0jpvaW>+@~nh#3ldl2Av2EVcA zUmm2Gx)`RGA|QR8$Mjl^yo9E599GKT>mQ_xKNe)&x`#_F7M)a;caWSeT~IlHCV8Fz z`cZ*+gy^J4&XGnRdsX&O%$eA{90! zJ$vwucsAO!G|7zv!MX$&7f-V^SwU+?tSyRWFqBL4Bbm}!%e z6Y%^PRja(~oKUhpe_2(9x9VR=!>sHm_TcuEx%0gy}y3X$74t4wFDt_sJ>G1;WK_p!X^FP*#_qU zqI0|xc&=pu_hJ6xn=+|a@~(#Cgww3P83;i^ksP6D|)l=KaB5W|bO%Uq7U+ci#^JhvJr1fRv5efUc zK_@{uUA{;4*-DBL=22qYeM92+*Po``=6Z_b#3icg%Xlx;%=hHnY-q|lq-m+FMM%=r zpO&^U>oI+}br+XadRa;P!sRV_yBn~Z1r1xs(oz((pFh$HSuPZom?W!zEojR1GnaX2 zj2vj|n#b%$3IosBUdh)p!ab4daYZU6=1z1nE|?sy9Jk!eO zkFw*9h*t_7CN2uObsL%kzc9G550NWqZ54B~J8S`KyG2T`mi-86J80N1+VM+VqT$+F z!HKc*)e3#E$9ztjiNU|$DA1s)e#{>!FByy;Tr6$pb6Dzh+poJa-p3-T%uDL+pzuD# zG{y8Az1gqWTzuMc$+vPgB)xpQ-O)?Zab)opL#PGAyFJMo_Ewx?EkV`MU^eiXp6N0y zxlaQ-@L^A~xgsg!^08aHlO;CL?p}kI@{6vP<<%Sv<&jX=B{c=!E#)M!dolvMtJM`e zzpQ|mTa>1ezF_hE`f^g`_m0h5bHFp(mx+y2h`%RzJeC-1A9F5lmiay6Fac!Qy62Yr z(A9gJn$BYxap+%P&135fG_pJm?{!Z}i!(C#PBMPU=~2!o3hhu!H7qHjKJw5@my*!_Z3?&MRF#RMkoZJieuG0WAn{%N|RG0zz6i zIN0LU_`)=*)1@Qz`+uO|;6(eHsC4B54f;_gt=Fxs$b zH`}w&p;uYzH=(6ckK(C`TC8+UoBhSY$^YT)g4Nx>*^+#s)Ufds69~T-z-|L-PhIC?g>|uqb=8xyXAGYs+sgDk-^I{9986DX@t$G!J z0dYayE-ALC{P|4SW?{6ri+9F4M~3`UHP=M3&w)S~V z`iq=+2K-lV(6mWILP7^g>@rXOn1gI46nq1*5|GcVtzT=VOa2&c8fAE2btvzH3Am-- zyO^`s(Gd&Lx_U;$4u1F{c;~KtJ@9V!E=8<1Blt%^J5F^+m2u^EW36adU8xHC(xuGM zL8I%9Ah#K}`9GfmET0yX&E^unSdWh*rt1I?_;z`Vdl%mrcu12tqwA|QD0XHY+!KIn ztP$$7e&yqT6~)ehJS{6vE;4dm_U)p)6}+Pm31g3SN2s_pt?Odf z-dgxa*~IQ(i(UmO1OWutcjT}La}_~NmXK@^b#?sK7Q>D%O>547plj2>^YczDLH#q~ z&1dlfS#;|kR)TBQ6iXuCFcw2a@p!8X|KO~%6BB-D84hhydGetk1Q?!V^4)sCn)#SP zG|HTB^wC)V+E<`HFx23p?3Ojb)Lld8JQrB}{d=(AbYLsq9_R4=C8N^*+51rOJ z;`bjYRUo~>_b7YS3NhK;s-s`;wfIK5D5PoaquW*{H%D65LLHE~KEKsCpd<7YPPH~U zau|oj%zW$LH1B)0EqUX2m1A!RIqc1YkB(Qr#LDBjM~w-SG7YFJjRn4x2SoRW+B(C) zvww`^%j&FN8@tN9tF@m%U&B8rIOT(9Z6)(){avc{_}ta{Mh%gkn1JwSHzS~P$V*T8 zzpBxhvpwT3iTtiF9BgUt_uh?LA?+oSQ#Qm>@$5#XO!%+CTTffrZ`pF-6q#kCRaP5I zT1WQH*+4ahAP0$$tz`-~!(KhpX1(;YSM_v5*Ea9 zY!KLuCpW(hP?&0bPU&B;u@>mF7Z+(%3*Yt9Xp*I(cxCRdTU$FnBE*^$^!V$EX1cfS zk>3H&`JhnM)7A^Xq})STr_OL&0|S7u%Qmm2us6}Nl5_aucD6q~YrSBnzb?ARlIO^& zd)f1_O1wJ2q~o!da|`nZiaXim#4s8nKs%aaM)vp^*d;a0_^olck!w0^Kj#{`!C`m* za^BHA7F0CV(NmpOv^mW_y%BKBV|36U#NwF>(&4S1X}skbLc3?#ksKo{MY>FS?g90Y zG@-oP^4nAiV5#h4A93rw(Tr1Aw&bA1F@{@%KJp11TYM^fslDJzFN|K|VP&SR%L z1QmaHNBun<#_oP-%i?&h(QU@WW3$ZFrA82M5ENuAw}czZ#pat_I8_Er3ah$^3%4!b8qv%>Fe^sOQ_Hw5Vd0iS?s^lrjNOYXYSQzR!sZ=_r)4S zBa872oQKebu2BX+^SWQOpbBEqQi&Rn=D|#wCb<|~)TzFCwhMntiy?uQ&A|I_yN=yd z$xpLWid5O+$uD_-UH*ne>B?bmmD3jh;ko6!kwl*y7}=$2+7dQZaUCLBE%_@W&c`Rj zIZ45-jbD=tSSd>+^-j=#<_S8fx(_|*QXSd39Hhn60Ndjn(8s^Ey+n z8#q$hr6NA%L8~U46y!7S}|FTojhiGWxo0QZ{_Yw-rOSpT}`57T`awJgGu&Y8@bRr zK!Ze^l8S@-lI|Ki;{iUM`#TuRda?4y4q01sb-f-{%bVB%wKxHO>XuHxD!*f0X0UN|7>w^_v}?Sp z0osu!*Eic0I9}8EPQ@or#XH~{E=VJE*<3dCb%JR=FFc20v=RFBz=Nq5&iYtmKxIW3 z3K~K6a}pgHrc$97WU)$p1Xvdj`tTE;{$N8Np^uo#2AHX;roAwH80>N@*o6}k1(4uv zWyho54DabBj^i493kY<J2Y-NCuJUegW6@ zLB*9JCd!n^F*^cHl(ya>UV|hF1L5HQ*|aZ;0RuFYMT>@s$&YY|XF=#fuf~i=v8*PI z){_+T(`smbyFkd9`D4QoVlJ9TJNm3VCfeF`iUi2I1P@p*_k7Bm#~0yyv%wb=DF6kX$Tpyu>x%+0G~NVQt@Gh&)1cMVZ2xduI0Hm3(#}yg3^u3*`#dbo zx6hYG%uky+lml%~mQ2s3;r2}grHyIwns-YU7z2<{&|F%(=>$Ra`unLAFp%xox(q52 z29?b~oP8Zg3^18@;Wct`yb5gx=;GvT@c*hN(n=*=rP;PFmv`x9Tub<7(AA2-oRaRZ z90mv5#47vY9sV4laSd5Sw%@}vzGLWwS-7@KZ?MTt9;{6O072EKN8)Lx;5szf%6|ai zdQ>b|F`m#%M+4q4>gr{dc2wWr&NTsmDQr_Y@$u*r;Ox&pkN}07x2yqR*Lq`GFxH-3 zlyd+iZ~)y!Qr=Fb`SZePRWU|f1G0dm)ptDVofcQ+_)H_(R$A=5tlQE@Qnb5(|3A=j z5p$k`NND5UZq#B9I2R(cw{K==8X63+kzOIrNwsO}xAg#dA@9x0O0E&NB*iJdUhyZP zwS|8gtKz?kh%wduZlD1oaa`B*;W_+{{0Lypy3;6{YRxk6m>f4Tg!@qxQf?m{4)7?t^rC?)WRNhfD5p1w*l$Wtr^6ld%|sATr6!Xz zzZ)C5ip1B7lZz}LbxPyu!h;~$S_zReu6RW^AEO1TP?XT4l3JR=nZoEFWhGBV5ZLOK z7(x1|E3%RblNNu zxItdzOaOam1J-~vf&|sdRX{KjqZ;tn@J@LIi_odVLqNWIfaa9PA!?L&{i9 zj(5x-b6UgN)arw=D4{HR^|aRhQk)BG(l*T>9pn;$mem@83XPcrQhPKLAH0tdNr~LQ zyu45J0Ybz#1)p(5EM!>Y6aK`koJauCdc!t#jiI?f58|<)wktg=IhQ36Z_k(Z@+KUB zOZVlcISSK90iJ0?u7TS``kZ}y1`nWQ>D5xh6XyFG70+poJt7X!02d zg1lwi*Yh#@4J~IItwS_5%k{Iyjhts?hxlE%!u^4Evk>!k?zp^ZEmIm?F8V10O(uRd zfmjW>=4ng-yBdm}4ogN};~CbV&!uCihFtY(1fV0pBalXm#!;yk9>`n1z+^hwNGGJ$ zKvxbL5LF_9dVy+2Iu&KZ9bgol-Yc7YgnoWVBvW^$vX~*{c*dkX0|0*#*@a(fqorz8d|^{JXDz&ywB*`6Vcrd@ak96YSe zED%}@TphxA&*3FZI2glk=vKr*nW$+A>(^{;_mST*KX(n zj7FvfS!(Z0=o%2U1%UCf!C<3(DBhpIvxjogqH3u?9UJM`?45Bc-2SjB^)x2eVr+m> zgU10rk^!rcd~X~V24h8Wk))t`Fi19i59h|czrm)1+H^dtQLhmBNP;RiJzU2K7z97w zCxT~20OJOL9)P*_xuL?~VfA`PCaA4L{PWe!766+9;_)MTEBlooc}$~FTf8krnd)hb zmH0Z-FNga@*kq7!9VMX!7}AFWU%88Qz!}ZQ8-8bW7evI!X~ko-k>v=ik*v{@CWEb( zUNa{pjp?u#ZthvMa1*SwPv9)x-i51hOVR+fG`SISD)V1gX@0C}46rD3&Wn#{bdAJJ z;bcj?<=U{8R_#3vUKr4yc{-j>DvM(va8fcowP=?yTHPjxM0)^S&OcjHv;gBvyr^ zWds1$_fU{z6!Z!w5fsdgQiFR3TimoDfu7>h@XsLxu(w({s#nXz1_cNN+7AhRa%YSe zL9IkTXp4XeVhZ@7KkLXTo7sGku<~WdHDWYS?j|>7G~i?fC6n)LO~U4>%?Zb{CMMLQ~Q|boKt4PN;gE`0w&tceL1YQb`(&J>}_0q zDAdY7r9yp1d0AfhMdD-H%W>H*^&dT&MPI_CrsabYd7}HO-EWu*xi`dx1TRHd(XuVb zPkVZ+?>v6clHSxSS(NnY$!Yr6{Pc9ZA#?59wS=vCzhEo9^7QN(p_^m4x_y;5ocT}K zj&b2sdHl3;#N13p)?okXsfAWc^rhIQcZox(2`lb*5h2f+yK%F&-b zUfyuuwplaFak0fVLa!FDs<?Y6=1*0EA|7f~R&>bE?I;>x=FLxI`q_x}OuJHS&D}2@Muey8nh!w#=^ka_4$4vVE z%*t$#<4+y>r{j{U6Oi-!8)lz^0@v$Yld9Xpaystr{(R8V(iwq>Gc^_Yaj^GY`j}%W z(%8lXvh7}dYxnQ_pb3UloNIYVSV)ujjZ--wzqdvbmjae9)7bFtFqbh3Z%hx z#tdT9dFBPr-?mdQ)?aEjKJ@r}rwwZ5^zOmKLX_gY{4nv9y~oUMLv^&mH1Fl)jN?m=A zT~H=DMWH3@E$cTvWYteei9*50*MHX0J!*VE<`w=hYDEh-#+7?BH83Od@2in*2|=L` zlf`4tueqd$w)9ipH>fFJXnfN@G|<>KQP?A`2p$CnQl$D}5BJY`(Rw<*kJLVhW(1VZ z6VO&-KA)>^Ra`6h8i`a>7me#}*7Vo4SlTVixGI(K#B@w3yWXuo^ojSzc^Bfy!pA)D z>z(SD21d}%Jfk8XYa==(aO`oMyxUywe;`wv`+_MQkk9iM4=(*ZHLBAW#p78Ky4zAB zY(IOQ)FZ9Dip~_q4}#KWV`!Z}CXho#iq?l;Q9Z`k&YY|aujoMS#D*EJE$+~`1k*4l zU%bhCA4}CNioI(CD^KPwAE(8v!ph};n-53bo^ZcsfZ zqjd4j65ZF~M&J!V7*t8|5Y~uq?CHj=<0lG?DT&adgoLKo?)Ct6QsM#?#rHa-=E252 z!S*ysW#{&PJH5e!Wdk0I>n!6--#zIp?O3f{zc+^qx1HL2RYC`r=k#2=_U!OB%g?R& z-6}eewyMaDluQ4C*xl$%d`yk`^^?ymJXom0pH4jg^4{nbYu)`ZIMfiB4YW|5F@0o0 zYEOnGSfU;7{3NH)-O0qoN|~iHF#10b>F+;-r^(y}WFq&@OTR}=*1Tmcd42QK19v`f zlvl~l1?E#7qJn<+(Z7=PQ5D{gjx%f@o<=+J5 z-lD9|;OykNnDUEPS9`wd97eqK+iSxo0jp2$X>$%>o{LOf^)iYs`X4EOPL$&x$Gbmz zOE)l9l3Vf*s0JUFUcCWw$HS`1Yr20@C1d#V4cj%=X20~wCo&DKa;$g6y6FX#Ogs0^ zG1aMsjQcdmJZTHI>e^%I2@AK{WeoS9HR8W*J9g`JhlLLNt!c+67VMO+?WD=cr=H3t z{>$0g{4?y__PMvA9Iqcww*}l$vB)zhtV_Ae|2eR%*bbgZ(2{LWYS)!k$Q|o>I<(Q{ zK#wR`v!th}o0@J-4&Yk7*35+S2*%d?j&*_;23do1u0x+zYx2#VyV54~2I1+})T1+n zS4A&y*lOn-5~VyTR9%RKPwvtJMU`_(nL{pqu}5%8ig76CfI?fJiEHbLQc>U5v6yxX-LO*sLv&kv!VV!9W^g}QlITu>ef+gK5kDigZe|%~k-wq#wL@*{4vwN6* zp1XeCk!Dq6>_GnT)$vuCkRh(4*MD63C#ySrr#H}~#k@;Kz$YX6&rlNZz)FJuel{mC zenZ-2e9nLu!ltWw{gPnI9{cM3Kh3IUGCgy7^)W=hpV%sI%wvW(($tTL^e)4aJStSeU=44N9^ZjC{^D zU>d>x>||Vc_n`CVV}8;o08u%5)@{vyVpJ}jZ=#Yd8R{sj#Tys11#xopm4bqeMn9z( zDjvqY^5X6DeklCAnqwjqQ5fS|+9L`G<$OOp~OfD)eR8}RXDKZ?B2uo?00PDnno(()tosNBTE&dalJ^?qHf$PAYoZ_MQQ$NwHd zI;V)K*j)gcsZ>6Z4l!cU8ssTB?N>U}&MU`MjbAGg&1|*gE?!Od{lgtU7`vVxRlbwxG^uW8Dz^Mb zzq~oxb+Bc_E~oR=$-e#zwgGK*%P&;Z-uuWQ{dX--mo1odk}|+r_n-6K?=NePoa_@y zV#rxlbtpv%3FW3zjYB!@*s zRdOwoVZ*kD_ms%2RW79h?ELF?`x(Ap>Jn;YNOka5v22ce+VZfNDS||9T6c~Qv*i-* z2v~O1rE^2fX7*1!!TRpE_v$5d~y9e)IHx+r7&D*@5h^?YWne#a0d;D-@f`iMRGk5z`-;r8YU9f;* zmmC4A>e;E|vI*Ug{L0tA@^3L-F#F&iN+8WC^u+a=UqhNl%E zY#g!5QI9?vnRWQ9voyUQJKz8isdstleB57E+~X5}_}RN-uBOR0l zzZS(#6kS+==2~&BXmabrz!w|eX8DqlKu3)i4e@+tUF>O_6g7K$#h+2s`TtQa zxSzCL%DdwwKXKZNe=lQq&1ME5hPx^dbhqggBvkCiIXlKa-mz>y*-jwR--9xXHadJO z4~(<)+P{BRb{-4z{8a49eK(|L_R)~aloiEaRty0IyHox+ zKO2?BO_a33oX9xK*mvnpW4H0f-84k_?|+Y`gHv2bkLrDwHxy2X+zJmp0`A*;+VvX& z2k`F`|M*AJ!g3kh`civ7G!+>r8_G}1~tZRZ0M7K=|zmQ9);;(d-&bQx}gfck-%U)i^J0W-HF*gs(YbfWVFIGPUDd@IE zcGY-30eXTku-|&hj8vv|@eYRMyivccdRU!H(*px!uK?yyDclpD7g#QQT?v2jEw?-! zv#Ch?wzk`68|O#WFAcnt3eziKxT7vOBZpHca1elF-h{kUGiOmt)$N?mwM?|Ish^<3&d5 zTAzLc0OVx(3L4;03}9QC=lfhc?YgINZQyUkez?;kZH|(zIh7a`U1LXei&TRXIkZ)n zYe+xC={VAsPJ6QsGagBA&yYC^?caTf?1fjh;xGfq9bta|$eZr`xh(1C?=ohr=u1OO z9E!F0`^b?{ot9+6 zn~t}*wTDXg)E%(ou+?ZaZSInB%`Z0ATgUpdVn2w{D>ApH-YoNZyM6yB`L6jww!4s} z_0XSo=qo$v^O%=w^xtD(es2G&Q75=K}L*4mE~GtNZPm<Z{{ME zy^e_cu`{Q>Q}s2W){*J;k*Sko8UL;&dZ(N``qx`KGvo5X%L4sv(u6^ACGd@+$9*ooTt$Ic*t?w`Uzmdj0j`J@7U^tLpq@5x1E z(R{Z_;@mG84&g?d<^sLZ07b@cC@xd2s$XbmdOW6i!^-M2Mrud$=B%kP#XrybI_Js0 zfQ4?=^XdKBTOX~5>2nhaE?-UwO#go5h`y@Hb#IJYl@FF;*0^-BR#HaC(elQJ5qI_H z!rs-O9_)nOSP7}y{ncT$$S$?VAXxbl<>C8;bgn<0DtS-P1_e^;7IC@p&&I9g zi#&>|`}sf6sr44TNVl|4d6mgHry&N zEICQnw^qg}lOfr3Omwsk37>+|m}~`HbP2=G64rDS+C7z* zJXO;rm&^UQJaEHcD%gBqOxPRVO`nU7;-cynw)D{yi?TnLcoeJV{s0H3!y;#7TsFF@ zF{Mp&>EH%?4Ay1|RyL$z4B>sIuX2S>_`x5uL0P#bc*2I|9FPBo#RC@&Oe8Kkjmu81}z;|l?!GeP<}K@Kd&Z=I$fh6h&TA!hYf5>9_hQwOZRtQ)EXEd-lS zO6uB8rQR0NX&W|Eyh>7G%DgRcS8v^A5Lr56&yP(2$ee3(j%u)anwVs)Z8QNlJ0005 zHA&#_wxlyW8*3Z%wYox@JfAU3NW%id?s^l2pmIx7a-ztm(nw$QH4$3plx*lWzMNps zYdCF4m_;#oxy5xh>IR;e>+Dy96uBSGfKB&{h2GO>=8m??v$>mf|CqGm|HL!O$_wMV zt)K2N1f>zAO+lEwkT2%QdPvLI;I3Mqs+l6z3tqzB0ad<#7+_sA(yT9RU+4L0HP;wp zAhuL3E0K#9TJFN_SLqNmMzb@yp!bzt3@W47R7ZeoVrEzSRmSkZvd%n}<_=@QyF~@2 zj5Z4nkvG|I29m7IdYRP>ooUDL75inaBsz>m*~NnYKo)|WOC8AC4ZZjuR|S>Pe89bS zK?#~OY5&VY6qwbsaR!?_8x5_=QgEld!#%`3Y}apV~egz}J+NrDOjT-G*w zQF=+rrl=Ucv{Aqh4IMozF9kQ>*7sKRH3T*trnmzul%iKK8aAYaU&g^c2)>f8!(L^x`VDg$aK5p=X5!bpu@E%d zkL_IoxTy>FWR@1*a>O7EJl3+NL{jt&Zzu`o20fZBN6etXBpArPQuza zLP0HSz|8Xqqssv0kPzVU)%hL>^~0lzp`H53b(cdZb0lF4p(ES~{C1bK`s9Au{u>Ji z!v7&CQ4K!ZN=ah<8hI7S=(Qv<{~NjgA4O*!*5uoU;f;2b%IH*3HV_0!$)QpsM=D)X zN=#C6fP`a|l=K8fN-13;Fc6d)DJ3B>kPcCS-}iohvK{Q$v3U19&vjqt38n7cMh0Kg zJ}(d3(@%r+M69Idca$S|_|ozisW9XeQluj4w<}-|iLe5~h+Gy@dNWxQFlZOuPQHMj zb>V5i+g*fh4H|e57!m!uSfvPS+`W#o_d!tnH2P=c+f}^RkE9V-b_*i?bjDF4t{{uD zCDlQ^uD?LVWc^vmA&@jvcTyE>X$cjP4bo>uhErtAm#$7>SUdqac(BnD3b(Idcmt2t z?*lNiOv*4oQ!WjB39*U}k&lG@@j$+arKO07c}Y~ICnYmmNJt@ie}>KmK%=6t79h1R z{m3u{rtVbU@>QUT+ z5%RwY#M_{iTmvX$#FC+^g>J5)Bw`G9Oc)kXL8lPq?d%L0K1j?|W;Cyt30riyOJxtM z_nz6VW}c@tszivcdCgw^MLI@E9w~<3ur&?w=I*?Wqz(Nv*r|Vkx4htf_-eHhxPv9f zGt|s{bf4Sj6mj&=lW0A*#rkLZ=iH(YgZ8 zk@2o`XEHPt+D3LsZ7BJ#hE%xiCVCX@pE@lS<8f@tgVYp6X0p?UV1u-$Sc-laGjypk z5eA0d_&3pwW&YY#Yyw1DD_11n06p6-57sMs8{X0fzfbwnZ;Ig8Q#qOC=S=f>;H*9% z+yo0;#M^EBb}+wR*ysPBZW*4%Z1DRte#$W?i;X)Q+ZOQGD%T9H#OH>Nah%VXZwmF? zYY0n75k;v;Nr(M;bl#Vhv|P@lF0sKY3Y1z={Qv5K^0dE%hAVlh*ujI!P?Mubume~( zQ{AP=nXY2cf@axIVfeK|^=@=68J!XpF;TfB-_mP|a9A^qN#fyOr7Ld#>TRG}`C#C&SVmF$UwD|(VmVeY4-Gmv@J1){c#gLql5w4u1`{=fg9jjTgbCw< z3;{-_ERPYe8o~nDb9Q?A*)(6G@B%byHa@!lr$1SfmX?&&zpRr8Yqko1n5q>t?vrh0 z=cC@ea!LdpV3EwvQQqtkJ8CNRiyiR5VnDhH+j1*~E{`A~n~IIfFsej&F4lY7BjKYo7*PUX9;f$!lgVZow^w_U-m#ltXO80gC`FopqTRzre$ zjF<)bXyE^WEL@=!w4{2FAh0_wg|42LS15~!v$Hq4siYYK&rOn)feQfsx!D(ba#|Ec zN`>ahL#-6(lZG+!cm^X#NEgQlQh`f3`YtKa9^y?yEtjI{sR?aiRR*Lf7sq(sSVFZTe>^+Y?h z**7>B!u=p0{bc|@<2aRvwShH1!huN%?Mue}((O!XUGcnaTn5~sAG)zAEt{Lz6d+REeX_Z_$N(58J=g?>ie z9U~fm6FZ6ZY--=?8GF)N)L~yKgtoRun!+-}AJyDccG(a#XCVG3+0%>g{33sLShZe% z8R~ajEpB#_GR>{2RitV#p0D;=O~|bMH6fFM-+BP=dV%HjqKK#Nts-!DKss_2=>&Yv`+?M*I)1dxHI6YQBZOZI9 z+fuM`^khQ?t8HExg`6AIQxzryokqVG`94sw7b^3)KQp?7QEBkSIrCsWNT)KVV4+VI zzUxN)p%R|9TXln?FP;mH4M@8(0E|_Rh>OcYUQ~nnZIQawVHO{fkDcZ5`9{jGn!o&U zcc@me3hA8GUq2ll;?j2d*HM|3*=wGv{m}rI_oLU9$++yz>Ebtj`RIQ44e^HUxse68 z+Wf%zdFJji<%R~}s8qvIX=r!^sV#G5kFK#U{wogM2IXc8|M;srcFOa`f1m~7KPCnN z0TTai$9nx#AIm*RL5W32=fvkBy%f}cG8~u<4Nc+Oc1$!mmVj)J;(Z32;fm#e5=kLy zNPjvYU@ZO_U3(cVCy!|Wn?g`*ZdNsaVWPVUSHfUaiig(^9xl-PIyZl#y*3}Tw*sW? zlW~Xc-M`Y-b<uoWCG|pT8-wze?=24BzyS&00fI5wcaClG4A?;3N;3N7DArrx z(!>iz8^})i<3p2Qeh8j;(=UzVBX^ha`x-i{$TfY4gIf1a3$6rbIgkHIa)4|_pF=jW zIT(4?Z)c4tA#SZXV8KAYoK)KmxnY|F%C3PLxvSiUtA6F+Ao{CZ8TWWMK8m6L(hwcM zVj0-)qW85AMp+%D6Zt*EP{Hh2Jl_^doE-&|wLuzjQ+D25jynh9MSOwsGP4B>c%nDJ zhTB{e>A*2PQL7$&MmU`I1}s&NZ*j`G+{b14uW6QH9Pc_a6mUV)87{4tBj#&8rbz*E860MKwUyz=!gktjN*<|kA-tQ2s;HTpD`=TbpJ)kitZB< z%KZz$X%=L~z$n_OB!Tobz&4dm9{-@_OL^m?l#mfDDB98CzB~t6UsBz(@JVf9i$(4*SeM z^E~(?A6k#?l5cYujZ4jcSf;VF!S}oX%Wre;ph4y=p$Rb6v%I z9ygxYvcmf`LzQ`!{_$VWe?`#mz9S5qMz0%kQhijU>iMLO%YQtc@;f;7Vw!z<6~7z@ zOaRcH3uZr!x^oHdl)K(^%K({mu67^gvdn!qJ#e0e`aw2ZLXq%kCbqhB{QhRk5+)a#w8YShJ~isdw}Ap^$Gjy7B{5 zCSG`VImH?!ouC`9TVPD%NdyhQ3tG)M%T2bJUDI8fJz#yV9Q*oYO)h(AdPXepkKrmd z+3HNO`^zW$q@7H$iQ0j(IsF6v*I7=Jx41$}f2)v*S~vG=qF3km|5|_EH24-S@{Mlj zM|_AL`sZB#DfeANH1ToM=(!|5sos73;sZIzla+n0U9GzJMw3CE+67>a!KZ2gU}IRz z0g}1T2CYaTQb|*Dp@>ey{I0u9pTv!y?~ZB046A|WFH!|{cJh@UdpwE zGotp>r6Gq)-&BicdBG*awolg`@7VEF+EnW6>i!AtS!kI&cU-lqJHwqoVo)xsaOFCW_8KGB_#TUwO>nSF(2aY@;wJ0m9k%lffbXgA{YFH(b{~ zP4cXnHk^A`s*+jW$Etr4Js7YKnV&tau&|0D#Pnhr8 zYLg5!?#A2Ie1oIXN?Li!6q_{vTj0K}c;QG5>L=gNHSs0)UYj`L3@Mxj4uLs;yOk6j zc;EeU8j?X3h(4lgC2va;X)jOZ3IK%GwsmPzny7qG8@bu3 z0ubkW_lmF}2+ot0<3$mp(cLTkC{)2B!?84j^PZ;&qJunI=9ONS{G7*V>$XXnDr$7P zBZPly*Y~U2aogjN>9k$Pan_|*Ej+$EwvR#t4{qg0l<0Y!8Yryz{677OJ-zp7h0pBi zK3_@3qTGRW0^{mM;x`vc6aM+1Q!@SWC*0q|2A1b21j8tIx}c!5bLLX=H{k>7>0AJy$JOGq z(!u^v?O9>h?Jx}NePuYEduvYCxn`jM$y_dE?4L_ih|Conb;fd#V=97E!+`57?d_ks z#;^yF63*)QPwgA9u<=FPyeo0FP|2cueZ#6I#O$MP`<-wA+rc(0 zs(t21c+C2;)1R;5d%UIP(`yf-1qt`(B-dI`D^f6|kd17*`?lAZ?>;7#P~K^}w)7vU zD>{_rpZ46|{&0?Tkw_K4s!2`GxlI-G_n!|3wQ$Ov_O`m`;ZIx7o)N5E$}k1hgI`(p z@$XvxtR3XT*2dmHrKAv$v?D<-dn!<>k{fe5Z1!b zU{L6}xiaJM?3`f30pwA|&crnKht`m<==TsLN>Kb{xhWterwi&x(<*5(j+W^D_feX3 z&r*nlY__9j+T$1SgBFCl33JqZ+kTkw{2x$U6=dlB=~v27)^{JO@r|2c83J9wKeevH zW#`{R-D@8=_$D=5Xtb$ffe{i8+^8#Fd+fP~EN=<$l@YL&ux~Sx7ICk=Qcp%4*Fe5E z>Xn{pv+mssosK&u28I?1$Hz2ZSa*{5T6%*PDu~?lNP{PhaWq z6v*^}V*agSrw!;`TZ8^&zS;0H)C&y?;-hMPJAPJRJn{1?nXT8QoRT6#^~y8$U7JIn z>vAYdqq7|KvBK|!KHd?0bt``prnLZ&3$ zYkgm#3U&Sz@8rw4)ee@^uh;?q%+}P#a%&b5+#YTCR z8#8xZ)NIk~c%b42`VVv)3N}36(KYpwiikpT&@NKT6g!2a0_gXjcbxAnklRvXGvuLt zs%`>WlGtQT=rf>|AOs7k$;4NOksm$^=9y}FqsFJmHIT)bf<47kkKcmLSrVQz@ie)2 zeeCk+{R!#(?Z)kgXS~L@t4Wbdm&EyATjox#hUAXP#^qQDWtXxfg8RsT;zhf%{YV9y z*|kK?pzOsj{jn)clE2)6-}B3(Fca{bD3ewjCU!vHtYaj3V;)ge`M5~!^AZ~CzjUve z2nf0&X%+jw0z7pNCpDr)U{r|@2``z_#6zj}_7IQDhs&n(yl|b11m6cBt(s7->w9_; zk9|UTd%H8I z@vuy_Z2y4HJW1v1JUy-U)C)&-`0y2gzZ%jO8lb%>)}6uXb_-{f+6}rlj+lXuiYmi) zc2w+yr>yXAbq_WC=Byjz4aP(O0>RzkWi}~4zBH463>3Gw4ya~vXMkcOc;q^n?Mcjc z%9L@|;i2+p*{RGTcg1A^$ToRgXH5FbZ!M@}2P&1A!B#X-XT7Cdf!|L!uJ~Z9|1Duo z=KURM>)Q*Dmi;g5!6SLb)|0kh>utrQ&P`=%UY!rLFKE07>k!%L$KI)m%`BO_kbm#C zcao<=S62(1N%E$72l^nBJb$XDJK3ClxOSOTO6*#4D4Pp>aB3vfaWTtpF&#OL7#nbV zEL8=vzoPUo^yr4F3l$x-z@{cKE;TsrjL8iyf8d;=+>204R8v-Xqu?CEAp-V}{>P zLrVmIXDF?)fqRAM2xaMTB$Xg4%toJCWT)RT2lD@7YgdH_yNE(HqQiV(qIU6|J(Fe` zbhBNoiP8W2N#&kwIzh96A}=)7iRmLPl--4eRY*8f;1AM5(10fhUPAr#yi&7FO>h1uePoZuMg0-l+|-ZE`HfQeaqpZp`MIme9Zs^4&g(u&k|O z?ZYKN6QG$1*@sMSQL(4c{jnNOvfd4Se?zLAzF&#(FI2dY!SZ1=k|*()GvlXLKP1Tb zCY8z&Q7z$Tes{4yoXzBgE7&P?#H{LYkd;Z&gw;sqy4K8ydp^T}z+n;%Mvn8lz3X3` zxsae=s&ZxJ;jF}5hiJ5zGO;(Ma@k~*ro5veD)Zmu0}s6t)y;D3n>hpAo5PU4`gctc z(DNc`@GGNB`@~64F`0DDoFR|C_cT|%MNn{Z69J^=Rr+0kn)KdT{t%!hKS^@;mtUzg zRQ+%2-}hGFh}Rpo#B*9xp<-nU0Fc*<=JBMTE?7`z1Gt&2OPi=*bcA)K=9Mo70^?NT z4J9LxFqGs&%E=u&ChOoKOm0Aj3J%+(xPU7#xk*SJl9rg$j4eSeyplSAy|pwEM)L;5 zL4jemup%)r%2IypKQ5wd0vOn2q#^{tvoV|b3EHNK%oghLA>|FOv9btb>+2{av8E7a zR?nMR?{l#@WZ#^8WwJ%tmZ%NKwXOYnQ&!woPFYqwl_S2~Ooq4e@gt0H$uC>vhL7`n z93HVr%Zl7~a*VKs%tbcj1iNaLl*p#ULVxCRjcTR*ofN_p9a+kby<4f$%3hjgkE0tftPl-nFAC{nvG}m%X1jnm9 z=G{meVN!j1Ckg!y8RJ+(^p06bA+3_hEpB;= zw{c&Y3BocrbaNfv_jvX<7~G?1)=&nHuU(Q)s}mQ89^kO!mX8OISqmCuPIXrpbko7c zWb5{9_a+(UQ!P=QIob~{H{-OF%%VF|o}2x$uqg6ypN$!Yc4J>V&?j6^Prz`jG*M%( zeJOv36LS-wGKX$8`t?Ps(;c6EYBNaHix`itVnUD&$k+i{?5SIBd$xij!Fiy#I*|2; zho+UObEBaY_S5reqtM7--ojcvAh^@m7prOK(S#lf!YskNJDaFwYpR*4B%Yq@?SqSG#&_S7!DiR5FNg&0ygjX=TO#UYQ(w=XJ;?s#;g&jNq2sJvsllPt zS@^+^5lTPRxMgBz+En+1r9=ewln%jKoJxVVI?PdkUW=Rs6euQ6W6Xx4^@CzsR2~m1 zMqdaH6_cE331&dc(f#;$%w1&7>Eq&6R-Nk)@h?p>p3;CSR<0-}icXe{p<+zTd|cZd zJzVQxNtL;`8YU8N_`nM#Y@+;|-;ghLH! zQG4_hX)h8&<%OX>z4wLemRl#D_Y-WhW#i6^u$2*-GDL@){RH_Y2N*2axKWmtaPM)R zx|BC9^x~Dt^G`CaTJHh8a$(La&dDs2WsPSXJq(-Mazpn+ulMmaLxY(nocxMnmfff^ z5G$h>@`MtB;#ox!)(fR4!9v!FSOhkkO5+n$r_dJ)Mmx&oboNsTS`G{VELbwhU7iQ~ zj<$&)P6NMRR7w*;iOhADNjwt3N ztU?*%M~%HDb+q#(U{vxiRFS%?WHr9DC@P*&t$>w8w=OhM;3kGW*Ju@YnKo;KRx@MI z&!fI;BZ-xe+<6e`%5hbZ5&IXgJm zC_fE|1VJLZ1R!++|B@$c0s!I;s(w4T?18}-z<|o2drf0J8%?QXtm6;8%5k5t2XtKX z)qyC2NnTmLm>!s!@L7z=pI|_xZQq6Zd>R)<6BRMW+2-SyohiPTI4O5tp^FRKldiLPJ(CQL>U74i5xoK|+m zVR>-na_u=H*gmuaMv2v{@6d#T9I;Hm>l(zDW(Xb!Alu^dMNt}32>JpG1vD1vO)1Ub zMP;112)q&)g;54t+QhVWpb@MZ4dYqC)MDWa2Rb-kGJpYxaWj_W(pKFStU-D;xr5_^ zBW4q4$N(?{P~21Z*C5edpP^$ohg``nJg0(-hiwzDd-k<2l~cv`mG{|Mmi7{!CmhJG ztF$4LNS*2z_{-phYnE%X2^XSUKXAj`E9r~j8-4&8|H1A}TxyJ{?$+qXQiA+xE6};_cqmMGfM*%9_+v{^luWIATtOLN0BJOO zw;A5ud~E%j>8h{$FXBcl&~t(qQU z{i3b$!~P4=UzI!w*M}@G0c%S2FE}w_6K%^H5l)3MQlc3e|=DMAAjQm%Ux zCH((JdT|6LK`%4~Dl5IpAlc7)qi@gM*Qu0tcjCn-RoF_)Pfwxu%pixi5t$6kP|1ZM zZH|6Yq#yUEbs?j}9v^=^jwdlq(rgKhaF=@n=B@bV{)QoiRC(JxN=xYJh&&W(krG44 zTLDYdd%$soHT?;wk%n%%*aJl5-g)MXtfuT#^js7$pzyBel&D!Bl|o9TPGS`V#?e7- zwOKUjx9vY$VI|sLuH-^@W;@_k4*8)& z$)&XNWu7z+J(K?*Qz-sXYxO``kSGQ2X}1fb;`&!@+xcw8Yes+i>%M2(i;WA9L2*^c zKZgf$To>HJW`#-d-w1o@XTu_b(-b8Fkm~QOTY`gI+`*&^b(tiADn%t9U1g1eAR8&N z29xVHKny7e(r-6D!0P7#!^zS`(pwTh%8lOEo{lis)>1BGe54F;s!7*|?sBX|Fapy! z0I6C^)16`^_!4?81sl#ml=k*Pxbr|HlL)FfBZf;TR2YQ-#(#lE{Vaz42Pw6hnjfhQ z6Gln6_0uF%xDErBh`(dA1%1loW?;vJR5(B?yY|88FHSEML6CuG+KNQrj&{Us1miF*5`bN29T%k{&N0V?e$FCj5dpj|5kY#B_HS&Q04`(F z2j&RC^PzBqDsUMF$V)@~%O(5VC~)f$w7lhQZa?sV2qdP49|`cGb$x*BnD-xuufCLn zP*UJdv7`wt7)+eOGhD!6YWefVmsUPHqrQ0XsG)w5I;@MZlJgla!;Y0dFC*+tMLyc1 zb*KAsOt|^>CB8}{3274!@t4w2c4d5I1`zJS+nURo?li&=6DK+p4CQ%Fi+P7Ya40%L zL-V0_;skZnE(zx%&G)wW0!9ykZcyMHGLnN086Ga?!rLJhAPcV!Ds(hi2T*p=P)d(Y zLzhW7rZmWB4aVEbuD~^CAzJ|}0jEWRXb^?T>v_@iLm(b7kutyCSOeXUMC0j(UB8g^ ziIiB7%m1I4k>;{K@Bin|X^}=i89ZkW8%|b(c~N4idAJn3VKj2Q=!WOZPlI&(6BQf8sc!?nJ7ADEoLaE~2(5f{lHCBE%LoB% zFR6n?CH3WD@33(u0*-P6qFibptoE^*4wf3$Z$TqLTJ2E8NGOtg0a(;+MTjALX;2t~ zter?(#U^A24Tb+e-dBdz{*wD+fFu$2@zqnXWCQCNh)q}; zty*b~^seL{a^C+Z3QKE$WfiN4*3zKnT*uVnk4x>w)qttcD@2em(x%=anG*3>G6J!h zZ8MSfSZxQfO4j2!F2&_5qU=~^ND+w!NYubFZ&^PuG7|ZUU)N|QnFRoX)Do$-?y3!O z$`>_K-{l}unsa0I;ayHgMBxL6h{uMCd=te^=uxB9Lp@S2)2|~r=DBY$Zj}J?`8Z=4)=yGPD zqgU1=29EK%hVYq{l%OTjDlNeOx-GvCul!uUfJdH97zL0ju`uU6kAJe|0B& z)ucV~Y7s_jJ}eSbH%|Y8T^voeV#Zy<0}Z;SK4_O)m1Y-RJQip5jHY7o95NEa@^nbH|}W+4tF-wewVJ zyhgk5uJApsrq*KSSJK{BvsvNi6#kI3;jx7Mo^{pV3Dgv@=1<=5gJ4yx89nRIaUc@a zM}xP1?lq#8uiNKh76)cbelx!Gj#M3&()|j93DP4f)bT^#jCA5%_g(a?R%B7ZS z2rm3!edmJL-R0ZT*R&_K2HshU;!tZgq-A_hW_NRX+LrlJxy_WHvY$Wag~zlT>yN-U zCYRs*l9_VN>6f1K*Zifn*QS9eNNsAlefPVW3rtlcR-OpF#jFS;IOz z)hTa9?r#a=5zD}i;rrj_&l+#6)r1%u>sj}H8p;O6Jgdxn{zxLGfcoQyr-_Vi@8MS= zD(+^Ss%=oPjWj&^@|rpClYIq9ka~-Mz-j4+`jAg*7GUe*!~TpY>38(PVnb>&CwUdp zZ-5SnkJtP8Erx-T{<`pXSIVO1_K$T*zQvSQ$Jz6LE9rdS4r_9^f}fOoxjn!1EQP0! zr~|m(a=+jgZ?U&NH1RS?W<%CEWfD4?_U^9z5Lj!&Vin2ab6>~pXQBX?wd%LpCT>pM zBmTZB5!*%eR{7|5Q8E!c=z`3Ur5$d&I3AiMJZ=4i3r!2n5MO^SRM+T@?R;L;D5aSh z?yH+gJAetJiHtLv>Knu4os+3ub?@G7JpR~Z+jH}ygKVATo9`iif_#jISo>4g-Cz7N z+bkksgx;(o>z`h$DG)g>Z8vAHt)EW%`I$`m_+}R>%9KN!y?Pe6^1dVbWa+3u8xav6 z9S8+OEfNU$f8tqm84u4Nms*iCo4}T+mP6F1=)h8$a|z+h5=&2;h&p8By_e1&HqTuO z*D<#fcNa(LJ?=3Me#;d>CPy>d$^e8nYwSCTgDW&tS+LlilXHYHI1`Jb^0@U5$ZK&V=K8{ z>c_>eMC|yA&5NqFX-o9H!<3BN}VFaeXpRwCCJ`2BUp|3A@VAg(1 z>LT5ASVEoePR{VB@$-m`BS|92FO~n;58{tAx#3^RIB;BDq`hy`QYoTg_kGL2{qz%k z$X(KLPv?Ht&*!1Lksm47nCZ`+867Yu)<|!g9)4+JOeJUkbyPnyAbkJwW-DqW8A2Qv z6CCeUS(xjV?S3v5(Y2grK6;igpVWbYQSy!J)Yn5Y_TwfM?96t`-GoHAu?eyJDMYIn zC5fj?5YV4#6FXH`ONp6_g%qN%irf$OK2-+YKVKgh1Aq(nvcT6@&;7=-Ov*FHB2*vh zou!v++8@|<|7NG6ioR!1_uSAmcpJyM>U}~sacXU9pswb1wDlo+|BX%9-JKg8+sW1l zZ=LCS?}-0ldv`YENocKqqAZc->5k?K6{F&J*Rh=P%!qpQlYWB(@ed{27R{F9YU?Ppb#JjG)#8Ayif@Qw`d7vUWkduv;Qxhs3ewiS(CXFNe?JKDjsvFp0+%uT zzdO9IxdZWZeXomW)lNrPtS_oj!&95g%jP!^cuyuAMtayR1(iH0vBlCu+!{AS{a1Hb z{N{3T7cj2NmWqP9K>v}!SH2!?>Yzuy%p$0lD?2)g2jPFqg%2KqJBdqejC1mfBH#D( z-ou(Y#oAf4rycUCmCh>l#!oE*oxgrtIDEsRS_M+$f7M`(qN!Zj?qRS_RSJ8MzbLT3 z8(CmCcH>F0G9Ayj^H@VDa2nm_Emqa~$K5~INW6SGfr-VdV;t+FvwWB7#v5JhdEbrvuyh8uRc026xyyLZ(7=_}1@^9N&-|6(l#M~frkj}i zsTF~#y^x!vorH#uIC!6=g)Bdl;~#OE*LuC!7Y}`FbPF~m8iJ)>Jv#?l@q02C; z;X{4HYlp_yrsjBx>i6F&qixh5@bn+ThLD&Ipak(qRz-I4kId_pm?N?7q~$8JaIv$! z$BRPttg*SlW-|I%;Q|Z2H8NM6Ztii7thn)o!^PHKQEQ^5Vx@0aS2dUH6U%(GEpxBV zqRL13j4xtGY&PNi!d*8c*PB|>6dhfYrTNkBGbL~N`U4QXcI-%PrCtPQX!}Z}R*z^% z!fblHh`c8|?H?4|{Go)Niur4N3V#L=l8LabJ^J(4j4$LB&sx$^>APDAh=Htm|M~Dd z3mofE5PBv}CjMGtHzvp-;`7j5%2dRaNR4Gwnb1#cps)~AT0oaHov!Z=@(VczdKJBg z@C@Wpa8(cH++L0lt4{L1E5Nn7U zW*$ns*CksISjRFysrnjT%4Kg{u=iwyxp=I3OPZwi{Ozp$_IGV8k!5&vhV@ieDM%C=1ZR?tAI#%V)J|pTr(#tJ2W5Xtm!(xc5>MS zR9l>6-j3#L{Tz@EQ01L}h205-@8(%M0Zc1*v^RvA22Il(&kmshd*w zA7fI~gSF*H0)Br@WoKBz7i74R3Qe93NDrfNMKz$otoi!8M)r`%Vez%IYc^jG@=nBz zm-SyO*Ia#%W;clFj>1tUC0y0njyUW5Ew?NIsl6c z?{7&*VdT$6`n&mA7oTi?oFy{t-Kpz3sS4+{D$Zxm@VX1`y0T-c>azXl&G5lfaFY`y zdC13bey8e##L161uB!Py?uNO@!1pVUc3(-^mb`F> z0h_>*)?X{l!x7L=rO;C_9Z{KwYBp#b!Qkx<3cF~gNI!h>6$O1NBXsK}O^Rb-&tVTC z@JC!#r2BXw4suFuoLh=Ky32L5-;bv#>Xz@)j}FIz>-F;UJ2%kAuV^V{p7is}t7nB3nM zq&DG3Q{!e>hCuo$jmv#-rx@!czBK6-+ZLkY4$Rzc8^Jm0gk>|3@#_gT4o z2uC@Kkzot;kCumiuoe;iqTu`9>`#kDT|qK%hgf`fk1I!+g@$7mldFaXHyUT;-5!Bp zX1Z@>%;JgJQ|~-$-D+8t<$>I~$D*<5wI633kOe`VFQekMn^fUXd#< z2Qlw2om}m;75r;zi;tDAcn*Co3=G$xv3w0qC6()}m_8nK%lP+Y$<8D>@V1-3LD@Vf ze{*&9IPycCVMd(t)-S17kJ}Bx+J0Wlghi36X9M{-Wv#aEIE5`uhj9+%$r`Bzw?}SfoSgP@7h5Hmzk2Hs@m77icK!#LkOHIyOnY0bA4?e5Ww=x8bT$chg;B7iji zE#yZQGvrX@H+bX(d?~Ed7Hb!jI>3T%Kz;)2M;=VxWW3)>!tGvG?R%47tj{uy+fpwm zZqFh3l1V}jLvSG0*WoKevR~|Klm9~2R!A~CsBjYDF!_|Vh&lFHSw_k~;8QuCVXlB> zaf|3QFp|7=Pp${%n74X~56)wNTH<7EcdJH0 ze0*w#ZM&YDYMgKUec3tKYDAw%@|aAO8n`Xhy~*a81uw0}`090iBMqAcS4t-9VAIJk zYXvqA0v~j8uZUf4nuC9#O7p-bujJ>G-YdLmX11q4;`}6R=-TVO+ENhQvaM{f#d8;h zXD^hu>htf87t)Aob)v?xH6F{ALkPjGk8f!A*PA@=95X7&Xqp(Nfd_aW_FA;P^hctU z-3J3T{yKd4F;ZZQ9L*snTO?#V+5fYHe9PGDZ7u7*n-+snkgs2$)Q=ldyuvAZ-Im=# zG`&8SL7syZa%QuF;CdM^xz$jdku94nCB6Wh={)7$V{tEabe116AczD${rbA*=@DW} z!L+T0#X?B)m!l7GRnJbUaTh&IsF(mZI_zKOx2KyQ1L*oUbTMD02Tq}1lwh&HGY=Ur zPrQE3@@2?LGGjrXZFh!DYs(xps$4^)yqKn1Glfou%-atvE9j)Ze7f<3-fM-?`orfm zF3`64U1>2G-ME{|WU3rC>(Ua|!owtDt=b)CIPHnY}@N z&4*Qjw4}P?_DMh5UdO>ijKZzhhvOPNGb6;22;?=Lur0YB3i?SABJ5 zlT7QLV7~Dag7^ltn~HhbJ?E3{DqI~{mWlq!K;lz4!H=eYIKKu*)?w{-IF4nMrkA;XuC~bHrK8 zNaOr1bJWtsZOH6$QmRuB8N%i8{7;{DW$i-`Fd$B2IN~|V8}=@0upUprzoiJQbW8YV z8fH;jwL1<6#tDF~-zTVZALT+ung5&qH|+{d zYc3{+svR!t-7noKM_t)b|D_jm_h#PU#5Nl>+>rX-FSDDeJjSP7ws%$uU1tX>gJX2v-s)n93IF}0vs{+AS2~yC5Ct#6-sp=AiNp;?6 zORTIiT-M?tz0;D(sOKGU<+blx3zhn!VtJMM#+zOoY)gvltk3n)L#SCbqEJMiq}5yw zmySHEgq^;+Q$?ft^ErkkR4vO50V6GXY{y!8*Crf^k%z{wNitS6C~*65qe=CRIJBOL zGBtS6oH+^!QpyhQQd`M%rnR6^Un^I_8NEkZVri|Mt9m0eTq%Sba3zdJ*<-SHkV%0Q zlp`epnIoLME>v&2W6Id5X#PY9fmK_-~MjJZR$=?=7z-q{Zb$gQqzv zQTH6))umh%pb2be?jLS(uH^|{k)RG)ad6*K%Z3w)tqn*1LK zhIhtRL=d$bv?{a!EFJ6xu-4?W$PVgyWrC6v&dv)gs|CHH)O*9)FY}BCZ792Soswz2 zPnedXMJIvBO9--?rB7EOc7<#itf6^R-fvv%xkJ^%68Q7%t)j+1Ev)h}5(}_XoN~6r zI8xWUL1Nrg(V=;boD^lHJ4UtD z`5cz5)LQf*W<+gjPwnm^zcznN;+z}ueehAks4%O?at8iyrNONGY7utoncphKTXQ!` z)|x5K%*kI*he~?ClC35uYtlAIt!<_0FLxeiimt<}v;CNY(ioW6wE7dNm2f-`$qXlC zYwg_JMnUPck~a;vqM;~6Bo>ATK>kH#>k(Z=HAs+a(d|4E76c*`Vv7e{?fYn8WZc*^ z77^@_`GA^I$vF|Oh}M~7b(pY1^`o`bhA5eGt6Alzr8GS{jxX1r&Fg-s$A}==}{K&|uU)ZzCnKcFJ`_@D&Wy@v!I*L?sRH zSOww)?8W!L6k7!Vf_NImDuMM>WilG5)Y9r2?JF8N0)@C03=2V#66>i9IGaJuyyV`~ zO?Z*~FkE{CN{2c;ghK%rH6L6hjgm*QEq}rpKuVP1X_@57+Ns!w)7e1f5B3~FEwHV> z1)!(Ha*coz;=&vhjWZNjmF}F#8d*lFSb%IZq2VH)=svjSA^s|}F)0m~>{iO-kT)B7 zhgTkN1hIkL!r$i^Pji{Y0YY9H=|ne^Bkjcu3{(QobPPlVp)eZ7@*+Ww;?KnZEjd4J z33w>X?^4H4?x0X%&XeL1Jl+RrrOU)fBFO#FT{NP1M`z6KUJ#0eVNx8WxRmBohtWhZ z_E)K3t&Y0zl=7!|jHWcpwhn^UT>&s5P+(Xfh~h5ZAft!~;$49M-8`b7wyR(iN)7)_ zMnLGG_{6kXD<>yIaI%8`J4F9fs&wVW7D$3EQ&1TmOj>e?c)f#FARSDgb`SvObsnw9 z1CahH9Lu}L-PI`xpxdJcJjUL%q=LoNP8b(=|FZt7*H^7j5TOrt2StQ|PD>&IO}846 zf(LN!O#!=Pqu^1>J}ENR3hR1WjHjL(07wsiA@|9eNGjs2{E#qc1(zG48R8Hb%?mSx zZKCxlB3McnDyKf7x3HnJ9nUVSw&A}_3`T0=@4fuQ=4ImlHeBRS!09XR+0JyjOS*!; z=Hubl08W3!);+oN-62>{`=HD80bJF2RO6}|>dxT%?ZXo)ht9#Vo=>sA&i6Xjgb!;HpHkUr&QH(G(yWiZ z|Ge>A=e)8F^73pU@!3k@+jClPsf&>f+y7B?mT^tJeH-% zATcE--7PXkr{oYuhbXBahz^ht7#)&Q64D{c|2fZF-muTk*?pgLe}CWW;+b^;sqQ;C zhMC8wMvDgB{61++dk(3PR4})kV;-NKHz*5)Tu}Ac(Ej+CijyE`wpo|uPJ`?c@;|+) zBiW>>H{S2lAd5>cEJ5m+l1tD2lQ+u%1s@0y#XbmLnY?eE!iv*PUJfXfqh&H832X0H z`X#a~>xA{!7L&Xa}9e9lke4?DfS&CmQ`6BN1P2F?cc^ zb&s5B-@sxnKVpMEdC|;;hh|8dB4x`6K;_5z>Z3U} zFnp*B(QRQ`Uq8qb&g+7V3r*JApq1F_*yDIIv7D1aF$FOvp;q=d1V_?68AMPU8- z_%(o!QIWf&E)dAH-ooyo5Nbk%;1U&B`6uwl#2nNmZ#7EKa_X_P zV1Y9wsDg3fp#W1L_Ii9i(}x6D$JX-$N$TYu?r6RM;F_l+YyxZfwt!nD080)E^{ZG1 zVDjidZxnowpE$P>;bv;^lak`?Z)ZX#2_)_ma9LYP^g~MGLF>v{#iz79GfbPAJTRGgHVRiy@|6AAucUj3pTl zz>sj2eoR;yX3cPDWHu9?xSc=&31Eh-pmfuB;1m)W?i{Ds6D*=C$^^lHN!p1Jv|zbPLZP^(02P{u8xt}SRgr^rVqA+Si-O_4156BwD-(=U zCZ`B2fH=D8;l3&;#eFlg*!_;vktR7(58!yL#l+;pM?`&suw#ZsAZG~HDYLW;0#N{F z#(oA zV%DN($Z~Ncw9t^lP}9&cvLI{@w9iA6ZdHF2hCRhPVTj;(_V#`4uJCOl_*!NQC>GCV zbSo(u7;$iJk!vJmi|R4POEK>n z{vTc+1$(oi^_k5S=o&i{a?=S(Im890Y^ERBOp4`A+o}5v5%%OvxEnLne9`B`eS>mX z`4*dL`~9FFsyL?KIungZ^?O)W_s@MElA(m+EKqDksPU+cDW2behP0fyEG4TPrAen} zWaLkz1!?d3V{*Cz$PC=K@{NIH`^p%gm-s--Lr!sJ*b(BpR0yT*J%OtzEVzdU#|(%B zTuf+-1ejtWU6y7{XaK~VjEdYQp zG#|~7MYZ=RIAyJvzTZ)0#tO@&^kxB*fu>nTx@vCH`_1jdS(M~Y)S~gCU{MJ|A+Tt) z6PKG;#*x%3?7;V=o+>agaDV-+@ngE6e4(J=iok39%{fYdQ()UMz2gbqXj*3f?iY*t zz}m$JAF9?-K)((4SM49puZYoYLQ!(aUsPfD#ArM+We{{&?+gJ5!k1yS2fo zYS)4?P8>%hrJuEZHJp!+4j1dCk0%#&_1+d*ces05Yc_LW^BA#T>EwIDd4k@|5b9FB zF;V+tQO>~*$|>C1wGXW~iO}AU7x=oh(iWP#SX&Y?)!|*b5xD4Ai40jvT-^;b1l~p& zJD=Ge9W>Pqd!D8_Vvf>x)Z(0w1)&_TYlBME4}ZE!u32ko80ZJvSFd^B4a&BWj(l%( zP7;g8CmHGnTJ_ry#y zm#L;k*mv)}VVS}=Swv7zwSeO%#?D9@G-?BAQZ!ToerE;zHcniNa#I`wtK8<+tr&cF zX#PSd>hPJS=mTq5zs$_D%ocpoyOiwDK^k(%Oh;f!&OJmrRcXN!Nv^EJ}b?`DlV*BX$yTtl#Q-Y6e!4%VeHHxMqh^Lk2r1 zO$MceQwO%mFD>r;vT3Mkk5jH@ETart@gwHyE+DBs?8YJ>sW3j?+3|v~J zS+YH^$b8W!5NZL-v~0fuP)`-Qya&V{N5M#yRHoYL5Gw87&WBY5~uJx|)gzUiWf$(^uVf(w1@BUD3{?$$}Hxwl5D%%#C>{M8x z3AOak*r(|f*|pF1T}hVulEWIOE1XcvGPvrD|HKj|KXsPm`+$(QB7)&KBm7l8WXxXu zCasVh_aCU@Ys1o9WALF%*|m~l3nkGnFsg*j<0gSZ`}NT<@mP8nv-U%EuL`<Fc& z6@0b1u46Ipo_nM8xV<_Pad-}VQm-TMYF9hk{&%=?ZcSWz~InVt- zPAKy_L-vs%f$y?p^?b6SbM|e8-k~_1^rweMyb-)d5wT>6Uen8+E+=#e6aBT3uIygYjUOEj>%#cKgLpi_rK867T`SUT_0NO0|>Qq4` zl}AxcegE(Eo~*w2>5HUa&KnP&WkrK{I>15mgXm| z3^QrysIXo9mkDnC(uy^N25y$e0JMI4EMpgFHe$?u6X;@7$;NZ?1ixvy{Qc$mgS$1w!Ic%=RZDLZzMMzsx35U7n21JWw`tDz zHMf6s{GxKLUA#=WFyWj7l=ZX8<4t%rEMlI`RNGt8xQd+fWSB+sh$imVxfrc=jz5sE zeDIDE^BO3yFU;ufsrb0Bpfhob$JfE>_ea>U!Nc_*htf!xCH4}tI z&?sV!wbv(HUqnDk>8itShgG8Qo`f9+C0)$6OE8@?NV?n821h!1a3f%L-_Q>gq{6v~MVw3bd`s`ul>4N}QoZAJd` zE}_ucKvG~1PmT=#B}_u5voN1O$k1fqHqeV^@R6MS`qICroJZ00Xa~`)GPD#OliVfP zSvU82$0SX4!FVW2JQzz31_zoFgEw;(oPfiC1}&t!h9&*M9fs?cGrDL+nbjRd3Gdop zpRBUZoyRPPymVh~fhhl!^>C16+8plV{{6&r3-v-*(0|x6az6zHzrUclQgp!0mAu_% z)b!9|R>fPqT<9wn@P4-_H@iQ&iVxAuUHvDetvCObDqP6lm9pE94i|2R4ePB!$s0!b zEkH@z)JK84VQ=lF5b7N%Q8)+>`zSFYhceC(41TnUu+abo$k;z#{%kZPb!Hz^-k%?p z8EYiI)Z@Qdp+mbUUggt7m*q0S{JM`d8h(p!_-Emi&zvXL(fnD#M_d0B>;9qnj;pgB zQ3&3Hc_RRu=QB2RrcTLx?=&1!h+!LZyk}~d8Xke=1$nJ1{^ZEIwP|@=X>{y@2 znZmGOa%rvF=$FfXKet3|4~2EcBF}0xPe@|uhTv=$ub#h2&?wf{oHl~}eYQQys&^4d zi(Z{LIaj$XjXAA0LG<=a4%eYH0F@GqNjT2XA9 z7t(v~MvE~wXZ$emuH{+KgRVo|7rCK+&Ulx<;5-df@UudR1Lc+>E#D8V1Lw7D|eEBFJE-7cz&ihp-8y*q(bymAvq|alG~)L zx{9geq5b5Auz?ojGWsEwn{N)7u%_@mVKXVLdGWAnVc1bpNHQ@!pYij?v&5rj!RKqa z%nutDV$2N@gGcOD9TPaa@TtM+OKTfVfAh7Vj6%51FLtvhqr(Qe#7P);kOYLnl6x@$mN*3DAwa>uEMCtwDT@bcFB00OC zsTNgu_yc;tGyCzwB=bUF5LWn`6)3_WYk!V`g)RqYsrR%UTT2;lwuzIJ^^rFV)A{Nz z_y~1E31SmY%=}zenO*A4lA2RL(q)TUF~8*^93Ze+sLbWo6(*tUi5S5>{r9WTwaabL zN)2nT#jqB6>(e;tJ?LLSU;Dv#9bfCOEN7o6lWgw(eIBz>0Q)Y;9vy))Ob?r03c{P- zUrdvyoV#uCvrxu-h>J$=g=LJ#@@Kp_GjHdCB9Vy(s?a&p9P@%Bmb)y)FA2LD#h)kn z^Q>yEe`(+BKqkm}Kv;<9+PnxoPyFTok|RXldZF9&J5d>mQm)#kU0_%3wwcD0J7D)@ zC8tz(yV#{D0i9r!R4Six^JGi$&#TOz&Ts2OpS_5V`YSlE)e>@srGE6z1VHlHq%UZY za#ekn;m_u^e&J62fQKg^^tP&==?9@SD28lSQqbpb4Ut|4^^3dFa3;nk&CDj^R_vx~ zu~1Q4hFOJw}-*9qPsp#S6c>vtKN zU+pW2Lz{wpt)@m_D^@7|(C`Z^<{m%2Y^v0xPU-*j+Dj<-ZYF8k}PKO8;9fbf-?2I1t00e#!AEaEhB5jS@KW1pt@Euhf+ z*)oH*Ehwick@a7G8RtuXg}g8J-@~U{G7ZK~v#mt~UjE%CDJe0YZlMm(;e)%Ue!25Q ztRzx)V*8mz_K=-co zu+SyAE#s`#Wm_KpllV(1mKs)m#8@Ue{M>Y@zA|n#CHzm}LgHpw3Ep}5c+Y83saCPI zyS9Vk|IqbS4z}?dpVIec0M&<@m#+wE#fh+uq;z5I4x9dZdwX8*p<|~JIR{;$|La?V zPMSC7El*cQdA%o}{#bOGyigWL^Da1Zg!%}Tg#L)MOw(ZEG9tHIo(-}3Ja0>Q*AQk- zsy@`3gxUjDVGptYfo!Y3!s^Y&Q4L6>09T3B2z0qC2FB9D%%;PwcMy_Q|4}oqepgl%`#|m(%S1SH2l2k z5(-&<)YLXl;M>H~I`7Lbm7dUVRPPuje96tFDfo8FWo!s@y(V|9Fu-B=X_^FdT%Jh-5N@%8$7YL;tPjQO9g>!Y? zif4e*H>=B-xV{v)_!z-ZBwI_#H7mIk6D7l7mfYXQ;P4%N?^}crpKWbN6C1RdMYUph z_oP)HPxiAyFHK=A*%Dq6itX_f+XG&zg zrd|m#>zQ!cxW64dsfgBwKq7Xv3Plv5F!PligS`NWb?`>Qs$EOJoG|Km#?n)M_{&D$ zGZG`Tz`=m&r4fm<|H83Z`oVXth$)ECe;_6qe-`jnQPcwbj$p8JN(FZIyN_V}%&R?- z64EV(SQQLg2jklV2$uqVljgLN!i4gKtJJ1;E&8N2*M1T=%!Q4Zsw9s)yEPz3@FWJr z>tokIZRu^g*S^J_$>~BPA_vXQuwT)It#Ok>-tSvH@f4@kOFvLnAL47YBnP#SsgugJ>+}M{up~g~qe_ouJPV&q9_)?#46KZP^hZ zw4TzH5mWrGav_mw`#f5@j2l+XLxfOtkR*NWp*X4=E*W5Jp#I!Dg5AMqKzdUWDf zz23e>7S%CEC&na$Fez=X`4l8#zJ&Ui2_LF%Zh34@+{C!zwK8>D!b=JI)I+3aMrs}a zkgzaAI@vFV)YH*}86wG+_CKSoeeGBPdaRT{C6v^{BkQi^{pSsWUu~Ai5e+|C5|=%y zlD2R{6agOUl&K{MH38z@7Axz3X&+uwOe`dih4?v3k!zj!PnLIluxi(rjjuED_R;F- zuZbhi7CIQfZDXGR7ScIHSZ7~fe;`#&3~=t)>s>ZfpsDiUh)pp7}=?<_CTfdvuSK>0IX7h z{x~0$ZLWpz3Lep98t$Ay-jTS%RXO1qt@+xy_d^wWX)@- zY?F&KS=wtL>Z!{zH3=i&xjk;Zy6iD zDs-x#24UYwlB)@pPh(Heo!Ya?7PAtcaeeplw?(AeP=ixD(&R#E z(CeUtx9I~%tp&~J^{fTVo&_Fu=47Ot_0O33n+jrWlR?h&nL7xS)+*kFs64Q|2QTDT ze$Mci`bs@Y0!`76aPTGMyE}?nKRKX5{P{*c?nGq(zjsG>d83@^H{Aa&n~7H%RP8$%N0rX+NbaO&19NzlE_ILMQ_bd!uf%`0U`NHt;Yb;+QT0*fz8s zTMr^-n|KcZY&~}gxu8?5nzJ+qRFm8WL6j6dY2x=8LaUtB=^Ax!TVUH)=i@0((J>z+ zEj2ZR?x=n=;5m&f=(djiTqCdDw~DB2{=AmS`X z0^RqhdyO{mO13eb5poAO#E@G;8KCDH4FDSrG-CJq|P6E4@0Y;RTY1Uz8YGe zd(;h);qFXToEcK#xaDxiV+cBWV4x!5U>t;x4bz<*Dx_T0HMTETD#<0DwRhuPlqN>fb9N-yL`cq~GwCtLRDuL zD8%^Dh`1jq%D_vDP!7J8&0bCFNNihgm6+AQ86_yG?uVt^W{n_csx0dHS-4hoZ{Wq` z3K6)9xZRa6ci7zp(Jmv@3)%bu_c+macSkISGR$~G zmnAxy87Q@8^>Zvv63gs`m@OFQ0*RX^lMFE#XoVID|7^;%qX*oL@^wHV6DzH+ zBvNHuyhmymR9?+&Upciv!VHvd4pWPvmF!48*L-**eD&@3$tdS~7}`K$gvgPX5Gn6d z#u_pvQAQH2oAOU!Ye)a55m6i4m}U@e08oq=kx=Xyl0Z-d3}!8grPJ7eL=mmt523I_ zn#3s8|y;KWpQCQ&*ASf?$__@oKP>oVX+O#lGq#aXdHHy5&&LI+uD4(!2#IbvJb z-15aAmMO)9_`?7#dLfGsNf*#G264&}aw`eBI3PuhB8etsrU|TNlH*9U18q=0oe61v z5VJ+~g!Z*GXEqanw4S~#VIs|M&}k%32*8WkhZtG8j7Mp@vzY|oiP?*x68XR?{35s# zWo7*Nyd1Z$9kfHJ1~=0^(T3`SCV1shI(w7O7&I*m59VdYu`6dS`tBR_Z@{ByPeTDC zM>g9QS#+r?bNPCOz={li7ig@#d?CesKOI5QCqNpfB&CZv0l08PJ=n0)r5H&cfqv9< zCixEhMN&V~LiS;gC0Cq?OX1WUH#+ zAeRQm6oS_B>Y#(ZaH~i{!6FM?3$WyZzAr&h6YS79j*3DlJTdW77T}&piNVklqTX_< z{(n*d)oj#`y}dE8OL#qd`bdXuym0-Sw<9uW3tnP z78n2n$3JARHax}xGh^;lWQ#}I_f9I^4slG1MkEmDdN$hT`ZSd0Lo9f`o?1fzgwo?7 z#B@CBgZ9sK0qt!#)`HrtQdK7fI*W%&Q+^5NfiU1jDgF>HdVmoKcl&;{EII&&=Z_G$ zqej$^3>+p8Bg>ip_m*Q2y(*Eo<<^w?n}+55Uu61#bv_2p0 z&Tl}DfbDA;6hRFnQclTYwWae;EB(qjaUk|82+=^LPb4KUj>jZj$=p*(^jUgOdziMl zARKzhP6KjuF?MAArfAxfl2!Du?BR}f)3S}i=~}_q%6KfCwioaek-^FqT7a3Wq*yio z9fM!ZQO^0s>H6Z@#?6#)ly*?Xmh?-Q>HF^z`Xp?WkADDChy@>Uchb9P4@H2iumh*+ zmySAz#N;aIleV(=K^L8gUju@N_F4hEBQ&f}Lry84Ulk1sRE^c7;kOC&#z|PgNFYln zw7r5cK(`0I07MONV8I|n+1yHri!iHX-_hcjbaaYN?gt*m5bjqY#*$n&i@*+4;#PIr6@l*iu=uKmnS@`owm=^5Yk?yr5 z*c+p(bUSJ2Z9A*spwJp8`(Nad82U@Wbp?f{V!5Ja%8wsEkS4#?%ndnO%ATywiSp8J z#oC88-7S8#9}h_}(yjh=Z()^ubH_fl^3v_Ohsf5_0ge7c0EHXh)A=b&t2wYy@W>Lc zBX;7vdX%<&JONp!=(mQv`NPo>UgNIJ+A3+ty%Nw!Kl6$2mwf%VSoPFzaj5pQ28#aR zpooc@Md{+XdV%_KJ6`&~$%F*ib2-dClg2syFRUXbuGt?>EJXr2FVB*k{;Z=vFbV~o zzdhl*`HhUv_sD%7XIqJL#hPZfvP$-+=3O2C34lmTz51Ff`D&fLdV80d-m1UkJeiKv z-u3!QF7?3tHBIu?Q+&n>NBul5TjW0Fh1hvw>Jvg*XIuMA$hFctGj3f0!_4Q!VMR@P z@4h4sX3E}AeY;~s*2XFFff>iyE4W{g9vW2lr?i*u!C`V`ZKhRmNI4e_YOM%o~UoOrq23RH# zJEVo@6V0Asm0sqT8nG6%?pxYWb@1F-r1$Dx{0)cLUl_c`>;oX_0< z#(XS&9btI14w<`e_U~->rSEv;pGhKKxz*?--Pp<_r@XIyivKLuQG3}G9UlvB&-U^B zgA#14ZC8Jn4;N>bmI^(#U*!H$@s-}T%qiB*qcVAZZ_R^FgL4&;8z{-2>B;m`>~~;I zu|bKqSdmYkN8~(~DmgSV^i{JvxLLWqpMiSk+4I21Dkb87-L3p}`^or^9hI|d-LQCX zKHz&v=#VDDG*&IIsB`Att4G?p8)KNipX@#+j(hclY<$PSjkb(X&p9hupjM|so$YPF6jITgGm|2Tb@LY?$SJg+Anu#wX4=r zj?a!f=);ciAq`1~??TIMiwqu@UB`4~Y8=x%2XjJ0>`lYD}34`2l^)yI?5s zBg?rb)#pEa@f2opI$Q@D0WQ2&s(8)amxDBuZ8Y(W(%S6n<~HxuhUkzqGMcAB zS=#fO&VUl_A;tkTTq;ua}h`HB(*#%r6HlBvC_$<^CS0rB`dp`YG!Wu2*Uiwe@BiFWvg$pH#lzR zew81M7nV?&+aILnNPh3$P{VlGig}%EfBqi`M7EHb&*vH(iRLt!`UG{~E8A;Ye6-CQ zAzq6<{Z{{11iN{Bvmtt5i*e(}1OV$1CV#qPeVN9pGt$NKq)m2(0#4NUXfn6=k7Bw$ zDNVS%Bl}{Z5x9KP|DW@PjY#+0idV`P5(dGYCDy~AF^@xbynl0&GYtTXcr^n+fo|C` zvR3=xpSP|Oi2evpjX!0LMTLu7v=z$C;O>Bh$Hu`oHe z_?s)BQ*miIs2aS+x^nLWC8(m9yCoXj_EMPYd^trRNqzcE_S)j3|G9f;jE|7cUvLxaqn?Z7q-rc%)pog`jZ-CBfKUcmn2E?ja^ z7TmV4>K@M8`>a#EA1CpO>m{4U@A%ZqbHsC->(*~3F?r#O1cYV*Cy_%H*8zd~> zm@HCLn@2@8QHn$LY$Lo8pb$YU$iM3M;J>_=48k1F{Cen&W6o2Pgsw+Ji5tWem>I!X ze$U|dW&J*b!4HAk_F#SDL0++>gnjtt6(P8Ka;EQyao`W8JpI%5h!`og(NE8->guSV z#xy0u7&N(yM*8ov;2Gq?OppqtpZJgm2jWWpv&A56Fp!c^3Mtv6omAdP%%fia3oZS6 z_-sk6a{b0e?xf0$Xl$xp9T;-oxtWNRZ;UD;qX`k8g=-p;0N}f5MDTSPT3lYt21~EG zo^Mj7Xwny#pM|yeC8XW{xlVZ9huSe+wfkxQLKT>U=ESK4fJv)awQS(BE3gV;FLInX zqbXjyhyK{~7KjKQ=OG6iuC$Tk5QCH(9tF056yRwHZB{SH4xlarkS3qLVGd|1^NZg^ z=aCE%ahH^H*u$5()LI8UAG_%ticO@-m-k{FN^c;J#hep=-$xx*-o!fSr#A*2zOTA| zwdkIAxAl!v69zar;qsz`Ok427M#80(trFR1S5gF>-?Mvkq;V8FHC0ZD)GyNpm%Ae) z_BqOO)?g_H5XzsTEnS*daRF(oTI$9$awZ?rs5%g}{&-h%4dpIRmh99`Wbd;s*WYpa zucqo56P|%M93F(`FSH$xfqsBNFQ(_IlSjtI@~6<_T&$0tn1|P*Djhz+AO!pk9EPPZ zMVZeh$++BFVD`vB5#b!zAs-^n$u13ylMdB`S3A`>tljR_rh+d$8AVBBJ zo6%F(DlGQtr2IqItLN42mUa^J?dNyUA9@F+AatnQglpRgaRqx9;KgkZ_D)zm<^Ul9iD0X@hJBb^OR=5qq~)> z4oZJ{TE`L+5AK<>j+?D;6yCKnYg5=dEM8c1VEL6FLpom1+&!-(G}PD}Zm{Xlf_%4U zx#f)u{?@(=Sl?S zO@wv@tarh3xT?P#+NMd_r8oT=eF(T0MUj^D-_9kb3j z8=kG+lq`y5Wi{EeTGX)N;2GoRVrcCBDk_SfI;RW}$|N5->JmiO*;bT$0u8L^XJBo` zqg3n5;4Z!n!w;1VyOcU2caF&sN5FP!=l!9*MI~shEAfti*07I8xEINaa^&r`nXDk|Jl5ZX@AQrxgnx zaIxP8=ll7ftX+j0ZD+;P8Zr^Y4qEPDa(d5Vml0$nVX={%FibZzAN8=QT#c5A{mXRo z{^^Fc>^k|RIS$;EiS`j=RAT`(Bn&A8OuYLpt_habGk(u~qA%9@R8xT13jU+DyjZ-8 zRuDZnxQH@!EXgYzBVip8YD&>C06k(2HKq>Uoz8gD;zI|B7THjns`r%?OdEKqX{Ye6 z`c<~`?UrFIsr%i}6+|?Df!@@Ogg2v7ZKg{s0i%+nHkH^DJMvd1|GYC4WWR9G3aJ|& zelq6m%oY8iilxf9>|%Xk{q^za54_s~zVSzs2Sc{Q^oM|(-tjSo{gZn*r^U;LwF6`J zEOH1DuQKyHixU}WH|6UV8Y;c;w_5FuIG5J!HFkvIa`LN4%IVg_jg(@d&dkt~5Kzq4 z*O~XCKjeSBohqSCZ$RpA8Z22|)L*qED;N^9`ja!1pw?IuKiRrGRE~)f?O*L;oVa5* zNJaamK(ynH$I(^5AajBqC0?J-d@|)a7g{{k=3VNM@51_fK=@NL(QE!!ElEvD6o}Hb z*WRl?)Q!DmuSSqMYg9s-bIue#A?DD=vk`S-(qlZxAxZb}rr`RUm2{F(TVnG-foGjU zNfTbAEzW*bad)oueL!vZ+&o7%vm}EnmO5baY{a<>qglM(;J9o8k`GQ05W+Ya+Jp z8$A1Pb`q_!9SO|7ladhM7CxSAhyuVNRyG|z8dls_d!CAzEb^lf6;Eyp!qUPx>5-%F z!RFo67XR8}tORmRGB>JSkFvzIHmp9kpOR93%ek86UqSHxM9U>V72yrYs}sR<(R{SYB7!$hUGm z;d&I_>^$@~b~x=&!uqAdZDeDM>PxBVC|TTNsz<7Q z;=Y~L2TAJ+IDdwt;B1Wx{#}|T+Z5zD{d);wUY!05Y@wFk8~v22yhNv1`$3*#GhaBf zYy?MBv}A2NdIHTfv9S)B${yQ~kTNuX@P3RE6dYvs^Qg5(@zvMO;%zzK5lhDhjy2+7 zklcgrsT4t>7E!$Ad88UlCDC}QBl)FcX% z31@lQMwi_>6-Ld|E_+L#>+&+9=Wsd^q%zMMDc#ho%@DI8@jfQAAle|{#QB{kQWI1AGq8F!S`T}M=UvD# zZOgyq9^dwo^sF*itL@>gfp`apbDC1k!-mqzR6A$%Sh6;3chAd@ zd8E)=M6-P@=5KdW9=gSy&NCxp@ts=mSv9?f1=C~TMZ>uBNLqIJV=L<`ENRmr_UU)* zRed^RLM4}GpT>)fXDkiak55vEE~-U3WkN%iJQwpITrv%cmQP#*76gRloth35bsLZ> zBKeY)A=@H~3Y9hzC*lC@vH3$ou1i=01MoN=`QP|Iep}PewZ;q4F(GDO#bJ=zZrxn-rr8>`q~qNko%!CRQKQUX)VW5<`5FSLTWdA) zHAASePm^_hG*jJN-CU@p=3N=cP(R{fyfew(HH76gtHq8pH zD^K0#qMo2GQ#6ZKdHvnvr2(vFZxLnGT%bYGs^KsD*-FYTY_2xYz*Z(*>_R>)brJABb8jhz^V zOm9M$60OyJq&8_PwGZr($sxGb*$qgbzYpLUiH(A5kK~Bon>0duh?79?&(`t^PXXDf z*|2PX~k1T#-FB#yizrx&v!63iG!P&Lq z-yhyPhLVt`N zR}HA8r#e%{K$dhmD-={(;7jBMHGV1BNe}>ri!>#y+lgh3WBqD9V)4E^DoQ9z@QQ(e zz>>Kg%DBU<1{&19YcASoMm+|e^D@QV9xkZO$+$q(GG07R_TV zlcRx)W>U7fxWtetO(2$a{AlspRJh9h?eMqyo}ZLfoI|}+7ofHl&4HLCqNfkQ!8Lc} z5AfhuE9NF0&&SefQiHOm-yKMA_}9mAQJY~by%FW=O#|#qDmE>&snpH~Gio3bwE0s- zmQSv(Z!oi5DLfd9C>Qp4m=-58=?M*9W5mojyUJRmhgSq;DepDiV{;}Fg>iZ(`aG*R zyPjGLnrx>cu_;!m?2As^X9Gz*-fLw$6l~5Bwgg!Q&d_>Sv$3l6n1P=)XX?UstWI{k zy1;(Doz_F9)Z@`bZ!%>p1J499%CjOm-PKZp`hbAh0jGOaWz1|wFo@eR?#ZH>0xdM+ zHz8X0;=^f$0)?`3rp~gb7;%&oknsKSD=UsEicay6n)SnycrAfBWtFOwlsr^n16WdK zh>OVLguxu_jOjVDdE+K?7MouY36Z@%QxW$|lKbL$Xla>Ee$ ziS~U$G#X5gC7CXS?Z6+dWjXp|oehC#PYq?bLd^p2&IWN~2+kArx_!zv-bm`c;>k{w z?lM}BdW_h&*yGEUaUlTQwE+bvvgaZ!$j9atZ$d#%D^eAE2L$H96y8zvB`95BZ3CGOCE&)gKBUR?guxl9F zW(c6{?F$)CQLPMjC#pQH*qSd^i`K_R0~f@>YjR^p9|H2j`VQbg7eEGaUp$0G!AKRb z6r?B^5pSj<0nWd?5wQ<>KXzhC*>a?pYGSkb3?=7K8q`d7Egh@9K(Mkr5QB1YY@ z(#_|a48%a~SkNfe9eFr@N*&Qt!(=A;ca{YGI`G>uEvU)?%6+g6O-nAgV?s?^_E)F? zj9<)<3)p$=T5S0(z`o=k@@IMY%vPH;qiu&zz?(qsPrt?jaWhfXskJW z%^h6aw46h^8pidXI<@cWk+9`QzHY<4X!WO|PwOnCj2tF!QPact0*_nW7jVcI{9p3W;tYUny5{yEI%KXu?>R{>2B5OwR1UWRTjIVa^u=M1SB;D5raydlY3A9T&h*A9VnPXy>xA<3t|maJu8@)y07RHH=cjLSng2osh$KeH z(RRL?%Ltd_m-8MZ*h(i1$>)7Dwl|(VSlYfqs60wLfJIXRO$+@&2Z{3=C>yv#yJ*6Z zRi84sq#=QRh+CnA?P|5a>-b^2`tybclSgQ{_S$O%w_6JzjY14m3t>S{uT=dt#5g5O zjyO7At_4P-_1uU=3jn|=c}&uJEHZT;9O;8xbBiZKjZyb2+2ske?vQRo$SZ`waTU!clHM>eJ~j_gw()OB-U6sTFonzB5x#no_>) zp^3^j=#B@;Wq4?{?`U=L!>~?-bUXm9)BxYg(CUIZ5Yh;$Gy+ES#KZ?#es;T#n;{yZ~3Be&C zEz%*Qn<3K8=nf@Dj_w9^v~-UcJwRlHga`}}r3M00(l|mX2|>TV`}-5l**QD+-reWk z=ktEQUUq}vmo?y+V!~PEpl5H&@`|h3W+|QSD$JM$#bDu>+am}9Ri>7y20;#*1 zsn0S+X@HN>{9su&N|WpE@QgnG=A6Ew*OG!K6$j%Z51GL2tNnyu}p z!8$a6bsi}`LCPtECLxZs(65p3*BT}0jDShw7gHYE(df?xp~5K@{Pn>liHyHd(yWCL zq?=AEVrj&m0YAO++CP-gdh0TvC? zE(u^#&Fz6ILC5-k@NBa***@4OGic(pm*D%}F)|9kuk(Y%%NZ=u76>2^kYwqk80yOc z3x(DKgj49A#;%r%b&{Y#(%=J09@$~I zE&>Vi;{U-PG@XKg-c5_kMtnpwDLf3K0rG?V(3)3&37f<*%pE5+P2?+UGcl8_d(Yby ztz)4U@$OELrIrSFZ>e8-+r*ud4{n|w<;4l>E@C&-cx0gJo0sN;|AFYD-B;|bTw9N( zr5>zE{|CBHvE5)Ny8J$XdEuIUB$}azYfaEq`hMd~?2wz^w~OW^h3IR|kUX5yi}vF0 zPHnP`c6aDcb8DKu!}G{=>Iz-F{X)krTW9RtZU)&b-<#(t={hMml4L{HPckEpWGwo^RGqpcHZ&tUi$Yp1WgHv2p?2F{`2)0hbntX*tPj}MdQfM zXNDr5S6mls(|bmAs>H5`uKqM@R;_I7vkEb)6laq_C8rJBkF{^pU(u=oQ%LXm{UooT zh>D@LvwEC*F0<&$^~)Kla!UvkTq`{x$5BUlabLZCj`o$)?-6+I$%r?BMQeAA3Z%%} zS+pJZL_is4RQ7JMIJzmPo8kj~>c1M%H2brV5l369rq?fAdGq7_sdr*zajmmY2DqX& zo*2LhLK2^K*xzt7cV}5qJyuP5QL9Ghx1vVevMXTld9h+~H*w7b{f4Dowmua>cQdpG zED=1U$zBQ+ud9$kKfOJqBDJb~1Za)8vs;TNeEFDMtiR?2J?$~!8MZt!F-v$5%i!~! zKH5Eo?2w=$oL%u&bAv79Bdfp|hw1RDp5}z>FuB24Mzz*1+D+?`dZX0tNp+}z4bebz z*yp~v1BuROi5(yGl0P*Lmzm9?#JV12DzDgW8Is}tHF$Za-}V|x`?_H^seIm+dNLp-*xi{s#Z}xsh^ZMoY$f z`Kq=__?$1#uxky#6QfAe4zzf)s@3xBND4icgq}|}80;t;R^-Yyi7*`efeZIIU+z^7 zdU^2Yp7_X)=uVNg6>8YHPlsx+SRj)&7AF?&`0%WbU}ax)&)&OY|8d-`4*^`hLrq_j z%B0QNUS?VrQqcqlsr6=)@o5~Jlzp4at(ojr@u| zdlsv=^$)4@Aw6*hN2^wi?M?`?WFbRL2KD8&CGo!lXKPuh!Ti#cPTSDu(qJB^6Z{ zhr3$KLG=3%qp}=p1{yqw>wz@aF@|K_m-+G6qTmQ~%s02WhtEBz8lBzFF$Mbnf$}Mx zv1Yv8lv5xlfXQNH5dB1;KcL3T%*NHNLFMU4TY9#sO({%fM|HFzBlQD6;n1`R%PKW2 zJWqG4N$M15tou;-k?_C2wVi$?Gb@%*?Xh)_%&#{ZHMaaS2gARjzK%=f1w*9&{QVIp zqNFlUFvgx|QbyV3kr!*2H|nJcYR-sYg3yto9@oWX_BoHO)5-n??8$%4RUTAfL} zVxt|DM^ZC84oy!l^RA;A{##}T50H!WQfzcOQZP~^J1=eKE3`z|ua)LoxX8VpHm@sF8?=l4 zN!^(qD7~!yRK5Rx?KDuZ+@1Zxaqe5;`aZHS+DlW0cX){_D?K}BacLQasaxNVGFDdju}5DsQ$g2T&d9Nc zthHpPL-VB`u0N?kb%~rOVqN3zrT6h? zIb^Gl&S1&j2Tl^i&)3pc7EW3N6d1isG9IIyTDoX)-Vx!J~AX?Q6q4_Ua)q>m- z``@CpUTpTdt5mDrG465hbs=MEX!zb@$^Kd6K;8^f`uY}EX4ibLw^y1HbX@a;4C9*N zt$Wsuu8*B+K=)&f$}&558gE}XyWv2_d0~BPa;86CSTayO9fm2nKB`}_Cj===;1f`H zWnNsz%U0_;A{Fs{zF1Z`MXTbAD(SJzkQS=kN_G{t7 z<2Mi^u?@df-XyKt40>@jS^G9UaA^UxDRaw>-v$EQ{!=jqy?#@PDKGWaBG_poH2*{t zt#fCRt?|c3MVJhElUc=yckeV8DpvSe=9R`JI>-f9(MbW-0N)D5Sw6(b89 znLt%kZ~gFLrc$JwVJhvKIrj&wE9~#-4dKMOyxLAC{L_{lHSiZ>{C8}a;ldZ#$fmyS z>j{57a+X=$U_k2zH8`Q|(&r}>`%jrhAjTCtJO^g0h;!|d4Z(`;3n#~=XD8o9s0=BY zMweh-xBN}dJM?n|iR<|}-;R|Fa2@Ke2Avu`IGi%nd2F)DlTW0$_a#CtSJH%JHUOpj z^a~9}NRED|zP>@n~Y2L@`Fa4Ak!!>b#4SN^tkNK|PI?LACPT!A~uacY< zmO>H(zYT@qr8rD?ymt8rx>g4Nv%B`C+8|!;Us)$R zk5)Fj6ZXWmJ#)iLE2S`JB#UX6?dxyzet#Bw>IkhG$g-LGup*8wuk*!ictlx1(|hW2 zGIeh14>=JlM{{GJZk|tlAEgtLLM-p}UR#vP``22H{(WelJwN`Px~*;QCSuOm;Qaa1 z@v`Ag)ZfjiI`)7+(dKgzyz32KEvQl-Z;#PH8oH2|b|ReZZXE2vDHIp1=6Xj-$Rr(1 z6F@YvlW)B2^?58MC)qsOdyM?C=g(bUQ0*4{#wAjJYqNFU-h-;11guL<&e$X{Z!j15 zKo|i@C3mz%r{=Vmu|L^S68t>AKCXM%?=JSjF9D#`eoH$DXef2y;_x@se&CC+C*gK= z-mBoB2;Bu=vamsr6p0FK0!;@pOZ{NVF0p8O=r;wn9Es%X57|Ji-MDL6rtSspTjrox z*f7cqv{A8W*=Lnc^%HFJ`1VN|1CDoTcs*ra$S;1emwY7X9gWBjY6j%#=z5(hPs(qbob>`G&gZ|u8rai)T{E`g zhu%T=({p29R0Z)3;u{`N4GXB{1bO{3BpG3KyQOnaKxPegobmM7sJ>6J-uv4j^wlR; z!hYuomg%BFlvKctFGgKo$Hdo1>!T4&_JzW%hcZ;-QCqTj=5mPoF-B6|@uC2M{H@;E z+o`vr*f1jT=B@qG7#V(u;$mMjI>>T(?@z>g^Tc!pM$BXXBX>Lh&^*^)X0K+1ote#% zvr$lz6r*!vz?u^R`?Ml>4yh2#K5>G zL#xgf3?w=&x{qJ9DGRsehT*~wqhTD@>V^*qx=IYwo3caAzbqN-o+RFWsrRzXQKek6 zENRPeXAjR7=}|*#^{oQ^ips{mXhYccn`(bCKNAX@05q5t@Xw-d=Wi5Ud_Rx1aaA_@R z`@DSLT5SK1RB1#5pTa<2PJsv(vxnKTQhRG~f}tGmlu)GmX!?_zPHxtJ|Gignk(ZOX zqD*6Fgm|=nd?3F~Am&vY=DxP=g&0{FXt-;x`H9I0*o&c>lsh*uGPK=G-9GzVQlXUl zU79LY74s+oXTmik*Yj~I6hb`^BS&+v!h@66+$&eym)gY5L1+Z^lfPuuXx|@{AHLq5 zklXq?DL825R1nYqf)NLDcsY;lSSWa9+Ib^ny!%~M%4v=aSp$q!a zo8Y?(@Z*`I@9=~6q)7|jBj-;eAXT`xQh7jNAiuNkn7Wa8_cIj%(5r})M=b3wYdGs? z;qLJ(JHJ#aHhY%kvAA61q-1q%NDj@Ddr&g1GH#xSYlowSIk&?cOj<&?`)Q(i_I?QW z$W|?Fj-~U&$iRXzaLo2Fg(qb^GYfB_-JL7EMs8c9p$F@T(wwJmexoKE zB_D)O(sC@#$G1CinpqVQ`4fDP%|H8RX6jkL)VDyG@VqxwmZzu+PYz-quR~q)K`B|q4V=7dV zOxRhr;Cv%SP^8Gm6NF6=QEYg+`gz>ff?AO0V(9!q|Eqs~f+aq5@D4a|IXrsDnyw!5 zDU&m?#RGX+R^9sJtroiw^A3;!wA#Cc*+Gw>-EVXtD(hx%B$vOK#k@UDFdDii0VDDuvI`8r<^bFXwjor~tFbme&JWq#Q(%uhz&VI+>Ul zHH;)VYvV39tKC3C0Qj+!9scHN4~1`sP?vBllrnOxJnO6mN7o@Hy{f0enD9=xZeq(k927X z7XBfH!^%0-yTH$nJ5t`eE5G88ONVfea@B$eLH!)Cl{!u~!lg%EwCR#J@e7@?+8fGr z`ZfHreY|*{RfE!r06Y{nzjt2;-rd|L9Nza0n1IJs60RLXwH ze8I*$eVF&)ZAvq%Ao1?d#k}h0w&X3ve$3}+if>k@h?l<`s`m%~JmXd+N?SH0=Vr^n zz_r0$YVehJN1lce^FGDFaJ2u%jns;gFu;gVcRiMR%ckyZuMPSS|5xIaN`1W0LsR+T z%b+Oi0h{b|`a@VHNFd`;F*A#qOX7bZ(F=mXs3XpV`ZoCQHBdKud@=&hq&J|an_UJJ zn)xF9Y2xa8&Mby1YV%~3BlPmZ66H9ucv72GUx?vwegi)aq=O7gfkA870Ih3FqMAa6 znz>yLuMtj_Sb7ul?Cawi#&KA%peA`iP?JF0n>c~CEQgJ{Pa=ZPVgm3%^hJV>z5;_v z>!ubdbDx+rsT7U<=Z5Ci?rVSVqqo+EC45 z_%c_Fpqx?xMjnyD7Q-VzYR>WX#=CNKSF)g7O@+MhePT%URm99dVy)ZV<56<$%&JX{ z(Ii?>=|P%Nrfz>>t^0}SFueNUtTLPGw%lCY+M1aSPaD^#Dock{j9DJ~>HWD#7(rV+K1pP%d zXu9!F)E9S3(z_ijGXa{2Hl7EEH{{af#Vv-bl2>a41EFP2~HR9D2uvPYGe`or1z~^ zRYsOcRlh6{M)-2)#NV8F%~TUj3Z-wRbW$->DLurQa;N%ydd`Tj#JG)y60DfAH&+%L z26PtT1@7#pC|?_>&@n`9b1DK;}xiRnp!et1p$~ zYhMBK>_Wv1|2*BUUuGQnX}@1J$D36~z9@tK$^6k|hr-3(K@1h`bv zAVDKYEHa6KC4Wip4bWe%zwJ5Gv4$6_IrluT9q*GjLuG~;Lu?GmX4nx_ZI@=Z+e_IUhG8+hibd z;F7TwZtRb;@lBhhsd^pfo1{}{6QotyLg7q3Q6ug z3xJ7%w*2$-;n)Q?MrG|Fgf{=}TYwtZA+a4t&cd4i$k5P)!0dG5c#(La0r@2fvqjZ z|A3FXyq8pj2w*hSSm` zZp4u;kn(}Q*T4fw92c_#DpQ=&&Th-F@*M)`10+Zm)fT^+mK{K($MSa?iUYY8l4B({ zB{}*xVi*_+I%$fvOR+eXQa++?P4oyj-1yp1e={tS4`dWuXg?6Mp!-laV)g9Tt~LOO ze(Kx;V7DU^NhCl$UN~tVw(N*rIpbq!Ohj9WKEM(H2lb=gQcs^!*su>|(7<6c#Id(! z(4PPSLz;V!>tb9yK*rX=iO3s1=408#k}T%=pqVv+!{~tb*QR=+&j;F*-N^F+zeL&- zpu{_QXH_I~8GyY2KxA{>g)SAt()egpMEQFj8p~|N0AgV?FlZx-QRbI6ITN^ZSxg{O z>;7UkWdM3aTi-t(pJW$T3RfA?PDf^h(P(E(`LdWUeAxW@FR8(KThdAS@^^H3W6fLN z752j5_(L}7zPmT#k`d_R@{h;M2?3hfQP|&hL6@Hm9p}g4S5G!+SB{Ba{OGefzMS8^ zDjS+?``oTUPrKX$+(<_(0Q5<&>P|Dfi5;<1 zo8U!Ac|dM(itnmBdSa>3Og~Ndp)FqHbJTc;i`;N`F7A_!XW*$kt$omC=;`{BUQZN3 zIVVCmFm=6~Sn#Jk&AnCTR{qt;|4dgB6>iK%hc45KdhXU%Bd#m$?-7m@Sy<+m%4qYO z;{qRZDR)U8o#ziVL6G&=TypZvO!8fIeO9R&66bcIP2#n8r6%FYj0Bh$<32u9Uw?T@ z=XR&;p&4a=N;H*f+oR0YJW>;v*tZjzhpTckx4NEUH2XIfvqxf!@x4L^q?9}^$*Jf*1n!Z!v9G7yX@SDcfB6{auJTRjx~@%}u}V^ZclaBUdR1&Y z6{pAT*Of#17@r;8$R3^P%03W{Vp6eH+4E2yFp4btxG2Hl{GyoaKM)IjMfg0yB6_`Y z9TCk4=-7wk1P7m^eOYIa-trW>lqs;wQSeV< zTCM(_Y#KZM9{fY7c$%CcwH!XZ8)=l{uVMz0-Nf?hL*~-lwv3+w?;a=$QhF`o1*5Wo zBo>#f(%BMGQV!O_r*g(bi?RFAyW`-3NpQ(!^;G`BMp2=1%aY9!|tpjid!;&QxQ3tnvt?q^9q_y40w*M}iUFwW;2H<#LeYwtr@jm`taS|6vp;78xxoGUKsG8a zZ)UD=IRHfpeD_#&@$p;t0Kx*?W)u79tO_M`w~&Yh2$aRh7v5#f)cd7bQ4B?q5H#hD zk3NiLAn-Y_TPTS%6~m2hs*F0kA(}!Q3TwutohXM$cOs^G#>&o0)|cS;cy$DndYHcp z$B!OGsjBc~BlNE#`D>co=$<0o6kl!R#m;1EU^ys_{bVKl7Xf_&73duO!(GnkryE&3 z7aH_D+!%#NBavwf|-Gihb&J^N59DgZQ5?37ib-}Y~zN>ch3Ffm?p zO6|)g{ma)m?D^M)kpnnz6YLD!F?FMW6bbW9 zCPMa&iGJzIjLWCZ0;}^Y<|QPMW+0rQt4I(8ZACR8AhIT|HZtV{HzKIZ;+SMB)~8?^ zEmaOOHU5h++ssRaqBPo~YEL|8MYpMm7Wob}SnCi3s5g(i(eFcb8tpqQB>L+uC1JqH z0HOop@tRhkaSj=D70XN~PLW>}gqC;?JUzD%#qeEe;&_?RIFc4a}T>U?nIYIfD{N^&qLpEp*UjA1nkwTTg-R{U`8b;J3j*YYr+O~Zqb%13CG9&R500hivA4B_T#$rfid`0;H9S)ii z%_>`EczYbg>jQ`NPw)fvHVTm5Y$YoJbRai#e#nR-+e|TzkuxMB&M;&pA?OgaX0Uu0 zCKA5^1lbCt60v~S9T%d!`Y4Z|M4ANBzmr1 zn00IBLPnkAFDWh?Hk1#|<+Vgg*4DRiGvhwJmtp3keLTk>UfV@|4TAeA9s{t}psm-5ZsX!&^u>Lk6-N%zOUTW@)@p{9Pd@BLZl?)A4k z2l~9mkP%=3@O-5@{&#w=t5TzJBIg?`X?vc}3-&S@3UZ8})vuvm_Ge^^xQMH3fwN}r zIR)ztAG$BoLp!VU*OmBM!XLeg_N!B&oJ#vKx60+QW45kl4?mx-%t|eT+cLx$LRiGT zr*-#ET@>9*Im`qK*lgTFFkTE~>{5`#-;JAW8%s{V^62{>{0KY{@cOc#BXQ^7G=LHr zNb_dAN|U3WJv+6LIBj{Yxq-d6jO+HS{E{7fs3$OQoGzQ-&hDLE3TL?+_&GYPJfNe4 zsifmGlrHqksb@<%oEoFWmoyt$ao8dIqoT|+@8V0#w-GE2j9|-R#~dd{Su??V0uCdZ zRHd$|=l%IIhvBTLOn2Jht>J{UGRE_<@5kG(D4p@BH!gQ#{8jQdSsXjmaDw;Z$qSLZ zS9-h!Oiw3=`H0G+ye@GX{u2Bb*1PA81d$g-{P)I?7Qz>zLT&V861Eae6Zd1yHj@S4NNvPyKZ+ZZFgC~7Xfn9m8Gn}aY?C>*E;d@JhP@z+ z`l|p+aCgkNucSd_)3y~0V`iO@r`Sbz&HhfQh_0{-yFg`C^v!!VGCcQWTB<;9|MZcJ zw5H|#!{Xc!jMKPf<&w{o@wXcBcaK)Y+kA4?el+pDup8;CGR@Wj>$>;FfzFc>U&EJb z#8#AZ<15ZK%D^qwb;vQ=vR|-L;M8|{;el)2piN-lvj@O1o-et|Xlm?`j(FBqiy@$SGO*VLxJg#FT$2mF0iDNh9z2BrSQX+`Uo$`r27@~Q{ZXjmdADZglz5B zXG$WR#zi_HIW}2$6Xzxu?7&x^iYmch3Jbp4umPkKO)rm5E$4ktrN3=9_HR7S_gt(* zoLT*lcyedI@Z{gm`{3yBT=c&d$p=f=)u1P+LW5tD!I>i-?$o0uG!76eqV3g(m$qp4 zb?+yWi`*B@hH+!7Ux}B7xJd9R^1Lhk4VsP4OWj~1wuxPg7E9OF?TvKqxKs6Mmhkag z7L<0517|hKjt_6XV;t=-;|*Hue|KfIBDZ}cf&IPzK-|d4H%eb-9|ZnMdt2qMwQD=Z z!1|IMjWE8fv7D=NYjdN?nS!vG-c99IeWxN)=j$Uve$;Vk((>Jd!MlZ!k?i3B$$-GV z*z+^tE0UhHh2-vs{|7?o^E-Z}tT~8cYg_!V`lwMVui7f!zhRmAbvJ));^EnMo^+3M z#J3n6%g3>2i$X>;ZI?+GN@ACd;i-=%^__z;%U7q;nx8fr zMKD6S|Mc@b-{O}4n51l>I^tL@Ub~!Nic&wM21N1C-g?OTJ1O3Uu_)*>?Z`@#+3IJ5 zETh~=zk~X^QT>>C%UXEmirYm{;bS(>BswxhpxZGT!P}Z{d4!U_5M;UcF0~8z)V~?~ zws+|VY!C7OW_WyGIA&hWXWp>CeVg^Pul+0U$t^KWU^}N5u1u>vAk#?wvB72cf1o>TH5H5FjcVr}AtEG?o^;XA zMra%j=PI!g9%g4o9lIp+evkox=@a`yQJnT-ix7A3PxIxNRQZo)2diG!J$S@?c@utu z0DyTNMTER=>ht z&9mhoq-(k8#Xt<{J#NI*TsCZ2%Fv*X1hc2C3y#KZoFG0yQKGh{@ee_uoK!-yoAgT=}O7?NZuuXhFyQpQ>vs-ufJ^8#Eb80SF%t(JpJ1TIVQ9C z@QqWc1YyX^Jh1rWS72S=is)YRqy$meF0OE=Y1Qnt8_v2iXR|Q=AFV7e571++mzn5a ziq20~UKb`v;zKKz9U!|JbJVi%iZJL`U;WPH#v&zBF?%TM1e8r2Q zof~^Mr7swHFFybDuub5uY>f869;=mybl9;r=5v^{RY)YTeLcESJLV#s_$1hDOHrth z)K4W^MC1sxB@do8=PH(KQb-}wZ#i=jSIKY*YOcuw`A=Pi4nqcH)c2Jxwj8=)(7^0* z`ttjW@`qgg%_%yy6ZC#0WxJ*;QJ%3#>)NGj{T-z;*?$2k+U=`Yf~qqlbb?0P-B=3P zc_d1Q8?I40)sk-tj(}IeYr(ZwipTo8Q6?Y)B2g)a{n}JiVA+t1HQc2ARw!i%qr`up z&M0rV_;NE`Y{<1&LW*C&0F1AjpTWwBLhyz0fOuC$h^b@UfDx6^6I7#ghhWGC>=D^& zbaD{OnQ&*P!GTo)0KJ;{qBast6J81B-7D8;iup7Dqp8H_-i+`mn^XlLNxAtoV`kL& zt)6OkTqS+@gZgyQXne?G5VfLAbNy&#-Kpi~^dpXM>q#Jj5rjg0vAD?`EcOUBNq^?A z^jThHg9%I_W5oZFEY+_i-Kg2!3*^cSx=Rhbgs`vNK44vc1U%jL~m zHOKk}mx|3x4om&v?lL`alTb9iFlv399ywGFJ8F_PzKlmdeP(8v^S7Za{o`U^RkDAx z?ZKU|@KNuXZI3-m?ms z|J^(Hj|F?;Y)3*ZFkTb$t2wssn03?JyP@#QUG}5wOIJ}!ja^MQ!5ih* z3D+!<0QRRQxb9MX(Aszv;=4Z#F%^k0-B5Iwa(fW{BE5Q(pn__-yv^St~!m zY|Tns&Ot@r;$;aoFZ$lquV}S0K65zRc)y~o+TE?}KFd9j_BH7dL+rHLqWUlSC_9bX zs@1)O*esZky{m0epWRo>CC4lMb^GEC`Wokb_Zz+xh_An46NzJzSv41zK->9M&Qp_$ z_)w#SoosE*L26PVXQvZ6Sj_U~HCBp|SAhuW$6ltCBN+2JK?e6MUoh5C!vCKr_RXet zsMd9f;BaQrT9u#R>Tlignn@xS(&pPHw&Ne(Pz%lsC`j=ZR(`yFiun1t~SsGCYFQ9zN@eD52*SlkF}E#qOg7Vpm)652Pt0-;K#B$D<5z(geP zOX?N;`Dl+cJeDGN%d{YAh-9()iScvKk0Nx-HKvaC8iXf17DB0?ILtrKWks#IrkGE& zv38l^9c~AE)1QUfyk}FF<9WCB0j>Yf5n7Kh9=Wq*+&lb$QnbehuB zO66nCWHf!<-}Bq_U-qIzXB=)l^@{`wq8K{oC|^>SPxY48(U>g8CN@2Po7rQkMjlDU zaXp{4f}iP&l7iJEDAe8gKK{2Iyq~Y~&l{T$d;QHkEmgK_bmuzGgI`L_lL0p219;mi zUz(WESy5CtEfnl@g!w(R8iawEo?%|Z4~F^uHm;j%wOYbiWj@;Edx>fgy;S5-;oj<2 z^oQO79s{B?h84vYXs1K!xo@-@zuev7JhXmi6XKznqBGRkoA{z5g}YOxwS8dfRz`?A zZQiWQvWDl^|3Kn{i!$W5hss^=lOm}lc8;e9(JGt_WmFQGDbIAwbt%5z1$t)QcF`Yd=JwPR`@8V_ zTVWzCm+IE}p@CoL^N;e7I?_?$#kz{0wsFPr{3D?7<(IAQpq&N^$S3CT-`G zTzE(o`AF2wr`r68>79B^1=AT;GPm8^0gLueQk%C&tc_Yb-}QDNzcIX>(*e& zz~q%8q{z~-`@(${i#mFyc44opFNd_efhi1*&3I|wzj^xZ?FQ?!{4eOJY$AMPAM12D zNqg%r1)t$@C6=@W@RB{bdgj%igrb*rdX}L*(hilMh`s@a0g6u>UU2*D{K^Xqvk&%JFh}Ka;NA@lK;i5y|A>;&;_36M8V-+k#{JyPTSq#bMp)qaxTqEvX zW|jrzk|R^yVZdLj%YWOq$$Im2kM#54Bt6i17=0qPC!8bY$+`+}s^yJ*S8tBpjxO~^ zx1i50LOWG%vM=lY6sD4b`rqyP;6hAqMQ&z{eb|?&8h7Vg_YTw+1?(S*?(Kz{%hrax z9|I5F*_Hi4>d^kKdCzsMwH;zeUTM4fZ7F6#&2N5{d&VnmD{}mYKw??^?_TSj4@FLY z%nh8^A|H*0cBqE3wGr)}dK8ZDm$fd6C0$oHs;(cpT)pv_^Q0YZI=LQFVx689Y$ak` zGcWXrW7mnXz;4`JRavK(eZ zkO#VjQ(p@1m~LWZ9b}i)6upJL<}Vt_1nDktK`m1K(nL_^pXgVxeo2;09LtMBgKis^ z)kl53|AErgARDpO9_D)$S_P_q49QJ-YJ7;d-WLuR4Uu@<29Ih$1-8=@Fl&Fe&#vRn zCH-8d0=C(J*$TPfJM-D709CrV1U71EZtmXv!=F?ZMYv3|lS2lXv&O66!p?>n8gy5o zKLnw2?5%EL_CIsLo8^*Ln?t$npSKrL7me4^)b@6DxqobHTAGq(2Ccl>LW+|R^Abey zJk1Sz6r@$pVGNpc-mk7z>6>!B!nJ1@#uA7Jr_5OTc>8*s&jlk>1 z%SdmJ0;XW^8K}tpNcEJ0astTHG8h;N-Eo^#>Du?Xy7hCA^0qW6;z*^N`|eVzTok-aqgl_<0A1d zV4uMlj(jVrT-4^2Pn{i)Gb)H-tZ6HdR5$D2X@i<%rumyzIV0b4GS)ZwV$mtqkDM3t z-Nw26`!RR8Cd5te@HA%Po{m9q@%kHdW_2KX*nOy-xG6qwOX}S7dRX zyaLZN!Ab?6LK%=~xpjSh@bgdjhIDwr9x(Tbu}nF&GL)9gt|{!k>o7e^Hld_DqZ5&j ze)Urq_JaArI|)vauhb_3ZLPHU@>4Aom0A|^9dj)H9Tyi<1LR>+vThH{P9taio}z%h zKg=z^Wv$n8=< zn7l~#3Lw9QFl2mIZ0O?W*Yq>44%?7v8{2BHqSB`8OkeRrJS&OJ#%#QATQX!3MQ=LG ztIf<=_)0af%5788LwS+{Vj%vD1UyariI{TDl*y0?+4F8QiQde`c%gx~uv*XJWOxx? zN7l$j3W7S^LYUeKQS?~5)%$A#<2@10jdGf{Q!Osn!us)Xc!i7Y={#fo!3c|~Q^-a^ zH&zm?D*OusQ#JLPMHSM~I)725;+J8nmDxyxnB406DWIlUU+beC5(b(@I(5>AdduP* z8)F>44tZvHFg;rl_v74oi0{BIFW_7jaX*Rm!B1z0O~ZeySXfLFJ>2* z;dK1sk1VyEk&X6+o|s(8+n*$ZXv27RB^~q%$H|>d%0E{0TjpGCG@R%`Vk;DW4&X_Q zXHQ52j7ZwwV!S?ml$^1CCbc%_MWk6$QL6)?vXU0y8uvFB+d9V4s&-Z6@djh8D93FM z#OOWewOk*IIj~Vtk&e=U*M|k4hO2S;nVKY?0&eXoL?X8ea>7HUq{?hd6nF&VQ6l4` z9U8CV;ujE1>1%~(rI^3{M11v}ugUB}*IXVscjjR+fVn@ho>=KM(7_U#y8wTGZmkbO z4bV%?M+n%g2OJ<63=Kb03&=OOP z(#x>^{)=j7R{rJt$S_Lqe;{Df52LxT_0Ob|7sEKgr>p5LMuU;@CF9r7HFgEtIF-Q} zre;EhN#z;qi8RrS)iFS5gf;Q@tw|DaOc*|f98j5%Ca?sdKM}`{0;KE?B=MlS_-{1F z;isw*g3f%pHi%4fBjZ?~Rk5xz9v=gK{@0Df2cM^uO&sPF=gIhSoJZf6e*pkq`$Nh2 zLpH(xAb{c{2<1-BlR_Pj;U7DzVgn|JgXFRLcju>Ip%MoOoFJvQhByCs*%+Xs)+JSz z)}LL??qb4m{^bKHI4>5H!wt4|fFn&h&RDL&$`5RUr=03Dl7r*FqZOzXYl)JFBi#q9 zA#>T(f9pbUAc<7KAR)@XoDQfwh{)0MB)uGrl`@-PP@};Lj$|oaTbJ_r1)61wXm-sw z#n`{iDGP{Z7$fD3eIbRUv(m1|=v$G?hPMF=xUk0Qck~kuSoF6;eb8nh#eJ@7zDWvOu^`saL!FT@8eL+&L1aQZ^8y+R7h}00yJl za!%E2!?F8XnbYoJ##=6FPPZl{*u!jsD*>#=4iOX}se^z7TsES=PAI*wK#{*BETE$YuAJ0^88st9Qm8ixlO9(#~4=Fu?t(yG{JaNTU(;Soi zhz{Uu#4n#e&=vp+S-kM)tWj0M8m;)hRWnEER>Tml0A6@#hmk7{cgoXY7I~L7py8ugP zc$;|4g*Xza?tgyeT7&OnpSf2)O0f5iPkWs_u@>=!ab1Ng}^wvQ4DnuJ1jXcASJdxwO*`MkkK4b}L zPWXF-zo&+>7*>~3VZ6zP1qafHZk#lhr-m#bl{rly!-8iK%16`3jLj)BwF}7TlWG=f zQa69xo#Jp<2)mUH9lt2xZIO6lgySGTLJ!LYfJ_E(>SV$ zwyfUFwA`uM?B!E@2_{X#|8rz!4P{E84&O zA?%4yWKq6+j6^yaR2(1*QMoA&nMv?Vw9F~KV00gP=ce|5G@W-K)c^m$51E;9*<0KZ zk-bl{_m;h~*JWgP2zB<(o@dWETa=x>btKLXWo7gEy}y6_{`QA;-d^{5KAw*U6GcWs zmmQ#Z03`F0d$4`==j4!wF|Ly15Zp{U37Qf6py||^T&M)oTm$vqOwK~)-jrS(j%I^w z6y#!0ZPH9H|BOC{Zk)#*37Ga3(knj@s;lemsq-Qk-bfI{*^o}b)q|!~)AY&Hy1%4> zr*N-lVQ1x}*lby63L)5}nU1T32tEhmlsO!eN=H{hSW!wyNQioX7{R8ZWRjQBBBb{; zpo3X>z7~+9j|dpx_=K0OsVjkvI}L{|wfza2WdvdaZ%eVCJ|Q*|nr+TeOiX&cGE>Yj z_(EnYO$=T6GtK-n@?KEske9ku?o?2)u2z(_x;8$YtP6;+Rv>}~_`GqaDvAIz!VIF2 zt&sdX6XAa^Qt-C+`E|lZ8MHGvf3CYyPziUJn;4r3aB_PZiR!R(5WaG%n(6qJ*$x90$ssem!h_RrEqRoHShhMy4|r*) zgv|Ku!Po{RONVIwmb-cq0gfdm68IoSJ0cC}JV^}EAkKl9MYaSDB_LRWh8=Q4_$s<9 zVRU5$Va*^FSqN*A;6Ky>K9o}=+!<%x8w%JHL>x%G@0@uQr1bNh+4MJ%crZ?;8Jy%) zzKs)&@&B+X{h6~ZJ~ z&Q`k&5H#=9K^`Q8>l$tL32C1SYZc@4PeLn$Lz?Z6%HJrTU+c%|^;!Visotb^2>={I zkJ=wD)wORcVd-|kvsoiCK!olU`BK#4ya|O|Pb-p#Bekzkz|V!6$7&~2l7(~! zao9M0s#%(5G7_Pw8T*D3mb6j;rXvnV`U4Oa!ZAEbAV@#XA2oyqvGwkt)fUTX!h;PO zXpzL!K%yq08#oO`!q)83xT<mHW@oGyosd$8dTob}rC zyvj3_paJz!vS#Jr43f$T9T3Tp4ole7JCxWo(ADS2ao*1a(ZVHjS^)O&gvURCo(d>JJuHU12qZi}~`d#CRY(Ks?cVIC+JS(z-;Fy{` zb#70Q@V~3lI`KCuze~X$5H4@3?5`q#NBC8;IfcmGAB6EjGHETU7jf{w$1uc@YVBpr z{i}s&#Omv+?u|nd39w9|t4QO}XAIF-F9V}LdXzDpneqq7hD!dq_vR|$vwm(r0>U6P zBYrm{6!otDcmxvl&*)Sf^DXS#>k_r5l2!5~9;x$LNra#`5K<(0j?QTiY}TiKla?1? z*d$7%D~a1@q16A>n|7;eQTSzvdtL=dn4W-_HifQdLDW!OeRONNo~K)htkH!q*9Qs8 z`)m0{!w;zS8DF7f80K2hts}3&PQ>x~X*hcP`XZP-LNn9jgn$8aL$3S3g{2Ng?rp=O zMMWgUxgn9^+PbLEJD?!{n$f#AL#kNg)t@C+T6S8MzdO=iMLhfb^1dgS24~9R_qiDS z%Qj<-=gux)j$59NVSH)pe;}pE^6{^nm`YwVGpQPl^Q@k(z;cTxha+U(_b=^R)yKv@ zsg&x2JG&eW0SiLkDJ{_{{gIzRYqu zfr3m*L`>e`dOg8ZN%_`GcC-ube_t5w+ybk`I1wD$?!jrTWc$y3reBK z>sVaW_(^AqytH2CCTA3rfo=X8BvB_8zwM&h#_W^D=*{R=7s`4aOtSKxZnkLR&vxDN zu8D~z!&OT?%D2(R+hAozEva%XR_8VH8n;!%I zL>4;pCI+M*IVe5*SaA>OW;sNm2YZ-7NbV~9hGvZvi;BSfHGT&~xH#oeK{_#Vbk@(a zL=75+E}R*hKC!oTCMkKaY|BOkJ&rxv*PFu~4S4AqOpZPbQh9%7DJIBYWZBma?&3(G zXnRrM`ru6mMTCgQlLxVMj{i8b5A`_1Wty)jry1(T{>e43Q+ffjZdm0-__)eej3>VI z$WvHiVYv=Js?>bv6E{Ry;6wCk@T>#Xi_V|vFBT~RHy-->H_uWZ3g^G~tsz7&il%Ta z@QC^E|8N$O^3WLU@GG-@Pw%*g4y^N;I3}+XABmM#{u5?~WL8v|^?VuRQGnrL9at#q zZeI9@f1_OD&F^7e>afh=e#>Ocv_^>A=HX2a(P>{_tIQ} zva`)IF0k@X?Z0@f#mOX$IYl25RK+pfEctMl?B~c|y}MTP`JU-R_Q#Fl$M)d26H^|h zPf8t6;H&AW#yQVdBwJc#V_ZR1PtPoQZ7{Jp)!|DFK=nEl-qlGLHsGE|H}6}ZFw44S z-LfK&ReI(8FK6aK;yK^{in5!{(;}$Tf5h?gy=TQ_o`FqdEd^V!cd>L;UViI$+)90+ zb+2y&E9K^~%mx=N(?lNKLJ53=68!2~kC=m`yAA0%VcymImfzeMCVJeSlt=q+wtN_B z4T(*dAF-~>vaKp#HgfRzL8A0_)|FwQCi%x6NsC}eJ5K@x7AW4wC@ZehzUbKnyIIBf z8-9HE;f`;Szf13(aA<5__S?++gZH1M{#>@| z8DD5o+e*NYY}K}=4)^6q*|3Rnj%E9!&nsn{1_)Y?Zf>$LipIXXcsqwIn666UKw$kK z1?j4pix}-<6LFbaMOx(YQ@-6pYMth$Y2fvP2O;kLJ0O_c#}ngsXW)*>{i3NgZ`{ex z(-&l!rAIi{cQZfrcuA19-W8F`h+9IYz>|0zj8574*6@_aIoem^R>>vAAlc#4vh<46 z<&^*Q(ylth^VhTY8Ad=kyG!9$9OEr#pAgY3%ufYnH1&3EzAzTkyGm*0!?ah5$~s=1 zoAIPRx~LYr7J1Wh^($E1VhTSvFYM1@zdse_m$oW5+rYPS0uEd(^O$ARK3ACrl`XCO zCn_X_JTuLBa=$cMTG$Z0Gl*PXY~2t8DFj=i_1K;fG*0ju?;;vs7No*mYi=$^H!{F& zg!8MnW}FCtCs|$%k}?sl4471$-V_>P^S3IQY5VaHuw(=z_(v)t`eNIyaE4c>&5`}zHy=B zE&+THWq_B-+$1JMDeycX=l)e>ONyo9*Lx;@FVqWxy41F-cA6i)6qLU&yB6!>yO`&7 z)C0PYVxmo-#PJ1s2XAmA`0lC)^SLo#rKtKkLAXiDw2bij#`&STo{#stt{-<$@qnIw zP2(S7U!C8P^U_Rp2^SB}?7vk$S$p@;x9}k`HdOgu(SCjODM0_Ttl|sbQ<+~W>R>HZ zRp@q{J(`m*bM!kEUaxDgJ_+)~a~@zj>K+*DaXq%Y8VWcaz%PXyvjETmzl^NoqHuz^ zy@+TJQbr+Wj^4fYj*w=(c9%gTM~h@mhi!w+FxCTG8%A)W*<%+u`vsy%uJ5S)6Df*}&q^`TzBH!-PB%*5{!Mbn>QK419s&v&MjdYU!2`Rd z{9YDF#Ck2od923}DzNpt4@oZaEZ!e;viN*M zd{amMLEb9g%18&B#SzvQBKZUom10de3G?)tq$DY_mxIv$vBrX@q=q|WRPd8yqbHuY zsS&(`*p~8yX8v&s&|E8-@xIF*d)eJ(D+>{7-qQS4+vMme!v`pDkq-E`qP^fNIufXV zwi0Ji70$ZC29v&wN)$mU5P_&w`kJ~W0xFY@gHFglL*h zFnN@Qq&$uVb0~qxp;^*jT>XDmM`}@|BA+U9+LmGZTs|0Kenlw= zNE_V$75OH9yZRH#|NYtJ>x+Oy9gsuT2HmYvSi;K72W+i2_+dVmP>;pIAnDad4Nu10 zH~mR`tUdR89?6J0xos=RW0;4iDz?A0a>_Z$?D|(ALH2PZee-^`EMFg5tl$p>z7JZA zyH&Lmxzx(5yyuXt&RE51`6%}Tt5FM>r~(!{g};{LYV>>%OBGKo?w=LcOime)P(Fpf^BL9xp4}Y~+6wqVA>N@v_tc&cH?GRfhAKT1K7aIEl zVIl8PTvfU%bxaVlAm(2?g);%cJuJ&v`%6MCdK)WKKDRmh}cQB_<(r>LIb9sT87)rW4SKWa9Q^U#OZO&)WLVba~FoF_$XXiuqkl-1@! zvJ)o#Gvl=V%qHVrKUMpA3kvI_LSDAE{GxtxLp+u!!HJiEzQ~L_OuAK`vvE&;m>Xtv zw1eD{(&?A1Q?z%l4!>G_DkofQP5d`AjP_Wdjl<)`+5jae7oLsvv!)2}Qsj1VFb+EO zMAy^oUx(xW85_KRA0Z(bc!POvDp1+|66U8JU1@8a?<2 z{Hp%VXN^TsMyY5aKk(J6i%v%6zfbh5L@5I7?%9>p?tMn_MY^X(*v-Qs@Sy)=yyo{C z;i{v&bt*cpx`MyhDq|Zyez<}gu(8FLTG4i^>ke^j9&5PEOs)#;8FTBgk+GU3lcgJs z!hb}C+yq3g-a89@Lx<8;)gT!^FGgM#Q;|2pn{E8+x)^s~f3Vt%@o&fT3i{_Et8@`9 zRFGu=-g^DELY8kvhW4XKY{jU<38-GXYU&glIHZgTv>gz~`zo^ zD(vhu^r!)SnVj!Of)j~Ck`Q|G)pWtArcU$=PH%0wL)8>95`YJQ4$kU5SZUu^H<>%u ziJt}><1Cd7@YO=ctA?M@R_1FMb92qGhaHDdJ+D0!%s#)GeHydNd#L4g6xJ>skoqv1$ zRc~<21Ot53&@5qvZX z;?_q^I0I-#OImA|IPf)Nlr?((=_k)bMkPlIGGgknp0q!5|AHnpX5BdAvRFS`=UQ{m=jg?$jwlE*qFXy=Dcu=MD`uD)+tnJ1@r_t+`3p|>*-%L$IvWmC z&!!-HrToRSg!^2stX!OdJS!?5-14uGw1B5yYJxT}ip)CpoAF*uSB_5tnrsp2>BOR( zMQD|4^x*TtUoL_`63=@E&~M|veL*5l6SnOt3Z@zx?CsI1UbznApH5du(m(u5aG0Zr^zdu>iuSMHy@R|RuLJh7a}bpg zLp*e4Biy&eXBD|sw>3Xq>P2)Rn#2_{B(DwIq7t;wfu>=b9^+Dr zI`e3iKIlLYsyy;+*Fm3?RLRd9)5m!Af(_w2z|Gh6z2=te^l2uK_gUSJ!>VE?|5^vJSFeHBT8m~+1gb%vBFAT*GtX{$l#CR9EC1ehX4R5hoi=5F_Wxsuo>ii+l2$ej< zbPP9pk?y+esM98z;X*c84UV--#b5Pp;oVmKE06G#RehS>yqVAjcH99Jg0?(BHqwTV z`~qu?dLz><#orxG0BKCX{2*B z?X|w!N?aG_$kJ>|p5pc4Vo_-zEr1ZYajO`NU5=$_R^pzXTQu%ealQ)sr-7!@H2=!u1EvF{5WS zALd^+vS1a=mdS~=)8pBRpMMV^`Iar5d>y;ya{G&7NjVo7cx{D&(^^P?er`&$|*1+qiNP@>7o#h5CZ|U2kAIN{TMOL<~*91@DHbi=ch`J>4Ta3 zz`r@UxxvOcZc@fMbP3PNSC?vGeW83NouAaamnqM|J#Onarh`{RGH+{!j-SlUIDY5o zJtBZI>MZ(km<5u${sdtW;;8xNJTbO%mzuy^1HSdANmK{WsQ}|2FzQF+zeH=|i(L>( zTeZ%Ff-`O%sbL4;f7J_Cj8AXsR&awN%`#b_t?0X-xi&XArk|}{JDLkR5?u<({v|3j zk*Jf_s=%?byrguLkI!mQN2^7??H!>ACGiPsoa3utUtRsbo z4i5iytF;PYqB}HnNQlGSD#?{>dOm8EFghDB>gc@;+HS0nKw`vp+G;_E46?KuAK8vn#YK?*tTG>rKtfM*Pze}-f7(;y5KxNq zE3Ckx&dZXd4Jc=546E>!a!C#5PGOHchPTtEwI8+tUo=}B+SF(n>FeDnV~FL=Kx&3) zOoHpl31q8~${?^9wnX&F zf$~xzc?7MIS#=>< zx^3Xc&pxe0ztHAA>aF=?Ez5g^e{KBaQ5&hmp;2G*OgYu(InquoJg!$ULFo^{Dr&2*h(pw0Iv0Vn&tQBlu!{U z9dyRo-iy~@{#v6ySeo#H?}fS4%S;)gW*HM%rtN0?wheF=cl3IG^8!5A==lbHMeF9m zN3xVoTyH)(Z8B}*apnDF#h0IBS$Ks6roWaA3(gw^RkF>#WZ+}B1!VU;evW~$xp>AI zMs#2s7bsm>r!CwtevlB%n$xDMG?F)5^{9~p706rCHpurfVpCuVtec`E>Rib;pt6-} zwluLx&yfwslnGtW5%LC zTlQdhp4K@RazOE z$VsJ}?2=~r#ePpOOX%CIqdN<};fg|G#9BzU?(IDDW(&S~^z)^{hl=^UE0DK%dc5!V zOsE!Vvgw;Vq~rqwB54X^2_qyj7ROg@<}3t^w-&` zmVK@5REwm-v`@z^#F2x>$=S#J;VWW@c&++ogq)uKU1 zaXgcf=$Yn(5KERdJ6w~~8W^b?T#wDsOHTpPy(VO3cdLtJ4b zF<#^>(qGy@a$NeTO6lS9Oaxp-FTA$|WCZe)*i)e?$p-zej1Cg%zADL`*@(-={T7y0 zxPj&tj)QAsgkXa}XoP|wFI z;j7t@JII3po-$~#4KRk^sKv2W!Hsj0tt3}bC+y}YfDFsbI5E2r(uhgxp%4MvIjL9r ziRxCX-#!r$u0c1ltybr9;KPN4`MCzFXDF6iz+*zSc2Bd0&vZ|N1A927tAd+$2Ym;W z5^Q|Nd2n-Ol{o&1fMR!D0uD8%D1tz@Q6QcWJ%Hc=*7yh4ksyCnR&|BHDhoi(!)*u1 zG{82p2>{3;%>8sG+z)6X5Q(ffF&VVu)vFW8O71Je|EkLFt!#);7uxuj4h3lo4LnmP zpqrGfR4BnD%#i>VLkT8bAz)}HIgXDTnLE7@C*~r_G6!lKU`lAtlV<=FDM^lT8`*+n zgpn{l;>B7h9vY8%udmJ-G-;2?#03&p2#|`VL5$p7uFdQxAe3McB_gg#;(At29&`*# z1tb_cG*m6&>GXwmx&9?BKrUtJ!=Cbac}hR4?@HB z;_8so_j+;2nv!W`BTpwG(YnBqm0E6D;0OKt#PrlM=z1ortRm&l_j2jaUkHz^nIr`r zq|d*!DF+)?*s00Pw~}lmL=;{z*(yV*>Pw41Fy+rru8>+bTAS_qepvEMMBA;bS#>0& zJy0H&!dXGyOn$4N?R(62@>11h_(+s`Vd zzgPw9`(fM2i%ox!0MsL|prjeBNC`hrhfoBOx=of@{Gv*Ec3eE{G(w_qP#$p%10^H& zRI*ij!Q^-4gebK+PdymLi;~ENPyHE#LMm3lv-cLS+X_hz)>xzs`asW1vg1MSSk(8s zl_@+JPc7628vYST2N^JtfEpV4Nas91bm@6K<-?sa71wN2E?xnI+*k#vtNfV$LR+D&ukieG4D- zvc@xe6VjC=IG+(j3`o$t-A?nsW-H63%i>Q7?+u8@A(WlVZM_LxKT;*4*qHRlvG~(gC~$MB9qbkgI+u)LTVeVUaK#_7IbL39xERYx*Yy zgbg&2bx=W^LJDoj2_r3DVIdwMbCtZ-%h-i9;-2lR{SxsGK%EcK^lIWlCcV_9W|F5! z9+EGW?hQck@I>q)Jn^!%p$eGL%I-^410vf%h1E<739|YY2|S>g?7QgzUCs0B@Fy_b zgh=mF8Bzv=6D0nW*FvrfFU zGt}^HB@nNo$doMG%$Fhw_$uP?E((v-hQdtqcpNu@4D{@1I}xrnX*K5qY^Jjdk3W<5 z&wKy}azG$$$hH2(*F(*buLJnL)W|^F)&yvmW44b12SQ5~M9-ZQN1+ZA20jMvSa%Ul ztQ7zrPdHPWx%S<_{gZBU*Lh*GH1(ZZpP;8VG-_s~O zp(n(K?LXnUX6wVZZls*7S_|grCOKaofOnL7|m+omav$&AM&I@tFdrL7c zKc%LKw9~Lq3Y}Vx1mFoti?o0PcAGPrcf1cEL#~=2P)R+=w*MDwp`lud<8Nmu85^Wdc@P*O<%=3%JxG9XGLbm!vg1{txbE;p zc2LrnKm~_^kjBBk>_kYL%{xd}7L=L*?ZZO~4F>B90Sy@u26zJSKWj>F&S!u}2le1% za()_s6KM>}LjFb-`h%o(;mI0_VNe3$aS)L8);!f-^WD>uR|hHVYvc_^4=KO~Lw^Tl z@MxzorK(N1%q!bsQd^{_BxGjJHoDnJ9n;oGw3iMQ=m#N?=Rj=?Eui8msA6V21=s>r zE?m5QRAej2!xNx{B0vc#QhlQ#GICr%cmN`@wGnApif8CEPIEx+LWE646207KzZ6GBJ@p*;AmDuP} zy@VJ9%_(evRUJZ2VpZsviqtpsEwlpwg(rXo2BM^iT2;ylZX$eSfpv3WN@t9#l zW|pP-P{0~f>VVCQ^DPG-DhmSVmZ$^h8teD)0SR1f2##!J?_1Q@U1>w)mu4axf=n;< zOy^S026_=v^%N0D3EToE!oTt(|LQmg<*9FhHa5!-{V8u&eq@eC!Jg@8g=y`fz zdOPmV+ae{xfjw9H7@SdOLa%|9O3z4ECeK?B6hOW5j2T_+l+MYc=xe!Z^ZQ8i_P5)J z=zk!j#~OIDubbR@c@hSPGNI@9(l%t(90*@S)hG7|gx-~Ej>h015Se6M%k zy0HAxhvH}{3e=+qULS_+T;$uOOn)&OD5|0m@YK=E(#FT&a zmp{ZliX7+c);4<2dHAeVzL&T4lO4`eYR{llwW8~cbE#CHpf$*D^MLti^soCe@_ELq z$D5S*Au(0ijeJ=&fd?E4x1z6)3WxyW6E+V(ee8-3t^j#m4!2{r;~0&yGoc zHcp8bJU?!ALJP`V^!ut8mxp2wA18^H?_7<4oW$gxD_RHCw-8_ z5I|25e<8fZFN^%=Ck53`+V)nXw&0lJWNae)1V$2;v-L1;)7XWCVl2ogIJWua-H#O= z^+_n#gv?mnwZ5>xit9sGO0s?FOE1W$o6EH}SNt1!`JlqLfRJ<5pZNbQ!D57cUrW|?ew>B z=6@i2G)M_N`?BAqfq)P(n15dU?5tba+q`b_9xY>GG1lYM5anTORpZi#$`*1lKYacS zKz8EGJMy2J4YDZ?st$o^l774*o6zcSyD3RFE_LgS+_q?lz?pWH;F9yov?ss)4@Bz< ziYGffiKA$Ob*pGYBmQ|TdluZBvy>nk;jg_Z&n3F4bf8t4{NFH&UncLz<4=c9Tl5c=)?4ZstxCd@14(1&WcVpS{;cwV?fjGscg} zJYQ1fAy-Pij~6J-*D8RzZVX29Tf*FISH#kwL`5oYpWqPKl+f|Kj6h##q1fd-qEL4`Bh@o-pla&YAjW~t%rUXtMUP125)Au`Ty?(+ z4xZ(TwfRostGAN{!4);qD^NF5O466V5aV{M+Xjw9_Y-z(z_lc;Nj9A_oBt zliziiCMbnUV&NGpKIPO!0N%VYn(iN(5$kso9P(eabWdVw;rY_fKE z!51Z`mgGR`oJ2}XNW8W>o~D-7#l20&Yn(NfNSY>>B-x&VT1$t24oprM1V^kvbCaVM z$&%(6yp1%`waZ-~3s`oe%{Obfi5&tf|1!=pIml=Id{VM&k-)1^4m*4@fquK)!1@*q z(qO6f^4$K_cb>C!+#dDf8a!}wb$$0MlWxaG;*M9dDba##6U1f3YxKOA;g=?#&4C}n$ZEHDZ@r6`m0Oo0FOQ8`CO9E28TZ|8W0AZ25#vw$elejTduM)ecw2mz34gguhR-Fi zNu$xOViPbP`k-OCzgWb&b1H}=1926*K9S1wjygo4%#FS+|H-eOir;*D(gC$LR~|*g ztz`s!y{x*B*R-?nqFiCHX^Na9y~ISWo+hrO4My{VP_T+04hS>}@_2cosf zHQxU~1B}x9i8#N>guN*RYkFv3J!QplFHKBh|8OswnDL zlhv*-){L$}$(()XW4~7j&T7t&wu=IJFfwXkHXr_3OcAQRJ0_V}HEx+L5%)TH&R38i zPZN-^A^!Z~L;I!Mu22^Pqoewm>Dp#yIAASe?xv*IMtG^6LBl1 z*_s+!<+<6S?Mm!dPYFnpcI8+;KRzEy6fBb{&7S=Fg;^=%@P5%(zI$K&p5vIispXdf z`bGrrGDcGupFV`Y#HHUlApc^bpd)(Yq%sjXv-HjhFuVLpj{hogyO$iGqZMu3aV&d* zVXd2;0m8TMqd4Uqj=B>pylWsh)P2CXTh1fsz}!6bJHhgR8uPFBUC&7{isz%Hd*NU5 z1fptxC#3E#M$-)$feDvypA~9sz4|6lZjCL>_?YpIHsF)M@L+*w@P^BP@+#}mcGMdI zzt~j2XJrS8-%;k1kN4M$TM`evSvF>hGS!X-V~E-oc*HXwj*#ucX1L_|dfNHz*E`7? z^YPpVp|pMCv{a$h{jF_YewUS9Efg zVxXjrj#=-asG6);d3wTXJW@>+fDEo2D2S;Q8@fA0XLLM^IU63|Zh9k7M}4WIj&{QS z2NGHU9#YbTFP5;yHcD9gH~g<@`J0o+13&3<;*kG7E1==uY}O9skQe%PMng2RkBMS5 zPA8rese9lQ;VtxHeS(4j1y2a&Wm<1i>P;UWvhPrmlvR!tup6&dSLn5L-U zAlBvseC25aQZHJYM5uzug{;OVS+azAB4l`@C5f{2W?98_W-2tWKfR1tUr*JH>79|a zGKGQRzR!qu6%QG5M@1UXU88lF0t*$_Yh~hq|6?S|kscwemA`<$be&*yu)qQQta|(% zKoAXVeJc*k3`bDx8PWFTa~(g*8Q1n9wThjo`}%tA7dcjAFv0x&fivE7YubPUQ+bCO z_pnJ;*Z|y^{m9}1DG;I)qAf|nnE1W4{W$F+=KIuB?`}Nubkob={_O9>|D@}=g+}y- zXmHB>bch2y8MDCR!O_`+I0J^!Zx}l26)NF!&$Gc}&!&p| z{XVH+E{$7De2}aR71zdLK4Cn8`Jkzv%`^i zsY8PS*C&bZyQIQqr8%FIpW)=du{w_fJ_MSD*8kYpEsZl244?<-f*BdL!1kDdB@`575gj8`RX%a>AmY}3Jd4|f+3CZamrin5O4D60&YE#iDy)BaK=d$BV+uZ8M`*3p zaNy3vTwPYGnJQy9sqne^O@!=Lw_C?d&Dv~lGN+N;{G^w)JbVY-?ZFlI8`LXGG`zZy zl@Iwb#AE^?m|0?Ot6SZ}+xykcWS{uGtsQ1zb0lpt2*+nsQ@zgpT;7&UWfBITDJ66! z^n|>6lLOn=Mv5(`2w95-ed7a5$Eb(xj7WUXHi}oBgey*TY6ioN*r+-G6b@+iN8tn+ z+1xSYPd1aG*;8DllZBVFFsD?lUE50+qijqG2vN=)yD@L#&I`E;H;U&) zpL_IH>vg8_2J7Noe%SP-Y5J2EQ4($>GjG&Kx?Q6Hv4O4W;xHw)l3{X@sCH3?#@(O1 z%IqJ8TtQhsU?6fOMUL{-ao*z8J#9G4DzN+VkS51C*OMCqs%VTO(GHwcc!dZY&HLL& zawx;&Qfc{p&-sSBy^a>=6Di!%Kc>cFNn^{Dds`Mi=vBxe*BdN*Kz>F(G4hSIe#h{B z1l)uHfCBWQ-m`NinhnIN9zSl6Y0nukSY)ntlz-?P6oeBh{>daa``Ug$xUS13_)Wp< znc9)VT==W%(tr{}{PK5Dz9KIg=f^n3==YDhNJ$3Tjvx0_*hx#j6A*?yJ`CY0Un<9l z(kl*!YN^Sg3-=UXCsFXgk>!L@e%0sHR^w63%C5^Ut4uRrTz)vf=NLeP0DD_j0W8A& zvb#nmJR^6_jwS5LEe>Mnkw=QOnT*cVp7Pj98Cp9ZvosfhL!t`F=tM#}Rc*N@+OB6k zZ*^>659YDvuy2GL8GQ4i|5atN8N|@wDI;DI(noFIKtrDuqkH_gxSc9Z`K>! z2kmxeuEynjH~`!b?kJHv>#ybXS-#boUD~lJ{%lBfs;u}UqxxFf!}fm)|0TA?`Y>G?v@2*OMsKS5YcI|n z{%ecN+9UgB#mHIQ`lU-bNaK0SDSgKd+V^O8;c?YtE`1ekK1E@KdFWe%<((AdukWoM zA!H2qCvR8Xs--`7B5*>XhtdT9D+E5y_DGM2g5Xq_e;je48j zC%)l5xim1(SEBxcAAHynL;6aU2LHVLKhWz>TX>#Iw6MVW^1f<+)72L`Xiuf}9LC2d z>oC6Q`C=q_F9}xEn#P5}Jxah)NiQ8ljg$X?sfYJoT1X^BN%w@PJueZn2lEdO@Q3i=Pl9{qB9GbYP7u+V3{NZi(u z6m`bkBJ!6Y&Z~XzuR&#Tsl}We-|y2%GNcX5-F|wYj1E@Pzw0yDtJkD>sMN*ydv&7; z%RC@SL>E&2DC7##SB_0*5@ErIMAePB$c_im_JuyvX;`?8=xPlbaY0LCAK1H!)7Rbf zUeo^g=McOwdEus-`;Y5wzC`Yl%P4=72WJ`I(4mK@HDx=kfnZE`5b(zJ16QJoieA+C z8x}f7J7{u>l<~AO)3&A+Wh3A~GL~6jU9HX0pyP*8P~PG@TWO#h@?2B2xMJKA@J%2V zGxD8ycGyb#?~Nu_XvwzF_x0)%;*SKEo8hX&Cf`rf+89Ht%~YaI>9~QN$$?1Qq~R5k znFPAcP4RU#j^xwCe(A?{V`2IfVC-h)yH98JrT3h#*xc(;AwS?~9^jt;BLjQk;pjUu z-8o9iNM<(}?(Fy zuZ(qW>7L8B6O@S$+M#Hx5G~E8r3PIH=gmL8=Zz=KbYnR%cJ5yA6CYDI0JarMVl<{j zd{4Ridb*!)SWF*c?vDgH26ukJq}isrh)mMS-FTix%&g$A=1z z_JU`xy1idd%Owb@ zrQobrCR5pDs%_Y;8F@=Pfj>j(SElE2*_DIr6*`}k_8h%T+8w{=fM@v2O%ZN9xZ->#QP7 z%6KW&0F6J8xK9a78(+aDi3P~INRF$&AU#!GVepoan_Jka2gBF~M3<4oKu75!0b0uR zwI|<|$MaJ;lT)_6ee0I7hJ%)_thzZ`k^O67hF~rOOj$~w=^fcKaM36HA$6CH+Gn!( z0>U#0PEMH_=6=JPHYS6&Ha-go&JkAiB)d;T*#suppawa66Kc8vLq%jmGfp58GrmUL zyacBFS1SrnDSQYwT3&#cCe7eUYMid=qED_Ney3j2x2%(?WSO6M<(|AU$Lg;V!8kni zt`9UOTy^0K)lhqbdTnQ1h2K(h&z;yv^59bjtO&RY8<-_rYXtZnCuy=-^?g0z#>t5a zhK5YnM#GaRC%fqq(i~G9bISH{yKj=?F8ykp;7n+-W4<;oeGHgOrAc3I5L;AY+9cFr z_`1U=>qYphKWqA1R8sPyyp7|!CfhZ943a99<&4HDa*rB|Jkx!}nG6%QKL0SQX2a&! z>e!x4(LQGdQ_2`sQWJ`r1C!Y2&cASLxS}g6nPs8NN00^vIhS#04l|#SgXA_!KuEiP zX(~Zq%bKJH9mVviR)T8<;?S(yp6GJr2A%p-hbmeXe&t1=4FV{5yM#0+LS)0j0V~oe zFK(Oc?;GzprzsDJ?z8x>bOt`v(nL&nN@J;JIFv{-Kf-q8J5MV0HPhK^=jjuoSE z#|l2#;h%$aAGrUclPm}0rkhBVB|YMBtmO)=h+aWk8yeDa%eL~$X#&!PT=;TL>1Hbc|TtGBkHyrF&I zPuBU+RVOArn@5iPut49V6qhT&dgq7PflMLY?zRcTC#=byKmb$e06hroHBH;nn| zQ-i-LsbX zjBaS?%};;2KU!};Zqzz84Y=YlhW&K>*~EVxPwAq$!riJTja;hi?J%uo<(g))+hdSy zqefK55NipLuIH2Ff5?>FOvk^9NR+SNQ_QK6)>nJ0>8n=!KT&`MK{GJ5fRm9NC?-I~Pxh3ul5sfh&vGSsA+=qT<@-e^;JMH_%PJbdoFdgNz-!+ z1k5|BRroYPef+radnah%HvrrHArOX~fI?D~dL4@)Y7)Lc)Iog}K`^U?P0yLf06$g*99+K=Z=aO}0qrQA z6kvpiiI}9lv3W`SGTs_Z9Uz$|IsRg7Hed^4=mT*s2O4|_)z6NTbp}xL1A_xkShoNlUxl$~X8gWWu&0|5-lg+E^ zV10G0h|5(t%lJtlh@5<#o-ixk@Z(8=hg4zoOK&5hw6hX;%B~S5bw_DDDu0^hT0v>y$m?W~n>(BA*e;|P? znV#Tn$;8>(>iBktsKcTvv)dr1>nrv{v0bm-WM$#KTO0l|_V+IODQv(DS zI5+D(3z#Ed`QP8^){pLt+8?Lk<-LYg$DH82w)Eud&3->nb8x2iFW`V1DlHhnsQt_s zYp}K+@IGk{@^t9GIc`|ViU2n-HNG^8ovr`1x;HUs4r4N^}Jxnx16+(@`Qm2 zdE#k%u-V8duoKcncEBM*F}8c35s%Po2Xrg$ci%g^7>A52(uyo!nU!7NX*v!CxLgsj z+Z_7i;Q%$;pB;bBEE})h_U}{ms`@TO{|EY}68PCCWX*Gxy>)ahL~$+t*nHS*KkS1E z(GjjwwfLZ5rCh=PwSZ9IWV?~*pC(O)m>;8>dLENFAeok%#sLjY^#KYn&LjTik76g} zN>yMWe`xL`D9=KwA0j8Jg-!a-6mPAFQy-|tS=Z| zbXx3FH~_~c++nS89>6P&Y62J^ZWEiras%N8?*Wo(k{j4CY$C`$gD`vy#>y`Z*9=jS ztOgIDTTbv={rsW>tfe7JIM2eq<;f3jujL7xw$_Y6cXbeeNeYVPu$9IR0lR!GN%1Qj;9`Wd zzNjQ6xd;suOYikvy2EkuatlW?tTbM&w0qu>z! zyC)bHAgPnpQK|%#;i|#W*l_BN6f|Cw0LtzGc}!0Tuy#Rg8%Ubz@CP!@;Dctuh@)FD z%Nng>q(T}eiyf1d9af*v2g6OYj!XPsE~vB_D(vcVhS`b7Hj3`+Abxu>t63lGIIb#Y5&XxGr1$(zi+C6ZB&UKDRy+!|N%g z@hQ*<$f)rh6&W2sKsL^>tqzya)I25i-1qN61A%%Oz^9Hl$FdLrJdlkJ=ReFT@Hki` zgJdjdRI|`k1N#8RFq>J-uq0kB)S2Tc={JDRnb7@H#IM%@qQGlt^z*9*=@UjwU{h%$ z5mt8I&kjOLApByZ0H9j9njLmo!lS*Bu=o)ah-C{S2l)p4#2yXyn(! z@S)N6mj>ZfEW3bk3H_K|Q<|I{(dy~B{!>?*!^1}fY+H{89(!v~<0 zq#eRw!*B?n62GT29S0Z;r8Mg5V^)!w3kQk5_jJ|yp7r*bg1{$;`6YF3hd@+$rSlSN z_~Q1A24Tdt6VX9w=gZ&p*d+~_zg0oKp+X1ykri|M=B+P$k(+s4W<$33{{y+YX|aoG z9r(_qP{Nq3ha|&Q;$_ zfGKy^PaGi}nRh}3DYRZ4@BKDWt9IQGPh{De)8>_twbE@DsMb7|S=6&Sq_`h?FTEZ<5`U#E{-#L{yxE@C@_Jm58~ zYNuS!t7sMQ>8q_qG39&nH4R@Ai%rGfRKRJOrIK=cFmgRVDfaI1bv#KOVtQ)9dv^QJ zRpW&+=`PW_-w|kw)I!-o=JjlFPdQV%9@ihSg{Cb2TiQAFe;{>~*oMeQ8buhc>l_UY}VX7eswi z9ystE<$V@+Hu~kP3Nf$O(5Q%rfSa{A&P9Us!x2k!6wrAlV!Bs^ol^Y*Mdqyll{_B+ zbczF3H|LT!zrwAZqBo6eqS?29yCoeSy=_F8?6jNyi8gM`&T4f)s8ivqQ(tjfjEHK% z(^Jspwa;sE#ZX`Csfop&#{2%{B4X&%yDw1lSPap$_G5kRT}irxUdJ# z-P?u^=`mubA%cHql`og9U4gvJ+d9kKn=K+YgXxM2RrbwfHF7EOIACY3RLDSnh$8U7 z^-~-(qXD;r>}ID$gK(ag@xt(#zu9>Zio8Wvd;(gk_9+Ut(w2wH^8bS`ltd^%spN0w-8)UXf?(n(yb zCH{y|77e>wHj9|wx7VQ2*1t106y(zqaYqz+O6~r5?WuY{&STk2K#jhdZRfW#En6J6 zz%t7RPV$*1i=U-Y-U8(Kes4wj-y`?kftP(8laE&n*s>T=&;PI(4?EUfUoP~lzA-}VJLnc#C&{oAMEXqDA!3Svs(6qJPzzMxUrxilGq zm)a7o^{gp}I1|<<|8Kh%XZuuXE+64GU*`}LAewu=Yk7tuuGiVH3f>EG3&BN+8yn-d zAVjFfad)lP-WxY=F78;uhYNQIEAEi4v#`5<2ydb4hinq!LIs0C-C!cncNpYEGK2<{m2R^$I9`~2B~O;eS`)~blgcHm6Sx!+3qXGcGqM0vfy zldUg^Uoqn#B5bbXz-4Qd!97ctvqlEQoCu)L+LY=SH7K$~rn%U^+O8jDKvUn{oQ|0? zNeuMX0F!RsxaD>pdSrPFgKayLJn8sRFYxLr+HI7#CJ`n6k-9b7GOv|J=u@n`{{y{s zdpsj1`TNP06E;~j4O8{^rfT`p%ULiLWv$mM{ez@Wr$S-L16CIGb4Z={Y)`L#f$f*~ zrE!~hr4c!nLI!?a+P(R#q4}O-(Vh=$;Ft^*6^=@iV_KAq(_?cTWTLS$QQuEfGJKYm z_=|iZtzlP{@K~hbt4(BnMT`)1hffe3_NIAvDO{+>uXKC!RT&w#?uU4TC&(Q8|3EI2 zMaMihsAGNQ+s@_m?dvOQ-N%mE%V?wmzWC zyWw)WWviF_R_({Fi8i+suB7rS#E0n3?PcYoDYo8~pD?gHHl5(jnka{S0f}vRI5AJFM3%F1YsUzl zMxWYsV#$qucin>HYXd%IfKFxCC(HDywZ>UA0KV%M$c;agrfW`ka6Z`YN;;w5H{Ag5 z4x@HSD0B7W{yV4Bl-ju@2e-KN`{>vv?@_WI{jL%;#Iz>xg^GISmz*SlnR~l%x$DTI z$-<+tGrC1{7YQaG{{|IX*KzVC1D-=ghV*YN6BWU=EOsCFE&bpQI>}FN^+^r18MPfS zPdCi29#mMX16=K4hvXYJuBNBirK^Y4feC6q0n@Ah9iq1}`R1eoVHRhDn@NvDJ-^Gz zr+v;pzAVv0KH|Cvp7*_>3b|A9T}yN&&@9|PN_|&e%q7LL`qzPo_>LFrvx_;-tCCcc zQFL zhq9yOFPd30GcJrQ$yG{xiZb_ejs#t)Bo;~N5!x$vT%}6Cd`|1?hw!Z3@^yC}yx*o> z-RqmdThYYqO&_0yG?Ei0K2n>Z!-vtXxCAqoR$Dz=luuimP{!VligK$(uGJC&H|mUo zllCQY?7>shCE;-uUoDEK*VkqQ2i2w%%LfvunUu%O?yKuag%3sz!ZGPzWxlVRv+XIb zdal6G)PH$2j=zQ%98|d(9X94*_7G2b;p1xJ0~#3rYO7ejNxmyez(j%Jnm^Z5%5ivd z)`mRa2xs;#@vrV}mJq%9#JkEDPwsiJ7x$&4`H=YE+-te7dDzOh&imUV2QK;{$VqC( z9RVG7mGPuSf5d^!Xf6n^WYzN@XysAI=i%t6zhQn80aoO(*HR@*)pN2+f%oMx#;bHi zxxCGjUo2@T@Eect?TCnWN$BIZvRc7}xxqDXMQ`wE4D< z8h#u#O&-7J`=rDdg@$|riHmbMR@A|>6~X3}`5}gHYr8`H0nNOWdpq~aB6dmYTgz@< z7V5=mho9w#-&>8guVb4jhvLc0#?ECFQ=##~e5@Th=GG2<($#xVnXuY9NrD(w2t(&V z{BQG;mP3;KjsY2^qT<-}C0oIsR=?aEBDxYwrHT6eKj-PdaXF=w@kZd?;k%j-bLWNw z{~{Ak2*4;H=@aQ)y%@vgp-D2I=xQ!5OyvxJECCOxa=hJI#G<~jPM_K}edFjj`ts%# zv2N2h@WEApglp6N_|^FAu{$*0xIEgApBAzx;1fhHeGiw|#_Hd{Z5T?CO}N<@7PR#* zu=(}SAOuOUgV$*sgJuz(CHVfeg8l9PO1SM`BojNMb+A}Oe;Ww(XV0Noi5tRG&aGeB zg^~Cs{w&qO%@zPsxPz(BPFv(i1?gY_B@pTm&?wh+$9a_1gQ`pYjd~6*d`r*bB4)i@ z(NnS}ID@kgd7@YJ|61YJ8(GWl%xZ90y!vLFw>5*7oA*b9QI9kagHJKnxeFgYZK2tg=(hX4SklNr|+=P{SA7lWX@0m{my=X!yt85QEp;H z6BuI+92Q0kCG+fYKlq_~4TW#FJ~!)T8;{-r*pH8G0HCys9IU#2S>V376L zh)VDmfU6gB2Tc)2+?sut<4;KGKB40-ef?y1f|fitP`}FqxH?KOekRLs!@A?HW#h+d zybG_h{b*-{r6&p}gAF{=wYigTtry9vOC1g#CBz;#1dU2MS#<>09?W6)Hv2@MJ6^ro z7M=U{g^k+9@mN-+slC5p>HQ&&t!hOExLxt%2!4DRXYCmVh3#`4aTL&1l8B4`+ z$=S+T9~)}HXV!Y%Y^?0B>j=FR+GfOG?67f9{x<9uqtux|PVHzP-Lv#pP@0II7cZ|C zk5&+Sow+28-Fi|6;y3h#FRYbe`C4LG4~KroBl2R(9IW z?VI>?*5AvJ+NSXTKo2P4O0xYGY)s=mC86`>R(D^#qjbF+%7MSMV0I^*7~MUpaz&jB zY-q^t`X2wY{>MU|xx+?%FcI?Ux5`j1$%r$x!&8lRH{6Bs?iF#(+4nx{$nPlD58bO~ zt;Y-RmR#$BGYnfvKNZ{HcY2-v;)VnH0&hsm^xpOG!Y*s+tl7i;J`@Q`ez>5E$8p)6 zF7=;{(2Tmo?}mgZ zDdYr;9{O_R^3>&uzV`)6J+^4}dXtV`8<{2##LmFYiQ7tbf^U2)CVtIbA0++VameHxr(r=jPEHGxeRrp)XG|@jbL@jx9Liwu1om|Vm}iz zdAgCOV=iA?Jfll0NWxAMdeGwKZa%RBZN`dk_FK~bxcSocTlJ1>`!COE5nmfYUZmHG zla1hP6E!cEIEt^n&i!;6L)(XBtx6GAs(7`DbeHz8I|$SdMv82Fd;0l=r))$X_pf;G zagXR}Nm9KNSFuYIzX{8fIw>vt#9Ti6Zf*!anjm4Z%sfq(Q9!W`tZpPe;-5SD12ZCe zQknTXiF9;GXY%LbeEW;-1|RFf$iK4}dk{U&ezL00Zc>l35_Pt;A*%u<&%p&cSf9oC z>!1+(yNcZ#9qSc(g0J7PNj3WKe+mv+v3kmKh&W|u<&vv-06D1^F{-T*WU_qGsO%+w zD&;A^EA@R*Tl-<3tA?x?%LgLDirQVBSnxgd9i0|C>d6vC-q{~Rl=_H5+6$w*G{`B@ z*e}|rbc#?S)Ms$Gddag!3L}I0@C5_(eY*!qQYWSHkJWddOJ}>Uf;a3PU_1JRbh7~) zIY;Ure9C6m6-(t`K|$Y-R#@yzrxQva6%|vKvOPoQHpEFMl-+FaCB7prDt7aJ`ifij z(sb4${S$fIqMWgt^x{>3Z;U-DGR@iF&9p7pX2eu%RMw>TFy!0BqqIgndr~^WQQQ;w zdqM-bXw56KYrYXJudu)S)LYTREu3q%ff!+gdlMK4-Q{M|!DTt3^b}0<0ueR;LYcAj zj+Tz|v((NpxdT#AQH zZ?dY51zwVRMU*tz0A2YtLRE`WZ`?)UbLuP))x8ho*t!GXEE31g91WYv>e6#>T@qLZ z+*VUcagzi4?#3Xt)$88$di96D=){mA%0!Ey*27mP13$5xuuCI)?U_@aVea>OaH_Yb3x9KlZHLhzAp9W(gy;VHu@f-NZn;;OT6^EVx?p9$%VLw`qY9jLa!VDV$KB-VtT^4 z`Nhx#}g;T--vW&_14o20QijoX8SfKBW{%Hf8L9!Sk5VR00S4ir`~yAx|P? z+KUBZX0rx$BI#%c#TRcr5JXO=z~c$yKDqMcLR0Sel<;*%Iy>I7YZCU=*(i;Ij0a0< z^F+c!b}~Y2d***>tM0HGW1ZZ|;`-=Orl7k60 zWaiQ3i5Sa5TRsa=(=tO9Z~Nye8d7xiyV`mrq-k^jUCn-Q5BcQPO7JG#?q#8>HP_p( zjjZ~&;35(d3~rY~W$~MH5B2YAmKk}d`2eRD^iTa+HSwWI6z0h_R!dN7A!rg{n{f;7 zl4PoGj3^!-i-F$#`#a=gvx2I{*p?Wdyn8!|o7RI1fisx-Fgtvi9r-u=aiOB})VjoK zjH8Fw!&~D1na_0!nt0B-`ia$}Df&dsH!h`Cb>*Mrv&~cPK94W21fn_J3Wj+igm%oXm?mNR*_ShV z>jTYF<;i_Ce|Akv8CpByXWwwDr-4lyb6#_{M?^ZH0*M#Mt{Mth6xtJ#TkRWaKS{_2 zk>&Li{E`(C{M9b>&_&(opWC#oY3|!-l*CTGS)#v_sCB*hj=q&{q!F`6_`LbyP}J{* zsa^Abqw(&2ubu(1%r5ko-!A(1%8w?s1Y$-=xr(&f`H2NcWf-p8nLv(0Qh)m0Y<^qH zgm;M}3wZ488ys4kSIJ34Ex5%-Lpd$Kc2_g3g$Z0}u7wr0(%lNV?XuIE4}=w|{|$B2 z1yv`CL*0Vh3T@Nsm+Id4FNC((spf$ z%(a)74e6_eDmPCd$!ZzqD6-!1%b-GTgGex;^X2&->;@+sNAh~q~&vi>-Eo1D)8+F za{XL2q<|_-yz?VRd~|DYvIV^~G7Hno84o$58(|K+=StQ1Y&_C}*55>x4c|n&V*#2u zG&kg~kMj*FYa6ZFCbuStl`9W%KgoJAvsW}%DH;2>QVa|W4%8=klK1hgFow#fSIwIJ zn%hFB)OrtS(i2?kRE$vi*6xxPGn747nLZ`CZ#7h(+x?ZOKF=HowzY>FC*!St-3mRv za<>c_3f`RAlRm{L0M3 z^>8w&vr5p0doV0Md_n!i)y(s^=oj6l#tB{m%ZVJHymg4{=%mR(O<>>g$fJbrqNY!< z=ba9hCbXZl*cx7ah>rmBDq;Uk-_Xd_Y8H@WG&&n0&RX;+{d7|g(~3Uea;Zfi1|as5 zVxm4_3MITEd7*u-2#k)YhLyhyIDPgO6gS*KPBHK?6f~&Q@FZeDpQMWDfko~f-tZQf z9pncudeDMs3KCO8gZ3pE_cx++0+fz zh};kXvqb|t-~9W%cgWw`q!va@r`iEjS6naAnD)nDecbMuv((I$)z{<%o&32_bb&^+!>u(q^qQHHcv-HSyrp#k0#1n7C`QVk zGG6%8amgh;@`_WA7;2%>Y-d{U=!9s_SEZ8ZD!oH&mTZ_A z2}iU_)O4X$iMc*8vJgBhBG$*=2b%^1SdBr*9!S>o%|uF{VF2~tDZeCO{`cZfRO#2W zQO(gG+pcrj7?7~0PVdBv!#+uFhJ8hHPgTfZ5t5oz6UGYsJ8KK&;HqByg??zzp;jBh zb$Mb+%p66=fZgxYT9*)bsEQ_iTz|AuR?Us@Dg|gf=5Rqxse|T9mKKxdA1JN?VVCj*5xtnFs$e?yLSJPE*lkKmu0j%m*UhoQ!{6`M9~O;%Dr1L8;XQ zn-T!aWd%iItM;hOQ=bO2rDZ)1YOZ`}=*s&H(h*JP{c*~jy@bV#AIcz$IF)H`9~`Wr zz8p>)_FLJ`PQx>Bv25f!H%@KHz{)%Z#PO<5Igm6)b!bnvG1iH(BnDO$Q}FO3JBEQM zcd|_v$V`;rN+LRFbos;5h>nWcn!hZw_<-Ay@8iAITtP2ai=l@|{@GO`4DT4I@2Lk% zF26+HPheO;;;rrE$56L@}e$ZtFO@BPXD4qcOWd)w)0!OAc1GSk=hA*qk5eQMB`9K00 zfPGmOg7rZSmsg?et~C#eE&K;uMU(hv8BWk-m%eD~G)__kH4IAfA;_8KMnGw2E(L@F zIsfI?Ozh4eObtYkKmq%N-9#6|MoJ@uKtxoDwRDrAa0|#sb-=(7jv&MAJTzwc-M%83 z8aQ*bL8cmPpOp6DhTr#4;}7_@>!gpK^yQa$L-y&6O2MdZf?)=zw-PQcyhC~%a2{wF z{Sqa+;qUS*Z~@Hjtl>q4gk@_!#SsX7IceyK)S`MY3_Lb@4#4$NSVvcMNgHIsu_Vrb;bN4b zaM`$#;0H9waFY&v{wfyiu!Q~|GlE4ysEGT z>{D#DgH=kE8U>oKKkuBdpLY zDIur)mt4BxX%u&E@uFlf82F%I@$trup zt3UZymNbDyw1RE4QSx8D9UR0CME)i65ve|^j##sACY}3seDKomKsWbA*wFv;GChZu zd}nkAe7EMX8$nz-DB_3Fw&1P;U0)8#KfXfu>vCKhK@Cp%YQ(ekq<-E@)YI3_ESW_2On?zSk9Ru2Hr$5og$pjTiGDnvtEwqf^nAWuM@5U zRgWGN=*0jqA39TRqB(3*OUgTat;)a_?0n(La?WjDoA}Op z=Y5!HCxwF5TeY8ZWmzY5Ui&3w9Yggl96C=~tReNu3Nji>H#?&qi8dZx-RpTj@9ud2|d{ye1QB|xuXlZbv4C~fij z7e^$kO9vYK6^K-FM!&l>Jb{u#hO`;^PPBzUcKSrOK!#ZFrJNbOqO&C9jt)0AS862C z(0u@#OcVsySvLA{QZz;cAC}HRhNgl5w9+P3bT`N-eSE2_(xDyXGLci&oR-tB;l7@2vQ3nCeR6(S`8ztOUwyeltg3t zS`Ofxtsf-e>`e%5UubbM9`U>j{fxGszd)``8?G&dN2XGWkdl04z#)GZ;=A(6Y()Dw zjK+MR?X)MD(RFnaJHK5uB~{U3=@LKYc>C1DVUF+elf}u3R?@d%z*4SW$SSoFLHZnF z6J(^<06FOcQDi$#_z%O9XBv1zNRE zUe+hdsB)I|R=ESHaq1r^grg&XwvNZQ$#5sa_lkCjnqvJBT+#`c(vQ`JMCMS1m()m+ zdK0DRpfP5j1Dtf8**Q^QBl~zo{4uaT5XjMc%0oTwp4WcpUQ}MDvby{@GoSobJ3LogCn`YnI!K4_^psqpH-P% zk`!SG8&J~F9jLar%Z=|U06L1}{V*`7d`JB`6TEO+&6SEMH!1}cz`*jZAi3`j2MCw- z-hT@MxWRL<5sL&Dp8Q^S3t6y{TabtE?Z~AMRT%al_X^evd`Y=JaTROWjEQ)~?+ORnlfNJ-aC8pw2>?_;l=f|NYxVeG&b`6{c6UD2mN97?4G+FEx zBhb|cK@x$;ud50){-NCW^Q2#PC4{&QHn7vW-9nOjc-`HZzX)SqV?I{sExAN5IZQV` znGwADzFvYi8}`)TmSCpPfw@z3T=|KIsw2K!#Dm$oEBceg(m%@Yn~GcRKHTMg%)cSB z?K-I#=)vvYOtI(6=aabpG5B|4Aj&O(e6KZC?H;?2r)xv|rt=l0BgZXo;hj3wxb>Tg zi^TsxvVC%KgKY#?($wAMY5{Mmd`nTbXF;YpRT=UH(JjD+TijAyM5b(mymc94-gNc% zl^=VVI-%?OVdOKw>zzLP=8uXN?Y8IkMI^5p^PJuoE3rMSPwI~xvJumUC{n8M$Glkr z7C&^2FB2_d*N_T%;+oqhcaFa77=O{=vt!1PQ9Tc6c2_BjD16K@ABns>GRSZQ&ZBP8nXD#=7ymke&yR^xe9jwnPp6HZmM*q*>tZxK2)?sUyYWm@0Nw%&iC@l*H}cjg>s zW#sL`d{E>iJ^c6-+$KoQqiA|Zb+QIq}GQpi-so-fKY9jI98;xBh5|eK!E)MU1v?Ly) zCJiF5s)!ZXJf4Sw-33H|^;g=uTB};T0W@B;W^+de^^9J~zib*8l(Ifopl*r9e0}y) zr|#J=SXssEHm~$S$IveFlLU&DqTU^ftK&gYO8!pzSRn3X8Yzj>b*N-xwHs#y*RlEu##JpB;g44x#~ zHpM>{xbh@BDZKvx5a8?t6gfYrTQ=UMv^$zD_U2KhdrcI7Pk{Yv^D?>5jIVErXoN7G2L_WjKEm&92iOVGN(yjGV3zT-$n*nZq+xp~dWh0w@?#~Tz zHRhe+KKbHz?<>?gOPrIQmk{tw?31~iS|*cAUVk;xrVn(Fn!?&0^T{1*-wu7W46XHR z|7Tz!;tJPoj7zOHsNRje0OXsNcol?-iSYcBaRKJ8^`(F&qj z**E2${4^Hl&NSA-LduN*RlhCVxom#A?H!Uk8%7N`9dZuzvY(Ql5P(lWhuXB-x|t1I zfK$sXDIxmmRZd+M%ZE-x=%BUU)F2#DJT{H{JD=z{Ki866L9M34x$z;n7DrA<~qM2@A9t-UFHN| z#bYt|@8|~fft2X#)&1N{vjhkC^`QlxuUL#Ch>xV1#z-@)+&vnYWzfrqI?c?1(^gGq zXFpn>E7JFVazcG_E7`4#^(a7Bxn0=@to79gkkqf#e8N3BzS#%ZnH&Ittr~!mKNmZr z`#blpDqk{1Zu~I`>{@U{2p8{G)04P*Qtk4L&YrOg6ejR%?BFe{Wl_$dSdU~`Kz1r1 z7UhcHwQ>i&Zs*1gh2-_y+|N}y67R0w7F>GEBoZ@z+-G%pmqoIV?4Liq3AIEr{m=#C zZBOxWJ8iMV{)MAd(X~km8}Ve3T)wQaEk(?KppQX?pGn5ooPYokbh-^)MRY>F&XZsFZf{@ymUH`T*~#diYqVB9i)Ph0L8s)Oe=akhKYwn3)QWh( zz|4A#xVXCVw$4}%wCthJOi|wHWF-zPMg+?h&-+{4oLY`bD^Yj`Y_yl_96nk9^Zkc= z#jYfefpq?Ww(09=gM;Iq=}+fR2d)CQ@`NBmln3$#eSQfzIU4PRH}w?4^$JQ2fuZ7? zKr%5{;mhc&f9^Na+-S4)c_0CnnRLG_Rr-DA)h4HAaCHhZ)wec z_cwlHt2t&2iy>E?XxP8En`fT#H;HBie_cZTvQqMc55v?m=ApE+MW7=6PJwnOoJyMR zYb1KtbXu6)-`%e)?sI~&IBS^cO@9ukDg1;-AKITt>5{H&bB;V7@ty}B$#hbBCGLsT z9P}lk2J$H)E+)PF{WKd%{^z)Ij2pR&%MYWsuvC0$PZ2pZ36x zP;XU68sCnugi&8N&NesO0I!@15_@t54`uF(Gu{p{zq4A#wOP}A57b3TWcH|c_AZQ( z-V;{<@2n*}{PW{^{{{oD(Wf)I--URj#b*Mx-BFI^*5ivw{Y`>O=(f6`gNbmfw(j27T;C#IpdBVEJ_-aaxm?M{q@&CG&{FSA4nkU4;iUTv0!>^(BP5)v!s+ zl+^V&&*pudZ4rSlS`J^EDCV;NijWo2E}?SkMH7X9rT)yrBjXQ7meg5+Oz;IYhl6Q3 z6It!f-!850EwEi%y@8coH*=2dCL6hDTe(V^b`l`13clTO>b6pC}I4PvpguYb}mzH)Q7 zZzP{1ZD8q-cFSRIHhOOBp{fggYXsu7D1hwAHGP>I*`ujyM9P$RxPWQXf#1grdP?5U z($wwKT9)UXwy*%IGB)%(!YaNfpC_#H;{bm0h^;76Ddl|Cd@AGb<)g&Z^6{9yrwUX% zsBMzzYE9vHq#)zt^9l9$+-_gy7#(f*5dDeThn+E5!=_g(!n3D@;o@^M-EG4B3XrgKb`tfUOTxvoQCR@6QT z$FVVbUzOuJbH4He;ZXm2mfE!k=B#x!dZ{ z50>dcQf(Hq$Y;%@iorfzY@W_r%T8}t=TQG~ za!u9a={#}nuLOn@F!xnBQG}@ki2k)y+3&{^xl@u957l@(WiEBsh%n3y)`iS^q`qf6HC)h-<`NSFcJZ;kKcwW{Fkc2Z|69h4(xJDwU?%ux-pJ>ow zYFY@L#DC6Z#gPRkSOg!5C7b(t+dIccuA9l)v!FB>SyD|seO~^(964>?{bgb%Kd#u2v}eo z)Zr!y=bG;-_i~gSm4Di%C(rwO--;f>f&4 z)Ag40g0Joc!@DYC#odhzQrznpCa=uYNTZ-v_uFoLD+^z6;uyO6Sc;qozdh`1PJ7kn zWrl6ldP|8vTwc9n_Phh(;SixGz(Q;TStrcfKV;M)f+9O+ zewL<7gbf95Xp1k7MczB6s~_!d=7dBiz{DdymfIORwOP*Mg($V(tNl0~k1~k$B2#hf zWCU~kMtDnxJCkxdpG6yM>+msTR$$_b+L)(|u?y$Av3)oPf0JnBM2GUV(8AeE@BwWdcp{(RBac2hWq$!zbt8(NISuzK04usKTkuXwqy*Qe@Y*PieiQw}FO?4JiLcE0!*u9ZD5_`v4DdF@m45Fh3kJPaTmI|kU)^++`hRU+n3@=Li2X9v7MkcY$@8?$ zKxMAVlzu$~i6fpAZ2$RPrhGfv880~u4qx3C++lEf6e+qIVapi$3yAbhaV{Ro|Gau+ z5Zq55G!@JKIM}ehJ*5u|<%_Da|D#CD|7k0}v(oQB5YsE^&~mB;b||tP*B&_MZf0aF zMm30^t0ddakJGJ-k@?$=s`SQX$#|M}%k6~-N>6nA)fMOX@q*99+gyNvK>TPEH%3IN zAPgt>T*1k@%=JaEc|Li7MUF z#-Y7W!`m{71e1MdPU#;I)QdY0Ebn|4m75wETF}4q)qg~|#r5-BZByCH#?IhO1XtXS zwcgq5Xs2Thu7m~)+k1H5@Ir<5O3-HIwOpxnO}Z1`T&tiS4gQSwqN({g-q^C2DPitS zO{DW_+1+9{ru?@JqKXir{N^d2a_G$xmiSd?+-#!2(jWL=MIgsX)#Q9VpD`k6N+p0@ z2u?mZtLR#7zwtd^; zPPC@UHR{T$eKZ?#etjV_x!(*eQ(V+uJ2nZWUNjFG$H_{*tlMZPVM@tBk5*S_5oeq!?937&x zNH+rd``+)*@y|Gpy~neA&wX9znP3NiQRe>ABS_T2W!Ay@TtxiqO(AbyD?dm=f>T~{ z0jPYfm8b}|zH!M20d-429Ha(t)9>sngXoLd;S5&u1w>!4Pvq8$4%K~n3qUEvNSA1WNjC7DoJtlQAw_`Sf{d&?O37I_s&XNe$g}jt2aKOI`ED|dKZTR4`v{gQ0 zmtEN~gr7NK&Fi(56e(xk z^nw2*c)JTyBcL_WqAs`(=)nosvXeliK5Dt0x?pbFlj-<0y|Z$HzI7}}lZr|Lofb&< zTwBsdXQBzB>5~^&V(V<5mtIt|tP8F!+c7}m6x-kiZ^ry5xih1;N=?A!N$H#JhV@fI zF&SbhcI9mTI9Y$ODsv&Fx&dKP^O6WZI!8BwOz=9LSTZ_E#)b(g zt~Kvp0K?&kF3yVy?a_(z%w0w!3MpG37+oQJSpIzTsv$f^$uc8fnyaBnxOhlCGRNrU zJ1LCjbP(1cuSxN9eO4u^J}E-EYNmbbBkhC--du4A0G2exUh}5IzAFT5)UhnM>Bv2#O?Qu9!t9_m9!_F zBMC5vx?bCh*etsOa5)PHtn$&IjCq+r!gMqYaK{C3@M!{Sny*@%Em&@={JW<~RrIGeDiq-Ht0U6l$G>4bWBd8C=oeaFA)_At8V zRevi3MuZYcpluPGS`8G(=tP^L;GM)awp2ZGfmGa!F=9pCd(%c65!c2QORUp7G|(C% zM8QS*ZKQEs5tjd0^&1@{_-w5*g$oF(1RE%VCW&kfl(+JDcKV;LPkI{#vrW=*2ry?rf(VkQ&^u8k=3SX;G!xC+f z9lU-F*P;4qZ!0s6|DdD({f3qV`_%3Er)|1#WM8t?KPcb-hB4@)=F?N^@97PiBkO+!GkP#I3K`?yoUi zb14fUej&+Dcl2qH16qf%U;a>#EF8!<^EIkHr68!d_?mi>h zihxAQPni3!1Qtu>=z{&%(nzqfFe%@n9XSGKpjIvMAwgF_MHkTvP6GTqHpg9MPda;*G4kA{dnoPf=(ZU?7>WzH1 zq06plBGg*Co}f=xP{@y5l7~;du|W*UAqcXp(yK^ZQI_5afcLTvCkt@bYk~fohk~L3 zYl>X&t}=3QVtni{j*k&}Z=O zO}vtZXS7Vq)UNzQvVVa<3oL!Z;#0W;GY)wS;XGm|}NKMu}-YlZ(n5;ti|51$+?gg~sxwD%UzZ}LuiPHQKQ z^Jy>I!f@w*mhjb_nGd%r66D0qjVu%9Fu{?*Y&to{gfR_{?Z(*tPY=x-@%_s2tZ4_K zKxJWVP}3GH6dKWGC}33gwSiDyEkaMVPFWK{_4#=Awf(yNHgvJsWvzzbU+$eA|xdY zV%h1#vWqe2NKEI&H_M&}5PhBXR=?Y@AiwjCxDX#I1izCS4)O#Esm@gxBNeSCbL>^`@UU)N~+kNvlPt>VU1JnpEGN_i>DJwm&z{u~OBL)TFH_5hJK*Z4)nvI^x>c z;hc)ZRdemV3!F?0jv;30!>$4OgQ8uzm<@eiu|r^Go6Gf<2BnP?WlBE?W+Gw$tpqcr zfAIFvmUdCa=@l$WP8|u1D@!8?Kv;ObYd9mas8&qQNLr6NNI+Q-kG2NbCa|KsE~M&k zZ}EmVf{@b_0lYm*t3ZNOKx23ZN3xO-urKEelEetAlhmrq@8Gjyn9eGbz9R}yX9ezF z3TVsVNz`Kc*|k0l@LY?+@ktVT5N=gX1aUY=AtlS+Dk8TF`Y_4y!G_=49;vk7kKDAs8h;C|7gF%pQYUFLm`Aoz0Ax zSD2ra@l+C>*U!t^R|B<@A=ZIUb6>7khy@g)Yxts?kG^<9(}0=(AU&J#rGQ4{%7@9b zwTLaoUbw#g%OIhyIs}ys_b(UHAxJeq#b7K$SW+0YpRJ`OMWrMu5yr{wYwso)#DToU zN`Bg-QwRo;Dg{MoVhID9)A}L;rr|MftBRRoNY^yZ!lRc9(xUoxv zJ4L{hk*aI&OVzE?iC&*EHQIYfLYm-^33Wm^6_HQ^TtDwsxyp{JJU$W-8zEJopqzDR z7eKDrR~6K(iFis0L<7~(20L=TG*r~p2#%zc>AdNz$($FAWh~pk);%* zU3_F5ASXOqdoRA00@xG@NZCNX(7yw)lAn_jHe_mO*4r*1Il7nz^{vok=d*H#2*Lf! zp}Grfasa7a?4!!6_L3^mB9dPTQBLP0M~Ooap3!kkX4p9e)EMx#=@U??qYkY&%Um&ob=re=4!?&my&Xp#?BUKmuMU^+oeOK62C91j1_Rhi{`Hxr z{jl(c;;Mjij`sbB1HpdP{Y@K%Y9v65ENwTJqn|3hfem z;?BzrS({R4i{`K2n;tX2@g-H9^QjO$Dmb(ft-jTmIq$u|Jh66&fqR|PZTbsnaFZw6 zE^cWrY%|CDv3;EfBccR%XB)SEz1344Pr^gfm%poRjRjwRsg5hi3=G}LvKZ{{La95T zdFqxFw$%Raq4agw<)`*J#~puHUOMYGuXhbsZ^-A@4Rxs;=OOz8$6|U8vC>fAQuRZT z89SbzdqvTj?^boIBtpaa|FP*4_Bf@7U0-N@O8(>2X^hniYn$UCPYN$`C2}e(z!}g6j*r|4(`Voc=hhzsABvqIwuq))LtfVxr|zw4n4RF~EMd$zt1* z&vT}LzS;bF28QT0zp01=GBO0f~QBDY|nfOpw z^;$F_TNV|f>*TWho3^<7+3m_q-nftVlFugAJPM~TJ>tXZV-kZZd?^S7E_wE5lsO)L zGLDhjl6}9J*O7JG<7=4IfohImb)IIpZpAqW=@y)KVJ!nmdkV#1ywBE*l6yAF}y8iT}VY z3d2DqDpH!N_3^x7JWA7VNhw2r2yDAfyYYM<`HLCkdqjQAgaCIIM1;-wB>V>=yC^So zJn30`e*e|;Sj4}v#*}BJ`=Zhlwg$b6F?)8pb$y3&v{_a51Wn=z*q#_)tP3wAp?@5Y zjr8A&&MDJ{@y&wMt#d}MW#h%%e~{3(OF{&yT13SiMi`*S++o62KjXPH?m+u2B!KSQ z;;)NlaJ+woy~cBFz+9;ayb7N<0lTP>e0nc8YItsKrJ z2c335uB8a`a>dN)bO1bxs*f*ZrWxoqGFsj>N!>Tk``F}B_%z?vDz`9Hpp`@X{PnzK zL9N4-Z=#@9f{F*Jk+r;8 zGTA;TX4Qy)+V;>C)NjtBjn z!haGP^$-^->;4Y3=@Sq;7La{Bh|Q=uxpdNSxkkTp(K=IcvFWSBpgNgRYilc*l0$&P zzS5q~eq_r1OLo@xiK$v}k>6}h1a18i?rez8o=Z3vn=Q)FG@!0?lzdcP?ZxLwBadDB z!=LuAZkqY{NnJL5WM}K`uAbxcp5>~sDWH4nHcoTC@nRPhOdhFXnXZk{pu1mp zeYRHKh!M#{f&W}u=ZY&=m(x79b$Jj5T(bp;wEO4X9K5(uTyHT~ZDLfvyaXDQDbZKM zIPH{Qvv)Vc@mM-=NYl%?PInQ%RN$z;nI|-IbpOU?@$j-!krFkXA zis#NjhnvKXlqc(TI7Uheueg5#%{@o6<=CCc53dm>FV7fvldpUV0@EyygmV^Om$+9& zJhIalY`llwm9nn+wcg(z6D(Y^4p;Ot>K)`xzmhMqa_y#U?w;lCo^THE(3%Hkqojy{ zL7h8So^&*vi#3x0^g`=CYlnBAxH*M4?2~RJQ6b~Yt^zcy>wh)>aBH*L-uh^B?9|aL znVs3c^i7#sI13v39P5nXd+l}idb761F>akx%$?zsnfT$p&MMJNbyP*xtWCHe`dpUQ z^vZf5`0-vm-_k+eU4HF7xJh;((Ycxo%vJQh+9#3m!5`0@!Co=J(rJM&$tR%W-OIJ4 zk|q^=aXfd8>yI+?MD58o>^kRGU;cU-D6w>-Z8N3v?~@Pu%rS5qEus_`?ilmB-%7sNZu=>+!c~V4)v6w}&}$V*rCue08+`bT zF-ke{b@LKYIw;I$%3ia+EBnEJ-{sCP5-dnQnc^31&^zWP&0NW;^*Je>+K6_Z+J#3u zU9X9`8}L%p#isS6tbg!H*grL$LvV__Lb}}%DEaIy{~l_YCD!k|0ktm&D#EGUS{v{} zf1e5`kj;%sbgo2$HmZEZ z52iKBz9e6`)lUH|_l58P*hIDYyhsv}nUa1-fXyTcWbI{U%`U^=V=Hcc;5N z{Xe6TDMW$Kr`@*2rQOzB(^h5D9@B7+=Vd&-_Je*F(vjejlsS*(=l zRe3RO-mMtF?pZ_bMT+bpZ}_hUD|Q`v!(Yh=IMw+USrpC zgU{lGxSyr+_p#g4T?DE0hUU2)ze}dTk;V7WSb0(|32TSnzY0;6b@*m;nu9t)y9Nqc z%!Y?oTHYrqME*1hC<>I-!P}6QVUrD#fVOtG&ji~{r+sDjC~UmSW2LF^DwKD)b(YuM zMKT)S^$gK28FMFDC&IO8g(6Aa+rb8o*=n1|)-71OEI*6sW_Ox|ZB$zDySTKO#T zM3K1yeZ{s;S3F*X?X$bG#l6gR-U*{y+*y1Ry}y>n->1ygf|g<~s@gIw1Yth>tUNfX z)3kS~Df&!MJQ~?Qqxv=fbD-30)MBVTT~BG9;h=!tZ-Lv*ktv(R?Dvjh4+JM0v%w`B zGBa+U@Bj0N%eL4uuPsr`JVvG*8w>L&Xx|7Zds6zWoyRjVuSxCkQcBmia&dhf9_A3# zWn8Zg^D{GdzmW(hV}yTHwy0Jf@bTQi$hB=8Aw_Ajh(EQJZ9aS`wrkMo93D?xV30v} zRwCH3xubgLl14`11fA-5`Z8D0$b`I4Dp;QiMz~RujPCS^IRff!v=drsZSIy%d>p_ z$~|^Y8d~|MXeZj_BB6VDuoVFm>lB_Io{j4|5!In^I&co95r#?2%^xD5TmRzIA~T62 zHwCSunf+5p;@g#WqN9Vi4nKAb9EV(qUw)!)>K=})?y#n`LY_WmMpkD``^F2@FFs0L zXn`g_s%l1OY!fky|xX7zT#8fFHrtWEyWQx&c-8bL5 z18l~PDJtalrllhi5;G{i(R>J*dh?m2(D^+>cqVIm4oG6o$EEzroalQWYp2(X8Zkz$&U|vd5eC?rO>MSs?%FNk? z^LPgPk1MWF9zWG;7FT6DuN4%mm!8@WhQ1hWS->Hu_urme)<~MfFyFcQ$V~L7IDbIq zNlXO$6Y26BWj?2lybY#r`P*49CK>8&W8V-W&TI1uzl9o~ISe9pa zP*ubi@wZqirjDknJBN$aBg|eE*p7L26xs?GN#;eaI|p{ z)gH-{tU_9($i_TiEoIIhZ=Pp#RJ5$gw-RA>Q76UbEmCaPtOGSC_qB2ItbQPakw)^GFQA#p2p-0ZXG@Zq5Y_@q$i zJ17Nj5cXxhPm`JyIpgRh=vYs?V)vJd>)3au^&2s(zxlY!+0h&|*p9W|#C;34xu&q- zTgZpKf0DF0o0I=Ct`VdHo0mw1HnCtz0J%$zW3;~clEGzY+XMngG3!$yuO z{9Xy!d_U--YTc*yw={v0Ovb!9fEBqDE5C1UC;hhR0aH4`_R&>XfXCc{s&wVYPe)zp zkTHm#+n)qwvQuNWEG{3pJ6>*3jS~b&Uoe^l24UQ>N3uw2bJZnmBo#(HUipfX@2!N` zl`*PTlv5OJH<>YW<-1OjJdz(S`~Frc2}xHUY!6*{yyDN}1OaKDaLG}L?dZkgq^+3| zjLzUOA~sYH*8NWZ?Le*TfL4W^>!kJ5XS6Enq|RfVS&d6MK05K2qtUu6$fS)Y#WvFh z-}+?+*6mz%I6*nWZupY%lfK_LkMFciE#tHnzg4i zcfLqVz{}TZEX?X1OtIk5@zYn%kpCwCvT%u}C(hgeeDO1=R%u zcmUO{4;jD2g!bomD`~^A6O8v zJIIgZ*I_K*@GXhmH>dFQMrq`yZx}>Ht3`m&;248Bf2jy^R$W!^r|+ z3*SK^N+1t%R^Ump68SulQKgAPnoD60?MaP=&>*Fp(vKtMAWeMqTQ&W5+ZgXKfh1)0 zzBUOs{vJw2b7~N!10s7_CS>ZWXoJF$Q3X|kAE7vu4DSQaE99mEm@=edaqmNyk6ejuB&W@!%TXBD zthP5VlDI^Q2=yY3M%13ya}n?0G+LTn7^HkFH|a(koIbSB*}M6d>~S_p-c@MyEp-Q1 z#YL7&)dk}2b3C^0FSSyVQu_N%dCYGu9%`nClLQ>wSamLU6XZjc_R6{ieC>>hm2=(8 zDA{Ur{Ze!llr~j=uq35Mn?%^fBmrF$k7;bXX(Z}h?{c*K3_G@vBnf_7NGWI8w=fU5 zF<2Y1Ew@}XW5;rqwGAF{r&4!@IBNCA81)RhiU{MxaSQ`^H3d=Dl3DhqORFV`OCMZS zSQ)uv;-HDHY;mcq1CgVpr4elS+y;2Gyy%0LQ7!mc={{^NqIxmQQa)85!9Mi>C2Sj5 z=E!hAKH35`%Tsq~j^v!PL5Z}Hr zBbP`V*;{Lvbm; z`>18?Bypv?6PZ2s-_RQ&d|9GHXRhJVUqvqu{l|19GCj2OGiPAiX7d7CK%fKiFCeC!fR_F-_|%f7we(dh^P%QV3YIp`A6Y^D} z?&sklXu-8_K>`&K2k8YJ3q6jHSsfZ?m^C5vIp$FPB?@gttvy|If&(icL7wN2th&>w z($Ro=(KSjY{gzfm2!vy5tZKa0v7N<6EbDJ2T?wr{D1a&w|85aT%R3ZWN0-~PZlBPWl z@%eRRl!TOe(c_w}Wf$vd`n+Vv<_!1vno!Ji+7qDP?BNp<2P7@h+|gGZLj!+R;Gso- z=6E?*MF%{?!dx^TYIKVa()MJ8vV+52o{Mc{=l_{o#_$^yyGn(Ra{ePkzv4u^#|69TY6C7(Y%GjL&pFNOcZS?2TcNd>< zCH&HexKRImUa|P|Kae)K)`jh_Xi`>1`^f$F?>llMEHolXO&7`0*dISTppb*lvKgTc zYIj-_Oy*^%Qdy52V&Zy{egKX|&c9krjqv-UB1AwtukE8=;J;NF4l`aW=}WlLH7@wJFK(6Y zKw;yfk-2oLUjtf;m^KPUsiHda(znPSL~4TaC<&7sZTR1yUGJ89aCLv}0{&IDpTN`n z;(G#>64H^4r>``zvbSPP!9ka>w^jlFPJTz7?%7%j8f5k#XnjeVpZg$ro_8rA{`@BA z)e=un7A_PiE7EpOcTIN#UOH$y)|&hel!;R8`9NT`rFE+qWcH?aVsa_@Jj3v!@;zi* zSObo}Ie0TT=H+gH()mddP=Zn`ROVkxY`perx&z9hKz1(xCvlONYaJ`-qSVG74}>oK zvAqCX2FQ|#VYkal9qj3(pRG9MQy z8i#|ggHv84;I|TqIjyVtT;+FGBJ)Qg6}3C{BY{IgSt0;SF86w$u>&x|STcx7BdF!O zb}XRw2~-Fv5P}dQjSR$*lpy1ClGO=7aHo{emFYdWz71_sI*B~+_g7^bC>3cUf=TD? zXzgM#=t}U^Jw|*K0R-xMO(r%Dv9rhWhO0jlP$!`miqJepYfeQJvG~Y+-W}(_6C;7~ zKoAFFS%+pzOHOqkLRWHh2^JFw)Wv@4s@URVc$9vN6%WA;A{G%OoQw!cML^S|psNBC zGL^Wqm=tW6uD1w;I{1qswI-URe(E#j7~SOn6+wW-J#`Zl^bMaxBGh_;<5LHDim#=o zUWVu;3CIh9UIi9V7NO;QRD^1*KIZ66>H`mQ&NuIAClo&YLMFWxyEI9a{$*a_nv9YY z48-aP*CUYf>F~J74$7ugW5X=vO(`#K7rT|nM0#*PLD}u4;Ek;;i zLA<~R2gHoJoZ(6v_zOUBM2JFzpHY8(y$;>)2(y~bnpl;8<^eE4!Lnbq2J}(uvIYlvI4~QqpvUr-Uwu(Rml2pnIPn;T!%vb1b1fRsbD{ zgF)@lAQCi4A?*?f2BED;w2^_}s3-6jjOE1)dKl22Gt7oS#Z^G%Q$fml*F!aE+YZJm zUhd8yQZht8vGofO|It<=@}=HXOPXF+B_xqm6?wA_z!ogEhC&J|Vs(7?Kml3D8+7xI2ACWG$zFsjCbYeNq}a zn8x_VHGpOE5eRUo`RHG4VZd7v^ot2h(`$ER(gPq^ZZbA+HGpoDH3a?JwbSQ~xI+mm zCy^qPlLT-Z&F>tds%1U6rjCeoNr|MWkf5(bW=X`JI^^=|?2_6l!MPqwE4+^pJz?Ct*?D$gB7py=7M|jt{FJFWgZ7fp}!m_2qF1+OhZc^6!VL z9Mwj-uRMRYsW|eKhDPm{d(G>uY~xmSMWtDw_utoSgR7Ux>(+d3VeGTQyK`+F8CyZx z@*D+Ix3WA_L>yj3k9Y-hG760+)4M)dzR>v=8xxVMkDNgc) z?q=&55o_xRZ{)FDweD@r4e$rGuKOfs*1u+29RErob7}F_52X9(QYxFW4|bQ|wE(;qNMqIQNB9Fi zUQw&zso<@~+C8ZbKY`GX+*V5)HmSGcM#8@wUoTkMpR{0wI^KxdyA9ORzY)OoKr&_V zHDjr2Y-%qT*sh3lzi9vf8IOn{tL)0RPwvN`@O=>UR@>15f)J!$POG4n7RX_UA#Epr z&wHSeee>DiAb|^g`SK_8Ppb?e0n3%zjM9Nk<-q0OX^Q0gHuQYOqyFH`!T$e1`dRGA zP5Hlvt~*acC0(3;pHd6|)$*IHr1f6fDou#vp^cxkJI2K#i zezQHvjjyZ5>j@w=;1_gPS3YKGYqQcAX8*mVwfs?B4D<^<&jxX{zz8}?u3X(q?56VC z*l4iJ))n@ESpJ(^9%kDZC<2|3Yv@f<-6^2LteZ|fc|9RGW_wFM+ZK|jVmf_io(Nla zzH7uLGOHqz8Z?#n*M%cUcFwilo#cv$IL7-GW;wesdEbX>U&pVt&011FMKL$kRZ&ol z$=&|MPWJN*DSCyiNl>bE4hu4wDYV`zc}=tcBO#e>^SU$P#c)3(U<4LHNuXWBSq%+G(`voqjGp+i${!2u8M_2NEUIz8 zBqoVpTAD2hD%n2B6_9G_ayI`JoY?!=-f5wBm_CMdV72>YnwMIFx{p z!8q5QBo)RUP^l!sIB-(d;z4hqDfs#iGa6J^Q+)eZ8u?B=dgB?%v|(5%8R?;k?>M#I ztiw`i|M-D3L^{`G>nqn*e(7)X#zIL|joKRSd0*yOftrPL|CR6#tD+ZJmupQsN$03Y zz=ksvDtXi|Zap!Zzh(Wi)_zLJLsE2rOBh#k+#eCQ?a^NnCepr(vAc)e zANG#_1NrKb7=^D@N-Av1b-N`W%!yqFH`n1dWM4!z;9tqiK5f<$!e3)T`q+t=}!Ey=eafX-;pSO3*|v zMsU7@FGg_^Jl)4vLz}OcZlSQCWGqp=bPEt+-b#3~7G*B>FWvhcKz-Y7TImi^i=*gtC{6%8K$lJQ2; zXJ}K78ht_@K;vS(;(DE`CY-Uq9P``YkN1BdKP?@O;$e{;8ozb13Ql#5`*@k<@pKJP z6Hg+S6b4*4?lSIOS<^rpuA}2k*hi6p?G)`d|*k~b}eZ z*fF9oL;02`^EjuDaYsQ{^VFYv;0RI9>1rFo!_i>C+1=AK{8qiRT84*|g8rpd%X+hF zsy!nDlJorW#-CC<*W3GdNQ|zHM~hJ@Dw}dnDK-ck=&2BaGMAlY2@Iu(%ALn)v_;M< zBfxa}17tFKT3mrAZ6)7b{Ut)5T;8o%Z+468JnqSkYmB293t2~l&WKM6h(>`e+{5#5--4CGFt>mi%ScIX#X0M7&?yjJ z66ik^Oqz@t5tuZgJBpXnGU%t(sCwQgf;s>Td&(RiKJRX*`H)ZjTVu6DY0=I`4F6gV~ zvLqh!mAjdXlqsCd;hsvuzFk(=PHl6wv7IWiENkxs*`}xZgLyN2>B43N;tqh;038rH zqvZ9|sC|R^j;pQ3Chv=ekE9AZGQzo^VgQd?5xx25@`WJPZl3^=>y|ofo!Y-?o zIwXBTW%(k3mYed!biel3x~%rcyWiMvvPTm%UlfpxuYydUUlr-uNo0_q9fA)ci__db znvs`N6IA5ivcC0u+o@L8nGiJp(D~Znq1m^_#AYC*ky?26ClO?MKaYE6l`q7b$78~X z5oPGud{mP_lJ_6TIX(D#Cb|Bq^0VUo|3HedT@q{UTC%+ut(Rz7unMPV@%H?%p|X8}3o7Hn8ME^dzf=}2~)pVPV6ctsJW&|0&L*b18FEu<`UN%y* za2d&K(qB7)%{^`Ht$BI)ne@lwcZaMI5>CD#!DGW0v%WXJkFs7Ywqc{Krk9a_r#&n% z;W0d^mtX(cQ?(UP^z4szG;F#Y=P;c=y)ys(i#$F%S+<|Mvt?@E;{h!T$&N9BjZ~e0 z98AJ9*52{Hzi03aksUoGauK`yqqhs0{Ui&50i|d@4>Jc1Zx{-^qbb`eZZ>uT=I~G( zdn#?0uyM}YddasX%Q}=b4!KdWHRd-%<{k|}{x8PUCUuDpX(2R5K8@>5flB9XZrPT3 zf>yjS7ZcTnO15UGNt7l)E5#=5r?1jlxqK2pt4h1P2kiqF@U>8#ln!cjR_?sb zBW9&3zdOJQbER0-VH6NfC5gU%>#-KA=#4O9$~e8;JO6a{T`PRa{Q4fJ7~Lhklm}!( z&?W3B*ooI*mo~!Gi>aH1v>@f8N6GtyW zxArkp_2;3P&+aoSnu7w$DXz%PHk^~rD=5#~4@om)Ig+ix+n_1<$}v7;K*X}$IYY2Zb0%T=r>!zTK9F)@MABZc4>B`SU` zYwFTiAp0Q@+v;S7Q#ee&;A#0JEF{`~KRpUT^FX?{koev5Vnfxbj57VC-S4L~oPFzI`YO}b_3`C$8{4j&d`B&~se}AsLtuwd`=3WT4drK5>q0Hm+4Bts z_KUB|E%%up3uM|`!U<;I&Tre&n&ldh+ZrNi-qgD(q0JG#VGK-CR7-&{pBxjJ zkN%;ZP7NT-)JFe`mm*<4i?ue&Pqhqf=v#Lb10eI=51;>;bs}U&RZbr~HU?1@b}FpK z)U?d$A$xVjY8}f(aAoq^Zv7d(5avVJ7<#E!Rx*$EA@!gtNmBqt)tn_yv zga#W=*j5I1G*4ddFMCKMTke8CQt9ApHpGKyc^z$g5)6InbW-xt>lT*3u+R*SDfwQ6 zQA~SHeDDqXns?4ytmK5UbDlnfU!0ec2k~AtM>GWV*6O9H9_hT%?QRL7UzZI@wF(M9 zt{gDe$hzez`CFGnz=pQANC>`Pm*zO?1+ljF$aMa!-a3raKlXavXrV>r*p+*4)G{e& z?q0xpPaG3FAJoB2iIdG{gIax?uT!96*<1}(w)}-3bTp3BQXd~uv~*_Q_xXC}qMTdt zcn|cHPk7PwpU{WT@5n`xU76o6wvh+M$SJFg8}Sx7I~W5#_+x7UB(H~#Pim8Iu+sa1 z4y3-gC)L3f-LFguncR}WPtRJ7YQp;;4F3LnpZ%v@`_?vuk^9$C1(gJo3~O<%lR=vg zhdrYJ&gY^~>;RscX}+^4MA-vCN8U$H|Guj@Q0?g>Sd_$(?qG16m@lxqqy2VRE*kA~ z|Htc}Q@=H!3MU7iTv{KL)wY|o4cm!++F_1aIn=hw9Jtu61ahWRW1lD-aS0^1TVqvU ze*@e;Bl)BZDu?eQ#ydS$ z+GF1gguw|~Q<4YEzF*C^CHMVSn4R=L&qN#%Yw0&z167VKp*vikuMpyyI`|h zy&4LIEP%gS8&%4)<$C$J!JMFQtvzyRR3hRmW-WvK^VCx4(t#Fl zV7a#iqf7tY2mFG$%bF@eBy=?^1PP!Mf13jeHl*q>rS4jc8mh0#f0^9Ar1sNLu0FSX zdTPWojW~iMc4Uk`Ny#Db>(a!O6~H%0uxk>bTz!BJE5EyJ+Cq=GQ$UUO`yWSV9oN+R z{^1QIBt2F=XuV3zwhfZ3#&74=Pb)Idb-+now|6@IMG-7O*mv$vPwvQ>s4Bv{n3vT`N;J9 zibn*L-)7XuLQxc?k31x+M?K!nO$}^NijOeaffE`+KdZFuAKB)CCci7L=hEA@Tv67U zaTtc|?eOwHZ|`ie?Q-6j?JT>f_|J`7w*1;~y^)OFR~4)XMMEm;$$6Bw;gK3V+B^mn zYl6RN9xpW}8a3ts>Al}CYeDS1I zJuoAYG3bGCtbKO`iytagi%P8(fM(27SWFdkxE%@f!+%(%r9Um$UeAx)*$UKXN+(|k z=VLFST^>{3R;Q9SeEm*xK(sKCIz^W#8%x~^6Bm13K45&M#OC3REz_ztQ~I2+{c<6D zbZj=s5IleoX7%_SUggvfqO`eAd)QH0`@(8TQkc;_f2-a@tdyX0#?u8e729kjs3SU5 z95c&WL8TM8>*iL}G{1FNt}-krqYNEsQPGPsNQQqJ>iC&~YjEJBS&TAdf1Pyn-MPEK zrKo4yfo{DaI=kjF(C~xrQj06Eq2T=;ATw=7mbOZiuPVt@XJ{ZSMGs2Xg+bevm%i2 zfDCmn3Os^Sd>XsS>|gluJD~CYt!2%1ua|+zakm*Am7za81fL*1t7U;(rPGQWsKNb! zdA~d6>xo_n+u3AVG%Ply5F1!MW9UJG>U2F>>0A>xp z3l0b~9$_&m~ihV_8_70@^ympSga^(DV%i1PE6;oJGwIW79M4ypKeX22>MX zY#hbNN7Fx-di%az{mSd4I@hOqF|4nNjQ&`t`j?9le-evU6TW7Dm8%xqK)Mf}tati0-IRnfd{@dGeXy%g)%k5>sBbZv z@}~HH)b1{iG-{_ZS~ddHGo)-8Ml$ddykrZoG;Xd5%5PNmpeGuu*I z$|i>_`m&sWpYFn0@A#)u*s6=M&C$asaq>40!n$WaM33n%A!6iG4Si)FckbgZk@Za( zLDXq>*8>Dht)D!d_5Lfp`oh1X^ADsZ%cxI~MDRJn__-c)9IVS;f3lP=HAa?8Fm9%y zQLg?UsCMKzSy{NjZb#WmH?~tq=kuHtP!1wukef4>xwlvlF0HrKg&~esq=mAQ!LC@Y z>f0EKxCmsU8Uzafsmx8ZNdHC&nixo4zqAE;J-3u7RYVhr_LM`dB#Pb9cZUa5wK(># z^no!;6vYf$50RpC$*wm*r9HmNS0GrY!vSrkur&1^kJ`8}A=F9dQ z{3EouxN0Dc*!}WQ3;uMx0yHvEm%Thx7q4@iQC9=;1HpFR=6r(Mej9T3R6apZeB@8V ztT+pNf^1b3eu%}N9A4mb!<|kUW7@Zdw+2k^&w#oOO1h^d-U*geNbB33m4(0-QQQFv zrb^sw7dVYBS;s8`J*0Nd4D&(CgPi&n_;l#nBGSnk2J6x@p#NB&tRH3Y4sy71DueNU z_(g^PQ(uQMg;T&Oq=hi6{p0Lger(O4iYZbFMm2bGCK3;0;*qsq;#Rm`ucNX3&XGR4 zzev6CgvR^9NSvgvuY%hgcn^}eg={;mXwi>SZ{Nj zm2k!iicOvApIJ{e&gqRRCiEsdjYA!n>zBZI#XPWnhHmpOZkra&Adx9&Dh+hF5D1fH z5=2Uzl|Abq8>)s|I_sSjf(#>Q&2?2YBlPfN&%+(NOQopO!hsJghDe=+AP%fKz^F?= z6EP$LMx|hCBnmid%C^CRIR!{_GTk6V+=Foflr;lt2qR9nj_GE{Y2gusfu1T7ASrrF zP!CRBwk#i*;TCY}gHX(XqE^zSL-CZiA*F&Dgr7)ciMixHW90cEAZee9%P2juI6c%! z^A3a>E*b7PZYn@21CqirIv_#M1AWjXY}rkWdQHHa;pLM?Fal~C%W?(MkWvAsZZ9MV zk1bmj2Y76Bc+EI3&4>wu@RjRHY?gsu6B-SoI4uO-5~M@|&FfGIXjecLrb^wwwXqV; zkPN_phSziJQAA9K&a^aF8;~}&!_#8?4l2csNzGY7oP@TR!fn%A^ST6&f38IMLs!Zg zXz&6!lR#p2a01-2gNrhnw%~t_tan9D?Y4Kk5qOZNQ}ggi5dk>E+_sXFa0{>9&BDw2 zKt7w_aDeLsGsG4F()B_jisJKhAk7kJV-N$aNI1}lj~L*Pp3rscE(GZ}-IFY2l7;1g zXz{?YAmYxp<0w{j!#%L+C7Xx@3}H??nF4D!Zdz{yedvu%&)R7KagLHeqG&P2w#{YJ z#1VUlv!0@A$SKoB6{jL!ZeE}As6xe~6uFuT^UUIs zrw!fg&A->q#Ita0tiKVx!sVn&e#5OQ$AEkVXJtTlsL~R7Nfc7U| z=T~#lYrvzX7k+_9bWI`S1Fxo*PKd*m`5Hf1cdmD-by+iTBxoF2{B-cY7fRM}+4TCW zZO;ZLOKNCQXwU3`9Lt{Zr=ib&<++CouX#-eG8Lo6!_UiU7lg*vTtH`2i~B z?HPuaCHnDcv6l~sn7V`29C3uyn;=y1VHhzddrku|PKbmTi(n^D+=)0O&PoZ8?hD5E zM!oRxZd;Drgzs?_WKZ?za7d@^B33F#T@r|iObi$)u?P2_MP*GqekWrSH6Zbt7}h}y zOOagIG!SKT#B^c*Zyow-1!OSx$1_Sj_unqTJ+Bd~MhW$(u7`(cax2DP! z(V!ce?2R^%GLVjBKncL4^lNi_lSvNqH}0npaAEdTMrwd)u1_(|fXH7mzK8dYofMe< z>Y=7rNdXU22enAYk-8!YD&-)H4CG|l8%I5utF;I~%Z|?qFV*0lwCDt9kVhyN>kjgb z?636*K{U+(hpLxmj@LpYu_A=vK`vY_3vmYIZyw&;MlE@17s^T$MfO|+UMx=#Q)xG_ zfwGC4YEk;DH!iZTHx!7b2LT!uA(#S_6HrRj5s0G2srnZHsj`+qEyiwEy-U4?bmoh~ z?lH#x%exbZRhz6pn`Bx>ENu$<4Q3bC?gNRaZJ&x*)FOlwOYZ#QPQG_fQlx_fn=ZkY z2%1rTgxbK+0T!<4ZVVIPB8dVWY5k6X3t|)hBA^31%+m!ptpyeNg^2jUsWJX<$h$+3 zTzGS{1kt~-gbCtQzBU(J6;$%;3?@{YT6AFq&Fv*Yy00ZLj8_v* zCd7W*IaDN&=2HwIL27TG8pOBQmMs})@Yrjy0UQMEnIp6qDRc==8TF!))M_x`Qq~6v za4EeE;XMU{V?k`3^^ux>#6rXzNBXeMdYm_2UAFYK7AuoF=-N>xWWfrH4SW(q@bY))>=raLm%CubU0o@IMgnSORlsbsgDz+iAquBD3E{GW z1H0;n_X70*Gt#Dgw)U#Hj5RjIY1-P8tNAT^5f=soR+lV(9iUQ(8^H|O4$v~{c|Ks_ z1yN1c+hVi7*08{JVN$*r=6drxJ>3v56wDDg2W)8vfZP^4PMb-#q&a4T6S8lMRGbB3 z*T#=lk^(k?R7ia@nvX-hpqeet?vI*ecM&*ZPXlRA?*t*vi^^I@1=3q;@u^Db3M>$V zifsu|)15aZBh3aOUrf__}{q!9s5?)vVp@kYpCIIZhzQ< z^OTlx-C_RI3Pon8o}mdNU+zKj6>b3!+g+A>{sn!VH1*;c0}BcyHUaXARt(qbH>Jzh zi`1l?DN+GrbBEPQ?K(#!{c?P5Kg%pc2gBO^S)yN`Ercv@#_dSEd@YSjsV_nezib`G z&dFF+UPPX0R%&l+zPH;;9Q+?{BhO@&Oa_-KP2#`X?*maDi zPCVT?7`-M8l-|8yBG-9)z=qwgFQHtXa=Ux2b*>UH_g?Plyc7N`ZpYVd3dY|Y2uCz_Lix<+pW`W!&_D8~50$V81`pt#P7uxRIy zbZ>3?nL7g2M$VC5wiHDOt-gp0`-Ugub&XC-TsK(M4l>#5O8m_0J@u!)lcL_WZT{DO zsIRb${v-y~hexh=Z1B*a>Hrp==t`6~o)&4qt-Sr}+_6}Y2KbV_4Yam;mUaVKYX`Y-Ne#(ts0 zP>t{yql9f1qq)>&*?5U0N&M2NwqR%Z_Lz&{<$s%n|HUbZTCEQ#m3nL+G<(!9p`xm| zzctJWS=1oq4=^eoJlwf8&xn6-yc`2jrN1WpZ#0rLy(WKQCv>Ym)}c=SKXrV;&mhih z*e!G$6K6S2`f!+cvMq;;psL{51kUMc(L;Mu#oz1VGcH>pbjQ&30p6mq6x#M8MY*GU z2ikw(8_|*-dZ4}@E}bkw?=QA1vu&%4na<_iyjAHsH!6+r^8E27HsJGM2#@KUQuEI) zM93x}2zyo728z;(@;WU~Yc=fu&e84)z80NT@gS<{hm%0^9cv@&!Irb+T#E+=Q^TKs zL_r@2C443l_qV@nMvrC>9Yn~ML7H{7o-{eDr9kTZ2wG*?drY?*=<7W%)t86S6WgY* zY~M2G^tMt`_tMX{ulCTrr#=!5GJY3IkCQU3NH5=cE}fH#6PwjjWJ$dbDxctofVVPO zdhz_)qZvtmmgWlQ7k>O;8*m`YPjH?L;{s7b&GF`>?>M4(5`;F2nWr~3?5zDZ_1Bsf z77IZcX}brrvrA(7=Pr=Tw;X7ZKZv6q-1oZpxcR_c-Az zVw;%=^1>EE6MP(U{rxq{3 zG`X&E<44Sn;NicR-3QJ@g*-!R2K3)_rv8Xt{{uNEo|qfdDVLhNiSyN{cBp#kxz{y5 z-sm6tgT6a3hF?-*khp#;ORdfA*%%o7nA1Z}aZZ#`z=b}p?2t1hDqPFQZ-p+NpkXoK zBXd1??7x|t@#}zIDD`s+qqmj}844U7iH%_~ZBH7T8ZDAaXiti}KDX0MVe5st%y4J3 z6HmRk^o>$Fv4s?f&lGNdDupy8zMi7fhU@Ag1E<)6M^O3i>1DgxB}B9NFfLAXL!&Fx z5Eu2&Jyz*ZrJ!GVw5bsT-iTd#%+#F-cqz{GVTN+!T$`jb2pQtMtv2sKx6vW#>dVkg zzx$jRZ`Qja9ZWg_Hi{9u&JTzEz|kzK8U`#I`vkvBDQj=@hQYdZUZ>h(g-KxH7{VE1b;y6M zmRL2cQ2h+b$dCl|(}Rdv`C7BEpE5?qPpf=*ITqx_`yYh{7i1Ss<GAK~m9 zo)DZ!E+vj+bjDq7O1{n^+N#!J|%ty21y=33({;ogde;g0)noF1i_jz)VW*?15Yc=5RkufKD(Tjyphn5nEf z<{+58pu0(U{orti6_x6M!1_vO`sKbz>6gOe1{CuwF5ajy`)21ZRC)c}Mw4~Qbj+Mq z6YWtXesEFM1~abG=N*3M1?x;2BemZY0Q4`Hk7KGr}p41%?`uhlj~Ui|K=S2(66lP)kzZO!a=9c zjwG5}q#U9vy7!;_f`zR;nyvzTIGVxFL;QBOFhHa#u08kF;Y0=u?cyuWtFph%>#cbX&u}PRe2~TA`TP8c+ixCcpNHd4zZqBec&~ks zG#b~mYS3;Waa^?yoJ+eFnGzkTZnt=9XJ%U2-)!ZLSAc|4h{x3bq&BZyLSp-b-Iwur zi~7(fbG{l2^3-MlMkB{Di_ulas{pNj#AnR%c#Ck(>zY1E4lGk+jJ)X!Af_5)!910PlPwrW~=*8WbY-bw;cVq!!p|o`lomlM;u3ZJt;( z6J$l`b7I&|R@Wok4HzdSnxYaSZu+Ba3BNaAjlkr-&d!W>1+w>3Qg5n~aSC8u$-8-qG z`aLvfy#MlWtQ_urUOQl%(D#=ZB{#p$Q|oh^c?=sGOq-x@ z{*lqR7M>poWv3ORwXfV{R#Ao@DiqdeZ|luYw@4(*xEd)D;IJ>pG3y!qH*Tae(qYo;-PYr-0dGlyD1 zv1&v$y`)1>8T9KK+~4?xfG;D!5M*V2N$pkNpP)H-3}iLb5TVO-YbmJ4Merqx1Ev!4U%dCk;FVg_PEOEQU&Q%6jYVJG>l%K#~~s#r#f7@722X zpOg+XD<{P(JTJj{GgEQJIu1FHPjd-oeE3xh5s*~|0~*D#q=35$(&pLT9+AX)bWQH(9UC{%4oJGvJUf?T&ed$9 z4B+Ifw0#A1)t7k+LdX#x2sQF_6z*qW#sldUx=&?bID>X*9qy6@K zjIp~PipTP&P3Y0yHyM`_bJ+=`aP*L(AzTLg<#F4ynY!s}(UH#YR0CCytSnT&A^gd$ z$?(??xa+^hHE&ev9i4tgp7OCVq+V1j!Bmb5Qrr61>PZrA?=x7{Ge){hwg)*Ueq-EA zcv?lwGv=DZRh^d_gC(stIGQTQ&F)hvuwYyNo9JcI;aVsp%+g;rrX?sJ0xtH0+#3)d zB8kcg3e@~(xpU%*r<$}(yA(pzrl|}(13hob)|*&{ud0$6 zG~tA*yC)4hyGtJ9kRf5JBs=@1(R)YaZx+#jizCCPkABshH5CohzI*LAA34+$N-9Ao ziytmn6*T5gD;R##yx@S^Erk$S_pL1>PG$B+IwKn@PC}Ub&ePj869Pefx#lwt(ocCu zmb*og97EaKFAuVM3mSZ|7X|7yU*}btQJz>)}8O`&e806W=k3&nY`c!J};=d!g-w$YRPa zDA7>-DEXJKKOX%O;3E7SMzyP3lCkUdP6qimvs>)PB%9k}B=S=G_}p@) z(~E|TGDPw4*K%LMvnI_Z9z^%RQG)oveHm-xT>nr*`jMe;mYM6TBR*gJod57Xge05# zF(ttD2%|0%KD8S%j$Mr+Pdx6znWqC>X4|jUl?3KilVWDrIv#Y_@&8c!w$fnlEsdp@ zZFh)x?)p(-HN)q?yEc&i!>CU;c{AA)d(O1s?i^=@ZgEq0yW~Ux*cW!y0%UVsVBlVx}P5gzCW9K^+2O2ZBz%>`bv8NiMrG+w)KS$gZp{cAle^%Wf zMExJFiMhKzbsw0fT)Kw)idy7Km<*DxhqrjW@IMv#HSs=%YSp=2S19yYwZzhh|C2Td z&F89lzu>QZ{vW8#D;Z?b@%LZevl&c`_pYsVMaFZ3gPgXPN0JgS0na8WJDZ{SPH_}x zhAQJno`F&EkK)OU4#|T=cB>wgALK~?=np)kY7ad$#+`n8=|Q#qeG_^)zWS5M<%`Q~ zI{$;Gj;kjFq3@lNS{kEY#2A7qTAsZQgXGH}CfrTGAPUBT`928#w$cq&4%b-=m}%n; zZg5tJeb&`y*00(rAjEB#+L-8HMl;+Og-DJVf?AuS3{@}7`basgL3=OGR$K9d`-Ul( zPkI2Q`u$k^c$%t~_;-qS0!lM0w#_u#I4{FjsD*io4_r1}1hn5;7F1!sArUAYc)?Ab zbNIPzIiCgMcD1?T!x5S)b$uc4$C07KG;g}R0E3EmsY}^15%pu{{Kf~*Xd2a5NC7pB z$(|5P8g$vv^xUvT&Oq}^tABm7wZ##Y^R$<$+#zU!1oklV_1@=AdH8hW6t7$I>#B7Z z<8!WlW+!4|xDT2XtzJO#+E!GW^iL`itnX=?xqR5&AstJN4ffDri&t!7xJ8% zcvYQ=>$?eT`L6+#dph)lPuQrdchIE4zB zNnZ8A^Z-Ms;2w-67f(v6pb>l7uFCUl|H6Ck53BJVPIp#Fq6>Ror6aFD)%SV4k0ChO znC*hgyJx#Q;wwbny26%ra^ct5#+?7??%Y>VA^Oem=sq;QwvMfu^FUy@At(KiroM(` z&r~x2MAptS*v2Hlxnj0s(OWSTXe%!)F_c%9|Chp30{TRM;kj7Np84%C`Q+}!RkC_l zyonXfib{7!Y8ZWC+QTmYP9o_mx$la{jb1OV9w^((Kit!c>nr`5d&oT(HMGJXA?#71 z-V9Wynm3C3nxN)RNHyvRwOYcd{ELAj=4G|?Ds>=c-DKw1#oP&7YS?>Ey? zBK;%Wm?x(EQujx}JYBA0HD2?`e$01*26H%X?c;V{X?km(>>>ugs$~nD&R;jb!4e zC-&qQSI%H(%ec`lz<+Mp79xIjiG6bEE^=-)*u}fxke+Uyp9PWe+q&?;#*qm*^5fqaF#E+p$q>&RJ0LK7DLgq`z(!| zz4M-0f2*hIuXP`5d>c~MbS+@E`cv>jK>qd1n~G4VR(+WBGoHYoXXzKlVuBTlf9F;g z#ywa`ztt`2i5zj!46!G8I-Us;p0DsPFsudlyUw!8zpuRV0I1N^?h5l|i@6ujFd2rT z@Auag|A7cZU)gmi9$S8;zS_>Md-*-=*<`Txq1K=&FZ|)Piz+{(zo{$jZ}#hfFv*%d zshif+m}5icwlSx^^@IogQD0|v#*6-_{qOHob^Vk3{)Cma=o=dwV66^D8?JXaC&U1b&DM4 zMYGRct8S+Eg2OKAo8z3Z6k+vFL4ERhvS)6S;YCRv3GE~sR^z+3lev#7mmo9QwFfSR zjW-pYf@Z8ntv`{IY^L&WfpXEtGdlK;oLt@BIV) z6fsFY>)QX?w>NU z!Se7UP)+u0m6l(e>d}et{GuwqRImU(2P(N+oRJcR$5xCR$P2SuhVr!owX|c#f1o4vB8@eQVv{=0&fHec9+>Eeft>ONdItW0_Q%0)BFPu9f=AVLRhhS6S= zj^yIG1pk379$dS?r`E%w`0twd(o&H)SRJ9?NK+X2i=t#a*8H~kSJ`h)%WE$(`>-3Y zmehXrMig20FgC#Hqz!fO_`A(l24UwDr8d*`PICBu;LD1Ap@}fK_;!SMv0tj-?O}01 zn%4Ofol#xFyRs#B0u9Q~bS{5&eJT|*%Wd7eM1tORIsz=gq13yy)JPqenir6TlJU|^ zPJpL>Wv&m9JC#8jGh&mFb(_r7KkGUe(Z)YfuvKLGex=rxNOm-z-bY?poodKHQ{tg2 zw@Remq_-N(t}KkZjwLXHJsrRzRB&s|K{I0?6m0%M92wR{jYBz1vS&g2qOI*di2*bMSU>QP{^v z=(6t^GlEtc`j90cb(Kdq#<=#?9AIU*!V;fb=P0F~QX*j<7h2^^>NOM-N!R$W4c;oF62*D}nv(sv zP-47@TR8##JjhF3*;7!_{APtnqn_DG;8CSu9OwDEtgfnB`ZzNrP7>fshY-$hPV=vA~lF0SgH`Mno{e?@GU>`$)TIR|*lv zeUDV0`wcC`njS&oKK)j$Nj_TMU4an!1_1I~F z5^Br*_RNi`w-*6^I%QrL$kSB3rRZi0$5{4sTybw@$Th<_p3!FUH-WYgdU3S2Z z(MSb+zS}wI`6pIuMS$hlJKTw0R2fyD=SMk&xs!kU@oo#x&E$YuS<6S9kU11%#2I`>xM z$U(U*ishaA+0j*z`~|N1gRAFS_r}LC(<>`0W~+Dnz$Hp1D{P~v^GOYB9TD*0|MOwp zVnYLL@qHOSmN7}=;{#sVZ{KY`&)YP#zIFKfzbxTK4w12qa0E6=@FyRz24IpM*=6(* z0w3DFkzx1a0Jj#nkN?|3ig$#%0ef%<>`DWtaJQ|2c5zI!hXl%XRR95XlbsZk4yp#~ z_H7js#$^yolQ9xVVC)`$>45n!YEefthBIDs667bmdG3W^xBD|(N)9Mg^p30boA2MUiuGY7I2+nyxIRdHdX31&l$@ZU&Fm?8X>Ok zpr#w55DxW@KZ9eT4{&NMf<-j?ww1z+Nmh=*0ffNrRd7h;m{exUA2963SldGShMdITx>x5jnp^@9N>?jHe^e@`GQ^TjlSTz%jHQsRU_ebjWb zEZ2}I>%@{<(bU!CPo%;ikg@S$PPt71hO20Eqd^Xk{ab_VI_!t&Zf`hfTqHbaJuPv_ z+OOnjA^nHmINX}GkS78K%%@}6y|IZVE+AO*diJ2;Y*LII9{lnhEiL*sWn&MiRp0$Q z)WCZoBIl(3!OLu%w+`)gGUJ3`N1z{uoh4qvOC!q{ZDX53I#O)g!O9X15=Tvgyy5D2 zg}pJ*9jav*Og9i~D<4f@!w<=sUJV%J;+8l;znt(X+-Tre#w%OLO%Q5>3hp3vrO2qQ zFd$AA9cRh!T&xL|{IqC4iX9Ax3LlB07EZxLD#Xd;J`n=|Cn^EUg7MlMiR;<7GlbI) zvcL8Qq;c59I9-ky{Frn?n`WGT&;-GRmu6Gkj<=MQ0A#`-S8ce`Qqw^!~CODJ1;Z^Tq09+yf zmEjtY22n|2tq;}UM4Oz17;%yg`S=3j1mLB-kdDLa*;8mVYWcW?ZqZ~l@`ImWm6zNALiPJpZzz~3c!2s@#g5(A=G)R{qxB$Z^s7mDz z$@DVfiB*HFf*@I_lxEJPS@cuDMFRq@C)$M9OkLwV1$DZM{((%%rk}4`Qy^APMKB70 zTg*f;3$YQ0jg}46m2E*Q`$a^k5d!NsNe7cOfOZ;Sr7Ly=UN)*3z}$IFb-WKNE+n3T;vm_DeTo12l18(6Oq#nLhIM*GvaB7jFWcL51rKYJTA(@rG~uOA@;^V)6y!b^ zm%C(fCQF2-IF&5;IiEkBua8CKweQU}dgv!K)QXHsYY-PyqI!fT-vakzo zDFhAh)B}Vlrw(FZ0XfMJZ(j0FzSN6joVxk7>5aTgt44QHh(~~va^Vta(j)C|oEiv- zL)vCcR6YZ=j|sgQ0YI`A!R@ZQWEU>2SI6X!u?hvqceX11oXXwBzJOOT&;SWy)bsif zcUBOA0BdfhZ5o0fs+b@-+#?Ixnx{@ORXe6JCN_#$wS>Ur>k;)?*5Ua(R!12zxjA{B z=7{>R_-EVsRo~(me*Cr4ZJF|Mu?;Ex+IYme*#a{D_78MV-kFj_f;11eP@jdCmelX!Gsb}MR~WT_s9Gf9S!UM( zr$j|Z^y%j>MnC4?^`-fBFIhBwZBPDTEL|O}JRxEtH&$e`yFtqkNch`QvD`m%z>@c6 zr?P{?@&lAyL#~6Z8_U6(1%A&=_1iNi_pJ`i7f1Z>LqjY>(l+urX`w{%755JOAr7^o z&WP=6*T=r#K zbV{r zOJP&nF6l)(x&HLE(sc4t`>3t9pu)q=oaMVKeOncm9`qYq4OVHfCtDsF`dPDCx)rQ! z;erZuhl}^ywir<}1r+L0tZt$l*d3}~+fw)&*Jf)On?+Aant8=M`-}FQQ#UPqe#)vEn- zd{&yrzZF}5aYwH)G}znV#|yJ>TUw8sQ{pyCAmFD|Xt$|pwuFu1N19IL&u)V&q`;d0 zwTV5+ilqti$(MXWMTv~ojvfO^e|5^EEYa8+x><-9mt)1QFLeExYLFIF{9vxJ-HcyI z`EPlmTmDtkbqOdbuSufCqkg!n7glkeUhMv}&g^^~N}cKEIw%d^84YZ~A!Ot^vrERJ zZ+9mM2L5YkuRQzj4^pt)^JtOFss^)S`Q4_|YWN)Q%f`viZs};e`MU_2L6>lCV_(pl5hrL{ z=%y`m>dRJY=NCH3J!Lu8yMYGY;K%EEA?R@FsYm!n`lN2UZOq-qzWKqzv%VT{&%2u6 zQV-^Vd+#cysL=oBtf~5@ei2f!=l%sQH%4>dvJ@=8szt7@dy5$1I_PcP@lo7T%2TL} z`%a>85mxB-(;?TlYJN-s%3a;#&PQ)(XoASdWjZv}C?120l zKu37Ngw9WjeUfK2xFH z4wq=NczCXtTGW|>cAuGZT49*NPjH#%>YMhtyi^rL1lJxj6gy9h8uha~^TVCT2Y2v# zb|dFnDr}@v$qFRd44U0}nTZM&^9T7&=E&i6#2W_II~kx~?(TXI&Kus#H9_vExy$q! z-1e1NfE*bHh9ygV;M8@@Tq z3D?vh8vDi*{RqOPe!`Rz#L1EU)9oq+PRctelKc71^IJ!cVrQ5I&rEWGR(zRQ!W#ae z*7|3Llu^KUK0>5DnvEq7skuU5sq>o9U!`bIP1jZ>@-kNA&l z-JXejVDNin$=W8|3jAA%$_z$Tp1P3hoXC<*4{uyVKmQwATFRMQVG)uh_#>l6)X?XO zKgP{-Cw|fSgJV-N|L1jv>Sa_J71uUF#iJaSNxNg8@~}pWu%O>YdB6=^`irO=-rFJY zF5vrd^Ofex9G-CPli2Ws*-f4(0j( zG$q~}ek6~SVJeZU6Q74D{p6o8&JJcvSH`vrP06{_KU~bstA-=zOpk~P&lbjh&d;h_ zZLz@ru*8_oCg(Y&OWgxZl00!Yl;qa3%2#jtrLbBLKRZ8Nd->KuR-Wvr`fb+_dLOBJ zsr_%F)5bd4%hZ;U9Z0&Jriq9hzIz`L5W<1EN3A( z$}g)F`oR2{p)JdGtbmQin#;~VP`HqASg+#!IB>vY`P87%PU|Hp0tIN^XS!yF_d}3! z)0_}aP-PWv3H(RcE9afEp{ZseOlOLT`4PqB06buNFSqGHeXo@{8 z?jap^yD(7~0aphgdshLL*)EQsH)e7KKhfVxFl8U^mW8c;T&zvTX(qDRdS!rY`&d@= z2Lu)c>F#)8GXuhkoXRs>dZ{|f$4~iVlVXnRn=@8VX!RAC)2i=ygd& zMgH)!Ni{9gUWA+Q;KJVTj@*5*<3DqE$g+L9NG_}>OGe#`2_@~974Cmq{|CCihrJAB z$|P-dmmw>=WuE5zB>vvxY-m{x-bC_2)JEGTlWMd*?zkT{Yz=>VKTwWaH&X+10d zrv5JhX)b5#B!s{~e9xiZyMpS4V3jv#pC8qVOm0|6iHPMe)m%!;IS3tsAGk3Y|LC8r;g5e@o*OxxKpX8 zB|gwvKWL$}`NFL0FscbT*;sSwu)P7 zbaauOWXislUSl(P5nDM|VAH-~F`7Q=w~9Lb6RiBd09sh=tL{hcE7P+KEJ%}-4M_Yr zap#@ClW#YYw7cblD(~<~$ijYwn&+fU+$$6kT+Sk!Xo|b;(Nfu2Q!rf5CcpIPVsh4H zW?w%LosZp%hNcvRyI2i4)%A zpx8=&;Sh#xqsti-Sp9hliF~#=6%G@clnbKQ$UGV|)_bPUCiQl}URx|t8rd2Bh79B5 z%_;BhkPfxjN!vW+=``sXKyJ@a?nzdp-A!GqZSC7TZ3d=Jqt zL?PeJD^*yapQLAAxdfT8uZu1kLzPZMdcW0?tH1MHkebVX{pbx_IO#~)=#OMSZoQ~z zcR_>@&rzIB@h3l?{<8U3mQF)l?Yv}>GM)QiwS`JHs}+g=1BO9)zN45dIw;Dv?$sQh zG_}j$`13}!a|93OI`Om&pVGNW{7K>+S-;{{YGd>yVx%m3b;ad{pEAl9j{H|4seD1w z^!6ej-jF|ru&n$QuV2gOc!J~vkbirnX|1n(HLTr zjGol>_X;#Z5nsB%Q^dhwQfo=yu~3TmBK>6YJ6j)b5NBcTm`@%H=ff zC-6sxq74Sgq+Y;e)d~D*tZIwp_|Po0#(2Px05gnU!4u(;K(yo4j5;YU&3nD~NF>ORX3J9<@x z@N!rq-Co`Kl9fCYLNk%|&w}Gy{{Y$3%Kiwv)%|l{Flz}Dcvj-g`y*n$o%mZ0{{Vou z){&g~PbN9`2EJsufZTX)`yY62UbT$3Iw|aYz3`t+(e8E2p{mRlIFHNeUfJR=6KFbM zHu@#9%`o6?74z@I{S(gdeAW`n<*J@}_phV1E8hutY9`u?B+KY3gm{hCsp4%{G5IDX zVtR2>+W2lmBFU)FjDHSl#s2_^^$kcd)2;lpImZ>BX{Kv8IBT}r4{r1b?ChUK(wGs4 zBDSOPb4tc7I@giVfn4>bji*{-OUb^V*82E|Mbp4tIw35B+L{8#_HT)`rSop4@?syu z(zC9iTSgFd$5U5ZRPhG51a?rEQ@<5X?#^2lRJn5RUoXTIz1yDdRXuD%ua(C@DZ(^x zTcN1dRnF2VT$alAua1HA40bj)(N4(;z|A#-b#5up$+P6`T3A65EOCnRzZb6ENCEsJ zy^LWBlojMYHeI)#XybUUj4IbdDvRB?{{RcmDqVm&9+kJ_xMem`x}FxfuL{o_O&T7x z=pG<}ZZw8qH&%U!DyF@YQ-t66QaQ&ZSBmkea)qN_HsdwyejL4v zQt+JC&BMkxu8C}n=-FWz&T~<|!rOu7fIC~f9Tbk+ zYmBx~2I}aN_BnKUV{Qtqa#qs?UOA{hY{wwM9qOgV=J`PFP>FYY8k|YE5W}dXw*h=K z`+QAdfyj_^Urzi^)6BYkwaN}tZfoT`35~X^Z*!fg9Dtv~zO3fwkSwJLruWQq9EG_L<%$Y$T z4z-0Eo0`>I8)?0qEQc#jc4*sdT`8jf08V(o5-xtU<+!tD+8k%_t$nE;%%~mr9y3sf zD*Z5O@6A4M z7DET_tRM}KK~x%l5MQ5=lu0^!PzJ(j9v;)OWnj#ms!#YzbXzqd)<2urRz<&ruC62v zbs^)a&227;py?6syI|A-k^cY*2CIFMWdQ@Rr!R)J%}|MMXDF@Maau3p%_7u!T6|l! z`U=XESJ!n%*<*`a2a{mApF&+Jp1K67C zJP-c>9_j;pqOm?K#;CyYT+yJcW-O*0M91>XR^R741MFnL?h_`4@lOTwn^U z=oLX;9*G&26qx>OV>LE+4a_=KNQ>kNDP%5N<=|BWip1=c^TjddP1qxf7mfp_t>*dA;Z`f!_ zFAg$A0ANRZGbS<3Iyi5o$Cihh?qbkjv_m#G5!#*S1#jIT6anXQ_%StWkMy2EuFFmE zPlxOy5_t=`eMM=;lRUXmvo)k`9PNmH?RV8DtnG1CJT(dhGh!a{HjWUi9J zPI&^i?IAI!U7Qa}%a}yIDk~?3?-9mwhQ3U-!p2Wb6JJ&MmwcKP!hw&GzmmZz z<%EodVk(hmbqALxEIFsj@RRbk0IpbG-nS92T5{Okyn)Mc-n0XA`&!b~h$l5q`(0Ix z(T%|Nso>J>%Vn1}aw|vxF^I-R0Am?1u8v{_168%rq$(D94>h-M8UeWQSD>V6T6W}P zZ2(e-OM*N^Kq*%|n61Xt98;81$~%F@09lGCH>2h(q8LBEzmxnxhQ+Kkj90~xp zB$B^97NS7O&uVf`JiV+rr5!or+JGY*o%rIVO~e&m1vw;C`EijzXKp~-iU1B!Wk*VI zMcbA?GgDl%01p|akTJA%6cf~wC1WUR%uz+O5y7n7H$r+=ge8gn*vQ2KCy~F=*f8M* zX4)T+?EqG-&9nW2NeRHkd8A${w}cpi?kazkXd}>q61XD*6-B3&9^iG)Xl8v)@obL2kBh($BYv@Y>=~kD)pa)V2P04zVBM-lTFa9!Eh0A z?LZ&@)BO*?3;d`V9cenX40+?Vd*{!Gy&M5bDFDgMO@Lex^r3s2GtMan1t1RnDM&cQ z9{s6LN&rrRo;ak&DL}xW1<&C}-s?-pN^aT!PndB}$of)r9MQn(K*Yy6qa(E_#Td!r zfE;+~Ns-5;C$OUf98eY{2Omn2aC-EpfTyU((txoq^r<);iijNk6!FJ3cLC({f!dT{ zj%m3ErxcmT@}l4;&6+90o|I#;rXipTX;nN5c>sMWF}IokiK7FjH5pTnN}TTPO+QRk zL<-w@AYc6vfI#gMmr6oG7V|F^WJq^q@INKqIeeaR;cWcJAxODBDbAKzh@{Q@EheF;zNZ ztVRiLDPv9rU4So`C-e=b&1QqdD=Qx?kDXR zG*J9LzGon1K>BlEmbQ1Wtj>ztnaS(zS>Wf(CR~r5hr)~EcBA0bpYW?SXtG1%zK}CS zTXPVmr%9kIhG1*a_K1r}`C?Cp{vnJItXNiQ@L!1m+vPodbkbYn0YySu7hK?RSZF&) z`8oVI;)tW#BV&rK9-ZQN6p;(#>0er?wS4@b3PrYol;$ytzh;8cK1t7rV_)7x`2PTQ ztF_jytA|zxw-xp2(scJsI*+A9+7^kCm=uqtFJ>#g$HB;N2c|$C9CaF;(o5I-e>Xeetv*Bi5;ZYzN)I09Vplw}bS1TUKb` z9CiY+H2(mHnoaZ{Xt;xF`&9cO-0+0dl11l=KeQ9>uWI@e{uN${DxV}W)gSm&nsLb9 zMPaZxTsK2o$eYkf||TVoMgEvi}V z?d@G8zX@+w6WjdSN?+N$K3abH<5!;#HMC9_lV;(2!*b4}s7&xXqlpQn8b18YOFCr30 z(xLv))d|Rq{#00_qx%MU&P5HSh65)bjdN#Lzf*=%zlBD+<;O+`@}j_RoiX!}*!*ec z-b4Uo99KB{?A>wtRFUhUh8ajdN-St=wVbae?ZTz|Ec;HM5I@T3~f zz&dRg%*2O}!ls7QBJ3-WJ*uzv+bGM52DKL>rfNA?VHQLYmcU$r?Mp4ZSqE=QqBU5f zoBK;v-@Y4}NBjz{+xUyb)<{jhp&}pmjZiYf!BdKj6&=1}KRTaghIRIyKJk$r zT)L!~AMIAPzr^1iSt;_hi30l?^Y1Pr_d8Va#}QoT0*_>bdM&@kFNjd(qShq*>qgh( z@5L)qn6-Du`_<-a9hmgym@H#vz#s!t>`)%SpR~Wl$Vl6&$n~pl`&Im4wQP++&3KR4 zp-ckcRBvXO${LTWq4OU^TYlJ|7vTh(lHXd|xBa&ME5@81#8=ACVY?VK3jm!BA6G%n zePs{r(eYVatEeKnJ5Sr|$4eiVb!WWS#J}0j8-D7C>>O?l%^t-QbMM$cZ{HI~wPn*u zt=oV2CH(>icEVUjzNB+qeG!f`nNA z02Y@g{qx%*vd`*wUcp9WV6pL1P~pZjNgE4g2q{y6@ozXtr0K3$li zJ2_Zx8T<_=hGSDdpgV8c^Wj6jKeb^Wjcwch)t?FHZ}|*BKCEl`>5d5@8`G4|5`0P*zdJprq+ z+}%b00539rW~b`XHTJ0fkZt}qd^n%wO={SmXa4}}R@8qLd=Dlz>Xzr|;=h{o)ov2-U>#4z_@@Y7-29wrTxdLiWi1m6ONb6_*T`(PQgZ7scKla0=bVeulrAwDI4I z;!v^c6X1We)o^@J@yscR^|^*W+G?+=$X?kW(t7xpM1S>jq52xMy2g^-WH{8Elhx2EP_#{ki@jKtFqGr}L@e{klAC z=X2Vs{&i}j>@Q}1&3%R2?ix?*_w=vG3vb)Y#V9ttlKw`wEq`x4fBsupsr(IEtos@J zBz~}ck-x~K`zu%Ftbe!F)_-}W@zaXfw*9^>RA%DC9>bGcLaCFcewUk9%_+5TJ6Gq8 zx9#iUcgLG(>-Y-jZT|pnzXLcPYO?+UwC5Kg_hQ>Q`?#w@CtphVlGpaz_=|hVcLzA02*G^2eL2GRg+)PWEo4Ci2ne2f5xm0S4krxX#W5) z{xtokVS6y*id59JrvCtz$@!1*sfEphec4d{G;K5A zzF~VZwnwEe%js73!~OOA#U5NI_}B9k)XA|+6x?+S3YdIw^r1sD})?CnR{+L(&i6kt`Kvo#-QYRowb*dCN%RiCpp zA7^R47oMM24Rg7YqN2LHo zwvDvSPuk8LgmI|i3+9HGcGZlw!S?LDbB)d2?D zco?ZR(}Md}U_(;{rnspXP>PAN(SQJ%E?k@tNmsI1s#;8&ev&>}xhYC^!F1Y(hcG5I;g4S>Hl6e3Z7 zL{Hv7Y}H+5zkVY0t9m|UxY#%VRXtuK_Vz~UibWZ+C?FB-Us?PxWYL6~{QaGSwxBvr80F#5z()`&9Y3C>f06bt2I#DDf zoy*N1GYz=ro*Cj8aY$u!P^Sb^6zAnNJ1+B)P)QrF3D%TJAd?L7hyL)d+5Z695;F(D z%RCMyo=5$0UyKq*^TzMkiv7R+m~92Gz`qYBG3Lb2`L%sMNAaE(ZSbDPqmxX=NvXi# zkBK&P^Q#J5U2c(i|T4EoY@(w&c5KJQ+X z0~mAA)3K3DflJVFK*SiO$DpOi%`Z>FfKeembJ~#m)Th#!*QEm)v{HR|0-wO3pW>h_ zGm)J1r5XAPKD3AaSFr+Kql&_^HwE@Z<4k<7x*ci#{N%~M05P$_3=7WKON=fNJSZKu} z`&5`1$?Hf4-UR{~v}ThWb5h`Urem54NN;YGxbA6o;+FvQpe#3#DW|1BX*_0|x3QoE z!6K6f6uWcnPU%1l$E7X^o|cBRE8Jtz>FJt=q?q~IPY2;+(dAp(<;?M~Z{O)pvjj6RgR zcF+bWJ*W!}KGdy@Qk-Ixb;SUN_RSmpDcGb?F+jx4B>`#vgA@osO*FK)^q>QQjP<11 z+)~nW)AXPO{z8tUiZjQxDDM@!L6z~A1`%;cF z4FCZ^4d^(f1Y?R^1H~8_pe!_WrKKEwDFA9l<&PwIsB*rF;2%Apo~y6)_?)&M+1sn4AI6Y0Y|kbPI^!}QVwVVa5KkR zIto3h2L}d%k`|Md=}Xpu=x7EeMl(PIwFC@`Fhv5e1GkDe@6wDMQsa!!I|gybYC(?F zpbqq5LB#}!O*oIvj-1ic>p`HPZO0Vvp`}ri%^WG9Og+z9W=?qRPd$%nW_>6GE(R%} zj?}oPV0EAp8@Cj80+$%2#yFrF7;``a9`x+sQjBAY0SSx@nl|yelwy;q#Q?^P(o&Ff zj?|=g6aaxiG`Jl*QHn9?Kn4zYqlynqQN;rrk)CPZ^qBRdwE!shr0GkHaY%SPP)|Wm z0A`QSQOACiP#p!ppizu|6u1C%psS0D21h}P2PU1KXcs7yr{0dVyaUY!Vqjz5osNQ# zbJCQ1P%yv)r32XFj2Zx-OlSgvGDR*jc}0gkk|%_|&= zPS_L*!-Y4mN^;SRa3~E&FC8j%P-+$JR#zC}f``WuV}aVdU*g}!?LXmse`AUNII zSC1;+YSQ_ylk78H4vFE-G9%}It%!8aDlKEio*VGcD5YLO(MAnKI(Qg<66&-yhq|TF7i?Gv88 z>t$uKG*Iqp>%JuMH;SBnrgLovWKKA$HX2+pKJC6_pWdxzvlj6QuA6HA0B}{SMtNW& z82qSzyn59D)e-IT=Q;lXWK&f0w%J5VIw>Dsh?RJrAs6+nS_$d=E%JO=}cz1c*{-%5q42g#VgH-G}ueG_lV+vCO>SH zH<;c;Kb2IsWNA!Vd|zmj``GDQ_TC-2kO{RZe8PW(a0PWXww9JDwiF5UpblokKr+eZ z>YS6&MRcic6aYsG1X{Rd3Ih&Fs?vFmcN2kH0Vx3^Al7-45RkOluOo}(W~}S0^i}x< z0A))er2ClFe-hlsHkY|urBiV4IV5$e+Q|O^K-fkxKpjVhZ021yBOv)?{VS>#@i)oG z1GQrKMoA>nBM;FeR{ zjCu;5SmkftU%2wu_!Q$50R(o|b{qn4ZVy&&d881^?6T?-`AOAOclM_v%HaKuEs^K% z9x4=DTYb{Z&2v6DUZQ|5?3&|^Jv^WR# z1)yQ_*~9>0%#FnWNhDX3VtdCH_RGjo)}yz0qgIl_5L^4^q?7EB3|&gozBp0Hq<6cz z11h$bzz%!jfFjvt3Vo+in9C<*6!UL+dHcx}T3C!=9;8#^p2Ztxoe!Tk_nV-o?ww;{ z_W4ZB*#|-RPyz`cfO%R>Vpj(l?Ml!fh%T)-cO&i&)JOfLDe^Syb+?QA$E|AEXm-)& zTetHhZ(fuEK^|E~-7?!^e|f6?w}*o=&v5=@ewDivOBnLd@luv(z(NP%Kn+MDw@jjd zM;uU$@*07O^`{9w&Y3ls5o)6veBrsun)81LUd3rU!=9wqpj_B$8nvTEWUMpa99F-> zkA*ERp!4cua%Z&wXOFdCIF8mcE_!Vh-gtlErm3nAH&Dzmp2ofFPVml+qr?7-3a;LV z9M-^Wq^jnVe6 zIjPn^Eq-yF{#7H~M;o2k82kluI2}>X-f7=uv$vI>QMmJDAHX>kG;&_fe{~SIw)N>ih-9_c{&uBy2_M2L&8^3omeb&4 zkK#Qll>Y$PcF((;nNLB~Q_5<$Di#tgp>DY2iU5-~kd~iSoJz-{Ej@1TF8=`0>@EJ! z5$H`-VW(-+D7Rm=&N}C%PS2^{$>v=Zw1jjEKn{{EHpww|-fZ5K39jyft+Dbg#W97I zt9gpQX^`}(Vzbt7(2|})b`_Wv{JlEfQto`?-mXXX`@yo(KPoQOsbk^jA#n31=I>oZ zR@U)xo;wNv<>B!BUn5;E_w}wv;svTKcIywwi(bB{OMJWxSDbuCiDa~cZy2o!iMiof z$My^X2LM*j4o)kc@Tfo7kYnxvTVm?oCvfeyfRSOrjX?vgSK4Dcq;3sk+-mK(h(2-J zszq(8>IAjH+MR%)lVV+F(%*&Tk4nV2)Nk)(+iI9oSK-m4jP7BY(~jImF&g6(0gZ2@ z-Eh|jIqh3fSzFqt3JEn~74l2`*z~C%?tR=)1R$KR98-ZR-z`cb-L&+fhnMrWN&r`c z@XT?VbSMDA3dX+iCYNfNGI@o6gmP<+ZC}JXyB5=7`!rem&Bqk3J062`s95Ryq`H|9 zuVQ(wGW*68-?x*aK+|?4bgWr4jV2j>)vsPP#OL@knxE}DjPk9whHU(($5ta1H!GA` zG;LnwiM89IX$SXn%{BEs3e0_*Nw)h`t*?dQSi!JP*V~4If98?mY4e3r8f2Lexj^{OD^!-Zm-DK7-L@V7xbBd?u z=^A^gX_ltyMC!y*aIs{6Z)$LDw_mZs-q<**%V(h2GL1%0wah*0$o|~b7|C%Uv$rFK z98(AOHkvktH&;JQ(gHK7>bDY@v};3e2SCJBa_KgZW_^C|%yZF2S)Sv>I-n5%Q#$~*5X9uC|q zrJH@1!&V+?>AbBo>{`a98GT;o?7;s33ZB#f3nzy3QnF-SOuccBTWFd^4g(;xYECf!93Mi0?c>u6b#vTm703UX%dMM?>3aS5vrAAsdcAm2+ASwlwnb z=oWru!t&^D2cucqSecA_WSD0@)B%NQ;aziIQ+=vV`6zxx z;B>A#;HI0WCatbRG65_Sh3BtRUr0n2C2qhETvyMZ3)H8M{6`Z2qs&wM>92&Ad;E~b zknKP=;Qky}&wmL)9y0Mvj?`}1H zMe%OFS}p*uE%+;@qU-)Bfz&sXcZ1JNsIQ@RLvQk_?dj=S8Jv7x7@FXJ#KLU*S3z&4 zT3W;)i3b&J{%kVS;gLZ3g#bD=F(_5wQyAs4$AeBW$t!v-NG$=tQ^L>!aTv}jCEYIo zfm5A{^2l%nV`^INkEX@CS%TJJZHNK^gOlx1OLc2(587Q*KZSW^&y8<22|S+;+qC%O zb}%Zl_EudZjZULRtVLn@kXKMx&9u)oW3m3G{^f7 zhO9o*G9IWq(JzOiw?T2@i|xeqRc!v0vG|Kg(@3}QuAk@2j29{WYI%oZ7Paxdz6{s$ zjWz?*=}vt+!MX~o>N5>O=<;*kpEj4{U3}u^MYDmr{Mh1~9+}|}4=4OgXE%2sf4xUA zShU_M)$YQ<;cGE#2;(4CC-BCpc{kfUL#P(c^@0MGbFbc<;I*W!Es06JmFLV8qd;*B=de$V0i z4>Cc(U^9xIPYdZ*L|%A~_(;d7-I`_Bh;)lM{>$OJUpbHQ?f$hORyH0j*Bj2flkBm3 zj+HZM{uj{GedOZm;C2R*3m+6}&~3Sw?9sPe9@S>wLh$B~^WRD?AGs$y(15dRuUlS1 zAk%FMuT0{&y?b;s6&+1?)}A4<5B7Z?)G{wt#}((EBWr}ZXON7!$Q^}z=Met@4EFMm z;uy;_5w@&Gi2M^(Vjw=#OENrdxjI+p=hl`yqKBFWz`#-)g3*G)qXZt5fPB8IQd@F4 z?NBfyk=CtSa1R(YC=VC$cRnDHpGB-;j@7B+(oVf6(Q6#3UPXGewlgK)fr?GsQ`J;} zX^sHKD&zulj1DQ-`9ile*CP}X4lzo^>Mqs?j?@P8uz+-@@auqSj6z^928#xyj-f_6 zVxs^ay{blLkv?Hn$s>-Gfs(1m0+Yg< z{!=Ie?;6l#Yqdsm#aFp~q&_kMr-WiUbgHvR0NQIxdzsH;?jM6ikAbYEW!MN~`qzFX zj5A|BM>WBGBaUV82ACvJxlW%`UD*+#A+i4e>aV%Le+3^6i~cJlBHBTm^Gh5d8+xh5 za`*lw&@|Q};^=Q37pbmNUmNP0qnI>{MkqQna4W2X)9xDD2@A;}RTao;9yQXe7^=9C z^uRUB$Kh`iYm(qvm3eo(7<(S3b|TO6nKYJ{nn3W#2@0v6p;8M z#5$axY1VH%n47Bf#Y+A>TSZ$h4_WT)2pm;(wehCD?DNQAw{EyNpe}SNr}!7buz9T_ zTwHqRCbB2-6|SS>gQ^Rvi}C?F9D=K~^e3 zqY$`y(|;JSD2?XKu54 zReOx!RhF{wcZSz&n`M=Hcc2P`#9k=XW(%X*m?AyMpmHC!8xIp|5y>{CFpeTPS`mzot9}pLnEn#$7ON;`SsdVfE9Wa8Idp6I$o~MI zoY&Cb0WFvQ5FK{en|!LopZnz3g4xBJ4OSp}JJwR%>7}vpM~7{$t~_S;yS%wxRs`46 zS6&?Og@j^VO6guy9E0?)nk=kke;vFQ@|BuNn*>+WKk%;Ljs>~Zt~|msB}W5(fHzuVp%upVBU37N;Y6+&yBLsL^c@ra}BE6UBO zUXwj+x^|I}<0Ep63U|%JF9w+E$fN_`inDInJ6gXyNhW?!zQ z+XXacB2~NAfLmG!>M=|*;iV_t>e zZ!Fo*3S*FKkMSm*aGI>@7pd)CXT$q*5s@yKAot?8OWY!QNb~JZ+Dm;xRL2{t6lXz_ zG3i}yyQG1r%Fi|wo+_$;Wx{sM`81=j7|_9Ua=W95{c8QDhdcc89iUY5YyMVXv4{lq zsttLlOr(dvr(qowR+?45M3Ms4PHX66Y_A}6#bc}vaU_S6Q@jE--rR}?Xbn@pmg`xX3?z}jz@=3JK)}?Sm3~&{qd5mEGl~q(iaQ_pm&jYV zu1+Xee6jQu-Pym|^s-MF70MWqWg-rgARLyvMqjw%k~?Wn0<60>R33t!(;Q)Vr83}i zmk_ja?PIqly|8#L-fsrkYUwWQ^~HGxs;X`G5y-E8@I~3a_({KRJceOjmQwXOGYEU9 zA*OgGr%ydxqV}yN@NMF9vvkdO8Z@3|jBKs~F2H(K;vJK<=#e>(B@5!$^B9Vxe=%ZaFw*?4PM z()9~qwvp|{X86W$v&M!q`@_<@Ei=P5xzUpbq~(qJwb@b>xU!9*Uep1&z8ui>W+ZOVzmwEOTnID9;3*rs@#|Nmcg5Sd0 zEs6s%Qo^(Y3SSp%7jNb1Ft_E>qK`)LW~rHOn;Glcx?k;m8%GQfjQa|}pU1cIN#$ww z=buqP6DNStBR4m)50<^7;e-}emQM=5Dr>;5{{Z19)RXtlV@Kx#y_?}Ro7>t*muGaD z#%fqgbJ6@=uv)|z;5n}pDygoIB-gcg+SyK+q#v1jSB5C^HAtFM$)yp?V?W}UZ|t~T zmps#c9ygb68M zJL)l@2mq{0&3ZVW=WGGmfU(laK3n&P8LA^vOLq_EaoAYd;#T!x0*i zTC0@I_b&+Qk5M%~)K)G!8t`EXc>XurPPjYrfI@hUc2G;sScE$x9pl~`< z+*#U?*(It^?EA}uysr&iRm3slWJC0)!v)6Oz57&whBTClCEmN5v}1zFP$^7S=h$YF zEHdNXrH4jFP2F)prHn;Pe6Xcx!D({J7;t)5L2YjoE3wxY>03!_7R8e|#bt1@$qhd6 zj7WH^wz^ziSvbKpzbv-Vo$@%vbDF1&Gz~clyuh&RDtU@gET)x%mS8IKTgMROit;^2 z;&fn@wu?2z>K-=MZ^2j}$_A{X-8D}UX}WZRIbDA`=C6JuX?DrB-NPSB`SR^A?qANk zm87c{`eI0-z|97p>D%ky5p_*oFR|I-6Bw^K)3m8GB(w5d=C=OB6h{GYYV>KcF|&%K zh-GN4L}PB=m2fF>wMHssAyek3#LB%YghRGbfsO}yvMt{mk9vU1GPW_nr8BrAo(F0G zINP^0m~_G(^%wCjdU{oxfTwBC;Xn=9_*3~TvGfL;%C6JRCn42`Y5> z=r$>}2xhEnj~3iI?X!&IJX5VaA!!NUa@qRUvkenXOcJLZr~{JwSBSMKa1^T5_`EHt z+&*q3KTOu~@lKa+g`fi?+OTBtj-fQ4=&-N} zKV}adsSeOMpwM6$;PFe_6rK5`$XWns9P?6b9<;&MmjKWJ1uoEOaoV4^7~4T00Zf{3 z+C?1qq~jPg0V13XdQRN_Isq&}xJ*@F_N) zl_4N;Nq|jOpf_k8DJj@F$7(`H|=eMdROX)?O^11R^BXRJL11RV2{geM~|g*;l3tZk2N|M zh*7z?El&Q!@e*<;Kb?Bc@r{nS{3wnbWxCg z00!tXN3}hCU9YQdlGyR>UaHpC%lEPQQ(mbZ-jM8hd&NcvRK`14kX zA2!V74w$b=md@9Jk%b>hQKQ&6;Q>ENJ&|`jgIDqPpzsA2rZqisD#nxX1}H3+IiYRe zrEGYz#tU6ON!~U2P5{MO@P>h=-Pk3}kt+us2s>?mS4m!cwOXk!gY;Pw<&0*IMk~b09y`+!wn%gDSD^8pmJa^_Hv`h4Uj%6*{#k=n znt)NMY$wx5K-4UD3`|QOHe^ z)h@lKjAnG^r#i-*!*`m6ezoT(;naojmju(l;a%LQ+P6m@lyZiLqNbyxNza_0oj>i` zJcDnThw-m8{{V$|I(*-0HC?;|r~~`EhQ&^!vOP^M^w8Twsr+ijbk-b^`d5*!f^|5$ zT{daw!oDI-7U*ue^!ML;48}3-^NVX-bN_%;yvbB0Wp{Crcc8Dn9{B{{RTy zks^PnQTSJy{{U+E!9WiPYI*S=iY>qrLB#?)w(w?<$1Mu}RZ>p^=uWuum+%$HpBHP& z25m_c`21O}GXR!mfH%j1^kt6`+bH^qttZ3X4qmWe`wGuKH@%MuEvL;#{45KoTL#F` zXj?xG^w2OO8-A5t{ugNHn1Ki0oSzWWtno7YVx9j03kJzf<%!AqR$x^B0EJVf5xJXb z9jh*Hgx1q!!!FP(tY3(_Ngup`?)p`z{C%T&dzC**Ihh=c;TPcrxQ{+zYNap2HC`cR zuTD>h8ZxK=k)LX}{{RWLjg|fA0Q*tQ$H>nje}n9*9VExrt4Z*da5o7#HSN)Ovr3V_ z*Njp>igZ9u=|QQudp39t&%(V@72L9pD;6IFYSPHjMTW(FB|f{S&2H};s(7q#3u-n+ z=XWcd@kcOwHh7QxAbuc;NJJl6G!rS4WDZIi%wfJ_ec$03dd}Eh0m`PTscpV28H5SmnPY`s?THM z6V}<(4{G}*p|r*wMk)r=Y-T&QfsdsZ6`y0{Z?kLZ*44=RRbwZJVQdH+750(RwD}iq z)#KPzPxwY`By5#kze;x&r^g2SSUgD!;CoQIj-sb48O42t{{RTqoIGjYb2H>)tX+fiL}@>^F59-+`o>QI=+A}nP@ih5ejjMA+ZqLMN7I@D`69>{iPdV0fkM%DX%{HMCiMs&>}x!v`k5 zfj{EOv(jD;}c*lIzPxw?C zesUxrQOFl(j{g8}M8~yCb-R6>5t{W!_&;cPNzGQ1;N&>scB7Ck&o^C8-G)voL8-+U z`B(v6q~8W^06%89tf%-*sK!FH+o_;36IQihhGCjjzJY-Nt!zKSU0mbKd{hVFPQMF$ zuez-=8!4sLxnK2)DpbF<`>s^b{{Rd;L{4MtO^@NPinnZ$Kop8B3#$pAZr~5KPrAqt zFCwyK_;=!Kc|ZdL)~iY3FB03#F&UD8vAX6A;8GZ1D~zbDM)3atiPY|EX27Uq)BHq- zA7yNPD!GPj$7^dR%bKv(mdPFz@++EKO>G`+gK7DyBnG^GHSvTE@@kR~#Qy+| zNdEv3ylWHXb$Nd?{xyZq;Nn-H>gb!cWe> zIAn#@cB^#usKhMmmTsQZz2Nq7KTII~zO4}a`gFMZkMOOyzi+)2htFXs{73j#<#R

$V2SF9`zerOn5~jKJ~5T*j~u} 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%0A-#>ZZ_+tYIY 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

MkGIHy^$0B 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%0D+@R2%EfEY_BMQPcz?B4|) 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�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%0DUt*)F#WWHJ%TzzL^m4phEj;UbG;#db3;EC% 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

pOk#mi}H=efCf1`X$CR0Q(3av#}wbC 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%0DlqK_|xDI0jJz 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%0DGx$x&##Me*z1lO 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

dV$iALg(furC%`lO&>M_yq=Wi zx`$@e=CY|arH2i0|u4Dl(uDc=}`HN-lAKW)ZvXr_fdx8 znq~5qMZ+oLrx%S`{{U-*b*78Ea&b@=M!a{t;8gzrY{&4{3ths$a-#ctb`-7_M??10 zQ8fFFVJ+3u{naL{DrztHU?#Knh%Al4JZXwUc(p<;3&htaFlqD2>9#U|kgcn4hkp=n zS9BUB(I559kLOF@ivv{{XP}iAFxrb{V}C3V&Ha z%6x4muV}-kN(QHDYwznX*cSQXR=U*o=de+cT_&6R1?WjIO-lY&UsV{a=ZZ!9CVp-W zS^$1fKPqqbx0%6C1%9kse!`y*VIVZ~NzZn!f!z83sFvOA&E?ZF<1DSd1`iTFDQg1mF6 zF#9H#aDDu?uD?(C5%FJH!&~U{W84+5-FUPQ55Ne9-Z+(g6bij*b)e{{RbdSy`HO~!w%wy|WSGu;2WiY~c zK7zih)<0s6XUQ_?*ZYDF1ByNa{>!?Y{xiI}@z$Q-V$xJRAdnJS0}kEBD`ki$*`7b( zzk_pY_OGpLGyec*>7(WZ@K_H_*5**e((C#-6UO-=y{o|V?;Fo?9Fh4e z^8=RSiqG2zvpzl4d_AvODDrH!?eC6jI>W;{*0puzOA&=Tu^6wZ^)C?V7Vcxah)C`E zR|BbQu}s8Rryh$(whlupM)0nM;n@7yK$_%qCbZi6`%#@?vRsaYDEVs6pW&P9#25O5 zc~J`K;JLN6hwPd>AiHo{iAa?bKEuP%T1YOnnL+Ncj+N80-0Hwu+QcBYUrs8NY5 zw_A(6x%BN`scoX!*jtY^cQG6&teYtF{Xa{B#q%)U!?~`WJ3IYe=``IIC!XS50EjYw zO7^b=d=>Fmj`rS37}KmjzT@U2+P>KMeekEk-T<^z)8JVy2>Iq=m(R6t3S7n$smgq# z@bmUszSWF+myRa#Etdpar&IN>wscPicx%D-F$pWh5<;H(H-jaBg3^8y!fn5Ca z$g8q0gS~qAd@YU&mG7~z*Q%Hg^9)rRjZP&~wBoRzRf!a%iqD?%-bEWmYqBu0#9wRQ zFz#SIs*Kkx{{Xw)_zI+7b`=FzzP{6RXd3fSm10yGC5`~AE-^Hd%nOskk6PsXQRDpw z!WQ3XznN2yx)02Lg1&9>{{Zb6l9@Em2ah&SyXKysg?J2Cx{k4S`j3cZX{77(@;@r` z@fi5i_;)+#W!&5BdoPN9D|my&60=#zbp1P~2MkBOc($pmEG%HL8Ik(1?@YP4)irtl z0JF69{ohVIS81mBb4~E%BKKW%G6BGP@atBqQR;fssMDm5XHD?Nr>T^h@DzyhSn*wP z)jT)h8z~YonZWJVxqlJ-OtcX-y_xc(=nwc;&icQL8tPfGAU|5V7+A+y7*wp~q;@+m z7kK`CVcI1nB3|9A#x+f7DI`DPT)wHTuyTz2=eJ7aFLgF~Jj~!%eft^42^;tN`xPVj zPfFu%F2tbcsi@xL%;OB|HC|(II z*X;UmU>axX{{R84Ezp+FI@0vLTf}$q>3TJ@U0q7RENV0O@n4|-00zHhi+>L+J|^+1 zrQV~%CA)JRexHc1e)wtdi^3labmfCew@1C>%$=9_j7Qg{dUeI^-NWEUKphYN09w5a zE(4oZa#XMUqb;qVwuvFPh$^7KTwzDh3Z7Q8u#Q{JLS%wC*K-#;Q~~c?FN%I4*!Vid zrM!sTTqoU%KBm7oelPr6_>J)%>Pr{5xU|yMiH_P3N7Hc~c&}PcG^4S{3T|xo?~LEI zEv2}VLil(@@{FvPC+?^FzP0dPsj6yTA=D()^{a-vx{&0%oS(w0$)R|eSIv`5xWV;C z%}AOLiP?9ik#+b+-{D>cF0`sM(xpN%MQ^gkc`Z_+9Bu7aA@HA#r~d#|pC zEs&4*s?0yLSHXllSfM{!KCM%*dw8FYlHJdrkxBe1{{U;BZ~C*JrGCqw*~j3tT(yj2 z@u{Kxp8gHQe9!FY*?zQrTBl+?v`@w~n(6-lfxqvXhDmO>ZAjlg?wb9zgWzYui&pa! zOMrVCo?nF@2Qz`BT95b*A5y3S6aGfOZf(96{3NyEG~0i~ z3fs5%eekj_W76$^7{y=I>J{~fABF0-;9;YXlm5y701AJRt04aXQ6>+fpYX5ULEwLe zNZ_uWYsaih{uODwGw|g6zuA_YdPKkBN7U*W{bC2;=(W|D;b4^g5dQ#$SsHG*Fh#V- z{s4c%zjp?K@cB54O||?YU+|}{mEf4VY4-mB_vwGawEoYSeQGD+Dbl<`-}2`$AN9=A zribDq(#muH0Bp^E>@~N8K-w%V{{ZjW&?4}V`300K{{U>(kL<~Z*5ZB^{{X@_;+6m{ zl>Y$t!T$gXnS3SU{DQU@1b?`H!oPG{PYhcC;>r{M001B1PEAw8j6!{qCI0|`5AdV= zHm7m@c0G^76X2g4Gi7x7`Tqc5)SvKy`1O|uPMBl;gI~F`Yd#!@8?8{|(MR}F{{U`y zcLV(qKtJq{@U1_yCLdjoWAMp-A9($aKeMhs@7q+1@YeuGLAbu+3$_G74mWYMJDdt(&#{hfX@ z#(cKXr02FP_DuNF-Cvt?O#c9c+TGg=Z_OXsau2P<{C)obhG_W8(Qj=bzbcYH*@xpa z$(7QWSL_RT%2CqL?WTXiaP9I(YDOsj%#eLq;JOTBu)?fHb<_UoT zsNcocslvc${>_n}*3ZgV{{Unkj2&LceswE;$X^#1kFk%=zg0isH@*9&-=#!+U8u{- zK~MWMKDK^a#rqw6Tb1^C5rd5NtDo@3KNY@SBl*ADuhZe;T~BUW3{d_l)PjEQBSOoX z*gmw6%tQMY{7_MXV?XdJdj7^=647}vpZFDin-3A{thw1uJ|op}k1DJCFke|eHHYk5 z@fJ~)k`?~|fz+w{5`03Fhn^At00Xbl*VlEP%ZiKpds+kTQT>=7SwA~R>_6kgIX94h z-*u$Fuv*k4OlBl}^G`TA9b{f4y1Uz=7VZ~64E zu^N3-KkIY0nf9$q97si1_G|;|lRiZsu-1!>r&TBDY3ch6=n8hWrz0<@HT8j)R6~`J z;+`bdcI9OJDE`fWeQte^mDBbW@PukzwP~AzK+Sx`@pJZRPXzdz|*YUqCD7Pm3RF)IK}-e%9g1x3GmDBc^g_o(2K!=FU4z{e^TXbenmm z)~7SN<%a+R>C&z*>^Y(;?Oj$tM{|Q;VI|G@gn3gPfoh`9slWWT6`d>`Y#&*X@^b#f zJ{<%1x}22X_+mc``J8I9iu&;y`PU|V;-UWlN|Ic8wXf8oKdi|4ML%M137?SaGj1R4 zRLT1jcr^9Yr{n#q`knsSzvY^tb-dlQP4dz8Dq;1RA29y_!xH#3{moWvf4xp$*pI=B z(^H@R`md-FWM9282Bh=uW9dH>eM*?Vvp&bni~ADz9b0$yq~G_|TVL3p;o2r;)Man@ z6@3FRzL~Hlz!XFnF4?Ci6uzZMKC?c@fd2r)7W_8aJiFVfm4(AL-#r5S6h*T?kM`LA^T|_ zbr0;X@M10=)yY5Y)Z_MB_$;G~M*jf5>%H@=$Im6#1KyyTZ8(t8-1YaP>NJDfNaNS` zVE8VnpRteo?wr4~FTtE~WV!zUdb-tn5OUW;A6jzW=~1^gEBVp&8bR%5azplP_&y>r zrktCPQ<_LWW{-nNLpGW?_pZX@Qn3i4JGBaZ>Y=`}U*4tiV0PU{)oB^~T8ID9_TLJ4 z&%$@p7^Von!`iy97WivI@iu`iy`-vwKtS3+uY_W0Y^3uo$p_aJ)oH#Y@g>O?R`*3W za4YO9R=M-k(zV%zulyy4L)4z+U84cU9ExqenQW2yPb5e&jHwlYNYlYPq zXP_Rn@}G*dPl|pUkQk+!bVJp7t~SjUr`S{cG}5&t^C!Jf81%@dNAPRHj_V=6MI*l9 zU!PL^P56gpAcAY@BP+(%;;XmB?;6fo4xsq6sF_&@OZC5~&2VI@7+c&}^H zd<*b?($Qj)SR?>{6oS7NZT=$o%{L#my5LngJ|Xzg<_i_{y!GoxIK7kTe&*YFKj2(4 ztgRKNAMGio-grmgmGiW&wwnh}nQQRgPaAmUF(A}rIP5A__=V$=zw!S7ARmnitV#N` z&*?w*e!2J;@X*}q*7urql+t{g+DL;cj-Yeiz5B$!wXeXh3tI`N@dP(6e(ZMt06QP1 zIIrZ-{u4hDT>bmmw|#2lI{vf*dG~Di=npl8c_*>GDsqAQSMgi+oqveFIU3f9dbWCH znuy_xcqbp;W78+ny)VI^8+JRE`@Frbi{fS{SE`1IvulDY}7ct#9 zAMYAetEj65N)Arv^i{3=Z}@it{`&F&r~S1x^Y@CsX+MPn&9s_WW{G_Ouf;Fzt!ClC zn&MW^siuuS>V3z4bLweMrOt|UTIzk{@dx9#fpt51hL>WJwg^M8b6=kxBiE+5)vhjz zEDI)Z6m+hEEhWH?G67z-$ZHmpLopA?HIxqOS{{$^V^G&MPZe3{IvYA&-Abtm=dN*_ z3jUP5Bk+5~zYcsG4z+!HHCxMjWqHOngcK0AC%x$zf{E^i^X zR4#wJ#dsXQ5cMltdb9^RZ+oS_4CNoR!M}D^O86dtEeWT%RGT%?r4A&rU>OPh67spLj z9b3hFZHCD0#^1)Fd`DgV#(1PFmBm^M<*9E@l@ut=(~6Lm#>3jZC~SBW_=tcx%~_5R z=y~RtoQ_5Ssa1k~%8?>4j)&&pQ-py?$7)GjN=A67*_1BKbf675^-1H(2f(TAU~A{Y zJ^-vBS7t%Mt<56R=5`xf8K4bQr1^Lw=BfVxvxJfFW&ww4)R#@WL>M^>T>adxjkBE4 z1sP%TTWJ|0qG^2G5x`p5k4U?|Rd6s3O>w207)W87If`dICG}j@<$cMsfmL9%Hxr2A zuDaX9?SbcxXyzL*MTeLJGg6y4wwxZ7r>NVlgN5DJtZ5cv=(4#RXyzG$x_6tj0h3zR z+A&lwa6VePsuDzL!fx_ET>ZekM2-mxXO zK`SD36adK#K3-H+1NVMW*1DZDOcx(}rC8PU=q(}z1psjDB>SeA6!Nt@wiF)po?8qs z=QIIbP=U=mYMw_mA^W>}W~&&Pa4I^1byO7FfyH)y9YGR_2U_Bhcmqt z?PPmzgMKjU8g!t~IqEVi>}><$HLr;DhKtPw%Jen)ma%zYxZ=Glz`iECwz={*ADe(h zXFNPY6$^hCHD-%gdsB=P+PsqARgZSkGAr3UQQ<3{e*9ju4YktvH^ANxwv|7&N;j@+ zXnU%}?s!ypQJi5&2D%lwhVtL+}VK{VI6$`@87^!y7&;+^zor;TO1Y940HJx79o;q{K`}hZUQcS)MJW z{5HS5Pd;Sw(~c|NybJKF!?8@4nz9E#z~Q*8WAO`0Q?e`yuP4MLm-k3W9@U?;W{L;e zo-z2H;A=mJarh@n(&G|{$^sEaKPvdgPPaDt!uhdo40FKh4{F9fD}q^rj!3J=#A4Z& z>639C2c>5dL)gxalBV@v!xhe5S=^bty`@xk#bDcfXVan{UBYc;rk{-(DVK9bq>oyT zc3&ypX*w{jvF!Pn@@q|JlmLj;(P9lh6zlWJ3Acphab8OrGZVOXuSt>% zc7d6WO>viEFzm4k)+n2qhd*>vHWlO6ucf1q913*t;~ZxdWSPEC=UWzWVRC9aXozCl zcr~#dtcwopU>Z4)6%O3a$OH>3=uGhkx)tMBj4x+1}L?n}%jL3H!9w-8}#H16DOLfZZv|WBEW8(1<#1 z3Lt?`O6#U%z~ma@?XRPSLXl5xWjxF%s)!vcIOsU03}dZxl52_v5LIKX6&)(bvO2Fd zLi^Q8AB>vj+ganSMs-GI^`Qlk(ZcJUr|_$4N`iA-P}Cne2byzglVgUh1axyrxv))4 zuY|zI6~;+>B)B>0N;Mh4_Mi^3NfBfF-D}LRKjY#4wXXNgu;885&dSW}Se|GB%K1Mn zSXly|l?-f%FxaIoy%K{nS`A`rTmitXIQ&B)T<)$uL?mR2d{9iulpIh8X%4Pj^{pu8 zg#7M7t^z+jYE_oueP}d2A}vbE1|(6%PZp(NIs1!>@~4{Qo_bTnw=0ftJ*WfI<~A&H z6jVzkjDIfG#d+V`Zot^*0Q9INxV?>dGy&-ne`OZjVnQhe#)iFP2E4T0-gnJB+}yHl zYJ)S>h4zkk5w9N9$#qRSBeEnM{#E76HPSBF&svU2FHZ#UDFNx@QL_hkl%w*gMyFw% z`DoNdDW(N$-GQD_SzLS1Hg*N!VK?kAU{bgJy24z(irXq{*% zUn_Sk+|q6G+a0PPdCe&~Yz`|)t*t*yhU4zUIQFBJ0p`N~euH)@QFn8WGm7=G;rnBS@~+OS9h`alpi#<$nCAZgv~Oc?C<<}DzQ@cs71O&U4Fubf+X$fv8_N`4@p( z0^S8)l@N{B?t!+WkrT{heYX7l&IqUdy7-JaIjwX=&T&#SR_B~i$b*>YwqG-OfSPj) z%x5??zA(HF1tt}aXyqv9{F~A@F{UhcdHH(RPJ%V-Oeq%a$;BL?bIP~*z|K7?LmkVw z1&ZRj7FFY%Q-;DoEBMkCj!pFG%a#qFdXg5MyDC#5}nwOmjZIkeMfcLDoU zvT5>(Fiz3!Tj_>BDWvlVz{LYO(`PD-84tBJY;JoR#7~oZb8p-#EN{#KMiEDv>B0p z?4}9|YQ+)gD#48O+eze0{3}<^fQCp=fC2+ZA`xKis|_5=2IZq{t-%~q=O42mA~zf@ zNoZ7EM;RUJRJMKG)w?(s?TAX}2Dvdcea3H29`Zd*y8WF7Iu4bEArATLiqs$lS10Ag zXS`sx z&sw+IA=r9inv1ovJt_9*%Z+!AF;>KJxZJg>Ir@nf)>25uDEul&;^XEOFkhG0QxSpU z6<_Sx2py}z<_sL;rF;IpxBD_|`Wo;?U%gtu3sz8>hTwWt_~I;f9)h6KTVoY9dPYPf zuN9ybT{gBmRXLz5^Lo~iJHT%BMp9Vqqy}V*flWojF5b0ht~%0MulhjGN_PXL(yfa~ zg}627BYG&$Ok%lRITc-H=mm9eIywRAUS=+LH>SuL@xT<#>Qkl&rN>WtW2ja6x>piL zt&(r!2BcXwfmKwFgQYvoK;Jb(fn3F*Kcz~u$U9bRT%c|jH6PnhH(dKwdm!gV_>moY zb49+^d=brMLv<4l8m+?1yNB$hoB9ey9R)d*D6EYO5H>+kQbd>pF{+X7 zUPl!n%W+AdfvExg$-wA(*UWzrH7iJUo0#?kBIEg2(@VB1P6khr;D$-)MSp1#D z4#K|vq4H2Y6W~9L@4P$W_L@kEQaR$j#ql4-jZ?&Kbo)7lu0}Gv9+mT-z-6Y8^F zM{W!;j26d3UgNI(D7j1L)HLQH`M^+J__2`8La z5Ab`$&Ea1a+9dp=uv4DGzO}#jZ{sf#MfL~YRB%D!yu(oanS5iV-=*Y9<*r93wOt0H ztSa8~x<2j~G2U50JZB-mHJ>0S<*GUiGU@s~rIpi{k{H60Ml*_%StNNdql)C4vDY1q zN##g1shPSexAL#YPl#87`^Nf=>HJbR>0hqCATJMw?h5tTf0ceXYwlmfmu34(-_Ezf zFL=ul@QjK_iaZ|m-h3{#Tkjdb8~9gsaF5D?UH8H{#2zw>-7#LY{u9poNcBI7{vv%Q zR7g%w_*MsoekeJ_Hw(g!)v57!NlT2}L^#3yE6Dr{Z3Em$Bpj*lTojbekd_0qb9%o;dMNqo?ZZEH0f7ab9(oDnDX)uR0lHdYvx1*oVaWlk2`EzSPO$X&I}Rm*mGh*FuqnQW#*Gz|;z@ z#s^N7^b{e<6puPe?Xl7S0DY@Y%G&1sb+)uZ%-)@aP*6V0lV0QSZ%;||{Zmt&0T2K= z{*_f7mBkp{*z#M=K1*3lEcqj^wPQ(c^2z1LhTX<%UsBX$y3{UNp+Ds$Nmv%Efa@U!xP%RR)@vf-`JYbVU(#K zFBS9`!aYk{(L5)6sof#BA9!(Gc!{>GZ9!{u-~J^)X7F|Ow_L=)bM0T0t8Sm#j)afB zj91=19oKwG;{7i68F#W_lpKB)@;0gPcHdYn#9MqKeHgiVKr?e&$?fLiTUbFnam9Re0303p37S{rM_3Mu_L)xx7=HHM@slN!q;NYT8cn% z^9uVDPPp?e7DaxbSB;LR)a{`3G;VHFb{DAaL^nCXW49fv67E0``&Cs9%diQ}ar-l@ z>)%z5%x?oE)(!5rJ;D`3w=~%F%ZWb!07}z~OooUmJ`0Pd%yw9ddYu&$ih zMU1Z$t8Dr9s`h9sbLPTUZXD75l;n?_HPiV4e)D31YQK3+9H3*aj}TFlQGaDX8v?pG z;ZBV87+8Z~b4Mr{I+urSuWdfg2MjC0^||#=1YFBwrQ9+rbMl^R=^aAy*3QMJSHT00 zYs6vj<>!emFSSXSOp*Q7`d3CCD*BUA=y?2*>%JwvK`Xq{F~;UTwbg4s3vRqCr$?&l zGpm^fcITR>9=&m;-Ab0pv6Zp(#b;`o=Buq^`$BenbQ$9n*QN9`TNzC8*ToZ6v2^9xKn|g&8)1&o$KeDGj%XE$%b4BUeN_7)>9hdX8ka$`BEjzdn97KvPh8 z7<{?wUs%E7S+8tR2H{r~^Pk1LbA6;qDNmU>&1UpvEst>howc8}cm*xnpCIl0tJp%8 z+(5@Q^C#@Nsr{!!ywkzJjk&L;FsB(lj_CvW*fbpilyVi~uW@@t4Hd zA&Kp5&N$Ei09v`Z%{dNw<3>v;%7Ou|R(QlG_k}}t=Dd%@pA_|*hiJ@#DC6nUysKCE zjdY+Jok4Ql2c=)PF!m?YH&=FOnR!(<_2#j^wlulrTX<$t#N!q64x{l7)-~OAeU;5v z@IQ_1yhGzVO+QGOF$Z(~1#1eT_I5tUc!u6bN~s}<22CW_Gd9&2;;R$paMjW647o{V zog5rsn?zbBB%ksvj zK3DrqTE82)jUV2ORDOVwD&Wdvp4b;&)r-6!bUY_DBC2dz!b}=K#cA^DikbeR1&HV zYMsU5+qF7X6Lz_(w-cVII5od1nO=8!4;?Clb@{4Sa!m^hOfouCun~Laq*N@p0<;B* zM9iIPNMKRNK}-y>3H+*I6K%;Ax)vzYZrs!XbI@^CfXP^k{Iu4!Jv}R7HYv#MN~{ZG z6#!!!Cp{{wBS*z_Yzsfjj8hG=H&L1Z=f-=~(U}*OtESikijGLxN6SDLZS?{^Ne(M^ z8-T-x-CRo!)iu2DZhli!Vv{=Qmvd!BTerNpuyv7Gsa}|@%R9xGd)A&Kafv@F#$_L1 zd>Huj+B}eG+Qi$fp9&cN01bWLYj&%!NRR8^l- zK1^-=J?nB0J+idawONE3bWJOfj+_egZw>qxmj3=by~u?IgaE173hE+DWRX?~w-M8d)Bga84ww7ALgVcd z4vQZ(zopM}bN>J!?K{Yb{{S0`%naLIFIvAijt#0my~TA_9u8mw-Q0{Gstzko-q%tf z%{=>ka4>`MuQ>5f#E%4caa}dv6xv%de+QbS$KWeZW@ql6r4$|)(#dInb{@a|dZ#DE zKMU#1Rwz^v{m?kCjCGINXW`g(he#9Z>^R(uw0>=h^K0*n{x#NaHuy`zJ7PR}w+y{M z4AsVnb0hBC?~YJLBuzI@d6`E8X&J5uRQSX32IdBq!pbXD{`8C&ADw)8aK9F{#4mlT z!=%PX+>JpXeg?Cj!Ip$8c$37J7ntf9un+53>=~c7J&RQM&#m2Wi&*hGS(N?=i6`{0 zH`V?pt=GgGP`YGVP)snaHS< zup{&nLHKXre-7zyCZD80!4oCjLlcg@Yk>G~@l#K`@w@3dWrSA$0KH^Fv4RH71KSnj z8c)Zs5Ls#Mr(P$UxeAuZ?^1YQ;+~P=`5#b+PYZN1M&745^cBwJ&D0`&z47Pbg|(-J zq_x%@VHYT%ZQRT&@^z-W)O8uJZWNC(xL;37?fi4&&lCJZzWZjmGdin$k>d)fT-}wn z*V?Q&0;&W|mKh#2ZR3I3xW5eMeMs9&FojJltcbQC5l5va&C;-uph zHU=;{QUbZgI#anx5Au~pYP$eWPAbmsIjZNcJX8$nd@mGfGf5)+t;JdRo2i>W4ZXZg zx6T+C^sD*=NFZ0}qP)xEE}*x!Eo~nn5sY@OI`cQ8VtgI2msa?TrA3VWoz_$T009;H z596u97TkXC_=l~0ar-doQeSw&_W5(R)-IrQ$*-$CXW|VS%4pM3x=7g%-EV4&W11hU z{6W-i^t7?kN7;fLXQ8hW)~@v%`@cU>m98Cl%VxH&{v&t}1@k7ohbzYi{42|~e~X?F zl3c>gA`UuWRLz09(mY|7uxA(ySXV1^@l(UHf2fU(XCH_fWx&F(m-Va)NQYFojxxhJ zBD}j*)VE5?y(@2C)?$%Z!g5V{&E3k+mOZOTjg>BDX=TXiRPmGPQX%J)Qo61;Ep#QJ zi5dZ%j&Vl!b|RXMj-rFZe6*QJdoB(rR90+f6r}GwQy2hv>r7%gGM+gVCe6bnQ%e%K zCxKGL+mM4m6x(!}+uD%aj2O{87k`DuluJ;AF6x_L9C<0@!EmM-;bL4cX zLXawL`CJ~<0iJDec{vp#LaF^ds=(<--5oPP6Tr(BMM|?Oo!drghUU*StI0W_3&!g| zDEUQ0=i|LpJ9B|fWhyKGg6^FGmXp^3lh`orQ3nt*V9R)^P0;9$_T9?Yg zRdoPKHglZPdE@C!+5o7E7GIW*piSn1$T+1J3J+Y=2H2|AZKvy02CG~t=xQG`CvdFv z-&0}K4wM0Xn|K(c5#zmQ{M=%d*~cW-U~cJ!681CP*P==RP)A%>lxgLS^evtNuTpI8 zUvX1V(gXyzdU|{Gpn*(c>-4Dt!b>fb$#-hzIS}Myiu!B99xu1otYcY7`$F)**UO}W zFly$LsZXR|M|B=l1Nn;M#o@W*rsrl88SLb*vG0End>sy{Y}b}!Y{}Oh>*sflYe`MC z<7ry@yTjVuuDfcJZUk-QSDE}o@LMXKUrt|k$7=KNIId6K%skf>U74XgmF z;aPB}wN3_4HSA3Binlr0kUCfC55tSwe-!*Fg40NuR&;~PDi0umj+Ob|kD`7QUO>}n)hS0vWH5P0W9xt(Ft-guRd&Z9h4O%LHGjr>7yklX3660;1m zjiSD=)4yqt3f#lDR<$WN8@($lR{f|nJ1E*O4_IbX(YsRSA0g>~7A3IoXTixdyZJ%5 zdsTuI&o0|`=LfK_&Dc&bZSq}qnJIodc#v+^MJ70jjv1~Ehs#pHFS zmM8G3<^Tm18YnqFm7s==-K%rJ`yuhZk98|-SgsJ0(~89-9S$gkj7}v^7<8Zy)4zy* z0r1Df8(UfRDI+n((C!uHw*LSCJ{em^cS#$MsIQD<@z0EmLfC2&1RVzIuKq6ZTPar5 zB*&mNormasz~2Xc5n2WFqk*yg=M~8OP4Gv41Ge5YN+_Ts)eeRo}# z{cYrj{smFCrKrvOtDAw@~6rot-8n*F%>(o`^T*@WMJ6sNhUYvwQ7(NkG?8N zeqsWOR9u|XTsH0nPy!BVj(&WBR+c7Z_p0ut8|R=3bD)trSJ(dl1wJKsJHg%qyV5n; z{E2tFE(S|(1NkDUXiS?f{9Co|NE$iC&c+ z?wF|FW-YW)a2?YiR4nCA7NaDb)M`26i-9?IJkuKKlwb-&o{TCZ9`2OMh=xXHrz_yp zM=CICRZvu9;)02T4%C}T=~8)-Mz|-MtS=Taa(Joc0)H&zW~4E6sttIgjl9%tb9Qm% z$C}UDj>eymz41<1V;^{mp%sUSF1~0i=6wGEbxHnJ*J-~C{v>NrtJvt*POa1A#U9lO z#KZDnjn&BkYS6jU(MksyuT9eb0A@doTDap%co+Vf;cL-!kJzK)R-gl2&jr7>NvU;& zpnSM>J7j;C1TWH@y6i8;%;Va=+|&O6VGVUkokvtmH)T^^ou>Z4ejh|xbv;$v*#;{o ziAAbR{KTJGE=sE76-Vu|XBe;8y&v`__+4cp&v_e87yHJ&D&O{K_%o&uQ%Z%%>AIuq zW&1XM7NY7G2lo)OOsrJl#sQGJ7{fT}W*{Z&vk0-G;-s#`6Z^7Gm zz)dw6j_qF6_KV;MkepR@n&|xT616_oL1b_?pR>Qh+Xl(f;3Rb5S4AJfZ-+KZ@@a4e z{{V1SvKz@|X?c0i2vD6p}Ew%p`QHN?#gXxM}2rXe7T}I>U zP+qWxUoAMzW&___b#{%;G3iv(Q@xe*8y%z8oi360WZi<*ZW{?BiyMH=0B5$PapwX_ z6(irtAsm$zarAa|+=MfGP})`6Me{C4u%f_5W^c3d{c4<76Cm27C)Te^rra0-PC%rB z$)N$IYy(Ars%~A6mn-6_+$3;~(LPV0txMY|SOTZ%R&1>F=t{NJptq$K11bm_=>TKb zsH?a7Rl-{=yFOH{+nKccDE`y4Z4m1a>PR6c3+Y9G;=apt*5QUuD|*h+u583kNcF9W zZQ?8iyuc{xDSxzWE!0643H1~KQ(~k-)gu57I(kzr>|tEUBUNM90-twz8v_yyN%W{~ zrIH0K{{S&>YS0YbW5W6dprP-rqhr_RK*RFsUT3QO67VjqI^SE_$7yjN%o-)x&#ijR z+sSl9YBqo>j`?J7vM0(%wP=|w6WUm${ur0S_pk}Dm< <{R&Uvt1dYvTw3-NX30U zZ3A1Zt{-!O(y{J!JIg&W@8n;U9D3G-p9SjQ0X$CE4$!!jMsiJK#qi5o&=>6z$L6p< zciz7BvDYELvuBbV`kZ2$;TGA*duU<+{oRNBEA=-|@Rxr^CMy$)ssO zDxv5w0H`GWq&!O*NKOdv&{mX`7sO>XFS3257MC8I62)$tMmSX*3eJ{iLPI5dnJ4WX zbz;G;6{RP#^sT)cd8q+oq( z;~yD(NbygP?!*$#e75NXe{>4uqVSiFwar37C9Cgq^D!N(va;~Lp`xeRVz(`Ld)JSN z#mZVl_Nd|EOyM>$S{H)#4QDqOhwQd$dbb3Mv0^g1MeTDaYmDGQ)$;$vOQ;8@dt%`8)hvu_g9#3 zTi(8O@rR7A^g@CJ>pLr>hWk^8MBj6 zyqM!;N=RRFaexIw;Vlwx80*$r5V#hpbohB&qAh-^{4CPG4E!k24W5T68n}GTc*O3J zKp!ad6yZ+p#7?D-2jM^Lnc-a;-aF5T1N%!;;It?GTxYoVHT9N}r1*2gcAsO>?bbNd z;6@YxF(IE@`w|6`-30Kyi@)b&w`^IT_N_(SAUIO28)KB1}iVzm3oJ` zHO`)``?!Du+y4NqPCA{6eBM~&+P-`L0EO+~=jCM!O`qexgd$8C73)9Thc!d!QL9)M z&y~;8n);QI9KfYlxfS!Ye;&LoCO{b{rFjp;-`YkUF4=7~ShGBXsI00^iaIH&v+Mn5 z;(vp5D|R}J(8aT{z%}6-{{Zc6@Y=y;hBosUa5kVKzcGAO<2`4@*UvrW%M~Z?=DA7j zeofds^v!tHaS{6{?uHfprhTLFBlel_r;Bv<)8Mc!9QRCZ9<}n++V+jOn4rdc;8z3X z(OiyqI-^Z3j^F!k+n_;HM|T9{Aq8-lHD()$A?Z`hS1H)BkFwJQa1rwg$BR%O#5Yxu zc^h>3YVI7Si$NPlwQDE^g|k2rK~>)RR{kti za~brdNWt`=c7Uehd}n#426yC~8h4h>^r_Oqc~ml?H7WvXB~0Y)9coW7sOOs8hr{=K zM4LD@(AfB06nT^M^sN*OT#>;=4aLi17|VSHdl$lOFHX|@RcozyhTqPP$cYj%xeVR1 zD|b#^KFvcc3WQd<*J4k*8lR;;QXJ3I4+(hBP1f|p7QtZNGqi9Nb_39RS3@lS04Mx? ze7{=!zK7xlwWpw6Hd6*YD@GrS{xyq%de!OB#zHE|9CO3Aewm`9L>(_O-kYdZWyqT2 zIsX7^zcQEN=Z*K5OXgGQnvPG4o;uGulM;RFf9)t4eN~^Q3lu?i{ih#|M6g2>ZWkl| z`W5+&AH_c#$;;|&KN^m2ias%J2BhccX#UiPVEU^+P~?KhCi8eP{_vzpH04c#=pXnH zuggh3B6z*w3fhy8#;U)Md|03~dZXv-NA{#U3+kupt3Hpkhq?>@00I?XItqch=`rlp z`C~20K#SB20*6zLG&h~UlnVy<2SM&#+UZIf0VDNAFO9s@Y^=;w4h)2#%cqt zcxm&t>NNxXp7!AUhupuNxhA+ z*f6P=#Xb@sq?fUbf3z#|X}m?Nul&8aUuLKeh_z`()w*?4>S+GdE9xie;qi}ze8N80 z76{G2+q?m3;mGf^E%=NU7%=4(IgVET+t)_?d;{0rtB-9&%j zLZg@BKY)}3H?WL_XUB79+ z4Wn&_BZ1S3{O()Cjd<%;S5(U7K;oD7o9t=zIG=vY`%-B5$B@K*Dk1w(XvH{%v-Gck zn^0#M7!;=e0BYqx7^wc!pJ4i&PrIl6r>v76O{r#YQB6rA|bnsSHcGW0L{il zMs5f>BRqbszm#;@Ajj$UA|4TAHtzu+J#w3HpBs63(0uH?tm%}v^(`Qe`!?g zA61F>F#V|s`&21Q8vgSh!Hrl0nmK>Dl?vwz{JwJqLU zws;=Yl77>UN6l#HN2PpRFQx~vsJ_w+yWCcP+EoMUus+Ct+JjUa$7%A`WWTiDzboz# zZBI)1FYVi#Y3JJ*sFrqOK

5H34B@eQy5%wC=qi*e!qppmz-60 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 ZV%aWSYlR7^c5lf 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

si{4l_Zhjes99MOGLR<^W{U4*wv$S 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

UEyYom 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

?T50Mgzef;WB$toSb(?u!wGsiT4Jm&<15 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੄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

rC+mizeCPc(!%mio0#&O+v&7=0aDtMSnvc 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�M+2_^rp>c4bRG` zxvJ(Tl=<`i5vgEzlt;S)x%sbN+5EX;#@}lC3SAoR8Fv5*9@R8n8nC%Ixwlf^N;!j+ z@F;aCR}!k?wPV&Jk#ZKjw0JK?-}765D-T!jrkwGZt)ue(l((uuq8WAdzls!t5-46lvdsO1B> zZFtN#3>O?@6{&BiB1Q~@Cb)aZf*|`o12^#s=WZ@_IL1}D_M?;!WRCZ9mK-moAk+N%MkWmz`6~eG(a+A` zm<&@buZ$A;Z_x8p2U9!|F4xWotm$VbtVPy-$a zso>S)RtqBFj`hXbPb$m`N-#e>3_E5-?wgPZBB4;kCfI$lBkiSEu40(2S{!g%-y!Bni}TdCKz+YM)yug z1HED!m|&CUlx-Du8|!(H1;@1yU?!bR!{p%Ab%sa=<}`h(2&BWXtAA*djX?_is2p?nJ5WH8e!*gpG>MQ4e+D(4Z;j39-z3_X$KO1~4Hjm=_adT$q#UzaFaM-{hg?~L7 zZ-{R#Zw=*y&lJ({r*YZ~ayE*sXLQ>PMDyCWWVVA+wn>S@_pAx+7TtqpyOfNPYwXfW3pwdkMbD5ptI%CX zG=5t3990=@I<--yi9GXgm}6A7G;g^@AOtWKq6W}6^s5URwo~RXvUZ|lmd*b=&HQZLXd$ep8eBSDO4Zc;N975`P*IUX`p6w`8#6 znxam6;eo8_06dz|nEDE!>OSeM0Is8tmZe^}6zl~U6tSV*pGrU|0clS-;+ju6rBZW& z(v(2Fnd24HT4dX>_O4-ryiANY=+TrFly^5jAPcb;$zi&RKv`EL7;5SzkEJG{{T3zw*LTSYvXs}t#3?z zsCXImTKKN|G|A(xF<(x8%C|*z%ll4=B4-(_aSPoFOv=?X@nhl}*cg1tBY!%Q3vV@k zZi2d>i8f!^UO2rfK3ST%|SI-kbH#q~LucmJyX{{YL z)Vjb1JAy2bsV#(Qi5gX#3ImDG*ffaF)X=xb-F=@BK!+DOG>;-2JP#QTH8 z{yXqL#T!v;c4PCMa8bQ|tHJ&(e$EEoIW>O?4Cm%#?T>6%&bKzVejC2~W{ojGr#~sh zeF5;>_J^Js7fA6&9S_PF^IY7nJ8WwiDIX(VY1)pFJ6dXRv@V=shCeE-3`B8Xs9K+d zJ|BEkwDS>SYn*Vvu0gM!d{g@=YZjLdbeWb#Jg)9P3fdJ@GMrpbk}Ypi$qK&v4hB&XjJW=qcLDTexeHy|vc<^!n=qsV{zMEj$TKRY^ z6OdQ#ky_mf?D*qB{haly(vPX#70+F@?Ya-_{{Z2=5f)3dGr0cuHR>KC@y~~RA*D%m ze{mS{djc!t{{R{O(7N}C44Qw3Q|!>5Ji;*BeT5f7S2`bxns0`5G#2(7Jjn(&uW!n} zXw|gSZba~KuiCm;h3)?U`c|bWXColBY2FBK?baiL*vHbjKGD(8@(YM_+bzJauKxgJ z{X#h|HEkMkkQaKWKLm z81&cDJ|JohA^B#Qum_xGxm_B_-(K$9@~@?Io-MJ|yhpBFYgdwQ^G@Mfx^A0uX=Jw+ z@i7?5IP|55(iRH3$gh24G(5xdu<2Cod}-q?8|1c~%8%jdE2D!`v%6eB-}E(MEF-u= zNC5W5Re-sp{Cw7Q;A7OHEnbtP{C&|cqs7qjPrZ1x&xb7U2F?PMK~R+@}f(vLq@tH)@F}yPHVT){wVmjP6}g? zupYIPsdhAtkI}}o^Ccl1U{)85Y@GOJ@fEpf@x^?Z;r{@Snv4ydOb$J(>Td&lNYFfO zXZAwrz1JH~E1AXhH-ksXnoY0SH{|@;BbvK&J*?m?!<_n8Tk)5|cYYC$T~ft=(WU1g zbgz_GR@6o$^G{wq>#~!&vClMnvRPS%B}gOEuSSTEy8~$LUN2{_Y8!zKn(3kOME2l$ z>yT?tc+B)RXjtH;1xSq!HmcVd7m4g9aD}$!x+`1TNdVa(YCYigXGa?-jO`rayjR8^ zES=_kKG2j4!96S5Ee`N-IIjuuwu3wu@?OBC#NBH)Tv5PoW;=<=sTAX-MmeX`ri*8) z_)|Y+2({X;65#P%cY|;v8TPK)ZK6U&RLn*I@<0v0-))M~rE!stE8g}k$H5~hT%osa zGwogvsqK9{`GX6#z3SaXufb6y4Y?i$z{j;=S7dEO_!a=ec1O#TRugGF)G+QPg*+}C zS8R4U<+$0gyNYZBnh5!+6ONTd7ZdN`io797IO$Xsm|?M3<0eJ)pbY!;K!eMyeoiuL zTJaxl2*qTK0n)P_Fr^ffP+08zwPwWP1&dr+CTM&L} zI29bfWsC0ipb9vaL(_`06_aOi=}dh^0%9fURV2Ta(*ul92Cgj>a%v-}Ll4Us&0>D> z`8?Axjtx&J8d7Rgzue$eU$tCG!#!5d6wU`Cj!+$+nCF^{2dSVj?M@2pII1qldVpv+ z&MIi_r7O~#{A|soSJOJ z`c~@QTby>OM9`k%jzTVDE|~cFjXdeG z*4n{6>8s{}^YSR<3zbEMs*Eo*@nC>tElk^b$4*HYjAo8gJC#kOe|L^4`yt1c%SKqf z0jUFzy1-_x#d8(@%7dPQn$bpanzT+j;+hl{+(#5xIflmsLAqp9&AKnm+NO<=4k@LO zoOG$>3y`c46Y`2^3L6ZaDtweXml&ihHtqluM<`rJkwWd;P%5Yy#ZHYJg9LL?x&id0 zGG$%hFz6}n(K7uiqLPYKQ@pMK^`Hq8401TBv#@;p)EhjtqmzvEpaySX{?$B^D^+&n z)NBm^OfpCzxT&O59^9U_T{*xb?$w86Y;QkGcNZu|8Mw_%6+-;|O;X>^Q?)WrmS4f!2{u)XAujDdW8rO7X$QU#hPzM~*$^smLfzVU3XTXeO6wrQOn}JS+fOd7{<&m9s z_NW(ba%klOP@T65L6!Pc8(Z&Fi6Jr8m=m)o9R3v_92$*S6UgG1a`x#=2M!HLF}ACQ zaxz6Y7TeQ~)B$9VkS=NrvbGkD=K%hcoB0G#1lih1rbm+~4bal=47_!v$Xo;Ws5BB_ zGx81vA$DXNdQ<$jIK?!nT<5=P48Z)~D4+rPP;x$FNTGnwtq2LDiCB_P6&BDK^PE$Z zl{pm8nY&`N0#4Yd@S~ulD&1R(V&`{S0C{WxF;3%WH6GL0)P^=A9Whg28o3`Rbtm8R$+;X7aeOr zD3o<>Dq!122*pZNhWUBTD!~5$dHPTT(;-8iK zV8LCBR+jv(dR8QSNW!`#}`ln+Pje>8;z6PeDvN z&Atg0Jf&)D9A_A)86+=|IINSbLRUS-NSf3>U%ecnG!FLSr$WVWc&vZzdvFFi(Av}_ zfs;olavM^7sxy*mERr_kio>5)LPpw%YU$Gya)%+(qLOxwl&-=*mbu8ak7^~<<2#5x-A--W! zuCFr;Y@j($|JM4(%3E_gZov9wZeJZ+0On7m{A$IaYM7u^RNu}~_RdKqMKubTK;g_O;QB7+gnN^!1jX`aA zckS7Y+*I?p^L|5;n5G4(Cl=tRwkd6`4AJ?Fap~z)Wow(0OzglJ*eMt7--_l#wpf~BzHe(WeT8B27=pLvWTW^ZS7WKx3-2OB5_sa zxPn6EQ<5r@O!46)1SJ3^&4SFnYImuY1-G>gB~I6^v&xM^k6NuBXHcv|0B8bRV3(h{ z#aL@wi*x0#&FxDi)D|n}MxbV!XRAkaOpZ2ViU6x1mLSqF!ziqqHd*d6!vxlzp{PV$ zK!+sNOC)&YX=K11r~`EbViM;7ilV!2BE!e>ii$V;LGqaFO45>e>|hJS`cMQ?Y4Jk` zn{CGxjR6twF1W3zbx>d}BJt^2^Gx>$Bv`so1Ox81!T_XKJ#{7dZJ*xsuBPtZNnu1@ zoOG)ZTP3;~XB&td3IOM{;d-DUOdnHQh|;vEWLyAhTWg^->$xzawP@W&ZNa!)A3^Cr z7B8(nh3t=iA_c($)Q1yqqlME zPG|z;_egCp<7udDTV_n0DClbfeMPR_kfzlg>1{3;?zVG~M-&0AJnKB;jH36fTZ`4V zxZ{!SS03g|ViBXnY&zCsM5~g^_qtF9qH02WaSJvxQLEhs5Gl%btmt51enG&k;dyNx zy08N)KoUTRPr=K$ReesO@Rcp9!5g2UuO-SZ;yX|UIpkh2*e&{1t8)~|<=heMX}6jk?2`hkw|4}3 zRHMTeSX6m_RiFx&Yi;t|Lc8HOJ4uGy#^j z@<45d0eRnjRXkc0q7j%rIgc=xbp6022#H42 z2d#8d>2}j5*uX{|YaR5}w#Sr1A4&ir`z^e{=Q-)^R_@}CZdHQunyC($w=(YEx71a) z)4aCdD{zD56ai8xWVQvjXMJv4%-0YqGUVd11nA1hR05qU-L9ssl~4mE0BFS=NfC-x z3sa?ytc$shK(pPQhqS+!PQkrWR~ir((l8AP(+yHErY*-vj161$BWb(|Ln%DfTO z8n=C_B>78m)Kcluj2PxVS@x{}ecq4cqRR$B$3aPJX+I3(Ijz|*qlP`W&fW!Q!*p&X zD1&Z$&;ul}LkUR_UX{%?lu$@K?$y;!jT?n0Dl0DUPg|z{09n?6F{GC_3k|<0dg8B5 z959W)bPCNxeKzPX-d|deR5D&ns}bP#pb9rS>WA{J#z5fI`fPG4$#hOLRMOEb-)xD= zt$70~4lo#TKpDboi@8+eAt;_%VkS9wJ+WGrR;?UIKY6MdVc#J0Mt0BzTUi~{=Z(Fn zhg7(QjB&0r+O$AIzqwzWQ$@6BJl6a40FxV*MV4;;gN7zgCzbT6E_DgWR#C%ttfg}+4gCj7u!{3%%=uJM2Bo#3bo0sD4_cq? zV%QX3MMZ0I2~lgGrBCI-Y_4DDGy#&bO1A;IAex%$_TpJ_5cw9X{h_X;U8}Syr^R#S z-IzcGPy=DI5~Iy=ob|;=Z#}HH3kwcG>06C;h&OD&>0G?_-c-WjINd-UEzRArPbF9> z99JnmXSnj?Jw_^MN;JEsPL(XOM2F3ZF^T{_$1RI1gPaP~7dH|{5ir$_f2n<@*==q9 z`RZw!bkAqICoMo4cM)D+5eD6;D?9!X{jZ4*YjzDqb~l;9#}wO3qGU43(DW1mO|(C= zs4%x4l`{Bd2@}tp;8h#_d1Jf_{43g|pIl3uZJ_KF0mJyaL56!tV}be(4r}IJHp)fu zB3d}!irBBCHGNacwz$vSQC>~p=`FP{6fBc20=H_?oR~=ZkHVG^TUaD=zz8GKyc6SH z*wbZSA#uB)74;N1k%(3pz(5BaSIHk3E=AU}<*?y9){>JmJdO$8c$pg{{{SjoD@gON zQbWcF>sKRRA}oaJhA+%7pT~m+B8wZtr6fJ)$2bDr;Y+3g>vrI=W#z;n42Nm;fnc=(0<}=S3 zVmb_0Jvo(87&cN|TixN80N2{S0laIC1PMma6b@_Vv!Y!z@yX;2_OEyFmGj%?)_C?t z6n!g6+Qi1^mi%6h*>4f>rH@MS*r4-pyN2re7sq}bpTshcvZ%m3HE=e*0=TpxuH*pc zprW0u4(B7IrWL2E!f~342t?k#NHLM)-OE97?Y)BCxNuMqg!W>EIp`< z&`C4S{2{5L-9mh`xroj?SJXPC#5cMQ!x6|_4l9PT@V1qs{L28r=zS}xhhDb;SxFXC zpsAf>N-)s*H(Sv)3oTAhDk39eka1FfW8X}Os}48y;=ZT2u(iFx5UVKl6q0GyHp(&q z^uXy)+UQK+c-MivHL7X)oOewB04j6>y~o7sJ=Tcu=Pxqj62Ge!T(Mo;@zT0Q_&1|36HeQOd%D?Np&}mLDxKxDiWS{{ywc~; ze$M9$q-a)t6}JhdO_>(DOU-TXZG4NS{o`?1gHF1d=$!3BYgM$ERBtWMYQf2tmWL+4 z5A?HeFG?%PFHw$_)LLlPHh&;QQ`3P;jX#^^sqc@%v=S71fxO^iw7an}D@_HvpCLv~ zZCThYt*J6EN|w&mBbc%ImZZGY;&|HLHRq*fQORH1vkyKq_f2Wq%O8?wpXB2e0xY{& zI{dk+nvr?aVhy1^C<4iqCVbmBC$&8<GpvZeDW(NP$jbh4ja7^&9ww^ z9+dld9sYS6=|CK%+;=d66iZWSt1?UTiq>T-bLD;GPcGKX!IFS8Z{eNX1?2@q>pXCN z>2O7KF#_@Vn=mSz^Ehq6enCJS>o_DxM3qOdakhXp;f@%|G7*u|n$s|EEPUdj2yP@BfB@6vj$32u#&D&RjZpQV#CLb4#Ji>zk7TrKm^ z8VqsTfFaW-TlcLSPU*D>F^f+spe&eXrWIj8aK5?`^;e0L!uY=O7^6 z-`cJHjy8~-jl;EAv63-yBuJR|s3wARk&5%_KpA?Rb8cAK@TZJYX@=v^7G&>?R)jiR z-C}!|;8x6VTUo+dFabW40ZQjijigsYfOx>DZ}f~r8V}*DXzyf}W)ZR68>MW+cXJ$t zCHauh1qG7f5G;psimR)B^0;3c()=y=VhUQx&s_!*r|({L7n+FU&`! zDq72Uo^vtHU$U@hkh+|=r2u3~uWm<|!R{)=ki|CHGlm_iSuC0EHwMA<6&31;C0=&= z&<3uPrQ6PAns&)vgVM0?E!JC-f%ht$Rll{#3>$#kyVJc@Sv_{jq-z3)I`#dPFNl&1Eaf&D}~&rZUtr{-R;<4rwd7mLED_w z+gn?PPd&P)-NgV*baj;nnfH`(Y0$JWp@IJ3s?pqDY7%{(KbO>sY_XsC^v5H(pbGcN zXsTWwt;ZD|y@UA~gyi?Ft6dpV-KUf0K8Ca9oh=H-8Tp^LVL%(Yca;sdm+CpqWKOE` zJb3v{HaM;tK%uxkmD9r=rZPggBPL)935{zp$p5fP*XdPkI2McCnqZ!hY{+ zH0NT>*vn&zd)sC)_H(;EYi7#LEo0oH=kGua61iU~zE(YJCS*j6uX1t4YhPU3{hYWT zys8>-^OMe$WKacYf9SJtClRqor#fM65OIK^hk9QTum*|wJKD{|LQTUf+N%b!{RlQLLg+vZbQ)7=T3 zm>f9h1y8BTFO;!HxjpJ_BTG`Pb2!U-Pz9e44>D3^;f+hG+rkazT;2Ck_Evw19_k7|0!CaC3L1!EOeG&lO?edBMf(Y&Ht-5aAR~r5m+Y*nM zRcR!#Qbz15aBDQ%hm(A5#Q;p#vn9q!;x%0xw%l8^3II6Z*EOc-*AQKK&c7`HX6i_ga325;g1S8$Pq%APFgS8ESvU59 zZvOzikF%{^(9r3mQ0EgWoIg&Hl zyutx2VPOl5_pJ?KCbx8%C#d-QRRXAvr_Vk*&kqhK`Fni!DMw+{ho+ zt}Jpacq{S>!<5*|j>c61vz0wXRfNIzkQE1WEYQxEmkn>mD0` zdR0qp-eZ3X_N+&S`9hw{T3NXe?IS-*fG?EZ-%8{>OW|!FT(@g`n3sEh5FGw>t7|g} z3YNe$`7sbIPZZOzkBvNA@at9Zy}@->xVJolods}nYBFQW!1;LEEAP9TXmtqDCLbrI zc_)m16X_Bo>RMumXY?HnbyKa;naZDI5&?Rw22Hw_>ReY#LHfP&jzYgTz}ysex8SO-nGy1GQ0F}ds7y$!rf_Sb%VpF9B8 z2Z*)H4O;DQZAX?+V}XhQj%h9}&|1cYwhk*6Z?(pu+XI@p9wYuEc*q~5?NI=Fr0YRDIviLgft=?9DmOg@+r`y{^*}D0$ z#t5%mmUwPrF^R}E?5>$&cvFZVOW0CJup@IAh;iF0BWHePF*)Vw`?ccm?xFh+;) z>0d57JdO2^s|d~t_-0G!A@>)Cue z@v6%00^G^7JYzNaI{I&jA_C$m9f9IOS(?IbQ_L7yB;5lxCG`U#$k?qN#TUsd) zD8*yTqn6zG3VxMiMDYc@yiXv{p{|1OQ_?o<^N?;GD*^HzZ+YRFE&-AbKb20MRMu$GZGmixizD1Iqg`-QjLCAPMs=9uaJ`AFhu}#d2QGj#Y(a`1RNC=#>uQ)2W^q@P#sqI z9pXMH1EiKm^KrKeQi+)k8}8R0Z*QlRae!)l*TwPHgEO*eAav*|x0@IrDfvZnt7)j? z&Cec`h8x*%odp1N;_fvV$mX+dCUq%JD#UIUbZ64V7iU%Vvoi z%K-r#R-{&2-}j?!MK+LdN*}#I8IaC_%E)pJS}h3}s>`8D(r|iJ=roKs?^=K>A1L6K zrxO=N8>y4&TUd5w-AgWQYwIlG6ReSt4vU2qekU=K|_fVAh1QMu-#u1!fC*fKcN!@odEJkmnTa z1=MKLJgMN*RU?><{0`L;#LBz2{HC0-h5-i@SPM%ELCTW4sdAAV&Hk=wro^aTV9G_b01-jhfy*pIV!I?Jsdq=GRbACjPxr*S^CBi6J z*DYNn+am=E=Ae$v5c$1DNUn0x*<8v?gxNzS++=Of9+lgs$p$0ln3jv?9Et%mluth@ z$?}@gx77@C?0!h}tCLwM-Oei{TLjC6=7UpP`%&j@vGY216lT4RlZf)YTTEt zw*hlN73Hvb6obwynYg!}9DpmZf_2(Ua4C0N%yI|kK$+)LSY5x&I0w?71&!ou^R@u4 z>gg4Z*#1x|kV%Luw=@~HbFso#@0``kXA!vhx$G+WvAQ6#Crak$hWyR9X4Vu8=zp|c zDSmDRXn$)4Q5ZM|xH%2jAH7OJESq;JbL7MFIWIiXh=z{swOc&4`@(~I&ymK|Th-ZAi$&ux1Iu)KXi1ZJ=39}snY z8N%G5+vschHSwRpj{^9t7SwdOZcB_7C;=7mKaIa(JqqRSUrwLwiuq{%T!HOf3bi=` zr#S3>dg;Ft^qceK-^H-EdfpdW7O3HD-9sOG(DCQ&gX6yr?z_{6+M|#DdGp15;i`CF z#r_qz{{Tx#p~3#)r|csB7F?>!sy>CELcfb_mhutlgIc-O8ARN3;m`ZO`eB}`nSQ~ zwO@xdG>RQb)*anL8vNvr_rsd953)+R^x~kK!xF#GXUXk@Nn;mcC4}tH*_}7XUIp=4 zSYnnkAL(5@9vy@4=yw}EFnF)Tt35}>z8-a!-sVWvI|E-sctiG-@n(SnLv#y)-1A!} z2^{jLD4(Zs-}tvn1~5#adRE1!k36s4>alHpo|W- zY6RmVmOXfG!C#ZqQq*SoXd*n2Dk(2h?!>i>lE--L+qmsk#C}?CUbR3o%tyIa34$u| zoEbKOiolywR6H(RQy)cb@hdT(tuQSxVWJoYrE_2Y=J^i_^Pl#RiP-uGNSpzqiz-=`kFk79VjMtLKtm|?& zmFI0#t!pX5$|tv^eRSOHUPQ_IDd+{p5WxE4VXQ-KN$656YUh zdS~A#yif!Yc=pLiisA-Bd)C70+HLG)q>IzNbJ~c~?iiy+x#_^Hx6)z}812r|Xalob zXfPcP;(B9>%WWp(&S^ZugV@)d8MTc%VVQOX?V8cI@zv}vwrIqPJ*We@g3A6M-Ya~a zD{2y!@tI}qTq1b#)?wul+L1dmNC6DK1`TFq@*A1#g;*R7|4 zZKU~UJJ|HDBUJc#sz-8u$VSo7`c+sgW8KFPv+_G1O64Q7fgf~__j(H5x$yqC2l_J{ zk>0W=(=RO;3D%u})`kZ1_aVl58mS`PnSwFt-kIk}ikaa@YPN2}?FzqNr64UclB%w` zH8s7ZnLFeh`c-LeVr2ctq)OWW7^>@YYv+cK1-&Z(36ZmK za1Cd)p=8}|-#XS{br;txBmzPQpsK%Sn6~`kYZf)UyPwaKoK~E3O*z^Q0?-K8jf@d5 zmbqirpr2BiqiACoG`f6}EX<_kaZQ?NOxuEtuUe*Pa~E1>pxb6LADgvUj^6$dg9PKX zcXsA0h{L*oqorkC$k!K9t*09}G(CWX+iDjumd-FLg}gU0osPv#b?~9KP13hogh2(- zX5Wle8JwNv)yk0^c_N|K{5-xT@Z8X9gKR-h-tArDTiPmcq1<}g=-#WCV}i;JN=RTE8-T0Ee}skJ}A@!BCp@~ z>0TeK{{X>1^qFBlX1Fm(!2I4{Q`mH`ebRquO?ynYTS;LPg&68jAC+|4XYCscF3nQg zVD$^0E3%u5IX!{-%dURIelM_jBGT^GRg7RR+++&z4-kII{{R*&k*)E1|4E}ef_yh4nNu8m6Dndv1 zaf;?=_QEk9&k znf$|Q9tQEXoF?K;BH>Yc`EC9c%t@wrjd+^UWXGzJU(_D0rFa`qv}*_ZJ1EBm5Lc65 zd@Ar&`~23n&7ZnLEiOhYpU*YD-TkC~Q(K(-^{VrDitPr?xW{8(&?KJ$z8OXy>g!In zGB0wgit(=(`~vuCtV%w`rCXu@0AvA6*hsHxkHzKj3#xM;%}k5LOouGISLzkV?5*I2 zl(O3ZJu_9}{gpfv*$-*}`qe5jC)>pQ&X>f9$~Hy;s7HuL0H`(kV=wHd@cJK`OJIK* z%|EigfW}|!qaRwYXCU_RJ_PUg=*fmHB}c??3R&J{;5J{?WEm z8^g*E!n_|^wp%?$YdquZwAMRGdOudvi4 z^NLV88LI+rqk&2>=}4|Ifl_Cj0ZJfTgzf2F7Mk0M9@WgQRM$bJoVcb3&we&dz9G0C zhPiBHWLIzT3NJ6j5;yn2t{@x?Qi-A)MHE#4p4G9WzS%&mVfU)_i)@@w2X^yDBiP)U z=dKY|j(N>$d1a74YRtFJ|kJc#~*3Rdvjh^O4f&hHKfoyZKmqj$hVmZ`ew7Mu%Ws3H^-Yswec;z`zQ%N zdh({2U=$g^ucSUW#|E$AI~`UmlNzbc+WC4gw@#jw=(>M|q{$MR?Cg9eV-l&6 z0W@->oyh0>1+I9XLv_8eouXLJ$}`%&==fpr;q}2DhvFQ0%mS%u`BED@I7x~;B94kG z6obgtZ058(U(8Hxu4M$Zel12s?agLQdcIHpNP0-LLhixs{3PKG2RpB2K zzi4d(!4XZTX`}6WhAJGy&auW<<}7#>`T67Tj`sQ{vw5U= zIlSa21;P1$3h<8_{8#axjxXKru9_Qn=?s3J_2rYtB1|4p#%hYO+G-lcwc@Mhmi~5? z+~oQX!nz$NMN473?>$iPw06bA=dF6Rotz~L@rqX+j0vrr#6Dhvvo0PxbX8-^5CHcz z)?P@K&^(=o^cBqfKGPe>C&Jrb_(A^wwsirC_HV{ISB_~@ zTTTi@prR5F;BjAQ{7t-zN$@VABulkY-GBqO1$+_V0%S*#8!Y7hrnST?MH$l6>UH*2 zwpLG&iEYI7ps(L=J4gSw1uy6qt_XmmmJ*RlzNm!=Z=*S56 z;=Td+gW#=C;nuDm0>;`-LF_APu@Yyaq9h>5E0fjr2vnap?h0m);%N0-MT_`{THric zs^Ol}F15;QV-;;bwzZ~p<|RIr+eN0tjL6Y}7#wk2){TE@rC8*!^BT6I)kK!r&h6E@ zsn}em2C1aP^B*q(aasB%uc>%a`Yl6Gn*|RmThjTX_pUaKaa^Uueth`#K9nypyPu=p z8Q1i0jGhTL676Y>ds%yi#eRSI^TF5t3fCvn?_w%}kCw-#E3o)Y<2%0sc%})FiMEl# zx{e1m_TR;C0%@NWd?o#>rXc%VX}wquyjE7_k$)0DH#E0i0bVPrn$F&PRy__lu0G=4 z>qNhn!t4~17AisZttP*710;Tx)L?T`sVqq8S1h$_n*uziBOSX{Zcocckge8(L({a6 z9ssKp-zl$AicLRSu*92Nc(0Zjb{s8j>7F3J(-;`!J6E-42TkI?2G6IvT-e6OKH|6p z!k?I6`g&KYsF|t8VN{?c@re8>+~%T6uZEBNg;Cu?;`qdd6_W$Zyqa=Dk%)M2jHC;xWa2 zBjc^wf58YLLKT`7ADFIM+Z$0n3$^A)H2mPzdww?>mpq#3TN%r7uYfa201SO7kdE|5 zMk`WHH(bUx9tBoLKX@Est=kka6>5n>f2uv`Gb`#3xfd0W+O>5QR3TTTWmaa93Mit3 zKosbXCQ4}Q_)rccPptrU11gF^=|FPef-0nU7(xvO>X1;}wps1SpT!jaLO`tT*$wF8RW}*bl)l6N*{Cw@F zwxMcb!hD998Y>u542G5NV~GCjXBC3CWYUeso>IdHCxR9^{1?g-Dm=R+fQ0ybDa8AZ7f9KP-a3gRb&H+Ez+ir0)CX(WPltR z&@#Xi0MTRsmT_&*dU`^tc^xTTT3AwOsFq+8UkXv}ksq<$2Ik6ao9km{qJEbi-5hlrik$*huKVNFZs$T{Yxn4VLmk@qmi zN>B(GBx1SYJd5;OJ1P`ORU zZU8;$$phnt;;@o?ql|)a?Na@w={h0&s18$b29Ki(1GjTni*a^Fc7BwCOULOGepCl3 zx%8!7`K&)O_8sJ=c48QObO^G$f96-mn-85JYFiN%n$u#GW19mGM*z4iH z)Ia_5YExt41BO@}$KBPhkRX)-({0&{{UptxLDH)h^5<#oIR7nlE50r z{{Vzv#u5#`WR#EhYD3_U7h!i<$OrqiHY-l$;r4&L&NdHvu`5{0nTeF+(z4Hj{9U(T zvvNP(r^VoJ7~q(!q~o^QyLk`hNxUZuQhAsh)C0i&G|x6pKMJ4z5MLTFz_N4rQKw+} zmCW()+M<~48nyw=XrG6kHD8&m+)|H*-Zno!*&eg`59Vj8fDSQIMgS|giq=ntK0H72 z>h!XFGV$_{n$_`Fc=iJ-R#kj)iiZ)Law}wfGV$RV`y+u<#qg`g&QyJk)oJrC!O7-f zs;2St3<{EI?T=2?(fwopNDA;pFwF-8aN@la{uDorR~SLhy(j!A zZyW=+${hRA&E!qI&ph+uBZ4Xa0BVbF2^Hw8@B_xUGH4BiV^P`){H12ti z+M)Fn&$Qb1VVd={{hfSl<8t7E*PfLke$AdOcK-latLaOd$TU28u3-n}YCh9zjvBqN ze$4(cWBbX6=TjfqpTvqVXB6+`Jv*KhFCgG=7^zb7)pC5n&3lmjnS4a!i=nu7#Xf)8 zlU;@-{rAuGqW(drbHg6)+h@wlRsPj){pGKq?f(E~4N>C_E!GdF4QT%W!!KTJUDqwR z`x-9$2A$8FzTIoIF7Zd(t$1DI74)e6mTtpsH)rxR57~NA!JWS&Mc-i4x$|$^Z2thh zwF}6FXT@;J~{r}NEoQWs8?K!?9ZWtxus?mqZjPU z;i8+$F{1M9FKCa5n_RSSm6U-{e{9?IKyhDoN&7W;ZHCm3VIGv|zh-|7W9CiYT7K|* zSf2_10BptwN{9P!1NUq1k^40GP=Cu2QYY-&;Q)DrQSS$}iSQ`aW0Qh0`BNKHjehd( z75X3l01WNmaxh>}DeL<^_$ncfvnwqg@OxOFo*&yWfrXFtrX6>B{Hu!nAdBEXfuT?M z^N*Sb!0!Yn{JKT~_M_epYZLQ^J#Kt#JmQ`GvghR4U!;TJhl26H?9q&SRMC7E@I-$( zw21m~N4y@^C+3&-gN}lt{?VNM)y;mNFTzg*fwiom{DnO}5%?}Mm9m8X0*`op(I1!V zsayg+Lr?zGy&2e~17E0v;Xi{yl5An;*itvb-vx0 z_NC?V8Qb)))Hwbacu5<2*u%%LsiXLH;RRyC#uJ}mR<2Ju`DT}wpsPGAQ@<5Bhf$m{ zNF1+R1+Ua!_*dQ(hU3pRkZs4@AXbIHg*+n+k}IKPas9y-!fN`#p>d z@{@o7=DG=d72_BHj!Ow~{_TAs;VW$uPx!}o2g;UlxhtNTudE(l4a*)~qC0#0&=>MQ zF%!TZHJFXMe7}`X{{RZd#*!R;j#2nm>3mc8eihtIe0z$9U01_HpOk)71?AZM*^l8D zjNNywvn^hS;LnZScO*6XFg33YBJ(0+@T%?NPYcKQW<~r(1NM^aetpC6GshBq?4f@e za{LVOw*9CF;A`{^yj9_qPxbMi#8ollUk(m@$i_Vgqm<9u&#~}$_y^-W4E(02KeP9Y z-ybl=eb(MR@UZzj7xr)QQ*dPp zE9}Pc=Z8A2+KUHR z^!T0OnAraSrKvxK5`0wf$|xUb8@~#_WQFafe8ms!&w57Jx*7UZsrxZp?Io^%O8O#i zioP841};W_3Pt$2p(|s~&OVfTBp%wK;FjOB5p$U?agS=aKV|q&&Mx|USGA9fT0Y~0 z!1`1p;}(o}NPg(0?BX2t4<(ECV6idomgJM|R-*lxG<;#CVr$Wd#?1?NA9v|cN%5;h zNprY?^rP9teDw}D{u!G^MdCtg#9y;cgu@M8I(%-?*E?Hx;Z0bXGM=N- zs>N??kst3?sgLaTUSfQ$iU6z>5-^y~1z(ojTU$FSWP)oUG>wT5HBw9IGGJ_# zpay@ZG-Si~PZbmr%Bv)EoOTtuZW0?sTVOXDfuMpI4bA7@dH|)S$8?*fBPm-~EcZ6+ z1_#ahS0x^#>gG7IS3F~-bavO!As%?c3ILrnK^%B0KMIBfnI(}Oc>{`)<6Zv%mUiDh zdLK%!ZzS_EmD}d;Kou@xx=c-uJq2`nE64#affyYtGHcZeW02#})9s@H30X3%I#2~Y zRiU__b-3Yr)h{kM*UpIJj+H&cuv#%tes9v7r|H*Mip?j=ou~t&v{t?aQu5{TCe(xKDt?yLi{=y(M|xWVtAsDDa$=aZj;OR z*C;3g{jKyO5rx4@#ggVje7;v1J?nRUf;z7Y?N%Pj$-jU1e7~B2D&4C`Z_9k|=~QBM zNW7_+uX@%OHg^h1ISbOVXI7r*M-a-;1k$rC2^?Vj{poEk8zRzhLY^yAWHCgl$0d6T z$-ImAh}*DD09m=Qw2cUe{O6@*!=>B?-<)Qqp5^U!Z(RG;6R2E8Dxcvr0lx*5qi@<< zIOr+2kd5jH7#%8MsU)$DgLC4j%`~sI$osSbeix4hH;-t?TFy2va!T8QuvLlYGux<* zcpYlYH*s0o;Rac#0+q;)$SH@37NMSb?xR&B1o~COGF+DPP%b-)ruPW$1TD%?1=#K3 zSaB-+!nG_-v}v?1%+)AvZDirtZmB-mroh2n#Q<$!A{Q%>RXpo3hjU<>tNpKUETTBr zd1Jk2PYs>hHp#I-47t@K^E|lz=pAZ3J=*S1-M&J7>dd^diI0}76W+8f*3V702$Lvw z??IVj^5)rR$M;23g6ZX$EN1{7LE*kB+N$3rvz`8M&N=3*>6)&WZg$GRZRltNqPd*I zZ{`-*!1IcQF6Ou(L`DefT>hb}!+QS!XSVs!^~FzVe`^FAr1=>*0)RGr$FX)3o#2ku zMMBJ8LZn67m^H|*3WtY|=9xX(71H#uhSSmtZ!*vK1j9+h|fHtD`~&MR8p3u}0HI_*A`0goO0 zk*IeCSl0Vo8KR9y1&^g-U6AF#T!GUSE|cf9fQ8+TzSIFGp$M1dL9o?%wCEtS60;rE zsecQZgp6{dwPRexad7)LZC~!t1*=G{7B4d+D_Jw@raAurah|mm=ACs0)k1K?wPqVj zh+R@#f_hK~O1goPRm0(qIH&4YfCJ|Z+kGpKLp(EOknZhO=f1kRa)nI*Z^zJr_K7UHpv(fGGmici&8MhjtS$ON-rT)^2MqQ)pR})OMc?nkC zj?_J!owTbXe5>hHkR3I=mWyl;LqvD5#KgBExa+I+X|_Si0mVse71N>ZxK#n%MJzV} zn9l0fj!3QT$!;6cxSKp%1dbEA`_NKK5^2-w60=O(KH3n&ydT~)+BsLHjQ12tPU<;YvPu->f?LZxl zrF(9n6pWVcDi~Jc;Y6FVtJ1RV?cV+4S(j$o=_9t1+6|EO%>ZX4_abel<)pfj>p4O4 z_cf(0l&+q0oHFzRsfn1MCPP3Cfn<&`D{>E|WnImF*(f*_qjM_46nTROpsVTSDy)u1 z7<8ZvT`vAuNoG=g>sVR+wsm%Ym8v;m4WF~G%6%$mKq?wG+Udq90&D9d3o6EV6`Jx6*H6BQmEWyv$!&8O+*>*APqfq?SxS$(JJiiH zJlhZ5pbE)u@gRTib*NKMd1f;!0HUV3zeFJ;=e8>Kizx-%g08n2zS-^f;fFvy5RA-j!Kp5~u&o~Z#QCgP*1W_Jv zdsjfV5JhN9sN=n0%?-2kJkSR(b))&s=f-yd)|g>Q0>G=Viu4OeZ6dW`q#s(tiryxf zqz5b8+JHP~#&*(M+dLNPT(?@}J{)*+Q5u=MmNJp4$giQUbg?{*x-h`>rMHQ6_6Y=F zdew6QcIQA-B@bgL4~yFyPMN{WwaH%mk38N4~D#ru_v zw{L2_qxff4v$&4nN4IGPzK2~p8RJ=E;;2bzOoc}S+O_tidm|owcUHL5g{lF$GBPXA zE&d$eYF9GqSBd~*oO;)>TIumDm{G-c@LS0C;xP~-wJ&HM$nZN~hbC^Zfw!e}QTRDD zRP%9{K9%ZnM)qxoP`K+@cejRiG48^*NwimzJAd7X!tLpb!25mNOf%5dhufM+ ze{}m~9+j80A1W>C4^ZbS#jzrizk|;p0cL7^B+Ak+KzDLFHa4U zPNF60TF?k?ayntQ9J0#)E1 zwQE;tB6V1wa~`$O=++4}hS|W$G;@HKR`&2OnGne}BFQLbZI~m{q?W=v7V{&Mk4ma; zc&en029nWgWeN~(^A$J4N;-`VG%tcu+lw2%mUf)`P zQF-*PcHPlgjJ-QoQDV0_V-@Skx^7fe z;bUryrXhkmS3~lPZ!Je^0LQ(Rk}$TPez5H&yYtJ3pyetSH0W3Gp0=dVqV{Qv22UvB9=LS(MI>l z6+Cv(%{JEQOuu_Oc+7E*Xaby9?Hu8N`Fdin&v+$xkv>9dOKW)NwG#vz#XdVpZshqB zmEwRmU(Jrw%Z%iX_05^e%&G?`gH~mh`qhkC>AS>6C4XCd+yX zWU#l{atF`en+?3Fb-rZ7R^&F!%FUmafH`{@E)|S`V>NAyvw3UNy=b_=V~{rVsI2W( zl(Y3T0f%t*)~*qHpGuve{m7a(;;CLlMZwy?cC?|JZK%p;ngFo@CKHd8`qbj$afM8r z@lq}%fPVm|Sp*Tc&5}AA0GSdiD8$qJ&fWbgb%W20&clw?nRRllZn5Vq4PAopO9EP{ z+b3!Oe42!2CWTiF2Wo=YE!GlWl#0uq0$gM`0rb!#;Ju4sWH*($Jaz9GlhQe#9&)QoGwL?=uZ2MtcW72># zF4E>XmDFUOD`wdmI5RlO{#Ba^xVafo_iD<0q%PSH;XoEA^9(tQr9%qNk#El9Qb1fc zltuxqSmw5i5Xdn=7VV}lZHE{uSdd;K&gxS*=~w2O2l-%Zds4QR1V&i6Y5=qLh}u2T ze5HF*oA0$DTs11azscuVMQeq&Uj-tj#*Y;^BPxTWZh)(ph5N z<(>}$u8EBp!mRX!n;}OwOc$DQB0+d(fj^GGR_^PjSaV&vTsNe%cMnt!0zbe(VSmSu!W#kUD0j<2- zS+AJ6mle(!ZtkuM_x_d9vzd2Fyr}7#&at{go=GP-9jF2(vMC3Y#5048*34E$8();? zj@3bNa?<%cW~NJvyLj0E%8CGr+Tu%j8IJ&Qin|Gt<=RE$3acNLaT{-N81)ruDWQc7 zaUO%30MLf+ejy9CrIz;M)pia^tX9;~PMVxl3 z_7}6cD-r$J>sgm=JE$AJQCBSOos;)1$9e$SvUu&c&WXvWEw2_^hL&IkD&n$RKvRs7 zSOH+z<&Vvp0Pig4wZ2w`NZ?lytD`O6U``XQXle0zN$1-inDL5|^UsY*+kkq|26P@| zVQx$8&uWxv$Rv0UH#d4UQ4P(CEx!_bS1Asia@(Cbb?HDIX^LR0nLblk_l+~lvN892 z)q8cmi}zO~fO=O=acdklisR)bfG{GpxR@6Q?)I&VNG?9iOylGgcEzpTLMPreYWDFh zV)9ewZ%P33_}2ArU&$mV@~zcb;Xxxd;(FCH9o%#IpnS4+t+@g*6aiF5mNT1-ZqMDS(%(FaeB6&gQ#3PP-3^V1 zfvZ}oL28Jr^GQG)wT;nxmywRvUX=vemZ@=a9uPoYDz2eve6t&*Tp{c$xYL#|u&eoa zz{&d1291;4Lt01)nNpWt3ullh-85a?V<=+&T zC#`5{bBK~hZ@PMuSu?{ikv1kNbu(}bFfYo7?+O6D{j~zSG+6?%*5`bWacp*z!L3KI ziS6T96asi8RY^2Stz*Kr=IcNS1o2v{899}?6#FewX@~7E&#oaP%AK?crr37^6g!?H2{691fgN28^(qSdPa0E0@%6eABWs^Qh*#%d`s_ z*aj=kFJV!r0}Frepk#Gj~qNx-eRgv>ZS1ip7OnP-XKDG1yQ8 zN;G#O_TjeyR^_-`)(;ujqP3S!lK$Ca*|k@xsV+2Ycx}eRfICnIb%Vk#1kQI3l~Y!` zl3U>wo8bCYt5|LAH%RS}y#+-CaT~w4vizceHgE1FlFe3i&IfAXrk3_bFh!9Sc6U0Q ze=?~XNa`C&{FS%Bh&5@Ti8S$SW^Q- zKo+-G1-Im{sziX4&O?54Lqn>h@cNd@Xw1i8w-Hz zE>Iqo^mdoyi(BX;Sr|s=8O?lmBnHCV5K5orSD>Fzc+y3a82%wyPLgHDc0SvZ-EKC` z4}N&74=7a&j&WZ$_-o=Oqoo+(xNklc;OEoYzJSm?N1P`2jjrd??n zqR!rx6Wla#^vG^2pty-Jv8DpIdd6raLyQJRtn5+GZjx0g2*Dn;P|I}$fn?-+*P_R! z+e>Zcs{F^lrDVZi(#p#s`HDSh0n07Kf^`ahUrM(m@=k>!U#(AdVzFHLh`Gm5J5}h_ z6+E!StSCKHTv*15&KjLOrN%MR7IF&i5<(ZLn6K@ki~bgcWWF4-iAJb%2C@~k<&*d|-% zh?NbITFZZPsLvY@mv8A>SkIWfZQ-j+U}ne7N|x5ZlNy7Hw;UHQ8U6M}W=pACSvY|g zdG32uwp>Y;XSUpeBlC2qBE5>#mbm##RsA~cuIAcU5$RbPg}hU0A7{AX1!ZvME-#2} zAx|nJy_&jf7~qoF+&RJPis!8~jTsy;Zj|j}`^$-8v>QiGD7bQ)BkU#jLVA7b#<95i`GnYhv3-x3q*yD&|r+swi-l!pTxbLAmH;jmnt#o!~+U7{^nMU*4wKaKe{IqK@ z0**MK4lh&i-jS!cf+)dc^sg`R2ZprWWH5?7vadm2rqawLV#~ft&Rs58@0RdKyLV~} zvE|wo?x)}-aKwdffLB4Jd|97Qy=#lm#apIpS5@%u_MPFH{k*jF9V?jDJRAL`0JqcE zemKnmW8C~T@olx4jCR)ur1m{)+R?YSbKDMxb*@U~7zwkg?-+iai} z_O1pShqv0u*)7xxxoxS+o1@NmcB7OI`PRs)oCAup1Xit?02RpF-6J8%!%~}r67G%3 zsROEGYsxBsMI>SkzcP$hEgkHhW+WUD#ZE5eUzDzWCo0sNOO!5O^LglFC0_2z5r7IB1_o>C?3Ou<6DwQUX2A zs>pkqZ`(v_1CNySr@>;bJj`ScD*piXT1HK?{@XEm=Tk8HU4 zK?0*1O}IJW4@v;77OM%2EQ6m)VAbu>utx%}{{UrLE>7BwbXzI2-he61uG=BV?^Mr- zBG1U7fvut8>m=>PEP5@BOjsZ|pbUuoNeq9$MM`{E5a1>;R^+s>n=u92YPirX6@&Hs zXaXV(v|cJRgd?49Cn}zZ+^)C0JuB~y=#9a z{{S{akSQ%RxWEf18Lf2FA%tKaC<8P5O(mC+@|v*ITMTsR(ytvh-IVRXHI{Ta3+`9V z07opz8s%|WO?A3mt6fTI5foK(%}$yfnIA9S^`H)JNuwR=2`*ItWa(W=@cbh^>eA@e zzEZ2NN&w-~>D7h0A!6^GvPQGtobzsI2Z=D zuXLMK0LR5qj?U5!pbi6EKcJz!g~` zh691r)w0os+e<=}&U;Yso|~w-GQI-Ny78LY7`ZLUbYjotT1_*>J{!4suA`C(6Z_dyU2cu> zTUyc4VYvO~J!|?6@yG1f@Z-j6XTQ_ae|L-pHSjOQuh=a<+cn3A<=qo0U?UU)hV|7lYPTlEI!N&nxo^ z@ZkrFd_4aEFPi~V(+3p~0-msDk;gr!6YRUa3R$phE4;1)zMQeHF8-4h% zpL{v-TU*mELA%Q$_1#{b7sXv8R$ngU?Plp%xYUNmsnVX>A4zyO_J{FrhW4f0%_?#7 z*VO(F{i*cpy|HT15xcp@1%6|--JYO#Tgm|RsF^Ozs<28x9)`B3h<|9AQE@+Sv|ow7 z4)Fr2iKAA2gEiNUBS*U;=H5jGx?tDg{jR;@T`f{eTgOtKhtj=!!(X&Vi}YoRE2$nt zPNy}s;>^zX($`qlC0f`4mU3FeO9S35_k zucs~qKi+t(Aga;QT^582%P%XpZp=#a>yjJkxKhjdx&&hX#?6y zo13QE=icAMI#X@5l#~_EDh8HEdY%~&;j_33vnGxnH3&keuRd=Y>ku!MJUQFewRHag z8rjH%PE1YdT=JqjBfYTG;)ovNrJmYJTtyMW)-{iaZ5|`!vb(oIn$#2DDtW$7(y(!8 zzC$A0Mls%*FJ)bs<2+TZTS+r8YdHZJ;0|i0r!(AJnQkzfe+u(Q@kz402^7VYag5@e zTNSKyH(npqW8A?v0qtIOs5Sg|ekyl?i+*7BeSps6mj>v!F8IRnh?O*1PV z1$C^-P{(qaBc)u?^%ys-Q;nPZo|WqM{sq%@iCB5ydJ3NB;lvQ4Cs7}zXrdgf^C{uJ zlJEBn039(?UCFN7Ai>?oYU?gEdy6RMjwo}1!LCP4lKpN-z6WURXyr8KGH!KEVQs-? z^2JYPCBKJzyLq0by4_z()8(;ArCqg|ACm>R+Tft+M<{a?>?hUjrT|DnDXnYWOHh_r z{Qm%$Crak7wS`yN196W^g3npGM;>f!!?D{?kvBcR!!f1(qd|8D!cPrTUwAQ9y!a%= zL!s-}OQnfrwgVkF?L_`CnaPY>oF4e7ldxE?4}}>~kDL^+#b8|cJ5aY9qL*;4p28{b zWfIE8SFS6ox4W}3`9zG4Dp{fA@Yw3GKbG(E4)vvL1e={a&7fCoMWnJkU~+p_PNk(s z97WOgliIRia{7y3q6LGX^s3Q5yA)z}8;7NBT0?&#d2ue`TY7R!aVM2?9>ATd!1Gx( zJyKhs3`IR_ztZ0J<`E+%am8rr5nIIBh7Nv}Z%x&{%)e%q4WN#=pbjTl^P?N28?oB5 ztl_yli&M|Fdl81h=m{i1*{S4vXyU|igN`wZu46O7{6nT(T}0nyw<#tt2(C86K=GZc zdCJ%c(!P-zglU-Nw;1|XPP1`yG(z6S9B0ywU_8z}U&XRSA)Y@mSB@#R?2T{*{6%x? zU7e4gWidAq;ZJIN!w#!6FO&v5(O?_)D?7VzEo2Jo(xHb*yfOuAjy(k{cxLJXCAK70 zSxwD`>0VvLbQD+(meK66JjsYd>r8?_4qCsFG>e+$V!vyT-CP6ps#>Osvu&OUw;xYR zpgnU>n?pgi+hGQ)&!E}eN@X$SPxotr@cxB&DBNT!t6rLyG3oFk88MGq0LRocduT0u zyEu2Xa(9h$V;Z9;mL9z!wHRbl>OuAuUP~KYQ8r5+?@9pho2v`!xeS)la1UzIw~APx zG2NZx73!wLOVb<3^7_??v}*}-C_q+#JWee!CZBv!XYj3f^gFpR@(?S~Zl=?0WLQ=# zHhT))k5JMhg?!fX&!MB34gx(MYZ!8S_7wYFF6QBno0T1_(8cbNI|Kw(mbSNrgz84$ zYB_-OdyfxCZHXpA*zZ-5#^#JdN(%JH)NJmLks|Oa30qCIiI@O5=|Q39rge!jgO5tJ zZ*_E|mH8UA7TZs{mwt8+LszeK<-4~LM&Us2C<2LiT0frzRcWtn?I0|JfGd`|Ta7w$ zjVAS4iOXsLM!5=liVVW%#Flcd#5gC6Rd~!-04!&4HD+H9z)=!43!e1rk!z&eh#>i; z6aj&$UEXQgC^o6AO)FlSCzH({VQT9{p2A=1p&-p-CbSZ+p>hh zii^X#O~ls*M{Gx1x~!?D!R6b-m2S1qTTgiz^DNbewE@g&Ufav3zm+28YadXWIbs47 z#yZzYWS7@!WxY&;>rQPx*3|jZ<85dLMwxn=b*jj#hWb}YW8+;?-c0WK4?rp?Cem)$ zET|O+wQkv`hhdZn2-!-+npXb+5N|Fe@*YfAaR-bp5&+Y%+O_67;`nY2vuVp32mxfEQ85APw89t+J>QVWU$sXgMY_VLH&&yh|`0Q2{{DNy=Rq+MWM-`ok%8}Gj$^_cfG1@?=k^)6=w^oG?;HKTG~V$^{<+~Ab1LU8@U|-F);afucO;uw=xuout%kH+Ryw? zVQV)W^aOPky*Y|dx$u3~l&dD!U933ZRxRC^m-6t+e@gYQA9!`$E|l$XC$;UrMC!$aB=jcfyhv+x-va0q_@=cX%sJ-kDq$ICY@(7SzwWH zed?6tx|N~NHl=tl7I$5=jjiiJ!$oxe0GY0Z^lz7N!Oy*CK9e^@UY_*6u|DDKQJ?+2 ztRepZUi+%dek}1cT*Y+N8`<0i+7}q8e|$bgPDKkHF@0Hf9XE>nPdLQWk~>rjtoVU& zT3l41NI7K3;Y+*CI|BZdYcZK0R9%X)YrZB8x6S!#L9O_KkO3`P*c*VqrAA|r4XT*@ zD|L;TFAGeCwatDpjpCgix2~$?BmmIJPZEq{+K~|U{!}b%!QrWni(c^oNmlAWcMiC( zhdgU+@pz8&CncXfJ!|iH?L?NXj2r7Vw@sM(08VWtPIJzN3~I#fGJry`x+!kvW84cV>z zD;X8dBW1B&7MKs10ICt<{{RxxZn&-LqP+D-%0+s2#T47BLjJ2>WWJPDXs!+bx`MMM!wn^4rh25#6H?P+Ng6(k4+ph!nvR`$Z2`H0Ocm!9=-RMZ7te3Fz3a|3 z?-0Wsvq1;W=YT77DHvAXJk%_k$+%tXT_vZF^xLdP>E!z6yw=-Fp79>yUNg{FKXVU} zGe&z*5I&TK??t|keYA@scjB2ftPbERg1(rqohS*DHDAYg=f_ zzSc?nlmyqK{1a_U#hyRY z^!Yz{5yXe+wa$2=2yLunCNNGb-2VV$y$$X>O@FNf!b2aHr23i$eJ}C*;+Om&-WM8X zp22TtP^pf>zcLbQy?0YDcE#RDB)8VR*Y=>-w7Gh5j>sGdio7!mt?H+=^OgtlX2AQQ=X-b}7kczna3f7u2tx)HF zJl@A`@c!~9I5Lf+@vo1(8jg@G;~Pn@d;O*SMQWN1T2dU#D|Yl1^XGyl38w6sw)4dp zt&v!Lu6iq~yAz&kfbmYBb>$1#`oeSgS7FHnJ_h_NuSOz&i zde?hruMuXVGxC9o&<;ai(#^b&BqJLSYWmCea`>a?cNOy{sd%>#vt#DP zaynkEbD`?+>UOMSXh=MIR<1WjahEGTx&5U+4_w>aw~O?6vkP-5QPRFHifx~}HTvoB z!^S#S#h(O!W?w4FIgewh`d8<-#=nI+kAS>GJESM{p!cJl~J))Zss!W8Q@l?Wl2RD45urNwamdi)s%`s-yL=E z-rLO&95n=)y0|woTHB{rWl{Q9vHsAH{fY4JP0`js8bymE>5B7j32Eu#4;ty3X+QGS zNgl$sKWh8PzqYjd1Z;@oz+d-xtZHtNwJnd6B1J)h)hnnS4MY%a1o28rV~XyvkrM%$ za&`8mo|N?av=-all1~k*HY4*P)d;?ah2O;Eg{4unR_hhYSOYrvCOY*VBdrRwjbEai%)koDd zf_`PeK3aGoL8{Vf3maQi2J0#GiMj1#8Sl zD>Q9B1855hw38OiNPlPj7`lj9fNI1ZHJuS-XvY=12gGKGDDpFkFA%dbU-o#>NCZeh z_NM;;!#!yH1$H&oNAW^sY={69_4uVPBghqYi8h(Vx9s($soEWeeJQE?JZY*A?;91{ z{{X_zn;>~WRHx!pq>P}V(F;uA8}@qB@B+J2&+O-9K-(!5=n3&2W?~jG^rt7pXF^1) z_)%z?`^TS8`#I_UR>q-s$hZBR^r%~Nu`B6aZk6$t3ymdFl&%F;wD`VS zZHzupc=}TJO81O$`#ETCcV&j^wHNH=;qtp!oQmnC_^bWZ+$rDiw2G!eV>LXnBi=br z_-73X97wF#9jep*&zcM4t(xTF3S!n0rk$=NIcv#@==}G?p4E^Da{{ZUpDbjpa*^`mQMm{hhPrNAQh+BT4C2KdV%U==e?(GE$SDfk88)gjUvN&W(ONt{TK;MX(% z01KK=Kt(tH7i%fvDp!bdOzETe4dHiwW5zpiQm?=-3#`6pmB-;+dwgk^e(<>VrT+kh z-7F_ND7-_GXMR2d_(*~cxFhhV4}jheSK1&Oe+u(6@y_sWWlWRWhWOX0I^?fDlw3I` zdR(6ZJRP($TQ4655Z3h z8Gd*dZ?-Df_$T0{UzP>WzAMI`<36lVZ0G4r9~pI2#_!gPi;_pPufcB!FIZ5IPAW)# z4R}5*y4xZAtHc}QHmSQD0Z4u_>rt-dBX6Y_4oM#5-v~S${Im<7psTU`BJh!qX@W36 z3h*EJT-wBu4Mq7a+ z&!t!Y0ENHe9k^HL){CI_GCr?whdvJ4p)I4&;Z2X>=Y)fC0s;6}$)E7HyiI|&S_j3? z69(n_QFI>0N7s;iJn*29mA8){N^tmf;Z@$k6<@$t$UpG6d{3Xg@dj3*oc#F^eA6BR7W8ayAubQdlb*oR=ZPOzmvi)6`$xj%kCxF4d)0%j_+x5@c)0hk&G`I7s{nUg zIQ(k6Ynr1REzF;t9Puye^6q|;jc3B4{`^@!^(*V%840(|gO7Ur)Be}ibG+O>2fZ=1 zTm9jU%k%!#9PuC3{Lj*u{6pc0@MDr6&YdTUyf()INHhNRervw3sO`j4upXPLFYOIS zITE-(?^b;A53Bi~rDw&y86R?3mmlp@4~%>?BP=F_{TjbDn^4rr&z|5O+o`{6zbIGE zbpHT>QSDHDU(Ed{kH(%CUKV(P{{VW4ym8@y%g+hN`&Id-F7*;HBy*1YsZGW9;fH_w z>W^xL^?x(;jC?@wzx?!wel#D5{uz(%&l&t{^I~Z=2RZXtel+!x^;B+V$JUQ(hxK*b z{TBZKg|FdgvQk9+>IeA4;W&sMYIE;jo&oL&!k#{~_DRSb^GCHo^>y6+6h9YyCyafj zJpF2~{4P%l#&-G0$Jp2Blf`g)98$*=>CobjYJ=FL^d?V?-WP~x%~n3fs-KRY6dhb= z>t6u=`#3|*I1bD{Z(2R74`PqKhsTc#XNDR2(|_T7cwo2s%pa|M6d-=o-?7TaBy&^k zN9>XJi~M=;-t2jp{AvU7=fk++`LBf*)<%2|Dp6?a3bPN&k7^#tA8o(w0ieh7@@lXA zG%ki0-(h#EswuslrDF#z++)^88&}SUc?O6Sk zJ0Dp80K-X05Bz$yAMnxa-}3I&@_NU+fN@fY7<6oZpQRqvkJ&@9^)daUZWLg^*r=ra zq%H{C6eNBkzFKHxcKiHOmeE0{?HGF)pGUv#52_FKG5(^Me`sxJuMvQLqP}$&(dXqA zF@i0?5l6IP>|%TH{h_t2;o}D$;*kE(`qQ_|7~|Ym&*s)8Jvz`V;s@^Hk7&c##P^B+ z0B8>qNe^E4_UWo zQ0lows+Kn!S7d{VzG3Ke$HkiToF&VTL7GwG9ePYP&C8MOYatdK@GATY2sz*iL%BTq z)}a3Y>ZN?t3##f&e7WahDhDg(ZbQXL9bDry413?)q1qjoQYNQ$5!@s>^r#tjK3AF? z^Scyk1h1)FGx>y^)PHW7&ebQMdUE5T98(%28Qg<#qRcN6KRWIsi5QT5>8m4Whagmp z%oqk*V~I13qZC<%;xo*R-w4f`wA08yMacr9TTzX}gHPJZxHUFq5WmSL`jIZD=eVQ_ z-+QR15CF<>XtM%H?q zEZOI!8iz46FZTr}ojMFu+$iFs4p`ud&rrDKxwr%6qwN~qoG4Db13(>Zh=o^t zz(<3?HB$MbxST}*U&69qQ%y-qh|291CB5ynqLO3%;?M@VX+a_npWXw~vThRM?&L>y zHpd@f-jzH?{{UzoCRfwarM$d(0l5QeuSx*dT{6WYSBwBa;2O=p@-5^2;RV=ss;R3R zgad9E3{)|BGlH|J+&hlc0LZ+XMH6s$cJEguzl@+rS79ToaYT0U58g<-@zDEK%cZrr zwGKws=shR{5n{T#`DMUQT9!FJ%egmX0a{6FUeC)@wy@2Vv6fam8UU<*)qQY@v-e}Y zb#UKY!xq7fvG6OFTdTW7@^)Zn0170G!k^S-7Ju0T5YXzp&WAd8C zvsu%~7=mFnzui5k0DV?8XMu(Waf;5mvbUXHZP`7P zcBrPjvooqZV}p`u$Q<4SY`BfO&;?O=wx}a$_Y7A}XL2Xgyww{B=~%bc&Lvxdzb8yp zRlC}z9i>!I1lRZ^GaMEjsgYjY!vMDfa=#g^xb)_@v=ceV#z3s7u3}jkKnxI21%Ey5 z;cyoQs4t1G5tm|d)1_!UkX*{XVAu^=xQ@cvN0$&e??4xS(i#Y_p#+xdDh0ZEX3g5| z3tBpD;=vvp1b-^6sOlC`&4C{5_Y?s}?&!;yqf_ls#7ycTb>w?gg8mb67>r;V*pg_W zbqJq3PzFWRiKmF#-|u&<%dK{K$cbaxD@>!!c1^+gN8J>sO&1qP@%)>5j8F!pt6^*ye8U_M@ zII*Sb%Ww9G+h}gp92VD*$R)Wf6jyt1cWpoV-n7(+7 z0D5w@ve!_;fzy?4v;iimsY@x{7Y)+_v#gqF?myB_%y+5U-)R>y0kOMOiE8pMn<2m* zF+dwL%@kIpqaoQx70bkBy0}>`#{;EL9h{waU@_@ay}*GAI`X_w1LtT?z=#<1tjV?>^Tn;vN)rHNAH5LU%-Y z9jcODL4prf?NpE)-L#X(F5okY*S)uE=v1GTk7|-w1*BeJYTRv0+9HW<#hY#lozIXvIf=G-7OH#!cYKYuiO8K^3h_xz+QL{Vbx9LC_ z7g8$7%^=+8rBs4tOP@5R2c>j3k=hJ;`qpb81T>4lpbMUQ03;tTrB{nymKpq+Ia;>% z@mwrpJ9kw!(FL<_AG|sIr~`6+Oh;?KINjR0E1TJ8lo)uenIVqle5d(JR76_ZkqKG= zr361|A!N?sTNf70w)l+jDzjb30;vo1t7~@GNFrgdde8(qT=GMaA^Cd>vvV>>nRrv4 z0H}~#ETx#|0;pcXjKW?204bmiv8&H4K3a7&@in2k@?l)#jMk0jsbnp;DEWY(3XoX~sr=Sz z(p^7fpsD$5nzYq{$%y>NwREvfEKvQXPI20RI)yR$8)Ru6lZ zk4nq9y^s+Vu4n@KBMX9v`B6-jn@?XdL)W0LTxxd~GjhH9R9dE|J>C&lZ2)vbUXZv% zz!eAfjE>|Urn%_ZB8++CEmf{=WM&53e4?wA4?~I1ly?q5s$P7V01VY#HhE2#&T{po zZ3@J~clrIOo)WoIIf}{DqC_V4}ecfvwvd~ z?YMFZfzpiwl&_;Z#bzqp_iRCq4yUduwy5Sa<*pL6)+j9DGHuBsqQ#tiwx4J|jwxD8 zn?e;&1GQ;KbROd_xCfSiyPSoe~1e+%qQ_yy;I94&Sx^^^| z-c(Wrf1lEe0b&~qQ*I}e3=c|*;zg3zWFvvnuAM^7EVdp7KJ8{3$ZV~5h29&m?L~lF zX;#WKcT0;FqH$Cqy3Fcm;7_hDpIkCr}_p&y*88TdYx zlcw4mSz6-o;~gt*{zRD-;cx{2TS=_UMazIkYUeHyr4nt*=aE)){WUIS%eM*It!j60 zgllM2e6#_Nr@JCNlRoXd3aNFey}=Q}nZ-*K0^^vzRRX1gIIScecpo=<0CYDhjEYy2 zQ=J+K=iei6-KoYHiSwcPfUTQo;5N;3{A)lN>kJT&CNqpy)wh>uf!m{3BG+*=<=7A^ z!PQyd^0w~BN&wQmzP5%^>I0VODeJ4p6}XX?X+5hB2;oNacF;ER#iVKtO;#4ZxNg|0B%EdZz{P|9+g^HZT5lcdscp#wkY529A>Oqz|%{Hv(LA0IaCk*r)8n+Gn*1=&`$vvvXvpi6T+mY#9{D||&CIib;(ttZde9Hhxe);NYe83T2=msOW zu5LSPn9#C5?`okuw`mF9*q{x0Z(r?!Eyo^$wBm*2CTR{9x&0{^g6w%CgH|3(kfIIP z8K4ad`-qgL*1;Z>ku)yCLfIfzMZk{TH@D4M@d@@c@qOP)0NeXUB!6#8*s;HMwrG{I z!?CVb+8LY~zVEeNw!Dfa^B8=`iU85M)TWL$Svyq)yqe$-D~wbZjIyg^?;e#Ej#XMg z_pyK|19aWb99U!XRax$(FpitMS3aipdGOqORmnuQ%jUm5u|OIceT3Kd8I|^>b&}2Y zcmOp)%D#n^Cm?ZLMXmkB-{|oCr`DxuXNF%PpDugQ1-aDS-6gyID@#(bip~X0;EKi& z+@q|S!+O-(mC=<}Sx(}E6acWncHh2@u&Y~fb^xlid{lzqCX^lm8oF%wye_Juni?mG`3UCn2*ez=mS5S6fr`%LB&~y zI~#RboMoP%ywz>u{lc#1YHhu{-ow1{x1gX3x{dVm0~9NSsPx@EqG5L+!R?y2d2K8) zD9Y>s4RuRvZ6=+tVDZ+n>=4^xDMuONfH|2h zUiSGD?jY-1&u0Wmu> zBF=f{K2hej6%DjrM^|pOP+Wb5@&T^^0DYCU)zXO4gfMg;x-O02r=jTPf~$ zPcP57@jw?pw|>_zmW%R=vSOX%GQZs&D=1j~m6l<^^sb`Z!*Ljdwlms*GW6THa?5bu z!nE!z;xPHiRp!&I;g95Ar>#k8c)mkhbt}?{T_w%fNV10lur7ai+oR-A2EW>@C6!za#ZO92N<%V&oJUwzme+B}cE$3wZMyG? zl&=fkfGgTd5=x~PfI8NUw(v{3a^E&8f;3UYLJW~q=WC|RgxeVHKoL!MJHL{HcHSzS z{$y;ixzBpov{(qj5xKhiQvI6U3pD3(?LZV-B$hEI?SXsOH+6c_-z;z){e^T=F_@H% zHz*wiV(F0DTU|WTef90>Ko_iKy|bTm!;ebP*(RdzB*Sh8%S@jB1`6Q*6zMNkTOzT1 zr=rXExtg0EX7JxKPu&KP10lQTVLh0{gjZkvb(WSg> zCYa?{`BW0zyGqY&nTYO!NyaIL;ilO3x{Yr80-%VW$G0g}jJxchGaW06wD zs6E}r0s|NwYX&!-^6k*J@x z#I-`_N}35b`Gg9dz~5<+`3>CFJyv_RkO17U;7|sZmpsxq^UhK_)6`zl?5fYEp{nzbM z$zwcPsF&|1dRJu0W|rP;>z+DL2bf=J>>^oXC9_&OUxt==yz7T3zum5$87=2x8FnJ} zHFoBECAY*!6)X;aNYnhg*GWL~6Qx(b)>K?P3mW-L(x!m4=19@74M`Q1mAq^v8{6KS z12!pM`TWRXA&^%;5xyFLMg()sdcK1MYi{yvz^uEyB+ByKL_TiVrUo+GGZBNkcj;ZE zaoJeef21gFqpffjvg#I>K3uVG9+h%!TH@+ovK89B#Qd?k1NtmQ|8x2NhAmO>(&TRcex3%+G<9#UrHq{`Lr|Y3rm>xO^V0Ut){uT`QHF{t&6KGct{TTCXft^PqnvAv2qWkFo@uj1y8kG zvq;yS`>Hvw?UrK`FC8ekcQ_vq_$xs1L$m5|;Nyn$ua`V$@H1P|?j*hN>x;W==WlUe zW$HyHfI|S}`c`^b&1yDo%QiUeThpz|XDW9-5uVQTPK7M>D31RCOk$Ge7;Ruzg#mAF z)%Kpb;LRgihjr{D&Gk`U0ph=edZnwIjS0Ny`=xHHoX(ApCbyPGws&F1D+<=u3(43@ zgbzyEkX`9_FJ-7lu&-34jiHiI(0$)Z(k#vBYiT-Vv{R}@fGIVtCIogabGoy|>&0`F z`A=%H_pC`bVm@1bo;rM2VK5|RJR&S-d(ed zg!P~bFhSr#z6;Uckr-Zx=gCX{At5p8iMWs{oY zac?Zmb11}#Rohj;1th^8CmKm#3v~!D;=gV2kE_sp(};@Z|RBOWnVBJ%WT5?PdnkYxK)Gz~IYZc_eXl6q#eFQ$8& zx3Rj65Znp?0Tz%HN_HK#;7sW*F`Rk zp%TSW^3 zdCg`E+jc*@VVb&+<{)Nj0C_MYlFOCtR-pSjw*Y0UC(Zr#%x*zf88V_+$20+^maql{ zbGNlN;z*=MgeT=x5#=fgeYovX1~CIF{P~~=(@%ll4bY0vTWfnoz~x0$hWaT9M>|Da z3+66Z@jw-e#$R%$%Tu2)D8l7xLZBwoj8oOsMlvx~%mpddH-r^m%ArQ`xQTOGA&{=j z3{WFT#y|j3%mW#>s;jQk?NOvLths-?NH1+cC6C>vwxwpnXf+^Tc_4)frBz)TF99lxu6YLWwS$`_Fw^r;jaf*&h+js``0)Q_BnpHU+DyWWZ5ye0?=r-Y440ftd;utqzpyRy& zT5AiGCO`#29j((7fs9q3_(&mGg8(op82m+Rf^rz1)Bz08Ur0LR9+Z8DQAqs7Z1K{p z$*o%|d4WgLn05H&!tLAWXak*)YY~me4+fbX{;*stDGOa6_OaXkuW%H9Xu)w2P@o@5 z0Ig>vA%v@M% z(U4S@^c9-%YwH<6hX<_yb}egWzjcO1E-jI>yBMxQ9Y0xSRVc&Wt{op$VjCx(qJTPe zytYx3CIG3D?k8RACl$)3fpp4492%A_8&MdG_-c7T-4g=)!|_z+nL#d2Xpc&|jR=jm z5mC08bifI|S~);`H}N(U3X11Y`ACm|D*9-OV;F9f*U%Y(8@Q#&H8UkI)IYJgZ1%Y3+~8EvF#5N)V|k?|2wX+jv(4Ad;Lt|S$pbC_DT zjca-PtDALo?g+@QoqS{aICvMubIR*s9CAtBMn9E(U?xWaWf=yT&_b=4{#v-yYhcmt zeopxJ_6@gtY3{r`au#98Mq2oL#(%S~j=U7cTe}$=B|muw75x?6L2$}#+s7ieV!0K(F_K$~SZF_oL;0Uy?Ts2nhE;ga`&EBT@mAwe~2Hl zcYyq9Ze)hlZRQ_!;#^n5-x9xJUlQqO?VcW!?MQ!zp{*TCa`GZH>O}d6PWX$aPXUfa z`G*5FyQk_}R;81;2K3E&KZ|}3c;muX?FH_gBtd`K;=K7TbzL^&W*uC07{zDodoypW zTjEF4Gg-KlHL=3`R)wAZzhN+YJBCfZhl=nGC*lU9VK7^-nLQ157C#Xz?r(sY`ATTC z&~sCk$JF`_NIpA;{MWde;WMV)wK;e{{Z)~I3wDq+HZBt zGZYKbpSB~BAGsPY#qR}camHq3R&niJpt8|5loHuG{M|8MhPQu<@S1rNAxjt-Rp8ax38f00;io z-fKl|s{ZVbwe<&vemZzJUkMSoP0z+SqEzE8jQQM8NY^}Zrr%k8pUCoOVO$=M;fpPH z@Ok$^Gupdry)(l))P8lNruQ5WMRT9KrF1sF zD_dCG?ateqrB}D{Ev?H1VvN1>T`I$%Y7lRDkhf~hwbU)x$hYxsmoQ^7Al9ar{f(*y zk+4WS3{e)Jq9TzspdR&N;%ysCvn^b!Arf9F+lqX_%6LRR92O)`c@M}9b?OAeCeY2(wRyaN88K^> z+uEaeH9MjiSdyopsGLIfJv&O%<&Ppsc*hj0qL}1qrIQM4kxgb@HYF1R@_JQ-@vF%m z3?DD@q|FY-8+&-0&O?$a@+40%GL6`*?+@#mP5d}w75j?P)peaaO&|;%)ssM8Mzm6V zuoE>b2^L9(b6l9#EM#?>Q{|<0mKU0R%weo$4^#$i%c5Wy^Imb{uMstitah>d;=M-h z?gf7>z$Lm@o%n}Kv%k9yziH`;0K(GzS*lA0ULZXyZqr-4y>O=sn#H>C#IZw|-0{;D zTT6!J5RCLVs^v2~i6&$rNe4B(40}*9>y9g$I(cAFl6Yi}Xph-2X*E28* z0(w)eG-4e2V{Ieqg%|fxGOLUPT}iU8&!({z1Z43=$&9jh+$!(!eeAT9p@0j`fr@XgMiODQT% zM|1t7Yj9Au`09Z2>-}@Y+CDAx>tfORky+9Bms`EKRlm1oQSDx|4aD-E6sY#9GAysX z1PjM}Py%>!RMSfsrs0pRdJWCpls0~4s{&MX72|)|7n9r(8tezSt0F0^CD`(ieJBHN zTe;q2Jj!t0Gf)2jgoN4QT{!Jf9eOQ-8B{hn;;Y==XjcIeUy^`1&2LmmW&1*cr?qjn z`i7-+;SP4^gI(US4vyBLtt8}E8*z4~Fu3G&B91^ioexZ(>?u5qNv?)HT1zz%{r>>1 zd6)K{w+*ToiSod%k3-hpa3Z^lpQRjtcVktvWmyV<)z0c>_V$1DL4jG9lFK}SE#tu* zE4$IHuA{NvGJN>rgG0{m<+_3~6vO8Bs``EP_{?F*9`)V%4|R8mq0TE}Z3@R`aDz+r!G4k&YMAw4>7FNxZ|2o|GA$Wvbq>QH9vcMulM( zqU>iGW9wdzaiLji3_t;P)!S_%%FK<6w~o{S=NGyo#k$_u@WZWP>G~tW?qz+ruW6pj zCym5payT{R`o4v#20lc)kF^2FSN_Xs2FZvcwPjn`TtRqLU?}NYcG?ECO8L{{+PakR z+>)RMURSB0ISva@O+qw3Fx%)WE=5@)RGm$FpZp>U+_a>g!mq!FEs`ZxOtokSkS?6^ zL_CPTLEf`2A$a3u+mI{Y;LvStQv;N4)lhhP!FROr?L*RnkDm1XDqUG6SWt#enX9%s zeD-n_xF9muzu9S;MU--Vn*()oH=Y%?zGk_%xEXHMnV%`at+Wz8)O_yiSa&*@@bviq z09cLMy;{S;F~a_2vh=J^5%?~~>VGuI6K84zl;^Is+X$@^;wyhGv(l*D>&>d$fdoWt z{HxM*&kpD}PzY{+dV5x!z7n&7)uXjg6!aB*q0D&=jfCx+xktz<+f6E6D?o57pl=T9 z4L8`LeXCj*UJ1XB)HEl1iaA4=!<=ew`}m|g7t*veKN*;A&Ay~^gN|u*T`yU-m7$$B zpyQf#?}L(ik1?ePUY96y9Zk=P?B$tZvc?+~pQ&nX{;m`tkymto0mp2~aMF3CdRJ90 zg&TmXqagLE1k4R8CGrwUR}J2+nQV;PU2+9(4Hc6CB)}c28=XGEP-E|oywFjDdj_3w ze|H$iwR1D+dSoS^ZZlo=vT4vsmz7mdQCh2~XquPF8CMhm;6wW^M|dSCX{&k_mYZXJ z_Pl3rPfGO-U%`4YAGvQS&!`i-abAIQp=qsXw-^op8Kei0X%XGt>L%_*Aq91sp0_kgEhAnC#}(8=6_vW?1RHVE zv9I3HpO)X1??4=Ua9&3smkoxlh+IQwiHZH;9V*;9oKCm9J>08G@ zW_sJ`-Z2MH)S(QlG0l95@uT*9x6x1br-!#Pla^81zRI_kEk@Rw&3o>s;^l?})U?&y{v~=N+r`$KnUU8!r-%?Hw}H z%6A8W#(zrrt62S*d}}N(J++}k12`wI>0J@27IMlmN6pZDSn*z-{{X&|c=}evA02!^ zpX;LxzQUpLC&CXH=^>7xV8IvASCd_67nYe;g@!$iU$a5&ZP52fe`rWS33p^mdsXQF z0BA1`d7tSP?1%8Ll_s%5K2TNum6V%T^`q_EZ;oCJx?WD-sjK7S$AJ_F z`$~_-z6EPgqiVN4n5?<&?gMSk2hxwK74@Wkj4#B01x|An>I{3X zWqDVy@T_T@^)>sFx{s|=!kK$?exe@}_+oBS?lbt%o*?kq;9bX`t$td6Y-?7}wJw|w ztpmgwgbn7k5Rde_E35h99D5nW4f^9MN<^Y8p8TCdup z#q5M`1Fd^a^~+pZ!F29fij3CODRPl1+~p>WlpDKNdobD;rD$A8Sq?a?lZb5{UW~c=*{VRV`wP@Iv z>DsyTz}jdVFGnKd)}xUUP(h|d=%Wo!R98PI6cBe`2fRlwh5U1CG;gvwm`205HTB=d z%^4())5KQ%ZU8YA`Sk4ecPViLVo1n8i0NOV9uB!b6FwM-C6qMqMS?r-QCxN7W~6IL z-B|EFRrhG@Q1Vw8uMpCFne{hYkWSu}>`>dhQ(S4+S^e27{xYRgXh0$ejCEx?bN}={7GTe3%&gD&z(yiZ%O9 z8YYh2gH701gkS1cT9oE{hRHn#VN+_i(&|@_IXM~Q=~?9nr~)|IqJ7}w73=;P)_m9z z3vw&Sc8mhmp{Cw7oWP;NiVY7z@w~DdWr%U+8vDEUTkz^=-wS8d<{Krsa^;8jYx9>- zzMEgvZLLA-RRA9RSL#Ndu=pF`+Cr>QM`{T^_^iy&&5w!tnASXfsZNc(eC7k_D|14R zWJ;s11$o5Mnf1A@0o}erYt?k8MNP*8fmbc8Xmk-}O-U?KI{ek0aer?FTZ>mOed1em zUK+Vg2VdzHag#8>AlDD8`6&>MKsl#h>vG(V2?DUAj(f|9;T-R53er5pv+3X2f58!J zTJ6t>uG1-E0E^Rc>-ksTN#XrInnQ)c7y>=`0WMo&;KeaZX()gk)9-=h| z^RJw=oh;oPNxK<0?FNBqZlj^5Us&2Dk@D1T ztgLQ%)Y5Om553yIMgIV0{{V>=x{i)KGj%S>ZN|_E>tCHl+Gmh}KA&3bJO!`a_&>z< znu4*3QNV9?u8MN8jFJ0E6oDUM=yaG42*LZ7KxA6{x zZK+$Z+Q>RrPL3jrb;AK4sjh>cW_~L8zrfn(gY|iI-9p{fQ2eitm4$Km!NYd1+CLF! zz5?+)ZD*>ryx;F&kzOmRe$QVG^&5{i(`-x7>|tE;f;Lh=F~i0f3}UpGP*|`#eQWRW z`zv@d>Qd3&x{s)=ng0M}9WHrEwbU3VZj~PB9}kUDAJ_aUg~W>^fV|h-7eBF-=znpl zbR2uu4BxT-wuL;cKz!UEm!(>%5V7Q+20kTE;BOK`A(s}#g0ka^{WkHZg!E5~UI!OR zvR|}B8FA}h3Ca5=c)r9uvEHPGPffk6?4N^ndgp^Q0if$m=LpUhio&-q#AyTa)8ZF^ zwNC+Sa_N_dc4y>la7U$Zf4h=Y#R>$-KRx3-N4?V8Y6H=~cu0Ux5(&#|m&<^zTFrq~X78LbQ177Jszb47sk zZ-9DDt>2EWHCu!7S;dfj4lBfdKWhuE{6L#yZjRh+>t9U#CDP#V_klGp7F{;SxXvu#^?UGoU zVf3ucVjb~HdQu*kr)M-4Mn9!SqcSB)(2-FEK5G6H6C?E#!V|*>gLLU8kP;$Xk4`Jg zyh-Ex<+_sA#O;B21Xq}7J|n*x6c%D~3MdPyOQTTepSo$Z+Nv=-8OE#NvhnO z%W~UmCAE9m8#2ty7o|oOh+Okk{>^bI!jG1>_AxT{g@)8+FZ2As)Mntf%z9O*bf!Oj zh^yB6GL|YyrR>mqLjk1TK#XLHd4l3>62xMV~(`aCz;3x zir9xmjYw8KD|pFk7SR!?q9sY|rS&S@I_G1{j9S2gBmj8d^x7|tp3nVXVoVl#owQGG&bMghPT zlmec5kxCt7;C~eypj9bag#?Wp=92iZ5b4cbLdS{+^3vk znAjqYP%b>6=bV~=WwM<^AYcL7dCQoQ1m&x~?N#WT%?{_6@kKz7w$l-=#q z6nU|q;uNAt2>Zg0P!Ju-d4LMgIZHw|V~lVp@<1GMO-uV! zUL_QtZM0*9Am+0UQgw+VUBjA)51OEBt6+AA98vb`KnCUlfaNF7G7w-?K{Lr2sEysb zHx8szQu@_N8-Sw0%2_C*m0VOIBJ(;^UiJoD?iiq5+3-WCG*~%FJhjd`3R4pQ01q`- z-oi-%!KX#4+9HryL88IRJgNo&3Y%+Vfr_O1g^ToXTB91Q0BsG(_MnbaOhij@ie!;& zIUrRLty?F{yPu^zYgTRYyMB}vVp6#qX}ADm6%o}eiTNZSl{5QB*dAPQ?Lb(zoP4+f zoVas=&{Y@Jth$qoQVmkX^n7NXgXJ$N`LUXLkwbvP@~qLQ*@nPu;*af{1~_lLD9|}g zR(~+#(yPd%9+i+adt`3CYE!M+9{nn`CzYB+Hqr8r%90q9C6Dr|16#2p8O17V7EO=| z6lff*()CgIO-9HDGNS|9vW~N6y-o=4P8#j0$bO!*XdJA(tMd}S%7EUy)dQ^AsQG!Q zzqYMMJ56U`A`;@c}Ms#SZqJYVqCTj!xdL`f` zAn^o4q;&aFT#Vl)Ozlxm3fRFIu6zCxMql}6xTZIVq;5h1M=B3w&Y@#|!xW|>KDEk! z!b?6dss%B8OL5%=9H>2$I>M|mo+?z3gMe{dQ}~kMkK7d*@eS7Q6j5|fvpZoX;&Ny> z;0oeKyLK~xC_W**#s(<54`z0`+1oU3-PB^ZmGKSld>R{Gy*)4}x({Y{jfOmNK~M); z;{O1*Z+)qUT)jQT7eVaK*kJd?M)8mDR~XvW>EJM=8ny3t6{X@oX3oPQI2?T{Mcw>e zD~bNqy(jNe8&kb;^FQT9;vUVOf{z+?{#7}aFgUL@8jaus5>vk0bjRkG6c_B7=o{C* z1xh1}huka8&E3HmE@^`9&{e{B@XnCVEL| zf4nJ6L`U8g=7QqmAAHgai;VsAKzk;7V!U8ru>9(|o-)|T$JV^@rk#f}8bz8=KJlQh zW_lT(+xy~yCA)tZ{OiudvYwAkGR>Z*fc9shxwpsP6vUPV{vlikogw2UoFs2kKzlRL z%=Ta3{b^R}$$yKbdDxlHb4XpiO#$rBL7P;!nHn@|z&G%r+mVlIz~1TsCjy&~n~v1% zE<>}5^37odq^FHy)DM>5!(d|9A=PsmJDNIt~E#p z(vbd?2O>L0@hzA44(e0lOHIFUlU!0DJ@9Fq=NX_m5!$zjEpRr2pGt`MlHYLs*(1Gj zJv;uC0tm_CkzUN}C-EdC1&S;!LH_^=5-$QXT;CX{VFdx~&X9POfXA1COm7jc@0AU6 z!IwD2FyQnQYCmRlgT%59kyK~Ij(W#~TDnjwRuTrC|YQ_Rv;OmpH|0UEZz)NZ8xbytA;sVd48@0BfKb zjYxbirN-uU9FB^5RXb~`W7FF2cJdBBm4^D&(Qqekl=Q^_X-x!D+^kl>0G)AKGU>bB z8@EiF$62C@_dzZhg+(>)rpx8A$}IqE$!3xX66D2sXK(4G8UR+AKscz*QJpJ7i(b^XpI2{qs~mrxm&Y5>=;wOL^EZnDF*YsGVFtK=yBD;rIc>|2!NGs-_o7Sk@76iYWoc5p!6WU90 zJ2k2KXj9m$ge2FD%3c;b;O&6u3nSQ|I-p>*ESLH0K3H{!_RjIBjwEiRaJRgaVKHvjC>l=K1=+E(y?vY(nxnP*(arLS+w3ug?KJ)=< z6wFHZ5oaEieItVEQgO5az%@!OM`Aj+C3{vXUSCS(k!S;=lIbnURT#j>%UHtZNmt0jkbRqTUMAOPxM-Ht;A`1FzDtu7}$K#~0o2RoVoN z0$Lr--heNgi+e!kcgP(pHf?)P@)$+Tl#QlLz2_DkZ0r| z)`ZPvWWT)R)roZ5ds$CQEP~bzTh%yq$b`;Q_Eezbrn`* zKWr%9#n4uTlnrM%ET4^N28HUGV)B#)&0-5kl$DdH^{w0aP{bq$6_fkBDLaia?aCsV1_ zO0Mm_u|O4O#EzQ=Le(v1aT=^~lCn3aO4!s9ZAe)E0FSL_&X&?3S7E!-fGFwlONNoy zk?B>gt?#Cgq)b8z+_RF_+#Y)Ns<#@LiGrcd>HvpIw!Vm#Vp&(EZ$>UJV`#|6JJW^I zi%_UGlU(fDg~g*3hwnWAUY5#O&SpE*aZ*U4($L8P`Hg0k)aOMqpS{|&Et-2=MRd7V z>Fq!iEOgoCX1Tdy6}nZ|mfyrA`7({tsc50bh2jZVfb#s=sp18oJi zHpzf#%Qc<8=a7MpmBUG>T-+ZvL$WpLipsmyq(&ZNZc)%yfOYp0MXFr|gkr6xn-qET z+a|ezeugXLJRb!LmW=N zW1RCq5(Jt>-4Vb_*0oEN#F_bV(y4<8k7c)Bm0~8kj@*YIH$gxa&B1kIe(z2z0pfvj zsB-PlRiCrnuqds9dWyHE>5xG;n{wG<>p&1#>2o7*oZ$~@(tCJgLcAYJi&48W;wTps zwlJ>$05ag@3INu#vSx%A8$hfJ*ynkCgp-WbtKE87ouIb)fTn3nE$qH?jzs`nO9i)u zTmD*9g2+1wC2XmwZi~q-$qqJ-)kEzpN0g1ZMF3yf0xK$DU~y2}Ti;xTO#HQ@_E@EX zSg-&Jr~Rc4o><2qZ$U+XO;SIzD26b10i4xqTgiNlzj)&nmo~XI%!kZgD=Y2u#VKgP z+v!Ds^k}AmU_euE9Mo+zVRk@sn&Mkf)Mil%F3`h@+_cl~{>|rgVa_N6pq5yTx6b$@ zwQ@o3W|XLGsI4C=ONh*G@*hg3t0k)#@wiY1^}WLVpUB2AJ5^XDl*qA@xM#gN8aNP0 z#|4Ezw@@Rjs=04U%nK6)`&LMW95kanXRak$hBzSs1+oamfCvnjkE1p$5DdlZ(gId06`s` zGpTvTG0;^vSk;OuZ3m_*8>`EN$pdQi#b@dogsTKX0frrD0@czH0gQF+RN}wAhCv40 z4%nr(`&G~HW^4tkQOqQjIL6b80IPo$)>q9tw|> z-om;!vxTKFWHA+1dpPVQ4ZCdsVasZ4zsC~-(i+e zZX%Ba^cBA(mcR)B-@A%&yGvVBAQ>yrPzO08-IAe~1EwfzcYl|rIu6x0_M_Zohy%VV zTU*F(XBl1v09%C~2y-ImK9t*wbe_Uijec)>&AruUjgGakFQoT$QAnUzFuXrEJ`3*7q?9t$F%VY4-NkjOxcMdr$@#wU$Qt`AXD)T3fG_ z-7!V#%!=P6p3%>Z3lt>VHAWcQ_(3wx-H zF4^zJOqxs<>;912ny_!omW_xwWBjNCU+l|c3i%71R(;k*+pp^e1f39^30#PBXs~Toi(+ZBDObE?3zSE z(w*6?`=KaAk9KOrIkvYu#_>QA#}xNd72Tb_wba>LpoR9}xE0D<-AR`6Q|{MCX?<=W zY&In#fI0IT8>1wIjfT2Q8`T^@a;CEW%qB*6<&UKrbVkQ>OVhOgY+v7p941KXS%*@N zPxNIRpGv)LH`=6gFab{(syA_3!6sn9leGYJwutdT<)a29bfk@gGRG*x3eC|G(nE1} zPI>`adWyn!yiLgTpbD3Ss~FQPDue{a>=Tt7nzt&EZRQWWYBjeITQsf15kMLD_ranF zs&aZ%8hjEwo@9e|IHy}r6r*c_kxmmVZ{`Niu%HX;b$#ZWWK1t_YOy`Nq!FuKw&(S% z+kIzr_&D^a?o{7R_x@hOfDrwjMqq<0>r`~-vV!%c9W#z<`uQlnLa-U@T;E5cQ`R=^_!?kK8w&3%@pbFF3%jN|`xkWyEbhd~-es5~CJ;=6GPUu$~7>t8b>M z43`IE9+hAt>Hh$|-JfcFxAD&&RPA9v6g4TcY__qVyTxb1>1SsCXC9RaX<3*#;;6N} zmo4+YQD_5V&s2N3{Ixj6ZP~?=O~iwqmC3^&mclz>&w9O&tY8UoT;$q&TF!jb;rg2BFD#|e zt(I`vYO4+3+wEDUOyj)(a~g%ABza4Pt(ypK?c)hLWMi*tp47&XJd*w2dYU`yDPU;- z0EU1vMOLdEP?;Fyy<E>G+kX0{n9MgvW3~s2tRG(rGX&2&4ph zS0^lz7Hf$KF}E44n`;Z3%e+9ON7p{o0o>0loAYA7jZ%i{SXsj_?>%c*PyN&R1dQUd zwT6ZjF@g-I(ts+-solKBIKE+yaaLl}Ww_fTebd&Uv$jh+CYi<^#a4%2*n$Q1>p&Yn zXNuZQu#7OKYEr!MBo_ToQ&3)9+<9sv8FuPwy}UCk$15Hv0=M=R!Cx{%h8-)Wg4kN= zzdL^LRfUJoUF>)rDvj-|=>T&703%QbH6Ebx2J?n}2&?*hm$Jt4qTqI^Z0wb&9|W9s95Qi(_9r_mt}MkY40f7$1$w{a`Hg%Teah4 z=b#lPn3J5(&_C&0mp4{6mY!UoHaNva9FR+=Gbr-?CxIm)7nTOmU5XVrxkfGCcKBqRtcV>fG{MyxYT9xw)d{i*Dzaudjg@iv(l{o`TgTn z*)3Q{!?e0E*?;lFBZ>oKs*vA0e1pqQO1;R)+0(i@02t^-g8PV0CE5D~>F*)#;>m91;56@j z9qXUJy_?T1Z5{*hn%=pZ&Q^3IGOt29S2AuT69Pt6eJBH|(4c4_Y41K_-=${WYFnph z;%<9lwV>1^7TX}$eVQ-yXKq@bXD#jYC(IiF z99KJW42g0}a@~ah6Qz;g8=PaMXTb%k&$N)qT{XXl9{SbgmG*6_*19FPnpFJ2Py{yq zC`}G_7E8H@Ojo1mUlX+`;YlXsFKY9Nbe%b*{mB8BwLIB}P_e(D^+!-V zt^lU}l*(C;T82CD&#-U}SZUc)BfSD20Ei8QVTVeRNfUS7$rY0CF7c6%N``r-BrH8^ zFf}BZ0UO0<$XT~-7)(?VMRh;=&yX!{C8#iSPUe<8OU6G7EPPcXUfaKyKdpE-h&~)^ zz7~h=5-#*T3fJ22V=M!Fc_Omz^x1VNS_`DiZ`jvNCS^J|J_LL9NQ81G7#h#LxVXDv z92|pRQ+Utd^jB8K?@CZ7Uc$a`ywf#r4qP;Mw#Or(BZ}x!>~hKyMjiH+ZJ|j4{qJ5Y zt?=)OB$5MXGV-Gtu5$KMacTC69}VeO^jmvzYV(7+&swBK(Vu(vrn{P3cfidSQRW1>(6!WUjxFTF^IKe_M#Dk3)vhGCnZ8j}d`I?OE-ki0=Ef_cYxpB6 zZ)b#7#_EdaPPDj@w@4cUr8|Ma+rcF0n*lOCbrI>!Yh{9dd~zxnFH#GphBO;t;2KLO zyT8;LMn5G$9N^OB)ul1ouEC$0qdF~}t>W9rH)E}Lc9!sI)5{}EfNKXe;ve;<+n75o&kZgFdPUk{IB7P-b|H{tUR$x87;n zf^;>prE1!plqxS7igpY*uUophwY?>-jzm1@wNnC`Yq{mk)S5%`D0BG%?bhEX0m3gMek*R&D$h>!cifQvt1 z{1@Y`M^%xUTBJu{CGS?4071q zY~AU_X5w^4$JEz)HL-IgyL^YC9V?d9EPS^D9OvG=pGEkVG;OxGQ<=c+*1eBJ@jj8S zD3~3mvbPm3AYwrzaLi+v0h)Eq>cZ^1KulL#ccp3f3@1a+w`$40&`?9?vYBzy6&#>) z(B8z~Fgrl>t(Mf{2qQ^))(hCl8vzP@z3J0HryJ7*Qso12uiX$bH%hYxvv#TXdiJh# zEO5pNIrOb4F5-|X4lz^(&+SQN`@A1YmfKdmk1@!ZTBW`q!2*nW)$qlDPJ*YD2OG9A zmqq^o>s5d44Mnhlu(hn7RlG%H`LkByiq2ToxK`{aYDx=oB zsclrKe)UPZ+>`G>7Yn(n6m04ww!)!D_SY0<(4&_y%*IX0J% z?)@m`1C#r7#|4)er)EaouywATwD@L^YA?K9m8>CW{=19ON^4Q(s3Bauk~F zS7aar6qAkXxqpU$Jo58T%Bt)jdr@oQt;@WE0qI@xVaFhIK%Ga*2i>3!Vhs;s6u@e_ zx*e|ths-Nv9IxVf5D%sdLDs^59K z&<8CV>bA0kg^OeItw{Vss@uPpaR?&18+eotGZa0#OyQ&e4@v;6JV&Q+XHu1Ub$uw=Q2um;{(!wC^Hxv zo@g_(0fCyKb8#GUF_XO{7m&K`M%#)F4OUJE6bO98#&PXccg_GP+l5a6kbLCPU?$sd z93`J0D5@!aX))RbTb>1(N@p1rP7No?`IP310Qr=l1xE&~#2{F%J%={At=bWusRwlwF9(WCHR z#(%Mwj5Omk)=-;>hIX>AKT7#C#2*R#U*Y-QE6XWjX!zxDEBchUvD0UXqn7AT`3K`xX9Wo;r{@LAF&sRw0Iu#N*`zne(2!WLa7FGI&~s^_26HKb^=c- z^AYago|WwHd!lM!eVyZwpQdZ(ZxZ|(@vnxYEpewy2p{a6R|#)-;vE)$FmFws#)_01 z_)eNQn`qJXo&J*maIpYMrrVugPhj@4yjy)3*U#F2#T{1OWqYDsN3D9UmGMtWyj65`3{_0yE`{93#o-**^C2k&3#xu=*5#av-+N$c}WP?{bHjENRE96TZM?usr ze8{C#z~~KeI;8e7O3fUbvUtUGD$zORg|{F!>y+Sxi$31g?>4BH^itB<&7Nr({$p@xtcvHFC6`; zM0Zx(eesGl9cIer1rT)|snOi{Z&XF{WJcf9kyLLyE`a%v$@29WtYw8ps7)JMsE`@_?ucTi5TuduP2*K)~tzHn1%K2SU1;Kkz2e*Y!T^6tAj_c{g=Z=Y)vA+ zV0%|W+82k-o)ckL9c$)&Eww47SfnMR2EA&{Rc%+!pJZ#(CW|rXTwe_6kzJLyo691b zd!p&HHpjW%{VRsKxVQe$b+^0TeT`6p;M?3AnIvbyqm_n-ucwD}`K=b;cTOu`OVRZG z6+}=#pz0R6X>KGd^{u^o#4=jjhp-`m z9Yq@f(@CUhuaf6z0-k~k3xD)?-H&?nJ5LZ@-Jy=??ONtef8prJ8W$zoD;XkL^f-nmqm$URxOMTuD4xpv>`@H7mU*Y!gSi zFX>&SmaU+?LHw|%y>Dv%9kjlLDt_$O4>yF3qwN8t2hydok~*WWXzEniDzl2wUlLvh zRxkoRtBZrdH!V1t-HOIL8k*wUU9_Afyam)y*++Y4s65PD%EoGAdhyGQ3|1Aj{Fe6M zUayqqt;Q{`Ts*T5dJ2XHgxA*i+R|YAREssRh%uafDxAI(l3;FNf0ntcjSBq(tkU5} zN}gak`0s7t4DTv|?O6AE><9@-D}#?gy10~vor2bs9tpdeK%!z&t3WpGb;x!QvK-Ul z)@}04+>z3zwD4?JpcC^}vCu4|1)@)$uHbPK_?qv|{oFq<(z?A9S9|0wFxj@LCXXzV z5skjstG60!MQUKTJ6O?hHNUj&VwdM|ap^$T>~3Y-9ybc&t^7H7XWt_bqN`7)+{1ag z(Mw~}v#=hGCG25-ZoetYd+ZT6&L+tu434Al%8o;<*_-ZixQ?y|x4J zpbf7QYxdSEoARajtik18TZ@N$pd445_`g%Q)m<(YGO>fjZD`uG(rL*Fi#vGfKpmg_ zBrOG(mtt73;;GqdnziTdw-w38Ybq^z(%X7mL>Ct}7mUO-5i4CNWQy0nA%zy2D0Dl(4N$KFd9~0-81Z;z?yEWi}wiywLqkYMlo5D1s#0 zt2_G>Pz`|C9+e<#OKNWR`EABIq?5p!b=s?$cCqVI+1XEQrUNEPtA^Tn2*kT~_Mi=| zE5Uvd(_r6ma~|>PYjt14aiNK2jHhbyi{B5;c`wg11@@?+@TJ-~^5!g~r7cIH>rvWh z4iA!1spiv2hyu~01IJ3>#*2Mx5P0S0pnI)C+!SNHcB4?x?0>SnIp*&wsy!+T`TRL* zh5#3Ja4$9e$H<67)fdop3%{HpEGq3Fv3hMoOor!mxfvC54SPsv$+-$j_O5bI2x^yW z#C~4d=U>AY*77)b*@&XdEO+O}nkrBBVw@k!r=P~UGUC{POLP_H$?*RGQoTmGjuuw! zSWdd*1Qq?T;gIxF_;LTof+C>~!lKB4s;g+lLb!~h(sUJJcUKn@9Y^p@h*-0L6BdP+p&g#Q_?j#O9 zD@I9!jlfk5g!zvqy6KZ5w3#i6a*ovE%H2gZSw~u?K+rJw6)c2f6$v0y!j@g$ltcgw zV;yUD*F0mbV6Oxk+q64fPpwcK@5JbX=&{S(5ndCH02TBP#CVJ78;4>m=hWx$pwN?P z6rdV2OPT-;Mny_`Qz!v|kYwdMB~ z5MRV3kOPjKSJYOQ7C#hz9VN^KUSSX%b|8OB`Ke=jIpx!?ml8rq$I`j!y)11sVa4Gs zJdoxfYY$!UotDos6be?o9v1;f0~JEu>nF1*VR7-J_%~Nj-v*A)562HG}zQsjvFypPlUJNBf|uG|TB4Eo?#rD-1rPhVt&w zgTX0`kM8kGR8W;xe&}iXrJd9U_QvDPjP?gKURhY)M$ukCBohvxV!tT<9sG9j7lfur zF6C>BVn%X$0biy+4n8Dke-Sijt}WOrAOPo%YnoKtb~lSm!tn>euLWO3MeGrN`=?Ff zzH9N9?209MF1#~7!~-}Zit9gU8{Zu0I;>izh|;~99!mE53ZwAb_Lq_vKE>jmK>2qc z>q6(;S|2NGKLosK;j4ipmhCE`;DPB;M{{=v`aYp-(K2z!z^~QaH^d$g@vff>+Z1Bn zxUO?s_($QbRz??AsKJK>DE^hKaS3jW>QHZE^RG+P;B^tU19MBNN-rgj))V*LQ~~c_ zOnAHCe}wce^np2mx7`A%_z&Q|n!2FZwP_62@OphV9V>p*U|jbU0iShk<)9-XnKYhVrZZZXQvIct zJ^)(CzEFr$J!msC1vY`{Koyy#hYpmPrqX7PV?k)5iU8=XwY^5vF4yQQKzNf>llbeF zQV0TuE~n+il`okX?MJf%b-Y!qpZRP0RMGgW zSnn_XJ6zu6^ra4iwI0Y0ll~HYTeQEWC;TNk*J*!B=lG`X$4}))ARFh!8qw=7=}rFt zgp*c1W&JAyclpH`2dx}{ZI2LYV}+FBnEL*rKJ2G8lBA9WM%;9xkPUa&^<)14EsZ34 z{;S?<#^lk+qmT{H_(*k6`Rr+b;Ud*P=dr9jk4j9BN&wvd0ECBB{{WuGkN8M+Pxk{+@In!HPy)&-f>lTQe@B^q=tF> zv8fVQ^&+bb_oOrjDQ%^fvl<1&!}yI>8O0P5UR$X`<9Voj#$)%5KygPwS%Elr#xqH{ zgHZF}?m!!6lm&$Y2Z{%;dXFU1=K`Qs9quUm)X;I# zjQUaw4%_KR7{_{>%nZ0;RnHu)0bo5aD8(fd*S+Aswoi66HrCn~~F{ zNAKE>Ptu@c@DH^(5GpSCrR~K4INvGK~2U@Gn!GF0F#BJG-EUq{33u9 z0r*nvQ%xA8~Kmgs=khe-zCmz(9&M6W&G3iQJibVpQ(;QF%^K_-p7&MfeP!<5h zaZVspMh{9;$4UajcY0BtFlpEfIH&FTIi@QRgSVwSB#LL!pU47$u$jTBG6h3L1A7lV zbfnG(XxqgAPy>g|Ii*q-s&m zN>aR25Y8#vfE-h{VRGD5d~_55<;mnzm|)anAmnjUG2OuCfCT~1&Dxd94k;8ebrl)G zJWvP$Ij52_NsY9JGyvLFG}>^W(!!ilQeuo_@SrRPlAqVDH;M?bVD_Xm{{Xwdr0eZK zSY`DQN=IWH?Nr+9(zy**W2T{x$>ihLdV{; z?abH8`xgOg5<6Jh-!ZSu2T@M3)hD<8*<4Tp$zgqN?8*nQqtD*)tFO#D)|8%Q?BSGc z`D-G11+>^Ho;uJ5%RHmyJOj|xTcrh8EDkFzwMTgTv&W@O0Bdlde)rOVH|(ub$p$vf zSh$uebrLG8NnB;bmzJ)ol3)?Yro2z&iR6&wxHJLSTk7jLWSTq=YJ=_Wt>u&qGshjP zHfc?rv|=>*Ty?EDp=+4;s|mQOjx-M#9x(8@kSKJ7B*>0q)c zAmolH0(qo+xk|*?RPR|5#O7}(H(J%vVkv6VNzuPb$J8#77_2Mv_A~*|THigDsfK0* z3dgzCn&xpDE&%CRo>jw@GIc$w>RHVp8+aW)lmRNe&RT!GqqQ~-X_bsDxCX47OUn|h zKX{$$ptp@#u30#4-jo5irP|9i$(Wod=~wQt6jE(Gip;ase280W@G0=>P~5wDtOk2f z1FekaKQ$L|_w82W)UH`fOucx`W=p9>4C@7_(P8S))At^Q#ebnth6z-ss_0mAN+uo3`+4CI7dBt>bIyhLP zUI3>@4Y-sUwB^e+zikJ z(O>XK-6MbpN}+h-X-r6PnCBIDbSQ>48;_`}vD#)`sB*Z?09vvtkz!B^FG|jPwP|v# zg;Ua`iq=_XC4N-{p{mWM$>w>m4C9kP7cVT9=Q1Mvpl3bmJ6Xcv6Xgm!)tEIvs$!9F z!-H9lVxK!ysRyk9N^K=+#PYDf=~t5GCu5c6YbIp4+9Z#Z6|H2D-9QuWp7a6DOEj`x zle6UqwRI5QNRSg6@##`oX{HHSz6u&yELtZm7x7RAZM#NX%Z$oTO1FP-$qL7}XseLH z99$e`syrWTcFX*!+JiC5BWOcJJ9Aa-t>ak@!+;i_a}?VYz=l4tO1f05?4@x@8=ylpMFEPX1yjg{lO7RnHF%>Zh&;{|0< z2&&O4w2cU0GCGPiB@o*;oyi`RnWXu9n>pM^6al4o1aAo@YZ9U2=qmAp- zyi$=U4cOJoc&(i50}KU0C6CJZKQN#Q`hTBn1Tme=I{H?;GCY%kD8>b6Sy@~|nPUW= z^`$(!q1r|y_MizxmAtcV<9hTpS?_?%Wky%6XxUk_TLK%Jz}6#z(YEzx^sNAW#oeR9 zu~#7Vthl4a*pd;oF~BtjnH1MDlpLy8S2?#421Fkq=|CCLX)|9*=g8Yr+KbpM^z;_$ zp^J4i{{Zd9@>&5NG3i)>Stpl&-^Bn=6IRn_h;Gb((m=~u1FeWPQZNT3Q6r=G?(?NlA*fqu^;Z3m@nUPT&9^6{F@ zyS7`%NkhtUKp2zWOCRot`AskS zUe+ahj1$tMzP*Cwf=0O_s9zoTLNeK3YI7pS>aZ>|KnRx7$T0`Z-^#B;9F}ad&&aDP zhQ`~>f4tpsSX0k+b3c_A3Md0-QH`gFwXng*TIPfkO|~f*jCHPx++N$JTlb4uI*r>s z$W5DZKo_keiULAsAXR-%^6FR}VI%-6qqK@K0`%lnXSTQdM$y8zS^)4noB3e4!Q4G- zx6$9hTw?r7%4te6a#M7S67J@h7c;bLJrCmKOn%*EA(zxZ&&j)`E1-h+%ahHJfgkd%0GD3T?QN`8Er2os#c(rf*EVV`WX64~xSDp= zoQRv{70uk}NV9I8^Ny4Op{7~M_D{D+cLwcK%B-=1r)V{&0D$S@-X`se%($?*+9ThQ z+JG5tco%dj{?^OC?e;G66|vfYF!h~B z%iSC!<~4_<#VRq9V}N^A>AbTkbw4OIuE}jRxMADUfGYj27|vhNRp{hfB=el^cdBV=B$Iuq=0^*gSd)f(eplEg-{+!m>9v7XnA;Z{=Mh3pE?F zw3-0Rx$>N_W5Sw-REertdTBmPiGu;h`2)#`Jbe6hh+@Q}JX0!F7b9EBLy+;PLmi*d4>XVF) zII6yEUuQBAxU~RtQCPenso;-FmfKFcnnN}Y(OnI-td0%F@w9d{vucVI!EU)Hjwl10 zdq-=9Rn8l+t+S_?At!fFTBil%FmW36?TYQMEG?&E$iZCkRi*nSmAfRa3xPlx)>o5R zTKO-4DUb_>W}SIc*ENn~xV+535C=-VZ1-X#0XQ@Py*2zEQbmuO&{c`;l1ps2QaBaP zTiZyE(lP1Mx9tSC5HiWfVL%zS9%Zif+yGwG%d3yIN0ldaLv^CxLB3Tatyi%V7^J`i zuWA56clKBvALeT4bTa11$loD6isv-@F*VjFLQm;kAD(%e03}&Yc9#vP43UK~Ock z%?8FlEnrV_(8;zV%JiTPl1W;?0gR5-jXmAX#DTH3Rs*Gp zcMXNvfDe&+Pz5RM_uXO)BGpy1ci#j!_NguBjJrrV%KlZ61Kh33?KtPH0Cg6+0JMlm z=Q1AD&FgPChF}0Z@mg`bvq!y~1#2$oLgYwr9eSDop8C!?Stf*Gd(^FOX>ACbqXEFG zQ0j3!p&f$8J5`ybw!UqU9+Uw%ww6>&rN9`c{jnr}v*WKBq?EjNO$=|lZyZ)sBwNHD zZVdoy%L-Z{F_Br~+s-@B$_c85)_dmjV`8aV)|YYMLgVgtpaj3Sj9Y~*)1avI+h5(6 z1Ly5g-QL>FHm4+X#bwW~$p8>WHaOr=29)w#MRA!p2c{~Nul7jVaB}CMs}_<;c&H|j zWK|3JC6?^@LwY3uT(-Ck5ti}43Yq8ARuCNWdK%_rvADXEYB5piR$ov1Dy(z<@b;h! zQr-E{A0j>%zA7CoGw&=g4RqF;j+q^w*;X*JV!7je zys}Hng4XZC&<9CpBrRp-L`F|jS{E+1HalV)&MS=4^vlieL+nJZipF@{Neqp-g#c&T zYb`PIXHBd0sc&_gc!$~SlLywImfOrP&QEMqx-OK96qDWz6YD?}p}Ev2Qh@PYKA$bU zy}s**8}azoL9tTrEHYsi(z&y3J?-I+-H8Le0Cm%9miO=WXJSxsResdgDlEc&>Q40p z9v``gEQ!uK*3_{1maFGSjB!8-CYAP!QL;?&&{r#WXvzdpG4mI&tGAcemfyR#$|8z( zn0)NdG5-J>0EbS|Jjnd%<>dCOjxJ-6!Uj{Is(x%x-EK$1FYwl_k)KfAG+!z$09w*5 zKeN^6BXU$%Hqq+NRaVUf@JBxIy_t&w; zN0aiDss`!W6FkSB)BzlDi-~-f`+!iM9Jgb}Fo@R)Z(&;85q0CKo@Uj zio)0~&`97`2A3rFQ?PEIrF7Hj!tT{)Bi|KBJW;|eVNkC8W`H%NnKmtyAAi0p8&Fq( zq*6XX?ON6_4Ltdm4VNOYuZQ}4bI933dQb$5G))^Kj6Y#p7WTI>*x-$;C3B`&+fWM- z?~-e(y1mW0MmQM2B7ig8+E~TL2tEBNmM;Sbnj^TkL0MM<)Z3q%a~jg{;1>Cj`t}BZ zC4e!z^Ga-0>T$&_=AkkMF&w3CU*5qA2<}uW$>=MXYZoUF{{X9QlmOdV?QbI~Z~$*o zDsgveac_(wckNlX5KC_Z#&~Ykm0>K18YzbLpbp08QPb^VSjGwT6;{y4F&7*zc*SNz zr%8OvBx{8gXHkkY^48xZuUt?BDPehWc$X3H1iKEG3o7An#=4mEX$5Kt6FPK_uOqOQ`I4WNIvTe! zz3frjq=)x?MF2k2Q66iM4#0UerEu5!+Y}4FFQP)Gr{7Oi^Mw z%U?e6{J_0C*PvV^4{NeO2*w60om^VmJV}M14vyLe{>})vCmh!;C9H|&hHaqwRSOyQ zOSbZ0ljR4JD((C_jg+9M`FoQ<9OaFb)y? zBX_9o8s_63eA(GR8*8dqTE>v>B%Ujc)O5$ac`g7L&mT&gOtPN$QvxyjwLL4KmMLv7 zS$QfyhqVN>9v9Ycd^FKqS-!xhmG!Ttd?(}Ee-p>$Y8zp3$2_gOR%^Sov-)Gd| z4aZz_T@b0<##C2B^SW!xYn|m+t!-%fMxP>!;C^K4E809$@IYG^n?n8O-}z@=K_!Nv zpvd-D(3JHamD9{&V!V2L-`q_+P35TRR7_XOj*5O^#%pfQ?$*hCu-r-dQFn_-8f@?1 z(w{IK{8oQqfv#?4%eQK^X{y$|EER5LK!M>r;kkg|^^_ z@~=U=@cdF0xw^wFVwY_p%tAPcAkuGp? zTb6p|#IeZ?WEBIb^sXw_{wp0$Nn8dpHwJ(^SYf%BO<1K<=XXAppK&}8z%AM_h3fU$ zYnp`CdOTvvC6T3HyelJ3g5KiYV$@24c_7ecVd=U$M+BGF2Ya5?g`Gy#B)ER(w`%mQ zZ~HSuvIfzB-TWf6^xK;mbm>*b{Qi^yfp4Z-YT9U)@PgoHCxcuzzdeIvP4c|OQI3_N zajay>w&+)B!1S%n5-S^++Uj`0an+AOK<<3$t>|(++%jpA?DbLitI@na;`{#q4A_XZ zXy0h*n)Tf~PVn8m_x8o$4vWVfE6;u)L#69CO+Ap8{()nE60}NFd<{| zlV0C*;_Dk&<4ZYJSO5kMe7B?95oP6D$G9)uD_O55uWfjqVJNEKrAvuu`*%k8gw{x} zeK}?H9V^x}e~Fr9>~Y&E4Z6QRbuWneGFY2ekQaz^j_JldUIfZgd;8#gUe6pCs!T21`czo6 z*(cH7FiNk=J!_tlFD6X3R9CE9YMMT$0Ly^>m78_p)Va&T;eqHX0P}c+$8S7U=;rdl z1&-lXZuHxT4$?3erDQ2pV!8Rd&;{YBI?0|`RkXcnST1(fTe#z3runOH``l)LJ4hyH z3c1Nzv94dur)iIO1YTn(;YDyOt!|#< zllTv%byl|_R6`<VcOHcvY7Ln}4pE8_%E01}n zc?!nFn$WknyNy0$Q*bs+OB;OL(|o9QZ zU<<&=HGtR2A_PN)9cjeA-Ldkfm>mb&G4u=RVa43m(n|S=!|{#y(mA-wLpy%L=0Is~Zu^8mfn&W7e)h ziz{s-Gy$3ZkO!ICoFojty%}s)yIKJIhe6t-5f@Xm0YDk{Z*I&Gj-Iu4<}K;9I3CqS z>}5E}EiDnq_T;O7+`#FK&tL+L;h!D^ANTNNuZ?g*d- z^%a>SUKp^#s|fCh&)oumH`aU&xZQ#ktoY1f#r@a=@$!uHA$*(K6_=T%mN=Bmx zJQ$&K zkmu~RGhpT$zH6h7?%rkdA#cK&J%zQp-AjIvS^k`QpMHY30oYh~oT=IuCuFR4tPvud; z09=ws6(kiPj4mC|Ue%uRxw{c`2DhbH**G|=BHjgH#PdMzBSMMHS*)A;IPXx$EJ21l zis($Sh52##Rb{(_?y&-dZOnPy?}IcQP62CsW|ItZ9Tbn{UpDyj_BHTNie-DtD`d1U z)JAsxmG-!v&vzK7I36u!5G+ZZK~8t8^8?9Anci}+9G0$F@P zqtElSiS_AQ`d5iHD~UGU5LX_UuiM`re#jmK@lqGGw_918I57@CD)^trzp*ckG&Gjy zLLX~HBmkXoJ*w|bnDW$t^KOCSsA69#Md0y~Ua{f(s|m=H%>=h&iuvcoKMnkC;TxYO z_Rd(?f3k60bb7CdEF}u=$*|Q+47wE@PxB+~8>^t3>xfgel6)&(uJFBVEWe_p(vdZsRyy`dLPA47x;aEigs|H-Zk&O6#c0$ z?Tm5jM3p>O%Nl*&gRO=8EP=`FD(&uv9>L_U)veYfmq8z-njgo%3F}IbnG|lua&ca{ zrRx3>*P;T_NXvUy;>FFK)|%@jw1p4X71;QD;%|z4IGK)T*uIsjsF{Q+=-2-$r5~P`* zG3uJ1j&%)5k_)&5YPik@Dmj}#)X`KwmmtMhvDUmNuWh)EMxKFJbd^ z#bYXVEljs1 z%axkwa(Z5zbg2#1%97so*u-I)!KRE1nzl7fAH;|3m{>`z$aH&KYcmWk3JO+Z(DNax zrK%jL4O70i=EIwG`H!`Cu;@M=+vaKrIIXB<@GNWOMX?C>sd5uMcF4~w5#^2NzAL2L zJQ3`cO@kG?szqeCNpWP$<&MBs7N=nM(}TQ5fKuiWp$b}E#pHR}b6C2HHih$Kmy#q&%KQv02sJI-Zh0UYLt#C107rO47r^XThH=fmlb7^ZM;wykQuNbPwLTin? zrvryGFk+|2Omo8EOdVktY~j%``ppUXmh_WBmNWfkS5YGcPhF-IsC6UCPDzRkEpQ`~B?%?V31 z%~y}Zwv8SYb~S5h`eZgLcn38tl9A0@Y8S7$CWi{W4N#ZFGD9IAM(lLryUnpH;HL-L zsZV34TsQ*(zLg~z7Jemx&zEx!*2fsFNVNo*ZrOqKsE&sdNG3oqzSXEKTW$sdk&2YU z$C3EATC%vEY+-)E;k6cummxZ+Vwgdt4e+_7m9&@1h zvsSc_v=Th9_6=7xUx>HS74xmosXW(ZZ)2xh+Idk%1AQxkgr0P=4X3qNEJDW4 zo8pZQ^4(rlR3v29t-p%AJuIG75`f9-c&tS5CX4n{8$Q>^7_ThWei7<#GfQQD(eCMk zOW7c?>^Gh#w36W3L2($7`T#{yu(j5b=&_e}e=6`TAK<>fW35N3-0JTkQ^Mzp`YOh2 z{XOG~Z=FEFG`T?O?BaOj4JJz(gI3h6G|}cCKVp#WZkVoK&q3A=@9$WG zwbg09B`*LD449_hYPYiy_Eqx7t!QR#TfrbIWP1ObjI`W?OH$iq*a{VEykFD)f(_Mi;?Ure{Z3yAix>S^$4RuMuX$0^A)ziPa2 zSIekhQ`s9Ki}#%<0@&5bfwVQYFFGR|v) zl0*c5N|x(OvkBx`VlX=5o`q^)YW^pl#&m+y_ms;mX6Eqjx=_0+c)T$TGI@;qnEKY2 z{3Ee&V{T7cS_Y=PcXo`b;C@xr>AH=Qs-$=VxTb~;HX|&A6&frG?R)Lb#kH~d*R5e{kfr=z zyHSH$DT|cy1iN=okHts|;GZzo&Buf9{LhiTLFrgO*%wyQy3CAFR<|I6JE?@8S$;EC z7IVL00eJ<$2ljzwqrS1a=D$pW{8fV*#bZqqav+&DkVzbij)n|6oBIxE2*#5U*o ziv2^=t?otfc_AZ=SLYY}6dy||d7$cQSyaYTABA*brSBM5Ug`O>xcOM9m}NH#ngsp9 zCZkc6BE8yYlvWB4N^7VGil1&cJt`K!Ja(eQ)aGR! zu~|r@;P$O6LKZ}=0B??C-QmekVT$>^M>rMq--{yid^2=C1$@aD$j3dnpwN&nG_SxE zjQBMKvUH#cu}M%UmR=)5-%9Ire*t*c#4|^2qv-cH458}Hmcj6O6Yp2*qlKBK~G8H`t^sJ>` zC{8b-@qdXtH?H_=NYigMYgd9h=)<99#^8M`hj@+3F(1RwSM7)GjqoyG6ZjQ%4H6|+ z(gtIVMgpMZ;0pXz+bmKTh`|{I{VHkV6qbQ1ZEkanuAC84!~<2UsJh~_*K$`u1N9D-q#=VE*2ZW7<@_3InJ#0>v`iUD>ygsGL%tRGqR-;TfhEu{O115(ZFR@Zz^;0V&gPNY$AVhP=7F%} zcc?XM=e44XA;xOyIeQU$oWVg1F zoHHWl82feD-~vVg_NOdQaVo_S%QgT5 z)Ys_8?O&~Y8{Pi^2%mwpn`3zqB3p}eRaM6Ya=rMkF!%}ZYE4S;c&}Wx@@*m@+r;b3 zf3?qQ(lbpCQL*(mz@G?@2Y4#V(pA}UEPLPm<`v<8AAAX~_`AeGte1RfyH}1fYwRmn z3dE}x7ihr6W^20ciQ#)TyVhh#$6uSRDCjh_J|ggE?7@F^B3$cjvOYdsSJ7H0!LI^% zRv$L*I75zd`0e$tKk*msA3fxUNbnw>ZmuLdLyYzIsu27V{iHrB*-5G0MK!EjODZu4 z2&=h`j^o7t02sUn;D-A(hR2aX7>EPY>0dbbv-XVf4yhEdXtDjBAE6_hSCaVO;g^p- z8EUO<;|(%fY@7#S@-X!PQbDc01PoOj9kiR-_A=Edp%t|aTg2Mj4>k4Mg(HRfS0|*V z{Ye&1a7B9M^by-Y+b|FgD~s^WmhDaM8FH#>ENRYq>RLrCAtX*ft~)~Urw&HL-DEEN&qkLQNPugut%+e<4*mYLL zer)R+E%t$_O{MA)nB;_&IUTFr{snwbm%@6Y=vtJewEKg#cXU(!f2Dh$$4`c_c#}+D z6lie?B-$92A9-m^sGk8TXq*(|73sbn)T5p-lAoMcoKFO{vo*ZKYaz$dlHPftlssn` ztjay^U8xax`L7(hvzu7)BHKsFmBNfyN}eGi!J~7QBNe~!V?>+89zC&Axme$E^s9-S z&$+c*i2fY>B3ORpjcONfp(4L9W)f;Qvq|@!RxSD0-v0o#PO_H19}74eUR ztpvrTW#gyPwFt4E9hUDzyGEEFDY!n>>}xDKj6)X01TcN^RHs@hr_)C#PB$t-58(Z$2IY1kN*H?{aeHH zHmBjj&l2)u98%?s_8Ltd@9|>U{84>vK8WIApTpD&o5UK^_yggzmsiZbc!}S&zS8tnQ_oK>}q|Dz0+T7q4IU@ z?Z%;~O?h&6G^|c)0^VO=!iD?0X^zN7JBsdvY^-s~iIC!%j(MYzj8VIH6<|#p6&zK# z-myAa?tFJtphDyeuWAv^{xQL-fn|mLWd;b6m1dU&`8c+Na!{P0_gQ!b$aqZ?} zwRJz(3*n(mSw$p&@H1R*8xwU#N8)b!Q1$wc;*a zW2ISLt}to^#sxfaR%SnF=qhAY0;5$Xl!jW+1Yk48G=WLYI)Ds&QeaZ=_NJEf6`<@$ zpi_9wGn!0M?E=L6hpjW7)fhr4;9ypK!C`qlX~9?4o6n^;Y4oF*EJ`ujnsHI$l8#`p zCh9j-dwr>Pdr{057n)3(G3`mn?MN&kq~?(4(vzP`0>qS2MFC)8K)FX?3OZA1aA*!u)SS~PMKI+aDR$FyP2E6p zkNdR#F;QbQ-1CYGB&KskC_Rk;Dw=VqKIy0DG#QWfsW$Od_jjo`_Mp&JKf^&AdQ&$F zUepuHEv~;HMIHcXTwFQg=6yZn)O&P^z0kj&IV5qqUmnMJ!F;B%b5kX)o>;th)80aZ? z?&6mKeJWTD0QRG4?@N*?hnl7#am_b0nInn^wLr&G^x~7JN=g7+V~RHSG=q-4Dcl~N zXs`{XrK3DiU>!+{dh#$TGB9WXDSAs;~;U?@RKYl!#WJv~?6% z2>MdvxTWM%d8z?^qMA58Dcz|!#Q-OK(UJ6}q~pD20C}axDRWKwPyv!?qKW`0qKW`s zr;d~!I#EaAS^&5hq#V)5YF?B8odpBhlyvr{pK4YWhcF#QC_O2Zy*Q%5VC|Dm3Ne~a zK&2E|EG9509CbAA1v3LQSS&meITY>RE-E$jr?QYKj9>$`S=}1|4{EE8w4T%fAyw)r z2&VC$YFQ*b~3)Azl8 z+SyahQ;$Wa=+~ysFP1;O*0d+nrMiMMa6k)9n%Dgt2pD8>#d&98S5(xz$+qt8(y7di zX&i4K%w+9a5NS~F65P1YTGhLT28C`AhA{RN0nb}b*6W!D3wEs-VQbCK$Od{Ex1B!j zKQ>R4V;HOU3jrZxIYsCw0*$r2=yu3)v-wtRh%PP)XXPC;T6%@u%1q51WO0h2VpYC- zuaNej2>$@GZLO6|m>D_EY5xGkwRtQ71B%bT`$W>DL*|d#vZm8oCQ@X^?lI{=9bMFV zciGlP#z?9#8%DJ|#(CnKYiW|HIr$g8X6m6t*tE&Vr%C{tXETp3QG}1BW=C~%Zr)@~ zh3G2eEYr>f!t78x*6`DzniYv~R)9J9q|~k-a}s^(Mv6vb9ns>tn{ptHqa$!m1_ftb z$1Ut+t_I%S=mNc=bd91$$_j_dg%0Lj-t~J+ut?B`ea!S-p|;7$WhWT)pbXoqMs!)h z+qw~eCt&rw{<1tV7TaL0*&S6+|V|`v{prmOK~#5?Tz1+ zZQLm(6C(ukiix0tDHW50Ko@l#AtSXOOJJ{1D-z1g3$-N+3fcQb)5sP>@&Q{>J+x}A z67Dns$7&E5uF^=C__xy0SKmu8eZs zsq14cs(q^5;GWcwUQcsyu}#SbiU5vvk=0gWS2Z@AC6Z*fKXi4iOY{#23^`u)pArOc z*8DJ_4GCa2cUy?v8w`CagqmLI42X8A98~vOjNmL%5tCaGn|8NWbG3k=4r&Ctvy?jz zmbNZui4$=l4qAXZTT^A9D5%Nxs@H$Imuw?$X|UK_-NuvW9+;x)&P89EOuwZ7U9^fd z1*AOGGffOUKu0_fDwHWGQy%j%y+0U%MLoz3Xbi(m6vk zgYNgKrm_nW@-RT_iU7~Dg|1`SovZ0ulG{N9eq2B)^{m?{5a0r!GaIKpqRfycU3%GMp zUb%~CRl=UNRp**$%n_m6KoDHsncT*_sH(9|aUl^~uM5_nf2B6Ntjmj;Vv%#sIf^6iiB4_ejJbcvD@?tgmS>z0b@Xyz9n{Lk9D zi%nYaa#DaOUFa_zz>)rMdX{L`-9kh#2zO42UQeY{)Gj>8%OJ)m0!w=Ycy})> zYSoQ~@+6-d!Icd2w;YagxL4Ua7etujy6Br*$L*+_o9IRA@fYZ?M12D?mE9 z?Ch1d+dm<{DzkEsM1o6V z0B=g?mMe)+mux6F6=7`VA(3RrS^y2S&yAS*&2Fu-X|M)Ad4)*U(ZObhE?f%3yVUNb zghs2v@MrA{+qUf; zD;e0&aDL6sJNj2Iad$WlZPx?T)|QQVh5h0APg6h}O1W42M=Uy3192Ka=Q!KY3aP6~ zWPR4nm0wEFw`jynXZcC>pa|kVVQH>79jXy;CCD-(e1fk>EHf#INUdErPc0eT*h&D& zx4Mqj5(0eUt4XR|2)8J~HLZUfX`5&la~}21ymARv2kSr*q^4yrFW&EpoLfzBtFw{V z)2Fpqh9Ycdtyr+OyNr3ous?)Q0@@iYW!OeXdeXMMit>CM4Yiwh9mJ)%;~lEKg}Xr8 zj|a5?Y8$wc`^qD)70}xvtgFDT3iOyraNC?!tup@rP`U*hjNR+7wl`WrtkW^wwH@ka_RzCBI%0gW3V?-q-XbI6ajYMTSW|ujg-hPt*%*+edg^^4FPQVxI2OAilEkQZ9kbG z3+q4=-d$bTlBzyl*rl}b4bYJieuPx1sM_48*~tZ~G}*)?-PDeipdA}aF~r-lI|{C6 zy0}uU_m4`@vaxBEeC`Eac&(MbUz9BXCYxxGLL|8R-nDx5R&Ab7TFbt^k~r2R0QRW# z>xpCz(wqh9KpL^z+s>b718WYZlIGRzpfN^yBZ_cuDg!JdFI8IR=IKsY22qLt&(r+b zC&b6)Us|cDUcJ4+3&6K3E0MgTS5Le{+Ulfr{WxVqp zv$w5hLvJF)WQ>Iv=}gmAgSdVa&<8<%a*}}>9x4c8n1B^`A*+*V;KU3IxMP~v)52O< z8LkLYqoJS(qqH7Q=J_$wsI!O=?-|EKSywu-xov>$=Z~dQ`$V$3!}oycKpg{JOLw;3 zJOk-fn%qM=!tvz#*0!Cd{gnN(QMZmWP)&C8`Hg_PI#yt0+}kTi7Gs62dpkQ1C(hvl z_pEzlX-N)qy0rzHG6?q%EOnp+j`lX3p!wB0Rk@le_N)trs?4_5Q8$!9eu9%p5(${T zGDjZN0iSU`p%lh6Z@b#6M_}&$eaZXBrD#ujt8(h&c01K`c_f4w#$)O9pbc-a!5Zbx z?@ZI4=pYg8+l~ce-cKakLdlK2synSk8rRE@{bJAq<+w{nFTpi6j-ds{OoN)`P{%Bx z?g_1Z){)2M!$2B`R)9!WQTw&&QH!f-<^~S+k_ybeQ%BU+q;?R;6K&wF08e#&Z)+Hf zc3PVa^vsw%FJV>T(!SX^kn(_1-&@NJshe!yI$@&M?`n%|=;nVqpmRK(1Bc zxQ#r_<9BM-w7ibi(N;s2BauK5=~Fe6JG$|TxpAp1-8jcgR#cZ_ZP;Iw@x@CVOBy3a zxf$kwE{nMq*q8Z1u3~j<`*Vgp54Ci6C+#uqQMR+rmnK2qmhV6XmDsh5YYKhKv5jQo z8Q@j14W1S`NE>OIg_=ohJcGi}2R?wwAtkz1=pcQE1B%W>Xw|&2xz9?~UphNX9H#70iT?NzL;uO=npUzgUdi3QYZv32yV7Q2s6 zv+`H{V^9W5SVpWCPrqB%I(W#;BLH=;KGn6m+c~3T`MoQz(Y3p_uz4;(4tfdzmgd&b z%IaH@(y->Rner8~pwiyzF+6|+gWj(#)K3b8Ao1FO3oQra^NV5q1#Pr)EPG<$isnwa zC4`F+JCxRg>h0u~LI6D|0>p63Y~pK^oc1-1sKnP7ThHa%v)20eQ=7_^;TEKtY2rR# z-Xo;|Sh&3MV@P8kGS#K#1-O5ey(==_#^&XkSyYS;D_+jnvIV&OC;|a9&V0OV9<-3$ zU0Sx`mH^h$+M^Qq03~U_Erqf31pr4bwGGXmmVW*@tW>we1)&&YMA5)EA}%*pL^l^6 zZ`rN#)B&n);nUS~%bJey{@y&u2Q{T}p(Vsa20T`>LWQQ|+Osir z6EJ}1cY5k|8?`L4!GoVlqL7x57fb;_7-}Gmb8<5&siM65B8BXGRkL9nx0%5xKT5ka z7FhCt4T=DDrTxV6g^T5lYVFOsZ&^Ukb6M6m7V9^a2*DMrGU2nD0K>a!=btgJwQpKO z1*}`-=0+5fOB5)$8O2nY)UrD^6wm+~>CclG`D(0okc;35+{3MCMSlxS6n3oprxw>f zY+UX=XalwTZL&q=^z^Q7S)0u)M?b?>H$kvVc5r)Eef|2#5<5}y&<4Mn;@MgL^<+r! zi-7Vs%zITmQ&1~zmhm0U?OC?5%s+i_a(yTRv9_8PRw_2B<28Xi&_K+p+kveMR*K>u zFFSEmO@vP?N4QW1t+bCdxB4WT8>K@AlX-V9mv(o1nvrza(PI%w)2J07nrnHA!JLua zfEQ5G?X9Bn;gb$MDk}{swi#wPE7GXo&v(A*u%fkRyL)(dt71P&0JROwFeHmJ3g#~F zM9jh^>&9rbb9*~(7(-oLb~av6PBH619BsaqBQkiNK;ZD)+EUiBr_sM86!w`u^`xbtna z;TjNyg>$xzCN{~O^vJ0$e%Gl$B$c+R{n~AY3z=_9B2W?flr;W`OPksI7(8;EFjnF4jG&j97v{GAPf@Pd0Yf zk&;Kx?LZm-0BV+dg=oHZWH25_5%&c&GQzo8!#MlQ)0OO&K@>`Z= z>09u@3~?5dmpy5UO}yl{J82{mPFaHCT7VMj*3wXzIK@86qqHU`Y^zm&?75JuyZn`Q zJw0XGh}a&q0ktiXPihv=4Vs}0X3RR3`LSBIZxw`F8UFwp%_T0cFpZUON&v8}C)k4((4!fyp7P9JAbjp+tkSZ_ z3hqt?W(K~8b#Zt%KLB>8UR> zGeKr|kJ6mhGQ|=?hiiAmZfSaQSZTgt`~CA)^y??Mlh3)rAn95GgD#62$GTIOBc*Ct zOZ}Z|<;jIoIHOjznePKY3obFoO47K}(&o(}bG5+fKpd18Pc*K9x3q_W=~}niD~mnx zoH!iSd339NE6aF}WzRm<(6s05o@RL?fj}O8r&!%hF7OE0Yo$xM?YBoa8@ghhYk9I_ zBpU$h?@ZL&?HgsZ8_M<+0aa`!x!hTgJ*y>!k{41Hg ziW^oFO8bEwE2Gu!e1t?s13Xp*)r4T7_0^nn%0BYIl7R(+1 zdvvN&+pA8o-2KMrYnzJJ;>vF_Kub62TZ2!!zKLg^U7>mbKpHY>k+~7520Y_6Q&#ZZ zow!*Hm?NOA?GsLQLnX=iM@-Zjjk@X=$rBvMngF2;kyzRYBsktUs&?8;F-R`%UtlMJ zTbh-=pA3kN^D=ZEm7j24?f`lS`cMYmrFRA0id)2fb?I5rcyf6VT)ECG49ynhG5zK1 zU0~Mc7RefnuW%>>5=}}gaL_YjY3o@30NPJ2-!0}M^cA;)p=!_=GC4^_KbC)3|$H@ z>|~YaZ13rciS=u%xyWSsI%C?kbh}98ieI!Jlys~st4U$GacKLL4B~(znj3GlZA0^8 zpsU(`kk?T$Jw;^c(ugk1(=O)puCm`-Nut|ofk-^i1thm?7vE~63gvIEFYYfLx%{iY zpH_`v0uAYl+Q@)8%k(u><+O;pGUw1$U+l}9c*W-NhHjN& z6^>#ixc~(;0i$Jh_Azfr@Tc{wR{kKoLetxR1^`tV`${a5kJ!|13EIM?O`7xc??b57xW5xa; zu+(#E9?hFN}Y|yp4K|c?Ke`E_0~4v@kQpDd8XO#jxEG> zt_JhsHlsb~`W!@Ny=P9>lT*@4+@CIToad!g>{@8yBf9%TvOHj^{u-oho*BHm5yPHV zrL?n=ubU1D9Z0ABq*z>=nQ+R7`Bjj59+{_G>DH0Cg+#s0B)V0`r!zThMeST|_Pwa; zc8zgpg(F^{g*U^VE7cYzOW)l@J!k`d{_9NA<2Dy}8>DVI^shI%(__};HhM;UrTfRV zSe6?dQtIOFdH(3&8teQYC55h+b0WvEp6AklI5=$EM~Yp?cu|fkq0{s|80hV&TqY!t z?!l?Fi0$<~MoA`MkZwF4D|=V4Tm80Hj3bQ)Zu9}mMRwE9w&dm|UMmw?xrW~1L~qaX zuBS}UR7y~>-k!D3-Dod+s>uVKk&f|2~mHDbf6874d_}%qo)IQp(SC`wWIJbjx!uhwl?&vB)@dL z-5Tyw*Kca-ZahUCwo7Yl#b@t8ta;|6ro|lJ*!p{!r6;Goa~HZ~npN~xI*eXpH}DSC z-RbQfo31XSGb=dc*FUIBbE^2*YH>!=qV@xd26s04R-Xlu7?4IbYW zJX_i^h9>Hxy?bn0wx+iZw>In)b*^8;npU;rOPFjlyLTY<$7%rMd<|)TG$Ko~VuP+n zdiDssXmsnSZ3^v$ar1YrjThnGv7>2*#^47S;QCjQc#}xF(WjMU22VnJRXYhZeUag> z7+cOGj^1MaU>y2avuPe7zqMswFfecLSLIc|jdd+5SmLmiqbt{n_wNFHLD%&R%c)Q1 zMmPgFHJhf#%@g!8!%?xWJEaj80N~d5oc(1rUpM2oZ!){(8?+2^lQ`c{CM&lqKb zK!>R5^sT!lF?`N=Ju0;Fv0<~22PUk;Dir7VMP^ab+Fb=~rU~y`(A|OZvgb9!+7r0C z_w81bQIJeG{HQ7{2WnH#h=dz!Dt$6LfrL0KNSeF@3cQvbs>j+T;g=lJ0+c=-l0qAC zA4+Y?U+F{_Ld)&xT@AI{L^2IpYt)@YPB#vmik@KPF)TF*??HW@Srxi1^!tP!VFI8Q zc2FsJ#@gqn(r205$eUp6M=)|7ci1dK-~hmPs^&2adsC2mR~|pK^xu(K$_*r5BbFv2 z>3UTG*Z~p1#xY48p=H{c%%oWYJrr*y$(f33rf;%KvzDrSPe+5;RB!)j|4f+ z1AEnGnppl;Am*5_x2t14seyG87i@PGO6uA*Z!vpzsh5Bmdel;@Y%Sh^GvseEl>+>= zWZQzlVic$Xs6aWX2`F+-1prFWAW*U>H3Hi}tXHcVWyJePC9*0eloA>qXaad4E70bw zK?q==uTJ$@7{4u7h1w|EgON(WERl%LRQ?qSmO$9Y2CB8>VaRU%>e@)EgJ(nQMSwiG z_hLc!sjRlk@^4RmAByv@h+Dj@+EzvrYq=ci>Z+mqV8`@R#tCioA=T1-8iDacx9K1yho(U zvD}t*9dllbYw;GwaFINL8@*4gcty3gVC&^==tmXGf5NJfW!%&Cthq;X)@(dUrQC&6 zDuMN_gnKLH*#xTC^sflL@J02X?yTm?$4vCDT-kV|N0V)|>^)9sC zKI2O>F7!A(tL7-RzZ6)`Br~&nS4AJheQ8t5knC~mOkAh86gEIZB)~cCnzkia6>}gt zuNkzvZCZ7{ySgF0Gg{KDw^OCO7eMFUfU)WE-dpZJya4@b-Mo@a7@)3V&%-xJp;}$f z?OheD7nX5^^ry;&W?YKiVUXSEYdo(frCSdm=0Q#k2{|ND%7Gc5W^XL2^{Pv!I|5vD zT`CmM9R(zks~iEvQbgS1jijDo*eci;DngvsUmR)yVxpsy$|Mq^n9gHqKPyvzvlaRE zu8_wDcN|oQ%f=8;G|pxVR!KIhuVR5P2q^0{62OmoLi{fAGQ}F))#Fno)N;{43+{68tdnhlH+P(*Dk9oliMJI(l(m z)fbTukS*npc6#HA^N$yNDe#wxPn)S(Lpy=AZ%m)%T`T!zi>^?MVaD-c>54Vqc{c7>w>@ndDcujGnk!!!GRpP!A_>KD%_|L+Q$4G&$ z;U9FU=C)qSTbbUiKQqki{wQfWoQdcBzPYbXhVMhwEY+cv21jFGDr?^jd|TnE8Lw<5 zjYs#F70cOcn%0jt)GVIV{;T|qxZ=N=A7UqckM-aVj_oD zZK~hr>0cx2dX|H$-!IvxMpnkqDwl~g^p4R!%hV2Os;g#aDmM5})^7{`(4HOC)kO0y z);Pxky=pt}3hS|~kUU?#9YGnd!u=5H?uwSBgJ+CarC5AH@yCbeO_xvmn%dDI{fC>u z@SHV-`0vGK%cuC7)fh&_qhEa2z+M#ns&&f=V~b=vvWp|& zed--F7ijOS@AVs2+jy+w{h?hAu9>20t|WI5u>2}Ze--#+TZjl*E9wF+m{2Nt*bAInvJ7> z#KkwL>?@K~q-c~&&)^x*eB3FjZQunGg?7r6n$$x+S&kR46{%@`X%v8xN2PX` zGHA>P-E8-$4Th0$1M$Z|Df1J`X1dwjLZ&z4Juy&UX&!uPU~FJlK(=-eCKrzQsPZrj zV*r|w9y>pUVXzNzGH%K3RBoYyYj)T+gy~-8Ewpo{#~&suo|j0|?$p}|@I6HUd3K$m z+3J?tn4goacUnvT0A|9vb*IP&Ojki^q+02a`7uX;eQD5X$p%;<%TNa|cjB#b#&=N} zWE~DWRsA=`_tW6am=%lS*>0@vA&TDw9-^`&)g!jB9(stFbI%o-q3Yk;<%a11OjLi{ zdUO$avoPK{$gdKQRMfRe8Z?EBU~p?PBYPahCf$M9&hVk}%J!h`{w=lCUwjCL(%jl8XJ%f5rFjR7{{UzG zPTx;!h$7Ah+{Ja%RE&M&P7mATQ&F~T?_-a0R%I{wDaJMFH)maO2SNSx*TbhKj#)`bV+U z?C%M2D!;HIlJ3=RmwHQp53PP2_?Ob)1L;s$ ze$yWaZuMxi_+Bz5YzF$#>{{p=bY`p`GVz7g&y@EPMh~rMYBxIEr5gI_k4p5p?tCRY z5ntMDWqx?94SP!d)<`a_7%Ftda}3eZ^lJ;d75hcV!5z(6lS0zVh+&Wu^{i`83Eod? zsAMb8QCBX!5q}&)TU(>NR$y%=iGOJr7HS(5O{RE;L=2}H?OuO#s(8CdeW!5(w5`4- z-rGd6-$KOt;;)!|sOezQyh8~yZ3K#**5g}(VD|^*9jh^ZAxA1_1ZKKRTlLm-{{WPX z`%~s&%8hi@;E^{zIqE9BR#umik&U4AtT?oX5(Q9BYoS|NQOC`u zN=t7BB3qcIn1vOw6V9@$`J{#IT5@VA(Uj^<0A^e0_V&eOwtNVSt znOJ1nJ-Dvrw6})Ql(yzQE1nQtpxJ|wKpb4wmoZ)Bv1T1jbjzmNUs^Aizd5MPSCZUq zVT^lMPaAB2DL@&0y3hwb{fRUoe$2Qp@@{;9IK_0yB$B4UFb`^u<4;KTv>den zS2nY4V;ggd%C?T?Nz811b6r$gZ00TO{{S%^DkwDOj$u2VN2O+HW6N!K69X?n#}%n) z?VY7Dfm+eJI3iET(_d<^VS}0g=Jg8+?w`v)aMWvK4Xh+=86E3#>URz0sN%EOA1#J+ zp41A*KGs%}p)P=Csff}a-9`moBj!8!_Nw1z+}nWQ_n<6QnrR|nsU|T~iE^1NcOKPR z=Gg8VTcs}ag)qnN_M*c(9}nu*+Ezgr4c4N(@#L$1Jcvk-rfZY?Lb(|j1X4y;U=mDx zr-}gg9V1w`y%EY-7xb>EtZoAW1$@^nqP8tNeNMwjP28c6IHweaW9SJL zQDmHTzL{?K1LeW*_*dp1{1l_ZiEE;GcT|WFjVVL*Dr@zk2eNyfI3!o+m;4l)Ot-oC zPp4k0jN4zu`4u(Sg!qw-e}w!rgsF!DsD0CcS_%}~sE^XA?ZCmWq^5YqQgXc0u)8|b zS#iZjhF+D>#43=iGg4=q_7x659Mr3fW2Hg@+Q^|WDe(|KVN^j1*sFwAYmi`s^Q6v7(@caa?LddONy<_1GGfCLC z8e}kp>9REy<#&Iy?}B1&kjS!qD<0$ar|^VoGPv9CT=uHXQ-av~F>JsgzRUv-+eKMd zkxAPZK9%y!pS7Qa7myBpD?01;w(x2w^8WzV9@M>r&3WVGePgNFTkBd~#-DKzaViub z`-=W`{{U%UgqrWde~4GMcQ)oL8@DpsIQxYUVf3%nYoFTpMu4u=Q(q{4)4vn6-;8=J zX$&j6)Dow@eXFw!r3Q1?X{#TZ^5o&iLMtvnb6qT!rYPDr9D+q=NpHLo2i>n`I~*or zvHYrV{B)|X^0qNjp$4c4TzP}1O6xuy_}5bK2Z^oqdj}~PU?ow}lf82c!Bgb#RG1S| z<8h{biun6PwfK#p+xVkGU}e}Hw)U@`;Ae_sYdm`-jO{fa!0(DuczX1BV_1_GH)jaP zqLaoyrF!4Q-v~)*B5RsrvE!XFMiKjA1*ZEevu550~~JxyJs)IIOAc)!ChfDzaT{6ph55?m9! zMo-;7_4N&;RwgkWhSIBr`Fdb>uao{Xd}@1XTR`yKffhWhk`99%tI&P~YTDKJhYq2v zD+t@}2K4o;CTMzBjeK3FcpE~v)bC^i%N!2;*T_B=vedpm`0wogCDhKHqQnaxc;I9x z_dHe??Hl9A@ehcT!?sQPi(~WP@K}F^dDn(@>(35Eg4N0q&PQC)8hRAvWA>Zjx5KZ2 ze+~55lhtutdIsMptOQFNd ztX>;oV>#UG!LHxJ_TOf;24&_-;;rJ3QPkI9=czU6)=-$(05As?+>waS5WknEOEMf` zYs@?$8_Rtq!Qh@N(0pSki%2oA@$p_wqv|J2m>lqG3R@k=h;%=(y4~3>2;_n5>t9~{ z2KbL}uW75{eNF!W(j#4~zm3b&74p3FjRxa zDr7hw!}~z|EV$8cTf`bvS+;&$0n)x#Q=UK175bIny?;yiui)>qUTt|`T3V;yh!7C(^zqj@_=OiZooA zNL+nu^$+2Wj~9hJ4GK94wk^zhbBfTxpC*3O9wPqQ@v7LyK1dfB`qv-f-8MTtIUY+7y~!uL{Mn}{Fq8s+XhL#VVXZmqRPr=?|5X2|u8LtfGBV{~Q=;BYI>?EFB- zQu7dOjg4{AO7gZ}oYPUfw*(AgvZW#NA4*$ZZiQTdf+(Ft@v{E;I#i9Wt-f#eMQ{xqu(3%-(mNXZd1HjeBUc-bYUedC1=;FHbiXTl ziit#|&jHOY>h86V0qQmmTF`mX{=b!QvcW74QdKHNM=3*UL|%vTpeJhU{5j$IZ|+s) zTt+#n70dn^@Z)MZk-;97(!p)1cxv@7Y~7KgJQX({$aBscK1Q%BPyKDGH*4b++~%vy$?#U?@s!St`t zPlO&blf>Q*{?WhUSh#mRIR3TCQlBg4iP27_^kjZK)_gti$HJF-=n9vTsaUW8C5?Vn z>X-LAzN2%f-9Gs)BrZwo&3nh~74Zf?7I>iPc2Z`~PHn4>g{$X)*cGJ}_Lw)&f0Cn| z)frS|6D!X{)56D=2Ws#KWh?~( zz%VN0V!40#No=F%?FseBrzeO6{J|=k?7d8E=+HVU)m8g_A~5$K0V6gg{c13#|dAtr}hr;L2hGwR8s!H z{ta$oR}}vMw4fhWk@)ZSpFv12PI_1C!~VhE6;qEb%~$^bh7a(sb#Y7kMgjF{ACh9| zdQtYER|Hq?uKPEoXDZ=STVPC7Q`viD#hC|E;)|$VtH-?yf z`;X3}`$7TrX&;m(>9fMq{@8Zl3|H#Y{=i-x1LcOZPJj3(&X>ts>4)HJE>GA71HxZPf$V7h(SZGoyC0azaUMQyze-=V zN9o7Xzf3>jfTQ2FZ)E=fzD+BBz)>gOzLW3^I{mN!xfEAMDZf z*c0qo@he=ec*ZF{(1dL#iu*_Y7=y;dj9m}==9@3!;jz-apH1K6|U5i9^> zbvMn7o-6GLe_`Jr$&fBk5$#aP`wx6ZL615zX!_g<_H6je%tOyZQu&c6>t9?;`xSgi zjkc?y6xRKUJ}7P9ACUQ~1EmkL<%o*B~6S?0omUFBF@= z{{Zz@(FgWX_`bXyC9_c<*-zsN_0k^|r`I4pS#~~s@mQVBqOjKlkas!jO1d#eKA^pZoOR;YZdYA0s;h zv83AFjcES>!YAUf{{S$nulw}h;Ya)Gvv{Ox{qaWUaLH_^&G~Xuo{&_$B@@V$)9f|NL^1-J4miw=i{{Z*R9!2o~ z0G3bx0DPK%Scq7V$AiTMPAUTx?`Yfdr73xiV?UKIZxLI_lWTUSa=of1S=XwOQI~N? zwn6eOGVzg2+Hp~DlNiMwV`CJ1Mcj5K5tGd()6$~znRur8#*b)%#N}{$bfqhS!0S+X z&C-uOy4JkNEK7nor(o0{Xf*!-KNPvphvld_sM>!@1oWdc1HnD1!C$pQ=TpAZ?N6Nn zF6Le-y!ECTmlT3kpa}*?6yR~iN9M;snmp41@k7xm!T>4V{rhpW6rOW_&Q$fW|w>>GPLe+qUsRK|JmuR2~BV|!T5ljdw zKm}4@Mo+CtkOvfuHuMyn_Z2_^si&HHfsQGm4rl>$x3wAf#YoCA?kS#8+rZ|47-=cH zTy>@7b*bh6`Kdw0A?#`SOi|1O3sP>S!us(^f%s9(0_0|wIpw-kxPT6|0mn@7M=%Sz zjEXp;Z>1c-9Xe9>r0GHFM=%SYdNc1yx7v&fIe=avq=8zf}r6311a{(gY z9%)}_`@B?GH1)K|IzR#u3TXahrmYP0Cf~oq_c{{VUMY+);hbx8COn6Pf7q=8xd}yrERJ`YOU;$UdUpHjlPwkaXdG$ zF5~5e>sWAI*h3-mmn^(c1;~ESY_6yHJ!?H@Gs+YuMtG-RT}5y}RUy3vMQe7Dp^8X| zCV)BxfkZzj49BHrE!Xyc$tvZISe8e(g&y4FJwd1G(8GLOU4Tn;pbl_Db*NnVzj04W z*16JWw?vT-nOccw6}7>I7pF>Omy?M+sYo%eY5=5*aF*d#JTq0aj(Jc-=Y^_XYrVmi z-A>Rt9+eHn)!a|}z5~z)Q!pVE#sjjBYc4xzt_Rv+eU3VctqaR*7->Fj_vPSww?-ucM@;~#}SbecGcgzXPN5?ucN=*mC=I%2D} z)U%H*hS0t0y{b(Q%;1nKT3F(m5hOx@ENR!V+Q7%}0a==pNpcqA6M%bqQ^UlHQTWel zr##+U`Azq6z!U*2T8_v}TQ?EKOE%U}j5hA+isxEiE`T40$1%_PC4KoRYC(YRG(O$_VuoCb%rsXvSe*uJSN)`$_bYo03C*6k8AySK<%! zs)LPh+aU~Vz3?I~k@xiw2JiDkn3ZT(^L^H0FRJoyNwild1u|Y5RHQoJwJD28^5eTz49jU_L|KGt{Qj;cvMt!5#eJGXz&O-b%> zJRUZ4__|-C$Rk%}3piN~`fRn#wh~OsE}&kpa+K4Z$AK0oH=!>BH7ZF?5`S&zy$%CdQf2y+gmYRfO(%c^RLY1EWw!^F9M{M`ivp{i4J8Exun5~ zf?rSn0Q^Rh03H3Rt`*EaMxzyTLsIef(sz|<4~`!+TNR6!A$unYv%g;7g7eW#m4z?H zeIey#xHD97X_R~FGtLBE_A*eP8sQ?mBI>;c(GN{e&YP%XlgvlO@ZMQ(i6h!AE$UGx zhnOjCj!eN{09eLAK+=}PC+5zOvHO}R_GtJ>z=(_XC2QRApi^&)P}pL3^b*!j6%ifX~Je~cYbf>Om0;9hrz7FTYFmP2sZics<;`I7 zvE|b@NR<;}6%7)!Ht)egLLDrti`84-wp5lgJf~Y_^$tUgd3WZAkrO<}%-= zy4fX*@}G@(ALyN0p-2tz zNvqQwVS2z3Hq>kK(aVlW3NKphWzZZ_Fj#u>p+>+rtjCc_pR`KKT~T<%Tl<~M8%Zsl$|kiXWj8s~ z>S~#f6Cv$tEilkBgpiZcfe|4+J5PYzpG5}+lpCZiLLc_PbV5xnso&V08Ii!)7wsGi?zk~yCjg8 z`3I2eVkKs}uT4|^F$f@W>|TZ&=Ez{%e#@9U(rbmNW`x~Rw)<#{+pRX}w@v)?(Q=h0 z7_j;vDu4z6ceVepHjAfw-yfhkdA5JXgP2`*TjNW7%y#U*OrSqZ`{cZqKJG>8PK^k7?x)d! z`L3nzLjhPNX4mRPv8Y-9Q^tAp?~A}@yTdy=`^l}UZ+B`9N#wCXeTzY~^UVj&sM)UZ zD_i}krCS+m$8x)NEgfdYO&jF~*R}!nD$*#aQ+GI`NLz<|f(!s{BF`F>#A?W;>L_qz zWM=fw)~F1@+|;2r_|SkbAA?0+=XHZ{k7oBN!bRI}9~Bg}Rgn%fWZ6otby>TU>6c&Y zf364?((mS@b8ReBLav_l>+>;CuS`E5iuNb!w9$Nf*}eKw5;aBWKHO9>tg}ug~GNH|6@k2w{gCI>yk1Rl%oJG-y z$y_tisRtO#IReaP{O-G`yE#TM)GMk9131N*c@nqUkRgFV?KN^%D_2|&FJ>qxons1sT$bIq&@d&SDG_jSO%litpx zhsicO>fekAjmx}soRPmwa4TR$CS6XhQx$nfGLO8zr`&q5u<`U*Zjjb@x5X_meXH4E z{RImzhY{7Z(vitx1=xm9fuJdP4Y{?JXQ9Ib`yDY4T)6Ww4~=!!Pg|qeOSYOD>go8e z&zb@=Uuu>Zjwx2;@aTYrN^c1z0P79WBqcqm@rRPG?s&k$5QT7xsSI2sx@!AD=C3hF zh+yI!W;5K}2JO}~IDSBj-7dV+yW$Q~83EI$qO#Q&_(q?yUc6U1zG>qq0k{%E#%8xZ znE($x8suGw3ZvIz!B1gk=(-O|jkA({NR04MJkMm3Tju+{#T{#e?FNEcLJ>|(tsZGpGDo% z3T{G#BJ=%3J#`#6B_S52FT39smBj7|5 zyTat3VCg8h9#d5Zpd^;5VD^cx!K?YLeA<#Bue~iyO`Si}SG-})T&rlCVp!Iv@5-Lf z1j{b4_wC(k9zjUzFp?zvAc>yn8qb_8lH7yP$M zT3C&;M-;QEv(pkO;LM};$NugoY;DBoBVN)_wBh-@$^5TRn<3%}qQ3J;zcX~97DH&@ zc&7#XG;4&l=z}ZwbBR2FgTtYgQH8s!Qw*JA?$3c19hl#)C2zM3UR=WOju+-JsD zmY)rH-j9iGp`cdwk6;A0PQRhWps!VR4P)kYG|0}2^)*^oXX+p23NBS`GJ4u9+XDzo zy1J64tMqC$&;S7?js)5Ckz1LelJST9sY-Y)7IPmfTpjep+WExPKxy$9jbF4b7!e$< zR>)e0XPPkwQylDz+jQ_MegnnI64APA+F?>-8XH&pQ4jzWviS|4>2OWazQh7?F65-d zW%Xwlw(I2DcXq!ee3?(uB>=4?m?mB#0!fHD(z7Em19_gs5_0-|*lY8GIVYL!yWH4^ zOHqs_S@KL;tR2-kkwfV(oUbe4BUd}5RMx4&_Ne_SK}-}IFDn@vmLsD{dM?#ydXuwJ zEW-gHLWtF9(Azp2nq~_(Ld}1VYV_N{yFT`y#=-PAL$3apOLhIzA1onogVDL(`*8|r zpIk-XorKz_zN}z03Jvlk1y<>qMeeI{&)D0nVNbn_WF#h=N9J*%;T!MvS@GT|wWAuO z*N4TWs%d{fX%RUm$2H6`FHpwiez+hbWW z89wNQ0rP2#Tm=+iAR6VcdUC6=JJo55q*Gk8iN=3=? zz@mJ{b)JnnkeAl-=b0Yc99V(0sw7-?<6M;7Bc|)kHMwmurt24;K z8faZ!4r{ZrakcoaNG!4?9k{ojeaT0qT~<8cyT<9i)PT;B-9}nDNE-Jn?#moHJ$~mO zadkd@a8V{Ha{N#HyxDP^Y%b!#H6m?WHswzGt;}5fCvdsb6(ouQHuvDsk!c#7BHiT> z6D2rli=X9Syxne5bQ|h0xEEZFO*J6;g$so9hJ42vh5gX=ShCdZ*q+BY>QS3HYC4Rk_ssE4&SzF0%wLj znBuydV7W}%O+?s&^DfJ&F7-iARd@7`x{Vb$mxG>_ZEWar3*xabQNnK0{_WkAV~UTq zq(|Zg$S)luekD236@uD2S~MecPI;M>Wn-j}{AV$UMHas)WQGZRYDkgtohDK)F59D8 z8S|Z$rOn!d`@$S|;jhqed^q}Pr56j7lo}llwsCB^q9yqHk?dWRot(iuN9^zp#9S!s zfd>%(Oxb1-qp#k|yBoipre_LbE>?~Zblz^GX_O80Cbg&dwIzPBfR+6^$p{|?FE3h2 zdMs3BzrREDCqRvb0=1-XUE{i?#F;0AD!MD=MmIRa(`9i8;|4?NwYHho!vgFHc1t{NRrFCNTL!FYg|lM)01KwJpG{W~oJQIX`ya95@fhUcyza zb#vvY7sIEum{IohhEk#xf2CtC@k8(i)La|NWA%N)BL96Lqw$u5$CFQHuDu+1_Jza= z8OhZ{Tbt(OqAa%Uz|j3F!3v+|6skP}P+g@8&VPq9+-*jF)|+PMR^{qUJrPjY%$Bcf z_9FfY{tDx*fU5cM(D{*(zsvw!GvjOCO5CVT8mYEeG;}1+Dq}z6j7YT-CMlh1XQpmX zgQ3uG9%HXOa6a1`te8*wT)~QcD{O}?8)#Q_H#&UUdA4S^DMo{}HmmEY)C^PcPS$V) zsl?%vAIY>xS__<=9KOS%yzFgNw>D>KS}CdSt1>-;tEDa1jQa&tkOaJG?gE$0C&sq! zOOpP~exx^SaGS9bN*3BaHm-354PcHcRrZu42rnsqJJxw|BdD`4s*e5Gz9)97#dB|E z`3=Sv$ln%f8EAW%5XCms1;2y;=7F%TK}15rQ z$}1DIaESB&!T-`CcWynY$1oWvH?AL(HMOYwXav8~YTFtj-LHUkB#L@7VvFOAY8DTu z{E5Gex!WaEO)3!6){Y}nT=BOyT=ydCiQgeTAC>;69$g4^Qc46FQRj5XzHy4#uC}9v z1?#n75?n-O(t1lFf8;f?5+ee={)IeA*OdvVICq~X#evwO)3l@9tUby8wPB86NxW#2 zP}}3r48Rs$#-S$lSgc-~*VC0N8$9?8!2hgO7PYO>7R_Q8x`a^TqRqM45v{lmj@=L9 zt>LK6Z?dpqa2aLeR{1C6oSXnt&BYFL)FEnN`eYbtM(07f!zNuLJ5k6Nim z5^>rHB11Y~i+?O$ql!MGE#8{tF1N8Te#pm|dK14;VKv9p4%U74$(T220I9dQa?mB< zp;z~A9;!etuCwacgb$Ttku_T5hYeF{9kj6XqKDTZt!cZwy)RvQh0)#uws~J+2q3| zt9|-h3BW|>OkHnQ<$V*Gwz}H_TjTVr)nbRbMI%i86dJqwHWHhr#)|XW0ZVQ!>D9DI zFLxMhvAlWzW27b#WtwZTTDEAw)O5QmvRo>YgF}38~D^j%18omTw% zhPOCcB|lH6R>pf0QbqT9STbIql*_g^Q@a~MyxVGw+9yM@qI-fBy>mVLZd?{dWx0bE z(hjMY6A|_Ry=lzMtA!+jD13rTjoNBCn-^6n-<3Y}9awEfziZq@tpeB?o2Uq}pv8xq zT^F5)kqwWKZ0L7;X;yb)A1buyGsj2zkSc2v zy{Wm#B6`fu*F;WbAx?Y@>IO$6Tm2~{u8E)^0XDI1+5LDFkThwyk5z=9O@)^O(vQ8@ zN9l(Ixf`%n3Pi!B;W;xxUAEQ`^ubfA`@2T_M-2%>lx!4xP|;jniJbVM^E|IAebE) z*&7D2-08o>8)d#5i)26_E_EwDXvp zbKla*lVJD7L9n3&g@18T+$Zucx5Q31y!Oa<7cVNfEnO}*^yAj*hi2d!hs_aB0@#MP z+65B{;5`@7&Eqc6*CaAIRO9LS?7d)bL=!rtnoy%yIzy2?$S8Gs_+|W3&*uTGx2{No zLVT!#lB8qfdiLPbtuQ}Cc^%KPaIZ*l^;xaRrwoBtS+R3-0X&Q--hO3UzVfP05W=2P zI@WnPMtlidcBLH&Hn!pMDLqSE!`a-?b6O*&(r-pwGnai9`Xp1P6F7*;s~Q*FB$q_H zJM0^MA^Dh;n%DLxkVxE#Zi>IjW~HquRo+BSsX-4TJ_gzf?jLgx9xA|#&5rJIU%iYz zhl{(R;KNPGu+qe3A`anznz}_w*^Y)L`1?_K7eI<-61DV>)Y;5 z@!*6`U`~YF6b1cTwnUn;s}*BHyL$8y)uV5@mrQCVw@Z%H!iW!jT3om2VpfjJ1&4j_ z%ErKfBi37N_dfuisjKdblyZag6z*f1apUrVWJ;lg15thrI4^4La{z7Q^2k^gc|Ecu z%3@~%@$ZGlS$Aa&I8^bw&s<|IuAO~@ZxnM7Urkn_RF6r% zTSBB4^?)v-U}L!ruhKJ8neT~82k`>?y$X-sWpyFn*Jd*=cr&z^|62 zzrQF3L)v8xOCpp~&|z;E4zpj}N`FHI8(>cKe!oVa=)V}S+c~HgYi6P{e9tS9YhqPC zg;+#YUxjyOFR&Yza`v1XY;p9iW*>z%7H!Xw=eLQ)78dVk1PYc3S`dv$oMD1?cN;^_ zennYoBPShm9k7jVUM^kr4ofZzKgP)`WS=AbE_bD`^xT#uB7N5f?cn3LU|sc_a*T;^ zbn)o;ZygB+w&M=boj6U4&1PJ(cQ84}O&6Pr6rY?j@8ZV!_i;k9%i>+Kv48|SS*1^3 zHRW?CKsQ6>1W6pIc6FO31X zouJv8eHk27i_=Z(ltlPpOB1ZPY`2Qbk;gtsj1DDhQqkeX9ZT} zJee(Ka4{U4#kv)u7!Wpd$H*s>YQO1}U} z%A?xRKi+6s z>m1kZLOvJ$MYMx1ebV76@={~*s4xL=m>ITJp%A}mna_tq1@Id!W>r|jlL-$vNAt7U zDn21dPa8X7{shEo&N*N}4r=HjBb-LH>6Bd7{t32qVHO;Mq@13l*k-%Tt5u2fWe`;NL9YKo8Wq z#_zvI$H2``S;ze#BPq2r*A0u^ph!Uk6*KR0FTvz9mn(cv8TdMAYkZUz2pvL|Ig?wP zlE)H0m`K95V3g@%!Vy-!g-+aV1TZL%$&>#i`eHMR59eI(^RrIJTvl9ZOW4mp%v>Wp z%4n^(pM#~D1WV|zk3x_6!pz-x$83Aw>#9Ph2z5N`Wa4kP31_kouyXTwVGpzu)$w-=i%c`0L!gIOgOS1Icmx_^B zR;A-pP4m_72=7K2X{6G<2EeVU`^)^BNG4-biHx3vuB9W&Tt=S$u#hEPS?WT z&3_h>l;TCUJ5LvX11y>9iN>O}W*M?8Wxl z8B#h8G^3N^fM5iwXnT}iTzdULS?nM;+xrvFYpo|FuN>|4=E+zaxv#f5vv)8L)!%Pl zxz{gAe~MPW-S13z)YVI-8FBrgJ}_4ju;XlRe1VYM z^!{XkPDflii%+IMADrq}sOKIFCdZHcf|0x<^6fZ{WN6tgqpx^#Y~?$X-_Rtf-&l?* zv0vG4tisnzE`Qa-;Cf!B9p|<+O0&w09a^foQ&_94?b=Xte{yFxeB%Dss!wZbw))d! z+!E3X&PK9k`--acsi<%UZr$OZ5dd>_R+>mb% zgOD_{nfi1}Q7pM1Lg>SgcUiJoM-O##f$-4fudC_jnECSY+?mfsgMBShF%_L+F5?*o z$ru;UZn`sj%oDU2pXLC z3^AWYK5aw@r_2bF`M?jibP7ZkF8xK)t+7xet>-nlm&yLV7T@-xB}V`%SVo1JUX|L* zc|(yv6@Mua*)k!>BCWtOk{j+`SoyQEedb#(siX<5$e!-%4lYkuF{N$76isX4jc~FX zO5)cF;g--)NdrfS6z0N%B2d~iG5n;&+`o5Uin%6neR0#sfKGJmj_bbsL$Cc(yelXy zj5d4@-GBo!b4d5pjW$NXoGqut-QI=|cU~;bKwEfjqB;`02wY zAqV!E69(G77%D9@CQF|o@Wm#EUx>e4k4;ZD>6?pwDJ+&d$2h`Ih%luPw608LbD;8} z{XE*Tpv?MuoUDFx)1%hs7_8@nGP9P%Tr!(biHO_X6$0UbD}9#CuIojf-I3F74#yuJ z<`k;L5Zu%UwzRPDOkwlGgG{E9kRJY~uX~)sy%O7=^l?-LgGq7}rDlDE8CaY}z(;{J= z&TFg02MqK<<_cnwjv3=)>^d}dpCU3S5Q99OP?md1B0^ON&?P@-{> z?7mJd9S)Dz1&iAzS6KR}*Qxw@6IRvm%{gTRr|!D6U9G6m*VX&4Ec&8Us=uN;5p9D% ze+Wh?(Z!LW6Ly+xG1W~j1<6dBzW2GW;>)vcN)z~$@1t#EV`F2Bofu@e+{R=+mHeZ+ z|87DeEvDl#G@-=A@DT_)y}m)c0~2h$buN&73%#x3qVJArPaLszW7qPg{|5**&7?{_ zuw|@uvk9P@56}d2t|mY%p|4+b3ty zCN=xT8c_~Qj{EDjGb`oyfQhdJp3b6 zeeqw`goLc^nfRi(X7pbKm3n0m{E6UZsz#l*Dk)o8=YslDbfJ^2=EI?hDy7*A?biJG zSMV8^zg%*F-OpiMfarpr9_GzV)AGA_Pq1RdZ}L07FQxGMK%6S(@^kI*XPL1_j}_Na zy%0?lp$2uBm$Z^f%kC=w9i9gI9o&en4XLn;|E4yVKN@J9CWd!GqK+*ZX?MSghuJ`h zL}e&6Iz;*@jqOQuhtceWY`^MHbJVZgclk))4)z@LN;ZkUixD;dy!_n`xOoA30Y zmmZ5(ZBI?0PB0b@(E6MG=^F385&dJ|?w|K@586>Z(xR|LC_m*FV;hfLM~Fm#$!`pY z`d*2zQIthDUZspdwi)o{=ef)R{{WG__)DgD4s~Xlj?TtW0gP`IerA}Mal*^Yn z9>N0xDup6^jN3D{O9 zpxt_%?TH|m<3X+&Z7YAu6B-I|$9kpv8dAH&L8&)v)`tP!RFkP_#_#8;M(%@LP6keW z%ae;%#@;IY{@GPWntw);PT>H}8uHzyw#_{|1MLMZ$Nh&T>3ZE_#|~Bg)7+6}#xK4Z zP#zU|3=o`6zT(eI@AcY!Z5v`6CP7?Qb36jV;^|5M0A*N86!ArIHNcNF6^~c+Q5>#t zCfpEMBk(N~RGRLts4)%Nx6;D3!XHSvTy0~g?myHrj|!hFu}1td@vMfI+?q*@Ji>I4 z35W`%jU~egLA^XRHt{2T%)#t|QRGpzqYjZ)oZrVv3vaHC+y8)1{ZQ7J!ftOomCBt$ z8*5rpQ0iY)>&LLVzv^6Cmx0*xCY*BCi~q=7c6!6MS`p>YnE>2}qP$u+tzPcK)U8zV z<=5qxubO{t%l=42yMFjE=Qvmfx+f1?tS+bzk_uu-{ffyI{RBQx9)T>H1Y-S8$ci8} zcM7<4eARs{!3wJ}U$UD$pO_Eo+j`)=^$dC?ukuq^qr0OQv50F^q=vFW@Nw;586Mp| zZ}4>O)wMAosOFm&fk#yjb@i{_`{W}1!sr{3_U4(y?u)u}x|6x7dGjOZJ zHy^?k(C+feTwqx88x@Sc`GSnjM1~NZ{H=}Z(7o7x#Kl)5OUYHu?%-TJlA`3=b)Wns zq+1%!2DSND&`^C{U$@EL4CTIOxZn7)K<5#$2Y=n9`UmmE5&xkV9zUt}4qZX|fS2f6 zQ-;N&Us%l7e};6~1RXK++=^LoL--G(U*t#Au74Y$w(F8QjMrlrcP(5XS3!m&-zE5I zXTJJ>3LM0uQ*E8ToT%a!;s3MQvRU(X!tl59&1dmb&WSsl%lPkaNF&sUe=D%`D2ey8 z6|ufuYmN>snD$7S;wgKtU-S#E#d)bl8(az^fO@obU2@5jB*^S*6tD=Ahe^V;6&9wQ zFx-3s6Y6&Dl)6T_i~@>W$sWpnepS(?z9KP>V`UeX&9iYBcGg?_>JU{`H%HRpxKBLe zcU2KFYg@ITRIB{VWQqi5?ymmG%wKv(Z5Iscio>9736iAw9(`=@&ZY*ADc)o;T~m!V z0%KUm>Ml+&r}qD5E;($72*uRW1Vl(SGEc6G z##zzd+2>_ObR|ih72;5ct8#T?k2+P5)IML^Dl1MZG*t}5hHz=-AfPoMM5ZPqtXBto z^h%mU`mud^p!u77#68n$jN`*bX~42GnAP?qp+)1y&}vhgwf@>?y+ySK=P!BL<-7ey zun3S{=w0oY;#;|(uIbqvyNdRxsdG->WGU{+;g{-da{MZtH-se-TSHY#+@@rsoU(wm zR`qbA3`Eb70NseeaKvbz?O((OhuVVmU%e9wbp#o4gQh$aG)+pv2$Xi&nIC!u0I$@XcAexG98p zC}Rb6gX9AHeNh+YT12y-pGp4iU23@jRGD^^1X)%QCxFh`fT{ppB~*fw zfX|NwrCt=2EoW-Xw7h;h*LjeH#cnHBAB)*_%U$!#J1j8maBI}wi-4`ok0;88TCY8O znj=G(JSDLg6JIhXD_D zqkV|2fUY>#-;y>XH&z3S*m_souraDTdG(r7YooQ8%JyApc?_*}fG4fMJF^M2gdcsP z?5nsDAGmFsaD^qd1!LXRAU%fe>7vZJ!jeOR(Vzj+39m|JAKw}-R{VuOo=0*z(v8Dj z;-^7Oj13JFc8+f9!ZU>B+xw6y57g`8UIm(fvw7)tCr<%vk8!Bj+j1f#3(B$E?6DYW zjaq>lj_v;L9wGrWH=YrZPqnl#8&J4HFYEQS2-~t56p`hc8p`L@4hMx9KXP~j_`TY* z(JMp{q#>}%3GB;$BR*z*bEiDz`Ulwgmi%HX9^m)b0KKjo=yFWR{j9mp0c)05qm)M> zXoof9%klJT4W06zdM;899{^_VHl+NoyY`grp8~D8HZ3IQ+A9jPFoi|}X!tJq4x;eA z*OZ)p1BXSLAL2|*j%FW)OVc2>ST#kEONM&7qvZgaW>XU1QO@67_jSXeFPe{6RImtb z&HK0NSEH$fFF*eQdQ{(XK0#X(z>*;|zx>8+r1DA#rz){+ZvsR>4rf2*F1=!G|kD7C?MrY-SNc+XxG>K4aEU?Xxz$PM7>G+n_GJM80KJk zlY~w!rN7qK285LAqm#FDQc;Q-r!&1+8C5*}JUQ2zyDWAhv;Zmha8xP?H{sncU1-sJ zM5^Bs=$sOg@9DiBL_p>mRqtl|a&#zL4XfTZ@Dt2*{j~~=wi$jm+UNmYsEj9bdENy7 z0j4^!2K&D5y*0Yc2l^=Q0?z_AK%{>80nPqe`MzFx`3wq68BGxP@zW6nw>SQBEW7q+ z?f&b44I_$kTDSzC)wZ`rL0%5hh!fSna^Wx5ln%8iCAq@0MNkA)<)YtRPS!2R7?qAON90eXaD|FcGgd+09;{}E)csRrmnOXzeSsj@It}_nu!jR( zhQ3e4oCzibaWuHb&@m00ygg@y~0GA%R=c# zIj{qG{Y7jzkdOzuW1&30XrU)jXY-G=qA)8?J>!3^8W@6JMLwcz%qKiZdK14D31Xf= zMey#bXd#i;U#J7NNd9XTJcqZGFqDTGg0+zh>yg&O-dwm9g}z=s>n#nhD%YD1>4QQ zz3-3I(7er_C6Fcs`N&~iDj9^Z+1T^0%SU~9%yi6F^n z6pxpI64_q)2qiq3LKoAz1<pI4@z1>?YSirh1E7o-$M7e#E@+f?EL@KMX%1oG z`n$!Z1Zw4t9ADQMGy-&>Py@8JdVcC>snYXGzK%erA<}8A-Y1v0~k1 zBc|NaA=PiY^QZcI978r@vsw0YFX*Za1C-&7?=e0j+)GwV+#n~?zP5cwTWh*u&vN)& zGyXBbYiWz(9{?as#K%@58n{bSKJ_B-${F~}M(a#ulVBc;5X7e+#4NRze?TO9oF*jN ztfT{-*?G@3n+Evrf?Wb;cF$xJ@jcW4aU}aKoWv&TphzR-t)A-`)^>&#`aP30CELYMr@|biN}*&<&YF~h_j$N z^h4U7x0dlmy7xc8cP;y!i=ykw0~-vb;%VUa3l&PeEF%gtn zQr}Y?Mxh_f39noz1F||@r{WYb#+q-5lSdXaB9lL*gFj-mQ0k=nGE!1*2Mp{WSv@5y z+>U+6aN(o8R_+T=8Xx7~rUqxe)U%!eyj_}O9imfoIfWRXk3=Dy!Wc0BY2Dy;e_d9P zkj)<$lH>N#SXi)$`MuBD7I5vRfJXTjT5X$8cE(fde%ZM@Dg;OPT^97+-1U(@w&8UC zbLJH61X#gfVWWc2{&4}}W6l*#c9tVbbiFT=Z;a1dq7WPrUUQg3*ul%-WNM|P{2yQs zEKKrV+*XZ);Mov{KlngQARsBaN^~Kbq@F3s$fvoL&sR{Nvz15j{=43rO#e$uYS<*>&2WVsLvJpu z2s^XY-ZY}$8u`-L2I7lfB+>z}1-<$CuPCh5-~{Y;|B3!dh7t_@(fIK#QkYHh!8GpX zx9vklE%7dKpInz+t`!^V*kXm*dT(jM$z`AET&#FWAwUFFi3=SwCN_b28%)F#e4sx{ znxx32`cimV*;3i+(AsvH`>zSF5#Gu(q(c%&^byXX+?Nbq3}SN z6Zr)iF$nCBrbJ&E^8lXlw{8sHkPg&Ff7f_KX2SSU`sy7;jH>Ll{C*hFND+PyKd{Mo zvB)L>U+R;$>W_Q)U%HQq!RlmYXGO2fy*-BS2H8(} zVuD1@vjW2d6_Tubk+a_1I8*-t+^|kHcZLGqTMmMTrC*9(ncf1&g{uQUUGDY~58bw= zIko=-l)}uI^1FG&tfpFv4)D)U_E3U1F2!9Dl=dx%Ouer?<(@|IHA9##qSPW=(OV*v zAP{6E_Sftw>mMM@ak%`;k^}6i#vtpJx#~A)m*4io8gzs2QTra0hvkPsa`}Rf0tJW+ zmMdQ8?Y%8IBu#Dx_M<$izLgwOYKdell>sNcTQUMKVI8M5T@g6}8NWbw_KX*^{O})r zsW(>%$Np=b8-V5~VA5>UTJ+yhGj#D5t4aoHqu5%=&nfet8bJ}QoKfsJ_RWL01ZWE-NDSsQpX0QVt~-)rH`jwk{uS96 z+S7#YG@qtc;oc9zy|HjWKltt;4SE}IK+58W{sC&FAxT(O+)vlGQKXr%GRJ-S8GYt; zVWY4qk2@~t7>#I6+F)D9G_tCk)OMZlc{v#W@Qsy7W2kb<{ zDL;hA`ttC5^dQQsSnWS~5yE7TM1zF&AR7{Mk4r2!fYrHSO*2UDiimJh=JY2_Iu;1) zuvXxgCO^!_BJ_(iv3BFfcaQm2^6PQ79=1|8! z`)5*NRYr?6hn`hK&A@wn!#pp~^rIr1B72&2kG2QxfveVQfWUU!XRowDm@oq!(O2kK zV7L`uh#)Jbd27NA!Yd|NeB>mxg1!8Q)1-!&0l_+LNGN+sJlpZzyK%)|d$ z2J+@=?w+H=p4UGX4j)uS9=yZhuID^oL)iNMtiu9R?Z+<8uUG$=q{%cf=Ln06 zlxRajh*maUmyeCF@+Q;#`nE(;0wvq>nkWY|j)gr^fCUMp8iCgHjCRAR%sDZfHLxMhS|!UHWg0;~KMF5!1P0sVuVaV!XYmk$~y8SG@B9vZn;j zXVWZ>S3GdP`wM7H#7eGg)n37% zGzxN&d9Aj2I!U|~%_4&v+cPdVzP>sQ+v#2zPk2k8sKN~#5Qu;$SCSU_I~^_D1Aw?( z1pZrjcH6pm+dQ9TvUgA;`Xm;brx*Me)uVAd`=G`}wnE{-t^q5>c1i%V^Z8gl486-n zsB$JQ248I~SmPphTPJLZb5lU$=h^hqlQ>$?JaTD);OY(gtR}Dy(vXQe#;9JRSh2~X zZ};t!?I&*3X2isHwIc+hEkCd`&k)Ru^ADh0j}&@o2C6q-EsEZ`I1Q4i^)~hG_Z#gu z`sEV5(CgDsVQb8>Y(c~vIhj2GWLVbEf;7!>WXK!S;imr9;K_S_6#IB6>aFp>mzUx4HLI zTVeq+$+Re;qBuIBmY&gDD?zJCZ&g!%*VYIX%ejm{#m$j@*Mu8o?(EX|2`ZcsTj#kY?<|uRbqYcs);F!; z@mRQSWiR{7?VHCEyHAxwPovu)I#QMxcOnYQpWD>*CQrF0Up(^RdE?*ZxjLc9rHXJB z-kHBtfkE}`EhyYw;R6>!wvrqe!|+V_MR1~|^1jyg*C=#aa@~hd&as#+mi)9{Z3%l7 zZh!F<`t!O(aljz@)f11W2wj?8wr1! zyDq^1lrZQF8ID;dV1B8si7PK>i@ADU=_B)>0jMTCX_YRn_?=Z-iF((vRY%9|+<0NA z*rlauR_JYJ`$w@4YFuCfcfTKT*qn2~go$82o>>IUUw}7?L57Tt1cG+A-?N@=<1Cpm zY7)W*W(=U*UfNGpx=2I!GsqS(iFRb)U#m1~SLcTXdr3isGW}Az#wU)Gg)OZ)Z4$zc zK7bs*^2@ojp4|dLe$VWYj*Jz#eESwy)E#%8(-Yk^Kp^ixr0^YB&m=~B(C9kU>**Fx|zYQC6 zV-}VsXhz{TIVpZ0yfrvOoaQGmH4J~P$>RV5dg)+3hKgN}8jcoyRs}wjU(P!9156gQ z5B_~$b?Sn;~ z20Mr>U{^YzYnA4Hsacj@D`jS~2P?!(nsu08%A1#?q$9(0&LyHLYtMigdO`MuT{+irX>?+#E3Mq}`#>z48av)z)sDXYU;!r1!Lv zP`}5Rsiz0hi88tKZ4=w5%Z3_?#zu?`NQ|xgmO4hSocq@_|qTy`FTXK|BEUb3z zY%rX~eqycaEqJI2CdIhgc5vd)M}Ht{o$ZJW2hOdpu_g#yi2?<-*l|+BZ!R?r^+wk} zWYL0xzIHiY?23yAO^rCpQ6;T;!0{fb7zzX0P+$p@&9}zoapqr)#YBl50%k~)#y@Q_ z>s-d}y=UfRfj`sFpa+TkXsH$iTfeR)llE966y{)y;!)v%8hXd@a=LDNf6XlJ;KIy0 zMN>K+O?}(>7{3W;x0lQ}eN8J3z^5}Lji%JPZJA|xt*cu?O`0{AAcf*;ufM0FI1{W` zepPnDO2^ee^)Xg>-lqmo&4w;moJk;5Q`MGyGssTCU|2kovo0Pqeg+ojH3UQ4WPeNJrU#giaGdey)LU$q)RPFmby*mfHd8`RMrhw z7!|2Y1<`X7(z?@m+_7P2xt!>U(PfjCIkO~3ZSvBv{p&IK03E5)A>bYkI6BK>Iz_p2 zs>^pfehAuRCwqR@mM!ZiefwzjlmINMqe;`HHJm#a{h$>?UZAP|qe}ZhZL8R+@bb&K z#@@tmt+0uvGRQD0rd&`3c{x#M0BbIcPV2oE)W+segyx<%cfoMRjnGB8#c|3kGGLDM zJ7@m;F5e0|7rbNi5m-=--=Dmx!_2w*cpY}d&NWRe(D(6gT%shhCAy$ta%`dzi$>&Z zsq^vIs=B3`RT+sz7k`$_wSCJB^HxN@HdvVG@=-h;81Q!Dr_Dl`o`z}B>0h?kS;XU9 zZxduGoD%MoM)C`)AYYHLtb!D&B|t=K>_skVJ5f2rkJ=sltmR_!4i_;=)E{_H!q)K( zviRd;GyLaUg#chSy-|2RHcD9RsvU{I3~hg-m7~Lo<(zb9Y%(=CJ|u|NqUTpb9GBMR zK~D}>Tx?27l%2io%Z%=-Uij8h|FF0l+L(pp@Y>WIqmd-M$t*-6Dp+KQ%OB-B@ zQ{0P7TL@Czy*LDS_X5R>Tan_HUf%waptNF`e)d*0Z2TB?!sc`RpI&8s5= zK0}oNoT^xQ?RAKenx!qcp>`wt9UzK_wT9IZ_-)@#EDX0ES-F4k(A8;ieGM6h!E+Tk zH$m^v6pkDm3eM&Ffulc&KZeQ!bODiPKeyw>T# zzJ6MRbhY8Ua>Lr+zKK6RJT^rRBa3}X)k{8K+-vPUkJp>PKA>pNq5lNulduiHp_Hse zl^)Ke4i@89eOiviemYv$m3D0IaulAJZh|-C;%Di%(tRxGw%f$lmYZJ%MRX+E-G2%J zc3N~4`Tv%~)3c&KMn1K9%Sdq&>>)O*1>X31VgVG?%fWf8L1_TcDc0VrAbJJ zBn0Pyh9dPMw=_AjRc93X-*+ls1EZ5K4!?|5leY2ui><|B zbv^HD)aELemow?)=mIsO0Skz!!z5GJ5pGd!%hf_VJO@g}xLHcBhk{ry0n^qzVURLf zK5m1(Bh}YJY&dvRl8sm*AOL$S}iJ#gz>|2cydJ<>M6#*06()#OrmXM9Lt`DIli=dea3_43bLu+T${ zgAz@|YAF&bkz%=U-hfT1^P7;}pwj*>FxAyauy6DAVxMq6AZN#f8X@6URU`Y z=ydL|;bPePOnL|h0e7HhtkIJJm!Q8chI4@QLIA-4B29Xn~K)n^m z5is8kMtzl9267@8=lX@hZ24cnthqm~vlUO0t;ZS}`4_orIk+J|h39Jhd_n?dXK1aMz68{k z6-^h!8));nooGR8&g$w-F;ycr^-LdFMBkmVyx4k5VoRYvo*}7KIDsL~?>Fl$8xR-Y zSpu~LCZ8&Vj%pSzc%lKrZ;G3v3WK`x?908}9wvL$3CN=8MH60R3Kl-)ai341!i0Y3 zlF}wBG@#^euBc%;8(Rn{hA&aFYuZgPD;pqj{3imBGGxGvKD_U$uP+M)Ow}EkhF30jU{O7O)fC|-vXnaL*gLoo?{84i`>oE>P< zH?INkxUVwqqZ;;T!U0ZE9FQQ74*dO3K2BVNOl-ft#|+}ddhX>zC`9#omeBp%VQ2{a zP@h$g?r)xzBsZQ7iH~ux+|;~^j49xQ7{dEOM-;Pow^+ilN$auf#pQtqFI$fn8_g8- zQ&(?lIz)!Wj{m%Hn;=+=DZ)hXW8&G76tNT3Nx-4uloriSMP;ftL@VWb)aH+ulhYdy zRRY$6q2_2hCT|zCFV7nBbbbPkzq2HvlZy~KlEQ1G zTPZ^P{P{K?_~YY0&Ygr+G40Bgo^R(ap(}3c21whvzf2c(ATR(@I?TX&eYhfmu8UpQzM*eAHwdb*g%u{V_&JM z^{4*he*jbvOZt$Nq|kuzWzFYzKOxPr5D^Wzg^bg_h(7iW>Hy0xKOaYMt{lAZ z5EDP^4QVN7Mg!>&HM=(=Y`zrY9_V@z85y+?EQSPZLFbY7&-A2kj94={oixH(&M-6-){ z?j%$OU^vai0SU8go;j}{;B&fpwTsBc*4pN2ab{B%m$v^8;F1^(_{IyL`}2!nmf^;Z z;yc@gW&#A+dqL-a1@0SukZ+%5dJzqX(6toYTyL1(*UY+FT@Lj;f*2VSY2sR~)kE15 z6%|{uL#>{c6{V;IWBgo1G8G=fLUgK++sDb$_|nAzP|wYOcHX`4jJtqJ6}d((w5+`} z6!bIC@f~q<^Bv0U4S%1s`Mgk6$`W~56`(A4ykyVpIMh%FvM$Akq>H;q5q7knn?7*n zuJMr4)vh$qt}IF)Ie zCWpz>%Udyf9!5o~{{V?`6$BvuhB>El;iinx+RJy1mAvvWSsXuAjMpnGP@|VCk7)Zw zjK8?`Q~e^=_$~}v1mEs{!?^@b?+Ydxc3)>wuww!&?Gl$2eJHsBS_zU05%m>tS~?Gm~sMKtGAA=6&nmgSilhp%G{Y`=Y&$t0WWBpm67T z_`!V_0s0iSdy)lMj9+1=y?_dP{uTd_6@;`-A9cwXEOR>fT1(pCz_vVVNAvnA{q;c0 zPgI19o>w_XF(R7pLf|t)d~;C7Hi_w|8#48u@@H0u5}D?GiV+4pv-%gsX|)cHQ&y6Q zDY$!%?D_pEtb^UCB7K4X4`G_bjqd?$!9hdGAp^rJACIkaG@19^TG(7&*2>lzn8oEP9!^phBc-2+H?J&3J#n@;s+knqc0Q9I z6fa-jY1Dh~BZH~L+aNPm`%=8L#i2I(Oo{Ut+F-p^nU}lY%52RMp~Ski2!l4jXD^IF z^p&1gUk&#Rh(n>@;usmqJHL{ABz4CPHFwd18*w?rey;k3GKV? z3W#x}OxV$DBnOU6qA>*bv`OV-+h4UDw0I^tx^zP0Mb~QeU}Zk^#jbv)jf5CtIBnL> zN8o`WUF+Bh0P};+2`9?d&x-A^m)i3}DJmCkg`9;G@^r1s>}$7jmE!C4D3**frxO~^ zedBm4gRv$XIsvWZ_gY{N47@qtJx3*z!T@3ZTnE>QC6Fm zpV(Zqpnq6|{R}!uo+2{%qa&w1bEx8vmp9K^!?Hw&rI^{%Q!Q=G-Tx*@T^iA| z>dT}HYy|%SMv`2z09z-yy9R1bHiAb7N)h)%UBiRFHr0h891@!wi?g)Lu|h&nH_b`r z2dOlt6nP}<#cbgd)O#mH&g4YvN#WY>?azlW&*G^fMVqOm;HcF&$5F@a*rlg6eZamy z)mF?CtzzG*VbBUHEIP8CWnU!y7_LtH^HgZFUA?&`ZBq4%Yj;_BfkDO_hMZ3)f9*a@ z#_-2!C$y}J`VCvkt9=JoD?!T@sG0LqR6NB*iA1HF#<=|U4>Li%JFMK z5AZJx8_Iq-)l`o*EtC_O2$CZ{LT>*;xQZL`47DB(Ar>%Y9#<@yPN>pqY1Fx_2W_ro zU4%m0Xu&B3$DW93v$PDt5Cgum9b+R@g&P=(?74XqW?&1%;VRA@86%HZES5z!+ilN+ z{y2P^)&CD5o$kvep%c{AUJ~l=J+&|xxCrA zk9MrDR4kV|(}T`@j*a)Gp1pR8d!#A$4pZ@-W7H%4#!bbx!$suJaz+?lXbXwTBBA*+ zqoc{jb~wY`tHBXO-3hOW-{2|hfJ`eEDTp?mqRAKPcO?g5$*~Y!G>)Zg%XwjHU3mRc4a~IW^TM z{LukDWcnPkgoc;pNG)LX)2oQG%jRr9S;1+?iDy1BYsX&$DkFZg=-@3qqYaI8EC7)X zm6v-2a4932h-CBl@LZI5m1RF5rP4g_2K!vJ;qMa-W$ajw3_YOD91>K5qj44G=~VY~ zo_XKWIT-G9$(D{26pA``9NZtU^$nujIts$H)%ZsRyN|qTe@M2R7>N9G8AX*;f@Xgu z8^(=iZU!ib3$8oB8~^#bm%Jn>#{s`L`61Xh*`DS< zwTNMP;?uiVuCy}u3T0pB79!2ZNoz!oW`hW_vEvy3Nwz3LY(8z;yr1!)N>X{Ghnp|y z9n9a?gLnkbJT_ZiJu+XHMjy+EWelJ*1q%o~(NW>b#;^7%m30ORWEcItaobNa+8g?! z4r+6>%cW}Vm{uG9571vj={qNwy+sPUeVOM)hD2aRW4M0hbOiR~x9p({ppw$%X30MP zdBakeCv61%U1>Y-E%++-5(v`jm|dTu#-^ibrQ8hpWf>U_g~^`tpQQ)l+e3@}ptNZ| zcuq8@^P)w6r%MjvS`>nO+Z3ijvHNzuE&i(|dF(Q7U9BpcT)?H_Yn$nt4@XFZTg5>Z zbWYLdb^jV^b%DWGyPFH9xIhzWEdgAgl7>MI}fGVHz=TTNAvdTT+ zRBKmG-cE@QBC#cIlvXN)V?ajNMr5z0g~)o{(z7IfJv@)c`pxKUZjuI0{;DS&LfFFD z$`U_uN*&v&0ZSVqK0KDqEGd`R>FQW9j{JnJURP2*%_LBReo= zqgab~wNtX}IB!5K^JokNU(rJKX%JJ@2}H8B!4=rmj5KyO!MJmuikK*XTF8PH=@_JR$U4%t zf??VwPjcgGYEe_7kV9WnoQ}%uW%o{E=YDjxWhMA}%eBvdx*%Q^@z+_!o1Vw3=s~9Y zgQmv$6;yk==UMu#33`IG5mjW2yJDJz^>OEkK6WDXBvl-1M~zJmbdra0IqJxs#aX7= zE%NM9;%*@Pa>hOyu&pSU7>=iF4VQnPB@X3_K1`Q|%XxAbM9RVCo`W)G^su+{h~o#CAKyXGQ=HdD1Uq^zr6516pUPGFH=r}G87q0n{KhP1qn5AfxT z-{0}#;ad3#%nuPcojVqx!shC3SsK=4v{FL79?~3g$ZnLfo&r4B8XG@jNMN{s@g7;a zBfyH}-5M6V*OB|AbYV_ficSAaE@c*wBAekBQD(ec;rbEX2(3ZSgiF1ZmF|2V4sf-i zVex6|1itH0_#-O?{-=)V!P;H?m3XlR2M+>pQP(SH;4;;kBcqqmGAd3GSi?S=vB=-8 zsorMwEU-qE#7tyzw|5AciW^U#x`gBnY%1rx(i0U*6=xuUA1S90AOf3utf-%E8?Y3XrFSfjb<6veB(^FER$ zPyWJyUc#yakJpv62?58i%HnC=R`L>mVQ|kc<{NqhohEk$vV|O7`LV2xkP0gYp_@?o ze}0O1l&pwioXF^AJ^$q#P37%IQfF zlOxFe-1O&(t%P(n2_#nYl(6^qLH0%kZ*s_-KGwZL?Y7{HSbR|1{CV|40@ZV8vvyIk z@!w>2nYu5Q^3{=#4iAjpjoo}g2CtanB=%*51gh-*WS$RFzp>sN7K|cRHi$-1@P_>s z3gn6wJ7TR+>0GA-^@Rh&E_MtC-l7pa(R*{^8p>=8oZYqqFRK?yYqowg>`mX0V-hXe34^-C3{Jl#_A9m(6{TU;BEd z5)F%@N7OgDH2z~-e*Ewtf7>ljCz^?i_OxXzY+3Ccq)A7ilaS}450a{Da+v(NrqCxe z?5Hzqb}eywx^|>fWX!H+vSH|AykGbzbs7|Hu6;qj`qWh2|D^HxwcwQ-8Fh-SG4~m9 zh>)NB*xM2%k8ZM;=3;L_hnK4)DEL{XEqAOhPWa>dNe3HCl*jdP?6mrbXH%S2)1cH= zGBrSaeGQo{+mS;esEe*g| zN7Tn!{Cfe2+7vj-E@`f%zB9;yw4`BjF+A$b{cuL<{lu0Jn}^81G2}|KtCiyq_{7gT zgzwfSLLuk_FLE12Fn+?6ojZ8Li3&>d{W@-Y4ab6ocfnq9%&7fH<1z@{8{kf*{L8CP*UdE3%?6sGvbeE_&!J;JNuV?D{Gm( z&32i9Q(WJ!GM4n&O$Vy9dlf@E>hWe@kh>-uKt0R2^Gk;ST8g1bPFY2q*Gf>k(`)+# z-Fb)NEt?^QjznrkjglBL`TF_M1{hCHUV20G4L{BOqoAlHKJU^-`=)O}E?fAKw_#Sl zWMq_Wn!Zo40~cA}y9s0B?zQ_3pDK)&Ty2-Hf~c>qlE_8^85zuaQJ(3w;I>Lx(Ir)! zLiG6A93N{J23Z?rH^Zb+FPo!wiMGECCzwZ7VYYWXT1<8y)e(adsp-}n@Chw39%%Hm z5=?to6^pakIceQTz7rx(SFeTLy$kd`KRAs3`VGfGRJx2gYdH}x*tLzcdc6doq8viaqvijsaRifXdt%-lHf*)x7O{CUfUYHBI z#%xYlVID=r1@4Od;{vYfC0yo=w8NPnnH#G9U}Vd9o_m9bbcYPz5But{ui^9WGcrcu z1h5c%Qz2cnU}?e&V3XME(eWR3T=r9QIb9uO7?Mx;szVX5L8U)tMeKH>hK!fm70DFS ztNIdckhltiRa1-5L#6`Q66@<{&9HBx&T&?W@9Fb6O?O(nAj0SwhXrS&v1R0+V?9by zi8MNvp#vZBuAx?h_f>?XDy5NZIQ6%p zhjot*N=3?hvR0cGtVHgmb2@+l%{J6b^Q}D}5CX>9lclgVXlfGeXVMSky{KpZYoZ-B zhKm+5g;;dNm_8v)1!lWhi)WEBBq!*X%}+@EcpZTX&Yz$E7W#&CJKElup;1U9RZ?M> z-oRSzgRn$uwg=kxkKJj1R*6Y=Ym_>C197;Te#E|s?K#}Ox4{!9@jX~s{^tj>O+ui ztitZvdwDt(%muR0`pvk{nkn#c$y3%p7scOjU$6>Cr(;#`s1CcN@@y4*Y81aSJ@Si9 zXLoCP*Kb;n1()gxCIDwI@3Boa@V!a&vLOF^>G^W?%OzAoUSC2UQcY;MJ@WlJ|IMJu zm%w?}hpYjs^Ff*wNaeaxPo($(RgGS_P!=$!kpNtSaVlKiv~BhqYZwfOT|c|maEnj1 zk|G=tDx0Hk^a9JhqC*M`I1;smYZ$&Gt^5hFLC>FRsA@r_-#9UtGzd|m>0I`9Zz7bG z_lDaOUu}~Eru|Z1)o3}v>aMGT;M?&w9}Nju&~?U^ThCMl)>63HxR>L@qM?>}i}@q% z^HrnqnPry#->mAhwAT8;pyW1yA-h51gr?Q!X@S>Gi^NFCZj#N5$()7@WT72oSwO=! z()Y&zDJsR?4FJNu~<5mNm-?A$HK6dufe83Z6>e4K&*9&~0_2~PuaHc%A> zHif$vEXxZIqb9um^tbbS!!HvzbpT~JNt8GbZwbj;sO{9yl!=mha~$JE;8??&BVfslIQrjOqGjowMOegTsdI zyvJ-xuz0GyB}Bj9Dfd(H7;E?yg7w|F6AAvTwkKSyO4pu(AZ8}Er$(Kp3a?(mYcnq{ z-C#ltXF3>3%7WDlm(Xg>(+t@cYv&LSif(RXh>NG^W|c4w5-Va=`|WD=gpQG4neP4@ zG+IheUET;?M&Ts@X7_ z)QM=oV?m~%!a&gX%|ZaqL95;G@qF*l-66}R2%#-X9Y(_`*&i$=$@>bvF7jy8-ulu{ zziSbf)fQ*;MS&EFf?FS+*t%h#zO^Of;`<3U=?4)GRE}xfYj^rzW{e8cr^y4<4CeIl zk9xwq@9ZXE<9JBqro8NyKGC+@Jy-Zn=9fm7BaNvxy15}Xn>p;h2~nJ85*~K8KUCu7 zlfPq5C}$bm5QGLS#WW(PY)mIgjq)GAIAaytjk>|Pb42H)ACzVW?W`i?4f26sQaOBrpmbudEurqyKg@yt?FxO@Q` zDfb%a+ple_d$YNDG-Urs(Um(sQ);53bB?4)9{+i#cvhW*z>ado=6puh zOLN5+TlBeXB%_7Ge_a$)@I7-tpH*S`(W4jGC9uqQ2te}%)3J9MO1PXySMgF(Aua<) z_%+2fHQlUx=G>NYPJW^V^bgN z8=i_svyfiU2T%6Q0a8l!R~ZEGSN#f7Zk<5?GF%g|1fuNmumLQX5YLK_4Kl~@hQs%CgpE)EiPxb=!WK> zCx&a8Uu_A&!fHA3xk^gdy}0GfD`RXKYgwssg{heFa7S*D-Q28@&%tb&M7%fU#QxNF zk`}}wJMF2bXuZOPNsjVRU1Rg#<%Kg=RD|#R-q$uHen?J?_Lj63O+C|Hb7XfVuNd@J z(Z~}2dFWnQB}>n8Fsc!wdA_}p%a)bo3>N<@g8EAL!1!2DnFhkT#+#3GHS|=*MOxmw zXOAPSs{8M)dXm6kR=Gr@OGi|kX=a#5udG54fly&8mheQ5@lM~Gc!f9o)u;7kZm0*7 zmOdyWF|}|Ze^2D^)vH-=gwt55k^T<$l4zhuUrYoNOCiyb+lSxp9c8}(Q-^PkwdJEN zVH9*|eYxq;F4@+dCI>hs_w+hU4;s)h{sckzl1FWZ!8Xf#lv@Vp48i%@)D>LbgjNF!Fh;eOyB>UI z^G?X>7B+sktukn-hBfTBmveC_eQqY`` z=W@kMeAF6W!a-5z;=Iq7p~CxemOq#=+(5Hi3*v?1?KBC`{9#28D7>aD%Jwt?+E%ArPdUU|JD-uf24gai(x4mT~`9AN@M-jFB?zdTK24Z{BT-J!m#1gFRQ{lI z&;sZm5g!$ov@?14Y5jz(zQga zY*6yENwy@|S`tN82=DBF7ob3Uv>h0`^o*P?3O1zepO}{+JSw(k`uLJ2C(xQZ(we~< z1#_!?|In8{Qy}mo@jket!678sFM|G|4bv9%VEgx9C%+5{vV*OCp~#{0MK)!Xgu3g8 z09nicE6{;vP(x&-$#MB(#nAI&I|X`d)?@6D=lD8U+Krsxl|bIiHyXXf2Y{sg3C<6+ z)uGi42%E{0;vX@e5w8HYvnKHC5T*EYl#YsU3v}&|e!wefO>#YQYEftTEBs#T?BUz3 zz~*wDWnk)U!%gBIN0z_N&xD_Rcn>o{)?Xy*>94~jQSJ$J3G~re&tBt%>&8>cn1~dv z9h2y;Ctg+RloLq?s^tLNAZsZTL+hiYz*%GTjPHDSzGu$@s1zG9EWEI{VRu1sf%KVm z&UJ5Yvz(SJG!ppFj%}XDWb=$9owrai37C9A{R2;uebDM7zV)*4V@IvXjc0*dumDAJ zr$a|nDagm2g3!6s?=9%s^?$zqmN`_;VNhr(nO{o6QtW>Kk(scqlThee*JT#;Wz=tB zQz@JZn&rfcCV_i=cMBxU-8 zyW^!vkMEzYBZdH!Ba~cv6W>uXlZ!H_GvRhFXmQ|w*#Xy$J*fZ7U{AUl%B-WPTG|uz zvd`^01C<$V680b9G}Swd?0F*S;qQNdIAJl{P5!N;v7oolC}v-M_kqpRMi904rybXH zmxSBbC?9VEu1HY-a?s7x{6?tvbk7KH<1y9@>PkfveJ>%3fkL(z<>n2cIV*e+lW0g- z9(M5RI`(Q?_NFr2%$N`d1RyJJ!6o2@z0g;_6_Q}-MmkF_9GJ1-4fiM z`2*x6Y7$mv&VnMHv6e`l?|~4SACH3TK}E8lhpr9`olTt>^oXrZc@O>7WCDx5z6%dzVD3$zGWcXpUU)Vg&yK9FbsX z!EbN2Zns#R^!}hGRVGQtgypq{zb7ai&DPU~mUV(cVxas?P-l1`&1V!PT1s|-6InI* z@Wua20`7G~FIPGD_1~xJh;C(#G=yPLE87=?eQ?J?FpZkYkIBF($=7cIhP97ux`8t& z{$`H@>OkZ^nb0v|QFIB{AeCD4AmJulHBtozA9x$#R8~D;BMDX^?+;It6}lAQeV$q6 zPaHqNK|27=WcaxUwlk;c3|~l@+?1<}nq1j&Ge2#ZBt~BUK5H)VKTPQQ9eG`F=K3*X zY$iZHvJrF$2u16bBi#H@su-cNi4kCT&e37VMe1DHl+acE2j#SH1AM{1SG)RvHK%sJ z$=?%)7Oi$So6-!PUfA$Ss3fS{@OI4n7q?_Mjrz|3OPXp{RK;Et zBR_t5)_hmF-!EaTgGuGcZA+%_rOPp!nxwtt+ahy+X0I94`?S4E39MdPsxo&;g5Ld& z>JGI#ca>bC=&>e?3Vo8ny8bhdZmRa|GL*0b#K++D(LlEl03L`GN<%zes}$;(aa23~~rZ0^lO+wmiuG2-g-69G!S$1;}Pr)*)_=! z@Mr31AdJj@GL_7LPy{W#?Ur`F+get;vc(cpK@feA?sQZ#v|*HaSh3qU2wFn#`rX<; zK%=IgcRDZe`llmb_@j*Vm8~ZUEb8h3H?JAMrd1Sw=ktBDT_)kW>a;Z>*)==hBhGZ= zQ>8!gNuB(x)PDdQ)XhB!yz`V`zJ;#+LKR8)I{BNeXp&$WtPbww->93v37l#tXd+G8 zz}jTF<~^kRdrhqL1rL_d4^CP&Sg8B_jr`0fQ1X_sZ>J-Yx#8p)jtb-$e~B7(w)T0& zZ=W^&$UOP>Kn+nRb>bh^Y-fq2YTJ>g(+|?#?CSx|JPFqw_p`ju6V$IVLZ}Wc{`YYP zbp=-r&3|+E0+%O^OI4-~Z)RqBiuLxvtLBl+ZL08ObzQ!^q>3L_i6hC91BAZkW8Lbj z{BMDh?w6HB0lB1liLRSzvtRf8GZqTt;Bjuwr^~!ut}wu&z$@k^>FNAVXz0;;J&ey` z5WUz^SFcFzE}3iOKR~fv9L31puGx^EmTSmfI+wszXA)tGuZ}c6Wp-`B5$^9lVfPSs-Oe=F$S4eKQP-TbI4%N(|gng%O)w!i;xK(eUDF-_}7Thq+&lZA(I#t%&-|mdW{e==irifIi#A}q$!HvBXuwa-TBv)QT2?%k0T-Y7(qAqac1jsZ=^+a?EKNl@B*7{r1 zAqw-O7(B6Xr6_mCiUoQCHHGxdDb1j^aXzluCkDr7(E$y~J76-EY^8KfmVz0q1gd@ZQG%ONG$MZvPvpbwCft_;&Mc-nIzqe_+1YPwM#y!AJPgGf$$p@uBV46MD?d_a>520W zqi+Mqlo+lVCNU0v0{f-C;+!$W8FB!>Yx)lWx|4dW*aWL7vfdpuI*LQeEMUZ#j0$Q9$=b)7a`*TCd7HSE#^^&*^YO$ zI){$5&7TT)d@Xxpt+)hNygpP3hWvKfAu5`{QV#iT#$b3)US*c{Z=Khrp?aa}=VHC# z<7%oh+s0cm9#kC-E1=!aiATW#v|5AL;gm8+G6Vw8B7Pc&(qcKCY1tVF<$L~erz+!r zA0)`4HF(!6kH>2yYni5;Q>pPFT>A7^lJ-bpPN(M6Gc4y_p0Dpm?e4TOqq)+mq+M(#+FGL(J;XcFBqu-gPWU4xUz5^sQ_=_pj047(>bZb<-mV}@gd%yOZmj>$>fQ@-1y zS6f$NrkJV*OD6x-vHr(ysb!oJi_jMz{l|RCHK%thZ6+R9D*TMZqj{BEQ7Na{Ru%>g zDL-G&YuJ2C-hGcEYi7bexIEPNvEs_@)wnVbj=u;NfRlCAocHgjBbR&{xcEmAAZaz3 zcQ2&rw?hupR}Cw_IIL4>kO`sOIp&VjdHrrXFoV$e}+A&sB?!Eimxwm$m^ zmy!!XXi^NYZ&h1Ce()UT`mAZ{23zth52|zQK8h4&`{bu#A03~^=arA+9FR0ac@CC$ zGF=6NhGaB!F?4WSjvFB+Z7@SZ20}1EMTkMlAlAIBN--wUl^o9j!d2e}v)ta!@)kU9 z361MiMSrUlDk`w$W`?MIyc?{~`zE6E>30!c)e_IBAfMd}q60*mofO-Lylt2B5WV^} zBPCITw4vGbi=A|T>sOBztqm@f{*a5CQGPUb3QaL#sD=itxIR$CyzB$S zcKE^^Ag1g(WLFjG1oVjW$(Jl>p|eMMzSJtfNhLelniUHFe|&mT6n9vod(5#~AK=1A z7O$ukatUnE`P}zgM#%(t`{oEm$7DBE^`M3eaE0QrMsH;MNBP^kjIHttJ!k?^S8+1-Yk3cwx0hHI(9JsN?l=W6&R zsjkx(74BI9BW@Tb7IuUuxKS8?OvX~1DvClG{*;$e+<}g(8p0cRqKQWO4mt7Xl%|Ov$U96Q-lpE)Y%c4_f zlyMw7#gKIlzC(k}O?Bpeb817Dy%Ov7#0nhJwLdwgL^);&x|;Dtl|yH#ZLyA@SkRN= zb@xOCkLXV!+ztNj#pBLL4txjR@S{!i0}FotDif{Dn&DDZ z+36Ex$0$K^M%-$x)y!Gu-H#hFt$mZRcN7*p%9TUz_yHtiFI~ zm^BJ3Fa>RSyy}kl0FNH08{$SnUR1ghdv&7!Qs{@#Q?r&ejEtA^-8;1SwB*{0l89357I>JSY(%#z8+ICQq#`;C?<59(kJ;%nYN-0ZOp>B9IIUcmCQHAPOK?DP?8G`Ooe7Xn;Yl$-L;`b*)kZ-AfszfFD|xfjU$9GgX_7PmiB>_oFj6?3VCo+G244{SR_2 z%#y5J3J&c>w4d^i)%tfCn|6OpU6w);< zIC?OqAD-?Z;m4dOX-kB|1ebt^Q8fq|$7JK%xxyEAH(NJ0qH{`dWm((u!g~|*Zfpi1 z(qQPT%c{-+MO;A&YNZj@mi;MiuSN=IR&IKOnle{3$WlyM(#((X5fmVGx4qXt99NJ8 z$eH;rbUTw`+xY5}64>2|Lx*{);CV6!o2AWn0!!zq*uIh4;9^NYd$%`=_sgy9k)C!1 zgPT}k@)XRm+TvXB`(pehTA~t8)3J6@?~5iDy}JNRI3N?rht?P*3 z6?{<*p2^+qRdpi!Q>tP!(PykN;Ry}gmiIoOs&j6W&wo{X_NqV8j#~UccJ8R-| z@s>ayL0Y(kbQNs+iXE{;!#YS$U7CM5O{$I3b$X*} z5z5Gw^pvKH=YvJ59iE$s;qqPs(c$SFi+q6>rhpy3{h zYpw>FU1fZqXmBJBssE8FBwmJ|6}@ZcrxiXQt;^76#W5*k+}_e)y%3YUgoM~m-q{#C zH9wW1Q_9}F#ds)bewC~O(~LX&r48)uVmw~(7UyO`)Ta5&@NKJNKx|R&ukHT6j`S`XTeAIc@-sA7D3pk8fsvgUKS|LK*xU#qV5PQY;0?B-Y0)d}c&<+H8 zhw2TU56LU7OGtTq{ZOn(3&Jn$OjcA-?414@&R3o+?WFZ6-qO%MUV#P3YPSIJm zqM5=ZImq<;ys0W%8oS2q(H!oQV2;(#jIn3IxLKtxxTCa~+;WhEQ8jb49`k>8IAqL- z)Z(9yg{8#+7Q5G-yf{*GZ=zRvEMjUTWYOdA&VM9tW%b@woz6|{TP#sPg~Xknc(rK zd@iPd;eDO$x(9NzHy!*9+~s+WFIB(*#qwi;S9%Wdv-&&79(D`AmbipA+ulIdr)PJ6 ze&dEJY9!(3cZD&dY!k&45sBaTJV7rCTO(|s(KQR$2L{cw63(mnDCzUu@zJt~T$5u8 zT9o^b_aLljhvH;IB8?q2jn8jK$x)93bX0`>h+#90%ztG@!ZTFSY7RGQizoWgNcmRp z`fPP+CvP`!R&TdCZ9`%*7?F>??dNCPy#!U54WG&KSmWu!i9e#xRbfRNS7t@pz5?bR z#KytU^saDayk~vzwV@mJ2(33@52PBUn%%I7J zuNh9H6Hf=p=?f;_QikUmRV>euEMPa;xr>p{)xi;I9vYqE2j%2iRn}uPKBxiqz5N## zl)H#EepY=;Gh&EQlVXfbMLo47qwnS0VpRu`MOF4k>KU{liAGl8Y-_Ayb@H@wHvX!Q zpaq=(!31+gC`Aae9GBEQSelqmijpz*zUM|t?*qlyt4nCb=|RJ(Y+^gbjMjrqN4<^( z+XdXt_Nc96O7wCR@NMx{`=4CF9>#t(tppbNMc)ZC3NXN~>n$?kq!*KzPZ{ey<* z^>$x(?mBH+c9`kqKfrJU;%5RYdhnx;fdfX2Blp9P&6*{Z#z;4VCJcAT%U}BXzr6;X z6ae*j$>luDWk_H0foAXbtvZRWmFj~PnS#AUmnC-!(ulkylu7-^90y($#+%0~Rx*sV zsgtE})b!f^H9b4MK=VGncyE9{<~t=hz*LXn*VpCksnyo00SCFQ87(%4Py8IX)=uER z^jQLRb`d7O^RX`v)WBlDndFajw!bvS#fI&neDr#&iX68*=Wxg-#lqCAxuc~c0LATF zU1&XbOb8X#DmyN!t3#S3s&@<5!AL&F3{+{jF>Xhw<~5;^g>XB>6=@n4gWoI%D@BVu z#ps5p)`Oq?34;?ypelF?Hjpc))N6xIbnl}y@P%{_;z{hAni2k`iJ+kA?ubiS7do}V zC+|=)+!|$wat!WEk>8gTWA@~~|Fa*W1^X-4L`e4x6pzT{NbS$@3Cm3lB!euLm~o?) z3VIz`XxQp6!DAVp&%3cP-4exA>jnO-=s-Lab+lszXMh>xjS#aW>;l6UosVAPrz=iQ zsh_nuP8@nCzIlB+)Avo?uK4%|`%gaJ5%t_t#Jh99dyT8iT|M(?uT>N>txen3%>4}} z^=y{;gXY>k293f5ejI1tE6o)Lv}Ut%J6x~0s2;s7U{-o^%nsLI^cFGx||AfW@*->*~eC$u03t3hUX{q>89O~=~LJcIvikEHA4!kkr=w77-DCGrnip&qJZxmAFu-fOEDP?6@$ zImG}awwI?AFEmP6cdlycc&&uV0)V6L*2UhT=36zrsR5gc<>k{ZZHh}LDVhLgpQs%+ z%2kk^({!pjbZU_^U!>TgeBJf~!;vzhc6$1D?Lsm>V|MZFsY^(w1(!jZ(z> zHt*az3e%GI+3eY3;n-kes6g>Y8pS!o&<2&ZsTHlbw{f|LYPCG6Wo&LH`9u3w8(OQ~ zEYS>sjMl!lwCT8*Wd8sNpbmN_f?1kHZHp&bwqiD3^>)~_(==mwFbq11FuI{xd*b}%XYS6aOy!(LeLWAjA0akA+&H|$> zWa&{^Y8Q}0D{S)s>Fr%xSX#t|HwJuRMOV{ohM{#R zhB1)56G+?D%C<=zu|OX|_&4JU&2E-j)O%cTPg?ffHv3A}6VI`fN&PF}Sns^K_L#{1 zE3EMU0F5&4_Ln zs6W!X3zc^}<8C_-TH&2H9S)euGC;PFCgappQR)myD7mT;+Fdy@n!ENHZDZa~%k5cm zlrlY1NTq1x81$<@+BVleEUnE)9kfz@@Zi!%YiQR2QF)`337g6pScckV%&|tR5{<K%iV47pi6pJ5lBXy!NUBqz^wT6Bwx`(;j%R>$y)PRPCu+{mdQ0smXt+x9(AP zgVX6i9vATo;L>aBCZ(j$_Gx1o+1oYpR=43_6Y27Qro_P^Y;Npp^o`<~U1OE-ahlG$ z@Yap2K_#vF??@VoTts(Dy^VD`UHO8>Sg()F#|!OVx8sk6Gw7FJ zYS2{8Zh6OX^sfxNvc9&zD|zw`*{-O~9L+R!%XKZKqYGHKXPV@$HO)#V^Fm-RQC+RO zMr{m=cM!d+knt1A_C)eA=E!gbSvM`|8ja_OE(}nqk6`52LNsG%y6$PRqqTEh8k$Wq z$gRTpQn~A0OWYvR9_H=8b3oHM3AI_4R+8N|t8vX~S$&=hZ#HBGNk0nnTRF8IZ&GP3 zRGVne80m`it3B5*6l?(5+JT({Ug(zA$tBYO$E5$WkzTHU?Tx%)g(?S~jN0kd`D9XcI9_lvo30L6KvnvR7dx?IE#?EJ&EYHBvg z3=3~7kf$9gt;Ub1zLX==fO&KC6F?cWX>TA|^nhJEaa%T1$|DC#|D@ON4ywr5DG^YpnK%fXNrqVBM{?BLukp2~mcCy&X6^vO#Bbv^GMZLASSp=aR zcC6icJynm|T3(+mY086{8Cs`^Z|yJI*H3-xj8*M7QJ#FHu;N^GthDg%sS>WCZoX)4 zxUDgJEwdzLRV6;Oa-il$wx<$JqD>9bZzOc@UT-Id?LXljoh_jWD+9?L>$0}hu4KD1 zGKWs$wr;QVne5&r0T}fdrnCd+4+&dq-V=M9iQ^K%G5m#MHSE#r6KfIej2z`prF{sV z9y*4c_V7wtIXYl;t_x83S$7P}9IV0@JhfVlz`yYN>e=<5?Q4O%_HsSU4* zjn1PXWna6K(=~ylXqtAD0rG)Zp#=2zE zTiMvj=1Al(%hJ7{LWUTHxpC$Epr3m9r$jcob^WZI6p!X+Z&6;G{{Rb{N|cnfk&8jc z9WpC76GYFgHBS)2w<{0cPL=7pC7y$>Y3hs@a*mt>U!M9$#4TS{y=lqHZon1qIv0zY z-s&ZiQ4?TioK%#12DjiFn3~*%*RyFpFSeQ>ml7*RM+UW~ z(=_d1dC>)bsGtu862l+?21u)L%^F9y13s18YTg1!T-+hr4!*yo1XK!;xK%pLuN#3}+zMo10kG ze9Lw_t4`kZ!n+)ESlH0?ueV10s*2RN@*O;8DygkX;C-mlMUfdej3=vbaMECeVEa zYcdOww5~BvhS*yn=8j;w!ryoj-sMPF=~(gj1}PN8PBGrSL2g*c6C4ipJd;9BRO26& zUBc(gx~GS=4HsBMhC;FDsOeo>_?T#rt4VNO@zT9k{?AXo!H_A%b9#q?v~5cg5rRD^ zxYIH;--((W@v7dF89Y~YW3K5}sI6%zb^6zw>K_dB*>;#zqK``FH4h4EdQ@QP4A`i# zN4Y#JE9D%1buz)TAH-|J^mXw+?|MbbkF921Y8Y^+Dy&zC z-+j9EsDukV#Zd5Q5vd-coMd95HxC17@{ z=9A1FSFfc&mkb=_Vwe_VxZ5t=aaJB)`*13mkaifRtI2`fPzBxFSEmN62SK^2Ml53o z89tPes?PglU4T#nJm~zsI*O|s#9T9hTP<%8OaY7v<*u#RIr7g2fHtL`5V>ptOt+k4 zaO4WhTPciN8L}&W+R`O}DIF*RA$Y2AR~f0r#5mk=YQT*)?b;41lj+J7usAdTdC^JC zSkI+an&N2CpDzNHMWvD4?NdRh+1zD8ti@uTwe!1qdpgzIn~9;@u{f!n;!JEo$E6Y( zCx`{Wpm!mUR)q#7UTZ{OTgezGD*{^$#FpWOHV9-z$Rm$RR|9G8tmXM11k^ipz1u>7 zYaQ*K=J^j=ic2|TeW2!xhq`LBTR`W_P-+#O8eOco6;*(Q0Nl_DGX)};BXNvdKv9uW zyfJxUm{l0&iY=(sZ{?Hjx8Yfu5dj$C2U>dDjfF_90I@7%aK7Fr7sp)5+vF6q6^Ap^s_-$rYG}a!&`f zPJ%{EKN+m%o;G~rHKn{w5AM3H1iKQ#h9j{@H7t;V03xf{-EAOBD^6z^2Olj33vB>V z!K)1#^#>TN{{TA&<=|C09sJLgr~`f_a&y!Q&brfd%Ysto*%)=?3Xn8n;%8UT*S=w>8nYR|hdgiRfr`$Wu}J7
ownA!hl}<75!G$(STO06TB?y|5~C%t`=fOZfvG3@BdZh8 zt}B(g(l6~s`&mf~+co)j;ZNEh#TqoKFJvx@iuz~5-?dGR;aINMlgBjuj7d^!bLuF( zU9V}(7D8DUv98NY_={mSBfpQz_pd3@J|=ie#1W4+L{@Iu71GP4Xxgz4X)1H*Ynpgi zvslRX>rHz?zKwp%I-L8~zQ~RkFx%~4G)v)4Qq-9&oP`}RSFClv66q_lV$6fqxut(;jp zk1AVlfw{*@J)m-$pJ}yb`Iu2H{4kCfU{?&7 z^r<5&4twUa!)f+W2;ptR6$;+~e|9%f%mmttND7rWsUVf2i_CW14ONonNtB}}CXrI% zFs!^)8VPbFor9-COuN;tG?YSDpsQPqc-lD?GTJVrjrNt|fH~_w9^1XZg5n*d`*B^= z7qIFPe&MlPCC-6w6u&HaQC&uv4ZXBT`M@2hB_nE0GII{)lc=sz{?6*%m1E1-Z62hP ze6Vwhr+*`n=SBwQprf3QY2k!<$T5A68iL-HLMusHHh0SVP-bbZ zo|O{=1bEv;#PP++7_1Uzw81>9RB_z{ahVrzpbVSI-sWLE-Ww-*xd|AGMxL?1?PrzyNKJ)P!F|n_g)NW6x?a|1ypthfLA?> zDY1Yc=hCagX`V^^E5#tZ@g|Wt+{M)Y0D8LXUmDy)9?Ph~Be<;14!2UWo>efORP+M5 zYn>cGssipcscYihI`TzU+@`l;dr4fpY#-WyFm#P6w{Ex?UrM!oq(JOSoL17zIl#s$ zwAqo%ZRjWiKTo!_g|J8^YhP`+IgM*9S~o1%8>(2zh8%UGz&7&UH(Z6u9+hI&)+LL4 zpD6d@s>^X6pKm4o^Z8I9-OoS;d`a<#_LLHNx<7;*g;TZV=y?9^bkn2Fp_J#!eGTyo z<5z_I0RzA#6WxGu8e^}$es_5P0OMDRd~0_;`;xYejj<`f0=%mZq=VGnLAgESD>Jl z$n)QsdV7LG^Hn^}`39;N>AInsZg9L%G4jk2@H$p>w?8p846Z@vwP%;zngF*X<(C4e zJj5KDiRQo?YNNR)ngE(xt;t$?1nVTP7I4kduw7Sa2}$AhX!V#?_}pwaE3_4`EIvCM?i#zB4`xA_w zgjb(fsT5Lr6glNFr;W<1m_flg*fk5W{+vy zwNqyQ0Gfah4k^M-tFnW@_oTogfDv7hw;{nD#eF64v*U%|hZ-$2Tw^t`zz%sM&|-Wb)S5!^p&sJjx`%|=ilBmV%cRqkJ48*5uq@V2F;F_O>s&N zV~#Lt%t&Xvg4i?42NlcQ>KFQ%@?eh<`qrb^HRQ%dKPGxs)D~-Qpd#Q^*g20a)qF8` z3W-qpjC)rnEsfM9EXZRu^m$nJk2DI!zR@ASZZS~l6sC9+D@1WGN{UWK0Iy)V@LjWf zq>)^{q2SrAMpx!u)jXy17rY6nymNht`W}?e9OqgsVCfzB)A==x*uuhkzH=+^!w@Zo{R_L4u> z75Sm7_J_NL4NIoxt8t;O_(iB1P$U2lf` z5vzERiDv%*N45SYrUx@&r(bI`{hLoiBa^p*!1u3fvePsVg}OiXzO?Br`wZ=D9({#l zYrZh>$HRRow7m~(x`%V`?_Vc)tHs*CiuE_WznPe0D}c%TV`Qtzt#(UU+E(YqB7H0l6cno2031*D>i0FH_%?OA{WQdBEX9+Uwf(bo?mtQZd63eFrUc01 zkShbgpb0lNa0NTeAX5f&Qj}6C0XLdV(>D51wtytfCfYXA=d}Pc7^L5dn2stUlmPAi z^zGFK(@nvk3HOzy-o~QqNt{pw{$o>o)~E$MPy^aRe(f;3$k2cd5S8SaNY$ZNI-Xpqz0)Xk9l)J!wq&s$4ZK0Fh`*N1au{6yt+g zlv?u(V;u!C?lJFG`W~E8FaYsR!D7&#wE}KFUU5|NDa@l8qm(RI`&0D?6u)R=&q}1Y z`ctuy$*n9FEg6rkJMAn6I@LAD@R~E+(P3D+CK(;7$JzpS&1CZ2=9~^Vq#TBmTnD5w z4wXinUn3N(9EE`ArA&%I$T-bZK-BHT52Y3vq_Q2nnyzkLPBT?E6VTLeMS!|5WF5^r z?M>dYz!dH=PzIvkW35Ur#bA96E?82q9T>d8>r88r+OUkQI|_2h$F&v%WJ}FVZaP*f z$k?Ux4rzh2=P>Gcs|j-$`_;}DZ(4fF!j*vOg~T}dIHwDk`V)%gcQrgre~OC%)P1o} z$|`7^aNS&(oaZWWRt3v2&P^60nH?vYv9s2m(*ws!z+0XNG^TUwMT40g2$=w=+GX9q ztWP}StstF`dMp<;q@S_rQ45z-kKwHMxY{vDC*AkDQDC{N_O-{}%{$J@)}wnCdE%Srf_S6ZhdHiha@oy1$Ulm*4BTd$_Kqt*W*p|ZxWa`7lkKO4+AAPVp!Cf* z&*vaf?8VM(3)kJw0H=%K4p$khA3L1XqF+ztRmjG4Yp5~C;3{|2N#H0I&H3PU6wkDb zQOLmQQ&8tW(vk03&m4Xg$_s`Z6U9I6SR5Qt$Ol?3f~G&EKqp?{S1>Q+7zFY3ryIsU zF{6+UklY~{Dk-AqV{Xx0__=Pm%_+J&aw+>VE^jr`FI57SZqdJlS3b8aM>I9ZA1R~R zh0XIi@6O&S=6Fi|&?}!4u|P)@d7h@1vMAn3V%v}DPf22g{G1c*T=;T%2c=BX-~xH0 z*#WY*7<^-orA+r&;W5v(U>OM+N{OCKcFiwj9LGX#1Y;dZ_NJxq=tn_V4r7x9$S6oy#H!-m&je%U)x(W!-B7<-m9rjH{b|ju z-)-CWhsUPs<^0CaVNx{9k4n$jpyxJz-*7TS&H2(Ut9Do@xL`iDf|nmD1XEUI>E4fG zgPi}@_oTi@+vNPi`?##xhUp9n+27mJsw9!yOe776&q}=vDr9?%;2xFborc6M1)Z|S zvT}P>Z9)rwDQ6$MV_B%j&f6l7YNd4@_1vZwISbPrC<57%ed?(;;Cc^A-n_oNhRI=x zftMA^MPo8JZTK~^(nSjHknUkX81YT0#VYyVb&pEglWZ<0+09|idpDd5V8$umYB!R3 zV}$jf4LP+lD+gR>rBk{STop+U6>6ozym*OJDtgnQzCb*Qxd(t~0UqkzCJ|#G3|8Wl zg3%1I2NjD1Q3(pf1LxL}^&6*Ffj|O)Izc$OwSOu-fjU+lwZ;1r##A0FKF?gahEKE0 z9#^5Oa%wXq;UG{H^q>ygO`7yYiQnb)r|P%q4YPfn@Z@kSjZIea)G8rYBW{AZCO>PC zL>GncTGGlbZNf7hxS*Jj-dv<3Y5AA2t~N)#mg{=16S1y~_pfeWX7xQPSf;mu79s}Y z`cNpD@xbH2HNe$^vv^E(RA`#euB`B-6S0aohr)gy9qp4BY+&ALUw%!9QTBHiN! zhzKi~p5Dqi1;?3`pbeR>lT?U#zq=!)Vcok$BJClAaaN_4(nx`b<+0FK9i_8gULrdb zRXr#Jx3RIeAtzi0$IVjeNoc9&9)`J>Tf0kx7$<2weJa(!xW9~B!@wMx0Ff`^RuDip zj8!=j;_XRA+RNITV+59L+t(ylMP~$Y!6n-rq>d;9oHtW>D+G^*6~h9Yb04i(xz?B?22Yi`3IL456ceLv1T}3#Y?Dagj~MxDj<&d#S+ePo+uF3BQMnQb z)CI)=Zc79fAkCbxsV#iT;twawyQNo#$?l~Oa@$mnl^(PjB#A8_?sgOam*^r=%-=m% zu-v7*=Em>4RHBaM`IPSZ)a~axEMaiNfM^3jo#T`U&RV8xnc|gWlnfe^PP0e>xSaWp zJ60vsl3ZT-gb^9yfI4f9LM4T8*d1#cOQybM9gp2wl0$11xqO1aa1CW?H_)Z#>6dB# z98d>gr`j=D66cKc_Nqo4NMlkCc+E+vYK376tAhRO9IWkZBS|qQQ9v85qr@%phYowy z8+&VkGVX4bPCMKCeYVB2aZ$FtICX`P626oH*E?QYGL!RWqSUTD*q4kjs@8g(_Y3As zye%=VUU@bZ!ge$PO}AZzQn)KfWSTZ!HwCSRf;bn=9S^N!nc{@IJ8{@h1h*Qsx}vPf z^%c)w>j?yaz(GOV6$zDf3E4v6o(3xD(yg}nQXibvBnLiqc`hGwjBe~JN-1UXNF!>V znW<;6`z(AQK9wYP_a+b+3^!v`19aPqV4h9E$2FxY*~mbM=Oe9R$7vPIm2wvqu@n$l zL=^`1JPH6TO548Y`U<%<)B(2w8mZmpJV&>RWHvENDuVk%b)X4uzRc>fGkxCGoo^${ zKgd6KS~`Y^{!myAQ-k*rh!kX=v;k@>!D~JV+_c;4k1|z|upsnWp)3-+{_Jf6sYz*d zB)iw3>Fq!kuC6}K5tcKC9Yt5QWVzjP?Tw?QSh<1(w^X_N$EmD$fuVd_oyyb!u9}RO zG9*xdJ!;qXYfg4`$?I7bwvPa5<~uiZ6{ll$Dg&^biU8Mr78Zb`j0Epk(djVxr*BVM zM!dO>VkVa%{{V)%32i{N7f>AFbQA%|&WUX}L(F9KuCn0A{hGc`03cRHq;TEIy5VtB zYB4-k;s{CGp40(fPT%vUep+qB5JSC>-aRSWeY~k5WzO7IRs8KG!ABU!N&u63c}L7_ zQ*G{6AN4;m_N=*Kl;J_hHM^(j{{Uvh?s3HcGE*$le8US@UP8(uhth_*4B-_)t1(88 zl*Zi91xRfi50|OyP)}!T=77>+M_SUje=aX7Gx=0W;fuSL6S@7_?LZnfI%T`YCNH=T zdBzgM5dI*1OQ4TQGEHr zJ#MZh1?NA7QJPsM`CAp!oi%KsXMdPiCne-wU{Iefahd?vSA;;3o^#f>O|wg3mH8A_ zD_OF^=R!g6TO#;Al(3e>o|FO2-@+^*5=SoPJ*!hq)wLmQvt~W(JM3H7TuOH;bBfT9 zSBS)8jywa!0A3P{z*Xk~hicP8)^_`w=ErKQXW{tReX>XQ#b@f8nmne`F`a`M6aiN9 z`LARFQvqa(3tVXaY?>%Hr$>QGnd%(zVvk=11~oJP!1h*C}nb6#JlK6$Ez^ zNpwkmNx&Y}m=jHBZSu@~yM)J=$e;|! zEOs}Ubf0>)pwpqtNh$?S)mHBC%OOP0(bA=lQi@20qo3X$C<0G9)Jn0&fQ9s_t}ZO3 zk8GI8?OJxWR+fo}!Dg(>y&^eg-@j-y0JhgwmeC!kD>CvCJSJkh8?mkJHpUxr{%{Vp zUg|`=KV*n)h;cv^^u0X_Ys$9tpt|DxP;(!v~ z#=u48MJFmMIG*0ZPnYIr<2BD(OkrO$o#(I8uUuV2EMb7hy#QI%H3=g-5w~vbT+Or# z_LDT-j%%;8wT9*cv}BRNrHer7CFwvI7qT??DZ;Hf-KAL8eEr|jwr(MU(lZ2KJ0H@y z?=79hp>3s&0B^~C9m0fRxp7OU2&EoOOM-fuxVDzoR-Rj9b~@H|g~yO&myMmVKpS#d ziwsK_HB$QFKF(PFRnJ~{j^q|d({Sxnt+grVD-`kl>Hu`|$u`*FTxPYb3Yh-P=LA$y z#016qZS7N9SV?m;OCxz}Ko_N!D@d9r^DYnmMrJmNWrW>C-^%Bu8mluOx;Y zvri`GJYucfT+5y_k4l^SBg}+co=N^10LNE}=l%@bK0oSaTH*r z3D0p|9o3peY-E>)9V?CVWZjV;B+vsbzi}~kkCR;`uoo<^EA2trvRXOz`LYh&3g~o* zt=ixB_{pFP*4EIopR=w&tj&^J&hkt))_}fSD}{#5G7nQ%bw`e9OkfSfPzHL-EclM! z?l)6TmMBqH-Ix}v=x!Ry-(*L0mCxKg(75|sHa(~Vq}0;dJ8-l0#}$kfWVJBc93J(o zE#uW~!%F*3D<|x-S*h}l;Xn|{2iXdecQ>U$9FuvOjdrlD3rIx7yr(2|s`9L#Xjs%> z&;_Uj?U$Q_S1c`jm|p1h2CDhf2}CjuJ!%jX#-U`yxDgPz7yIQYj*n&~+6pzM-^vv3#oCsUp#)zjG}7ElE9vye_e! zk(%Fd@bBqyIEOhwVCO^a|0}$%>S2Kui&&!?#Yh7Bx z)}l}bYZ6T=SGg?hg;T|9Y0~Xxw_&+`XaZ{~;A+xL+-%~mv<7P(P(a&o?u z0hV|p9s9YMcdg%?o5Fk~lou!!sv5&dhfElO7Z*Fq$`_WQsI)ck; z(FVcBE1sTLdyr)LaaHv(x5}9g?Dn7wnq8|0jZpI^71iEYKAu&NDT>9=iHZX>e=~#m zR>ke~*9Zjs0os5$i>Uyc%v*=8iUs$JQ<`Zkx^9h}VuN18l9F;JjZm0n)46>G9lVOOKQeg0t*D zaJf&Fo7T22C6XIeVaYTBrjXg$z}UcHT#Oo!TbA?2;h)N%_W0IdmracJs#n*R%znvi zpqKAJ9l5->@{)M|QCYKIA;>S*u*_!K0UXV=V}Vs|OpaJ0?_XZj0VLP2Eylz@DCjGo z@Th=~dTGib#Z^xiyh{aOytCY}<3`Ko{e%v|P^<20oQWE8Dnc!5jm^(=6bg#nMSz zE8eu-V!pgrkK`EQfI3-qSH80r-*Y3SR7+WH;|#6OrC3`iV}V{=2OR}wNiE&v$>i{< z!88F{_2!QolPY?e#u7-X%sBL}zFBRWJ(nj4z3Ysc>MOY(D2~)mx<`5d)zehW#aw5K zlUMX1k0-B9E;AW9YI?JnV6S?_Ei^QIR>sb(N&r1y_+9 zj)JU-LpipUkImA6GVfM6WZ!OnUihmJ?2%EWPrt=WtZC8O+2vdl-xXHIVQFRdh9U9O zJ*We2-onZyF5~d3x{Jvo1Pitbr**C)S#E`XbM0Agsop#*2bZ1QXae=Kh!}_t9Q68A zZ-HBw=9%h_n{PZa{ibu%psS)kwp<3d;Rk8}xqp6_`z+&+etj#Q)TWx*(%BQrLHsq{ zTTiFP{$waON5@KsRyuX$Uu+ojSD+LD6^+QYv_wDwZnb7;?QR%(e=LWCShg%?{p_a$ z(AFlUE%Z10q5dA2pbm!UubM3;!NB6M?`|Q|C0w|Xo1mx5BMWhNH!~5^vS85Wx?!na zw;=qW&;#!-?yp@57#)RaMQJL!H2n=$wU7--KGL{R)6%L%!$t9jx#_J$qBIB_V1N$f{P|uRhj?_rH@+V(h(zhbIGw= zpr8sidOX+H3oLSNMXQ&w-&#WUk&?>ZwWRUM7+XsY6!)N8IdqO`GWnngbbT&+3nOtL z!#!HH)1kQB&VFI(T`ZSYq9n1C?_(9tUfq3)Q)vjvZu9{&OEY5D0rHM3cG|){F4^v9 zd>0&7FAdbOks5MOtvglK?dDjmWMjvr0BKmy1d_C@aNVk=pzo;OC6r7?cml7(1+ql4 zj=11eD`^u*xjKZTGmeAOfGcVmBj~Lhmra*A+ACTsh^`aKBms)V)^F~0qxSoT!XWuY zV_QP+hDSS^fI2%=jOu<`$&jO^Gg;K9E%pQ*D?TY<)1++t(-Fl!D`s?S>!#XUwM$@V z=}|h`wgxj)udM#r&hRnXlTp7GR&kgzOL}y!cE;x7Nnb2?AIhW+0~FSPhC7gYRF~Ii zB3V^A0;Yn_=6Kj|&S<)^`wh90>GA;JPz3%N)mXbM$XFhgy{O)`%<3mkqG z*gl^QnxAEeVn^>l936(;K1W@fvDDP9e)2qxWcVk8?M$94iz}u_`HOpTRHRpqZ!oUK zZ$VjsMBd(6-JPyvEGwq5n(o@z&RZq9+f2KkPD^z8M&%uGSfcz~%Dzb_Z(%?ZT-oY3 zPHu!hFKUx*%y9-Qli%9A7u0rXfI%Pc0O?G&jU~0rz$3p}&<VvZ}|uC*U(-T z@#T+*ZGv34l{Zd%*Bq%Gk*apKuwnlI)^X`tP%W%d_4$QTFpas7oc9#RECAY{HFKI0 z>W}t^`FYt;Mt^iS4snWt6uF*OWL>ze7$Y$$Gg3pjn*wZLrat{^Mq_e{B#eBkR-=&s zEWmB8D^YE65h1#EHED&+IG63f$Wtd39F}q;M$j(T?^-ZC5Z=62yn|1g?c;nP$Q|kP znGjq+CyWWB2eGd|@jt^21H?!JMY2!t3iN?_AD4;9%~tzt5d6y^$EIniipRvhGx%-d zKL`HvPg6Ck91K?zrXZAwHDD2=I0C;y?=H0K*o1Rzll_|T9~b;1ved69yt4h!U{2NT zT~z9rx^_Nx5k8}S27l4i?_diBk3dyv(R!aYAs&~!BrszexMjCD26Y3mq--ZA;#pcTycn^L{h5*YKaD6K6T zPxM&EcRG$mXwjNxj9Nt3QcZTtuy!>bnLL)}RAk|J4T`yWuiCAP+vLXTa0Orryj8*Sp5Ae(HB=L6EZT{`~&O}BzusN%%)cCLHF+D?}?pf6+~DsU9^uKH^m zDB_ahD8W)V#Ym1DOt^Q|Jj3#n{55k^xtdwp*#H>nRrK33`h#Jx4}VIEC?)>Yl}Pgf z@tOeQ^%Lj0w`b)~rA=dMx^$bSCt(=}wRM*oJ&)Sdz7(H&uc-KX{{T>A@|Y|u#s{Tn z1{JRB`>CeK?$@Jst4-nwtu5Ln0f69CnzhZYkz(3pZME@OIyI)NGy;FKiDJ(g6ajxs zvbegq`$gL9L(V!@--fd{C9U|n@*02L1CjKt0A`7- ze_~n56CL|T0-E4;cm}9U?HNfN@m_;>1)aszV6HaxH4V+IGDu8BGN8bq4r9YQVAG3F zdb`!fLs_5MYPZ)nOb?aWdsf;VM%m;>kK|rPeJU6x7xJ_&+f1DR>BU{Z>-4B?ENmj3 z+(f6GR*2Mo)?Iv{@R9QRS08n8Y><75<+2l{K)S{LpKZ1XcgFk-_7rmgZXYgJxU!Zp zAdup@LGb>@-r&su@?7)9dR#VeNoKdN@;Mnes8;gcNxYbdeERmNGdvr{9&VY7Xw=AA zdBu57pLuOc9QvxVsM)T(+bRt9DBQI2GbLb^ic}r_{uEQaZ+fWlsX6xbV-2bq!Wq zoi}sDIqOHVE7~7tx5Xu~w?eb_hR`pcmFLbKLU1IVSD(-qkLhf38W4-iq<@GJ9s!5Z`$ zOmW`o6YY@w#m#%HUmI_9`$*28Yvv*EwzD+mK8n@66>lR4iFXC`t{YL&8XPEHik+)p z!`~BQ)h*%|sv%|rj+NVg#Is%gEvNLLIgcV(_Nns6N_;B|1Lm9>?r;1surX*H6|Pq6 zOqw+%M@m)%$|Y481bi>0E6XGyNPc~*J~W@^AatpOhDE_#R1$RddY;G!nsU{p9;zIJ zyJ;T1D}xWPY&E9|K^SRI6)hB*-V4I&8lP`2_9vmPNpBC8gg+?hS~mAC;Y0D7l8(5# zBxIVe71rQcI2DXp-16L2xEMzs(lQMIbTB^HiM;9PFsweF~tF4@21*t0o%5&M{5jNF>_TCc=^sMRJlX|CnABCWw(jGVmea&krj6@ z8K%!GNP}PiQbOb*+rR5qsvhE}ismwQ5mT&!IXx861#Aeu_@P=Oj>fLf0!+CF6-D7p?d~W7M`%yVTN$eI z*+ke1F;t8)mj@XD)}fpT$sIuHKnzGD3%5AMBdn3fggq*!+R0%1bBfUNMaqdYKpEa` z=F_*IO2WCHSXLtk71|_lqU}6Y(;RG}8w5}Xm0sIwSBSU;kF{)Q+BLwa zLps0JzO0vBx3W+!06&G3H9)NUbD; zV(df%HKhVVv78*@m?d9Kdr$@s*d|F!GhszW`_zzDx(1N~my~>>xwr8qoBgOPO7-uG z0A;|{{SR`v~{VYxm*x)L8|dv+eG1l^0WYv+f4XCFe$gzYIY-WT5;Vj>|%-3xCC=R9P?<=51BYMHMOj8 z=hB%q`$j}Wcg0PzM+6gt+JGtDMG*PNQ$%c7eEkJKnEpuyPikOwCu)iSW2w&^3X%kb zoy77f4%}@$X_3ae`td*-v9hyl>rQBh3~H(vp&_?azuJ&;4{89S_V)lW9EzIK0O|hK zX)dE?BN^{fFOHaOnQvdjajXVai=}e{MPu(_IL6B0EOms zyVKq^Pi%~RMR=w6hINYuF}1S|zJkB0%|pXFMz0I4)w(wEjimtx^A+G;Ed8213*uCj zWYbb7e(CbpWjudLBZj6D-wFKX!6u<+aF-iMDcJi~?eB{94MS?Xl!-XTc>JsNYsdcp zu&k{F*IpczHz)8ld@1Aq0NJ<3-VK}mH&1Yn(Sqe`sZN~C?Km1<0r;Vz#ip&L`}uM& zsIH>=>qgcj6Ii$<{VU|V{{RhNX_FYIjnT)pDATnqTTcG~k9K7v@u-#^y^E!b{$uNi z?cv%W3>~T)i%BiqeVMkm(!PDsej(o2-mBh|AnDS*Lr(aQrC#1Fa}A{b0D7==rjCft z5nt;{Bc=^{uZ8|R_@_c~_L&+)9{8^I0Ay&7UbL?wU9VRR5J?ryU ze%9NXdlk_8Yr>zkeVnNjH|`1G9M{ttAH_cg_=*_Fxs0@f?(tuX_Z}C$SwGR(raubZ zv%m2ciRBwvB;1~j#c%DS(9U!j`)o8#D^gANQUxu@!4x-zZedXH$(CP3UzENd{h<7D z;klyoWG<=H9&75~1OC@KcA$$EvbzZCcon2ldz_L|N7U2FuUWyd9ll!F(R^bxF@2v? zk05vH{Hv1i@5SE+_?3Tka)TqGBD(~A2Ub$H?2J#L6*Iy`g09ipTk85<=vGP8H>GXH z3<W9Ltt5^YwQ)}Z`W+F(qv!xjl0vB!%W7I2mk;M> z@U90;_=$N2*so&!E55Pu-i>(63mvWRTuy|Mw=`K!*TZgdS&Cw|Eo{Z0!(-}y&MQhg z$meabZ8_~3w&J&91ht17$i-M#)Pc_x9MSDS0X)BNSd&F@G;6fviXze{Z}p9|A4*|kb$-ooK2jO0F84>CU!D{4`c>OqEL$DQ zO>bK^S83xEa}SW>lFL%Ii~SvIUrn;VlXRC~boQ>+DWOl@w%xSJ?%{k}%J3B_HG+S)b20MH_hm=L@Q0L1~_RIooa7l4?Iaf8Kn zQAGoN^#FFN)2utT>=XgzH&&O9`;Z(~uAc*>B_zovy2%;C9_X$F3{YVixi#GJsfiBBGYZOqmKiE4S%I z(C%@ou36ocRBfbJMjF!2)ZN{>#~KWhdR1@uM6`LO4Hw8gJ?rI9+QY{Z_+Le~@TQe> zw&vhv_MSr4)T#4mh?K048~E|@w(G<<()f2nx$?BMJ6x&z#CETbt_#TdA2|M0&o)CN zPbba0x2;t-o>3>RdwN&U;V39APb#fmVTD_FJk>daah?TSHweQk#X`)a4d%K|V=>SG zYN1WU)w_oUwk>DL^5>caijsPIRdcZY>U@%9R(!Jm01X8qyyds&JXL4=xLzv5fL9&r zgpBKuM@kDIaZz`tWU#1CMQ8)JeB4o{k^KN7LEXNs00W%UQbhyisO;q_sKp|V0i=NJ z{8Wc@TY6Ux`-9^h1$rL1Qh3r#bON|3$Ip?*YElBIBvcZEj+JDf#&c2b1Y@OG6+lr+ zG8+P(t(xqsilqjfyGtY{VOul6k|B2pGtvq zoF3I8NrUrHQV_%5q_exZ)8`j9Zex)-1X8@8!nGP>y#hXi@R!C$iUqRQhnPBNwR#h1 z-W>5=yI<*rR#x<{k2dA8w-vvl_>Wi6Wd8s_l!58mnq;`6-SrI%P|@(BKQ=#6RmIFr zv<3NxYLi0vucuzG*>zOf>-kq*_DvsLK{c^d-Q8Q#S;V6|FnZ3SPi> z*?#qF8Pa=Pt;A#>rxjsh?4@N;MN}{b`CMdFaZI>8)XO05YQW2$#K*nkUI?tX406FF z5)9*jE3A1IHQEO3*D!6KE0&RZG3ihS1)qg&nf~@_@$ikd{{We5q_x~6;c-`_W4qFo zfa6bvY*d#iip0IpV}nw%Xhz-AApJ#pUKxf6;<=0U`$n^25}a+7c>F~c8TT)Q?EcT7 z!EM`M{#Egp#fW6nJb1S#HvGVf`%^=lCYx@J)TpnQ{{Uz`C=07yM0~j*Rt29$cslZZ zL&K0yAkOveUo(7L@Vwe?wwlxs{IZ^F+5QgeV^Q#&DEt`4KPu?_Z=yx7=u;pWa5BGz zL46OEE#=*83mhKbN?$kT89WNiWRlK#EoV{;XB9M3BMdhf=C(#9%c*|V3qbrYYNKVg zJ94MDN{q_R+hYXwz!|QCN$_T|tDVTEB=;DmBOKnU3=ROTJvT?zb@>E(WGw34@x^*Y zr-OVe;ka7sUAS3_jNy%P8t=xfJ4s)$_+AxMP5~7>#VDPvhlIR2;QMo_c%tDXokn&O zz^^RvkH+hnSlIYwJcw6~!;U?x#x>s*Yd#{ndz<@)ec!{Mlvg?d$jxTW6ic_4w^#F< zo0evGs8yjk?FskLTM9n7PF~AiDbHxXmL(;SWJpdHE(hhM`1t8E{9Usfq zr)30jO;8VNvmAS2dX$GfI42lW# zqi>}qG1iShc5#7A#wjuDNrUtiASXjl&#fm)UZJ8&~k&tfS#LGsf<+(9%N4-J8X zPr%0lqUloZGyxtmMIh_+pd4p3pn@nSLytUSfg5+}Of8O;CS9-v0TD6l+LNU>k-?)Q z@}QyLN-$4aFex+XK`|5@oKo#M;*bH~WLQmnj5W0`;e3BZ_!Z!kNmPVyLYI&uWoQ4l%_h z+~8A}9ViV40;|%c+DOQ#ah4eAQ>pc!k}!lEp4B52+mTAy7#_6{<+k>q1E(XU1cJRO z9Bpl)lj%STzgk{1O&P}mnYnrj0I;~|X>hBY8n3+PicPPa`p^WSlW7K+Fe#p2V@sai zlmP5})Q*E3QW3ay=8!SqPy<5XW}F6ipp2iTDfvby0yEb%pHWi{y=pc+he{0y=|(%! zu^bN6+zfF*666C-B=sB$X6%7Z&IJHAoH3jlZbulV^O^vag7)H+5Jm+vBcP=quM_|P zbJChohbN^uS(c<$B>dC?4#U{e@;lUyRD7eYN1SkKIY3^5oVX^MF;2z@r6`~ispgR4 zntiF^bIno#F~uMqJ5t~d^ke0wkPEdy_N7$hjPXr84YYOXOaOJo00G4xcZzVJ2C%^t zg9D0I%NiTyGytB}Ai(KSk4j!B0%d#-w2RF_f+_s=6af9i9kk+{W`)P`Q%jS;=~;lx z3QeSPDM6<5+Mhrhw|5{?fN@eQGKyhio|M=LQYwm$mZS*=bBaU=5HaX2Z?3=hWjc2zWlmR4j?(4-k z$&fbjP>2ZpC8wc(dHavbQK=lk?B$%n@36jQE*2T z^D|X`IH@)UIiLxA!@)f&Ktr0SdhMYG&`xnc7KsYLnvo|1Ak|MW9x>9PErVHsq-5H7 z?@~u16SUT0`LIEwb~&I8IX15g%~Zh86#~e8YDRLSrDz3%A5Ll^fN-?|GB-V`!LT^( zKo)~-BQ*IKV}Vq+4CM5u`N-T3)B$61g{JRbwH9MM(^+%KpbI`>AP$tJm{xzxy(#`{ z6`)+D<&>%Rr?ma6F=TA>QnRR_IZXw)9jG&k&E0|RNDfauC=OFWvGM@AYDSjsy`D$?Nd+}L5YHjOK3%679^q_V(7DPR1Nsp+k zFSYv9h2;Y_!{UP?9<`7znA5j|)Y7mQ_W{$TCgl8Tfs-6&m`UrJEC>J4_1k+m?k&Na z?;eXVkg&d!H>8{q^G?IA+<`e-#VqDyLC^4S(mvN_FTU{KkZ*MPVcgL#|WQR^6xB>>w+0Gc8+&j+NG}#MY=_+w-2)8$%Pf+Aa>#1pr}7r$Sr{cH7#n z4HaXE10GoSrQZd|{Cga*KgzWXk^(nB&5o1-gfz5gEgB3U&o!B@+%>3qs>kmEK`}OL+6!AxA+eg~?rk?*?oq)tqoyjy2ih+VbJC;KHCt#TU$ZXndIb_Y zs3Lnq9O=LuS21a%#*!KGHue>(o1ICwVMhK#IO}rCZBAD!16~A^!kM zly4nzT{VuHu;l&fV?`r7NB1M?ngHdd)~A_-Fnok|sEO213=UelZ?S2%EtxrU-n4_+ zG-~IkK|ma1+uulnG;@#Q_N#Uf+spop{{S;5?i@S z+giX{HXB2Cs6Vpjx40J(ACt8*;%G{FPT4uFeLngXO_H6!ev|=atfiU|{BNw7tS&s} zDBC+?t$DW(asH0~0K2Kot8N&x?r=Gv3U@L6jRdoEj@4J~CjJjEK3a-`5&yssr zKMX}DXs2Q`zyg3YbmumYBK_`q(&`uQB#Cbb!9D3?)9xY#E%I`CG~G(VNaK!fM1ar+ zt@B%1X`vtHk?WeYj^M4n}d#OsRAw32T> zd?4dJs_+*V&YW@Hw_emo7w%*GqqlkhpY5|nZ{~z0s+!%MNe`HvJ*tGdqs)dZZ6k`B z&Q^i~!|vmn0Lj!#Mf5euf$JJB7d zmc^wxX6acs61-A0P__W5%=5<)n&JMG0ny%E+S|Z4kC^Z(wUR867L$THVz6}kS+6EH z61iyBu3p|XsCeS;KA4~h9d9k>cP^@#d(i~)0xTDZI6kIPlck%|DG{{T??WXfV(s_}tMwXnUo zlW_go4)uFU)1jF+0fq*x>l%zYd<|=#pBxGRpwn7Mz9~LuUgDfNr z_Ys*Gb*=V+VT=v?R}=xL_b^0V5eC|Mi6*z*85?Say}A_M&79OfZnuYg5TC68W=(xF z&Gt1vDdL-X35F5}%td2r4r9AnU}2iJZrUQOetqMbq=2udG4oiCaaz%`G@mnm^R-uZ zRFBWKTzb|Gw9-p<#fi&R0n|&Vi)O{b?)0bx(_O!sg8+6FRpD!f^5OZLr!}PkHWtKA zFyo~FRxfCvrU+wN8gK5TUpR5Mio}K1YoNq?nzMT(k<6Y+$vr3or7|S<4ALe7^sH@F zm&}aDc2!o?<+dvGk8D&Lh2^!_jzCDkpbqZR(qn1oT%F%9%UIFH<;x)3kSPAy31E>H z!*u*9t9J8Qn4urN>}Ud~p99Eu{G~fqeD}r@(xUvenRNuw&JuUSKU&DtVVT^;1CkF~ z0MUElBW;!b{{TvvWot38uI%(QntqdRuq^X7Sp_<2ZEoAkM&Wp%2mP&Y0EchQn%_%* zutW35_r*5G!pb{waQ^@)2ByB%?Ji^%%6J0+&;|rn23ekS(RvEm(r%`So;!eivCvf+ zE@QHM#M_1|E%hdmgYp!5PzPqIZ*t_K>;j~@ySIiu&5kiymfD@8?2DBoaZ$*yD{WT< zv7ikw65<@dHrFA251n<60UR2>*9{BEkv|^Q4W+-GDUr@`KoHwngm0gpO4zoBX+Bw3 zE83%G0mc`BT4r}B5;2U>1q8C&D2W%TuB~*dcemUB04*_DDj9Hx{bgH{d$^ql7&xE= zhfEfL`OCbXp4DdF`IB|NcOOcve?04M42`whrE}3keFJ@<@(loN&ayFi-Fo(_q)PCg zBpsksr%`D!9D@Lg(zKcgW7wRBpbkA_>SW~A%L$#!LWa99u-VHQa-#yPM`fl$eAMEA zGiLGyzSmqZtgBg#p=lrRtJ;nAx0$jrp4BJW?b^>0p0okTzN>dN*-+W}tE;-W5!!i| zO`a1_GYn?0 zOLr9U>{0>g_)rHDX4Dq=+eh-k)v0rA=?eXxJhOE*DnoK_#>_G;RMoXR%V~B%ycz(8 z-$9yON{@m%ib*bY7?|6j;e9FEWv;U-?(=pB=C?0xme>!Q=4GG?_A{im=1C9Cy{kG; zJ68=DkgBg3sbbSE=LgF>5xa`9HIzDRe>0uK(zFATx`nK9Y+tG3yA3Z*5ke)Ia!*RE zx>?lxxrhhSy0nf^g5Ag57~+5{!+ayS1E*@UJ^i)Bgcap@s`pVWapf20sl}`5ZAGD>p8-n$&irV5R;wiTYKoZ-|(_6T>Z0!}v zOK%PB!YmvvdBt>Bajck*+?i|z-o^$`D?PDX?3Nc6_o6T1J?mLD zn;1g8XD{hR^wL~LFI4=awE#t^Mq{;A11-|B#gIq?r~1L#rnNVhvW?C1FEz70kDG&U zjFCVPS>D{sY}PJL^G~3xzO(_8ZKq8PGEU>nW7FEQ{{ViE=Bs1V+P2eJlMNECV(18}89SOp zPnNR*={8&U-#P4Pie0xpXu_%Dqp|Yjo#dB*zr$Ail%3hoe(7ifLGNs%Kvj1d&59Uj zx)a1Ufmw@l5>8_N5leA>)SM7HRoyOV zLSr~DKntnraa&vMfaLeCNKdHGIQuXv8@+T|g_XRX*y)OSgj(B);%=N`fFgrTx|TsT z)WC(U8MNqR{q&N2tNB$#n&L=Ug~mrp=ci3dWIkS0bj1L5t$Crv7*$}$7{ynZ*o$q- zzb|22J*|X~GKm3Rde>(KhFC-!a8W=NY&8i(2x44d@rvEL)?NfWW${@r6k2S?Sja9% zO3Yi?TH|fRLk&P0`cN}S_Y*ezTf0l3)?@ zy1H#PC~YkSw>T65%^P{G=ie#b618kK0V&%2dsck6B5T%F{{UB77Itzx-eRZn{ZMkP`I`kCnAH`O1VlAAp#Q9JE*0%*^Q&Ma4!L}yac}b)onuB z;E1DbukAn}nbx8S;fWn^4qrBJl7TXs@L;N9zD_3f?T$Us{Z0ZtT+rzaWu z)u^#)Kb$zOa%rxfBG8Sds$1V($o~LmlbQhNH7lE&$^^+9S+@yz=C#EXB)W=i141nw%Yo*iTEr>1G3OmpPbZtK7JiXT- zjw?3$!K0b5*xY(n&ZBodvj}52AXaUZQ`}50F8NVF6fR)ChTIr|7!^X=;Mu~`%6CZJ z1$Niky^=-cLxy}~70B3HMLew2jNs;gBbwU(0QXl=jl1hh?2|;|Ne=RTD`Mtf+$zMm z*;SKLf>{*`?Ag|UD9(ds={O^xtsN@nJP2h>5#FraUFnVTx8AH`5m?I;ZWIB~&3$gu z2zp|%wHYn91zua$i)&&*o?*f1S#kLZcb56aXal3Mm?g2n;@IgNaX=n}_IPK3WdINbbJuc1XdRb7K z?LZkZt<3wIaobj*lkBjRKX~y(kV^^$Qa}cgCXGB^S>0Bk4sjX)R0t&zFga@jtWqL(QYpJs`EUe&Ej z?Bc)3X~qbk4x;13k2SfyKXh|kvugG>ak?Spc&RlFXIr(mlG-!-wiV0R>Faxhl=9tZ z0u`P08;0^m4tn;*ZIf=8w_qAfR)x*2t&O;b+p&faoyEVHmc$INQ(C&!)|+W=e24kS z=qr-5)9>$Ndxc%3bfRl?w;Qg`=|4&U&sf^(K`OS-ttXRrG^RNI=&idbZEhkf8Ozfq zyS1`!C!rJpFOe0kurmxCb*Q29r;IlN1y6OTS=?EHA;+a-wf_K-0Ez*-Gy$Qh%@W$F z&et6=OtZR`EZOc39XK0&7WrPdTdUb;z4F-QLEz8_L#gWTX|~?i@4s4}32!8gV_7oHImKeg@TMAGO>04M zX{W@l+!;Dh2R`;!HuoNBeWi^_E#pIT9BSO2xvhDgImg<8$Q8?i_xHdA!RROhr=IFF zBF8kCQ`DUd8MrTmAwxcL`;;+JzSy=B@+CZui#@4otJpTaeI|`$wi@jFht2q&l zqKg4(HL0#y7DdM1rjc%1;${|L@xiFIKp~t(0)5V=s@rPKXEF$*1QYWbKyJwTgf`jE z&^uKqzSf{^UE90*RoP}bjlvXts5*++)1!#p`7xiBC<3C&2bL#2I*PXUw$_dv7bJA3 zb+}<^2bOV)mTO2pz!gS#>p&ds&aroOd*(ar9Rk(M&kze3L{{y&m~us6Nn<>d43C%8 zR;-pbw#uy_-NgV_j_&5}12ebEdm633ZalA)*2mfAzuGMj0C)g&sc-aqt6NM6_dl6IcB=OLMn8ntY2ocJ zO_`cYwGI?@HI3qX)rxrF(eM|cAoQRLnU>)Fm<_DGMk$iq-C9gMUR0b z=C`bwwHBNN4xn*B7#DiDnlQ@|Mja^*vcaQ?zE66sb0fueQdH^Eu0yA$qTAH`qp!69 zX`)IOHqVrPwGG{+#k78G19mF~<-W1G`!a%XaJ9d2t!gQ6jo#4)xc z0~(Cab%hE}&P``(7KMw}vx?Kh3npsg6Y9LNmGGcJ?-=9u&hLUt;JQ1A&u7buWl#-ZG7E7YC0Az#!qUN_Glnw5y^+| z?NQ#`#eE+V2>iZk4JS^9ee+NAgZFbl5JP!Cor2q#9Ew?O@8_NF3uO9KkBFsX_jd3A zsq7`X59ed$pbR^^o4W)Nl*>plnu^y$o^?rX=Gt?fJu9%gDRVwqKu|g!)yt2!UECXJ zIu3+T2H?9(G!45UI0B;b()v?*ImCXIopEn-1*1nO1cQvzK)8eWn7|utHJP<25gbt?nKsYmBK{ z*M~{4^P28P1&3+?BDpr!2sUFq@m%J&E&cSd!xzkicCLy`^KmO$$O6JR6MM6aw-(cdx{IL5HJzo)6WuqScOJmj^}XA@+Znz{#uQKmS#;Pn z9aP;s`$CLh^sQ)SvVfH`2HDcEHH|CGkj(^}0O~4@os0>^&<$J53($*5I3)^zzw96<1KzVEb2_ zyZ2}-5_`4#IEU{r;DJkHX%@8JOoPZ&pap$S3yFld1!~>h=9bWgP#L`{dGswZ+9Mn? z*}yQgWIU8+eWKo>Pi!pa%!RLdsDCz{X^*y*H? zH-6#80At#-N2th3{_T2H7c?SOHSP}P9Qy^cg-6r*gItmv$eNVg~E+G;6v ziFF&`tiLhfVwU3G>eS^4$8lE%1-(aegm@z(By(3=SpLWI_L9$xhV-d)tM{G)v&IxJ zN^YXILK7_O(u)D?UJ&@SEnrA>Ki+QdoY%G3c%Mks<5_Jb!=K?b@IHq$_ZRKJ|QUD>X0W_5ERu-!=PV?**SMRlx8Y=soqXw3ZFPqvZeGrDFUWA+~5ihlE8@ZYiu1d2GDUexM!noK0soE%R*+QIbswCm2x7B7Y<<2`*iz_#` zMw;!(9+ll<+aVZp(-lf>GD&V!GJzEUVri*qaX#3|UiH&U2bU9=(4H!V)M;Tl#}r_0 z;4>ovliL_t)WoO(?2|XOQYZDnv^!0qUF5>ZRpV2MS14rMp;J&zS8jz!_5oC zcLGg9A-PB1A9}ua@rS}o?HcgjXgRuv91h~Tl*}9~c_)dXv9-TP+yhESYO!}~qe}{0 zmdhaNT$^b3w_3}8ZM#I!o)q@3%GM1!?V8K@ae&pLi5%7wMUK+=NwG?hcmlPxj}d9w zR+;v7Y|GFJt3HzYJ*j(12tKvP4Fxr)^X^M7-nAn%d>C$|zLNIkvkP{v{{ZakAaSPu z0IYiRn=ACvu0FzpatiK$wk&NemS_~2Sa1aZWa<`cq{7qOA3A3_3Ofp=ZQ^8T3dizF zIxR-8b9b38{`lYnRkRNWUX4oYThws2kn#m+1`W-H-l3>1)yk5xbQSDUHLio<%!s!$ zAi|2{Q^nR1+_v~X(c|Gr6%MW9yFE&1E$u-uk_HU`N#RW;ZeqB;zn2n7I9i4Dw)0)Y zo78XxTGzEmph)1eA$M>{;;}x_{)i%uO|lvQxue5wFG^3gMPAjHtLbO^P|af7Aw7pm z&se3kXO*84A4-xxwN3z6-2VWj084jesA~)4TS8m0BhsyDJ{z)zHfbaM{9uaibW>?* zY|9Jn-N)lt7kYx&+(?nQk=yucxq$QQKMZObo})CgIEok#e)X|@Y;<@7U3}?^)4kLt z*!IE(joEuw9CZCc`UxSrQqiwW(aZ-`;cZ&OTr=80xd^8Nu&jGaSYy?m-d5YUHI1NO zwuyHncCqd3Mk>?KE}^YAl$&^}GdJxt(`l`^h}j)5 ztnv(~#yi#rg|BqGOSZg#3i#Vx@ZX4hCp%xV8R91k z>?`f9H&D2=kl9=SB2FssgGJQsq_&bYm+C0?f$YzK?mR)OM5}#%<}J7?y({Vuh5j3qpJ;lHvGCFXrof=?7;f|h&$J@(jqag; z_I(=D4F?@7(R@3v_<{)9O-@jt@v^=I()@Sg(Ja&G@R=K{6&)*M!=66Y?(Sr5M&Xsu z8&6|Eb04XC7mT6u1UDEShPx=F(=|BqKsf3}d^6zdj}&UQ!67(^jv2cC73;8H-{>Av zO?8IH&CeAL0%yHlcyCXW=YxvDxY8``hwo_6JV2L`?uJja0qI-KduM+BOMn~FvMBR= zxGnb)4{D?f$e}ZgSE?Ti#Uhy$ZOw9;hlOOf1<|WOIg>dbyBHX)O+9Cm=62vxe_>q( z8>7d)EVeS)$Ax2`O3cveptnVj_mU54noUB|$PD3$;0Euhs?Y(u>zcC##E99BfICoO4Yj(OpJZ`Ix<0kU$#pv5=jJtZ zUfeWGn#>LO!8?ZD4NnXqauoHf>uax+Wah86)DaBl6aij!xrqMnkULg#%{hIWaK^WV z-MausT3C&<$@1eg0nRq?0o1GP0at7V7FKo4tlF@}S+M;wYdnK`S`x{tf}YP5kQd?!i(oyxig=min^Qj@gv zP`oG0+LT2PmYH9@Ko%k~#&!`^rHvT2)y`;8(>4zTRjXLaNPPtWQdmmIffXjnfcZEc zm7zOGTjb*u+{?F)4FG1ilrH_daY6@m-Mba5B$`HxQ3ksYE)H!lQss}oz5LRqK) zxQ;uFHr=h-nvqQjIXTTl`_L&y$i+;uI0JP6SGkR(aO7hZBoUxe+j*ojxf@%(8ITMh z$e;#DsOnBRs!szfc}lnTS<7T`Qap2D0w@EUm1g5Pz^Fr$!+fH;nJtf(h327q2;BmK zmY@vfjA2fAtNwl$1Ar-B2+}Q`#Z#U|hAbX^r~=`b6zj;VFkBalY3o>ta|uzNK9y-1 z5QYbe1C-D(%AW#XkR06EQ9 zn&Q|e6myyhy;p@4o?hyy_Sy*Eg(qV@lQs*tH8}k}@zu z0Bf&nI%}JF*M2@@?LxOhRac?%?~Z?EPltXjib)eqhR$akJZt?c;_n##z!z}& z*BT_^O!NhI^sm=wG32JlOiW>pUS^PJ|OyO5-J(yt!7>GDYH~8>sSbvgh4FVp)MNtm2%Fx$X4hBIFYP?r zb_5aaUkl#&Pgt;+i7nbPJ+W0_)V2L6kqq(;y|-{H8Q{N=>4ss^qwMWRMmPDA&Hi6X z<0rA2(Tq;Kde@M6Z{pskrwx~1yiWXPyZbMQ`gW;ut9D8&dt$Lvryb6i)r5~h(RHs7 z=$}1}!^S^{2EAj$za4yMqY%wI%Z|A?t^(C;bqhq6+GHv2YPa@l$XEpgdsjqpRwh_< z_CD(HFYQ-m(TH`wmCqR_zL?NHF!(>j5yp!;65hD4#(V80qKy9l%OWcp%f%ic(54M* zaU!Z8TG>~*$t*pO-S4sJdb@d%6mLznk9Xmjlo>5f-Ms~VPDUsGRH zcrW&_wbW-zYx9zLHC8$On@7`sYS(nh1n|mJ%dU$|_^EdRBUOmFUgEg@BjT@wHQ4;Q zB~Z=uu7K&9KA=^gm3F_O6^y7wja6v%tuM#E9lups=U7SX)!ACjVRl1Vy2>%yzFNQV ze4<14HQWbErv=`<;of3*8134)=YZ^Q98vY!+91QI#Y1+YHXByHd(nO^>b7NJ)S}*p zy?RxL#Gen}##UDH-`}-!OARQRs*z_;E%cBao<&ucT386!GFq3;v(y6pnoZk zBaW0sYBCsQMP9jh;f!E%DmX7=blTV$pa!~ewFfmNqRPE`3Z0ucDU2GK71h2$^3VjE z({6g2hj?tMTB|XUUx7nN-cJJrPy;^5t;1BUY4Q!7sonplveoB`f|DM*s5 z{DY-N70T{zwL5As=L4ltHw8xF_h8_?6-(_9bDkeJYdw z@*<2mtCKIt0IEi03Q>p6UixQ}jL8(np7oI}#HsYHDP<#p&1Fme)lmgky({w(%~z7~ z4BS6(P9ZxI9%! z0?=6?B0s%V9gpEkRgcOk2rGbS0Tq?k1Y;EqyKTFTI()*PwUd+3^s2}U-NxsQq*Wvb zr)&QJy0e6+#z3wZ`FwBf(z}guMAk6wJOC@tW@b_J;*tTZ26*XJ-)24OrP+BE8E3@8F|Q%Co>s=Kmk#9u9D2KAE9j~$HwdATM@Fx+CMc=oQ|xvJxEz{Yb=ZQpdBm9IlGHbWP^Q$Kq?wP!g}38tTv z4mhKr5a45;)X~5up1?4`q*MiRc%z^ZY#HF4$m^r!9()~-dgq4cc4#(2WF6%h&;3cWO8 zPZd#<^q{mf)O`mPA?Z~BMC*#w)AhYqOmJ+j89?oxD;Y^n z4N46NEPDo*@q19URf_&C;Bk>&g{AoKLe`W0AgVF!!oFW0HAKbXaLLemRVfq5kFe#@ zv@J>@C9I(s^u=b&;M<7Fds~3xu&GEQ{Kjn7I#0 zn@iSUB^n*TdQ}N6@08`^VUKEuPWaLSlYeRkeJiMk;$Md@)NTM1>r|vqA<0E^BrZJV zD_R10r8xq+(c&)$UEoY3$@*4`Md3-K+>D41y-mZE;uh`|{n@T{Hb00h9Zqp7arlb$ zRMNaBzkAHTom$g$?*!Uv34GTHm`-t;eB$Lj_ezx-(%j?tMR}jb{UPr>GA<#9%`uR3 z=qsUL9{653Lw%}0m#`wUbx(>u47{+DPrH#`HeXTNvnt1%dbw)_-R>fq8BnJd{>`% zgX4YN!^+YiTXh@)IIjj0$i;ObFnuX{Q-K1r0kmNKX*r|m zS^xq^G^d(4pmRtGLVUbaG1$|Q*?1IW_n-$9Qnele^rupBOb6}+Vwh;}KqIN`Kmg~h zA?xi%O*|FG4_ci-V8Er}xTGLrrcJ829ca`Dc7aQQ&{A|f(&S?_xj-@NN~4TZdt^|& zdkQ%~kxtRH(*mzF<;FVGPBTc*ZUq!%gXv4$cAx=BCmyuzp$0QTZ4Jn!Vi@$GnG8?8 z^rr4?=AKm7~poK%wcdSSJ{(6Kt|p@DWR|_!!jB|s=QE4L4KGN z{`*BC$3aFY20V4*m(rR!VN1v(^q`VJ4}OA^fIhVHdye%PIQd0sU=(xm)B27F0;A)t zJ9o>0#RRlCF;Rh0oRdxlke|wcxPa{x^yj5U6x5^T8K5pX0VmR?>i)u^$A3z&zE}e^ z5+Ua}H5eJ@oKORiO<(}VdQbuu$>y4UF-Sq(x1pzc4D&z@I2|~qZRBIMJ&Eq4iV4m; zeJBBTflS|y4;1wE?NG_faX=0&mg`75oYQ=>+MR>IGyu_&(D6>rI#Lzq+MK(23qTE1 z%{v+6wI;#_R+UD5r~o(z6s=7QlgCOjK%mfxs61mF3VUELG~apvU_)(Gv6-WaVaX{yh zN(M7c0D$*A&@oB?11E}aL!Q*YaK$&hCUSAopNtS!ngCCm88m16)c3|kG>-HD%!+uy zrr;h0F47OufFw+gJ5p{Snl~I%26>C2H^CkAo;Lq`@;<4nHkIEQ(!&Qk&0(emlU!~&R4ZFdp9SwND4RC>@E2LOx!!`1lyA z;DzRzB_PliEwS!66rq=IHC)ZnNX;mGf)}*{Ci_aMsg`&P4d$~NMc@HZd0?E-2SMgQ zepNhD5f(P7=DF>=e(x0V<|r8JS^=uc*riZ5@ma!o7p*yGm!$w`mQhg|^TPD1Lg1d% zqIDc%qTpHw=Ic!u&sweL{{VDQU#0~Y0@%pwM&(nC)_Hc#DrY&XE0n+HC>uoui0xIg zfs6q_J&B+>OG(Jd?M-=j`Fd4y zr;=&_L8q2g#w#!$0)xdTe`<(GGm2I?6aiyqIi_x4cDEv;3|pMw3T}RER)AP($K75k zJ;Z(9rlLDR^`s*Q<)8})$D?+nCnpsHboZ!t8V6$GAC(?qU%D!uO-Z{W1GNES$Ywm6 zMYs#W6;XQdX&8zJ%4mJ5Ht;#9JkZ?YsjC`aHIz^srQsl_?@`jTgrswc&0)m?MyB#=HV4*$*wGhAIHmK4TFk&5XxiSi1&{yH z_N4nmfhtLoy{g1^t9x>?Ubo0AHcLy(4jb-{^jgm=h6Qt;o|WaDhgWqFg(Lep%5>tH zBHO*OTY<8vTVLE;#1>eA^sMb$RFdx9;I@k=)_@Rd7Pe31LPO`Us(V9jfk`sNUYpw)gR4J?h?{Yikw2Wg`GpEn``Z z#$-0hxaSlBE$xxhr!pj=6rKe{ZuUr8;ORd11WK^q>r_Nu`$MVrKbMrEaa9hS_C+=0Gcx zGyS6XYmK{&b$0C5g_uc|$4UUrxQ6QHQ60kPV5PFPj^0BQ>4oYuT6X%km|H2wt!Gbk zX9sr#@F)YNeMSiFe7keG`e0TS+?N+6NnN00HJxqpUB?o0>T1@bsZS2*%7*MQ=|CFV zfR1}q-6#P7z^bGz23PLlACKq;PH_`nWXpknPfqbIss5xTwPqq{(`X{!u2jx%@as{yH`nO z8rnHfuGT-LYH4?@AIY2p=+psP&Dzr3th^!h?ND86_OQBnm~`~38k@E4*tY`_cg0}c zX|c4vN{|5JfGl50Yp9~h3IN@zz19B!lCj$G+;fVlb>``jt46z%wM77i>4oO(W3>Qu zRx?<@i@0n(^H6Gfx}pGyhMP;Hcg!?gfW(|kW~CS;e7t!Q5zypdz zxQ+I#_%)@n#DNnYl}7JQw_o0?UB z)+o+)^#i47K?lmW2)lRprJqi;V3O|p)unBEn|{RV2^;_@0`{M$#Sk-z0cx7&OLve7 zmyUw5gg5r8TWQ-+N^V^Q*vTCQ04Ld%E|?d`rBj;fXtIkRJ&k5x&2c2y#>ZOGw4HAZ zaWeuy#Q;;Woo+5q+d1^~r{CIKNj}&Vuu4Ot`(GRC#`hI_SUxfjBm)v_Mi?f z*4pZMHeMa7IIWrIT_QCxzE7oRe*Wg@svndc)a&9Iw!D9TiU5k@M${xrvOZMmMQjM| z=1sQaapIjb*+Hizx(%<2$+FZTv15*8Gy&4dq(vT{a(1&;W|QIMIl6b?8q3uDMlS-| z=V|H1ZmjKXrHErWY;!;pY7K4xiWbWIRwcEXncH|FJ!?h_n@d}5@^bYsyoT~Uur2`W zKosP(k9wiyJ5%1q8!1<74u6KP-dx3DXs2l02NlUjb3UVfvbo#0wE%1CF}Ir^lseI; z>2luOd6OUAii=vm5hQU(_x)<@Ydx--AI!mVnhE7AYO86dDOg)`p4C>x?%q^TxDDE~ zqgTsaT#dlh*e^^o36-;+0H8Teq}zR+(d5BO(w=wvoV?Q=4AmsVOqBj=CDbAU#}Dar3xXm3YhtYVN9qMgy$IVQpq>i;U{)++PE!CR=T{C z?9hw~0Jk(T#7vnD>0MTnXZG85c?Zi}BiY@gDp!+ThLbJMp8|pr5^pcl;zF z;M*#KMRKxuhUDFbRVuwG1Eh{WvAZuA_o@cYIor%~8M{_SrLCLA`9|J3^{ovu;@&%E zmv%z0de93mr`&+DM8S4;s-97nRcn$M`c`GeyyGnwJ+a!G1@x?{@qk;}fG*w7c>^?X zt|Ao;xwOBWhvpSd@5PbY zGD55JjX^#*|OPbScEtJ<`6YuibI zuv4`3;(#lq?W`CK>PYS@n7!4-&C^>S-sh$&?cRdAeW|%EzmL0Iri127dnD@~5O?&T z4ZAxSo_tJ5_Vli-e`m)7L*@ig>TAjM9eu3klv)ET6ONrLG7BAhR6CwRi!A_p8*AEq zjIA2V4n_tk4!s?OA8C2O9dTUcmxL|t@jb-5D0xOBW)DAY+p!rk6HY4Rl9H4LNGGE*|jPoD0YUwdD z4=!>_k;O-B#cT%8oZ_;Ep>nPRe5$oTdcXEYlGbC-V5C=+>K|i^R5s-1B5_-3dp4&T zjdGw?TWMfj3FrHZ+5izj?!JI5-P~#R@d&LKcpZgh8=I+Z@f=%E(zal>wOfxpIv&-( z6joO%69SaqF#@oD!6dAF_Qor7Pk*to8Qi#_4DDldzqya(^%X|m#qHze zy7aAkpttj{kT5@p(Ji}^ZOPKLRO zFIDBtpL&2g_aEs9k$it{TA>!Y+|J9>R9cJoz{;T~YdIG_yszb@gM zZ_Bo$H*-N6#bwNo#YY>-bo*dkrnF;0rl_7$3$I~76UU&s+MPoE@K>ByEcdY9U8v}z zfm)i5t$C||qs8(?-xZN>q&$-OVDPj7)Yw52&(}P0iha$$SyT`grAedP7#xgbDCn|UUP~}m6tak#K@*+8^u=>A+Av`#83(OeMZ0Nt#xN3qHVa!IWJSqS zj8<**&o*O-d1*;K*V)eZOgXIrkX~DEkM9ATPzF7&!{i^D zK7yuQB1;lwFM@kkxVwfM5P`7OksNa0$^`RZPzFP3?L4nICLer6pA14FEw6)bYSkMnZHo0laxIZa)E1KJ{O+L^vJk?+8yXa_&Bq0eLK5 z=G@GuZ=k9&!EJ7tQ;CIIxYXXwL`<7UYRwOB@_Evoxu6EkYj81eTXAmGk!j}O`IDS2 zb@s8^$!b^-&HOdV-QP(Zg$f)mwE$JQ0yz@WG6*%&*_&HSe<8cpC90uwJd42QtVefc zaWBis^q>v9DPU>*sFxY8qSdXe&I!hA&*PZdT>Sq4C^fK`2#Olxlr#a;YPPnLZJk@M zTFcZgErplaZ5VF$tfjkcLN~U9?k{?SPqU3=$KG*35DR$0j5o;swYzL1iW9ROb*v3a zZPFBRf;wWDx{J2kWse)UpbIOhVn;<8-N372%`L6X%!C%}RPJN8v_%X*cx#^3?(dfo zrhKw9Ko{WOsYu!24wbiWZqXo%?^Xwg8bq88iW+RyBl1P81Gnin+P9 zTi-4|2dznQE&Q|WL-NVcRPuOsUn|dk8GBF#t>)`!4YwRtp@P=hFEpIKFl&^FC542O zbO*IAp?l^^fj(8m09CtZOWoPrzLnNA(%Zujw@hvv*C#!!is>q!mx|msrZ`4<3OJw& zR}&7qP3fK5?~S?w-F zGq&_z)B(SFaW&+Ic%$1I)?A)LOs$*~)~-$B10wyIBMBPyu4?XPnTL?13IOe1aTF`% zFxiUCOPfS(lBPkbiM=35t_B5PTYGlfBXk`F0Ccclq*iVAY;7H@nbewDTg;QARcqVS zPm&S0Z6Dhf^26mypFK-MxvQr|1*~3coHi>0@>ph+$aAzFl@-Iv=%gQ(u0f_7t1~i# zxoSe?JDdACVG*y(v!z?H)Zm5@69DXbRa;#p8OuxCwP!q$#dpe%I2fQuO!8b^Iw)PE z+OJ7GTLrs6PPLa5@{k%nqqRkR@mrv0;z#X39SGAcWr-dm*11hu8?UrSV+YKn^N&iu zr)slE(b`726}J|bHN?hHaC&iC0fniScp}p*31XPeD#U&t7Ph}>pXQew3h92sZQ-jq zuD{mK!@YA_UG46#As@rv(tseE1(YIV3J)T*bsaG;pokxkCraCnI4&gnIZ&i`reDP@ z7*D)A0ZWt)GV&iH1ht2go@=7hbW*V-fr79Z#Y{BQ@=JnP^sS_{yNpL84&5l_1DJg( zD_=J9@%Ko6=oLduw~*a^qUd>R+dh@uNgbum$gTiJr)$=04x9u^8;%I0ln!?C)*Gi0 z+wy&@ANv{Z?nSScfGerdt$xpFWqzbOZrxjm1Q3c}0+;PsVVZ)_h-H;^1#+{%X2&Z1$5BZT3Fkx zNUEqkE0xr)MAu$gugJX@)_^e~)5Xr?BInHXs}g9I*3p)_lLbZqHKU}7p5@bK+;kO# zt3z>hepXO$KPmv0-r=FMlFAkzy#7^_rD<(7@+-dmyqs5OXQtZd_A*@EpEcNggVLbV ztPF8UeAtXPK|mSP>Hh$0)t29I^3$lTOV*3Sv2M0F-Z&Lf(h1h;OTnBjSeM0S_ zE0$i}r~_k2)a%l@q%G5}YFw=8 z50nmfR||ai+F>Zov0J48OE!l&oQPbwe@@lW#<6KJBq(tG>z2^3^#JRzZ{1yW#*FeX zxtX@)bf629T-;n*?~8zVs#aP%MC&`B-S@3%VvopJVQdu@W(y`U6_Q-g27aQ@hyaZ8 zI|}1J({HB2a0eCGT*Gc-2?Kon#X|;=&^MfofO#T-Ik{|F(+1)4=clc1Bo{^maB&*+ z&1T1@>N?)FvM=><_pa*gPA6z9X9l?ky7p`)g)h(4wWoA z)rGCz)?5+C6zxM%NRZtZ7=Pgu0nEv2W}UV+2c>SnlUu;43C=0j&ut~UT*e0!+Z*d> z(c}Xp&;|WE)XO_H;{1S7sN7pw#D34t-%7@sOJ8#}Gat`EuvE26N{!A6v* z4(B7DmA|Zgn$o~5z!@+AHJBJ$ENHg;;2!lx=HE|A-c}o&^u<;3Z4RLK@bAIo7iT93Z0%`3V%T9d6&uY`tB7)T> znGAbXcwDFC?RJ2C(&QPwW>>6brRYZQf4~ zlN;LE{McTixxFgRZ9?Pi7ps(7mcX}VG_oh!2>EImuC1@VxsY23w&RS|0n%M-T6}XYnhn5?qLSv)$*n}{rHJOG(tJH^){IzgbKb1nMJ=VQ zsLP1dU{HX>w@IRle4NJo0b1}!WR9%QLXiFO2%a~W4qO$Z`NbC_>AD!eGIqh98pW*>?er#SKyGAoW z94CnMud>P_v;;(=xl3p+ujE^Ck^%e$ciO$h)Vhp{Q*w>~tSdygj&>zPAoQROZ3jfM z(q)$7>BN%}^7~awtJU*-wj7iCRz9HD5KIr7l6zLXHkTTf)bjS=ee6&M9mMy4YTFRR zK7x}{`$g8sfIe0$a^A&ku1JuF9<_Z|IPX$PFk?Na1DMj}8fIXME+4&ExlKP!Chb5o zKWfwQL_cS?YpW&u)x~MiOK{550!Mt%2SabHO=_)ps6jl8cCSUyek|&md}<{5qOUW* zzJ>)`2v<9YZq>1;+ge;(tVqivFKUMXjL)n5IpV!L#CD4+HZ?9 zsFL2{b{>Z`>2-Y`&~KXIN8?=H%+ltXUBVm82u~n32hc;E^q*>Nn^A!HMHPJnCNSGSFtmop2z0~tKv(`Xw?ot92H?( zS{2+=!;7Qkhw06IhvNSLh29v}>>VPtNauc4fUlP|kA?m&(k>n-EQ{O4$Z_diF`8#2 zsWevp%+ns{%fM$nF~>^2rY$wva}vq0XCF%9rM11&*X?piwUhXJ)}$AMRUT&i6<(F9 zL|o0(HJgoE;bxTi0Z+;+L_@7yDTmMf!;BxLbGNYCEz-1-{I%2RSAdB&wqj9?nyU#j z2JXOGW;oD3-r!aJA3%oICe?440D20znuvR!vD+YJJ?pHrv-?%Q+3v6a?OC>3N0~+< zyua)6XNs$FkgM9ACPwo(zf)w4I)_EbX$%yxYY>Zp4MGKeo#WF z88xY-y_LS`n~d?A&`ano?j?zEbHG7Wllf2sBh!*gf`VMf*N)Y4JwDde zjm&N&m<|PEolYwVWiXA*-7(E&czf+P7qVYY$IvHg0Pd|%+SJPF=16$J9MxTNHPh|k zw~8a@&)d?c@cy>?70bzY2r=%@HG5jRlf?R*SIE9ivJNpo95ZOCrCXbq9%S;2R$ZiT z6oj59al+Qei!QI>Wwp2Hyymg|D|ZWPzILE9v~}%377vCsC@l`7aQISw?NL?J^vhFm zagfY-t^WWSc#=ndvDr87@yDfd)^j$e92OU<8=kZQ%b0F8ol^~zwp#Z801N17w%foc zkPL%fS>m^r!r~Y-#Mr7bNUp~~@pQ0g?{9hXvnN{8z*p37l6^*4)?lhDQ$k^F<}{8x zvEICrVS96O*BXB)#OAsyd0S7%+TZ1HGAOVfj}5Qk%i8tFOjjR&;*0H8Q>aN6)$G2s0UyCDBc)4qV|(*2IUTxJmHb1G zOwfE}?*oLl$YKXfn)U4y#n4zyBO5TXN%DZB*1YS*KMudQH7M`(IgC-x;FTSP0D4A? z@ykuo^w{FFjK7w=V}V?jvGKBh6thKbGbDiE<#9nwAV#H4^let-B2 zUDiB5syXo$w{xFBE4ZJ=cDlZ_)9A~!Qv~zeQObb*Ow#;JZtbEgB9Q&7rc2v)D-^iN z^{>r+E8_&V5udb3LAS45@TbOx*5^s5Vj^Ek=dd4Z%N3&_{V`nTr>2;Pnu8$M4PoQ^ zE6b>D)Z=zBiuEI?K_V&;I#M(^mC}m<+jdrM=9nG1Y!TAB+1hn>+4C+qu6^z9<(qjN zcA(7VE-h|QkcR513Te$19NANT#%w;BGXygUZN1EoNv9 zHP@IssIBXH5rATO6_lG+->Ah*KXVXdAd^5FZ#Ymh%|c^VVCR8ZOL+?rB|C9fKG|;M zE_k2~MT*xTswi(jIbb=fF<6&}bDx{0Dd}a##a^9g0?M9tyA_Ehm~JFzEEF1Fv3;NAg~81LT}#NCL%8!qmksHhr!^~Vn`eW+!2LJB9qJo zPXeF^!5pa}Ox47+kIc-E)~Pv?H_FtEQ2>;lXadt|!5ef(cxcsx~Iff%f-!St;sndW?{01?GNZFaYs{DInlLn4SrCm(jDm_`Tg z`qW7_-NfK8rBz$_7EOn}28Hh~Vu3Tjso`03u%0S0a-LpO@}*ajbp783fGkTngOGOB zDKATMTPsvFdDX%H0B6#(g{+}Z1Ldm_La2=G z_=*4?=@V`SMIpE`4e8EmtD^J9(0U56B2s{``9)?0m~|H*ZyZ(QHsAopD-!6bMOgSz zL`Hp_42l5O6DcHa#aRqq7~}6%Nv$Ju^PE-aquQH? zTBcH0a!*PCsMZk#J1Z(k=Wmo81+JnSckTCTypT3X+dv%Bw5~k2?NTC2hvjP8dm?bE zI@M3JNgTpHv;kMoxd=s5GRv^!WY*)`%A*XmP2mwH<>r7gvnJe{c+{k|j}2N8tGU~^ z6*$upa7>-31D+bo%HJUARzI}MjJImG+Ad@Q0fAG0W2^%%yQl%N>a8SV7}pi8Z)+s* zhTXK*Wv!Vm*ccVPYx|+IJc^!N?(ncLE(zqgX{LIIIaw3Th4^4Eg3 zplT6X+(b_AoOb$EOV1D5U&SI%5}!0+f-);w8`OM;IK@f!fLDV-N@vS{I{lUW3F9>1 zacvYg9oiv+e+u|x;;-x{t7+32{4n2YfxmnVq&{jMth;VW+*jTw6#8#&eqE^!aWt z?j(TWk$BBDU%E4RWzhW@@Sp8ZW&~f_QU%Td+-vB)7vn#H{6c~sH8SJ9ek*F4ds|7m zDKI-%L8I#0#e``pTr_(+VAhIg&Ee15mbdWUsG?h9zc=@4y~l&4+rLkj3tyO?7Wlv7 z+Z+!tylMW`eGTCM0NQeB-E8$Uflad?WYP6P-Ru4ykUGdfUw`nfi%BT9uFqafvIv)BYf6x6mrwpDsgOu8h}0`O($v86Hl4U&6E9C!TJ4R+YWggz>D9 zOb+jQx+6K`psBZTvM?PcU)?QJX1a~MvycUJZZ^rg7{v^2o91!JsS(O~Gu)EM#-g6m z<|p4P@C9}%kOV$i097l9V7XUZ^NIk(wYm%yB+0FKt`IiX=CYE`NQnV>siTfa&M}x_Du!$5#F`AWjs_#6W^Z>tTGGpcWg;knXmOYBQaaTUk zY?vx}G|8ol9Y)#!!)u#}a(ZHsCzjWE&KK zYdivnK=iGtLpCxhqeZu^Xa*#Zl>;J%NTf_PX)pw16;Cc zWwRLp2U@Jwl8)Ugq9Bo+VxV;(P-t_d3O5|pR^PiLsO?<6<@}1=TAuwP}KVe#Jd-P#V?CfewDdSNUXr}#FuILg*rm6G6pI|QZQIkiWY2R zir1l;Kqk;Q;-@i!xB{;hSP zR+s~fQwry{F+de|?Z_1g7&T)!%8s=bdoZHFM9Kio2mxAq9B>6jepTReMSyc6h0Rxx zKLBznRdLa(W(~J=bXW>rQ)4};LV?zt#kx|2Ly9Z}V;HB0V5J8XHaOeTh1{*M zOgCz-5J>)ltXwDq<*1W8bJCiK5X%We?NDsUt4_rHr=>}R5!CXU6b|ArItpOVYMkx< z9+ei{9MQ^BVv2H|+*1ZY!4#l{G;B!k-Y-rl%XB7?NOQ@geZ=nRQUi$x6v2VonnpTM zJ?H`XM)suF~_EAuI$m83bC%5rl70-xwidkl(*ON z9Qm!c>s3-rb)+(!BS-Me)#wnjxLa(dIStVnaSgG>p=c&0NG$7)>Q zVv7uu2nV$$^|RE9CMVw@PIE<^j!|XB4Z+=e0X};|8PlqnH2;Qh*O$DKKf+7~-f1*$-+^aZ|2o z-cW9o0aciel{{eW&M6rcM?Gok=NRZH0uo6)_My8|n6F`00F1^xr~;`RV;s_?W2Ji0$L807OR9fk9l3DgIee)`c1C#Q-5B3=SzqHq@m? zGuEQP??4U%iWFv*T}KpPcAy0qC+SWAHYzn-RG?rA0BnoT9jUCnIK@l!ru8E{;PTof%q|j?APP~Io0z3}Y8yuc^q#$vM01vlnc3T_0DY(Gnr3lQN z_Mit~^*mEfG0i#OBi@=aC@SN4Ja!bg$e{7XCepZ|E;tf88c;|a(*^*=11Et%TyP<2 zPpF}D&IK@F9Q2?rE?%Z^xk8TL>Nwt8WE*Kf4BLg|+oG?1nfma!;L2?{qWYa*$ z<5M;rTKXnn}+TSOwbMJt+%dd(((G>(ZJRByOewyCa%*{?zX; zKX#Z`2W~My2JXO8{KKBq!NKFDNM9qR05_UA@693lP&hnL1cTI3fKDl(9;c-yMsZ1i zxa=tTyV8sflr#EN0M%2PUWXLrmu6O*kWOd;;YQuYniO`UwIKOL06b)KPY5=K9csQ# zc9RA9s`9fE(MTEM(`>fsEwRkw6Y5fcbh;fn>um z%|<@%C}u3U#sHv!r{?5wOU~?dq^4oi@j+y}eNReHFmC3fJGWrdgDCAl6Gp*X1Dw$z zUR8Li>b!j^r*RYkDHt5ncVmN12N>PZRHaq92NVF@o&`u>rh8O*Rq4${a%d4?k=mjs zif;po2ORdG2QLDb0E%eH#W?b47-Q0aTR1eC$4Xz)fE@I|*y4_~mZONEo08Z^ueTA-U;Ez$A{;yL+DW0K#`u4ixd$mjE17ijI^3st;;R5NW|l!4%y5 z-ok=)5c7(29B{Oq4m(lM@jz-HhA9a4r+d;9#zg}VdJdF2epI6)kSHYMkw6U~Vx!3E zQq*M)0~?Y)lmHDqMh7&TNgXjj3KtE{57>%+%tj7q+Mr-k=mdLKg&)ID*fJ_dRpS(N z0v1t>4k|FUJ}C<0r7#({1B!1rrNuY{+JF&M8c+=%N=}_BK>yPAjbB!SQIa@eQmPL% zrY5wG)WnIv9c!M2A&%Te-+r%Kw6j_|sKH9|&ce^0v%*n90S8*4ZRFcIke@If)sY?C z(99M_+BzEO7RnolOTg3taV~V(g6{!+y(=?RzS8aH5un^hanMygwvlA+%cW=BTdl%w zhyC8KiB@)kMMM!5UBdy!I7ZcqdYz49Dp}7i}%&+-{Og zA?-+EhB;mCRFT@Cisp&J9+iCWppDmuatV#a>)3Nq{kao>=QRq@h2HB+BRNGI6-AhOFvUH#h zWJ2*s9$(93=^yH6z|0unJ?-kqlD-)iz5aLGZLp)`_t zYc6oD`USzNL&SsGiaK!Q}s=3mnwzf-w(;VWl zZlG4aSfE@ow04&rg0U}cV{46)lY`Q`8x1DV zX`5T+;l2SFaJ zZOg3W0qHPYMZ@m?xS56GRXNfS>;+KbHqZQ4z36|mX>+wEEM z*-vujWgIu9Pa4}wgJ}RSTB~`ih!n?cbF@$djc+ZKsT_Da`qq`@wUxE9EYa>~^sFm8 z`JNMTDCKJ=?_C!_<*-(OH6+p?yI=HdAn%&gj(tAL0dCkkJuA=OT4=bpCCTeiTea2X zrbb<{_pHF|ZYQ>!`H`^NJ5=*(_Tt%mmIH64aq~h|yt_}BHBS|zMF@@K;Lrx`rn|W8 zagpm(FZGF|Ke+`#sut;KX+C6rovT6Rwzwda`Bs1=v}q@^Y3^5^)sUK%>c}m@D!J)h zI?Zb&K3r@zj@6eM+WE##tU6|ZA^TIsC;CaisAtqj$PO{@OL=u`y!p+Iy{nSHnki!a z(d+!Gk^`u-xs_zelm%hHs11$f)y6FwYUh(#8bo$L6LB^Qjw`f>QqyfE7aEV4cWjA!)*XhU<+HDuyrKOl1F(CAOJA}D%MOOD zX|}RLe%Rx29N|sZBaux#}nbwL050tQ&}{0)1yUU@HWR zwQ@RKw-@20ox5@?I%`>HxDczInc{#u%|yd4$#;RCwa&f5L35iwy;nc7mKEDPrI#F5 zWcD|9N%o6jyif+e+svg}^{@x870_Sb+d-wIQGDiKPQtu=O{i*`yf$+DiMVI!UX!ds zi5xbzo|vEu8g#MQMAxz%z>EP;v(+snx)Q%`g0rpkS$@dPB%d;j=RdPfF=7+0DP%tycrqxm%T%)k7p?p7a2*#dCaCCIp_<(aE9DYicJ^hsWhxdOh}) zZ>KH9!B#~a=D1H0d`HvXZ?Qo()L*@d0Il{ZeDOT(xmLDil5If640%|9#d$8F<2!Se zwk7_QmVXhiL}J<-K3DjtA1Uhkiop%Iv<-$7%|Am~K$_w3J7T=@%fxeD&h2pr&fP0c ze-z&3Z4w>5g#pTXC4=eEUTks#1J~BOZAyJF?CB;$0n)s?!;RH=H<%vgy1VUS%F-bfumt1yYmKq8`&0p?ljioT(AZmsE1kr5GywRut5~EHG8J)8 zzws*G48n)ysy8Q3XIS_0wNiVFXnsi3iU7I&r#;%Gy8d<6!KOjwD=@<_uQ$>oy}P?E zqvcawq|;u(h}hvp0BPRaG;oEs98^)+UNk?xemyHc?eeni=C9f{-OBlBKIc>9S!X5%R=9c07ZYM#v&8NCr-GiA@Z&hYLDJ6 zGfY`7SIM2YuHQ@2Y^|pGht7IX2P8D;gsSq46WG+Z+APVo;t#lZ!0BC^MPS!Q?Hp|F zO}w^cRhko+Ju5&shqtzh9j?DIra@8w@r>Vpxx7lkCO#pS;YiROGB<+ptd(~Y_#d>w5 z-)Bhv=cPIwGSXE`bZx9V({8k#C=!pgqym63E<8+PN4kwjkKVl2ZxY?>cTH(-nO8XC zw{>4P&wE5o$lWWy_+{Xj1nqk)V4lF$a)G0z*xguZa0Ek;ITfNWE}jt|m9(1gjiHL; z20WUz>@{!n=1g@D|76`^k)oo-(zmhV{l#5TqeBu}x2 zN{}_YhqZ-X+~eArD7?BJSov!MPF+@5{Kh}JN}6p>PWjokQ=D2eLD18TVm-z&1MDrOevDD59km9L}Q+$4W< z3VYB2e|H_EM&1Sahoy6EuQi-xY%IsUZt4~iGntU}sS``Ko+LK|2s+RNz8};^sTSLu z3|58qgQv*;bP71@SxYvbWZqqZhCMi|6JN-Y7;*D809d!SiO1RE19xmwH5e8c($eFT z?NjLmt(B+Xxf}|kEH_toCTZJ&KoQ*D+G%#d)O`4^KmI0~jQ(nU$t$RzNo&bhKQaSb zP5ql=8o&nE6akxSXl*PpCJVJP2>!;b(m2cXt$WzgYdpot70*O4$}Yzpr~`7{E+w^L z0oqMxBrR+l+_&da-rk)$0MK)ug1MbXSh&1|kehKp8n(KGB5xr^RjXp-|r-TSJr?zr=H@^XkuAC zY4SbZp$^MVIjwzc*(#VLAQb8aSJJ1qfDOFh&;=+od-zbxa(+?Ts3P3UbLGG>>0NH8 zd;{&2{_NED^69=vme^#i09Q5_y8xK+is!et+F4!k8dkQctxJWC1_f6T+B_mjI=5N? z&BFbl#|};_pwqPJiSzDwRq0sv&jMXp)DfV;9g`@kY)}^_YOTr-%XA}XLh}P&DERou}5^UzSQ96L^DyRB2wZ7Lpio&?O zmMNA(zb9${&zpMOy|4rz=~nEtYpB7Pa1B1*Xs3|RGVOfvTbDYf%Qg|N7>+0doM~lC zos)7!K5LovCJ;h41>&1-3!#yYWyeERtXELEx;|8R3)X-%m9Omqwuw0P71il+NdzBk zyBkndO+8xTP}8=>i>^JYwy~<*PdC`DlXNGF0L;C-Yu!LKsQuWhO>h9&8fDYCtdA|c z(Q1cjuAb6MTRS#sd5};CJ1fgHpv*a=SGZM;QX#pqj8e&{iPbu)3LdUlWdESd)A@TwCSNUvvmC{nbsUy!w9w^ zL!4A-^GRfFQMo-$04Li5%wSQK&IN6-wUjD1e$~!JZ16}+uHXeQYGB=stBt%+2Y+R6 zXd~O@jEdqldxdM01-ks%tD1(i&{`_mINryfYOMyHcPk~xP0rou187}JnqXF5F^{Ek zv&z>hR4(OSmDyjD1Pf`8nTIu-GdLyj?A{+^)P8<~E0Zq-iq+{JhHZ@h{t zsJ4pIIO1ghZWzS?V2IjR^2~b__pRl(iQY{f%P_c9IeeZ^v$z z$h+TdNk>m_4xbDnZ~-{&T*jkjE~IOKrH^5X)=Ol!jKY#-6 zcO}G^S7=o_Eq4(#dTYF-;A4!`HoAzOFwqUFy@h4#9&OdkNPbi`p_t3-EB^oxKvp*6 zJ-sVJ$3=rm(%KgJ8@ctapG>*atRh=v#{-(j)g_AXl|z-F3@tc`E_}Rvy{b#giDSFv zcup&7(%Rm}(XK$rtO%~6)fv3j*xiL!C>qwc(Uizs;G|L$T-dpgM zS6R1PS$E9YX8W{qflpYJT;bvQS!-_6_Bpg)Dpn65t_cpH(y`mQ8;aFvV$&g4mGIBn zj!-uuyGWq|ZYvV+QMZBEL^rc~R%F)~7cj7mbLm|!jiJES-gUzM@X^W#J};*{B64~G zTN*X|+st<=cduhs)(EuuiKo>NvKgho`W6MEXSASuaLsASa@KyADcT%0E2 z_VtVjj2e?eygz1!Bvd#nR&DL#xPLa~zCqf!X|DD-jhl0+8a4I^(4PbXM48~+QtMipNRb>IdsfYjo#oR-bl@VdO2EClfZPjclQ=o8 zJx^7V3wWeg^2(39KpWTDwwPVSK2;cORcUqIHs%2gN<7&(9<|F)tD4E`et2k80#@d_ya&R+ir)4z&GiTDjG=28Pgn=|(uL z$n4B=#u-040NT3NW`flsf<8}r!?Bo~(nyU?~*u$8{{Llv>9-j7dvyp`c zuHI_9qx&j1%m-TQw6Sk@Yd7|i?BnIGE%Ymi?}9`At9K{bfH!pEbk@r4&1~*H;fK$8I-;>OCj|o}H&$*hsVO`BSxN>-vg)m`KEf{n1Gf)ScOrmGr7QwWN0p z7Gt(gN&s%1=Fe;941(PaK56bE2@R_jl=ZDE7mC&ew-|QpD&$KHb8ln_%|IN5)xFi5 zEz>?^J*xCK7uRw5O8)>e_NjFnrMbFT3Ve(FRe0H`wlmqc&a?s6=vsT)>5i#^HZV zjK*hveJbRVX_k3QnE9Xz)>=Kf*r?yQo}!t1rGD*2hyw$fCDvdCR>^wtiqpE8qgapJ z$mW1K(<8Nf(a5 zRZG;oGO6jFKMKqaVrcF`j@kf89cxA@udL#AaoYomwzdt5d#NHK_+<#|S+S&6TUpolk~cwHlIja9Ewt^rD)2!A&134U3`Lv03B}qZZUV^hVnBGq=&l^e#0Oi+EyJ?(`Wb~~YD~pL4 zVU2%y=bkF)uv>UUu?(;r)S7+FFiGY#VSpNiLH`^7gCRef%*YnnQ=jO2gK5i;L2* zDhwKs7f;uto@ck3Fod2eZE7(LUu%sQZE~?%$@YUa$IFfdZ8gM~Hr`Z&F^(%hAk#J5 znB2%$5Q?#L;*CE1m~L{2D{|Vx%3Bc(N;fdBM*jfAa?Np%FK8Z=AT3XIquN2|>6|(B zrdj=(qsl&fysI3AP%r>S2Xe=J)ZvwBt+n>D=t zd&{y$sI6`!x4uz!pCa*AbsL)tn}m%<;XoHx#Fjo{#NU6RYO6KMd>N7E#{1&`<_0 znWSD{yWh|9LOL4S(sbV{dX8O0>NvHwKonH7MJC0wfd2CxDO?TftJk%&f+(cg*rj9#pwIoRK#tN9N1*G9v1_I3 zcaXQ*EtnPQkyNw~h#z3`#PKYL`d8B46xVbOdfh`J#_iKQQO)FNeEn~vYOz1b0|F~% z*ZXQYesz938v2OnwkQK_S8r;sCYNNHCN;#iTnI5oJUtcUqd-E1&g&xb&)~VxeOz!qOY5-NbMV z1*}a{Hl5$>u7iiJEZXWE%%db%Qw-st6WqpBQ`q=>Tky`0X{MvgDEmSF z8swdYt(cC)`GxpC)%8b=z87hl#1E)xMTF50xn2W2FlbW?Ijuf*`_H)+BWdx62d*nlLpM7K zrRta0`m|OOk1ibYTez=G)UNc+K1l6tBHz4V;<#zrD>aJlXt5~iQ6{eU^B98&r-fs% zy;^PzDvmuX7}l+?~Yq#Z%K3 z+j&OenzS#XlS|Wn(i0)N8ql+}j^|BV_lsd8tpH}-X?D?|cVNdn3ZpfeSxA?0eg4Zs z7Pz?y8j=&KuCK$|THanXm!mN)0CTY4+Fm%fx{ES3MRR3h^B6O<0n)X6R4k&IS51!- zFI-hPw7Kr>R%sNZ*sTD-xRxy)!dgZdTNSbWl-iB4z0}k~pm9*z+Q(~fE^qNB(mM3w ztoV~(hgMawuw9trj+6nHd80)Jk0snA3Om((9{&JHYe8)@ubks(UiqjjCe|+|{>+eX zw^4#VmBngy_F4w2&u&ZHu3Q7rXamwL^qWmO@g8h$lb~T*dX9;9V3O~C;MgHgYVt`U z*YDJ7+Ku1t(*;27T|Li@B%azE2w-Ld3R~$w9lwSo`w^Dv>2Vm&GhFog40_jy+gpX% zZQ}#v9Wz~himlF`65%|RaniM5wvS7)XI5RCXysseez&4&%qRO}C|UR(qP$A$!tiN+ zboxcu4bRFAdUe*FCb6i>@=kVSl>?<>*?1P^FHO!%7H_-lM<^dQ#jEQHs7d{&9E%R) zocap)zXNL5R=Pa;!duB4C{E488TYRG^G5LAn|%~|y|`cpOjn-#QTUT!&1d0{2U~xl zMi-dW(?zje&o%^^=qp!5@#eQCj?mdf<=dxm-m-L!6F*Y?HSrTfwpgt-Tf})E z-n}|2y*BKLtfdYcpa#DnJUQYI5NrCpcGi&>b?SX9=#3x6z9R7b*4w*`D)EAGik?8` zKKp$su9=$|tSR&;)GYy3>wIi%gS7j!lXwC+Do*XX|idiJRH|qBqn4&U*4?ciKAkZ zcc2XDlgdr5cTp|0vPXq%dsXQzmpM);>ufgf50EP}Laa#17zMM6S)?ksC!WR(mo7^c56OZsQXUR-Yu0l*Bz~18U97&)4OynE4L7YtJKF zh}b$D3ebxFRnF7%PzPYvsk7zaih>xjPV>*DXIg5z$ckFimUtpjE42VV;@TF61Eoi7 z>Z4;XE7GWaxJvksrD;MXbs&H<(tsl}+s^)91l3s}c%%|rjBTuWtZyNarA`+-R)V$d zv?6ITz|aNcxtcf$ATPP6THcaDVm@y5#OgZpf)i;fdsNnXs!D+X3P9q3JDKm|O{tJ7 zCcd&wxS+)wb~Gn%Od(9`pgM*EXjtl8R$r+aoG@i-T2{!n>QGG;jddLx>ma@#pOH%Kk}H0^AVPuwhOAkP57<@x^CBv@JJ!m@q zs%6=2^Jk!`1Gre2Ap1k%nz3%;k~hhdYS%q;cj8%8W)04%K#9TsM-2 zsaSYs-p<`4L(27P-TN9FZL7-;lmaky4I+7hJWYd8L8e7#&C_mv)oxiYA%85K1H~vp z97}RH0YRa3C8SIxbHN=d)xFK5e26hrpq|#@3NXexR;&?Ns%{vd3eF>GF-5^P`#i3O zwNP2MI#ja71cPomPzOCfnCcZ*@~ZZ}a!a#s%kNr=Zz9czkIHKAkPsc*f!t6ARm9Oo zn};NERHL|%4Xi#|*@`VrICSYm)IMLzZUdR2>gRhXlSrW8gt#yV0XD*pA30H6zPthBR@swNjr>oNh6iWuTEZnJaCk$j52`<{M9$T>w3LnzuYL+p4B(NXQWL z_*OmXV}||_RG1cHxQqQ*Ut&D`cfGp^v6G@EA4+9{>L6G(89-!Y!NJ7(zDr*b=`0L; zim&&2R?eN{-FHrqE!yv2*0B6D@vFj`^`dW;L4L-&HeU|wBs30$`w>~nntcgXY<1dq zkM!HUzIypb-nv+I8$CbjC&f;W1q?*iPZ zQGh58QUhyuB#Ml?YSfxl!j0M7E1`+wkppM1dPlmB6u>;tBcFmYI6PvdiI8yps?5a7 ze8|Tg>a@{_X&&VBa%jnub!U zM(#yHw;#N7^ruKrue#6$OStd@uL7d;W>5fHuw?<1HzKUfGJq5gC<8UFXN-)2Rll^D zN(+qBrXi*IMP$hx!F;IVwTlCU_>u6}!~XyftV|cMgq!$e11u}yFB^W#{w>kVOX2nx zh`jux2OmoPF-Bxh-Yqb=FZ;-W{42JeDpAnFbRy5goqNLmB=GFMRXCEA!Xlx9sn$_+LHT*1Jb=JIK<8>m?n>! z8Zq~W8KjJ0?IR+z3~y^8g6cAcJ~k6)>xza*K<5>^%=>+$C4A%_*hUGG)$ z*kDixKG_FtG`2XY@!FVGdUvLPhn!Q;AK|E+1nE=8{{Sx(0D?wd4LtHbUMdFM?deZI zRO78!8a8dU*EO-M$LDE`qp++ve)s~qNSDvDA-jxLV0ow6xExi3ZWTerbq7vU^5&s? z9h?!xYtYQ(BQ%yG=L8@n}%>`0s9*n;-kSl15yW4zLgkZ_*P&k&UvH198xjoicF658U+-b4k*S2 z07;N3nWl3|K%m2!B+M%)}4Q2csRF`j6+ zAmWygW3??H0h&?3rtz9~GAIDar5HbjH-bKt@r-dm3sMFn9+ekPl^4Q~!DJEAi#u?;O zKx0#o0mUF-y{NEr2#U?0YJbn%Q_+Ta7^w-(1eJ04RGwP}%{Y%inv-!LC=|e}wDhIg zYHn#j$e;)n4svPgrySJYS?D{{j83D90FP%pQ+wj43C`Mgma1qK$OK$^QwZk*u550! z(;3D9pe|LxJTFRcP&gy4Sul;hl+P&R1DaL~kVzIk?KJ`JD%Qj4iUQ+?qQP>g$^0q6 zU{#Y4&jyiVTzuT(m|TP~8O1x3PBG&wwC#+3S_UymByme2Tx|mssy3QNQ=E=y0v?}* zIL3DFG~ldPkyC(5VuE>!BoROy=M{HmIAKWfuuw-8Jf#(IPi`r}N&B@v!GJT(0X|cT zIY6(B@M-IuU{r!O$j=m{9N|Ss2?FGrWQmu;j+H8p!jCPp^7B9t`9qF5rC9c#oPHH) zmly|wN*9bCv>BBM9Y^I$g4~bFuC!>1Jxw>u9DCM)Q|LC1C_El2>4Y&HWYT$Cc-wQd06|tlWA2JTfk83~0D+ZA&w51Qaw=gFBZ_cBcv=kx51R|phKvpkJ8513qt=JDmWAX zpDuarP1+CMr(%<^-NB#$Bu$*2DXkI#kZ9YSdK!_CC=>w#u6j~3;PF;hZgM!LC{p-p z0IUGXr{nirik;O#*^C;8B?ioKKoF=I$rRQDs@0ES(wr7B2517NeQBg|#}#FSXYO@0 z&Am4Y0E{UZ!Qz4l9)hi}l`2086O5F(uMPa)7?(~52HM$$msc%TSIdeY>cYIfU?mYcAF zjCG&};EH%0gVLHoUTN6f$)E*gU}?KgOw_6~-jSDXC?JPCjwswl2&oG3P1>tLVyvT` z{c1i2PimDFKa23F_OQ(WN%HL6l^QSu=BIgU*wd0Sc|EDwfesI+6roAy6=QEC&bu*~T$Kj0{p49sn7| zCk!w zJv&n3fekzgR0W4ll)l)h6~ZRaIW=hkAC}nSr7?g84Me-MQtUX%rUP0q7k65ZarEM! zhUhv{?HfR#1e6Xid8JY|Z8U5rpv^qT<&Juq0Ecc4Y0Nic6mmJF3Nb(vOO-&XaZ!0^ z8?%Z-$rlu z0X->{^*I>niU4qeOmR`LWdI+-tVU1WCXv?%)_^K<#M6`y!kxDnpyRaz4yOa9IEBX) zzz#BKIP|5^2V(;i-ajf+!4w=CIsl=DI#HimU>FqsgA~AK-1MM&Q?fzDF}_#L05p!& znDwQ};+N&e6s!mT)AoC~VOfN;uo(2J15lRVciAx8>o-xkitH`AWXZVnrMI__Oo(}> zEO`1?mUa}cWm%mIADg<0?R1rNw*B|W4@%+MC64$`qk1XLb<*BVacE?QEEVlQ5$bkP zTahw#ZlbSP{gGigz&)#)i&LI`@lVOe6%*&9l#8PBCzw0qlV%&G$W8mk7WVPPW) z8|6I>GHqoZb$eFx6}X_DQ=>`E+&+Bl5tsODqP3Gu+NjK|TyyPQOu=R#gXNMrUev8& z9gHUD%=t*5IZl|3F2du@kIQ9l!>vyD+H!*9YVpull6+xS1BBwSmr;1)^I3t<@YA5Yw3Z{17d4@oa_d@Pz`Bf5SZntS zC+;HRsF`%w#y5s)sx`}KCRJdeeT4vaH`fzSBD$~L?kWi{?xbC+F}ATk;U=;_C~uTk zIe+44{N1)kYM!*LXm_?3Gf3n+^z^H@*R#b3mK-&C)wS)^k(Yt@6IX0n?HkOwJXF{X z)$tYWq%RMY8`7}Mx0;HQF%k8t=e&v-%+rCl(y&`yw``;f!Q%p~%;{i~NMepMeBGwD zn&x@bFpqBDm6fB~m@SRupErG`vF|lIiREU8Y3*{Yo;rI_2Bg}xyb$?tki}~jKN8L+F*5w8rEqq- zmM#@;6yZ&G5q*;EMLcQ&pbO|Ox24ffz0$f^qJruz(?|p3rCa+=rLBsV0g8(AYt2I9 zOSY09kq>GBx2)S*#eoEaa5U{bp_gnD8s_dJmf~KyCa%M6J-^PUr2u+*T0+q+jYFWRQI z+aTl)f{iBO;E`itvAa+QSAO!w!pBtc`4_4KD{lgkADOv{vhC<8j*?UvIS7n53Tsm~$> z+kz{qHa6)IF@5H)M^s<1pk_Zfpar+nCe$YLWx}m$e&PrXqJm9x)>^#5w*iuSR*Gs- zyO~UXydRYSSc1jnIEhN}QVlYF;iQlu905_s;!h#*<>MWyO+!>m#8-#qY5>c*(mvC1 zvg_ps(yv`vXtvhhW`pKr9MlG50Q047?0O2LFqNiBTzP8r0i6fg_x$kuqorB6YkAa1 z678*f$b=Cf+6X=Cor%nsep;>;fHkd}IG5~_N0o6>TKHPeKWRrDdK$kKi$}J9y~SmV zyO(E*CFe8&rK)&t()mG*g>XApE_@{f1iaD!wXZeBMjC8D7ZX~xyhC&#?}7-Rw~8Dn&u(9i7~|hanah8oLx)~LHR=0RxDe|OTt_6t9Cj}@)da_`BR$O zxQ=^7RLNrnz1mM0D&x0m(6iCyj_1!U%A8`i?ra0FX&2=b z0nParTD8i<56hml*jZ^~NVaB>jDc9osK;d{B98~LsjiNrsX{V#r2u9PS|z$^U+*VM z)*dZ;s62?{CA~#rO`{fJ82&D%we;;i9W62#ao02fZ%(_CSr$3t3s-eNC}ucuoK(<= zCvD*{N2OKQpcaYtxSNbph#q6BUr3S5V-O-o=zCWOW8g0}+H2W4lk%r)y4I_Es4%jN zA$_WZR~{~qd2UJ$+*QO6SJC_x;mc?TnCS8kdaZk;Xg0Td!=i=j&3SkBCyX#=jz$8h zp96Tl?m+WgoIhS_O%Gj5-5K1pE0Vn{o`+D1=Tk@)FPncAn_=LcU85G!&z4_G^e+r} zHuFkhaeATL9t{Mxb^&I!wpWw*dJ4T|sXWlIl}_JEt*c(H79|)R>XojhE#qy`ug#j%XOd)OWCEi zluH@h8?{n-H4CKN!x4_u{W9hWK{N9p=qd@dy_5MxaD%M?KF36uE8aIz&Ly*0DB9h{02kV{klsfgobGm9+ge+_Vz(0mVb4SzcawFvt6`{8dlHo(zH2Vu4p_>+4>wJU%Tgk~?3#I-0X>pa%fm zze>}X51#b@0Ec$g>Svk~!24H2FT>3~bdA{pDCh@T_Nmg&D`Om7mHeu#X=x-RvwYa& z6mtQ`={A~npXFGjcu`%XQ9Lm_s_=RW#rrgnOZJ&i5WNjsw$`M&Z?f#`z&?}#4wq*u z-0xwxX~;FHsNRA_y0#B5*` z#(dBY&XsRXu}hX`oaY^nYO!&o+9&$H{NzvvpK5+2xlG&ILHojSPSUj7spZYXw&}fl zS6!w-V

5EC9594PMkWT{axF5&rQ#C<7AjNP^N-S6t)0dT)b`y_{j!kZZ+7-R7&Q z4X#G+0Q9e5w6;2JtVzG-1DXKn@AY`!%n<+&t$DUsz;>K?-58ITQh6 zNmk8%#S(_Bd1JR(K6TjCLN210&z*kvN`2&F@Bn^7M_K^qZf_)elN@}3z^x^-y1gqC z@#%_Ru|;PNHt%NdTCmF=hUuyR5 zzFQ1nR(zK-%BZn$xW+1!_G>M`1EH-LqY=1_eA{RPI#RZa^P$gdR?VADb7{F^%X-xE z&1rC(90KCBbp2||)*m84w;ed33h!vp*!hw-&)8O9_LKQOOrIrbY8T#j&Iigz6_#|* zwZb2E*CK!)X?F1^?zuG^#%7$$CnR>L?PV4+2%KXTGw--!@irEK822|YfP?OuuPl>J z7v;+O)|IxEG>7-Eka||For}W6&Ok-!=|B~1VN1m@&N6D9_Kh3-pLG(hzOQQwKbF5R z^sHHCzPb-GqhbTE3R18&ht_b9zt( zjaOa|35o^Y{Wz>^7^PqIiB1{&Q}p|Lds%l}{o;C8T`W3dD0DwJr2t8$=w?*&qT=r7tt$Mh z_p0Wvs@mT~qS1C50IhP7HMYrIGcQV^8<-;U;W!7aWX$tHFPSL7Jq2t<2)#k&@K2=x zBEj~ci;`NVnb0TLoq`_KX4(h0U<+_Mil=#QCA$p}$)F2beWVe$o79TYy}l7fJiZu? zm6dO8JZ=vri|Z@biKK~nS^%JK-O#jn4c@NlmhB>$OMLmRW-Dz*c}k+~LDss36WQ8q zPrZr&tE8|G1-YL&F@Jiy;{UX|U(>-K%I5z6sE9&jy*R*EzG z#p_x&+LfTT@~#)>kBYQR7O68g4%N-crp+U%h;`(e0J$aov(BanhzE-6ZM>U(KPbCP zS3jj$#E0ziHth7R>)Q$KVBzzgf`B>erJmXrxP|#OrJ&rxwo*xQ%jOQ1l?~E>_SaY@ zty^i)yk8>YGyut_wU%XM0a}vwUFaZ(2R&$##MgXVTPQLGe8hrLF8Key?fSe zymG4mKI!JSwHrwa8IzA{&bC!C6CvB$fFfC;`&!4>6@KpeRgf*Zaf-mvVor0)RM8PATP{ zJ5c+YK9#i=nRN=Q6O0U+%C@zd`&csCsp7i%E(MHbF8cJK4tZ`aC6i(dj+KjX6Flc& z+qbP*{@aGu?1f*Fw=QkszPDS8Hp8BvPzDgTh!v5!_N`y-`->0~-28x5OPN;I0Ukbf z6@_mfopK{gu%Hf;`$kLe^ob4_R$i}vaU?q=`-7!QNR7OeToKSwI-eny=0BM9pbRMW z2Zl8e@^Qcdx2$|ctTxyskLCVV7M-PSbdm7C(z^KIw1hOwLmB|!bvUm6*e6!phm%lh zT7;5X!wt4W3hb>`3yX%_2Ep30H3%#ry8;|8e@Xzz)1oSZd7CmXTIs*xC6;wtYjyco zgHMHY<%yqgI2_jlKC=`zj+U|Tcm{(rw3=Bj*Toi}q_n^?}Vz#@~Vlu3oDy6KDTFhdT z=YExX*72-mYfYhv6(yyl7PGa@-&f=V+JHL?eKHM#OMkhF(~i>8VyI4Bde%Dlh8tMb z83xMEpHqfe4AxK9gEOm_MTgEV&H`h#Lb`NT(vCq>TzI*?DqZKu9jPquE-tQCFvJP~ z^aWdaqj-9*IIlk%TiI#`Z2Xz&UV{R`YiH(e1c6-qlYeMs)i9!fItwqe&grr8K(2Si zmdz~D#D|WRp`_bM8EJF0!tyfn|D^DsuCG@RbCE6Q#ormw= z?$-|X7lK)?^#PJk0)RF&tD&k#w(F><-scxW7JQ^ zE^Q{ZbJ0lVxvOgvJ2{Z-LDW}I6_uR!e`dEkPCAMJ%2RJ_&2o$#M`KnEy{5N@3$WH) zwh-A|EOX{W6=hyY9Hy9XM?pXfCW5vo>=+3mR0vDxde`MLtiepbLiL1jziYr!7aQ^__pbi>aS)kN>#lQ>G6*blU z?c8Q2Cyszq^#!}IU9xfydeqW_+uMt&Z@!W$d#?>m~*(CtkIZ=*Kmn z+wksRf)E=f}qiEuWc_r&nev>y#Qa)tppn;x;SzD>fXAwhG@LtbB{`|t89bY5Pb8naQ0g|r%~hH3Tk;f1M1m8OBd&78^WKpif>oZEq8@bQPav zd* z-NCq9w1l`*+;LrK)a`D762uY6#Z6|=rkl1!3C9_(7CB{-<-uXMJXTm-?ekAvryLs$0v6;tad^ZUC)KJq@L&pTTAviU8>#ySI$3iH~t(ioJE= zIOK@SY}-iZ70g@eMgVRAR(I*`T?{(X#io-y;7Z@aKpdU#hwq__?FIL9&{cbnG+L}+ z5D3RLHU9vPRTu1OA6_#`k2a?mk(1?7Ko7FD^WgIDA8bifCwnUh-K}}_sn=1pmQN*@ z80}g2uN)_5m%-^;0d7l~?JUyqFvQgQCYyb&$k#iz0oJwjy)@rxXlGELUrOj=mrv0n z^3p-iTu=rst!ESw2q5|A^sZv(?RGY03g>sFbdgUj{-oD7DZC)&sJl%q(;I=c7pSbj z%<$FuhTzR~`#|U`vD7ZrQDuvklDHjEEOMhjolSK*Jdb+l^N*Gx(ttBBl4T*|k1{Z( zL8&|_i*b=%CEdlFGqP~Xaa^_h)@Am&>C%8C)MFQ;d;kUY^sYJ$J9XHENC_3uy~;%i zwzmD_NGcs8O_JTDlI1bGr2rCXc9O`6BY&%|hfnh7-)6i?a z^o=`D(wJM|zTODyL80f@dR3m9SIYh~TXWglL8mO6uzOdW&mOmVsl^nT+nzp^+G@(M zSgpH0=2`&cqG>KQNSy|D*Ja|Fu2#to-;tCGz_iq~?KTfKOc@fp8-0GmQ_@=M;v6E3 z0BAEj-W?|0?R?v(=NSU8cwz@P=6ILokEJc`)KkPGivgRU^c0r&uvj`oCECDqiU4nj zr@y+o@*m|@=}gn?r1G3JeXC+kle%2F+$*8Czq5>yG8=Q%F3*;9&7j@uZV$cTik8*p|Z|Tu^3mx{az^+Wn^2liXI%g|+G7lu0v~ zgk36>I=!5cyk1uAqxBS7*_~bdxMRY%r)pLM=${Y#X}4RL^zA_J1AxN4>dyYlShq>7 zTsC>Yug`VR<p-~-vf%*#09I?7bWI~uq4g`PTZ7zG0^RN6XVlO}oNKOySXZpX@8;EamOlG(Q7Z#8Sn zOLYZ$ky#dLv_5p1AOY<|`JQUVtCjVtFkZF_^u=AZzue!v8O2LLD?=+uv~gK-K{uSJ z{WDv#U)m&sF^*~RNfB+^b5aBX6ax#9ih}Mq+A^RXm0`6Qk(pUKRKI9LY-HJkKpf;S zt+ZzVjMfGBgmlefe=_piFg@$E7m-K=b12#ERj+1ekS&nl4%N`A3dha9Ech7G%-8x9 zno#(n~~@qA)QL5kurfJJmu#4{<; zO!*E=s|(1sPMt+#X<8MZ_K=t<2szDmJ|p;R;;jPgN#&cU6S~(wajr#f>ua#aRAIYf zw@l`DD{ETC>uNvQ+I)G77_6(?jZtk<#zTZBkyB|?=K5QpccySD`iz$H-$yHM02~wA ztrK$GdVRK+Xwuv;1;EdxXI<&&k)2X0M&7ulYPR$Emrpj@arj zKpf;TG%-mcrZ@Bz)M?kk9Y1Hvu6X9KFDBi1zF*54jN-3HrT+kESsCLee_=otZ?tQB zD`Bh7cSy%R)slQmWjHqAbBtzAN&Cmj zj(;j4)3m$Wxvj02X*l!4c+K~Q zrj}{-4MB{OKTKD9CBC(*-n-iqobjJZp&IIoaBOdWQl_dX4C@^ZZBs@OM8$l*%~M+G zEn{~Kccm2*=B~0*E%e!9AgdtG;a**Tdwp?px;UC-MXeJ9)pc9<)@}a)&@mCV7*p$B zNpr5u_t?~=W90FLuKxhT7m!bG6H+4GdSjuf;qaz`E}fRZ!)pdC$ zdA@cXDVBc9tEJi~o>Ps@n-wW%>`XNFA7P z0I$g}g&MS1HrHM&yE`oHj=&EAm{-<+3_c*mHRSq?%2FmcKz`^In~2grzl^FeRZ)^T zs@FCNa;8u=wRzT&@mIsz)~a-id!#b1GwoiX_LvnCQy?IZUMaLBjz;0k5_u=5N{x4- zW1?4AE}w6DJk%Ng0BW-?tiqzJAEiNOJ98AWN3}W{hSC;+3%?%Ku>M`X&`%Ycc|Q2| zL(!`+Ai~Ojcl=dm-XM|zo|O%yq_C)GIj6*%rEb&#v5l>j`?SrFjF361vB$9v_rR*R znz~sP+`E(7fHaa4U(DzQGJDe_c`_~sN~iw-2{n+6VKNVFR3F;$i@{UJND}8Tt^A_ch9kpINy%y`C4C_=$$Hn4H zi7wUU2M3ILR@~kov4o)Ayq><*dg*j{V0T!6HN@$5@M>2V4IEelrf37S{{V!J#bQ$3 z>DN9Zu|*pk7RO5A@BBBY$skxVsrpu&9ut`$#GJl5)?joIc$sAj6hk?w?`~v@HGK8$ zTw_A|OoRBys#?Cka}+{Nr2AsCKxFEg?e(?WAUl-SzKN}0FETIQ>0F48{`d)+94q&( z=Rt%IlIlN{3<~H`1Eo!U;brsFa$~g(sp;3vheD*&W6~X@;AJZLv(v0cn{$9FS_2+k zI?652fWot2TN`;ASl2s7c&+HQ9VTgB1Iqf=ef*ZT*;{C{yNZxAB=J0DaTHj^HFaCd z#`5js1HD_c@bovYyKdJ#Ju5o%P1UTge{z6@?kEC`*Sh>N94Td5-_o^BLgOnk<0BON zZA$vo6Mt{}vs-o&!F-I+L?a%w8X8eaG*BpJ=e0lWZvh2}B-RDwH*kE>zEo8x^?yD@ zgKk_<2XPFs+=9e&Rj13uVpYJbJC72>rv->bm&GzIeoK`su<=2er46dYdgPwMrt{#p z05|1StzJe^DLkIlX{>iJnZGIkzq&TZmO1NFr1Bu+wPMBQiP?$T6jhJ3e7?D$3%_Y) z0f$`ErM~kBi8v>%QfFw;KV#adM*eJ!g|_B^HP8s$o|&XWI94IJ?NTud5DSA4sJc7ASwYtp3x?mc(mP@%< zk;kb4oYXkCgHZA;oJI zwPnTtsM%IA!Qy~2E;O&T!1nhCD#H~AhjdF_3JD^KLZh0|H^^JcJPK1ZXXIv}caYc9 ztR$0quU_0@xZf1~H}J=ZEm|Ey%_IyvfnC$WtJ8{V62oh@KMHBsu6v&Y`0w^H@Q$%> zGik@{vjMpX+zovf>{4?-ZiPOlx)1jB^7~;N2 z_^JCFcyC(<^TP0bhC$UvHnnxf7@p=bp#I7D)u#BDUD5c4aKPlTKYRi_{-q^Ut<|S1bWxxdueQK(qJ-u2Nf;0v8?I)O{}b-e+V^7Vo9I0 zi4TW0(5-7K{M?PEtK9fWkQTFkEArpN{{S4kN1^#?JC)hM=DwKlKkYRI#@IDEz{gzG zlzl5Mlc`u0ktBXUyT|gas}B`w_RV|x8YrT$E{Cbw9mq*V^gq(D zmKHB!)mD8AsbaFZW9UUl4u(lv zF)`r&l>mw0a@(>8YTb&&CLEqeYLZ)UPzH0mEcgq>T78V6K>3AgwXy)Mfx4XW zZIG2t)B(@CDkj-SC#6QlBD=c^=;YJH$Q{=N4l626F&F|5%||#DE$!`Q*bi-<`Xy#~m2aG>wUkCV|eBZIHyvO*HkJ7$j@qg@rsoS}K z4%`Vx_ejNljJ?IwBVic&3Iwjv?s1yvrHqtJr$Q3wel%-81->C@EhKW;Jc^yrSDxMJ z8r_5JyS0%!a<%)MY;5ic62PQ2a+Gw>a_QiEm#zg1(w2#iUmMJ>% zQroJNj0{)Ty65b3;u~YXOTJkE?86n}I?ur$9(a0b6|91YsoSDM~Szd0Xvy*pW+ zFYK|7dRLd+s>o09=BW~6Ix!o&RZYgU8bGRJJ*zo~ITfe~!{!81mB&sgI49nPC+^iP zfKi;(sz5x7W=v-Woz6E@fnpXuZhKc(X4|2_7019yY}aF@VbcrNfFP0=R@^wKAE)mt zuWJp_Zef#I(pd&jxW!K}87PsJ6wf785C>Y(TSbkzrIO9hE7Fc&Fr=~rkx&Rif-%i* zn3;HLo9ytE$?I2eIl*kjaLdI(C7W)_3hGrrJ5Nevmgo3rxE#w_XQ;`j9>-|_3hKVf z+#FJiMn8FJ8Cc|-PF|!^i&a&?99LQ`qgBIHCfYSPQN;mcls2iiJ8@MS);wS>c5>P) zV`|`3FJhcf7C4`{fQ6C zI3l6`&1`2hbAjc@!`bGcItc>3OYDIurdwNiG=x`3qQ@GCzZ5H`>RVJ8p zok2Rre=7Hdv4|atwApM(`B^~}tXDDM%cftq$`YD1`_0=n5Jh{au#c*!T5D-hG35cG z!OVC`w7gk%2#qoAu0vzXIr>+l4JKcvE84%|9ke5H3-rY={3CV+ct8yx=R8dB9EGJN@%K%8D|mX-?wG|! z+6}6=5h%q1_J@zENW-BA=}r;289A?9{=$Hr*Z@-og>A}h9MB%n@|A`|_f(pf>~n?A z+=|VxNGP+G)ox=%Yp4w{{Z11fE)!FqT$SVbUJer%HY($*)kU9 zy|?}mxChPv#Z>;qhjG}wD7bSTNZK56blaZ4_bZ6*%N zEF8y*3mF>wdm8akmxhucAZ`%9Tn_4@0*hIikVLd0N|ld3dQB)lN3?UEIDLeb`E( z+8w|<0(7F{IWMxXAcLAd%On7sgiU8(3lB?5- za7E(+w|>gSa0MW+?FP4ZW`#ci}Kqd35&5O4|S+JG?D(6VGwi*mR%xwrkFps0MDbsW$Ja=@>ZZnUx6 z4gB+3KWAV*Ui5+t9xChxbHoed94#u^WaqVM7*q`PCY&NWR1UOQ4E4ACF+{LrfNN1< zX6@3IZNXthfXEh^A1y&8o2rbA*Fs=poD2$hivtvB2QIM6oB^7ZAuGukt?wm;H_2|} zGy#e&i+$0}L~VdPS4gmoV05Pam00n`FgenUq$-Xm@>q0Q=*^m*wEqCIqNo_44rOh| zK5n$}XnHBYt;dJv0Yx4``?P?>`#fRk-d@g~4{F$JP?*T1@;3d^Kp9O6GVR7GzChY{ zkEL!Kc3?hSd(%y`py`?b=b93oxHOERurboMp4{XTDSpPJZpTUhz$wV52-da5mf}d_ zk*u76F`QEa5!W2iw>Zsd{gJoqW#XP~eqaFUO5kLSsKz;^EJ)f%HL4+P*elYX_F=m_ zXt)>xCeC_OytX|?You#Xz!EqW0k@0}1~Wy#!V7_hU($diVeBht!oS7*si^{kjPdlM z;9`iJw>jAPd4oc0P~tG7c<@{kwF5YWI&*=n^V1cl93M6_pGulo zLyk@{Kp3S6>N82SpWy&i-!0LzjEWj9$11c~3K(xrlcNyb5eboy6xhng<3v?iaCI-vu{o*F~Bu_;vA99M6s(b4+K$hl>(MLb3q#p-qkpW zqj6923oZ>70DLo#VV=Yn$lQLLNQVcWsLmCtv*n>MU!{T1_eY@j4f%jV0@}-w!)_b zRShztqc2WPJLdi>vz?~_X{@dN+6F+!9R&an;;UjX23S;B&jNrWRoZeWF|?;5r7FO4 zNQ|mF&;(vffk}=qYU*K!T5Csv(ts%}eB>ICbit==!NSy@Km#-xl?bMqv$L=i;SOj5 zkxXN~0ATaduPj-}=~28MoX}S>Qy<-=3y%1!(c6K+;-N7GIc`M(%tof2ypFXXjP?}o zD7RVzn1YvR$I2-O zxd8xGyS)zTYx9=*3D31>LnO(1v0BNwiN_V`*B0JQlubG0j%&+14u0w#GTz-*QGz)6 zYQdTmwu~bI85PIt86PZ9yk@kc5Zu@zDgEm76aj;(U|wS1jn%EES*x$_ALd@Qnl0wJ zn`Oty6TMhleno@)4)NBvu9dwzhB? zp+7%iKpb!UBbwyP=iDjT*b1{Am#SH^6&po%T4uAUO=wZ0`AFc`J9BxdzE%EQ9xFmQ zO$)Op?t+qBft*xVmnL{t%Hhh7Zk1XisNrPVdE%_yY4Y6X&694?+JNOLNv3&L-dtxr z#YZA*lUj(C$c%BtTey-)tyT!w9hI?fdF5$kVNc$*1(=qa6Yr0FoF1aJHLX50vRLg< z5}j)z7u183D{N!X`c|dgzMySJTkq7g2O%666Tg>idUiDw;q7G+N^rgLT^^C8-X+m@ z6)vHnwd1^t^0M}-GdZivZ9URCB9WIpX=9s7u;sy#vBqm+%fmM}GI>5;MQQ3j2#O_K zWMFenz;V{?_REs%9wYRv7t$@}z!8-v(!Ddoz8tZN&=*{qwQ(k!Z0xZpXI|7;(BdpS zJ#lLm_{RpNn@hZwCK0~UJ6EFVvs=w-(@FA?+OQ{u3rQ$^FSQ^%y6;23atjvPI_ITy zT2_&4wkAlU1?up>#Ks8+n6=R8Fx+0uAc7E)cQhHC{mzemY>cTXQI3^b!Sulr#c;!T z>t3niJwDb81d1s@W5LC6w!Rh9CBgGQczaL=f7&YFXvJ(;Pxh6Bw(4e=^;6 zug~j16=9CgO)Mi&C2qBIO|({Kn(PCff}^&viP@)^@5N_aUZe%YQuOsnMT0fD>~j= zNTeX1ed@&0Z;V^SLbsr)?KB@g7P+_>2q*(4Nwog}wW!BK&N^33cddDrX3{juk?F;G z`&nJxUzLpymJjJ(p#_zkHi-$~BXIxB-UNct?Y8H?5P#iTH5`cKF}il<8-YHYiQa(I{5tO zpr8smPL_p4w+H4mV&S0^`ARaiV08V*MXjAbL~E=&E;o*}0gEQfXz>v0Dt$81 zc|9t7y)Er#2_t!f&{Xl=3tTTnpa$I8ybuliw??4xBY%M&UwyHi)K~c0eqT6bq4r{$bvn zxW13g1D@ER3O1SsV=_tx_UTkjiL;-|U@@HLwqd%tLFE_4OXP2h&Aomo0~Y&BlIcXy z^!-}zW zs>mcUp$Y|PK|Q^qeWE-W98d)-_@uT77lYoG0crr0*`;I#77%{bmD z0@J~3XiTz@{*=4yu2?h)&!#E`iM0WZ;2wZh-G-Vhm8F%2f0Y1LSfG{ms$lw69ZJ?H zfG3Bkr&nqG>t^6pJH)$?hja3Z0KlF}QT({Gn!g8~bb+T+^476}7J$47nE>lq7L#kx z9nwepuX+IKt?!_M-D7ypeQQEFZKM7F0G56D;<@IYNflmv3?3G>qt@h`{Rl!f`p^Zk z_Lo@}>B#4$a@P`Fi-HgqQhH*fd#k%vV54vNR+W~Z7Edy0xM~1DvtYZo-NMQTO68=F zQeX63;d5QYuWlvt;%qiJ6^dbdrfD04KoQyL*MO)WI*#=<&YvW+gieRGbk;N5t-7Xq zaB3U3x3ntaKu>A_qjJAsu=$q?qo}VlyVS4sIljpUF^cNEN3Xp5Eh70r>M9Er)2w0_ z1OV^FD1jE8rdY!kB#A_)+O13dpKTcu#<@Kz`x`$e&4`6_-mnrSFC*UL*qXS2x@^sI z?F4I>#X9OHiHgbcEnxouYDZ})OGgJjl=$!F)MZ#?=~6b%yF|ILglvoEbJW(}p{YcK zMtI_}G`j_ekR#ik^?LJ8hs!A|Wys=z5yxp~e}eDzs`qg$?e-fG2Hy2Y%6nLMv+di` zsoCog!6{Ywq;o(W9i^Oh3RYpYo2eCV?RJo<^Es@my-q!wr(Szj9QPh%dywGv6ajZo zyoWojzFgHgCkqB_t$C^3J+KpHn1U78bf7DFE0 zt0i=|Eb_JpZ(7>Dk{gKpi&os;f~YUrtkX9GC};w@Y4&LmV)!f6R8|^{(@HGRW-@v@c2k=I$pjmKN#+ZO6T1qTES3La(()P;0#wT6=O1 zNc^iF>dM|CZa0F*rYHkC;=ni&kUHhrrbT-2^E zt{NC){n+482CbHrq+0&ZFyVRNOwguj&rCj?}h2j|5z+u|CyP0H;V{2@?m1qL(!mx%mRO1~5LmaGR zMr?g68uL=Tg~!Xa0LCe7rShZ~R}GBx^q>yP;^xpNnIXpBFdDKIS%H>N&usCs$5;%tZ=RoPfF4A_DUOJa0lf{2(=OYp%)I^Rf|bk!Gj#0 z^_UPVCCHXiyozp^lRTzwh&Zij<5(eRtwvmqO+{oUvxgEd-k=7ZCGPJ0)odW9UBn=8 zVLP_g{i8?~jEl4yk{dWCRzf<^2R0M!5QmS3TDcQKk%a#MmV{SG)(~4;vZg+jgKZ3P zGfODI6afqA@T4Mq{Pmx22)dKXTm~I0qWgZ8w{G#DO68@vjyuBke7Cg#Z5<`j7HQ<@ zKMJ7~)527bnHSQemgf5I0U0|1;MSyCO~;oS$I~6C1Dd z>0XBxm#690jXQj<22FV#$B7}i)jrQJ3A+nG9+s|Rh(`w?_o|oIjFyEiKT4L;b&e9n zI0K5P*EZK@Y}gCjPzHXLYj1HWm>hsQR;-uNM!s4n1GPhIrK~fV?dAR1>?)nr+N&^C z2NVHr8|!!*z#F_e#aM1Z|Z*`5h}C%+xOB!*UjYI{SS)?bjmaQarI! zU(00(kt1=u4l6nf&$HVYLt%|qhSm?7XB*hi0@-S-Yz%k6lxn>Mws-PB*?~}^xyk(d zi3ARqP;0RA;?wl;W?kh)3TR79sVh#`8J*zf*dwrqcINRJ-wx6aY<+8LVob{jy=CZN9m`gF* zy{apTpwdR$d@v%W)h$xm1xJ0&+ZD~r9M=jqjN_o72PUAhT!QU`Cu)!xKGH?8+$$n` zQq4UjG0#Kpb_&05P>Vp|>(^`TeV&y1TyeyutSxs@_iMOfZbr?wUO7Q5D*JqJSXL z;d{0(H!1~Kd&|3Pow2TBO4bcwXBk)<9CWU69{OorVjGja0Bv5iox&ZT>q_($Q%=$K zS6%4XMygVy#(>(d?>pkE$Knl2%H%@QZ61^X(59HWWa4?)n$pxY6}yQZ*?Q@3d5AIf~tB*JlLLPjdX_CUJhGYG=72e=VYu@?UQqTGuhC;pi&DXD zCA0qkcnVvf(y%HqiqH*6ZDDxw7q3dQ4YMgC;jo8{Rvo99x6vSCN2PSP%O%NMW%&=S z09~?<+e%+FkONi*y?bYHJlIa`)wRN@U?9P?ZT&+nJYjTI)pPMA7+WL#;e$9P8nu= zwR&7yWH*timOMJun_G)GS?v@J-KaA-^tZOOlPkm4oLY^e?H3(IE#8YGZ<*x9W!Y&S ze4NRUv;iKws+pH$S=zlT8s16YWG&ylb(7e{*@dvXdQ+mevPKcI@H@~3QzEX_xgUEN z#cd{%lX4`%1LdUDbmcJ%gnkyOX|u?)ub(H#I1~W~*zO{`3nJxv*2Fi~x_KfLg;Qs)u1EJ|#*A_XH&2q!b9R+YPh&1At z3&Wnmx^~oVwL4$4Mw|}x0LQhqy}I&M{!!Yj$EC$#CRMP9*11^T^2+c7^5EjSS)~^! z8nJtTNCV({LW3fS# zE7XdfE9lXDxR(kl>^7FB5M=6jsu#yjvx6=2liGkKic85H%M<*AwK98bf2Ib+i&XqG zBFS+ij`@sq6|FYO=3;nHY5FHe6$clUOF(D4K}%v3FKXsB zEd~pS{P%8p@l`(4Ahr=pm3(q*N-03IAbj{4+CYj08;_+1hb&@|V{$oDQt5ttQ|(W<_0;{65oxyr%*QoO z+BGBv!t68w9M&;JT5Fy`>0H&4UD{upm;foC(zN_bs;qIOF`dNvQfb@F;#S{2M{Z=^4syeKV6Mvwm%n!_Jt+$Bdk;SVW%sTs4U}-$Ry;43>Pa?AKHEWwm z{HcKu=Zd=K-b zv@7$IjMrVK=yrN%k#lz7%O^Aen?9SXM+ll^0xw$2ff69oLNd!;_O-1EAsTETZO7iO zJ|vBgkqO}Spbh^34&L3|NLp^G(AF-stKMAdEoHnF9+YZ2gtoTgD?X!xip0^PON+)g z4T)d5pbKASodQQ5OB484X)XQqc2U|W2ngn?KHVw;LxvpjS9J%H zHC9K=S?ycWTtRuJe7tdr0L5KRWiiLMawi1(RLra{qqvJDPpw(gp|ZBM{p5IKT~(c| zHCo6S8f=fcU5I^w0cnWBI!2sS974sh9O zx~0&-+Zy++jY96vOtMRI0F+Xn5*Tdp93OMIt|HEL*ENmT=L)B#0Cv_A>T|@;3hw!P z_Nct;t0=siq0FAOet!`~r^GF+kV(7c!0lO*{igj^YqrFn!YBck8d=m+%7lz3Ijvg@ zVI`;8BO9GY1!`K@M{Q1LF95&V&k)B!A`O}4f~Esv#V{{UyHlwDa6cGo?58>}deCnt}kXz2GN zPGa{G?m#OrH+2cw?L%L37oe_gJ5RMRk#Vqdie>(`+N|OTqy5_YRkLm8g^tLSJ?H|J z?t?tgG^pYf6&{zRED@KIUD35%y|vUGV}e3_n$x+7Y&7(O++~RGS^-1srO>T_ zq>l31NaHypy>yx!E2qNuS3E0v*FACK3~K5kUGW}*fF!!T7iDdm_hEWgWX%)@{SjmF_j+EH6fhCAZNaWuTVbU;zU{}T6%CE3*Zj+y_Rp8V6amZL zYL-J$^DScB6!aCTB&#`Fn}o)3wQ6S37T)X&2*jSEs?VogT;0Zlf~W5KR)BU<+`RU9 zf8C-lYU8J#-Gh0qSoW_&8dU3Hd*J2M?RWXUdk)o@8L?kmTu0_eg9}$Q`Qn>@*?2yc zPRhmym2GDpSgR(^Ei&nvHr|7lu9Z8Ze7 zo8}y5yX{h4DKyw@Z4?C{boH+}n@hhpZGARQE2z=sTXtL9*teo|U!?|Q(CGH?F8hVR zBZFMznq9mXt#d!kA8PA09entb;yW!a4XijIQ#G9`Ein`APl+%-S^(tYNu;}3GE&@D zz3ug@0UEaQco?T9vtb>nww^u3xEQUSIxi2qz>5|ntql$q;?{E_K^Q2F&3ZPAD1MPo|KIc1&FMBnPw7V423?G(X85S z!jCFt+IkABJl2+=xgg`Pu6rE_$AUQ#yw@9>wOWee^J8EfcB<*(3s-!3I5m1LX4W1` zXEl(^HX>(FoM-D-X0vG!ZGETGvIf7BRwytkq2;;it_Vo0u8FigH^^CWe zBRpfUt`<=}?S-}8rMqPA0b%K0m*OZs9N1Xc#o?IS&uGV-Sm)-Z1Xot-){8Eja50=$ zC3&gJ*5&{|dD5m&5lv-ob|&caf%K;6cXpbz&m@s;$)E;W_-^rG7xzChk(_&1Q)~W_ zr>N6L){m|$uZ68!PB6d&5V)=xwVQ1c)>tDroGxq` zkK`wxrCHGAk|ukfHzGmv3T5L*d2<-xqVYf)PZf>jpO+aMO7yM=O7mAxk_(0@4sbmy z(R8aDX)YhjZNLw}R{`QkZeW?KZnkraP-An!F5GoLlR*t#t1=-dON! z2FA|zc@in3Ex)N9E7dJLBd1zv$Xzoj?^j?j?d7q*Sz&$w=~gTf&riJaWw%m?p<#-) znmSqPHp=l8NjWdu6;H%B5XpYF){+Mi@=2uF86G$ArM<$(b!dFB*G$EGMu44Yj-*HbNafwH6J1XQ*Qs9iIv zz&Y=V>;A!`*;_;lC{yWFpw$|{v^FceNN^4+fK#hMquM>9#-`)|L9Ah|Yx;~uVoVI< zHK(h1Z8XG=`%}5yG@u=$(wTi6_I9yJVjIakbm~o0MrGM_O-1bCd)Wt;di^W6(x*#d z3t7r@9x;mLV>+DrNK518rZ6*AwQH<_t3(!vY7*S+)nWYL^iBjG@%#Q{;?{_OBH2 z!X~1>V6%_SRbHc|Qqc9?`g7_x;f_}TcBy3ndragtqh{G-kuN(1aggiIl?+sjEMitztA%$wC zV-}f#;a}`+Uq#b=J7^X=dt_5^I%Z0nR`CX(ZFMe(r``RXEymxMj%&em-xA$gK_lsE zB47?qJJxQWsOmbT(#F>2No7AX;}tTAqLJ+09cZmJXVxrl$&pDPd#SIpd=>FaPrlI> z4QAvd$T7k6uZ6q=;YjtX$Fz;iLf@7nrfaa*A&*9BW5LP{1JDso$3ZC{p?(wim8WYr z0>es}OtFuey@*0DEmfFd+w`x=kB9y-n?=-8T_w33w>@k0hvB!6?EFooB-d^tnRp_x za4(qaFT6g^prdrG#nPJDFvBEQdL@cXY<# zBbkmhhTCMvb#Z#;r*o%(bhx(X(!ChztuEfjrB4@!(NFJJf8jtLapB(>Yx7JkE}_8g zabA~gf9AQ3+XAy^&|2D4JQx}6P1CF#$XZSXW(K?3Sxj>HH4WaKVixB~vOn*NnuqN7Yznja zc&aAD?6L`_n|L$<)W%_lbcg{S)d1SlZpit&8pUl+&LnT%gsxKW#BjkVCTx#d0PQtv z6M6#gz#WBTc}=F;`Dl97c0MQ4WykM#v8$%`%6U2HC^RrGuXP?Gjeb*8>DF5u$s+v5 zt6yp`yME?nP^PqD)h+GqJk(($;(#ZgO^WV7?wpFbn_WKN<>LaeSHwx>Gi~S6u&*`i zd1CU%%bE<%y4K_EAH4(&bQMzLQPl*5M8jyVHFaB9?e@ba8niU))SK_iKpjjM7gCJM zM(;}2NuUt~nDbs=f2s&>wxqu;Zra=pN;J2IUT6cVxYS~fCPi`b^sF?NYngn=+Zm=y zq9b*i1a+;;4KfIAvZr|+=mQcz?L#k?jB#BJv{y)fdf5W3Lm4g#wg9BONf}G4VzV?0 zzd6`!eg#$gQ(GYbko85|%g54xs9VgXh|XzA{84$W!T6Ev-Z))=p2aYKm62iNFJ=S^(UALH4K}YTOr&%&OmZ zxuv`kuvnKE?^`y?&ZYaU09&}b+Ta2J_o(L8QAW+fKGl(YhUwKu08qLjpP3qfIv8%^ z@;4W!e`%rNG4j?#dU=i=rLj{%r3nUCtpHe)P)mo}hZOdj;Kb1bRQ~|8B!WySt9UB= zOJfuP1a}V!>+@EFOC*~Ziml}be>13BRldXQ37k*`-O7Ej+NSfD$|X3(Rot^-h{3CI z!y6I;^`Hu>C6(34;-4@I0>p9aT8SPb*o%x+IqjotGMo`W6(cPiZd*LoY8lHkkec7+ z5G(R328ssCfww-C0fw5D)K7=|wK~glbAmbw(pxx}0h2YbEudJ#D&l}SIj5QxBbwXh-Z>Z}70flWa!~x^(!Ze(7kx-+kEjh+zd$T(looK5?e~3eJWee3aprses7_y z)kF?~_HTrLYFL3()el}d;8)Q)AI5JEYf!FcMc@9=ugA?_N4&H9tU`{}S4r_Uv8GA_ zO5q2gtrU@yjgQ;nx;Cu!c_pIBU4|E^6ZRC4b<_mfeFbrAsX#$hDYv-dv~>Rf7;8Ew%JObg>s0hFiyjZwG7 zz5z(|u4&<#G>p?dO|KC?W)utbf0T@S)+L{bd^f0|jyr|kdsfQZTk)}hQ|VmxFOatc z(IFwZ0-yb*UsORC^$oBOsdPC9ykm8xWt!4vIi2%UCsKMCS$27-cssauvh1m$)GAfy&6!$5+WQ&?VaOr`J zRarJj=OT#UbyI15qsu|Kw@ubuF^N5=2pDIZ$= zb3yX7XQ;1V2T{ptd6<|a^fMiKE$LO+bHJ(P%C-k;gdMz^^bv7OP)Q&_pb=e%hnN$z3ggQSpDlDc1YS%9J#-8u@1q8Y-9w6j`l!tqSq6BP>70Z`f?`@*4` z&J!OT8rqT-+A&Z`Z;$|`bO$B+Lh?DP(%MX0?(s#y=Y+-}GB~IG ztY-qRy`wqu_Hk8TODJ~%n$Vt5La&^PUn(#%2Q?GJBtJJ#YC$8Fz!;_+qw$f_nDJzD zQmn;J))b7(o_L^EAzNVMo+>AaRPoJRINOD$n3yKvKv=7>v6I@P8OCu}3w)f8X@HQp zWuvwX*ji_0K!#V$}OCArVb+N?BZqi`x+kJ$C8$~Mie25N=MQ5L~^bgJzegMc{t zR<6d|z|AwuXB>(Hl*;mtdP55^`9>>X*|LoGr1JQ{pfoXrXFEkW!lR1Vjx3xvT3;Xo zgNg$~D8h?_+N(N^+*bQQ8|AA10A~Z`115pl7<(MHJ5q@Ik}GrU;Ela16KDrs1u(Ia zVJ4mAMnMhMwOSCPC&M4Ij#1GZ#}BFl5xcs3nLrs&AXnIjR4QL zwR9_Q@?n;k*2}l<;+@BH31e=Z0IA{5a5mOEvT?O{rqub4Srm2%QgHTQI*lq^(hQio#nrhSpS z*F@_Z5x1>cjvq8^RT-cxa>)Q+yqTtpZOxFpS4i->e2kn_BGi@2@jzI_HfVbRRSk;Q zMAnkXI#p3^G<+4OaTsSsg}!DPtm$+FKX7fX-YZ#I#~2lG+Nf?uXt*9vK7{z#g0tk& zriZAnVS7&dcIKe|$wzOTW}putYc>ghwLz`VLb%0yLD5kO!ivMX(IO03fj}N)unoM9 zX~H3lw>8!_j0q(U1!u{nNT=lar~?(CM*)D^1vO(_)$tP}6=lGuNfIIgoRdMBoY4Ao zsG8kC_pKec6yGgqHL;js1KNRazO-3Xbrfzv!ioiAi(6m{PqUOxoYsgu00&A@pH3(P zG{D<4Nw;Vi>skeK)1^2?9ziq#lw&Qy7!=pQixcb&<0d?yN@+5*}ym> z05sJ2?sKBR~Hk#ToCO{o21V~$foKegM zcaXtB$6B!(D35l|MOzVq3Uu_TVvEZJ9z`6$W#uwP+G9e6haGDBTjjDirnDUwr7M9^ ztrxdSPb(vCFe>0zPBW2CSlNyM$f^R8Lb>Olr1YdX0~oFEE+pch-~xIIW3h~Fw?C~RwgaBx ztdhm?9a=~kxM4ty=0lN@Qhl88J64>F8elIxRc62x0SuO~j04uH8zMo*F;_@;q+P)9 zD?VT|(ltPMsTL4HQN>*#Zo@B1Q6Ax*lye6mkk*f!(iknD5K zX(VlfQmh+}2U^__d5!b&ibHQ4ZMiCw3mD=T&cX%-Fx#mdbrrH!9Au7aCW$u;4h=|* zwbRRu3x9oC<`*px{sjTHB9K zX~qJp$l|nCEvKzakgK){$e;{k0LBnvn9wiE4QxqlM3@8Rq!z&7;;eQv65RnmEg`nS z&fY6_8(x2T!qF|ZFci^Y7$0X)a8{L|9At4@3vT(xTAS?b-!3slfai^<+%ZmTJf56Z z^V=s1hLg!D+auPC0f22YjiUflO{YCET?@jcM$w$pe$Tg-=M-2Bb+(rxHRK9+*%^2> zzX*r}pOn>Sw`^|>oKavhj3szVMX{LeVmLLg9AJ&lQimyzmntb-4t{H6ylfc7Gwj5U zJJ#XbA>lZwqqSEddI~NFJN8nefs;w(GjP3YubWR%9v6&N1h!4zcLuARb~(`tX9aL6 z;>t!s$y?uM$>3C`+14;sa46>s9M6z&G2WEfkKz@&AQ7Hv@mu+_e8-Auh~|Zp9I)sp zOE>H>UEFOun%2tSFs_&TK1CTkdeTQ_mgAMF zB<6n2AU!ZC4YQMwI#*rx23|)Zp0w;!%%EV77Jpqcz*zTEpdq7~N4t zY7nU_iU8vTF2`+7Y?W7$gI%k|Za(Ua)oATvl;%O7N-hT-_D(Q*Qky`^HukR0Z7mxG zKPsgrog%JPcoYH7ECXQ-I#VOH-q;I(D|lLExn7jMLWkjK11P|xZNTEIt*>4<*PU3ZQNk(5;r%1(U5zY)~D;7^2{FCKPU0twbaFuvWV- zu-o7qVALYYC(hx3D7YNAkcIKnif7pyBX`}dtNScF@Hod6QcD>j=rcvY!)QT1Tw{uO z)1^Onbgfw6!wuXTz6UtPJwqyQWWpX^({m9Vy(x!a0&*}&sCpbRsoH{M><-?R3`bO{k06HS&U$4rU< z!Sd7qHq^-o1bS8Pv$lF-p7v#ZjR0ks6m9@!pcZYMkIJ>^3h`B$6SCrf<}!SO!``DXZQ$10!@H49Xg3~c4r3i5{Hjl~gU&duZ?lFU zCu)&m0Bvdmn7}sj9uQN7n-NI4yyz`*xZC=MwMKG}q+*L_kv}?6y`IP>ZHJ+a)lPcUiXUiP` zsqQqZ?-5F8w)qr#&;m!PT3rI{pMa|Gl~W`muRv-`eG5?2_cO)`L;2OFR=1&qWa0*AFvI$GU0c$9SXpbt5_u)ddL?bxkda%pWXkVE&;cr~qXfZOfI zJ*tJYT86_BeW-iT2OD*NsOhdF^24vFt*b3Q_fWGpAL_~Vt%UHbuHt8H>N*OX>T+7d z*0V=|yb5M!evbv-nC0PFaVfLHZjm9>PoK=hK8z*lr5;7{y4ocd>?Ax&1 z0uG$lWo6-8F{XLaPF>rmtdnLeK6wu1^r(N~A!wJ%jBQas6>l^fOPQ4dZAGomwp-}X zM{B3!Bw(7&g{0J_^L)Uo=qjDm3ukbfM+Env2fl@Oc)oX>cN3m^QVkCB7gmkNJ!@iZ zXn8(VNsJ1i9@$%-6;IhEMv~q3 zh8-&wI~yh#&Rq1U8%n&8lt5!rcs0}M{tT5snn|;PKp96%o;O{9bk7yg+S`fMBX~3Q zsG+#~EzyboVILW-E4@)7<|Y7Rr2uE%_--_iTtk5Vl{6ODF*lJo`AF^FpKWlrI3fCV zsIN5%OrBf^J9-74+PmAQu_sp(Xvxso{1?+@SYRj%)&j!5NC^>hKD z4Dwpr6h*-miE6Js%lYr}=QVNf{K-Pbm{Z@iXxi!PA~cdn4tr1nIk%P*8X(*_6`ggW zU0lF3g$gTNTti~NDsBRqE}++?VStFk3IOL~w_6no4(`UgO)F3`qQMgIqZzJy`!+?B zYyHgB_j-lCnu`p4Iq5(Tn$F-&A8tpHGMHfqUf)l!g;sdjGS-H__IsGp65*MBDvY`$qfIiS9-ImQ+q2Yd zN}EB0S#p@|rC|_Lp7qP=kuuD|xNKIX&8(hDxKF&jr~_C25(|rBVUHZvRQiRJidE zmk8M&O#osY8gj$!50}Rkr(qnjy4jq9Jt`{;<2=nJ(fi#!tFWwQ&6~uQ}$aiwY^0+=`&3RXMMyDJtzV=tZnXtOvjVy(x{^!FxqU&gIe~nHH<~u zkO$#aZM6$zc6I}CJWvGwMYX(aV;N!kR&%xG(jANt3f{M9Zf-aj2N}(1Yc@7E@gv3Z zx3vIrnr4%EEA9-y{*|eyHSMVKi+sHeI?G;;#vPJkMjn+>C2c}yx@N)y(tsznfrXP3 zk?C01m$S{X)+Zj7v307%*o8h^*E@@GIWe~*zoh_r7K@DblgmP?%gVm~x}2pbP9TW|z%G z+8d=_w3%YfwaFXDdbXFrz*WW=aqU>w`goc~@}KvOKn}gRhQM!)vKz3jM^w~q?he=w zUX=U&D*X=NO8_xVv9aDkmA-VK44ZvAe0kTB?rPCk4brS&kO8iW4F*}{5+h+fD^cQG zAYl;hqp+@q4MrDX9Gw@apboQ2lWKnO6oz&3@nB;p<25LI3!sSaT zZ^E}_mMEGr6kr2S(6siMvnu}VS4Deeq#|U}KPhT>Z_ouR8sY?uwy( zY|&1l(C$O&SCJ&MDI~4ewE$^NcO(|8Z!aWMmiuM6O}{CowatN#%yJ!%YPtQI*LHup zAwzVa3`p-_D9bSwYQ{KZM=^{OQO%;;TifPS^NK~(Z7ppM-dm*rS6E+8y8A|V15-_Z zCZ{LaQGQHys!(Y+*UD}cu!Q6alzpPj7@~l~(tskkhBykr7z7c?toO3FIQg-fj(tXH z7;cXpsgT+kBv+D5&<3Ji+gqr&1B$0{;z*HN-afd%#Zc7jZdNia*LLoh?N~NCPucg+ zcfcH)Xbt^7?&fJS$8I|2vNeAcS=xMvh2~S*yvtVcZ0)TJ9Vi{FcJW=sm83#YZf(hC z9Zgsr0&2+iCgv0YvC!9*-)S@JS1)s^9f_PM71-VB_aA6u4t$mE*j5$Z=?cJKXdab! zGdd3k>2?H`M5afD7X`85l^UF zi;0fz*flmIh1sp&<^vcN%{ArnM6p^UMeB<3-xv74eJ)?J>C%*)x|)MS-9&QBFP!oO zJ^8D6wT>oXDBbn1ljXkgtd@d*x1F+f2C}WS9~In5_DL_8FMep`1M4v~VT#8({s)T5 zY5e7A<6yxLP;2IktxHkUm2IHAX&Jb#kHWF*R{QVuDOn)SaC?e50QVM}-p1d}k?_a0 zVngDn;QtCuY41v?yy)(etN?cjTb2$X#G;&xD?&9Q05~aLY3OWkImhRqJ!M9(S@@t^C zkL@a$=hlD)nbm{DyLRv^Pwc63sd07kx$RMENiDo;kgp!K6aw<;x&9U6fI5Q)p9~ww z00F?P?K15yCtq!~eIuB}GXs%R+T6tzvZQH`ddv=r`q_~T(VSwl5ZvC%n+^hY zs8;gg^nHpjLjM4IqbYr-%1ZK7PzPxYtL5V3fCW^45NVeG0K1E*t_x7{74)hjiFTfb zt?8OHvPbs2&RO~j0M(Plu!+koWs<91YO8q}^6;U%dRCpznPnBC#K;w!rE&v9xQ0U8 z{!GvWkm;eO&Hz$Dt-g4zOIv7dzbPV@llJ6nx7c@lihShtqMPULXig;~4To9!i}Tn^OeW=UjOT#uT7DO*~u@b|Be zYTdN6vv7Q}0*c1f;Sxv{d-TOww2$mCtaBb7fF;!|t)yf~Fsv#yM70Ya`om8B+(hK= z9jhG6JQEo}$~6FLM6p`AxVy#=O0f;)wd{s98Bfx<>-W0U2INvzE1}UB?D3H@?c#tg zO{FCAfx;-N*H)IJZL}li^%WJ(?AHwN+t)#(S*&oEm~L!$pbQzb$A%)Q&icP+4d#;u z;CLgYHuB+Oy9G|rJ5)344RqdIOUR%I-+az)rabl)C8J{N&uj(stS0+>*I#Er!*%o& z`QW&<&9Q78b)X3~OTX=HLMuCAuqRfn3G~m9S#RB%%F$uO?&M{crFT(F1++hHoql!g zKoqR>rO_ZVtN!uEO;VETA~!-lX6u?sZ)d)^X@JaUfGZmQ-bS4kBadM~9UZ=l8v}9o zi++^JCW;8!7d(!FtNp30EQa|$YUfSVmp28rWVHZYmI)?cVjLRi?X4cd$hki=3g+zQ zy0n|jamVRfSGVnV7FXokKp2+IF}ZS`Td=D!=}}xu_KEthV_JFzjHXjNeA%j+-sog? zA0|6c20WWBZn18eQ(DV1J*o5f6`y0iXrGPEQ8n<1e#tt4Kok9j&hk$&5DX5Yt0lRx zpUq>rYHL}%z+$$?6_csnO9toy{w9Do%;I<%t^f);VzXn`<**05Kf} zbp{!xV5|PBfGo#x65+N1vaUV!^QrQV)fGbZtn95yIm1>Sp7(dNGQx2f9Vh~O+ll;R;^na`W72>++k4{f&xyZ`rOP^=o$E?=y}hz65Gl z@#t!MOK&D8LUPBo00&Vr%t1M0-kS0`kSehxcC5y@7XD|M9x>9S((f3~7>sAufI4rq zUOl!X18;2BE##8Gsf-<`I2CJBpUw*u2L$%0ZS8!a`@_CQ?LZx!wcJ{so3#cRMjCxQyGl^sLPej@k(3aps_8?OOB86@(wSPz`X> zomL6FgHSWyhHtWQqWM@v(p0w_4_P znC2+4Nx>D^={EA@$v55TD+5=J?=D_2a1;7aW+s}px;3C_TP8|v-mr+9t--(*NhDjS z_5eS1$K_f!`cK+Z5?~hTKoaR1g1ja{M! zdkO&L-E~uT8QUkNY}o6!HeunJHmIqk)S@a`V;hI1WH*&CGE0^|gSBP`n3=U0-cPs< zMw-%D53)v{W;iv?>KdHTg^I~I0=kb5HKdkLd31rN0)RI(#!s@zaO<~!Ox4?5K#h2d zl@);6oO2L1ZO1`ZE;Vm1$IC_GyHEzLlS_2(avKP}t19MyB+2%7%lZn$ZCd6CJe6IW z`qw=!yCtI(RNUr(I!jwSi9gbA#{;0OeP36Vm_Sov1B!e)t^BYDmw-D~4f@_(TxS>^ zXamtS{VqF;RlAY1fyFxeT%ObmbsS@ZRJ=WZzR19>jl3G4S%wv|EWbO@1=wauw8O7cx*X^my4Nb^X1!YW_wc=ef{D>%s6*AxNI{kA2!WQ}s!!q(ocdSbJNHUoYu zItwSZyLqNT^8MPir;B@w{rAT!*ct$XM$;Z>-um^*j*2QX1h&#UfOZaqS7EC`=2{@L zBj~=Bm~LLy#goe1K zBT{>TC8y4>%>ZssVR3T^Soh3xT!C# zBDA#Gl3A-yN&7yUzHu9mVd+*iwih<)@R63F2(+Cl7q=5$H_O->eciZggo4p=AAPkF zYEZl>V<6hYfmh>>duf-+8^NFoSL9|mVn8-^r1LcmMOG_wwm9oreLic1Y3$*K zJh9G4Ue%>_BG_4k;fv4&w?f{^UAAmYt^L|Wl5IleZROx7G5jNnRYRkcBtbwuVR6fljZo0O7`J4*9r+9wtV0){ayJvw}fcJvZ z41Jk@czr7MzKwkxiFgj!yVd(!V(c=ZSXO_C^_e4!`#RmgU^`F+9dBA_q)T9%vEHD! zznfLc{{RGIflmI$ylp$}4m`=2RC+Ftd#4XSP&*O3R)9xwHQuEvSxQV%uOEduEp1}D zirUq8W2rTE`tsT~E~6cRtV=nc?aC3dT7W$c3mIE2A^BIJthn0OOm~(<%QJQKt8;6~ zVFL@1w*%#_HE-nc1dnSM7&)xKeeJ}HJhEftbH*y>nG_Qb-tco%Tj}Lv+cCng6_+#@ z3oA5dYApbD%55x(W^feo&2##Wr)zG7ty?6X)yQg>O(6(L`D<>@%3J$b?aVtztpG=D zXD+9{;zuEmKx&=3-)QRXEAh@Ny-haW%Ge1G83$VPPaRB`Q6;6EnPb-!0n~U)#NK7g zKfU{Zr}oH>103SHUk+RU0Ap;L;j=6K?`qoBFFx5PT%z=#4zA~0y}!3n40}Mv zc&E0sZS2LnCSSJ|m2dW&eKqe`VO4k)hbN3I{>-a9S&#|<>20(r+R{tIbkVc(iszG1 zxwBb!N@d3!)b<**nvJmv%%iaFiqy5xZ6rmyoMAhUS^%M?z}l2;bu(@Bu8Lo>!)xTA z-y{D35vHx8Tif}TYlJ<$su)uW?sx;Cpbm2C^5)TmMRK)j(B9u>-q(d4b5FH~3GUhD zISI~tRfx!*=Wdz^^&+$b4_cOBscx-}oEqq~YuF*NjdSKTVCr$l9{61eo3&|a8g#Z6 zuRE?u83KSIG9R`xD&(Hj+w^ODW}Zdb#=7kfPe}>6p8)m2tGd*>E809{sUxVY!1K)} zaL~5Hk}3;5^4&5q*s5!!(X>lDxXhMk3*NciX;#+sTgEn#-hd_4-r_u4t7JDywd7td znyV%YIK>wcS*@g7-!t|Vr)v!6R7n#>B{@QXntX(Y}|bv1_1Yim0~RGz}REp?}` zk!}`G-JUU6I&H$-U3s!5K=z=P$W_wYf6cL2bf`2dXcluP>Dsk**dW#}7CRXBN;o*_ zQfU^S*(BRt{{XI#;0g&aJVUP8#>O!aAaF%wcy8D2m& zC&riWBw{()V@{^Nj__xU^o@KaoX?q8*1k!TMZdMPW=9)a(zbL5xv@_+6S7Qo9jSXX zXsRD}jV{NNg=KDYROGRWMb6L_dRNW967lw}73hmlpLM9?CccZ%d`YG1i?-TTe0o;} zN=HN{5J0HdQP!iH1W6T_t!~`Q2F409dt$S!1HH!QUzBvLtzyjrp{;QzB-D0rVNAc3 zUwNb6RE%w^{{U!B+i|pd&^s13$jgo0Y9)p{U!MbYW|^5c`A^fOSQD)1iu|7R0Q+4^ z-Q;rMC>5D~;!Qm_eVArJR_D^%Jz@QNptEbuPb_U+|F)A?WiusG;N5LEfz0kNqa?#h-_N>Wm z=NxSvtDMztZ*KsGHQE}sr&7b6K4amwn)6Gy8ePq~*%0VQrDO~3F{W0RAF(H&-V05Xp z&kru0Y-d71f193_#J-WM*xdQAWa_c=$gLaAXIj00+eS!N7z#Um8PVw;TT0S92y@6CD*euoy6wWm3hYkf zn)CbE@7~o`R4PUQ#dY2fdGxs6X-Q%`PzA^>qMG(CGSI4oKQXC%M;+Fkcs5PC6df0( zVCoo>^X+h{w^!F~nq@xE|HQ+E`x2A-|aX zjDBEx({$_2QP7!T4yt}nrC!u-7AZuUlWpF-D4-64&&Jl#URvqUKychPD#yefPSWDX z$+29x9Q#)_rNyOLhtxBfdjn6N2sJpQxV3-YIKdsL1I)CID(6vgz1XKswdg)0h8-T( z$~Y7wU}OsD{1xG3v`@6pC~ki$+VM5Eh;2U8DOqGrF+dy$($~b&B$LWQFM8^(HC;Z& zB+<|;s*B&+uyqT|4Kqtmv7uFQ&umr>iF2h%Z!GS24D~gj4b?nAx|9uWhYE)t!mTxt zzR-NPlRR`4THSPQQfVWMc~OJ(&0*^vCb7_SV`uxr-yNs|)KE(-X{HE*!cQiZXENle<%Mr+x+S&Tuxb(fqZAG&6RY@lPPg(Swzo+-bnA-r zn{5wHpTniJn>eGNZ|huMtA6@yE9GINeiR={!h^?erpPTMjIJ@j??ESD;pr_rGZd5G z#ujHMA$S$d`112h)iik>Bwg>E1vnzRza4m^!Mc}&?W{D*Ols1o%X`<)`j3LOIJA}2 zwFlW5=M(|MX}Wf`rK!{sLa_l}li=@+);de1H#59!7z61`rCVEST2Qr##GSA!$vz`| zHN4YRH7h8}`mJnL&(q%r{9v-Wf+mXaI*>Tcd-jdujXzar@c7+dfqHL>yiwtOh1ug= z@$|2t{2lv5UqWI@Cn&>?O+%y})cuv4Yl5*i$~#t7@68gfG3j3__&4LkPYu7HGTeEf z17Aw$9wpNC_!RkytlhmUo>Z)8tjp_ZZ!|>X4eLPtX5m3g^YI#PD{&sw(?>)0+{i|cNs3Y+tRX<)Y?q4XB()n9Z9!~gXUoR zR6(6`m5S`|Ai=9~vl#~V;8FudDCC#reu9oH=@fv5&U;dg z>xn_nx1}I9;k`nDvh!BW=`5SKhPY)S@n9 z=nth^kgG9{VU;wHSz53=QwD$|xodGAF@i^0tzoEIqWMLzeQLu(h4FLu6jwW_N2kfQ zJ4f1cKo_+?66sb1t4vI%(y@=kzYf~6#W`TZy>pko9p5jSjlbHtJ!eLZWR0e_!EQQJ zwl!2D|E=K_nsQEmO~}G=N*M0(8kjA zy%xqHFno_gQ|dR-n7`s&GI~`_S4&8v&c+I(n&FpIkW4M%1Ryxg1d&N$t50&=6$IB+ zqUn=DNxO1a&{tifA(Ge`(>d>2-)Pa`Zz#6I+)xCTItH0CZwyF1jZvS%`Y4dD{ARaS z7-F|CyKHsMO{(aqK?KPt6v;fNu$%QzVCTpq1^t6!NLMW6R; z+Ojm=S6R10x{bjr{n|M|^ee9oY0jDRzIE&mTH-D&ZuHBBxq?lMy)bJA>s`J#Vmn1E zn%P&G;}cw?9CfNRGa~V3zilyjb0+HUExdkhtwK&edPm)^btTg!Aeg>k)KnLq9)nk# zb*zFn{*(dKH;c6Z;6uS-)3s`8T8_1-$1=0zDB`%W;d`5T5?7gez0-Od}R ztiXcQYtMV+Gj3ehZ6=?nOq&3}>7PoWWd-CjZ@F+VK(72cDuTpeM>wDk1`h?tZszt^ zF2l83xf*N`g_rM&>!#JTzbLPqtD420PYsy2Nh*@m0mT0R!fmE$+v0u-^rpk{3r&;e z!5QsZ7rq|wrl7(^bsqJZdEws*LjhHp0bZD(4u;#snjPAzt8I4tt3+GH=6QezL(O@D z>9%1@+BjmrbPCAI)FW^go@i#nC%Jo z`teqLtxr$?09d3d&<8?pil4dGppyP^^2eP0DwLiv(_n{d!It_|_Wmu?lZ@1IlO&(J zASkL$HOjLEImbaj8Xsixowm2jikb+~M)ERhq-%8Wmu@ORCRm0#PzAtMeslo)Rpe}t zinz^lYpF$O+gWo`opu>8@V6tkr2ubS-1!6L>*+zhxd2~m9I6A zQPu*HIB#R=OK+;(%2^DjJvpE>JJmlX8x>rblb6R8%@6G(fsE(9Lva=KEDPk&2SN7h zQ8# zttQ#gzbXL4h8^m6bTr$WTtkS(Uz$9~JiY~9RSh23UT6cBk|bPbtwzB>3I`^(Wq|>~ zUcD-;RydQBKp77Vjy4_usNo)3A4=$ME%zV^!4;m1Zb6O4F+d3dyC^CK+R;@32H}%b zVUc465ayfaOwX`2W(KsdtdXyl03x#Hg5oIyH$&-GJoii{+#g!BEqhg0!YjI!(oJ1yZ_}mex;L_^)yn_hM7!WQs{mdFmtLl-1-%Lxau{L|m~ za(h)PG)#=V4l!KRmYRjEpSn25J#k;Y9ytA$d>7)^l3Q3((WLJhU{}b#JN=0~Rc4Y) zphzxJdSk9Dwivj*8O(~5GV32a<36ONKTn?5(u^{7B?s%pKhhM#vKksCR$ zmQ9YQXiG;X0IjVv#agbI24yGfQT0w=gxO-E`X54H=u$iGhZy#($#nahG!m{s70u{> z6D`+hy%?_gKNx5_lKE{Ss5LHfj_B!+E7-%+{AsFblY}!q2ViU4JRSQ$U+DJ<8%n}4 z?_N)Fqv>~pHtao)D-QF*b1LscoOcy*s+rAJk@`#FuiB2?+BmOVusE-vbU%##7uPmK zSvQf!abJpy4b__m-a`*VT_%&_4QkR~G8>|Vbiu7}9)~w0N9`t~7KyInNSrA@-Nkd) z-Vtq>)1P*0^Ls$}Gr+e$w^^IK}g9Bd9d2idQ|JeIHiSa6@%pr)PSop6H-t22%Nzro$+c3 zaF<{M(}7(zuZy(ZNRqMzK7`kbYM&3~Mkh{}@UBtxZEsJMpalo_xvqI(*Fke1TE#lP z(-8z?wMtGS=OCK-XHM}(zoZSTF)9y3(!D20_>t!AOZ6Ew$vO=hrjJtd89@V(Y7(r+ zAnmHQI{uY>pDTqvmAT}k(T0fdeJdL@J0gL1TrXqZrZb;TJ!#ElFG7A=klP)hNclxT z#1g9~YELiB0ZG6WM&{YL@T-68)WG%N|8p8wz}*twrTHjJpm65$~0H zfCW{+rzM}3M1bcszCt>k-G55b4yqM8((H-J;){Wo0!O!Q++w1*UoF8=#c8xYL`2mU ze>h{IsRFFUWKg)OUuGjL7PjM9!tHU*HT5BGp_oFzmOJhBT=Q$lJw!m|`rfEupRT+U9HSEOX8|ph!#~L>k7(ald-?ZgT z07%P*`D$bv#s^xd=49m6h=Kd(fj|z}Mt!S)!U-M6iL~1*gSIK>L}S3jQI2wl{dp* zA6tyRogx1KfSUb^Eou+V5I=yZS@SHTC;h=qW00N;vG~B!-^DWtt(kuc zW8BO9Q4#o8>_x}I-vmwpyVC9DIqrj>%DKzGf&TywF5l(S;a%U|7_F8%BKni=eo8#h zNVqFdA+=M3U#T~Lvmb!2GFBfe(`|72m+Y6}nX>kC6g8}IaWHsEBlE%Spe$P-PHCnX z_G64!-0%A*TR!h5^yjw~gFoz%sJHr?@6xa9QSL9RPqFc1G--v8nv_Tm6pH$a_x4-y zO`~EfgnGfh{hNGw3i**n98*}B_ZPCCW5Cct-4tf6ErJ!^Ytn8$2mC;_IF7}S(z)yJ zhaV8^6#3RN5IX@@s-r$f*yO&*q~MM|l&fbF)u+<@M`AH`VJiLxvsv#|j`&>w{{UvI z+93H2me}vWq!xuwJktH8eL1PtSrl${$fKPTVl=lKvISUXLCy^p??N6MmB8h-TK5|3{)iw{b;yY&1g|TQZtHT!4M^f2DAv19ePw|FE^3b+MUA1A0)pxz^FtZwhv0w zNDBP9r+u7b3q{aa%lkM}xhgXOk+?XmGi<}9Czi|9VvC@$o-D_H)ZwSAFUwkyNAeo3 zsUXffPz51ms=-L7$!8vOnz$j9{_{Lj3~uL2#E94_NT(~MYyT_D!_<4r_O{Yo*^vSDG>v}mjXz`l!X0{+@ds43D!RtkU^;CNaF@_xa zRgq zO}rrJc{T4w$TICy#X%;H%rm?X!ixdn&Eb8Egl<}*Uk%R>?#k}Xdvj=vyH5mAbnFlH zbhHjr!ym(!1Aw&}_-5oTUyAoH?8YbLQJQb|DROtNaYlj4c&Gd$7fTtC4AmvlF3@us zuc6`4zFo>c3VUdYBJBx-MuR?SZ9d`>cSp?$r(HV+bs%=Hqfdq{r8{s5s|Uk&XrT&@ zD9{g_+e^N4wkXbil?V1VtgJ)CN8w*W!KTL?#D%Q^r(3Z3faZ=-A2S_3@HX9q5#Em` zwW$Eo+_}&|Vh9y8j?NGOcY*=ko z3c`zp&jrCP^Dfa=<5-chyjQWWg=|<6GK2ILk2i(mQo=O}=~rU8jsfLRib4ZbrQC4+ z2eo&%J{IzAnm}^ES2G=i%*u*7dr@HKF+9VKgl3`g_}h#M^(!w6MKociTpF5x2t%_G zjG8QinDSDkTNucpVeJj)$WE-P-0dQ(#o;WzTR5N&0rnnoQ=&$xoL7GS6_0j1Rd?{TB<;-{fN;vH#{#GM2LM-Q zz7{A)mMJChrN{7|v~mU6!%3dPo8_iBuG#!CGJp*U;duZoI#I|MX9_I?^G^FY7*(#x zd^LII5{vTG>*33Tka?gvjuY(XcGnrGzRui*7_UQ53`|e%`81RGUSPX|<){v0&Lp=e zK5B=`82PKe{{Vz;<+x?}X&b_ll>OMn9D&SmV%(3tz@egaKP7fe;Y-pwQm=(?ljZ`B zK;}5WB=7lDk;LS5u9oA&m+E(_W~;7^s77}AXPP-j&ST|5Vouc=U{q}WRlEI%d7s`c z1vxYe+;36x(&ZmHlM;`-C}n2lYis)+{Bg6TR((G5Je|44Un!q4l=j|QhV`Z@Zg8XS z)`5m|#>|>gXL3dnIir+0iZ2o?VNFIO&j*^)783>9>CH_Zm2~6xX~?6LIgHP-rg=2R zx94J=7v_2tyy(f8QW2`Z68%4fFNiTa1BHg2P1(~FxUYDtt&~e0K)+EpavwKQ5fx3 zUg_lk0Zc?zUD+IU6wxB7;(#UdHxRGISZ4t?pv_Y*;()oZyJg*)ueBoYj8!u$@KdEVWDeMKj8I8$&&SF+%{Z>y9Mv{Z z*ek%NWRbO~G$;8-&Urnl#np$ns3P?}DA}F|6s!Z2W`2J3(y^(+o<%W`j;HXX+0GWA z%(EQeu+M6|tg>SVipxmUb4arJM1XNuU^H&vK*6KwRDR4!-O{YX`_=o@#tt$wMSz3s z>D{R?u??-rq;@E^8n)w>rUj_XXuFhr)W<-{zZ}(e$?sMoVgSVeR1xw4t7&Z$j*9Fl_wibDiVP4 zlRydwm(rvU2_G`^Q37N*=}hw7WZDjB0!bjWW!;P#h8uN|^xKM*r_F{HFA3U!F2x)w zn`Pt*L1$+F05EJ-4ZXvD6!dt??L16ljd1wIBvDyH+tst0$Z@#+>P57958mKV z2BWR4lIJwZEv+PM=YiU?+7gEVoKyBb%!7&mz4kj+JYhvOH0V|GNX2D^mAbYnWQtYc-XrImpFPp3dEQj;m~!cg)=?He;Lro1~$HHK^1}w z;g{)7WbVW1R(A&Cr(qt@rn3Vh$v?%?m&operE2X?4k^Dc+#-%(GLqjXJ8EM9QJ+e? zu>IgMQM_jywH(37R9KWZ&CMf1hmpYatELv%52Z89+y@w=m^lpd2*(E^r8;sI44mez zn9)YkDsvx}gS{NUW3`|`$miOTZG6%ITvotM!zw8@l_MQ!<|mZOmrq#8#}yk{WbGBW z+}2Udy8>z@RxyAG0tWD!_=~1I1}a5k~;>Dp{c{-!Dp}#*zQl?=(b zJ3Pr3l)p;p5^oE`EKu8RE;<@*+|kNj5b9L%%>Z(@I_>S;K?wjU>qK_flEN+_Jv!pL zk>P6>gLZbdI`*hcDW%)_5XdCm*j8qQsjjW9khN(EnA7d#l*8uT0>ZMd^!U7$y^G~# z9V-2`?32K-G<`(?O$D}(9{a+8H)^Rg_cx9fHTefmN~G43yoDV6s%xs#uA+_xV;I_k zfHUO3y)g?pS6~AiR8|^PcZuaW*ueFuul0E@E)gM%30is`oyVBhGW>(KXab>1VPy}{!{{U(~l*4B@1HbrgHO58ZSP|HRMPDY z+PU8nT-ikX$@%@OHLvewvGXIFF{t~r8JgDiHda?5Ad}1u+qGz3Ja9hr`4if_`U~?q z6;>+hc&>q6n%rAlzF5!)M0I-zVc6uxamlPZd$^UJK-+_K`c)a@hsyHZve>FN5yXVW zDXk3&WxGqsSzvP8dsa-bUNaPsZOvXyE#kjNh+zrI#cgU3!7_rfgelg5I4g#^vvIN7 zAU!I@uBmiYq%34B*{f!I2fmMRaj`0UTLodW<-qGe81g;M+XsZ5=lEBkt=ml^{b2^| zVSTF1NR|xJS^!IS^sbi5=IZh^NwBHyKp2tDWoHqz-T|tR3%iouL*g~9zwBEXCTTJm zMN<1zR?~}HB*`6UGZsgju#7%kYL=m^OpzoZerDr1s~5I+*5B!{FW%}a5;nfLojl~v zr2s$eHfYA(1#&yk1*rz;21X=q;;PN3 zG_b3w`sTGSZ()kqykj}(io}BM^@t3cQN3sa{BbS30yuv0txY1|8|1i8ln%7twL=ZK z5w7g_s_(DFmd_aDJYs+<>TyMK#H)OZ&{Y#*2)9<5$rUO&DY_Ia&DyHn+G=-rh6O0S z%>Y2l6Eb-c{od8NZt}c)VQe?0L1CaRlccvyTR)X`;cPAA-vJFHbOL}lxhI%r)z_Be zHD=zz_Ry@-ugE%5Ik=YiEX##cU0vPWk=rWUV1hf)1}>o_rDJ=1{{XvNf7te#m7*J^ z+S`8`%C(S1EOSmlZ_>3R)#En=soI0B0BBgpXJuv}Zi2WCPD2I$`y<0v?ApvS$jK6C zu&86OhEy_7!!JQV5a~98d0K0>!9SIB(_XifAh*M)7&XVj^X_UzKeoed{N+{#K09CX{efKAX&2L=XJa&QY zImoVA?~Dj7GOKCk!n@w8Twm(91O>{V;}yAQ8d}1rd3F@9EJz4;0FH4$74-RL zb@FA4ABAWov%v22a+vAqRIT--W)Z4n`&E5UP`OAJRph@I6ad(-k?vY3P-Gq|{q*xO z4H&|34l9wfzfmJJaenuubT+cy%L6$B<)8*#Ol6N|VE-18&*qc1Prl_%qx%9CDiq42)6_xoMWYG$dYO7Wr6da)W}xpqj}lF zcc2V=Eduh@43qWiTK35t>#{5WKJ`TUyG;;-?w;nIrNsx@3yA?flmPkkH9+#nNCTy3 zX^_HVnjy>-)3{Lbj4HKYh>!tu%HZUn8K(LxA{fG+DbBg1Fn8xkSPt z_p5q1{HtIXe9kBW9Y zf)#)lkZc`j19kkFVt<9h+C39Cgh-iu7r8 z_*D#?Z(fzf&8gjKkj8DI+Qz!AD)#SC)0@nT=k==t66)onx0MnBsj9`Ov_3{-9qNPHPjPu4n-EmaPAYkf&YsY%pO(^`#6ZR>E1wctEX-e>ohwdg zA^RVfAMlPVlD^VGh$tJGy(s1bp^L?E&uuV70gB;k=3AJB-mx^d(&XP56GAvk6`&j@$G#MrBwHCY!+(Lq~4 za7}kZ;Z~n5+rlF&5}J-Lg?3+TSZ(0S58@TAHh|*%G$hpT(g$BMA%kC5X&z>mVHi{j z4geL)_PZ5u3(NPbHgP?ptdrvl&1Aly z@iyqA;B+)TuF^%B7x1oQLw{A);g$ffw%7EoHg~vNR{6_2)6&XG+wBvLihk`~mKaoq zem2kpygO!#3r}#lJ*%RLqqjbJ`3I#`wAEmZL|aDORmkPDy&DP34wM0hs_P9rf;hNZ z)Y9de7-A$GvHdGNSmyDTMfpcVTd8ocFhHZ^=|C2Bc;WJpleOBf+F4u8r-8#K=-gAoCxp;0OAn@3x>9)3#u$poE)7rG| zmIaNbBnBO*1DChc;Te`?$_|y%L3?V@1XKraO5mc_E@r(DV+wkT>28b`&u#aCjj)Tc2`d}!y{mt0O2jTk61n&)pcsf-L% z;CfI4-&&4O^{O{}R(3>_tD}6TvMudT%^bk4JJq{OA0^APmII{#Uc5=+ak5SgC8)S! zRD7y?_NcB2xtuIVJYugwZF*EioFJeGC$oFS@?z!Jy*ygaW{70uigQeDE>Tw~1jtCB@vKYCa)o`SgRy)G?267oJzYKKX<228W?y^R2F zMp|38FCN(YQ$>vTcYaD7C03Kf2#)bIe4drk>C?jnvAS=Om{0|ir&-%ueVu+*rd`-X z)(z(Tgbp!WKZyKEBzG|zE}iRkEnv-Q43|h~1D}aL%Qpb?T|7^ABi|1RS}t_?;`0~< z0B|cd=5!XUu^p-?0!S^OxNOgltx>%emZ)9<^NQyWh+5EymMo{OU(iJ+ntm7(~Y9E?{2Lbgr#>ctutQxKa$a?8;3wE7fL2X@~2)$N&wliyR{RItF=!` z*w!Hi5XXRfS1}vK9pbS0g7&TJ+t;{924P}eFq)?{(4 zFXl)-m6LZoH!|W$Fv5T&ypb*?VuLXXy`pK7nZ)yPA8MetR-x-BC3AB#-Yi z4xW?&dsjAbTlp)?9^$!`v!38DlzvfGU@}}PvwX_^hibKVaCG%pLSPyI+SBJ25qV{@ zarssS*=xC8MqICBOQhcYx=Ag{<7oTUopY&AXDdP%DkuX+-u5U^s8FrY0a%)pC6TTr zUVSPHT|x(#v#toPi%XDeZt*$*snE~|52nR^9Og)Kv(mR(BXUDZ2g}&j<=wmKv6CJS zc&sTUY~T@=pbfi8;fmYKjXH5$=btK1wpQDd#c##t!(h)K1Jb#u;Ga;R5_ai88@6xe zM&tYY3_B}FxsXe7{;XGH{kdmkiEV6|UWbawmexyn!t@nC*vYmsZ5xzz?OGX&sp@}d zT-$u1M>R{s^EKSk7vwEBP9pL{Xu|=iC$*bOk)yR3C%phCl^xEa>i+=3e(f#BpA2*P ziInse6e3Gm)_GhPleJBMdneiwENof;mU!-!l2Cwc6=K%*C{(<_F$SL{@7b-6e|flZ zST-?88cUfIAoLxm1E$oxi<>VzCPgNhs6lOG*qPhuSh^0Kc_q;-j3RE70qCOfrXFEz zL^{_Cu1jGx&iLErt^H16Xr{_G+N>)xMbT~Un7g*(4FD#U_L!k53Bfhm={kkeMq;>a zyK4_rw4Y1@Yiw8<0NT0K;b0_%FndzNeUawMIPFevv(A|-f;a$H-KLop-Kn>XVTXDE=3aTO zBxfA2@~V@hF*?Zn9}enWayE8RBH7%4w306}3i5rZYe0+ow@ex~zvuPWSC z?M})+vxK$oD?dr_>&-GW?ZO<;2YI5|`5Hu$>>J;j=k848fgw2btxaE0n$F!Iv-_Z8 zu`Fe}kcp<}9jF7Y(q*%PJUn=8RuGTOo@OTsdQ#7-i4fcE0ljLS(#s4AAC<>y0D{`W z?(*ox7y7Z*x=k_uyM`>Ku>{C?tecHG>MN9XlkW`Rbf5{~g7(_kTu4c&Bb!jUxDZ;d z<^C+yFYOzMztNkJc&?K}u)4#`7sw3&P`dD}Yn$tnll{@!wsc#oYiT2a8x8!bePGV^ zq$kU_tx(b6u(q;$%hvtr=qLkTd;2SUrj?jB+T`X-{ZmmhS&!Y0m6xcjb2FI9A&&r8 zL8s1iI~6hvZxjKWd8S@SRql@F>5A4mFq+XLUy!FzD1I^igQh3~mFy{Z zGF(`o!0J6Kdrbg9uoH(ToK_dvZ|$Rdi)1MsNv7Y;6pqrb&cgsu2X`76hnEq`_pHrE z`^mXLyoIJ(>LDS_zq`k+V_fRiOhd|<=72LbjaGTwh~q4|>x#P^(_Gu2M%qVe&AZnj zDAA&Ti_?newA*MeH2(m#TP`G^4V^ODB)8s1=~vddt!DoAXk>&Y(hnG{yUlv$*~O}# z-UG<3Ygs(F*6QXX(>%}yRfxS{7UC?S7_Cc%n82%Mn*ie=R+zm>cFO=5JZ-LtCV5T}^a6l2E{W6Zu>;_q zm5!E|H#W_2c_FQOKPF7Mp?R6R4#SxXvXK|Ls@~*>9bEJ_MGG%p4Ex1 zUmICGsGB>zE3MRY*zD{Xt&ZL+fze}2o3{IU@SP|D_V&#?r1B}{_v74wAjpbS}_`845eCo26b66;2_wpg8$bDp)->gGsqV~-!WUX?bWEhdG0*#hy! z0CUqMkXk3%lwgp&SEPAMK9dwytMi2!6-N6*(_cW1w4>%szcwqDvAe#}!Sjo6Zma1) z9a>J?KFauAqPdHov@C)ZY$KYdHQUECT##9DSG0Kl0O28(ZFZ1Tl6?gL053t%zID14 zmYho4T#u<9m2zg%EUy|ZD;xR&S+{o2rAlLuSaA53?P38V+t_{-0pG2xaly=` zTNTY;XcNe!qi)Yr?N{{quC)lh;UxZ*s>0^kF)15Jtia2KE;M~Le!!cUb*?V+O4ToJ z8vf|*2cWLHO;Fg#ipO+s+Nx@dBqrd=wE+9H0m;ChzDebLgza4w{=Xt1jK_p4fNPw# zD|YW8J7bQt+V0O%0@`1fXuz!v4WAEaGG0d7fP_d0IIeEi?pq7lpq4M3K1b5K`x&Ru zbdwdSIbp?dx~vn-JoxbQFy|Bjx&HtO9CJ8|;|N#MoQZF8Ugyoh9Wh)?8acPJd2TXi zZi14@bsKATnpY@?fGaXv8?5R#BKI52u_r-YHidU@aS0!B*j7HD;rsnw+F8~zs=ZpK z(rs48f3p_{9sMXI=+5L_$l0(#r0O&Q39@?a{KpzgH0Ixxc;GyxQ#Czn9+s$Lqu~K+%Q&w@>yaDnk+4 zx%>YB7Tv?Aiz_(r?Z-8jB4(Q(M|gYUwVmDC!>Fg1xZq;FlG=NHMlm*?`Hj6R^ZQS^ znknKF4s)9NL&M(`w2utwVJ3$>bUw9&=o&(y?~7-!e)-8irA4;Yqh)6U@vom#$J+k@ zi?2MLE7}q=U1v&{WPE38OoYt1;g@LKG z$RkxUzh2dWp;hm$<|ZXlwXYd-ZUG-MiXP@RaAQG}QZ>fXz%ObH%QjLgMhlKbHulh6 zV1g?o+)Wr|3B^=~?(iupep&$EBHUa3oqDgOP`ic}i{v0M^rqTe84sfx&7ST!E?7vV zh@{b?G~)AC+$-_eRV$lyT&$=FHDzxj^0KSOGAk;5N#s>jLL1huF2uVW=ZgFvZ?0)g zZ)~1aj5uI0Yvi94{5scsCPl<}-e2WkJ$R$xzl(Hh z*LfJv5^|+_V!I(boX!p>1FLAx_WuBDjf%?{?Ob1nwe4Eo^ukA+q~qotE79!Xd(Scp zm-6IHj2h0n(N@eEV{jbwz^w*v+g*U6brX*;i~-uTuaTp_f*n0eEQ6d^A>r!_o7={^ z)Ks)kgZfu>;r{><*sh@I8V1|)jP{@oe_PYZYV}=m z;b)WWk}y#pYQ~SpRy+KK)AzJv(ttU!FW4i7C}HJs!4;L_T^{E3;nW>}b=(14H#*$9 zwB$!`<$^{%tE6p8NMec`n1GEr$)FB0&J8+vKE;5BLBTz1e#^m@I&>ps$JM#*Mx||~ zeU42+*YBt}$7y~js+GG-WcmvF0Nxo+UTka&|wbq#qW|2PadM=HP8qM!7A2XFZ0j_Vuny#llt2O?k zX3|2;cITj=lgWHdcm0oYwv7-I7Q&vuS6kvuY74IdC4p>8$&H|9tazJFx7RNuyYd_N zO@+@&cAcS0Vu$U4Jh8?N0C|Rkb7|q2t)h-H?;-iUtEKT?s=gtL-p@~oo?-WgYLmno z7uqj^=sk! z+g_l1rj3;F0ph(De+g+)Tgf)I=*B_RSBTztBF|5{mVG&f58bP}WZk3hFNZ(0RQERv zXRQ=yh5&5W*7{e9G<{;tW`;yyfcy3U>IT@~Q zQ=;Xlw6@7EyHt0qxoo6aaIKX!*(-AyW#mw@EO6xqTEdR?`2*!sQptMF8pbFB{{Y!u zWhKv1(z)}XLmZ!Ikd^19Y}sB&TM{0Xa(^y#+D_6sPzDp}8=K9FPMxcd)U@3~;^9%G z7(?=k?-JTW6pIsbJJ%_HX?qNdaI)a~8eFAlZN+;vgiytDL0*QgYA3_`rMKB`oi?7t z*PCk3tFZ?hdiJavuMb@LA8nRm#QIUn8XX3?sCaV0Q%tpqW$o))HdFXM-q}UnvZR=< zFF?|4jpIvql2@i{M^^B?&HSQ$HNYRrs==YVbFcV)-C?wgW;%AR(?Ws=i_RmH(>3Qd zUIn@G#m&QRDd}BpzxIWpjbTF3jya;ip?g%c7t@#sDu;@~e*juT6HblIbgtKm;mToa zY73Zd;PTXS(9$IHEh^{xEXf@5ZdKq{F@53@G;=ML63EN!iEamqnb*Qd1 zJu~fQ*4{A3r%C|j^uH7?sbbEOfjOwdz!mx;oD1e z4GMy4`9SjO^ENvR&CyZ5p6?kgy;zjZgmZ!CHmmU_r)2#fxV zZA0eAPip9IGiRCFZ!%5xg3;!- zZS>oV+d}DbaNKcR=9_h^>Xz+qdcc$E=}CX$3H&-f!)lmdI?xAQr+6|V7+uM`>s2rO z18DPXhEJ6Ct^(J`-XIN$kg~Dsj+N-Y@Q_V$Z6A_9dc&;%R$qrvU`A(PzLi4f;nRlN zju|~oW9l9*@lBNbN*^e9s}_DS*6)Vc&jNri{{X@xbpeViTztJ+y%yHNqJ!$#1&>{VI%$rRoff9~kXh zM#oHO)F2sJ0Py`^Ub0)Xj9GW*itO#@ur{&Gkb#lY6{)EBY75(+K12marD@sdspael z0*;gc%^g-%kbRvowyiISC6w%C3tckk*3m0@nCH@|Md8bB=6qmK1R7{&kjpE4y{ld; zy*tj?xCg9zgpEOgCC1)@xP3=KyOv)zE0Te|CwM>cabk|>cB^u=`AcDZ23 z$>JtX0L1`$ggTa;c0976zokn)%P_NfBX75A@}|@h!P@#EjkQAO;zaithA6n`XbU6I zwGR;5KknjF=xQ4{?WK&)>Qq;q$F6?$M3C^++BUInEmSDS9ViPUy|=r!FsMWKYQCj^ z5sZ1mp4hG?E7oP-3LN@ZPj3TV+oMjKO#oHil18i>ZB{z;R!%p`xDM53<4*|qPDiz6 zjWXUx*(z=ZfG;$-Kqk@sf`XBgx?>^#(+BLZ|rXQ$l|QU1T&q{u&x3vDtlSB z7RWx8w-U=|BDih^0CW=Rg`Xw1)_3-3$;ZuFX?SN)M>SdIbmh)HC;{Kumc@gQl=@Vw zX#``YYKguvoUx|OsqG5NyjEaMGN$jGaoU**A!56Jl+${X5Ls$Jw5)P|>`(-fF3sEe zdet>C$e?ZDQ|F!K$i@XxiaA;G2LgaKA-5qJ&jYnpX<(b=Usn2a1bY3e!hR4gms{UkW<&uL#HEx6|dx1_}KrzO^MOdHg&bS!-s+wBD zT;rt$^BLOLhWt6=D2zI#q;f>VqbMT2aPiOVm*7tmTR-+(KVq2j8Z*b`UrXNQV==+k z(y3X=C90N@wzt1ZaIGlpON?IUore>PV-K}T*15!Fu> zl%n$0_bDU~(!X^R;?ry+gy_6{9hTwE#UbKf9bXg2{_H7wXr)_zi z*N0?+To8W_D3%@%Vq=JFNgnk#h;*G*_gl!I`y5vNt&}rct3*dWmGYsqywl%uG5jm1 z(>!UZ>A)y*G1%5m4{wChHDJ%DtTcl>q832aYWKnN1TAdGccyE}JU8)C1;Ty20BhfL z-x+AyoJz4szcA*bo=bFWqM5?M7l?F;RiJh|dSbmx!@nB*P2t(Vzh+&$3bAQDjIHvp z+6P+VJXd3HahYwDIrgXRliY3x*Io$yrd8!wwI|4O22Fi2XYnsV)#FS^jI0N7Uyl~{ zQw1#$*vso$T4#*)jUkGeoT%dho}CODKV_iP{5`Ls*(wGjj2h-IJPSRmGuYw%EAvys zUmi8h8s~b-`v+oc>Awno)etj971-qU$*0Q6J;v`%@fDxU10Y}S)Ye`!@dlZMX-tTu|Smg^Y#M-_pm`2PUI znv`l*V5Ii0y=JwZC3sw5ih&syF)V1VgEdY$QGsrRcCMl;P|LNj%4;Clq*FNCflA{u zaU=cyl|8+hG0KjWeJ$eK>x!NqBrX@NFepo9l^7T_-?7H36^B~7cShOmNX|h9fGDn< zs@Xxoq3w|;Ko^5r24a5T(PX2M#S6H$V_O8l*>?x8up!sULHcu3QzOA&A=}$+@ z@IUuh8i7ZzwHf)*$3a}vS^__#--cVY4~707y6e8mKm7)--PjglF<4&!B$DUgcZDub zK4qGIg1sT38v#9Q=PRvGT9(HO+CdAGRb{s*xyK7#oRBkQEoRGXb`%4e$uf>zRGu+U zc|3&qMQMu}xg|PPZ?Z}Eag2J_x&eyUta#2T(cHU9wNDiJ^tsSw6D#XceUfPTjdCgb zpgLXqhEEk5?(A_=JWjxTrk&*$Ocll`0=%)#7k+BQPd3oF;;RvG$H~QCTWQro?4sll zI{8PSAB8ztm~l>PTekbCO-9gNCk(r3mLjAwzdc9NtQ$xif~XJI6<5lgPZ6K4Dz@va z6+|R^PzOmJjhdh>3Vs5sww0sI#5_Qs_eEi*p>__|?N0vDWNqF4lyj4y?MuNL75ED+ zq(pzXD}}xIC*a%Q##<==000Gd(rXh11*nTxW#sY=KWh7m$nZJ8X5R=T?K;~4r1ZsG zyZ8;^M73`&$}xf074#bF&`zZSbQO$s09B*db{eHxUB&ETe0vYU{Q%N+`i zD`|gczXM$Y%!Lbobc*^m;yYc~MaF9>w0R0M+qvD?R=(a{%>J()$In+kvWAaxOIb|F zqo*~^>OZnHjUM=K4;`^zQ%QZ|8$|NfPDi~(7mqc4GyXsAnpGaueQHDcqz{WPKV-iV z!V5)pl^wcQDR=uc_`1uJ+WE;0NM5dc9=mQg$pu~KTuuI z$a%gF`2HW1+HOBe&$#$ew6Yqqpmke&s1KN)54 zZ;dVadl|63eoClx-xI<9w#Gm|+^^bJ(EK|xVc|j#UMo6p19(<+E%rnpdkU}ZA$>(3 zi|%z}@*8Id{lifi?_(ie7a0ElX1`!1_;KM+J9FDaLH__`RSTblz6zWfTFMju00E=> zNMG5k{Ehov-~;z9{{Vc|w7_&(F`nCL z{{U&k&-*#|KPekiCQaU1AB8{rOZb{IkEMQ|Py0OhEx0yFzlAyf0B0`(n_PXBbM&kJ z(ujRQpO;f=h@NLLakZm7u7LTq&xW27E$IVS} zzr$4BOPcy}PuX9`NN|{HtlzT7#GHQa9Mf31cQf`g?0nhf9PZ#!k+Ba?vjCzXEVq@IT*~_uwN+sHQRIRka6yO^6OOM&-;%&YU*j!9uivm5W{0OF^Gx2oWv1Y>^u~nPl-;8aTDX?sNtshv3y_4)PKo)Ga<0zb3l82K0tnzSNkttkB72x_)x0EJ(<`ijBl~D9+c+sUG70An&Z~bR8ya_us=$QNOd8> zw_tviN=TkVzK_MT{{Rzb@Trr;?90jdYs~^`3I6~t=kli!etGf;{3-Jx@}8JHO0eLL zl{fq)<8BxLE6cHY#^_JwQX@;e2Za7qb0FnCKmHQM`F>IbOaA}~Rj&xZit`Qf2S2;U zI#Y!Ef%AskbgIyvQ`VEjwqZufkvvOh$OgQJ?Ga!Mjw(O4Az^{?(V%jk$~;+Or(kND zKNne_m4UAnd$@oMxWy>cLFtXOXi4pB;yVV(jN+)jiEN%iirm+bi@+Z|1*<-E7~Gf! zjR5tu)-1^DinAWIri^9!SB|aW$KSyf6qkAL%^agWjr>8UvsUBQtV&~W2E0JL zkpU{cX+`6ootqxia)Iwls%d+7yDsmoOZ}&(gyuybjd(NOg~lAylJVp}c#&E1m7(t6 z+L~I7nNud2^a$UCz>ZfsT7( zk7g|ob6bl>C5T;~)eC=TO8Lm*ylFK{^hmW~_g2UxK@v^`gu<4_JE(WQ{>=W73)}AjVcfUR3(^;rTVR^jQt0N_^5YSeGyho+7{%!q2H(OZS@;v1&I^5Ch~>2VPn-=+9`hE7^nq^+EWAYuPaS&P>19) z@mC?&uUDj*#VZAmME=i+aCxNu%|=`(uRk6qz1@mW_)9L=f;v%Rc@E6!WeLtHi>E@$ zSfI^uC&d>|LmYl|qs22W0bV||SbT?GY(U{DQpQ1Cs`#2r{oGSu#M1&YMmteq@}sLd zYw~2rwM`bD56Hk*8~*?a9n11lHE}#nLjBAUMT3A$l^+!YuUgG_=eW;nQsr- zF(11MzSSJQ9I<8qE^%E*Rp<>%g~k9BSPnz}5ol-eiM`~

k&J-;?qt2cpd$l3`t>6>F50BKWdFDLM$oGy7; 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

VPBxUvc8a{JVspBg6tTN( zf6{;^vz1E~BbuRo=0$SOdR5;cJn!5bQ8l|eeE$G70A)vf$jg=BR=K)XkL2omRaet; za!3Gnsy>_KrL$i_V=0`xlUz+t;o*4nbqHW{{$YUggDWdKHU z52Zn28$!&+fIT8>i&u*r9yzXNG!Sl-Hq*O+Ju0f+hT9ljxv8%whBz>X=2`%$cOaH# zm5(E}G6}6?LpWT&r9Lwi(lejGip@5cCGi5_PzCkZutJrY$k~LkB>^_LrkY?4n633uM`Drf$cyYD2d=dJ7Frx zyhb7<8-T1EMYxmz$B%l|NX!71s^tP9DQQ_x%C&yS3A=IQwO2ODD`Pm#MAnkWDxl5{ z9H3~m)vTw>bOxq^(iD?1wg;fB{{XT^%2f^;uGv8G@K4_2qz!rPt=O1bEu-e$ zavzG;k;;)D-s2TPEhX~{2F54@9{%QbK2E{_s34X&gACx;M=jg}GK2!+v8J&TuzZEx zKpBl8l2PQ7#a5lJZa;Oi?$=9iroEzWVi;A$lG)V!pbnFA5>`cMXK!pzvmG$b?U4f26n zZ!(jVPJJkjHQl;Ed7uaqWXP%>Z44RJmMD`d3Y9 ztIGcXd!gxEg}ZG9Pasp0c@{w`aH~KayR%9`JXO;YY#q&T$$vA+l;bt074*@t0kS

R9jQkv?ym+JHL-x3g%=t}%+`{{XVXxsgs6wMlP! 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

L5vbP4gL1a9!6zoQ51Fnx$n%>9Fjj~TqYUQpX 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

yJs_N??N{vvpu=Wm^VA;+ap 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 literal 0 HcmV?d00001 diff --git a/deploy/tkfb-package/api.hyungi.net/public/pages/hello.txt b/deploy/tkfb-package/api.hyungi.net/public/pages/hello.txt new file mode 100644 index 0000000..7d5e07e --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/public/pages/hello.txt @@ -0,0 +1 @@ +Hello Test diff --git a/deploy/tkfb-package/api.hyungi.net/public/pages/work_analysis_dashboard.html b/deploy/tkfb-package/api.hyungi.net/public/pages/work_analysis_dashboard.html new file mode 100644 index 0000000..6aa8cd3 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/public/pages/work_analysis_dashboard.html @@ -0,0 +1,689 @@ + + + + + + 작업 분석 대시보드 + + + + +

+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/analysisRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/analysisRoutes.js new file mode 100644 index 0000000..e0d9c92 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/analysisRoutes.js @@ -0,0 +1,10 @@ +// /routes/analysisRoutes.js +const express = require('express'); +const router = express.Router(); +const { getAnalysisData } = require('../controllers/analysisController'); +const { verifyToken } = require('../middlewares/authMiddleware'); // 인증 미들웨어 추가 + +// GET /api/analysis?startDate=...&endDate=... +router.get('/', verifyToken, getAnalysisData); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/attendanceRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/attendanceRoutes.js new file mode 100644 index 0000000..b93a7e4 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/attendanceRoutes.js @@ -0,0 +1,46 @@ +const express = require('express'); +const router = express.Router(); +const AttendanceController = require('../controllers/attendanceController'); +const { verifyToken } = require('../middlewares/authMiddleware'); + +// 모든 라우트에 인증 미들웨어 적용 +router.use(verifyToken); + +// 일일 근태 현황 조회 (대시보드용) +router.get('/daily-status', AttendanceController.getDailyAttendanceStatus); + +// 일일 근태 기록 조회 +router.get('/daily-records', AttendanceController.getDailyAttendanceRecords); + +// 기간별 근태 기록 조회 (월별 조회용) +router.get('/records', AttendanceController.getAttendanceRecordsByRange); + +// 근태 기록 생성/업데이트 +router.post('/records', AttendanceController.upsertAttendanceRecord); +router.put('/records', AttendanceController.upsertAttendanceRecord); + +// 휴가 처리 +router.post('/vacation', AttendanceController.processVacation); + +// 초과근무 승인 +router.post('/overtime/approve', AttendanceController.approveOvertime); + +// 근로 유형 목록 조회 +router.get('/attendance-types', AttendanceController.getAttendanceTypes); + +// 휴가 유형 목록 조회 +router.get('/vacation-types', AttendanceController.getVacationTypes); + +// 작업자 휴가 잔여 조회 +router.get('/vacation-balance/:worker_id', AttendanceController.getWorkerVacationBalance); + +// 월별 근태 통계 +router.get('/monthly-stats', AttendanceController.getMonthlyAttendanceStats); + +// 출근 체크 목록 조회 (아침용, 휴가 정보 포함) +router.get('/checkin-list', AttendanceController.getCheckinList); + +// 출근 체크 일괄 저장 +router.post('/checkins', AttendanceController.saveCheckins); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/auth.js b/deploy/tkfb-package/api.hyungi.net/routes/auth.js new file mode 100644 index 0000000..ee49f4f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/auth.js @@ -0,0 +1,215 @@ +// routes/auth.js +const express = require('express'); +const bcrypt = require('bcrypt'); +const jwt = require('jsonwebtoken'); +const { requireAuth, requireRole } = require('../middlewares/auth'); +const router = express.Router(); + +// 임시 사용자 데이터 (실제 운영 시 DB 사용 필수) +// 비밀번호 해시는 bcrypt.hash('password', 10)으로 생성됨 +let users = [ + { + user_id: 1, + username: 'admin', + password: '$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZRGdjGj/n3.w7VtL.r8yR.nTfC7Hy', // 'password' 해시 + name: '관리자', + access_level: 'admin', + worker_id: null, + created_at: new Date() + }, + { + user_id: 2, + username: 'group_leader1', + password: '$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZRGdjGj/n3.w7VtL.r8yR.nTfC7Hy', // 'password' 해시 + name: '김그룹장', + access_level: 'group_leader', + worker_id: 1, + created_at: new Date() + } +]; + +// 보안 경고: 운영 환경에서는 반드시 .env의 JWT_SECRET을 설정해야 합니다 +if (!process.env.JWT_SECRET) { + console.warn('⚠️ WARNING: JWT_SECRET이 설정되지 않았습니다. 운영 환경에서는 반드시 설정하세요!'); +} + +/** + * 로그인 + */ +router.post('/login', async (req, res) => { + try { + const { username, password } = req.body; + + if (!username || !password) { + return res.status(400).json({ error: '사용자명과 비밀번호를 입력해주세요.' }); + } + + const user = users.find(u => u.username === username); + if (!user) { + return res.status(401).json({ error: '사용자를 찾을 수 없습니다.' }); + } + + // 비밀번호 확인 (bcrypt.compare 사용) + const isValid = await bcrypt.compare(password, user.password); + if (!isValid) { + return res.status(401).json({ error: '비밀번호가 올바르지 않습니다.' }); + } + + // JWT 토큰 생성 + const token = jwt.sign( + { + user_id: user.user_id, + username: user.username, + access_level: user.access_level, + worker_id: user.worker_id + }, + process.env.JWT_SECRET, + { expiresIn: '24h' } + ); + + res.json({ + success: true, + token, + user: { + user_id: user.user_id, + username: user.username, + name: user.name, + access_level: user.access_level, + worker_id: user.worker_id + } + }); + + } catch (error) { + console.error('Login error:', error); + res.status(500).json({ error: '서버 오류가 발생했습니다.' }); + } +}); + +/** + * 현재 사용자 정보 조회 + */ +router.get('/me', requireAuth, (req, res) => { + try { + const userId = req.user.user_id; + const user = users.find(u => u.user_id === userId); + + if (!user) { + return res.status(404).json({ error: '사용자를 찾을 수 없습니다.' }); + } + + res.json({ + user_id: user.user_id, + username: user.username, + name: user.name, + access_level: user.access_level, + worker_id: user.worker_id + }); + + } catch (error) { + console.error('Get current user error:', error); + res.status(500).json({ error: '서버 오류가 발생했습니다.' }); + } +}); + +/** + * 사용자 등록 (관리자만) + */ +router.post('/register', requireAuth, requireRole('admin', 'system'), async (req, res) => { + try { + const { username, password, name, access_level, worker_id } = req.body; + + if (!username || !password || !name || !access_level) { + return res.status(400).json({ error: '필수 항목을 모두 입력해주세요.' }); + } + + // 사용자명 중복 체크 + const existingUser = users.find(u => u.username === username); + if (existingUser) { + return res.status(409).json({ error: '이미 존재하는 사용자명입니다.' }); + } + + // 비밀번호 해시 + const hashedPassword = await bcrypt.hash(password, 10); + + const newUser = { + user_id: users.length + 1, + username, + password: hashedPassword, + name, + access_level, + worker_id: worker_id || null, + created_at: new Date() + }; + + users.push(newUser); + + res.json({ + success: true, + message: '사용자가 성공적으로 등록되었습니다.', + user: { + user_id: newUser.user_id, + username: newUser.username, + name: newUser.name, + access_level: newUser.access_level, + worker_id: newUser.worker_id + } + }); + + } catch (error) { + console.error('Register error:', error); + res.status(500).json({ error: '서버 오류가 발생했습니다.' }); + } +}); + +/** + * 사용자 목록 조회 (관리자만) + */ +router.get('/users', requireAuth, requireRole('admin', 'system'), (req, res) => { + try { + const userList = users.map(user => ({ + user_id: user.user_id, + username: user.username, + name: user.name, + access_level: user.access_level, + worker_id: user.worker_id, + created_at: user.created_at + })); + + res.json(userList); + } catch (error) { + console.error('Get users error:', error); + res.status(500).json({ error: '서버 오류가 발생했습니다.' }); + } +}); + +/** + * 사용자 삭제 (관리자만) + */ +router.delete('/users/:id', requireAuth, requireRole('admin', 'system'), (req, res) => { + try { + const userId = parseInt(req.params.id); + + // 자기 자신 삭제 방지 + if (userId === req.user.user_id) { + return res.status(400).json({ error: '자기 자신은 삭제할 수 없습니다.' }); + } + + const userIndex = users.findIndex(u => u.user_id === userId); + if (userIndex === -1) { + return res.status(404).json({ error: '사용자를 찾을 수 없습니다.' }); + } + + users.splice(userIndex, 1); + + res.json({ + success: true, + message: '사용자가 성공적으로 삭제되었습니다.' + }); + + } catch (error) { + console.error('Delete user error:', error); + res.status(500).json({ error: '서버 오류가 발생했습니다.' }); + } +}); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/authRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/authRoutes.js new file mode 100644 index 0000000..5b7c563 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/authRoutes.js @@ -0,0 +1,978 @@ +/** + * @swagger + * tags: + * name: Authentication + * description: 사용자 인증 및 권한 관리 API + */ + +// routes/authRoutes.js - 비밀번호 변경 및 보안 기능 포함 완전판 +const express = require('express'); +const bcrypt = require('bcryptjs'); +const jwt = require('jsonwebtoken'); +const mysql = require('mysql2/promise'); +const { verifyToken } = require('../middlewares/authMiddleware'); +const { validatePassword, getPasswordError } = require('../utils/passwordValidator'); +const router = express.Router(); +const authController = require('../controllers/authController'); + +// DB 연결 설정 +const dbConfig = { + host: process.env.DB_HOST || 'db_hyungi_net', + user: process.env.DB_USER || 'hyungi', + password: process.env.DB_PASSWORD, + database: process.env.DB_NAME || 'hyungi' +}; + +// 로그인 시도 추적 (메모리 기반 - 실제로는 Redis 권장) +const loginAttempts = new Map(); + +// 로그인 시도 체크 미들웨어 +const checkLoginAttempts = (req, res, next) => { + const { username } = req.body; + const key = `login_${username}`; + const attempts = loginAttempts.get(key) || { count: 0, blockedUntil: null }; + + // 차단 확인 + if (attempts.blockedUntil && attempts.blockedUntil > Date.now()) { + const remainingTime = Math.ceil((attempts.blockedUntil - Date.now()) / 1000 / 60); + return res.status(429).json({ + error: `너무 많은 로그인 시도입니다. ${remainingTime}분 후에 다시 시도하세요.` + }); + } + + req.loginAttempts = attempts; + next(); +}; + +// 로그인 시도 기록 +const recordLoginAttempt = (username, success = false) => { + const key = `login_${username}`; + const attempts = loginAttempts.get(key) || { count: 0, blockedUntil: null }; + + if (success) { + loginAttempts.delete(key); + } else { + attempts.count += 1; + + // 5회 실패 시 15분 차단 + if (attempts.count >= 5) { + attempts.blockedUntil = Date.now() + (15 * 60 * 1000); + console.log(`[로그인 차단] 사용자: ${username} - 15분간 차단`); + } + + loginAttempts.set(key, attempts); + } +}; + +// 로그인 이력 기록 +const recordLoginHistory = async (connection, userId, success, ipAddress, userAgent, failureReason = null) => { + try { + await connection.execute( + `INSERT INTO login_logs (user_id, login_time, ip_address, user_agent, login_status, failure_reason) + VALUES (?, NOW(), ?, ?, ?, ?)`, + [userId, ipAddress || 'unknown', userAgent || 'unknown', success ? 'success' : 'failed', failureReason] + ); + } catch (error) { + console.error('로그인 이력 기록 실패:', error); + // 로그 테이블이 없어도 계속 진행 + } +}; + +/** + * @swagger + * /api/auth/login: + * post: + * tags: [Authentication] + * summary: 사용자 로그인 + * description: 사용자명과 비밀번호로 로그인하여 JWT 토큰을 발급받습니다. + * requestBody: + * required: true + * content: + * application/json: + * schema: + * $ref: '#/components/schemas/LoginRequest' + * responses: + * 200: + * description: 로그인 성공 + * content: + * application/json: + * schema: + * $ref: '#/components/schemas/LoginResponse' + * 400: + * description: 잘못된 요청 (사용자명 또는 비밀번호 누락) + * content: + * application/json: + * schema: + * $ref: '#/components/schemas/ErrorResponse' + * 401: + * description: 인증 실패 (잘못된 사용자명 또는 비밀번호) + * content: + * application/json: + * schema: + * $ref: '#/components/schemas/ErrorResponse' + * 429: + * description: 너무 많은 로그인 시도 + * content: + * application/json: + * schema: + * $ref: '#/components/schemas/ErrorResponse' + * 500: + * description: 서버 내부 오류 + * content: + * application/json: + * schema: + * $ref: '#/components/schemas/ErrorResponse' + */ +router.post('/login', authController.login); + +/** + * 토큰 갱신 + */ +router.post('/refresh-token', async (req, res) => { + try { + const { refreshToken } = req.body; + + if (!refreshToken) { + return res.status(401).json({ error: '리프레시 토큰이 필요합니다.' }); + } + + // 리프레시 토큰 검증 + const decoded = jwt.verify(refreshToken, process.env.JWT_REFRESH_SECRET || process.env.JWT_SECRET); + + if (decoded.type !== 'refresh') { + return res.status(401).json({ error: '유효하지 않은 토큰입니다.' }); + } + + const connection = await mysql.createConnection(dbConfig); + + // 사용자 정보 조회 + const [users] = await connection.execute( + 'SELECT * FROM Users WHERE user_id = ? AND is_active = TRUE', + [decoded.user_id] + ); + + await connection.end(); + + if (users.length === 0) { + return res.status(404).json({ error: '사용자를 찾을 수 없습니다.' }); + } + + const user = users[0]; + + // 새 토큰 발급 + const newToken = jwt.sign( + { + user_id: user.user_id, + username: user.username, + access_level: user.access_level, + worker_id: user.worker_id, + name: user.name || user.username + }, + process.env.JWT_SECRET || 'your-secret-key', + { expiresIn: process.env.JWT_EXPIRES_IN || '24h' } + ); + + const newRefreshToken = jwt.sign( + { + user_id: user.user_id, + type: 'refresh' + }, + process.env.JWT_REFRESH_SECRET || process.env.JWT_SECRET, + { expiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '7d' } + ); + + res.json({ + success: true, + token: newToken, + refreshToken: newRefreshToken + }); + + } catch (error) { + if (error.name === 'TokenExpiredError') { + return res.status(401).json({ error: '리프레시 토큰이 만료되었습니다.' }); + } + console.error('Token refresh error:', error); + res.status(500).json({ error: '서버 오류가 발생했습니다.' }); + } +}); + +/** + * 본인 비밀번호 변경 + */ +router.post('/change-password', verifyToken, async (req, res) => { + let connection; + + try { + const { currentPassword, newPassword } = req.body; + const userId = req.user.user_id; + + // 입력값 검증 + if (!currentPassword || !newPassword) { + return res.status(400).json({ + success: false, + error: '현재 비밀번호와 새 비밀번호를 입력해주세요.' + }); + } + + // 비밀번호 강도 검증 (12자 이상, 대/소문자, 숫자, 특수문자 필수) + const passwordValidation = validatePassword(newPassword); + if (!passwordValidation.valid) { + return res.status(400).json({ + success: false, + error: '비밀번호가 보안 요구사항을 충족하지 않습니다.', + details: passwordValidation.errors, + code: 'WEAK_PASSWORD' + }); + } + + connection = await mysql.createConnection(dbConfig); + + // 현재 사용자의 비밀번호 조회 + const [users] = await connection.execute( + 'SELECT password FROM Users WHERE user_id = ?', + [userId] + ); + + if (users.length === 0) { + return res.status(404).json({ + success: false, + error: '사용자를 찾을 수 없습니다.' + }); + } + + // 현재 비밀번호 확인 + const isValidPassword = await bcrypt.compare(currentPassword, users[0].password); + if (!isValidPassword) { + console.log(`[비밀번호 변경 실패] 현재 비밀번호 불일치 - 사용자: ${req.user.username}`); + return res.status(401).json({ + success: false, + error: '현재 비밀번호가 올바르지 않습니다.' + }); + } + + // 새 비밀번호와 현재 비밀번호 동일 여부 확인 + const isSamePassword = await bcrypt.compare(newPassword, users[0].password); + if (isSamePassword) { + return res.status(400).json({ + success: false, + error: '새 비밀번호는 현재 비밀번호와 달라야 합니다.' + }); + } + + // 새 비밀번호 해시화 + const hashedPassword = await bcrypt.hash(newPassword, 10); + + // 비밀번호 업데이트 + await connection.execute( + 'UPDATE Users SET password = ?, password_changed_at = NOW(), updated_at = NOW() WHERE user_id = ?', + [hashedPassword, userId] + ); + + // 비밀번호 변경 로그 기록 + try { + await connection.execute( + 'INSERT INTO password_change_logs (user_id, changed_by_user_id, changed_at, change_type) VALUES (?, ?, NOW(), ?)', + [userId, userId, 'self'] + ); + } catch (logError) { + console.log('비밀번호 변경 로그 기록 실패 (테이블 없음)'); + } + + console.log(`[비밀번호 변경 성공] 사용자: ${req.user.username}`); + + res.json({ + success: true, + message: '비밀번호가 성공적으로 변경되었습니다.' + }); + + } catch (error) { + console.error('Change password error:', error); + res.status(500).json({ + success: false, + error: '서버 오류가 발생했습니다.' + }); + } finally { + if (connection) { + await connection.end(); + } + } +}); + +/** + * 시스템 관리자의 타인 비밀번호 변경 + */ +router.post('/admin/change-password', verifyToken, async (req, res) => { + let connection; + + try { + const { userId, newPassword } = req.body; + const adminId = req.user.user_id; + + // 권한 확인 (system 레벨만 허용) + if (req.user.access_level !== 'system') { + return res.status(403).json({ + success: false, + error: '시스템 관리자만 사용할 수 있는 기능입니다.' + }); + } + + // 입력값 검증 + if (!userId || !newPassword) { + return res.status(400).json({ + success: false, + error: '사용자 ID와 새 비밀번호를 입력해주세요.' + }); + } + + // 비밀번호 강도 검증 (12자 이상, 대/소문자, 숫자, 특수문자 필수) + const passwordValidation = validatePassword(newPassword); + if (!passwordValidation.valid) { + return res.status(400).json({ + success: false, + error: '비밀번호가 보안 요구사항을 충족하지 않습니다.', + details: passwordValidation.errors, + code: 'WEAK_PASSWORD' + }); + } + + connection = await mysql.createConnection(dbConfig); + + // 대상 사용자 확인 + const [users] = await connection.execute( + 'SELECT username, name FROM Users WHERE user_id = ?', + [userId] + ); + + if (users.length === 0) { + return res.status(404).json({ + success: false, + error: '대상 사용자를 찾을 수 없습니다.' + }); + } + + const targetUser = users[0]; + + // 자기 자신의 비밀번호는 이 API로 변경 불가 + if (parseInt(userId) === adminId) { + return res.status(400).json({ + success: false, + error: '본인의 비밀번호는 일반 비밀번호 변경 기능을 사용하세요.' + }); + } + + // 새 비밀번호 해시화 + const hashedPassword = await bcrypt.hash(newPassword, 10); + + // 비밀번호 업데이트 + await connection.execute( + 'UPDATE Users SET password = ?, password_changed_at = NOW(), updated_at = NOW(), failed_login_attempts = 0, locked_until = NULL WHERE user_id = ?', + [hashedPassword, userId] + ); + + // 비밀번호 변경 로그 기록 + try { + await connection.execute( + 'INSERT INTO password_change_logs (user_id, changed_by_user_id, changed_at, change_type) VALUES (?, ?, NOW(), ?)', + [userId, adminId, 'admin'] + ); + } catch (logError) { + console.log('비밀번호 변경 로그 기록 실패 (테이블 없음)'); + } + + console.log(`[관리자 비밀번호 변경] 대상: ${targetUser.username} - 관리자: ${req.user.username}`); + + res.json({ + success: true, + message: `${targetUser.name}(${targetUser.username})님의 비밀번호가 변경되었습니다.` + }); + + } catch (error) { + console.error('Admin change password error:', error); + res.status(500).json({ + success: false, + error: '서버 오류가 발생했습니다.' + }); + } finally { + if (connection) { + await connection.end(); + } + } +}); + +/** + * 비밀번호 강도 체크 + */ +router.post('/check-password-strength', (req, res) => { + const { password } = req.body; + + if (!password) { + return res.json({ strength: 0, message: '비밀번호를 입력하세요.' }); + } + + let strength = 0; + const feedback = []; + + // 길이 체크 + if (password.length >= 8) strength += 1; + if (password.length >= 12) strength += 1; + else feedback.push('12자 이상 사용을 권장합니다.'); + + // 대문자 포함 + if (/[A-Z]/.test(password)) strength += 1; + else feedback.push('대문자를 포함하세요.'); + + // 소문자 포함 + if (/[a-z]/.test(password)) strength += 1; + else feedback.push('소문자를 포함하세요.'); + + // 숫자 포함 + if (/\d/.test(password)) strength += 1; + else feedback.push('숫자를 포함하세요.'); + + // 특수문자 포함 + if (/[!@#$%^&*(),.?":{}|<>]/.test(password)) strength += 1; + else feedback.push('특수문자를 포함하세요.'); + + const strengthLevels = ['매우 약함', '약함', '보통', '강함', '매우 강함']; + const level = Math.min(Math.floor((strength / 6) * 5), 4); + + res.json({ + strength: level, + strengthText: strengthLevels[level], + score: strength, + maxScore: 6, + feedback: feedback + }); +}); + +/** + * 현재 사용자 정보 조회 + */ +router.get('/me', verifyToken, async (req, res) => { + let connection; + + try { + const userId = req.user.user_id; + + connection = await mysql.createConnection(dbConfig); + const [rows] = await connection.execute( + 'SELECT user_id, username, name, email, access_level, worker_id, last_login_at, created_at FROM Users WHERE user_id = ?', + [userId] + ); + + if (rows.length === 0) { + return res.status(404).json({ error: '사용자를 찾을 수 없습니다.' }); + } + + const user = rows[0]; + res.json({ + user_id: user.user_id, + username: user.username, + name: user.name || user.username, + email: user.email, + access_level: user.access_level, + worker_id: user.worker_id, + last_login_at: user.last_login_at, + created_at: user.created_at + }); + + } catch (error) { + console.error('Get current user error:', error); + res.status(500).json({ error: '서버 오류가 발생했습니다.' }); + } finally { + if (connection) { + await connection.end(); + } + } +}); + +/** + * 사용자 등록 + */ +router.post('/register', verifyToken, async (req, res) => { + let connection; + + try { + const { username, password, name, email, access_level, worker_id } = req.body; + + // 권한 확인 (admin 이상만 사용자 등록 가능) + if (!['admin', 'system'].includes(req.user.access_level)) { + return res.status(403).json({ + success: false, + error: '사용자 등록 권한이 없습니다.' + }); + } + + if (!username || !password || !name || !access_level) { + return res.status(400).json({ + success: false, + error: '필수 항목을 모두 입력해주세요.' + }); + } + + // 비밀번호 강도 검증 + if (password.length < 6) { + return res.status(400).json({ + success: false, + error: '비밀번호는 최소 6자 이상이어야 합니다.' + }); + } + + connection = await mysql.createConnection(dbConfig); + + // 사용자명 중복 체크 + const [existing] = await connection.execute( + 'SELECT user_id FROM Users WHERE username = ?', + [username] + ); + + if (existing.length > 0) { + return res.status(409).json({ + success: false, + error: '이미 존재하는 사용자명입니다.' + }); + } + + // 이메일 중복 체크 (이메일이 제공된 경우) + if (email) { + const [existingEmail] = await connection.execute( + 'SELECT user_id FROM Users WHERE email = ?', + [email] + ); + + if (existingEmail.length > 0) { + return res.status(409).json({ + success: false, + error: '이미 사용 중인 이메일입니다.' + }); + } + } + + // 비밀번호 해시 + const hashedPassword = await bcrypt.hash(password, 10); + + // 사용자 추가 + const [result] = await connection.execute( + `INSERT INTO Users (username, password, name, email, access_level, worker_id, is_active, created_at, password_changed_at) + VALUES (?, ?, ?, ?, ?, ?, TRUE, NOW(), NOW())`, + [username, hashedPassword, name, email || null, access_level, worker_id || null] + ); + + // 비밀번호 변경 로그 기록 (초기 설정) + try { + await connection.execute( + 'INSERT INTO password_change_logs (user_id, changed_by_user_id, changed_at, change_type) VALUES (?, ?, NOW(), ?)', + [result.insertId, req.user.user_id, 'initial'] + ); + } catch (logError) { + console.log('비밀번호 변경 로그 기록 실패 (테이블 없음)'); + } + + console.log(`[사용자 등록] 새 사용자: ${username} (${access_level}) - 등록자: ${req.user.username}`); + + res.json({ + success: true, + message: '사용자가 성공적으로 등록되었습니다.', + user: { + user_id: result.insertId, + username, + name, + email: email || null, + access_level, + worker_id: worker_id || null + } + }); + + } catch (error) { + console.error('Register error:', error); + res.status(500).json({ + success: false, + error: '서버 오류가 발생했습니다.' + }); + } finally { + if (connection) { + await connection.end(); + } + } +}); + +/** + * 사용자 목록 조회 + */ +router.get('/users', verifyToken, async (req, res) => { + let connection; + + try { + connection = await mysql.createConnection(dbConfig); + + // 기본 쿼리 (role 테이블과 JOIN) + let query = ` + SELECT + u.user_id, + u.username, + u.name, + u.email, + u.role_id, + r.name as role_name, + u._access_level_old as access_level, + u.worker_id, + u.is_active, + u.last_login_at, + u.created_at + FROM users u + LEFT JOIN roles r ON u.role_id = r.id + WHERE 1=1 + `; + + const params = []; + + // 필터링 옵션 + if (req.query.active !== undefined) { + query += ' AND u.is_active = ?'; + params.push(req.query.active === 'true'); + } + + // role_name으로 필터링 (access_level 대신) + if (req.query.access_level) { + query += ' AND (u._access_level_old = ? OR r.name = ?)'; + params.push(req.query.access_level, req.query.access_level); + } + + query += ' ORDER BY u.created_at DESC'; + + const [rows] = await connection.execute(query, params); + + const userList = rows.map(user => ({ + user_id: user.user_id, + username: user.username, + name: user.name || user.username, + email: user.email, + role_id: user.role_id, + role_name: user.role_name, + access_level: user.access_level || user.role_name?.toLowerCase(), // 하위 호환성 + worker_id: user.worker_id, + is_active: user.is_active, + last_login_at: user.last_login_at, + created_at: user.created_at + })); + + res.json(userList); + + } catch (error) { + console.error('Get users error:', error); + res.status(500).json({ error: '서버 오류가 발생했습니다.' }); + } finally { + if (connection) { + await connection.end(); + } + } +}); + +/** + * 사용자 정보 수정 + */ +router.put('/users/:id', verifyToken, async (req, res) => { + let connection; + + try { + const userId = parseInt(req.params.id); + const { name, email, access_level, worker_id, password, is_active } = req.body; + + // 권한 확인 + if (!['admin', 'system'].includes(req.user.access_level)) { + // 일반 사용자는 자신의 정보만 수정 가능 (이름, 이메일만) + if (userId !== req.user.user_id) { + return res.status(403).json({ + success: false, + error: '다른 사용자의 정보를 수정할 권한이 없습니다.' + }); + } + + if (access_level || worker_id || is_active !== undefined) { + return res.status(403).json({ + success: false, + error: '권한, 작업자 ID, 활성화 상태는 관리자만 수정할 수 있습니다.' + }); + } + } + + connection = await mysql.createConnection(dbConfig); + + // 사용자 존재 확인 + const [existing] = await connection.execute( + 'SELECT user_id, username FROM Users WHERE user_id = ?', + [userId] + ); + + if (existing.length === 0) { + return res.status(404).json({ + success: false, + error: '사용자를 찾을 수 없습니다.' + }); + } + + // 업데이트할 필드들 준비 + let updateFields = []; + let updateValues = []; + + if (name !== undefined) { + updateFields.push('name = ?'); + updateValues.push(name); + } + + if (email !== undefined) { + // 이메일 중복 체크 + if (email) { + const [emailCheck] = await connection.execute( + 'SELECT user_id FROM Users WHERE email = ? AND user_id != ?', + [email, userId] + ); + + if (emailCheck.length > 0) { + return res.status(409).json({ + success: false, + error: '이미 사용 중인 이메일입니다.' + }); + } + } + updateFields.push('email = ?'); + updateValues.push(email || null); + } + + if (access_level !== undefined && ['admin', 'system'].includes(req.user.access_level)) { + updateFields.push('access_level = ?'); + updateValues.push(access_level); + } + + if (worker_id !== undefined && ['admin', 'system'].includes(req.user.access_level)) { + updateFields.push('worker_id = ?'); + updateValues.push(worker_id || null); + } + + if (is_active !== undefined && ['admin', 'system'].includes(req.user.access_level)) { + updateFields.push('is_active = ?'); + updateValues.push(is_active); + } + + if (password) { + if (password.length < 6) { + return res.status(400).json({ + success: false, + error: '비밀번호는 최소 6자 이상이어야 합니다.' + }); + } + updateFields.push('password = ?'); + updateValues.push(await bcrypt.hash(password, 10)); + updateFields.push('password_changed_at = NOW()'); + + // 비밀번호 변경 로그 + try { + await connection.execute( + 'INSERT INTO password_change_logs (user_id, changed_by_user_id, changed_at, change_type) VALUES (?, ?, NOW(), ?)', + [userId, req.user.user_id, userId === req.user.user_id ? 'self' : 'admin'] + ); + } catch (logError) { + console.log('비밀번호 변경 로그 기록 실패'); + } + } + + if (updateFields.length === 0) { + return res.status(400).json({ + success: false, + error: '수정할 내용이 없습니다.' + }); + } + + updateFields.push('updated_at = NOW()'); + updateValues.push(userId); + + // 업데이트 실행 + await connection.execute( + `UPDATE Users SET ${updateFields.join(', ')} WHERE user_id = ?`, + updateValues + ); + + // 업데이트된 사용자 정보 조회 + const [updated] = await connection.execute( + 'SELECT user_id, username, name, email, access_level, worker_id, is_active FROM Users WHERE user_id = ?', + [userId] + ); + + console.log(`[사용자 수정] 대상: ${existing[0].username} - 수정자: ${req.user.username}`); + + res.json({ + success: true, + message: '사용자 정보가 성공적으로 수정되었습니다.', + user: updated[0] + }); + + } catch (error) { + console.error('Update user error:', error); + res.status(500).json({ + success: false, + error: '서버 오류가 발생했습니다.' + }); + } finally { + if (connection) { + await connection.end(); + } + } +}); + +/** + * 사용자 삭제 + */ +router.delete('/users/:id', verifyToken, async (req, res) => { + let connection; + + try { + const userId = parseInt(req.params.id); + + // 권한 확인 (system만 삭제 가능) + if (req.user.access_level !== 'system') { + return res.status(403).json({ + success: false, + error: '사용자 삭제 권한이 없습니다.' + }); + } + + // 자기 자신 삭제 방지 + if (userId === req.user.user_id) { + return res.status(400).json({ + success: false, + error: '자기 자신은 삭제할 수 없습니다.' + }); + } + + connection = await mysql.createConnection(dbConfig); + + // 사용자 존재 확인 + const [existing] = await connection.execute( + 'SELECT username FROM users WHERE user_id = ?', + [userId] + ); + + if (existing.length === 0) { + return res.status(404).json({ + success: false, + error: '사용자를 찾을 수 없습니다.' + }); + } + + // 소프트 삭제 (실제로는 비활성화) + await connection.execute( + 'UPDATE users SET is_active = FALSE, updated_at = NOW() WHERE user_id = ?', + [userId] + ); + + // 또는 하드 삭제 (실제로 삭제) + // await connection.execute('DELETE FROM users WHERE user_id = ?', [userId]); + + console.log(`[사용자 삭제] 대상: ${existing[0].username} - 삭제자: ${req.user.username}`); + + res.json({ + success: true, + message: '사용자가 성공적으로 삭제되었습니다.' + }); + + } catch (error) { + console.error('Delete user error:', error); + res.status(500).json({ + success: false, + error: '서버 오류가 발생했습니다.' + }); + } finally { + if (connection) { + await connection.end(); + } + } +}); + +/** + * 로그아웃 + */ +router.post('/logout', verifyToken, async (req, res) => { + console.log(`[로그아웃] 사용자: ${req.user.username}`); + + // 로그아웃 시간 기록 (선택사항) + let connection; + try { + connection = await mysql.createConnection(dbConfig); + await connection.execute( + 'UPDATE login_logs SET logout_time = NOW() WHERE user_id = ? AND logout_time IS NULL ORDER BY login_time DESC LIMIT 1', + [req.user.user_id] + ); + } catch (error) { + console.error('로그아웃 기록 실패:', error); + } finally { + if (connection) { + await connection.end(); + } + } + + res.json({ + success: true, + message: '성공적으로 로그아웃되었습니다.' + }); +}); + +/** + * 로그인 이력 조회 + */ +router.get('/login-history', verifyToken, async (req, res) => { + let connection; + + try { + const { limit = 50, offset = 0 } = req.query; + const userId = req.user.user_id; + + connection = await mysql.createConnection(dbConfig); + + // 본인의 로그인 이력만 조회 (관리자는 전체 조회 가능) + let query = ` + SELECT + log_id, + user_id, + login_time, + logout_time, + ip_address, + user_agent, + login_status + FROM login_logs + `; + + const params = []; + + if (!['admin', 'system'].includes(req.user.access_level)) { + query += ' WHERE user_id = ?'; + params.push(userId); + } else if (req.query.user_id) { + query += ' WHERE user_id = ?'; + params.push(req.query.user_id); + } + + query += ' ORDER BY login_time DESC LIMIT ? OFFSET ?'; + params.push(parseInt(limit), parseInt(offset)); + + const [rows] = await connection.execute(query, params); + + res.json({ + success: true, + data: rows, + pagination: { + limit: parseInt(limit), + offset: parseInt(offset) + } + }); + + } catch (error) { + console.error('Get login history error:', error); + res.status(500).json({ error: '서버 오류가 발생했습니다.' }); + } finally { + if (connection) { + await connection.end(); + } + } +}); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/dailyIssueReportRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/dailyIssueReportRoutes.js new file mode 100644 index 0000000..5ff1ec6 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/dailyIssueReportRoutes.js @@ -0,0 +1,20 @@ +// routes/dailyIssueReportRoutes.js +const express = require('express'); +const router = express.Router(); + +const { + createDailyIssueReport, + getDailyIssuesByDate, + removeDailyIssue +} = require('../controllers/dailyIssueReportController'); + +// 1. 등록 (단일 또는 다중) +router.post('/', createDailyIssueReport); + +// 2. 날짜별 조회 (?date=YYYY-MM-DD 형식) +router.get('/', getDailyIssuesByDate); + +// 3. 삭제 +router.delete('/:id', removeDailyIssue); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/dailyWorkReportRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/dailyWorkReportRoutes.js new file mode 100644 index 0000000..f805c57 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/dailyWorkReportRoutes.js @@ -0,0 +1,97 @@ +// routes/dailyWorkReportRoutes.js - 누적입력 방식 + 모든 기존 기능 포함 +const express = require('express'); +const router = express.Router(); +const dailyWorkReportController = require('../controllers/dailyWorkReportController'); +const workReportController = require('../controllers/workReportController'); + +// 📋 마스터 데이터 조회 라우트들 (모든 인증된 사용자) +router.get('/work-types', dailyWorkReportController.getWorkTypes); +router.get('/work-status-types', dailyWorkReportController.getWorkStatusTypes); +router.get('/error-types', dailyWorkReportController.getErrorTypes); + +// 📝 마스터 데이터 CRUD 라우트들 (관리자만) +// 작업 유형 CRUD +router.post('/work-types', dailyWorkReportController.createWorkType); +router.put('/work-types/:id', dailyWorkReportController.updateWorkType); +router.delete('/work-types/:id', dailyWorkReportController.deleteWorkType); + +// 작업 상태 CRUD +router.post('/work-status-types', dailyWorkReportController.createWorkStatus); +router.put('/work-status-types/:id', dailyWorkReportController.updateWorkStatus); +router.delete('/work-status-types/:id', dailyWorkReportController.deleteWorkStatus); + +// 오류 유형 CRUD +router.post('/error-types', dailyWorkReportController.createErrorType); +router.put('/error-types/:id', dailyWorkReportController.updateErrorType); +router.delete('/error-types/:id', dailyWorkReportController.deleteErrorType); + +// 🔄 누적 관련 새로운 라우트들 (누적입력 시스템 전용) +router.get('/accumulated', dailyWorkReportController.getAccumulatedReports); // ?date=2024-06-16&worker_id=1 +router.get('/contributors', dailyWorkReportController.getContributorsSummary); // ?date=2024-06-16&worker_id=1 +router.get('/my-data', dailyWorkReportController.getMyAccumulatedData); // ?date=2024-06-16&worker_id=1 + +// ✅ check-overwrite 엔드포인트 추가 (누락된 엔드포인트) +router.get('/check-overwrite', (req, res) => { + const { date, worker_id } = req.query; + + if (!date || !worker_id) { + return res.status(400).json({ + error: 'date와 worker_id가 필요합니다.', + example: 'date=2025-06-16&worker_id=1' + }); + } + + console.log(`🔍 덮어쓰기 권한 확인: 날짜=${date}, 작업자=${worker_id} (누적입력모드)`); + + // 누적입력 시스템에서는 항상 덮어쓰기 가능 (실제로는 누적만 함) + res.json({ + canOverwrite: true, + reason: 'accumulate_mode', + message: '누적입력 모드에서는 항상 추가 가능합니다.', + date, + worker_id, + timestamp: new Date().toISOString() + }); +}); + +router.delete('/my-entry/:id', dailyWorkReportController.removeMyEntry); // 개별 항목 삭제 (본인 것만) + +// 📅 월간 요약 (반드시 다른 라우트보다 먼저 정의) +router.get('/summary/monthly', dailyWorkReportController.getMonthlySummary); + +// 📊 일일 근무 요약 조회 +router.get('/summary', dailyWorkReportController.getDailySummary); + +// 🔍 검색 (페이지네이션 포함) +router.get('/search', dailyWorkReportController.searchWorkReports); + +// 📈 통계 +router.get('/stats', dailyWorkReportController.getWorkReportStats); + +// 📝 일일 작업보고서 생성 (누적 방식 - 덮어쓰기 없음!) +router.post('/', dailyWorkReportController.createDailyWorkReport); + +// 📝 TBM 기반 작업보고서 생성 +router.post('/from-tbm', dailyWorkReportController.createFromTbm); + +// 📊 일일 작업보고서 조회 (날짜별 - 경로 파라미터) +router.get('/date/:date', dailyWorkReportController.getDailyWorkReportsByDate); + +// 📊 일일 작업보고서 조회 (쿼리 파라미터 기반 - 작성자별 필터링) +router.get('/', dailyWorkReportController.getDailyWorkReports); + +// ✏️ 작업보고서 수정 +router.put('/:id', dailyWorkReportController.updateWorkReport); + +// 🗑️ 작업자의 특정 날짜 전체 삭제 +router.delete('/date/:date/worker/:worker_id', dailyWorkReportController.removeDailyWorkReportByDateAndWorker); + +// 🗑️ 특정 작업보고서 삭제 (항상 가장 마지막에 정의) +router.delete('/:id', dailyWorkReportController.removeDailyWorkReport); + +// 📋 부적합 관리 (workReportController 사용) +router.get('/:reportId/defects', workReportController.getReportDefects); +router.put('/:reportId/defects', workReportController.saveReportDefects); +router.post('/:reportId/defects', workReportController.addReportDefect); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/departmentRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/departmentRoutes.js new file mode 100644 index 0000000..fa4fd43 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/departmentRoutes.js @@ -0,0 +1,31 @@ +// routes/departmentRoutes.js +const express = require('express'); +const router = express.Router(); +const departmentController = require('../controllers/departmentController'); +const { requireAuth, requireRole } = require('../middlewares/authMiddleware'); + +// 부서 목록 조회 (인증 필요) +router.get('/', requireAuth, departmentController.getAll); + +// 부서 상세 조회 +router.get('/:id', requireAuth, departmentController.getById); + +// 부서별 작업자 조회 +router.get('/:id/workers', requireAuth, departmentController.getWorkers); + +// 부서 생성 (관리자만) +router.post('/', requireAuth, requireRole(['Admin', 'System Admin']), departmentController.create); + +// 부서 수정 (관리자만) +router.put('/:id', requireAuth, requireRole(['Admin', 'System Admin']), departmentController.update); + +// 부서 삭제 (관리자만) +router.delete('/:id', requireAuth, requireRole(['Admin', 'System Admin']), departmentController.delete); + +// 작업자 부서 이동 (관리자만) +router.post('/move-worker', requireAuth, requireRole(['Admin', 'System Admin']), departmentController.moveWorker); + +// 여러 작업자 부서 일괄 이동 (관리자만) +router.post('/move-workers', requireAuth, requireRole(['Admin', 'System Admin']), departmentController.moveWorkers); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/equipmentRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/equipmentRoutes.js new file mode 100644 index 0000000..53f16b9 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/equipmentRoutes.js @@ -0,0 +1,103 @@ +// routes/equipmentRoutes.js +const express = require('express'); +const router = express.Router(); +const equipmentController = require('../controllers/equipmentController'); + +// ==================== 설비 관리 ==================== + +// CREATE 설비 +router.post('/', equipmentController.createEquipment); + +// READ ALL 설비 (쿼리 파라미터로 필터링 가능) +// ?workplace_id=1&equipment_type=CNC&status=active&search=설비명 +router.get('/', equipmentController.getAllEquipments); + +// READ ACTIVE 설비 +router.get('/active/list', equipmentController.getActiveEquipments); + +// READ 설비 유형 목록 +router.get('/types', equipmentController.getEquipmentTypes); + +// GET NEXT EQUIPMENT CODE - 다음 관리번호 자동 생성 +// ?prefix=TKP (기본값: TKP) +router.get('/next-code', equipmentController.getNextEquipmentCode); + +// READ 작업장별 설비 +router.get('/workplace/:workplaceId', equipmentController.getEquipmentsByWorkplace); + +// ==================== 임시 이동 (목록) ==================== + +// 임시 이동된 설비 목록 +router.get('/moved/list', equipmentController.getTemporarilyMoved); + +// ==================== 외부 반출 (목록) ==================== + +// 현재 외부 반출 중인 설비 목록 +router.get('/exported/list', equipmentController.getExportedEquipments); + +// 반출 로그 반입 처리 +router.post('/external-logs/:logId/return', equipmentController.returnEquipment); + +// ==================== 수리 ==================== + +// 수리 항목 목록 조회 +router.get('/repair-categories', equipmentController.getRepairCategories); + +// 새 수리 항목 추가 +router.post('/repair-categories', equipmentController.addRepairCategory); + +// ==================== 사진 관리 ==================== + +// 사진 삭제 (설비 ID 없이 photo_id만으로) +router.delete('/photos/:photoId', equipmentController.deletePhoto); + +// ==================== 개별 설비 ==================== + +// READ ONE 설비 +router.get('/:id', equipmentController.getEquipmentById); + +// UPDATE 설비 +router.put('/:id', equipmentController.updateEquipment); + +// UPDATE 설비 지도 위치 +router.patch('/:id/map-position', equipmentController.updateMapPosition); + +// DELETE 설비 +router.delete('/:id', equipmentController.deleteEquipment); + +// ==================== 설비 사진 ==================== + +// 설비 사진 추가 +router.post('/:id/photos', equipmentController.addPhoto); + +// 설비 사진 목록 +router.get('/:id/photos', equipmentController.getPhotos); + +// ==================== 설비 임시 이동 ==================== + +// 설비 임시 이동 +router.post('/:id/move', equipmentController.moveTemporarily); + +// 설비 원위치 복귀 +router.post('/:id/return', equipmentController.returnToOriginal); + +// 설비 이동 이력 +router.get('/:id/move-logs', equipmentController.getMoveLogs); + +// ==================== 설비 외부 반출 ==================== + +// 설비 외부 반출 +router.post('/:id/export', equipmentController.exportEquipment); + +// 설비 외부 반출 이력 +router.get('/:id/external-logs', equipmentController.getExternalLogs); + +// ==================== 설비 수리 ==================== + +// 수리 신청 +router.post('/:id/repair-request', equipmentController.createRepairRequest); + +// 수리 이력 조회 +router.get('/:id/repair-history', equipmentController.getRepairHistory); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/healthRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/healthRoutes.js new file mode 100644 index 0000000..25f74b2 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/healthRoutes.js @@ -0,0 +1,123 @@ +// routes/healthRoutes.js +const express = require('express'); +const router = express.Router(); + +// 헬스체크 엔드포인트 +router.get('/', (req, res) => { + res.json({ + status: 'healthy', + service: 'Technical Korea API', + timestamp: new Date().toISOString(), + uptime: process.uptime() + }); +}); + +// 상세 헬스체크 (옵션) +router.get('/detail', (req, res) => { + res.json({ + status: 'healthy', + service: 'Technical Korea API', + version: '2.1.0', + timestamp: new Date().toISOString(), + uptime: process.uptime(), + memory: process.memoryUsage(), + environment: process.env.NODE_ENV || 'development' + }); +}); + +// 임시 마이그레이션 엔드포인트 - TBM work_type_id 수정 +// 실행 후 이 코드를 삭제하세요! +router.post('/migrate-work-type-id', async (req, res) => { + try { + const { getDb } = require('../dbPool'); + const db = await getDb(); + + console.log('🔄 TBM 기반 작업보고서 work_type_id 수정 시작...'); + + // 1. 수정 대상 확인 + const [checkResult] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id as current_work_type_id, + ta.task_id as correct_task_id, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + INNER JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + ORDER BY dwr.report_date DESC + `); + + console.log(`📊 수정 대상: ${checkResult.length}개 레코드`); + + if (checkResult.length === 0) { + return res.json({ + success: true, + message: '수정할 데이터가 없습니다.', + data: { affected_rows: 0 } + }); + } + + // 수정 전 샘플 로깅 + console.log('수정 전 샘플:', checkResult.slice(0, 5)); + + // 2. 업데이트 실행 + const [updateResult] = await db.query(` + UPDATE daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + SET dwr.work_type_id = ta.task_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + `); + + console.log(`✅ 업데이트 완료: ${updateResult.affectedRows}개 레코드 수정됨`); + + // 3. 수정 후 확인 + const [samples] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id, + t.task_name, + wt.name as work_type_name, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + ORDER BY dwr.report_date DESC + LIMIT 10 + `); + + res.json({ + success: true, + message: `${updateResult.affectedRows}개 레코드가 수정되었습니다.`, + data: { + affected_rows: updateResult.affectedRows, + before_count: checkResult.length, + samples: samples.map(s => ({ + id: s.id, + worker: s.worker_name, + date: s.report_date, + task: s.task_name, + work_type: s.work_type_name + })) + } + }); + + } catch (error) { + console.error('마이그레이션 실패:', error); + res.status(500).json({ + success: false, + error: '마이그레이션 실패: ' + error.message + }); + } +}); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/issueTypeRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/issueTypeRoutes.js new file mode 100644 index 0000000..2fd5228 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/issueTypeRoutes.js @@ -0,0 +1,10 @@ +const express = require('express'); +const router = express.Router(); +const issueTypeController = require('../controllers/issueTypeController'); + +router.post('/', issueTypeController.createIssueType); +router.get('/', issueTypeController.getAllIssueTypes); +router.put('/:id', issueTypeController.updateIssueType); +router.delete('/:id', issueTypeController.removeIssueType); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/monthlyStatusRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/monthlyStatusRoutes.js new file mode 100644 index 0000000..56af931 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/monthlyStatusRoutes.js @@ -0,0 +1,24 @@ +// routes/monthlyStatusRoutes.js +// 월별 작업자 상태 집계 라우트 + +const express = require('express'); +const router = express.Router(); +const MonthlyStatusController = require('../controllers/monthlyStatusController'); +const { verifyToken } = require('../middlewares/authMiddleware'); + +// 모든 라우트에 인증 미들웨어 적용 (임시로 주석 처리 - 테스트용) +// router.use(verifyToken); + +// 월별 캘린더 데이터 조회 (캘린더 페이지용) +router.get('/calendar', MonthlyStatusController.getMonthlyCalendarData); + +// 특정 날짜의 작업자별 상세 상태 조회 (모달용) +router.get('/daily-details', MonthlyStatusController.getDailyWorkerDetails); + +// 월별 집계 재계산 (관리자용) +router.post('/recalculate', MonthlyStatusController.recalculateMonth); + +// 집계 테이블 상태 확인 (관리자용) +router.get('/status', MonthlyStatusController.getStatusInfo); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/notificationRecipientRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/notificationRecipientRoutes.js new file mode 100644 index 0000000..ded32a5 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/notificationRecipientRoutes.js @@ -0,0 +1,28 @@ +// routes/notificationRecipientRoutes.js +const express = require('express'); +const router = express.Router(); +const notificationRecipientController = require('../controllers/notificationRecipientController'); +const { verifyToken, requireMinLevel } = require('../middlewares/authMiddleware'); + +// 모든 라우트에 인증 필요 +router.use(verifyToken); + +// 알림 유형 목록 +router.get('/types', notificationRecipientController.getTypes); + +// 전체 수신자 목록 (유형별 그룹화) +router.get('/', notificationRecipientController.getAll); + +// 유형별 수신자 조회 +router.get('/:type', notificationRecipientController.getByType); + +// 수신자 추가 (관리자만) +router.post('/', requireMinLevel('admin'), notificationRecipientController.add); + +// 유형별 수신자 일괄 설정 (관리자만) +router.put('/:type', requireMinLevel('admin'), notificationRecipientController.setRecipients); + +// 수신자 제거 (관리자만) +router.delete('/:type/:userId', requireMinLevel('admin'), notificationRecipientController.remove); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/notificationRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/notificationRoutes.js new file mode 100644 index 0000000..fbd5fa4 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/notificationRoutes.js @@ -0,0 +1,31 @@ +// routes/notificationRoutes.js +const express = require('express'); +const router = express.Router(); +const notificationController = require('../controllers/notificationController'); +const { requireAuth, requireMinLevel } = require('../middlewares/auth'); + +// 모든 알림 라우트는 인증 필요 +router.use(requireAuth); + +// 읽지 않은 알림 조회 (본인 알림만) +router.get('/unread', notificationController.getUnread); + +// 읽지 않은 알림 개수 +router.get('/unread/count', notificationController.getUnreadCount); + +// 전체 알림 조회 (페이징) +router.get('/', notificationController.getAll); + +// 알림 생성 (시스템/관리자용) +router.post('/', requireMinLevel('support_team'), notificationController.create); + +// 모든 알림 읽음 처리 (본인 알림만) +router.post('/read-all', notificationController.markAllAsRead); + +// 특정 알림 읽음 처리 (본인 알림만) +router.post('/:id/read', notificationController.markAsRead); + +// 알림 삭제 (본인 알림만) +router.delete('/:id', notificationController.delete); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/pageAccessRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/pageAccessRoutes.js new file mode 100644 index 0000000..9c46223 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/pageAccessRoutes.js @@ -0,0 +1,237 @@ +const express = require('express'); +const router = express.Router(); +const { getDb } = require('../dbPool'); +const { requireAuth, requireAdmin } = require('../middlewares/auth'); + +/** + * 모든 페이지 목록 조회 + * GET /api/pages + */ +router.get('/pages', requireAuth, async (req, res) => { + try { + const db = await getDb(); + const [pages] = await db.query(` + SELECT id, page_key, page_name, page_path, category, description, is_admin_only, display_order + FROM pages + ORDER BY display_order, page_name + `); + + res.json({ success: true, data: pages }); + } catch (error) { + console.error('페이지 목록 조회 오류:', error); + res.status(500).json({ success: false, error: '페이지 목록을 불러오는데 실패했습니다.' }); + } +}); + +/** + * 특정 사용자의 페이지 접근 권한 조회 + * GET /api/users/:userId/page-access + */ +router.get('/users/:userId/page-access', requireAuth, async (req, res) => { + try { + const { userId } = req.params; + const db = await getDb(); + + // 사용자의 역할 확인 + const [userRows] = await db.query(` + SELECT u.user_id, u.username, u.role_id, r.name as role_name + FROM users u + LEFT JOIN roles r ON u.role_id = r.id + WHERE u.user_id = ? + `, [userId]); + + if (userRows.length === 0) { + return res.status(404).json({ success: false, error: '사용자를 찾을 수 없습니다.' }); + } + + const user = userRows[0]; + + // Admin/System Admin인 경우 모든 페이지 접근 가능 + if (user.role_name === 'Admin' || user.role_name === 'System Admin') { + const [allPages] = await db.query(` + SELECT id, page_key, page_name, page_path, category, is_admin_only + FROM pages + ORDER BY display_order, page_name + `); + + const pageAccess = allPages.map(page => ({ + page_id: page.id, + page_key: page.page_key, + page_name: page.page_name, + page_path: page.page_path, + category: page.category, + is_admin_only: page.is_admin_only, + can_access: true, + is_default: true // Admin은 기본적으로 모든 권한 보유 + })); + + return res.json({ success: true, data: { user, pageAccess } }); + } + + // 일반 사용자의 페이지 접근 권한 조회 + const [pageAccess] = await db.query(` + SELECT + p.id as page_id, + p.page_key, + p.page_name, + p.page_path, + p.category, + p.is_admin_only, + COALESCE(upa.can_access, 0) as can_access, + upa.granted_at, + u2.username as granted_by_username + FROM pages p + LEFT JOIN user_page_access upa ON p.id = upa.page_id AND upa.user_id = ? + LEFT JOIN users u2 ON upa.granted_by = u2.user_id + WHERE p.is_admin_only = 0 + ORDER BY p.display_order, p.page_name + `, [userId]); + + res.json({ success: true, data: { user, pageAccess } }); + } catch (error) { + console.error('페이지 접근 권한 조회 오류:', error); + res.status(500).json({ success: false, error: '페이지 접근 권한을 불러오는데 실패했습니다.' }); + } +}); + +/** + * 사용자에게 페이지 접근 권한 부여/회수 + * POST /api/users/:userId/page-access + * Body: { pageIds: [1, 2, 3], canAccess: true } + */ +router.post('/users/:userId/page-access', requireAuth, async (req, res) => { + try { + const { userId } = req.params; + const { pageIds, canAccess } = req.body; + const adminUserId = req.user.user_id; // 권한을 부여하는 Admin의 user_id + + // Admin 권한 확인 + const db = await getDb(); + const [adminRows] = await db.query(` + SELECT u.role_id, r.name as role_name + FROM users u + LEFT JOIN roles r ON u.role_id = r.id + WHERE u.user_id = ? + `, [adminUserId]); + + if (adminRows.length === 0 || (adminRows[0].role_name !== 'Admin' && adminRows[0].role_name !== 'System Admin')) { + return res.status(403).json({ success: false, error: '권한이 없습니다. Admin 계정만 사용자 권한을 관리할 수 있습니다.' }); + } + + // 사용자 존재 확인 + const [userRows] = await db.query('SELECT user_id FROM users WHERE user_id = ?', [userId]); + if (userRows.length === 0) { + return res.status(404).json({ success: false, error: '사용자를 찾을 수 없습니다.' }); + } + + // 페이지 접근 권한 업데이트 + for (const pageId of pageIds) { + // 기존 권한 확인 + const [existing] = await db.query( + 'SELECT * FROM user_page_access WHERE user_id = ? AND page_id = ?', + [userId, pageId] + ); + + if (existing.length > 0) { + // 업데이트 + await db.query( + 'UPDATE user_page_access SET can_access = ?, granted_at = NOW(), granted_by = ? WHERE user_id = ? AND page_id = ?', + [canAccess ? 1 : 0, adminUserId, userId, pageId] + ); + } else { + // 삽입 + await db.query( + 'INSERT INTO user_page_access (user_id, page_id, can_access, granted_by) VALUES (?, ?, ?, ?)', + [userId, pageId, canAccess ? 1 : 0, adminUserId] + ); + } + } + + res.json({ success: true, message: '페이지 접근 권한이 업데이트되었습니다.' }); + } catch (error) { + console.error('페이지 접근 권한 부여 오류:', error); + res.status(500).json({ success: false, error: '페이지 접근 권한을 업데이트하는데 실패했습니다.' }); + } +}); + +/** + * 특정 페이지의 접근 권한 회수 + * DELETE /api/users/:userId/page-access/:pageId + */ +router.delete('/users/:userId/page-access/:pageId', requireAuth, async (req, res) => { + try { + const { userId, pageId } = req.params; + const adminUserId = req.user.user_id; + + // Admin 권한 확인 + const db = await getDb(); + const [adminRows] = await db.query(` + SELECT u.role_id, r.name as role_name + FROM users u + LEFT JOIN roles r ON u.role_id = r.id + WHERE u.user_id = ? + `, [adminUserId]); + + if (adminRows.length === 0 || (adminRows[0].role_name !== 'Admin' && adminRows[0].role_name !== 'System Admin')) { + return res.status(403).json({ success: false, error: '권한이 없습니다.' }); + } + + // 접근 권한 삭제 + await db.query( + 'DELETE FROM user_page_access WHERE user_id = ? AND page_id = ?', + [userId, pageId] + ); + + res.json({ success: true, message: '페이지 접근 권한이 회수되었습니다.' }); + } catch (error) { + console.error('페이지 접근 권한 회수 오류:', error); + res.status(500).json({ success: false, error: '페이지 접근 권한을 회수하는데 실패했습니다.' }); + } +}); + +/** + * 모든 사용자의 페이지 접근 권한 요약 조회 (Admin용) + * GET /api/page-access/summary + */ +router.get('/page-access/summary', requireAuth, async (req, res) => { + try { + const adminUserId = req.user.user_id; + + // Admin 권한 확인 + const db = await getDb(); + const [adminRows] = await db.query(` + SELECT u.role_id, r.name as role_name + FROM users u + LEFT JOIN roles r ON u.role_id = r.id + WHERE u.user_id = ? + `, [adminUserId]); + + if (adminRows.length === 0 || (adminRows[0].role_name !== 'Admin' && adminRows[0].role_name !== 'System Admin')) { + return res.status(403).json({ success: false, error: '권한이 없습니다.' }); + } + + // 모든 사용자와 페이지 권한 조회 + const [summary] = await db.query(` + SELECT + u.user_id, + u.username, + u.name, + r.name as role_name, + COUNT(DISTINCT upa.page_id) as accessible_pages_count, + (SELECT COUNT(*) FROM pages WHERE is_admin_only = 0) as total_pages_count + FROM users u + LEFT JOIN roles r ON u.role_id = r.id + LEFT JOIN user_page_access upa ON u.user_id = upa.user_id AND upa.can_access = 1 + WHERE r.name NOT IN ('Admin', 'System Admin') + GROUP BY u.user_id, u.username, u.name, r.name + ORDER BY u.username + `); + + res.json({ success: true, data: summary }); + } catch (error) { + console.error('페이지 접근 권한 요약 조회 오류:', error); + res.status(500).json({ success: false, error: '페이지 접근 권한 요약을 불러오는데 실패했습니다.' }); + } +}); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/patrolRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/patrolRoutes.js new file mode 100644 index 0000000..4368f44 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/patrolRoutes.js @@ -0,0 +1,126 @@ +// patrolRoutes.js +// 일일순회점검 시스템 라우트 + +const express = require('express'); +const router = express.Router(); +const multer = require('multer'); +const path = require('path'); +const patrolController = require('../controllers/patrolController'); + +// Multer 설정 - 구역 현황 사진 업로드 +const storage = multer.diskStorage({ + destination: (req, file, cb) => { + cb(null, path.join(__dirname, '../uploads')); + }, + filename: (req, file, cb) => { + const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9); + const ext = path.extname(file.originalname).toLowerCase(); + cb(null, `zone-item-${uniqueSuffix}${ext}`); + } +}); + +const upload = multer({ + storage, + limits: { fileSize: 10 * 1024 * 1024 }, // 10MB + fileFilter: (req, file, cb) => { + const allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp']; + if (allowedTypes.includes(file.mimetype)) { + cb(null, true); + } else { + cb(new Error('이미지 파일만 업로드 가능합니다.'), false); + } + } +}); + +// ==================== 순회점검 세션 ==================== + +// 세션 목록 조회 +// 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); + +// ==================== 작업장 상세 정보 ==================== + +// 작업장 상세 정보 조회 (시설물, 안전신고, 부적합, 출입, TBM 통합) +// GET /patrol/workplaces/:workplaceId/detail?date=2026-02-05 +router.get('/workplaces/:workplaceId/detail', patrolController.getWorkplaceDetail); + +// ==================== 구역 내 등록 물품/시설물 ==================== + +// 구역 내 등록된 물품/시설물 목록 조회 +router.get('/workplaces/:workplaceId/zone-items', patrolController.getZoneItems); + +// 구역 내 물품/시설물 등록 +router.post('/workplaces/:workplaceId/zone-items', patrolController.createZoneItem); + +// 구역 내 물품/시설물 수정 +router.put('/zone-items/:itemId', patrolController.updateZoneItem); + +// 구역 내 물품/시설물 삭제 +router.delete('/zone-items/:itemId', patrolController.deleteZoneItem); + +// 구역 현황 사진 업로드 +router.post('/zone-items/photos', upload.single('photo'), patrolController.uploadZoneItemPhoto); + +// 구역 현황 이력 조회 +router.get('/zone-items/:itemId/history', patrolController.getZoneItemHistory); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/performanceRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/performanceRoutes.js new file mode 100644 index 0000000..2e919fd --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/performanceRoutes.js @@ -0,0 +1,388 @@ +/** + * @swagger + * tags: + * name: Performance + * description: 성능 모니터링 및 최적화 API + */ + +const express = require('express'); +const router = express.Router(); +const { asyncHandler } = require('../utils/errorHandler'); +const cache = require('../utils/cache'); +const { getPerformanceStats, suggestIndexes, analyzeQuery } = require('../utils/queryOptimizer'); + +/** + * @swagger + * /api/performance/cache/stats: + * get: + * tags: [Performance] + * summary: 캐시 통계 조회 + * description: 현재 캐시 시스템의 상태와 통계를 조회합니다. + * security: + * - bearerAuth: [] + * responses: + * 200: + * description: 캐시 통계 조회 성공 + * content: + * application/json: + * schema: + * type: object + * properties: + * success: + * type: boolean + * example: true + * message: + * type: string + * example: "캐시 통계 조회 성공" + * data: + * type: object + * properties: + * type: + * type: string + * example: "memory" + * connected: + * type: boolean + * example: true + * keys: + * type: integer + * example: 42 + * hits: + * type: integer + * example: 150 + * misses: + * type: integer + * example: 25 + * hitRate: + * type: number + * example: 0.857 + * 401: + * description: 인증 필요 + * 500: + * description: 서버 오류 + */ +router.get('/cache/stats', asyncHandler(async (req, res) => { + const stats = cache.getStats(); + res.success(stats, '캐시 통계 조회 성공'); +})); + +/** + * @swagger + * /api/performance/cache/flush: + * post: + * tags: [Performance] + * summary: 캐시 초기화 + * description: 모든 캐시 데이터를 삭제합니다. (관리자 전용) + * security: + * - bearerAuth: [] + * responses: + * 200: + * description: 캐시 초기화 성공 + * content: + * application/json: + * schema: + * type: object + * properties: + * success: + * type: boolean + * example: true + * message: + * type: string + * example: "캐시가 성공적으로 초기화되었습니다." + * 401: + * description: 인증 필요 + * 403: + * description: 권한 부족 + * 500: + * description: 서버 오류 + */ +router.post('/cache/flush', asyncHandler(async (req, res) => { + // 관리자 권한 확인 + if (req.user?.access_level !== 'admin' && req.user?.access_level !== 'system') { + return res.status(403).json({ + success: false, + error: '캐시 초기화 권한이 없습니다.' + }); + } + + await cache.flush(); + res.success(null, '캐시가 성공적으로 초기화되었습니다.'); +})); + +/** + * @swagger + * /api/performance/database/stats: + * get: + * tags: [Performance] + * summary: 데이터베이스 성능 통계 + * description: 데이터베이스 연결 상태와 성능 지표를 조회합니다. + * security: + * - bearerAuth: [] + * responses: + * 200: + * description: DB 성능 통계 조회 성공 + * content: + * application/json: + * schema: + * type: object + * properties: + * success: + * type: boolean + * example: true + * message: + * type: string + * example: "DB 성능 통계 조회 성공" + * data: + * type: object + * properties: + * connections: + * type: object + * properties: + * current: + * type: integer + * example: 5 + * max: + * type: integer + * example: 151 + * slowQueries: + * type: integer + * example: 0 + * timestamp: + * type: string + * format: date-time + * 401: + * description: 인증 필요 + * 500: + * description: 서버 오류 + */ +router.get('/database/stats', asyncHandler(async (req, res) => { + const stats = await getPerformanceStats(); + res.success(stats, 'DB 성능 통계 조회 성공'); +})); + +/** + * @swagger + * /api/performance/database/indexes/{tableName}: + * get: + * tags: [Performance] + * summary: 인덱스 최적화 제안 + * description: 특정 테이블의 인덱스 상태를 분석하고 최적화 제안을 제공합니다. + * security: + * - bearerAuth: [] + * parameters: + * - in: path + * name: tableName + * required: true + * schema: + * type: string + * description: 분석할 테이블명 + * example: "workers" + * responses: + * 200: + * description: 인덱스 분석 성공 + * content: + * application/json: + * schema: + * type: object + * properties: + * success: + * type: boolean + * example: true + * message: + * type: string + * example: "인덱스 분석 완료" + * data: + * type: object + * properties: + * tableName: + * type: string + * example: "workers" + * currentIndexes: + * type: array + * items: + * type: object + * properties: + * name: + * type: string + * column: + * type: string + * unique: + * type: boolean + * suggestions: + * type: array + * items: + * type: object + * properties: + * type: + * type: string + * column: + * type: string + * reason: + * type: string + * sql: + * type: string + * 401: + * description: 인증 필요 + * 500: + * description: 서버 오류 + */ +router.get('/database/indexes/:tableName', asyncHandler(async (req, res) => { + const { tableName } = req.params; + const analysis = await suggestIndexes(tableName); + res.success(analysis, '인덱스 분석 완료'); +})); + +/** + * @swagger + * /api/performance/query/analyze: + * post: + * tags: [Performance] + * summary: 쿼리 성능 분석 + * description: SQL 쿼리의 실행 계획과 성능을 분석합니다. (관리자 전용) + * security: + * - bearerAuth: [] + * requestBody: + * required: true + * content: + * application/json: + * schema: + * type: object + * required: + * - query + * properties: + * query: + * type: string + * example: "SELECT * FROM workers WHERE department = ?" + * params: + * type: array + * items: + * type: string + * example: ["생산부"] + * responses: + * 200: + * description: 쿼리 분석 성공 + * content: + * application/json: + * schema: + * type: object + * properties: + * success: + * type: boolean + * example: true + * message: + * type: string + * example: "쿼리 분석 완료" + * data: + * type: object + * properties: + * executionTime: + * type: integer + * example: 15 + * explainResult: + * type: array + * items: + * type: object + * recommendations: + * type: array + * items: + * type: object + * properties: + * type: + * type: string + * message: + * type: string + * suggestion: + * type: string + * 401: + * description: 인증 필요 + * 403: + * description: 권한 부족 + * 500: + * description: 서버 오류 + */ +router.post('/query/analyze', asyncHandler(async (req, res) => { + // 관리자 권한 확인 + if (req.user?.access_level !== 'admin' && req.user?.access_level !== 'system') { + return res.status(403).json({ + success: false, + error: '쿼리 분석 권한이 없습니다.' + }); + } + + const { query, params = [] } = req.body; + + if (!query) { + return res.status(400).json({ + success: false, + error: '분석할 쿼리가 필요합니다.' + }); + } + + const analysis = await analyzeQuery(query, params); + res.success(analysis, '쿼리 분석 완료'); +})); + +/** + * @swagger + * /api/performance/system/info: + * get: + * tags: [Performance] + * summary: 시스템 정보 조회 + * description: 서버의 메모리, CPU, 업타임 등 시스템 정보를 조회합니다. + * security: + * - bearerAuth: [] + * responses: + * 200: + * description: 시스템 정보 조회 성공 + * content: + * application/json: + * schema: + * type: object + * properties: + * success: + * type: boolean + * example: true + * message: + * type: string + * example: "시스템 정보 조회 성공" + * data: + * type: object + * properties: + * uptime: + * type: number + * example: 3600.5 + * memory: + * type: object + * properties: + * rss: + * type: integer + * heapTotal: + * type: integer + * heapUsed: + * type: integer + * external: + * type: integer + * nodeVersion: + * type: string + * example: "v18.17.0" + * platform: + * type: string + * example: "linux" + * 401: + * description: 인증 필요 + * 500: + * description: 서버 오류 + */ +router.get('/system/info', asyncHandler(async (req, res) => { + const systemInfo = { + uptime: process.uptime(), + memory: process.memoryUsage(), + nodeVersion: process.version, + platform: process.platform, + cpuUsage: process.cpuUsage(), + timestamp: new Date().toISOString() + }; + + res.success(systemInfo, '시스템 정보 조회 성공'); +})); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/projectRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/projectRoutes.js new file mode 100644 index 0000000..4fddf5d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/projectRoutes.js @@ -0,0 +1,19 @@ +// routes/projectRoutes.js +const express = require('express'); +const router = express.Router(); +const projectController = require('../controllers/projectController'); +const { requireAuth, requireMinLevel } = require('../middlewares/auth'); + +// READ - 인증된 사용자 +router.get('/', requireAuth, projectController.getAllProjects); +router.get('/active/list', requireAuth, projectController.getActiveProjects); +router.get('/:project_id', requireAuth, projectController.getProjectById); + +// CREATE/UPDATE - support_team 이상 권한 필요 +router.post('/', requireAuth, requireMinLevel('support_team'), projectController.createProject); +router.put('/:project_id', requireAuth, requireMinLevel('support_team'), projectController.updateProject); + +// DELETE - admin 이상 권한 필요 +router.delete('/:project_id', requireAuth, requireMinLevel('admin'), projectController.removeProject); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/setupRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/setupRoutes.js new file mode 100644 index 0000000..b93200f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/setupRoutes.js @@ -0,0 +1,717 @@ +const express = require('express'); +const router = express.Router(); +const { getDb } = require('../dbPool'); + +// DB 설정 엔드포인트 (개발용 - 인증 없이 접근 가능) +// 월별 집계 테이블 설정 +router.post('/setup-monthly-status', async (req, res) => { + try { + const db = await getDb(); + + console.log('📊 월별 집계 테이블 생성 중...'); + + // 1. 월별 작업자 상태 집계 테이블 + await db.execute(` + CREATE TABLE IF NOT EXISTS monthly_worker_status ( + id INT PRIMARY KEY AUTO_INCREMENT, + year INT NOT NULL COMMENT '연도', + month INT NOT NULL COMMENT '월 (1-12)', + worker_id INT NOT NULL COMMENT '작업자 ID', + date DATE NOT NULL COMMENT '날짜', + + total_work_hours DECIMAL(5,2) DEFAULT 0.00 COMMENT '총 작업시간', + actual_work_hours DECIMAL(5,2) DEFAULT 0.00 COMMENT '실제 작업시간 (휴가 제외)', + vacation_hours DECIMAL(5,2) DEFAULT 0.00 COMMENT '휴가 시간', + + total_work_count INT DEFAULT 0 COMMENT '총 작업 건수', + regular_work_count INT DEFAULT 0 COMMENT '정규 작업 건수', + error_work_count INT DEFAULT 0 COMMENT '오류 작업 건수', + + work_status ENUM( + 'incomplete', 'partial', 'complete', 'overtime', + 'vacation-full', 'vacation-half', 'vacation-quarter', 'vacation-half-half', + 'error', 'overtime-warning' + ) NOT NULL DEFAULT 'incomplete' COMMENT '작업 상태', + + has_vacation BOOLEAN DEFAULT FALSE COMMENT '휴가 여부', + has_error BOOLEAN DEFAULT FALSE COMMENT '오류 여부', + has_issues BOOLEAN DEFAULT FALSE COMMENT '문제 여부 (미입력/부분입력)', + + last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + + UNIQUE KEY unique_worker_date (worker_id, date), + KEY idx_year_month (year, month), + KEY idx_worker_year_month (worker_id, year, month), + KEY idx_status (work_status), + KEY idx_has_issues (has_issues), + KEY idx_has_error (has_error), + + FOREIGN KEY (worker_id) REFERENCES workers(worker_id) ON DELETE CASCADE + ) COMMENT='월별 작업자 상태 집계 테이블' + `); + + // 2. 월별 집계 요약 테이블 + await db.execute(` + CREATE TABLE IF NOT EXISTS monthly_summary ( + id INT PRIMARY KEY AUTO_INCREMENT, + year INT NOT NULL COMMENT '연도', + month INT NOT NULL COMMENT '월 (1-12)', + date DATE NOT NULL COMMENT '날짜', + + total_workers INT DEFAULT 0 COMMENT '총 작업자 수', + working_workers INT DEFAULT 0 COMMENT '작업한 작업자 수', + + incomplete_workers INT DEFAULT 0 COMMENT '미입력 작업자 수', + partial_workers INT DEFAULT 0 COMMENT '부분입력 작업자 수', + complete_workers INT DEFAULT 0 COMMENT '완료 작업자 수', + overtime_workers INT DEFAULT 0 COMMENT '연장근로 작업자 수', + vacation_workers INT DEFAULT 0 COMMENT '휴가 작업자 수', + error_workers INT DEFAULT 0 COMMENT '오류 작업자 수', + + total_work_hours DECIMAL(8,2) DEFAULT 0.00 COMMENT '총 작업시간', + total_work_count INT DEFAULT 0 COMMENT '총 작업 건수', + total_error_count INT DEFAULT 0 COMMENT '총 오류 건수', + + has_issues BOOLEAN DEFAULT FALSE COMMENT '문제 있음 (미입력/부분입력)', + has_errors BOOLEAN DEFAULT FALSE COMMENT '오류 있음', + + last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + + UNIQUE KEY unique_date (date), + KEY idx_year_month (year, month), + KEY idx_has_issues (has_issues), + KEY idx_has_errors (has_errors) + ) COMMENT='월별 일자별 요약 테이블 (캘린더 최적화용)' + `); + + console.log('📊 집계 프로시저 생성 중...'); + + // 3. 집계 업데이트 프로시저 + await db.execute(`DROP PROCEDURE IF EXISTS UpdateMonthlyWorkerStatus`); + await db.execute(` + CREATE PROCEDURE UpdateMonthlyWorkerStatus( + IN p_date DATE, + IN p_worker_id INT + ) + BEGIN + DECLARE v_year INT; + DECLARE v_month INT; + DECLARE v_total_hours DECIMAL(5,2); + DECLARE v_actual_hours DECIMAL(5,2); + DECLARE v_vacation_hours DECIMAL(5,2); + DECLARE v_total_count INT; + DECLARE v_regular_count INT; + DECLARE v_error_count INT; + DECLARE v_has_vacation BOOLEAN; + DECLARE v_has_error BOOLEAN; + DECLARE v_has_issues BOOLEAN; + DECLARE v_status VARCHAR(20); + + SET v_year = YEAR(p_date); + SET v_month = MONTH(p_date); + + SELECT + COALESCE(SUM(work_hours), 0), + COALESCE(SUM(CASE WHEN project_id != 13 THEN work_hours ELSE 0 END), 0), + COALESCE(SUM(CASE WHEN project_id = 13 THEN work_hours ELSE 0 END), 0), + COUNT(*), + COUNT(CASE WHEN project_id != 13 AND work_status_id != 2 THEN 1 END), + COUNT(CASE WHEN work_status_id = 2 THEN 1 END), + MAX(CASE WHEN project_id = 13 THEN 1 ELSE 0 END), + MAX(CASE WHEN work_status_id = 2 THEN 1 ELSE 0 END) + INTO + v_total_hours, v_actual_hours, v_vacation_hours, + v_total_count, v_regular_count, v_error_count, + v_has_vacation, v_has_error + FROM daily_work_reports + WHERE report_date = p_date AND worker_id = p_worker_id; + + IF v_has_error THEN + SET v_status = 'error'; + SET v_has_issues = FALSE; + ELSEIF v_total_hours > 12 THEN + SET v_status = 'overtime-warning'; + SET v_has_issues = TRUE; + ELSEIF v_has_vacation AND v_vacation_hours > 0 THEN + CASE v_vacation_hours + WHEN 8 THEN SET v_status = 'vacation-full'; + WHEN 6 THEN SET v_status = 'vacation-half-half'; + WHEN 4 THEN SET v_status = 'vacation-half'; + WHEN 2 THEN SET v_status = 'vacation-quarter'; + ELSE SET v_status = 'vacation-full'; + END CASE; + SET v_has_issues = FALSE; + ELSEIF v_total_hours > 8 THEN + SET v_status = 'overtime'; + SET v_has_issues = FALSE; + ELSEIF v_total_hours = 8 THEN + SET v_status = 'complete'; + SET v_has_issues = FALSE; + ELSEIF v_total_hours > 0 THEN + SET v_status = 'partial'; + SET v_has_issues = TRUE; + ELSE + SET v_status = 'incomplete'; + SET v_has_issues = TRUE; + END IF; + + INSERT INTO monthly_worker_status ( + year, month, worker_id, date, + total_work_hours, actual_work_hours, vacation_hours, + total_work_count, regular_work_count, error_work_count, + work_status, has_vacation, has_error, has_issues + ) VALUES ( + v_year, v_month, p_worker_id, p_date, + v_total_hours, v_actual_hours, v_vacation_hours, + v_total_count, v_regular_count, v_error_count, + v_status, v_has_vacation, v_has_error, v_has_issues + ) ON DUPLICATE KEY UPDATE + total_work_hours = v_total_hours, + actual_work_hours = v_actual_hours, + vacation_hours = v_vacation_hours, + total_work_count = v_total_count, + regular_work_count = v_regular_count, + error_work_count = v_error_count, + work_status = v_status, + has_vacation = v_has_vacation, + has_error = v_has_error, + has_issues = v_has_issues, + last_updated = CURRENT_TIMESTAMP; + + CALL UpdateDailySummary(p_date); + END + `); + + await db.execute(`DROP PROCEDURE IF EXISTS UpdateDailySummary`); + await db.execute(` + CREATE PROCEDURE UpdateDailySummary( + IN p_date DATE + ) + BEGIN + DECLARE v_year INT; + DECLARE v_month INT; + + SET v_year = YEAR(p_date); + SET v_month = MONTH(p_date); + + INSERT INTO monthly_summary ( + year, month, date, + total_workers, working_workers, + incomplete_workers, partial_workers, complete_workers, + overtime_workers, vacation_workers, error_workers, + total_work_hours, total_work_count, total_error_count, + has_issues, has_errors + ) + SELECT + v_year, v_month, p_date, + COUNT(*) as total_workers, + COUNT(CASE WHEN work_status != 'incomplete' THEN 1 END) as working_workers, + COUNT(CASE WHEN work_status = 'incomplete' THEN 1 END) as incomplete_workers, + COUNT(CASE WHEN work_status = 'partial' THEN 1 END) as partial_workers, + COUNT(CASE WHEN work_status IN ('complete') THEN 1 END) as complete_workers, + COUNT(CASE WHEN work_status = 'overtime' THEN 1 END) as overtime_workers, + COUNT(CASE WHEN work_status LIKE 'vacation%' THEN 1 END) as vacation_workers, + COUNT(CASE WHEN work_status = 'error' THEN 1 END) as error_workers, + SUM(total_work_hours) as total_work_hours, + SUM(total_work_count) as total_work_count, + SUM(error_work_count) as total_error_count, + MAX(has_issues) as has_issues, + MAX(has_error) as has_errors + FROM monthly_worker_status + WHERE date = p_date + ON DUPLICATE KEY UPDATE + total_workers = VALUES(total_workers), + working_workers = VALUES(working_workers), + incomplete_workers = VALUES(incomplete_workers), + partial_workers = VALUES(partial_workers), + complete_workers = VALUES(complete_workers), + overtime_workers = VALUES(overtime_workers), + vacation_workers = VALUES(vacation_workers), + error_workers = VALUES(error_workers), + total_work_hours = VALUES(total_work_hours), + total_work_count = VALUES(total_work_count), + total_error_count = VALUES(total_error_count), + has_issues = VALUES(has_issues), + has_errors = VALUES(has_errors), + last_updated = CURRENT_TIMESTAMP; + END + `); + + console.log('📊 트리거 생성 중...'); + + // 4. 트리거 생성 + await db.execute(`DROP TRIGGER IF EXISTS tr_daily_work_reports_insert`); + await db.execute(` + CREATE TRIGGER tr_daily_work_reports_insert + AFTER INSERT ON daily_work_reports + FOR EACH ROW + BEGIN + CALL UpdateMonthlyWorkerStatus(NEW.report_date, NEW.worker_id); + END + `); + + await db.execute(`DROP TRIGGER IF EXISTS tr_daily_work_reports_update`); + await db.execute(` + CREATE TRIGGER tr_daily_work_reports_update + AFTER UPDATE ON daily_work_reports + FOR EACH ROW + BEGIN + CALL UpdateMonthlyWorkerStatus(OLD.report_date, OLD.worker_id); + + IF OLD.report_date != NEW.report_date OR OLD.worker_id != NEW.worker_id THEN + CALL UpdateMonthlyWorkerStatus(NEW.report_date, NEW.worker_id); + END IF; + END + `); + + await db.execute(`DROP TRIGGER IF EXISTS tr_daily_work_reports_delete`); + await db.execute(` + CREATE TRIGGER tr_daily_work_reports_delete + AFTER DELETE ON daily_work_reports + FOR EACH ROW + BEGIN + CALL UpdateMonthlyWorkerStatus(OLD.report_date, OLD.worker_id); + END + `); + + console.log('📊 기존 데이터로 집계 테이블 초기화 중...'); + + // 5. 기존 작업 데이터로 집계 테이블 초기화 + const [existingDates] = await db.execute(` + SELECT DISTINCT report_date, worker_id + FROM daily_work_reports + WHERE report_date >= '2025-01-01' + ORDER BY report_date DESC, worker_id ASC + `); + + let processedCount = 0; + const batchSize = 50; + + for (let i = 0; i < existingDates.length; i += batchSize) { + const batch = existingDates.slice(i, i + batchSize); + + for (const { report_date, worker_id } of batch) { + try { + await db.execute('CALL UpdateMonthlyWorkerStatus(?, ?)', [report_date, worker_id]); + processedCount++; + } catch (error) { + console.warn(`집계 처리 실패: ${report_date}, worker ${worker_id}:`, error.message); + } + } + + if (i % 100 === 0) { + console.log(`📊 집계 초기화 진행률: ${processedCount}/${existingDates.length}`); + } + } + + res.json({ + success: true, + message: '월별 집계 시스템이 성공적으로 설정되었습니다.', + data: { + tables_created: [ + 'monthly_worker_status', + 'monthly_summary' + ], + procedures_created: [ + 'UpdateMonthlyWorkerStatus', + 'UpdateDailySummary' + ], + triggers_created: [ + 'tr_daily_work_reports_insert', + 'tr_daily_work_reports_update', + 'tr_daily_work_reports_delete' + ], + initialized_records: processedCount, + total_dates: existingDates.length + } + }); + + } catch (error) { + console.error('❌ 월별 집계 시스템 설정 오류:', error); + res.status(500).json({ + success: false, + message: '월별 집계 시스템 설정 중 오류가 발생했습니다.', + error: error.message + }); + } +}); + +router.post('/setup-attendance-db', async (req, res) => { + try { + console.log('🚀 근태 관리 DB 설정 API 호출됨'); + + const db = await getDb(); + + // 1. 근로 유형 테이블 생성 + console.log('📋 근로 유형 테이블 생성 중...'); + await db.execute(` + CREATE TABLE IF NOT EXISTS work_attendance_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + type_code VARCHAR(20) NOT NULL UNIQUE COMMENT '근로 유형 코드', + type_name VARCHAR(50) NOT NULL COMMENT '근로 유형명', + description TEXT COMMENT '설명', + is_active BOOLEAN DEFAULT TRUE COMMENT '활성 상태', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + ) COMMENT='근로 유형 관리 테이블' + `); + + // 2. 휴가 유형 테이블 생성 + console.log('🏖️ 휴가 유형 테이블 생성 중...'); + await db.execute(` + CREATE TABLE IF NOT EXISTS vacation_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + type_code VARCHAR(20) NOT NULL UNIQUE COMMENT '휴가 유형 코드', + type_name VARCHAR(50) NOT NULL COMMENT '휴가 유형명', + hours_deduction DECIMAL(4,2) NOT NULL COMMENT '차감 시간', + description TEXT COMMENT '설명', + is_active BOOLEAN DEFAULT TRUE COMMENT '활성 상태', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + ) COMMENT='휴가 유형 관리 테이블' + `); + + // 3. 일일 근태 기록 테이블 생성 + console.log('📊 일일 근태 기록 테이블 생성 중...'); + await db.execute(` + CREATE TABLE IF NOT EXISTS daily_attendance_records ( + id INT PRIMARY KEY AUTO_INCREMENT, + record_date DATE NOT NULL COMMENT '기록 날짜', + worker_id INT NOT NULL COMMENT '작업자 ID', + work_attendance_type_id INT COMMENT '근로 유형 ID (정시, 연장, 부분, 휴가)', + total_work_hours DECIMAL(4,2) DEFAULT 0.00 COMMENT '총 작업 시간', + vacation_type_id INT COMMENT '휴가 유형 ID (연차, 반차 등)', + is_overtime_approved BOOLEAN DEFAULT FALSE COMMENT '연장근로 승인 여부', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + UNIQUE KEY unique_worker_date (worker_id, record_date), + FOREIGN KEY (worker_id) REFERENCES workers(worker_id) ON DELETE CASCADE, + FOREIGN KEY (work_attendance_type_id) REFERENCES work_attendance_types(id) ON DELETE SET NULL, + FOREIGN KEY (vacation_type_id) REFERENCES vacation_types(id) ON DELETE SET NULL + ) COMMENT='일일 근태 기록 테이블' + `); + + // 4. 작업자별 휴가 잔여 관리 테이블 생성 + console.log('👥 작업자별 휴가 잔여 관리 테이블 생성 중...'); + await db.execute(` + CREATE TABLE IF NOT EXISTS worker_vacation_balance ( + id INT PRIMARY KEY AUTO_INCREMENT, + worker_id INT NOT NULL UNIQUE COMMENT '작업자 ID', + annual_leave_total DECIMAL(5,2) DEFAULT 15.00 COMMENT '총 연차 일수', + annual_leave_used DECIMAL(5,2) DEFAULT 0.00 COMMENT '사용 연차 일수', + sick_leave_total DECIMAL(5,2) DEFAULT 10.00 COMMENT '총 병가 일수', + sick_leave_used DECIMAL(5,2) DEFAULT 0.00 COMMENT '사용 병가 일수', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + FOREIGN KEY (worker_id) REFERENCES workers(worker_id) ON DELETE CASCADE + ) COMMENT='작업자별 휴가 잔여 관리 테이블' + `); + + // 5. 기본 데이터 삽입 + console.log('📝 기본 데이터 삽입 중...'); + + // 근로 유형 기본 데이터 + await db.execute(` + INSERT IGNORE INTO work_attendance_types (type_code, type_name, description) VALUES + ('REGULAR', '정시근로', '8시간 정규 근무'), + ('OVERTIME', '연장근로', '8시간 초과 근무'), + ('PARTIAL', '부분근로', '8시간 미만 근무'), + ('VACATION', '휴가근로', '휴가와 함께하는 부분 근무') + `); + + // 휴가 유형 기본 데이터 + await db.execute(` + INSERT IGNORE INTO vacation_types (type_code, type_name, hours_deduction, description) VALUES + ('ANNUAL_FULL', '연차', 8.0, '하루 전체 연차'), + ('ANNUAL_HALF', '반차', 4.0, '반일 연차'), + ('ANNUAL_QUARTER', '반반차', 2.0, '1/4일 연차'), + ('SICK_FULL', '병가', 8.0, '하루 전체 병가'), + ('SICK_HALF', '반일병가', 4.0, '반일 병가') + `); + + res.json({ + success: true, + message: '근태 관리 DB 설정이 완료되었습니다.', + data: { + tables_created: [ + 'work_attendance_types', + 'vacation_types', + 'daily_attendance_records', + 'worker_vacation_balance' + ], + basic_data_inserted: true + } + }); + + } catch (error) { + console.error('❌ DB 설정 API 오류:', error); + res.status(500).json({ + success: false, + message: 'DB 설정 중 오류가 발생했습니다.', + error: error.message + }); + } +}); + +// 12시간 초과 상태 컬럼 추가 +router.post('/add-overtime-warning', async (req, res) => { + try { + const db = await getDb(); + + console.log('⚠️ 12시간 초과 상태 컬럼 추가 중...'); + + // 1. monthly_summary 테이블에 컬럼 추가 + try { + await db.execute(` + ALTER TABLE monthly_summary + ADD COLUMN overtime_warning_workers INT DEFAULT 0 COMMENT '확인필요(12시간초과) 작업자 수' AFTER error_workers + `); + console.log('✅ overtime_warning_workers 컬럼 추가 완료'); + } catch (error) { + if (error.code === 'ER_DUP_FIELDNAME') { + console.log('ℹ️ overtime_warning_workers 컬럼이 이미 존재합니다.'); + } else { + throw error; + } + } + + try { + await db.execute(` + ALTER TABLE monthly_summary + ADD COLUMN has_overtime_warning BOOLEAN DEFAULT FALSE COMMENT '확인필요 상태 있음' AFTER has_errors + `); + console.log('✅ has_overtime_warning 컬럼 추가 완료'); + } catch (error) { + if (error.code === 'ER_DUP_FIELDNAME') { + console.log('ℹ️ has_overtime_warning 컬럼이 이미 존재합니다.'); + } else { + throw error; + } + } + + // 2. UpdateDailySummary 프로시저 업데이트 + await db.execute(`DROP PROCEDURE IF EXISTS UpdateDailySummary`); + + await db.execute(` + CREATE PROCEDURE UpdateDailySummary( + IN p_date DATE + ) + BEGIN + DECLARE v_year INT; + DECLARE v_month INT; + + SET v_year = YEAR(p_date); + SET v_month = MONTH(p_date); + + INSERT INTO monthly_summary ( + year, month, date, + total_workers, working_workers, + incomplete_workers, partial_workers, complete_workers, + overtime_workers, vacation_workers, error_workers, overtime_warning_workers, + total_work_hours, total_work_count, total_error_count, + has_issues, has_errors, has_overtime_warning + ) + SELECT + v_year, v_month, p_date, + COUNT(*) as total_workers, + COUNT(CASE WHEN work_status != 'incomplete' THEN 1 END) as working_workers, + COUNT(CASE WHEN work_status = 'incomplete' THEN 1 END) as incomplete_workers, + COUNT(CASE WHEN work_status = 'partial' THEN 1 END) as partial_workers, + COUNT(CASE WHEN work_status IN ('complete', 'overtime', 'vacation-full', 'vacation-half', 'vacation-quarter', 'vacation-half-half') THEN 1 END) as complete_workers, + COUNT(CASE WHEN work_status = 'overtime' THEN 1 END) as overtime_workers, + COUNT(CASE WHEN work_status LIKE 'vacation%' THEN 1 END) as vacation_workers, + COUNT(CASE WHEN work_status = 'error' THEN 1 END) as error_workers, + COUNT(CASE WHEN work_status = 'overtime-warning' THEN 1 END) as overtime_warning_workers, + SUM(total_work_hours) as total_work_hours, + SUM(total_work_count) as total_work_count, + SUM(error_work_count) as total_error_count, + MAX(has_issues) as has_issues, + MAX(has_error) as has_errors, + MAX(CASE WHEN work_status = 'overtime-warning' THEN 1 ELSE 0 END) as has_overtime_warning + FROM monthly_worker_status + WHERE date = p_date + ON DUPLICATE KEY UPDATE + total_workers = VALUES(total_workers), + working_workers = VALUES(working_workers), + incomplete_workers = VALUES(incomplete_workers), + partial_workers = VALUES(partial_workers), + complete_workers = VALUES(complete_workers), + overtime_workers = VALUES(overtime_workers), + vacation_workers = VALUES(vacation_workers), + error_workers = VALUES(error_workers), + overtime_warning_workers = VALUES(overtime_warning_workers), + total_work_hours = VALUES(total_work_hours), + total_work_count = VALUES(total_work_count), + total_error_count = VALUES(total_error_count), + has_issues = VALUES(has_issues), + has_errors = VALUES(has_errors), + has_overtime_warning = VALUES(has_overtime_warning), + last_updated = CURRENT_TIMESTAMP; + END + `); + console.log('✅ UpdateDailySummary 프로시저 업데이트 완료'); + + res.json({ + success: true, + message: '12시간 초과 상태 컬럼 추가 완료', + columns_added: ['overtime_warning_workers', 'has_overtime_warning'], + procedure_updated: 'UpdateDailySummary' + }); + + } catch (error) { + console.error('❌ 12시간 초과 상태 설정 오류:', error); + res.status(500).json({ + success: false, + message: '12시간 초과 상태 설정 실패', + error: error.message + }); + } +}); + +// 기존 데이터를 월별 집계 테이블로 마이그레이션 +router.post('/migrate-existing-data', async (req, res) => { + try { + const db = await getDb(); + + console.log('🔄 기존 데이터 마이그레이션 시작...'); + + // 1. 기존 데이터 범위 확인 + const [dateRange] = await db.execute(` + SELECT + MIN(report_date) as min_date, + MAX(report_date) as max_date, + COUNT(*) as total_reports + FROM daily_work_reports + `); + + if (dateRange.length === 0 || !dateRange[0].min_date) { + return res.json({ + success: true, + message: '마이그레이션할 데이터가 없습니다.', + migrated_count: 0 + }); + } + + const { min_date, max_date, total_reports } = dateRange[0]; + console.log(`📊 데이터 범위: ${min_date} ~ ${max_date} (총 ${total_reports}건)`); + + // 2. 기존 monthly_worker_status, monthly_summary 데이터 삭제 + await db.execute('DELETE FROM monthly_summary'); + await db.execute('DELETE FROM monthly_worker_status'); + console.log('🗑️ 기존 집계 데이터 삭제 완료'); + + // 3. 날짜별로 작업자별 상태 재계산 + const [allDates] = await db.execute(` + SELECT DISTINCT report_date, worker_id + FROM daily_work_reports + WHERE report_date BETWEEN ? AND ? + ORDER BY report_date, worker_id + `, [min_date, max_date]); + + console.log(`🔄 ${allDates.length}개 날짜-작업자 조합 처리 중...`); + + let processedCount = 0; + for (const { report_date, worker_id } of allDates) { + try { + // UpdateMonthlyWorkerStatus 프로시저 호출 + await db.execute('CALL UpdateMonthlyWorkerStatus(?, ?)', [report_date, worker_id]); + processedCount++; + + if (processedCount % 50 === 0) { + console.log(`📈 진행률: ${processedCount}/${allDates.length} (${Math.round(processedCount/allDates.length*100)}%)`); + } + } catch (error) { + console.error(`❌ ${report_date} ${worker_id} 처리 오류:`, error.message); + } + } + + // 4. 결과 확인 + const [workerStatusCount] = await db.execute('SELECT COUNT(*) as count FROM monthly_worker_status'); + const [summaryCount] = await db.execute('SELECT COUNT(*) as count FROM monthly_summary'); + + console.log(`✅ 마이그레이션 완료:`); + console.log(` - monthly_worker_status: ${workerStatusCount[0].count}건`); + console.log(` - monthly_summary: ${summaryCount[0].count}건`); + + res.json({ + success: true, + message: '기존 데이터 마이그레이션 완료', + original_reports: total_reports, + processed_combinations: processedCount, + worker_status_records: workerStatusCount[0].count, + summary_records: summaryCount[0].count, + date_range: { + from: min_date, + to: max_date + } + }); + + } catch (error) { + console.error('❌ 데이터 마이그레이션 오류:', error); + res.status(500).json({ + success: false, + message: '데이터 마이그레이션 실패', + error: error.message + }); + } +}); + +// DB 상태 확인 +router.get('/check-data-status', async (req, res) => { + try { + const db = await getDb(); + + const [dailyReports] = await db.execute('SELECT COUNT(*) as count FROM daily_work_reports'); + const [workerStatus] = await db.execute('SELECT COUNT(*) as count FROM monthly_worker_status'); + const [monthlySummary] = await db.execute('SELECT COUNT(*) as count FROM monthly_summary'); + + // 최근 데이터 확인 + const [recentData] = await db.execute(` + SELECT + DATE(report_date) as date, + COUNT(*) as reports + FROM daily_work_reports + WHERE report_date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) + GROUP BY DATE(report_date) + ORDER BY report_date DESC + LIMIT 5 + `); + + const [recentSummary] = await db.execute(` + SELECT + date, + total_workers, + has_issues, + has_errors, + has_overtime_warning + FROM monthly_summary + WHERE date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) + ORDER BY date DESC + LIMIT 5 + `); + + res.json({ + success: true, + data: { + daily_work_reports: dailyReports[0].count, + monthly_worker_status: workerStatus[0].count, + monthly_summary: monthlySummary[0].count, + recent_daily_reports: recentData, + recent_summary: recentSummary, + migration_needed: workerStatus[0].count === 0 && dailyReports[0].count > 0 + } + }); + + } catch (error) { + console.error('❌ DB 상태 확인 오류:', error); + res.status(500).json({ + success: false, + message: 'DB 상태 확인 실패', + error: error.message + }); + } +}); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/systemRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/systemRoutes.js new file mode 100644 index 0000000..ff5cd22 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/systemRoutes.js @@ -0,0 +1,378 @@ +// 시스템 관리 라우트 +const express = require('express'); +const router = express.Router(); +const systemController = require('../controllers/systemController'); +const { requireAuth, requireRole } = require('../middlewares/auth'); + +// 모든 라우트에 인증 및 시스템 권한 확인 적용 +router.use(requireAuth); +router.use(requireRole('system')); + +// ===== 시스템 상태 관련 ===== + +/** + * GET /api/system/status + * 시스템 전체 상태 확인 + */ +router.get('/status', systemController.getSystemStatus); + +/** + * GET /api/system/db-status + * 데이터베이스 상태 확인 + */ +router.get('/db-status', systemController.getDatabaseStatus); + +/** + * GET /api/system/alerts + * 시스템 알림 조회 + */ +router.get('/alerts', systemController.getSystemAlerts); + +/** + * GET /api/system/recent-activities + * 최근 시스템 활동 조회 + */ +router.get('/recent-activities', systemController.getRecentActivities); + +// ===== 사용자 관리 관련 ===== + +/** + * GET /api/system/users/stats + * 사용자 통계 조회 + */ +router.get('/users/stats', systemController.getUserStats); + +/** + * GET /api/system/users + * 모든 사용자 목록 조회 + */ +router.get('/users', systemController.getAllUsers); + +/** + * POST /api/system/users + * 새 사용자 생성 + */ +router.post('/users', systemController.createUser); + +/** + * PUT /api/system/users/:id + * 사용자 정보 수정 + */ +router.put('/users/:id', systemController.updateUser); + +/** + * DELETE /api/system/users/:id + * 사용자 삭제 + */ +router.delete('/users/:id', systemController.deleteUser); + +/** + * POST /api/system/users/:id/reset-password + * 사용자 비밀번호 재설정 + */ +router.post('/users/:id/reset-password', systemController.resetUserPassword); + +// ===== 시스템 로그 관련 ===== + +/** + * GET /api/system/logs/login + * 로그인 로그 조회 + */ +router.get('/logs/login', async (req, res) => { + try { + const { getDb } = require('../dbPool'); + const db = await getDb(); + + const { page = 1, limit = 50, status, user_id, start_date, end_date } = req.query; + const offset = (page - 1) * limit; + + let whereClause = '1=1'; + const params = []; + + if (status) { + whereClause += ' AND ll.login_status = ?'; + params.push(status); + } + + if (user_id) { + whereClause += ' AND ll.user_id = ?'; + params.push(user_id); + } + + if (start_date) { + whereClause += ' AND ll.login_time >= ?'; + params.push(start_date); + } + + if (end_date) { + whereClause += ' AND ll.login_time <= ?'; + params.push(end_date); + } + + const [logs] = await db.query(` + SELECT + ll.log_id, + ll.user_id, + u.username, + u.name, + ll.login_time, + ll.ip_address, + ll.user_agent, + ll.login_status, + ll.failure_reason + FROM login_logs ll + LEFT JOIN Users u ON ll.user_id = u.user_id + WHERE ${whereClause} + ORDER BY ll.login_time DESC + LIMIT ? OFFSET ? + `, [...params, parseInt(limit), parseInt(offset)]); + + const [totalCount] = await db.query(` + SELECT COUNT(*) as count + FROM login_logs ll + WHERE ${whereClause} + `, params); + + res.json({ + success: true, + data: { + logs, + pagination: { + page: parseInt(page), + limit: parseInt(limit), + total: totalCount[0].count, + pages: Math.ceil(totalCount[0].count / limit) + } + } + }); + + } catch (error) { + console.error('로그인 로그 조회 오류:', error); + res.status(500).json({ + success: false, + error: '로그인 로그를 조회할 수 없습니다.' + }); + } +}); + +/** + * GET /api/system/logs/password-changes + * 비밀번호 변경 로그 조회 + */ +router.get('/logs/password-changes', async (req, res) => { + try { + const { getDb } = require('../dbPool'); + const db = await getDb(); + + const { page = 1, limit = 50 } = req.query; + const offset = (page - 1) * limit; + + const [logs] = await db.query(` + SELECT + pcl.log_id, + pcl.user_id, + u.username, + u.name, + pcl.changed_by_user_id, + admin.username as changed_by_username, + admin.name as changed_by_name, + pcl.changed_at, + pcl.change_type, + pcl.ip_address + FROM password_change_logs pcl + LEFT JOIN Users u ON pcl.user_id = u.user_id + LEFT JOIN Users admin ON pcl.changed_by_user_id = admin.user_id + ORDER BY pcl.changed_at DESC + LIMIT ? OFFSET ? + `, [parseInt(limit), parseInt(offset)]); + + const [totalCount] = await db.query('SELECT COUNT(*) as count FROM password_change_logs'); + + res.json({ + success: true, + data: { + logs, + pagination: { + page: parseInt(page), + limit: parseInt(limit), + total: totalCount[0].count, + pages: Math.ceil(totalCount[0].count / limit) + } + } + }); + + } catch (error) { + console.error('비밀번호 변경 로그 조회 오류:', error); + res.status(500).json({ + success: false, + error: '비밀번호 변경 로그를 조회할 수 없습니다.' + }); + } +}); + +/** + * POST /api/system/migrations/fix-work-type-id + * TBM 기반 작업보고서의 work_type_id를 task_id로 수정 + */ +router.post('/migrations/fix-work-type-id', async (req, res) => { + try { + const { getDb } = require('../dbPool'); + const db = await getDb(); + + console.log('🔄 TBM 기반 작업보고서 work_type_id 수정 시작...'); + + // 1. 수정 대상 확인 + const [checkResult] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id as current_work_type_id, + ta.task_id as correct_task_id, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + INNER JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + ORDER BY dwr.report_date DESC + `); + + if (checkResult.length === 0) { + return res.json({ + success: true, + message: '수정할 데이터가 없습니다.', + data: { affected_rows: 0, samples: [] } + }); + } + + // 2. 업데이트 실행 + const [updateResult] = await db.query(` + UPDATE daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + SET dwr.work_type_id = ta.task_id + WHERE dwr.tbm_assignment_id IS NOT NULL + AND ta.task_id IS NOT NULL + AND dwr.work_type_id != ta.task_id + `); + + console.log(`✅ 업데이트 완료: ${updateResult.affectedRows}개 레코드 수정됨`); + + // 3. 수정된 샘플 조회 + const [samples] = await db.query(` + SELECT + dwr.id, + dwr.work_type_id, + t.task_name, + wt.name as work_type_name, + w.worker_name, + dwr.report_date + FROM daily_work_reports dwr + INNER JOIN tbm_team_assignments ta ON dwr.tbm_assignment_id = ta.assignment_id + LEFT JOIN tasks t ON dwr.work_type_id = t.task_id + LEFT JOIN work_types wt ON t.work_type_id = wt.id + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + WHERE dwr.tbm_assignment_id IS NOT NULL + ORDER BY dwr.report_date DESC + LIMIT 10 + `); + + res.json({ + success: true, + message: `${updateResult.affectedRows}개 레코드가 수정되었습니다.`, + data: { + affected_rows: updateResult.affectedRows, + before_count: checkResult.length, + samples: samples.map(s => ({ + id: s.id, + worker: s.worker_name, + date: s.report_date, + task: s.task_name, + work_type: s.work_type_name + })) + } + }); + + } catch (error) { + console.error('마이그레이션 실패:', error); + res.status(500).json({ + success: false, + error: '마이그레이션 실패: ' + error.message + }); + } +}); + +/** + * GET /api/system/logs/activity + * 활동 로그 조회 (activity_logs 테이블이 있는 경우) + */ +router.get('/logs/activity', async (req, res) => { + try { + const { getDb } = require('../dbPool'); + const db = await getDb(); + + const { page = 1, limit = 50, activity_type, user_id } = req.query; + const offset = (page - 1) * limit; + + let whereClause = '1=1'; + const params = []; + + if (activity_type) { + whereClause += ' AND al.activity_type = ?'; + params.push(activity_type); + } + + if (user_id) { + whereClause += ' AND al.user_id = ?'; + params.push(user_id); + } + + const [logs] = await db.query(` + SELECT + al.log_id, + al.user_id, + u.username, + u.name, + al.activity_type, + al.table_name, + al.record_id, + al.action, + al.ip_address, + al.user_agent, + al.created_at + FROM activity_logs al + LEFT JOIN Users u ON al.user_id = u.user_id + WHERE ${whereClause} + ORDER BY al.created_at DESC + LIMIT ? OFFSET ? + `, [...params, parseInt(limit), parseInt(offset)]); + + const [totalCount] = await db.query(` + SELECT COUNT(*) as count + FROM activity_logs al + WHERE ${whereClause} + `, params); + + res.json({ + success: true, + data: { + logs, + pagination: { + page: parseInt(page), + limit: parseInt(limit), + total: totalCount[0].count, + pages: Math.ceil(totalCount[0].count / limit) + } + } + }); + + } catch (error) { + console.error('활동 로그 조회 오류:', error); + res.status(500).json({ + success: false, + error: '활동 로그를 조회할 수 없습니다.' + }); + } +}); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/taskRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/taskRoutes.js new file mode 100644 index 0000000..ba1d242 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/taskRoutes.js @@ -0,0 +1,27 @@ +// routes/taskRoutes.js +const express = require('express'); +const router = express.Router(); +const taskController = require('../controllers/taskController'); + +// CREATE 작업 +router.post('/', taskController.createTask); + +// READ ALL 작업 +router.get('/', taskController.getAllTasks); + +// READ ACTIVE 작업 +router.get('/active/list', taskController.getActiveTasks); + +// READ BY WORK TYPE (공정별) +router.get('/by-work-type/:work_type_id', taskController.getTasksByWorkType); + +// READ ONE 작업 +router.get('/:id', taskController.getTaskById); + +// UPDATE 작업 +router.put('/:id', taskController.updateTask); + +// DELETE 작업 +router.delete('/:id', taskController.deleteTask); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/tbmRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/tbmRoutes.js new file mode 100644 index 0000000..5e22a7a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/tbmRoutes.js @@ -0,0 +1,103 @@ +// routes/tbmRoutes.js - TBM 시스템 라우트 +const express = require('express'); +const router = express.Router(); +const TbmController = require('../controllers/tbmController'); +const { requireAuth } = require('../middlewares/auth'); + +// ==================== TBM 세션 관련 ==================== + +// TBM 세션 생성 +router.post('/sessions', requireAuth, TbmController.createSession); + +// 작업보고서가 작성되지 않은 TBM 팀 배정 조회 (구체적인 경로이므로 먼저 정의) +router.get('/sessions/incomplete-reports', requireAuth, TbmController.getIncompleteWorkReports); + +// 특정 날짜의 TBM 세션 목록 조회 +router.get('/sessions/date/:date', requireAuth, TbmController.getSessionsByDate); + +// TBM 세션 상세 조회 +router.get('/sessions/:sessionId', requireAuth, TbmController.getSessionById); + +// TBM 세션 수정 +router.put('/sessions/:sessionId', requireAuth, TbmController.updateSession); + +// TBM 세션 완료 처리 +router.post('/sessions/:sessionId/complete', requireAuth, TbmController.completeSession); + +// ==================== 팀 구성 관련 ==================== + +// 팀원 추가 (단일) +router.post('/sessions/:sessionId/team', requireAuth, TbmController.addTeamMember); + +// 팀 구성 일괄 추가 +router.post('/sessions/:sessionId/team/batch', requireAuth, TbmController.addTeamMembers); + +// TBM 세션의 팀 구성 조회 +router.get('/sessions/:sessionId/team', requireAuth, TbmController.getTeamMembers); + +// 팀원 전체 삭제 (수정 시 사용) - 더 구체적인 경로이므로 먼저 정의 +router.delete('/sessions/:sessionId/team/clear', requireAuth, TbmController.clearAllTeamMembers); + +// 팀원 제거 +router.delete('/sessions/:sessionId/team/:workerId', requireAuth, TbmController.removeTeamMember); + +// ==================== 안전 체크리스트 관련 ==================== + +// 모든 안전 체크 항목 조회 +router.get('/safety-checks', requireAuth, TbmController.getAllSafetyChecks); + +// 안전 체크 항목 생성 (관리자용) +router.post('/safety-checks', requireAuth, TbmController.createSafetyCheck); + +// 안전 체크 항목 수정 (관리자용) +router.put('/safety-checks/:checkId', requireAuth, TbmController.updateSafetyCheck); + +// 안전 체크 항목 삭제 (관리자용) +router.delete('/safety-checks/:checkId', requireAuth, TbmController.deleteSafetyCheck); + +// TBM 세션의 안전 체크 기록 조회 +router.get('/sessions/:sessionId/safety', requireAuth, TbmController.getSafetyRecords); + +// 안전 체크 일괄 저장 +router.post('/sessions/:sessionId/safety', requireAuth, TbmController.saveSafetyRecords); + +// 필터링된 안전 체크리스트 조회 (기본 + 날씨 + 작업별) +router.get('/sessions/:sessionId/safety-checks/filtered', requireAuth, TbmController.getFilteredSafetyChecks); + +// ==================== 날씨 관련 ==================== + +// 현재 날씨 조회 +router.get('/weather/current', requireAuth, TbmController.getCurrentWeather); + +// 날씨 조건 목록 조회 +router.get('/weather/conditions', requireAuth, TbmController.getWeatherConditions); + +// 세션 날씨 정보 조회 +router.get('/sessions/:sessionId/weather', requireAuth, TbmController.getSessionWeather); + +// 세션 날씨 정보 저장 +router.post('/sessions/:sessionId/weather', requireAuth, TbmController.saveSessionWeather); + +// ==================== 작업 인계 관련 ==================== + +// 작업 인계 생성 +router.post('/handovers', requireAuth, TbmController.createHandover); + +// 작업 인계 확인 +router.post('/handovers/:handoverId/confirm', requireAuth, TbmController.confirmHandover); + +// 특정 날짜의 작업 인계 목록 조회 +router.get('/handovers/date/:date', requireAuth, TbmController.getHandoversByDate); + +// 나에게 온 미확인 인계 건 조회 +router.get('/handovers/pending', requireAuth, TbmController.getMyPendingHandovers); + +// ==================== 통계 및 리포트 ==================== + +// TBM 통계 조회 +router.get('/statistics/tbm', requireAuth, TbmController.getTbmStatistics); + +// 리더별 TBM 진행 현황 조회 +router.get('/statistics/leaders', requireAuth, TbmController.getLeaderStatistics); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/toolsRoute.js b/deploy/tkfb-package/api.hyungi.net/routes/toolsRoute.js new file mode 100644 index 0000000..c1bdcd5 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/toolsRoute.js @@ -0,0 +1,16 @@ +// routes/toolsRoute.js +const express = require('express'); +const router = express.Router(); +const controller = require('../controllers/toolsController'); +const { requireAuth, requireMinLevel } = require('../middlewares/auth'); + +// 읽기 작업: 인증된 사용자 +router.get('/', requireAuth, controller.getAll); +router.get('/:id', requireAuth, controller.getById); + +// 쓰기 작업: group_leader 이상 권한 필요 +router.post('/', requireAuth, requireMinLevel('group_leader'), controller.create); +router.put('/:id', requireAuth, requireMinLevel('group_leader'), controller.update); +router.delete('/:id', requireAuth, requireMinLevel('admin'), controller.delete); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/uploadBgRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/uploadBgRoutes.js new file mode 100644 index 0000000..dd807a9 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/uploadBgRoutes.js @@ -0,0 +1,52 @@ +// ✅ routes/uploadBgRoutes.js (배경 이미지 전용 업로드 라우터 - 보안 강화) +const express = require('express'); +const router = express.Router(); +const multer = require('multer'); +const path = require('path'); +const { requireAuth, requireMinLevel } = require('../middlewares/auth'); +const { createFileFilter, validateUploadedFile } = require('../utils/fileUploadSecurity'); + +const storage = multer.diskStorage({ + destination: (req, file, cb) => { + cb(null, path.join(__dirname, '../public/img')); + }, + filename: (req, file, cb) => { + cb(null, 'login-bg.jpeg'); // 고정된 파일명으로 덮어쓰기 + } +}); + +// 보안 강화된 파일 필터 (이미지만 허용) +const imageFileFilter = createFileFilter({ + allowedExtensions: ['.jpg', '.jpeg', '.png', '.gif', '.webp'], + allowedMimes: ['image/jpeg', 'image/png', 'image/gif', 'image/webp'] +}); + +const upload = multer({ + storage, + fileFilter: imageFileFilter, + limits: { + fileSize: 10 * 1024 * 1024, // 10MB 제한 (배경 이미지는 크기가 클 수 있음) + files: 1 + } +}); + +// 관리자 권한 필요 +router.post('/upload-bg', requireAuth, requireMinLevel('admin'), upload.single('image'), async (req, res) => { + if (!req.file) { + return res.status(400).json({ success: false, message: '파일이 없습니다.' }); + } + + // 업로드된 파일의 실제 내용 검증 (Magic number) + const validation = await validateUploadedFile(req.file.path, req.file.mimetype); + if (!validation.valid) { + return res.status(400).json({ + success: false, + message: validation.message, + code: 'INVALID_FILE_TYPE' + }); + } + + res.json({ success: true, path: '/img/login-bg.jpeg' }); +}); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/uploadRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/uploadRoutes.js new file mode 100644 index 0000000..5166ca5 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/uploadRoutes.js @@ -0,0 +1,10 @@ +// ✅ routes/uploadRoutes.js (기존 업로드 라우터) +const express = require('express'); +const router = express.Router(); +const uploadController = require('../controllers/uploadController'); + +// 기존 업로드 등록/조회 +router.post('/', uploadController.createUpload); +router.get('/', uploadController.getUploads); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/userRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/userRoutes.js new file mode 100644 index 0000000..9de69f9 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/userRoutes.js @@ -0,0 +1,167 @@ +/** + * 사용자 관리 라우터 + * + * 사용자 CRUD 및 상태 관리를 위한 API 라우트 정의 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const express = require('express'); +const router = express.Router(); +const userController = require('../controllers/userController'); +const { verifyToken } = require('../middlewares/authMiddleware'); +const logger = require('../utils/logger'); + +/** + * 모든 라우트에 인증 미들웨어 적용 + */ +router.use(verifyToken); + +/** + * 관리자 권한 확인 미들웨어 + * role 또는 access_level로 관리자 확인 + */ +const adminOnly = (req, res, next) => { + const userRole = req.user?.role?.toLowerCase(); + const accessLevel = req.user?.access_level?.toLowerCase(); + + // role 기반 확인 + const isAdminByRole = userRole === 'admin' || userRole === 'system' || userRole === 'system admin'; + // access_level 기반 확인 (role이 없는 경우 대비) + const isAdminByAccessLevel = accessLevel === 'admin' || accessLevel === 'system'; + + if (req.user && (isAdminByRole || isAdminByAccessLevel)) { + next(); + } else { + logger.warn('관리자 권한 없는 접근 시도', { + userId: req.user?.user_id, + username: req.user?.username, + role: req.user?.role, + accessLevel: req.user?.access_level, + url: req.originalUrl + }); + return res.status(403).json({ + success: false, + message: '관리자 권한이 필요합니다' + }); + } +}; + +// ========== 개인 정보 조회 API (관리자 권한 불필요) ========== +// 내 정보 조회 +router.get('/me', userController.getMyInfo || ((req, res) => res.json({ success: true, data: req.user }))); + +// 내 출근 기록 조회 +router.get('/me/attendance-records', async (req, res) => { + try { + const { year, month } = req.query; + const AttendanceModel = require('../models/attendanceModel'); + const startDate = `${year}-${String(month).padStart(2, '0')}-01`; + const endDate = `${year}-${String(month).padStart(2, '0')}-31`; + const records = await AttendanceModel.getDailyRecords(startDate, endDate, req.user.worker_id); + res.json({ success: true, data: records }); + } catch (error) { + res.status(500).json({ success: false, error: error.message }); + } +}); + +// 내 연차 잔액 조회 +router.get('/me/vacation-balance', async (req, res) => { + try { + const AttendanceModel = require('../models/attendanceModel'); + const year = req.query.year || new Date().getFullYear(); + const balance = await AttendanceModel.getWorkerVacationBalance(req.user.worker_id, year); + res.json({ success: true, data: balance }); + } catch (error) { + res.status(500).json({ success: false, error: error.message }); + } +}); + +// 내 작업 보고서 조회 +router.get('/me/work-reports', async (req, res) => { + try { + const { startDate, endDate } = req.query; + const db = require('../config/database'); + const reports = await db.query( + 'SELECT * FROM daily_work_reports WHERE worker_id = ? AND report_date BETWEEN ? AND ? ORDER BY report_date DESC', + [req.user.worker_id, startDate, endDate] + ); + res.json({ success: true, data: reports }); + } catch (error) { + res.status(500).json({ success: false, error: error.message }); + } +}); + +// 내 월별 통계 +router.get('/me/monthly-stats', async (req, res) => { + try { + const { year, month } = req.query; + const { getDb } = require('../dbPool'); + const db = await getDb(); + const [stats] = await db.execute( + `SELECT + SUM(total_work_hours) as month_hours, + COUNT(DISTINCT record_date) as work_days + FROM daily_attendance_records + WHERE worker_id = ? AND YEAR(record_date) = ? AND MONTH(record_date) = ?`, + [req.user.worker_id, year, month] + ); + res.json({ success: true, data: stats[0] || { month_hours: 0, work_days: 0 } }); + } catch (error) { + res.status(500).json({ success: false, error: error.message }); + } +}); + +// ========== 자신의 페이지 권한 조회 (Admin 불필요) ========== +// 📄 사용자 페이지 접근 권한 조회 (자신 또는 Admin) +router.get('/:id/page-access', (req, res, next) => { + const requestedId = parseInt(req.params.id); + const currentUserId = req.user?.user_id; + const userRole = req.user?.role?.toLowerCase(); + + // 자신의 권한 조회이거나 Admin인 경우 허용 + if (requestedId === currentUserId || userRole === 'admin' || userRole === 'system admin') { + return userController.getUserPageAccess(req, res, next); + } + + return res.status(403).json({ + success: false, + message: '자신의 페이지 권한만 조회할 수 있습니다' + }); +}); + +// ========== 관리자 전용 API ========== +/** + * 모든 라우트에 관리자 권한 적용 + */ +router.use(adminOnly); + +// 📋 사용자 목록 조회 +router.get('/', userController.getAllUsers); + +// 👤 특정 사용자 조회 +router.get('/:id', userController.getUserById); + +// ➕ 새 사용자 생성 +router.post('/', userController.createUser); + +// ✏️ 사용자 정보 수정 +router.put('/:id', userController.updateUser); + +// 🔄 사용자 상태 변경 +router.put('/:id/status', userController.updateUserStatus); + +// 🔑 사용자 비밀번호 초기화 (000000) +router.post('/:id/reset-password', userController.resetUserPassword); + +// 🗑️ 사용자 비활성화 (Soft Delete) +router.delete('/:id', userController.deleteUser); + +// 💀 사용자 영구 삭제 (Hard Delete) +router.delete('/:id/permanent', userController.permanentDeleteUser); + +// 🔐 사용자 페이지 접근 권한 업데이트 (Admin만) +router.put('/:id/page-access', userController.updateUserPageAccess); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/vacationBalanceRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/vacationBalanceRoutes.js new file mode 100644 index 0000000..e44872f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/vacationBalanceRoutes.js @@ -0,0 +1,34 @@ +/** + * vacationBalanceRoutes.js + * 휴가 잔액 관련 라우트 + */ + +const express = require('express'); +const router = express.Router(); +const vacationBalanceController = require('../controllers/vacationBalanceController'); + +// 모든 작업자의 휴가 잔액 조회 (특정 연도) +router.get('/year/:year', vacationBalanceController.getAllByYear); + +// 특정 작업자의 휴가 잔액 조회 (특정 연도) +router.get('/worker/:workerId/year/:year', vacationBalanceController.getByWorkerAndYear); + +// 작업자의 사용 가능한 휴가 일수 조회 +router.get('/worker/:workerId/year/:year/available', vacationBalanceController.getAvailableDays); + +// 근속년수 기반 연차 자동 계산 및 생성 (관리자만) +router.post('/auto-calculate', vacationBalanceController.autoCalculateAndCreate); + +// 휴가 잔액 생성 (관리자만) +router.post('/', vacationBalanceController.createBalance); + +// 휴가 잔액 일괄 저장 (upsert) +router.post('/bulk-upsert', vacationBalanceController.bulkUpsert); + +// 휴가 잔액 수정 (관리자만) +router.put('/:id', vacationBalanceController.updateBalance); + +// 휴가 잔액 삭제 (관리자만) +router.delete('/:id', vacationBalanceController.deleteBalance); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/vacationRequestRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/vacationRequestRoutes.js new file mode 100644 index 0000000..7ca3212 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/vacationRequestRoutes.js @@ -0,0 +1,34 @@ +/** + * vacationRequestRoutes.js + * 휴가 신청 관련 라우트 + */ + +const express = require('express'); +const router = express.Router(); +const vacationRequestController = require('../controllers/vacationRequestController'); + +// 휴가 신청 생성 +router.post('/', vacationRequestController.createRequest); + +// 휴가 신청 목록 조회 +router.get('/', vacationRequestController.getAllRequests); + +// 대기 중인 휴가 신청 목록 (관리자용) +router.get('/pending', vacationRequestController.getPendingRequests); + +// 특정 휴가 신청 조회 +router.get('/:id', vacationRequestController.getRequestById); + +// 휴가 신청 수정 +router.put('/:id', vacationRequestController.updateRequest); + +// 휴가 신청 삭제 +router.delete('/:id', vacationRequestController.deleteRequest); + +// 휴가 신청 승인 +router.patch('/:id/approve', vacationRequestController.approveRequest); + +// 휴가 신청 거부 +router.patch('/:id/reject', vacationRequestController.rejectRequest); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/vacationTypeRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/vacationTypeRoutes.js new file mode 100644 index 0000000..b39673a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/vacationTypeRoutes.js @@ -0,0 +1,31 @@ +/** + * vacationTypeRoutes.js + * 휴가 유형 관련 라우트 + */ + +const express = require('express'); +const router = express.Router(); +const vacationTypeController = require('../controllers/vacationTypeController'); + +// 모든 활성 휴가 유형 조회 +router.get('/', vacationTypeController.getAllTypes); + +// 시스템 기본 휴가 유형 조회 +router.get('/system', vacationTypeController.getSystemTypes); + +// 특별 휴가 유형 조회 +router.get('/special', vacationTypeController.getSpecialTypes); + +// 휴가 유형 우선순위 일괄 업데이트 (관리자만) +router.put('/priorities', vacationTypeController.updatePriorities); + +// 특별 휴가 유형 생성 (관리자만) +router.post('/', vacationTypeController.createType); + +// 휴가 유형 수정 (관리자만) +router.put('/:id', vacationTypeController.updateType); + +// 특별 휴가 유형 삭제 (관리자만, 시스템 기본 휴가는 삭제 불가) +router.delete('/:id', vacationTypeController.deleteType); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/visitRequestRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/visitRequestRoutes.js new file mode 100644 index 0000000..5d48d80 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/visitRequestRoutes.js @@ -0,0 +1,66 @@ +const express = require('express'); +const router = express.Router(); +const visitRequestController = require('../controllers/visitRequestController'); +const { verifyToken } = require('../middlewares/authMiddleware'); + +// 모든 라우트에 인증 미들웨어 적용 +router.use(verifyToken); + +// ==================== 출입 신청 관리 ==================== + +// 출입 신청 생성 +router.post('/requests', visitRequestController.createVisitRequest); + +// 출입 신청 목록 조회 (필터: status, visit_date, start_date, end_date, requester_id, category_id) +router.get('/requests', visitRequestController.getAllVisitRequests); + +// 출입 신청 상세 조회 +router.get('/requests/:id', visitRequestController.getVisitRequestById); + +// 출입 신청 수정 +router.put('/requests/:id', visitRequestController.updateVisitRequest); + +// 출입 신청 삭제 +router.delete('/requests/:id', visitRequestController.deleteVisitRequest); + +// 출입 신청 승인 +router.put('/requests/:id/approve', visitRequestController.approveVisitRequest); + +// 출입 신청 반려 +router.put('/requests/:id/reject', visitRequestController.rejectVisitRequest); + +// ==================== 방문 목적 관리 ==================== + +// 모든 방문 목적 조회 +router.get('/purposes', visitRequestController.getAllVisitPurposes); + +// 활성 방문 목적만 조회 +router.get('/purposes/active', visitRequestController.getActiveVisitPurposes); + +// 방문 목적 추가 +router.post('/purposes', visitRequestController.createVisitPurpose); + +// 방문 목적 수정 +router.put('/purposes/:id', visitRequestController.updateVisitPurpose); + +// 방문 목적 삭제 +router.delete('/purposes/:id', visitRequestController.deleteVisitPurpose); + +// ==================== 안전교육 기록 관리 ==================== + +// 안전교육 기록 생성 +router.post('/training', visitRequestController.createTrainingRecord); + +// 안전교육 기록 목록 조회 (필터: training_date, start_date, end_date, trainer_id) +router.get('/training', visitRequestController.getTrainingRecords); + +// 특정 출입 신청의 안전교육 기록 조회 +router.get('/training/request/:requestId', visitRequestController.getTrainingRecordByRequestId); + +// 안전교육 기록 수정 +router.put('/training/:id', visitRequestController.updateTrainingRecord); + +// 안전교육 완료 (서명 포함) +router.post('/training/:id/complete', visitRequestController.completeTraining); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/workAnalysis.js b/deploy/tkfb-package/api.hyungi.net/routes/workAnalysis.js new file mode 100644 index 0000000..3d6c901 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/workAnalysis.js @@ -0,0 +1,74 @@ +// routes/workAnalysis.js + +const express = require('express'); +const router = express.Router(); +const workAnalysisController = require('../controllers/workAnalysisController'); + +// 🔒 분석 기능은 admin 또는 system 권한만 접근 가능 +const requireAnalysisAccess = (req, res, next) => { + if (!req.user) { + return res.status(401).json({ error: '인증이 필요합니다.' }); + } + + const allowedLevels = ['admin', 'system']; + if (!allowedLevels.includes(req.user.access_level)) { + return res.status(403).json({ + error: '분석 기능 접근 권한이 없습니다. 관리자 권한이 필요합니다.', + required: 'admin 또는 system', + current: req.user.access_level + }); + } + + console.log(`🔓 분석 기능 접근 허용: ${req.user.username} (${req.user.access_level})`); + next(); +}; + +// 임시로 권한 체크 건너뛰기 (테스트용) +const skipAuth = (req, res, next) => { + console.log('⚠️ 임시로 권한 체크 건너뛰기'); + next(); +}; + +// 기본 통계 조회 - 임시로 권한 체크 비활성화 +router.get('/stats', skipAuth, workAnalysisController.getStats); + +// 일별 작업시간 추이 - 임시로 권한 체크 비활성화 +router.get('/daily-trend', skipAuth, workAnalysisController.getDailyTrend); + +// 작업자별 통계 - 임시로 권한 체크 비활성화 +router.get('/worker-stats', skipAuth, workAnalysisController.getWorkerStats); + +// 프로젝트별 통계 - 임시로 권한 체크 비활성화 +router.get('/project-stats', skipAuth, workAnalysisController.getProjectStats); + +// 작업유형별 통계 - 임시로 권한 체크 비활성화 +router.get('/worktype-stats', skipAuth, workAnalysisController.getWorkTypeStats); + +// 최근 작업 현황 - 임시로 권한 체크 비활성화 +router.get('/recent-work', skipAuth, workAnalysisController.getRecentWork); + +// 요일별 패턴 분석 +router.get('/weekday-pattern', requireAnalysisAccess, workAnalysisController.getWeekdayPattern); + +// 에러 분석 +router.get('/error-analysis', requireAnalysisAccess, workAnalysisController.getErrorAnalysis); + +// 월별 비교 분석 +router.get('/monthly-comparison', requireAnalysisAccess, workAnalysisController.getMonthlyComparison); + +// 작업자별 전문분야 분석 +router.get('/worker-specialization', requireAnalysisAccess, workAnalysisController.getWorkerSpecialization); + +// 대시보드용 종합 데이터 (한 번에 여러 데이터 조회) +router.get('/dashboard', requireAnalysisAccess, workAnalysisController.getDashboardData); + +// 헬스체크 - 인증 없이 접근 가능 +router.get('/health', (req, res) => { + res.status(200).json({ + success: true, + message: 'Work Analysis API is running', + timestamp: new Date().toISOString() + }); +}); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/workAnalysisRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/workAnalysisRoutes.js new file mode 100644 index 0000000..bd3e8ed --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/workAnalysisRoutes.js @@ -0,0 +1,65 @@ +// routes/workAnalysisRoutes.js +const express = require('express'); +const router = express.Router(); +const workAnalysisController = require('../controllers/workAnalysisController'); + +// 🏠 대시보드용 종합 데이터 (가장 많이 사용될 것 같아서 맨 위에) +router.get('/dashboard', workAnalysisController.getDashboardData); + +// 📊 기본 통계 +router.get('/stats', workAnalysisController.getStats); + +// 📈 일별 작업시간 추이 +router.get('/daily-trend', workAnalysisController.getDailyTrend); + +// 👥 작업자별 통계 +router.get('/worker-stats', workAnalysisController.getWorkerStats); + +// 📋 프로젝트별 통계 +router.get('/project-stats', workAnalysisController.getProjectStats); + +// 🔧 작업유형별 통계 +router.get('/work-type-stats', workAnalysisController.getWorkTypeStats); + +// 🕐 최근 작업 현황 +router.get('/recent-work', workAnalysisController.getRecentWork); + +// 📅 요일별 패턴 분석 +router.get('/weekday-pattern', workAnalysisController.getWeekdayPattern); + +// ❌ 에러 분석 +router.get('/error-analysis', workAnalysisController.getErrorAnalysis); + +// 📊 월별 비교 분석 +router.get('/monthly-comparison', workAnalysisController.getMonthlyComparison); + +// 🎯 작업자별 전문분야 분석 +router.get('/worker-specialization', workAnalysisController.getWorkerSpecialization); + +// 🏗️ 프로젝트별-작업별 시간 분석 (총시간, 정규시간, 에러시간) +router.get('/project-worktype-analysis', workAnalysisController.getProjectWorkTypeAnalysis); + +// 📋 헬스체크 및 API 정보 +router.get('/health', (req, res) => { + res.json({ + success: true, + message: '작업 분석 API가 정상 작동 중입니다.', + endpoints: [ + 'GET /work-analysis/dashboard - 대시보드 종합 데이터', + 'GET /work-analysis/stats - 기본 통계', + 'GET /work-analysis/daily-trend - 일별 추이', + 'GET /work-analysis/worker-stats - 작업자별 통계', + 'GET /work-analysis/project-stats - 프로젝트별 통계', + 'GET /work-analysis/work-type-stats - 작업유형별 통계', + 'GET /work-analysis/recent-work - 최근 작업 현황', + 'GET /work-analysis/weekday-pattern - 요일별 패턴', + 'GET /work-analysis/error-analysis - 에러 분석', + 'GET /work-analysis/monthly-comparison - 월별 비교', + 'GET /work-analysis/worker-specialization - 작업자 전문분야', + 'GET /work-analysis/project-worktype-analysis - 프로젝트별-작업별 시간 분석' + ], + timestamp: new Date().toISOString() + }); +}); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/workIssueRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/workIssueRoutes.js new file mode 100644 index 0000000..31f5fda --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/workIssueRoutes.js @@ -0,0 +1,92 @@ +/** + * 작업 중 문제 신고 라우터 + */ + +const express = require('express'); +const router = express.Router(); +const workIssueController = require('../controllers/workIssueController'); +const { requireMinLevel } = require('../middlewares/auth'); + +// ==================== 카테고리 관리 ==================== + +// 모든 카테고리 조회 +router.get('/categories', workIssueController.getAllCategories); + +// 타입별 카테고리 조회 (nonconformity/safety) +router.get('/categories/type/:type', workIssueController.getCategoriesByType); + +// 카테고리 생성 (admin 이상) +router.post('/categories', requireMinLevel('admin'), workIssueController.createCategory); + +// 카테고리 수정 (admin 이상) +router.put('/categories/:id', requireMinLevel('admin'), workIssueController.updateCategory); + +// 카테고리 삭제 (admin 이상) +router.delete('/categories/:id', requireMinLevel('admin'), workIssueController.deleteCategory); + +// ==================== 사전 정의 항목 관리 ==================== + +// 모든 항목 조회 +router.get('/items', workIssueController.getAllItems); + +// 카테고리별 항목 조회 +router.get('/items/category/:categoryId', workIssueController.getItemsByCategory); + +// 항목 생성 (admin 이상) +router.post('/items', requireMinLevel('admin'), workIssueController.createItem); + +// 항목 수정 (admin 이상) +router.put('/items/:id', requireMinLevel('admin'), workIssueController.updateItem); + +// 항목 삭제 (admin 이상) +router.delete('/items/:id', requireMinLevel('admin'), workIssueController.deleteItem); + +// ==================== 통계 ==================== + +// 통계 요약 (support_team 이상) +router.get('/stats/summary', requireMinLevel('support_team'), workIssueController.getStatsSummary); + +// 카테고리별 통계 (support_team 이상) +router.get('/stats/by-category', requireMinLevel('support_team'), workIssueController.getStatsByCategory); + +// 작업장별 통계 (support_team 이상) +router.get('/stats/by-workplace', requireMinLevel('support_team'), workIssueController.getStatsByWorkplace); + +// ==================== 문제 신고 관리 ==================== + +// 신고 목록 조회 +router.get('/', workIssueController.getAllReports); + +// 신고 생성 +router.post('/', workIssueController.createReport); + +// 신고 상세 조회 +router.get('/:id', workIssueController.getReportById); + +// 신고 수정 +router.put('/:id', workIssueController.updateReport); + +// 신고 삭제 +router.delete('/:id', workIssueController.deleteReport); + +// ==================== 상태 관리 ==================== + +// 신고 접수 (support_team 이상) +router.put('/:id/receive', requireMinLevel('support_team'), workIssueController.receiveReport); + +// 담당자 배정 (support_team 이상) +router.put('/:id/assign', requireMinLevel('support_team'), workIssueController.assignReport); + +// 처리 시작 +router.put('/:id/start', workIssueController.startProcessing); + +// 처리 완료 +router.put('/:id/complete', workIssueController.completeReport); + +// 신고 종료 (admin 이상) +router.put('/:id/close', requireMinLevel('admin'), workIssueController.closeReport); + +// 상태 변경 이력 조회 +router.get('/:id/logs', workIssueController.getStatusLogs); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/workReportAnalysisRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/workReportAnalysisRoutes.js new file mode 100644 index 0000000..6e53a64 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/workReportAnalysisRoutes.js @@ -0,0 +1,23 @@ +// routes/workReportAnalysisRoutes.js - 데일리 워크 레포트 분석 라우트 +const express = require('express'); +const router = express.Router(); +const workReportAnalysisController = require('../controllers/workReportAnalysisController'); +const { requireAuth, requireRole } = require('../middlewares/auth'); + +// 🔒 모든 분석 라우트에 인증 + Admin 권한 필요 +router.use(requireAuth); +router.use(requireRole('admin', 'system')); + +// 📋 분석용 필터 데이터 조회 (프로젝트, 작업자, 작업유형 목록) +router.get('/filters', workReportAnalysisController.getAnalysisFilters); + +// 📊 기간별 종합 분석 +router.get('/period', workReportAnalysisController.getAnalyticsByPeriod); + +// 📈 프로젝트별 상세 분석 +router.get('/project', workReportAnalysisController.getProjectAnalysis); + +// 👤 작업자별 상세 분석 +router.get('/worker', workReportAnalysisController.getWorkerAnalysis); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/routes/workReportRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/workReportRoutes.js new file mode 100644 index 0000000..a320ae9 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/workReportRoutes.js @@ -0,0 +1,39 @@ +const express = require('express'); +const router = express.Router(); +const workReportController = require('../controllers/workReportController'); + +// CREATE +router.post('/', workReportController.createWorkReport); + +// READ BY DATE +router.get('/date/:date', workReportController.getWorkReportsByDate); + +// ✅ summary 라우트는 반드시 아래보다 위에 둬야 작동합니다 +router.get('/summary', workReportController.getSummary); + +// READ IN RANGE +router.get('/', workReportController.getWorkReportsInRange); + +// READ ONE (항상 가장 마지막) +router.get('/:id', workReportController.getWorkReportById); + +// UPDATE +router.put('/:id', workReportController.updateWorkReport); + +// DELETE +router.delete('/:id', workReportController.removeWorkReport); + +// ========== 부적합 원인 관리 ========== +// 작업 보고서의 부적합 원인 목록 조회 +router.get('/:reportId/defects', workReportController.getReportDefects); + +// 부적합 원인 저장 (전체 교체) +router.put('/:reportId/defects', workReportController.saveReportDefects); + +// 부적합 원인 추가 (단일) +router.post('/:reportId/defects', workReportController.addReportDefect); + +// 부적합 원인 삭제 +router.delete('/defects/:defectId', workReportController.removeReportDefect); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/workerRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/workerRoutes.js new file mode 100644 index 0000000..15d5f0e --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/workerRoutes.js @@ -0,0 +1,228 @@ +/** + * @swagger + * tags: + * name: Workers + * description: 작업자 관리 API + */ + +const express = require('express'); +const router = express.Router(); +const workerController = require('../controllers/workerController'); + +/** + * @swagger + * /api/workers: + * post: + * tags: [Workers] + * summary: 작업자 생성 + * description: 새로운 작업자를 생성합니다. + * security: + * - bearerAuth: [] + * requestBody: + * required: true + * content: + * application/json: + * schema: + * type: object + * required: + * - worker_name + * properties: + * worker_name: + * type: string + * example: "김철수" + * position: + * type: string + * example: "용접공" + * department: + * type: string + * example: "생산부" + * phone: + * type: string + * example: "010-1234-5678" + * email: + * type: string + * format: email + * example: "worker@technicalkorea.com" + * responses: + * 201: + * description: 작업자 생성 성공 + * content: + * application/json: + * schema: + * $ref: '#/components/schemas/SuccessResponse' + * 400: + * description: 잘못된 요청 + * 401: + * description: 인증 필요 + * 500: + * description: 서버 오류 + * get: + * tags: [Workers] + * summary: 전체 작업자 조회 + * description: 모든 작업자 목록을 조회합니다. + * security: + * - bearerAuth: [] + * responses: + * 200: + * description: 작업자 목록 조회 성공 + * content: + * application/json: + * schema: + * type: object + * properties: + * success: + * type: boolean + * example: true + * message: + * type: string + * example: "작업자 목록 조회 성공" + * data: + * type: array + * items: + * $ref: '#/components/schemas/Worker' + * meta: + * type: object + * properties: + * count: + * type: integer + * example: 10 + * 401: + * description: 인증 필요 + * 500: + * description: 서버 오류 + */ +router.post('/', workerController.createWorker); +router.get('/', workerController.getAllWorkers); + +/** + * @swagger + * /api/workers/{worker_id}: + * get: + * tags: [Workers] + * summary: 특정 작업자 조회 + * description: ID로 특정 작업자 정보를 조회합니다. + * security: + * - bearerAuth: [] + * parameters: + * - in: path + * name: worker_id + * required: true + * schema: + * type: integer + * description: 작업자 ID + * responses: + * 200: + * description: 작업자 조회 성공 + * content: + * application/json: + * schema: + * type: object + * properties: + * success: + * type: boolean + * example: true + * message: + * type: string + * example: "작업자 조회 성공" + * data: + * $ref: '#/components/schemas/Worker' + * 400: + * description: 잘못된 작업자 ID + * 401: + * description: 인증 필요 + * 404: + * description: 작업자를 찾을 수 없음 + * 500: + * description: 서버 오류 + * put: + * tags: [Workers] + * summary: 작업자 정보 수정 + * description: 작업자 정보를 수정합니다. + * security: + * - bearerAuth: [] + * parameters: + * - in: path + * name: worker_id + * required: true + * schema: + * type: integer + * description: 작업자 ID + * requestBody: + * required: true + * content: + * application/json: + * schema: + * type: object + * properties: + * worker_name: + * type: string + * example: "김철수" + * position: + * type: string + * example: "용접공" + * department: + * type: string + * example: "생산부" + * phone: + * type: string + * example: "010-1234-5678" + * email: + * type: string + * format: email + * example: "worker@technicalkorea.com" + * responses: + * 200: + * description: 작업자 수정 성공 + * content: + * application/json: + * schema: + * $ref: '#/components/schemas/SuccessResponse' + * 400: + * description: 잘못된 요청 + * 401: + * description: 인증 필요 + * 404: + * description: 작업자를 찾을 수 없음 + * 500: + * description: 서버 오류 + * delete: + * tags: [Workers] + * summary: 작업자 삭제 + * description: 작업자를 삭제합니다. + * security: + * - bearerAuth: [] + * parameters: + * - in: path + * name: worker_id + * required: true + * schema: + * type: integer + * description: 작업자 ID + * responses: + * 200: + * description: 작업자 삭제 성공 + * content: + * application/json: + * schema: + * type: object + * properties: + * success: + * type: boolean + * example: true + * message: + * type: string + * example: "작업자가 성공적으로 삭제되었습니다." + * 400: + * description: 잘못된 작업자 ID + * 401: + * description: 인증 필요 + * 404: + * description: 작업자를 찾을 수 없음 + * 500: + * description: 서버 오류 + */ +router.get('/:worker_id', workerController.getWorkerById); +router.put('/:worker_id', workerController.updateWorker); +router.delete('/:worker_id', workerController.removeWorker); + +module.exports = router; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/routes/workplaceRoutes.js b/deploy/tkfb-package/api.hyungi.net/routes/workplaceRoutes.js new file mode 100644 index 0000000..b5cca31 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/routes/workplaceRoutes.js @@ -0,0 +1,103 @@ +// routes/workplaceRoutes.js +const express = require('express'); +const router = express.Router(); +const multer = require('multer'); +const path = require('path'); +const workplaceController = require('../controllers/workplaceController'); +const { + generateSafeFilename, + createFileFilter, + ALLOWED_IMAGE_EXTENSIONS +} = require('../utils/fileUploadSecurity'); + +// Multer 설정 - 작업장 레이아웃 이미지 업로드 (보안 강화) +const storage = multer.diskStorage({ + destination: (req, file, cb) => { + cb(null, path.join(__dirname, '../uploads')); + }, + filename: (req, file, cb) => { + // 안전한 랜덤 파일명 생성 (원본 파일명 노출 방지) + const safeName = generateSafeFilename(file.originalname); + cb(null, `workplace-layout-${safeName}`); + } +}); + +// 보안 강화된 파일 필터 +const imageFileFilter = createFileFilter({ + allowedExtensions: ALLOWED_IMAGE_EXTENSIONS, + allowedMimes: ['image/jpeg', 'image/png', 'image/gif', 'image/webp'] +}); + +const upload = multer({ + storage, + fileFilter: imageFileFilter, + limits: { + fileSize: 5 * 1024 * 1024, // 5MB 제한 + files: 1 // 단일 파일만 허용 + } +}); + +// ==================== 카테고리(공장) 관리 ==================== + +// CREATE 카테고리 +router.post('/categories', workplaceController.createCategory); + +// READ ALL 카테고리 +router.get('/categories', workplaceController.getAllCategories); + +// READ ACTIVE 카테고리 +router.get('/categories/active/list', workplaceController.getActiveCategories); + +// READ ONE 카테고리 +router.get('/categories/:id', workplaceController.getCategoryById); + +// UPDATE 카테고리 +router.put('/categories/:id', workplaceController.updateCategory); + +// DELETE 카테고리 +router.delete('/categories/:id', workplaceController.deleteCategory); + +// ==================== 작업장 관리 ==================== + +// CREATE 작업장 +router.post('/', workplaceController.createWorkplace); + +// READ ALL 작업장 (쿼리 파라미터로 카테고리 필터링 가능: ?category_id=1) +router.get('/', workplaceController.getAllWorkplaces); + +// READ ACTIVE 작업장 +router.get('/active/list', workplaceController.getActiveWorkplaces); + +// READ ONE 작업장 +router.get('/:id', workplaceController.getWorkplaceById); + +// UPDATE 작업장 +router.put('/:id', workplaceController.updateWorkplace); + +// DELETE 작업장 +router.delete('/:id', workplaceController.deleteWorkplace); + +// ==================== 작업장 지도 영역 관리 ==================== + +// 카테고리 레이아웃 이미지 업로드 +router.post('/categories/:id/layout-image', upload.single('image'), workplaceController.uploadCategoryLayoutImage); + +// 작업장 레이아웃 이미지 업로드 +router.post('/:id/layout-image', upload.single('image'), workplaceController.uploadWorkplaceLayoutImage); + +// CREATE 지도 영역 +router.post('/map-regions', workplaceController.createMapRegion); + +// READ 카테고리별 지도 영역 +router.get('/categories/:categoryId/map-regions', workplaceController.getMapRegionsByCategory); + +// READ 작업장별 지도 영역 +router.get('/map-regions/workplace/:workplaceId', workplaceController.getMapRegionByWorkplace); + +// UPDATE 지도 영역 +router.put('/map-regions/:id', workplaceController.updateMapRegion); + +// DELETE 지도 영역 +router.delete('/map-regions/:id', workplaceController.deleteMapRegion); + +module.exports = router; diff --git a/deploy/tkfb-package/api.hyungi.net/services/analysisService.js b/deploy/tkfb-package/api.hyungi.net/services/analysisService.js new file mode 100644 index 0000000..bc67473 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/analysisService.js @@ -0,0 +1,81 @@ +/** + * 프로젝트 분석 서비스 + * + * 기간별 프로젝트, 작업자, 작업 유형 분석 데이터 처리 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const analysisModel = require('../models/analysisModel'); +const { ValidationError, DatabaseError } = require('../utils/errors'); +const logger = require('../utils/logger'); + +/** + * 기간별 프로젝트 분석 데이터 조회 + * + * @param {string} startDate - 시작일 (YYYY-MM-DD) + * @param {string} endDate - 종료일 (YYYY-MM-DD) + * @returns {Promise} 가공된 분석 데이터 + */ +const getAnalysisService = async (startDate, endDate) => { + // 필수 필드 검증 + if (!startDate || !endDate) { + throw new ValidationError('시작일과 종료일이 필요합니다', { + required: ['startDate', 'endDate'], + received: { startDate, endDate } + }); + } + + logger.info('분석 데이터 조회 요청', { startDate, endDate }); + + try { + const analysisData = await analysisModel.getAnalysis(startDate, endDate); + + const { summary, byProject, byWorker, byTask, details } = analysisData; + const totalHours = summary.totalHours || 0; + + // 비율(percentage) 계산 헬퍼 함수 + const addPercentage = (item) => ({ + ...item, + hours: parseFloat(item.hours.toFixed(1)), + percentage: totalHours > 0 ? parseFloat((item.hours / totalHours * 100).toFixed(1)) : 0 + }); + + const result = { + summary: { + ...summary, + totalHours: parseFloat(totalHours.toFixed(1)) + }, + byProject: byProject.map(addPercentage), + byWorker: byWorker.map(addPercentage), + byTask: byTask.map(addPercentage), + details: details.map(d => ({ + ...d, + work_hours: parseFloat(d.work_hours.toFixed(1)) + })) + }; + + logger.info('분석 데이터 조회 성공', { + startDate, + endDate, + totalHours: result.summary.totalHours, + projectCount: result.byProject.length, + workerCount: result.byWorker.length, + detailCount: result.details.length + }); + + return result; + } catch (error) { + logger.error('분석 데이터 조회 실패', { + startDate, + endDate, + error: error.message + }); + throw new DatabaseError('분석 데이터 조회 중 오류가 발생했습니다'); + } +}; + +module.exports = { + getAnalysisService +}; diff --git a/deploy/tkfb-package/api.hyungi.net/services/attendanceService.js b/deploy/tkfb-package/api.hyungi.net/services/attendanceService.js new file mode 100644 index 0000000..6d6a182 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/attendanceService.js @@ -0,0 +1,394 @@ +/** + * 근태 관리 서비스 + * + * 근태 기록 관련 비즈니스 로직 처리 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const AttendanceModel = require('../models/attendanceModel'); +const vacationBalanceModel = require('../models/vacationBalanceModel'); +const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); +const logger = require('../utils/logger'); + +/** + * 휴가 사용 유형 ID를 차감 일수로 변환 + * vacation_type_id: 1=연차(1일), 2=반차(0.5일), 3=반반차(0.25일) + */ +const getVacationDays = (vacationTypeId) => { + const daysMap = { 1: 1, 2: 0.5, 3: 0.25 }; + return daysMap[vacationTypeId] || 0; +}; + +/** + * 일일 근태 현황 조회 + */ +const getDailyAttendanceStatusService = async (date) => { + if (!date) { + throw new ValidationError('날짜가 필요합니다', { + required: ['date'], + received: { date } + }); + } + + logger.info('일일 근태 현황 조회 요청', { date }); + + try { + // 조회 전 초기화 수행 (Lazy Initialization) + // 생성자는 시스템(1) 또는 요청자가 될 수 있으나, 여기서는 안전하게 1(System/Admin) 사용 + // 혹은 req.user가 없으므로 서비스 레벨에서는 1로 가정하거나 파라미터로 받아야 함. + // 서비스 인터페이스 변경 최소화를 위해 하드코딩 또는 안전장치. + await AttendanceModel.initializeDailyRecords(date, 1); + + const attendanceStatus = await AttendanceModel.getWorkerAttendanceStatus(date); + logger.info('일일 근태 현황 조회 성공', { date, count: attendanceStatus.length }); + return attendanceStatus; + } catch (error) { + logger.error('일일 근태 현황 조회 실패', { date, error: error.message }); + throw new DatabaseError('근태 현황 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 일일 근태 기록 조회 + */ +const getDailyAttendanceRecordsService = async (date, workerId = null) => { + if (!date) { + throw new ValidationError('날짜가 필요합니다', { + required: ['date'], + received: { date } + }); + } + + logger.info('일일 근태 기록 조회 요청', { date, workerId }); + + try { + const records = await AttendanceModel.getDailyAttendanceRecords(date, workerId); + logger.info('일일 근태 기록 조회 성공', { date, count: records.length }); + return records; + } catch (error) { + logger.error('일일 근태 기록 조회 실패', { date, error: error.message }); + throw new DatabaseError('근태 기록 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 기간별 근태 기록 조회 (월별 조회용) + */ +const getAttendanceRecordsByRangeService = async (startDate, endDate, workerId = null) => { + if (!startDate || !endDate) { + throw new ValidationError('시작 날짜와 종료 날짜가 필요합니다', { + required: ['start_date', 'end_date'], + received: { startDate, endDate } + }); + } + + logger.info('기간별 근태 기록 조회 요청', { startDate, endDate, workerId }); + + try { + const records = await AttendanceModel.getDailyRecords(startDate, endDate, workerId); + logger.info('기간별 근태 기록 조회 성공', { startDate, endDate, count: records.length }); + return records; + } catch (error) { + logger.error('기간별 근태 기록 조회 실패', { startDate, endDate, error: error.message }); + throw new DatabaseError('근태 기록 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 근태 기록 생성/업데이트 + * - 휴가 기록 시 vacation_balance_details의 used_days 자동 연동 + */ +const upsertAttendanceRecordService = async (recordData) => { + const { + record_date, + worker_id, + total_work_hours, + attendance_type_id, + vacation_type_id, + is_vacation_processed, + overtime_approved, + status, + notes, + created_by + } = recordData; + + // 필수 필드 검증 + if (!record_date || !worker_id) { + throw new ValidationError('필수 필드가 누락되었습니다', { + required: ['record_date', 'worker_id'], + received: { record_date, worker_id } + }); + } + + logger.info('근태 기록 저장 요청', { record_date, worker_id, vacation_type_id }); + + try { + // 1. 기존 기록 조회 (휴가 연동을 위해) + const existingRecords = await AttendanceModel.getDailyAttendanceRecords(record_date, worker_id); + const existingRecord = existingRecords.find(r => r.worker_id === worker_id); + const previousVacationTypeId = existingRecord?.vacation_type_id || null; + + // 2. 근태 기록 저장 + const result = await AttendanceModel.upsertAttendanceRecord({ + record_date, + worker_id, + total_work_hours, + work_attendance_type_id: attendance_type_id, + vacation_type_id, + is_overtime_approved: overtime_approved, + created_by + }); + + // 3. 휴가 잔액 연동 (vacation_balance_details.used_days 업데이트) + const year = new Date(record_date).getFullYear(); + const previousDays = getVacationDays(previousVacationTypeId); + const newDays = getVacationDays(vacation_type_id); + + // 이전 휴가가 있었고 변경된 경우 → 복구 후 차감 + if (previousDays !== newDays) { + // 이전 휴가 복구 + if (previousDays > 0) { + await vacationBalanceModel.restoreByPriority(worker_id, year, previousDays); + logger.info('휴가 잔액 복구', { worker_id, year, restored: previousDays }); + } + + // 새 휴가 차감 + if (newDays > 0) { + await vacationBalanceModel.deductByPriority(worker_id, year, newDays); + logger.info('휴가 잔액 차감', { worker_id, year, deducted: newDays }); + } + } + + logger.info('근태 기록 저장 성공', { record_date, worker_id }); + return result; + } catch (error) { + logger.error('근태 기록 저장 실패', { record_date, worker_id, error: error.message }); + throw new DatabaseError('근태 기록 저장 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 휴가 처리 + */ +const processVacationService = async (vacationData) => { + const { record_date, worker_id, vacation_type_id } = vacationData; + + if (!record_date || !worker_id || !vacation_type_id) { + throw new ValidationError('필수 필드가 누락되었습니다', { + required: ['record_date', 'worker_id', 'vacation_type_id'], + received: { record_date, worker_id, vacation_type_id } + }); + } + + logger.info('휴가 처리 요청', { record_date, worker_id, vacation_type_id }); + + try { + const result = await AttendanceModel.processVacation({ + record_date, + worker_id, + vacation_type_id + }); + + logger.info('휴가 처리 성공', { record_date, worker_id }); + return result; + } catch (error) { + logger.error('휴가 처리 실패', { record_date, worker_id, error: error.message }); + throw new DatabaseError('휴가 처리 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 초과 근무 승인 + */ +const approveOvertimeService = async (overtimeData) => { + const { record_date, worker_id, overtime_approved } = overtimeData; + + if (!record_date || !worker_id || overtime_approved === undefined) { + throw new ValidationError('필수 필드가 누락되었습니다', { + required: ['record_date', 'worker_id', 'overtime_approved'], + received: { record_date, worker_id, overtime_approved } + }); + } + + logger.info('초과 근무 승인 요청', { record_date, worker_id, overtime_approved }); + + try { + const result = await AttendanceModel.approveOvertime({ + record_date, + worker_id, + overtime_approved + }); + + logger.info('초과 근무 승인 처리 성공', { record_date, worker_id }); + return result; + } catch (error) { + logger.error('초과 근무 승인 실패', { record_date, worker_id, error: error.message }); + throw new DatabaseError('초과 근무 승인 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 근태 유형 목록 조회 + */ +const getAttendanceTypesService = async () => { + logger.info('근태 유형 목록 조회 요청'); + + try { + const types = await AttendanceModel.getAttendanceTypes(); + logger.info('근태 유형 목록 조회 성공', { count: types.length }); + return types; + } catch (error) { + logger.error('근태 유형 목록 조회 실패', { error: error.message }); + throw new DatabaseError('근태 유형 목록 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 휴가 유형 목록 조회 + */ +const getVacationTypesService = async () => { + logger.info('휴가 유형 목록 조회 요청'); + + try { + const types = await AttendanceModel.getVacationTypes(); + logger.info('휴가 유형 목록 조회 성공', { count: types.length }); + return types; + } catch (error) { + logger.error('휴가 유형 목록 조회 실패', { error: error.message }); + throw new DatabaseError('휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 작업자 휴가 잔여 일수 조회 + */ +const getWorkerVacationBalanceService = async (workerId) => { + if (!workerId) { + throw new ValidationError('작업자 ID가 필요합니다', { + required: ['worker_id'], + received: { workerId } + }); + } + + logger.info('휴가 잔여 일수 조회 요청', { workerId }); + + try { + const balance = await AttendanceModel.getWorkerVacationBalance(workerId); + logger.info('휴가 잔여 일수 조회 성공', { workerId }); + return balance; + } catch (error) { + logger.error('휴가 잔여 일수 조회 실패', { workerId, error: error.message }); + throw new DatabaseError('휴가 잔여 일수 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 월별 근태 통계 조회 + */ +const getMonthlyAttendanceStatsService = async (year, month, workerId = null) => { + if (!year || !month) { + throw new ValidationError('연도와 월이 필요합니다', { + required: ['year', 'month'], + received: { year, month } + }); + } + + logger.info('월별 근태 통계 조회 요청', { year, month, workerId }); + + try { + const stats = await AttendanceModel.getMonthlyAttendanceStats(year, month, workerId); + logger.info('월별 근태 통계 조회 성공', { year, month }); + return stats; + } catch (error) { + logger.error('월별 근태 통계 조회 실패', { year, month, error: error.message }); + throw new DatabaseError('월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 출근 체크 목록 조회 (휴가 정보 포함) + */ +const getCheckinListService = async (date) => { + if (!date) { + throw new ValidationError('날짜가 필요합니다', { + required: ['date'], + received: { date } + }); + } + + logger.info('출근 체크 목록 조회 요청', { date }); + + try { + const checkinList = await AttendanceModel.getCheckinList(date); + logger.info('출근 체크 목록 조회 성공', { date, count: checkinList.length }); + return checkinList; + } catch (error) { + logger.error('출근 체크 목록 조회 실패', { date, error: error.message }); + throw new DatabaseError('출근 체크 목록 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 출근 체크 일괄 저장 + */ +const saveCheckinsService = async (date, checkins) => { + if (!date || !checkins || !Array.isArray(checkins)) { + throw new ValidationError('날짜와 출근 체크 목록이 필요합니다', { + required: ['date', 'checkins'], + received: { date, checkins: checkins ? `Array[${checkins.length}]` : null } + }); + } + + logger.info('출근 체크 일괄 저장 요청', { date, count: checkins.length }); + + try { + const results = []; + + for (const checkin of checkins) { + const { worker_id, is_present } = checkin; + + if (!worker_id || is_present === undefined) { + logger.warn('출근 체크 데이터 누락', { checkin }); + continue; + } + + const result = await AttendanceModel.upsertCheckin({ + worker_id, + record_date: date, + is_present + }); + + results.push({ + worker_id, + record_id: result, + is_present + }); + } + + logger.info('출근 체크 일괄 저장 성공', { date, saved: results.length }); + return { + saved_count: results.length, + results + }; + } catch (error) { + logger.error('출근 체크 일괄 저장 실패', { date, error: error.message }); + throw new DatabaseError('출근 체크 저장 중 데이터베이스 오류가 발생했습니다'); + } +}; + +module.exports = { + getDailyAttendanceStatusService, + getDailyAttendanceRecordsService, + getAttendanceRecordsByRangeService, + upsertAttendanceRecordService, + processVacationService, + approveOvertimeService, + getAttendanceTypesService, + getVacationTypesService, + getWorkerVacationBalanceService, + getMonthlyAttendanceStatsService, + getCheckinListService, + saveCheckinsService +}; diff --git a/deploy/tkfb-package/api.hyungi.net/services/auth.service.js b/deploy/tkfb-package/api.hyungi.net/services/auth.service.js new file mode 100644 index 0000000..a7481b4 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/auth.service.js @@ -0,0 +1,98 @@ +const bcrypt = require('bcryptjs'); +const jwt = require('jsonwebtoken'); +const userModel = require('../models/userModel'); +const { getDb } = require('../dbPool'); + +// 로그인 이력 기록 (서비스 내부 헬퍼 함수) +const recordLoginHistory = async (userId, success, ipAddress, userAgent, failureReason = null) => { + try { + const db = await getDb(); + await db.query( + `INSERT INTO login_logs (user_id, login_time, ip_address, user_agent, login_status, failure_reason) + VALUES (?, NOW(), ?, ?, ?, ?)`, + [userId, ipAddress || 'unknown', userAgent || 'unknown', success ? 'success' : 'failed', failureReason] + ); + } catch (error) { + console.error('로그인 이력 기록 실패:', error); + } +}; + +const loginService = async (username, password, ipAddress, userAgent) => { + // 서비스 레이어에서는 더 이상 DB 커넥션을 직접 다루지 않음 + try { + const user = await userModel.findByUsername(username); + + if (!user) { + console.log(`[로그인 실패] 사용자를 찾을 수 없음: ${username}`); + return { success: false, status: 401, error: '아이디 또는 비밀번호가 올바르지 않습니다.' }; + } + + if (user.is_active === false) { + await recordLoginHistory(user.user_id, false, ipAddress, userAgent, 'account_disabled'); + return { success: false, status: 403, error: '비활성화된 계정입니다. 관리자에게 문의하세요.' }; + } + + if (user.locked_until && new Date(user.locked_until) > new Date()) { + const remainingTime = Math.ceil((new Date(user.locked_until) - new Date()) / 1000 / 60); + return { success: false, status: 429, error: `계정이 잠겨있습니다. ${remainingTime}분 후에 다시 시도하세요.` }; + } + + const isValid = await bcrypt.compare(password, user.password); + if (!isValid) { + console.log(`[로그인 실패] 비밀번호 불일치: ${username}`); + + // 모델 함수를 사용하여 로그인 실패 처리 + await userModel.incrementFailedLoginAttempts(user.user_id); + + if (user.failed_login_attempts >= 4) { + await userModel.lockUserAccount(user.user_id); + } + + await recordLoginHistory(user.user_id, false, ipAddress, userAgent, 'invalid_password'); + return { success: false, status: 401, error: '아이디 또는 비밀번호가 올바르지 않습니다.' }; + } + + // 성공 시 모델 함수를 사용하여 상태 초기화 + await userModel.resetLoginAttempts(user.user_id); + + + const token = jwt.sign( + { user_id: user.user_id, username: user.username, role: user.role_name, role_id: user.role_id, access_level: user.access_level, worker_id: user.worker_id, name: user.name || user.username }, + process.env.JWT_SECRET || 'your-secret-key', + { expiresIn: process.env.JWT_EXPIRES_IN || '24h' } + ); + + const refreshToken = jwt.sign( + { user_id: user.user_id, type: 'refresh' }, + process.env.JWT_REFRESH_SECRET || process.env.JWT_SECRET || 'your-refresh-secret', + { expiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '7d' } + ); + + await recordLoginHistory(user.user_id, true, ipAddress, userAgent); + console.log(`[로그인 성공] 사용자: ${user.username} (${user.access_level})`); + + return { + success: true, + data: { + token, + refreshToken, + user: { + user_id: user.user_id, + username: user.username, + name: user.name || user.username, + role: user.role_name, + access_level: user.access_level, + worker_id: user.worker_id + } + } + }; + } catch (error) { + console.error('Login service error:', error); + throw new Error('서버 오류가 발생했습니다.'); + } + // 서비스 레이어에서는 더 이상 DB 커넥션을 직접 다루지 않음 +}; + +module.exports = { + loginService, +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/services/dailyIssueReportService.js b/deploy/tkfb-package/api.hyungi.net/services/dailyIssueReportService.js new file mode 100644 index 0000000..f8e8f92 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/dailyIssueReportService.js @@ -0,0 +1,170 @@ +/** + * 일일 이슈 보고서 관리 서비스 + * + * 일일 이슈 보고서 생성, 조회, 삭제 관련 비즈니스 로직 처리 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const dailyIssueReportModel = require('../models/dailyIssueReportModel'); +const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); +const logger = require('../utils/logger'); + +/** + * 일일 이슈 보고서 생성 + * + * 한 번에 여러 작업자에 대해 동일한 이슈를 등록할 수 있습니다. + * + * @param {object} issueData - 컨트롤러에서 전달된 이슈 데이터 + * @param {string} issueData.date - 이슈 발생 날짜 (YYYY-MM-DD) + * @param {number} issueData.project_id - 프로젝트 ID + * @param {string} issueData.start_time - 이슈 시작 시간 + * @param {string} issueData.end_time - 이슈 종료 시간 + * @param {number} issueData.issue_type_id - 이슈 유형 ID + * @param {number[]} issueData.worker_ids - 작업자 ID 배열 + * @returns {Promise} 생성 결과 + */ +const createDailyIssueReportService = async (issueData) => { + const { date, project_id, start_time, end_time, issue_type_id, worker_ids } = issueData; + + // 필수 필드 검증 + if (!date || !project_id || !start_time || !end_time || !issue_type_id || !worker_ids) { + throw new ValidationError('필수 필드가 누락되었습니다', { + required: ['date', 'project_id', 'start_time', 'end_time', 'issue_type_id', 'worker_ids'], + received: { date, project_id, start_time, end_time, issue_type_id, worker_ids: !!worker_ids } + }); + } + + if (!Array.isArray(worker_ids) || worker_ids.length === 0) { + throw new ValidationError('worker_ids는 최소 한 명 이상의 작업자를 포함하는 배열이어야 합니다', { + received: { worker_ids, isArray: Array.isArray(worker_ids), length: worker_ids?.length } + }); + } + + logger.info('이슈 보고서 생성 요청', { + date, + project_id, + issue_type_id, + worker_count: worker_ids.length + }); + + // 모델에 전달할 데이터 준비 + const reportsToCreate = worker_ids.map(worker_id => ({ + date, + project_id, + start_time, + end_time, + issue_type_id, + worker_id + })); + + try { + const insertedIds = await dailyIssueReportModel.createMany(reportsToCreate); + + logger.info('이슈 보고서 생성 성공', { + count: insertedIds.length, + issue_report_ids: insertedIds + }); + + return { + message: `${insertedIds.length}개의 이슈 보고서가 성공적으로 생성되었습니다`, + issue_report_ids: insertedIds + }; + } catch (error) { + logger.error('이슈 보고서 생성 실패', { + date, + project_id, + worker_ids, + error: error.message + }); + throw new DatabaseError('이슈 보고서 생성 중 오류가 발생했습니다'); + } +}; + +/** + * 특정 날짜의 모든 이슈 보고서 조회 + * + * @param {string} date - 조회할 날짜 (YYYY-MM-DD) + * @returns {Promise} 조회된 이슈 보고서 배열 + */ +const getDailyIssuesByDateService = async (date) => { + if (!date) { + throw new ValidationError('날짜가 필요합니다', { + required: ['date'], + received: { date } + }); + } + + logger.info('이슈 보고서 날짜별 조회 요청', { date }); + + try { + const issues = await dailyIssueReportModel.getAllByDate(date); + + logger.info('이슈 보고서 조회 성공', { + date, + count: issues.length + }); + + return issues; + } catch (error) { + logger.error('이슈 보고서 조회 실패', { + date, + error: error.message + }); + throw new DatabaseError('이슈 보고서 조회 중 오류가 발생했습니다'); + } +}; + +/** + * 특정 ID의 이슈 보고서 삭제 + * + * @param {string|number} issueId - 삭제할 이슈 보고서의 ID + * @returns {Promise} 삭제 결과 + */ +const removeDailyIssueService = async (issueId) => { + if (!issueId) { + throw new ValidationError('이슈 보고서 ID가 필요합니다', { + required: ['issue_id'], + received: { issueId } + }); + } + + logger.info('이슈 보고서 삭제 요청', { issue_id: issueId }); + + try { + const affectedRows = await dailyIssueReportModel.remove(issueId); + + if (affectedRows === 0) { + logger.warn('삭제할 이슈 보고서를 찾을 수 없음', { issue_id: issueId }); + throw new NotFoundError('삭제할 이슈 보고서를 찾을 수 없습니다'); + } + + logger.info('이슈 보고서 삭제 성공', { + issue_id: issueId, + affected_rows: affectedRows + }); + + return { + message: '이슈 보고서가 성공적으로 삭제되었습니다', + deleted_id: issueId, + affected_rows: affectedRows + }; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + + logger.error('이슈 보고서 삭제 실패', { + issue_id: issueId, + error: error.message + }); + throw new DatabaseError('이슈 보고서 삭제 중 오류가 발생했습니다'); + } +}; + +module.exports = { + createDailyIssueReportService, + getDailyIssuesByDateService, + removeDailyIssueService +}; diff --git a/deploy/tkfb-package/api.hyungi.net/services/dailyWorkReportService.js b/deploy/tkfb-package/api.hyungi.net/services/dailyWorkReportService.js new file mode 100644 index 0000000..5b058a3 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/dailyWorkReportService.js @@ -0,0 +1,326 @@ +/** + * 일일 작업 보고서 서비스 + * + * 작업 보고서 관련 비즈니스 로직 처리 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const dailyWorkReportModel = require('../models/dailyWorkReportModel'); +const { ValidationError, NotFoundError, ForbiddenError, DatabaseError } = require('../utils/errors'); +const logger = require('../utils/logger'); + +/** + * 일일 작업 보고서를 생성하는 비즈니스 로직을 처리합니다. + * @param {object} reportData - 컨트롤러에서 전달된 보고서 데이터 + * @returns {Promise} 생성 결과 또는 에러 + */ +const createDailyWorkReportService = async (reportData) => { + const { report_date, worker_id, work_entries, created_by, created_by_name } = reportData; + + // 1. 기본 유효성 검사 + if (!report_date || !worker_id || !work_entries) { + throw new ValidationError('필수 필드가 누락되었습니다', { + required: ['report_date', 'worker_id', 'work_entries'], + received: { report_date, worker_id, work_entries: !!work_entries } + }); + } + + if (!Array.isArray(work_entries) || work_entries.length === 0) { + throw new ValidationError('최소 하나의 작업 항목이 필요합니다'); + } + + if (!created_by) { + throw new ValidationError('사용자 인증 정보가 없습니다'); + } + + // 2. 작업 항목 유효성 검사 + for (let i = 0; i < work_entries.length; i++) { + const entry = work_entries[i]; + const requiredFields = ['project_id', 'task_id', 'work_hours']; + + for (const field of requiredFields) { + if (entry[field] === undefined || entry[field] === null || entry[field] === '') { + throw new ValidationError(`작업 항목 ${i + 1}의 필수 필드가 누락되었습니다`, { + entry: i + 1, + missingField: field + }); + } + } + + // is_error가 true일 때 error_type_code_id 필수 검사 + if (entry.is_error === true && !entry.error_type_code_id) { + throw new ValidationError(`에러 상태인 경우 에러 타입이 필요합니다`, { + entry: i + 1, + is_error: true + }); + } + + const hours = parseFloat(entry.work_hours); + if (isNaN(hours) || hours <= 0 || hours > 24) { + throw new ValidationError(`작업 시간이 유효하지 않습니다 (0 초과 24 이하)`, { + entry: i + 1, + work_hours: entry.work_hours, + valid_range: '0 < hours <= 24' + }); + } + } + + // 3. 모델에 전달할 데이터 준비 + const modelData = { + report_date, + worker_id: parseInt(worker_id), + entries: work_entries.map(entry => ({ + project_id: entry.project_id, + work_type_id: entry.task_id, // task_id를 work_type_id로 매핑 + work_hours: parseFloat(entry.work_hours), + work_status_id: entry.work_status_id, + error_type_id: entry.error_type_id, + created_by: created_by + })) + }; + + logger.info('작업보고서 생성 요청', { + date: report_date, + worker: worker_id, + creator: created_by_name, + entries_count: modelData.entries.length + }); + + // 4. 모델 함수 호출 + try { + const result = await dailyWorkReportModel.createReportEntries(modelData); + + logger.info('작업보고서 생성 성공', { + report_id: result.report_id, + entries_count: modelData.entries.length + }); + + return { + message: '작업보고서가 성공적으로 생성되었습니다.', + ...result + }; + } catch (error) { + logger.error('작업보고서 생성 실패', { + error: error.message, + stack: error.stack + }); + throw new DatabaseError('작업보고서 생성 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 사용자 권한과 요청 파라미터에 따라 일일 작업 보고서를 조회하는 비즈니스 로직을 처리합니다. + * @param {object} queryParams - 컨트롤러에서 전달된 쿼리 파라미터 + * @param {object} userInfo - 요청을 보낸 사용자의 정보 (id, role 등) + * @returns {Promise} 조회된 작업 보고서 배열 + */ +const getDailyWorkReportsService = async (queryParams, userInfo) => { + const { date, start_date, end_date, worker_id, created_by: requested_created_by, view_all } = queryParams; + const { user_id: current_user_id, role } = userInfo; + + // 날짜 또는 날짜 범위 중 하나는 필수 + if (!date && (!start_date || !end_date)) { + throw new ValidationError('날짜 또는 날짜 범위가 필요합니다', { + required: 'date OR (start_date AND end_date)', + received: { date, start_date, end_date } + }); + } + + // 관리자 여부 확인 + const isAdmin = role === 'system' || role === 'admin'; + const canViewAll = isAdmin || view_all === 'true'; + + // 모델에 전달할 조회 옵션 객체 생성 + const options = {}; + + if (date) { + options.date = date; + } else { + options.start_date = start_date; + options.end_date = end_date; + } + + if (worker_id) { + options.worker_id = parseInt(worker_id); + } + + // 최종적으로 필터링할 작성자 ID 결정 + if (!canViewAll) { + // 관리자가 아니면 자신의 데이터만 보거나, 명시적으로 요청된 자신의 ID만 허용 + options.created_by_user_id = requested_created_by ? Math.min(requested_created_by, current_user_id) : current_user_id; + } else if (requested_created_by) { + // 관리자는 다른 사람의 데이터도 조회 가능 + options.created_by_user_id = parseInt(requested_created_by); + } + // created_by_user_id가 명시되지 않으면 모든 작성자의 데이터를 조회 + + logger.info('작업보고서 조회 요청', { ...options, requester: current_user_id, isAdmin }); + + try { + const reports = await dailyWorkReportModel.getReportsWithOptions(options); + logger.info('작업보고서 조회 성공', { count: reports.length }); + return reports; + } catch (error) { + logger.error('작업보고서 조회 실패', { error: error.message }); + throw new DatabaseError('작업보고서 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 특정 작업 보고서 항목을 수정하는 비즈니스 로직을 처리합니다. + * @param {string} reportId - 수정할 보고서의 ID + * @param {object} updateData - 수정할 데이터 + * @param {object} userInfo - 요청을 보낸 사용자의 정보 + * @returns {Promise} 수정 결과 + */ +const updateWorkReportService = async (reportId, updateData, userInfo) => { + const { user_id: updated_by } = userInfo; + + if (!reportId || !updateData || Object.keys(updateData).length === 0) { + throw new ValidationError('보고서 ID와 수정할 데이터가 필요합니다', { + reportId, + hasUpdateData: !!updateData, + updateFieldsCount: updateData ? Object.keys(updateData).length : 0 + }); + } + + const modelUpdateData = { ...updateData, updated_by_user_id: updated_by }; + + logger.info('작업보고서 수정 요청', { reportId, updatedBy: updated_by }); + + try { + const affectedRows = await dailyWorkReportModel.updateReportById(reportId, modelUpdateData); + + if (affectedRows === 0) { + throw new NotFoundError('수정할 작업보고서를 찾을 수 없습니다'); + } + + logger.info('작업보고서 수정 성공', { reportId }); + return { + message: '작업보고서가 성공적으로 수정되었습니다.', + report_id: reportId, + affected_rows: affectedRows + }; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + logger.error('작업보고서 수정 실패', { reportId, error: error.message }); + throw new DatabaseError('작업보고서 수정 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 특정 작업 보고서 항목을 삭제하는 비즈니스 로직을 처리합니다. + * @param {string} reportId - 삭제할 보고서의 ID + * @param {object} userInfo - 요청을 보낸 사용자의 정보 + * @returns {Promise} 삭제 결과 + */ +const removeDailyWorkReportService = async (reportId, userInfo) => { + const { user_id: deleted_by } = userInfo; + + if (!reportId) { + throw new ValidationError('삭제할 보고서 ID가 필요합니다'); + } + + logger.info('작업보고서 삭제 요청', { reportId, deletedBy: deleted_by }); + + try { + const affectedRows = await dailyWorkReportModel.removeReportById(reportId, deleted_by); + + if (affectedRows === 0) { + throw new NotFoundError('삭제할 작업보고서를 찾을 수 없습니다'); + } + + logger.info('작업보고서 삭제 성공', { reportId }); + return { + message: '작업보고서가 성공적으로 삭제되었습니다.', + report_id: reportId, + affected_rows: affectedRows + }; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + logger.error('작업보고서 삭제 실패', { reportId, error: error.message }); + throw new DatabaseError('작업보고서 삭제 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 기간별 작업 보고서 통계를 조회하는 비즈니스 로직을 처리합니다. + * @param {object} queryParams - 컨트롤러에서 전달된 쿼리 파라미터 (start_date, end_date) + * @returns {Promise} 통계 데이터 + */ +const getStatisticsService = async (queryParams) => { + const { start_date, end_date } = queryParams; + + if (!start_date || !end_date) { + throw new ValidationError('시작일과 종료일이 모두 필요합니다', { + required: ['start_date', 'end_date'], + received: { start_date, end_date } + }); + } + + logger.info('작업보고서 통계 조회 요청', { start_date, end_date }); + + try { + const statsData = await dailyWorkReportModel.getStatistics(start_date, end_date); + + logger.info('작업보고서 통계 조회 성공', { period: `${start_date} ~ ${end_date}` }); + return { + ...statsData, + metadata: { + period: `${start_date} ~ ${end_date}`, + timestamp: new Date().toISOString() + } + }; + } catch (error) { + logger.error('통계 조회 실패', { error: error.message }); + throw new DatabaseError('통계 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +/** + * 일일 또는 작업자별 작업 요약 정보를 조회하는 비즈니스 로직을 처리합니다. + * @param {object} queryParams - 컨트롤러에서 전달된 쿼리 파라미터 (date 또는 worker_id) + * @returns {Promise} 요약 데이터 + */ +const getSummaryService = async (queryParams) => { + const { date, worker_id } = queryParams; + + if (!date && !worker_id) { + throw new ValidationError('날짜 또는 작업자 ID가 필요합니다', { + required: 'date OR worker_id', + received: { date, worker_id } + }); + } + + try { + if (date) { + logger.info('일일 요약 조회 요청', { date }); + const result = await dailyWorkReportModel.getSummaryByDate(date); + logger.info('일일 요약 조회 성공', { date }); + return result; + } else { // worker_id + logger.info('작업자별 요약 조회 요청', { worker_id }); + const result = await dailyWorkReportModel.getSummaryByWorker(worker_id); + logger.info('작업자별 요약 조회 성공', { worker_id }); + return result; + } + } catch (error) { + logger.error('요약 정보 조회 실패', { error: error.message }); + throw new DatabaseError('요약 정보 조회 중 데이터베이스 오류가 발생했습니다'); + } +}; + +module.exports = { + createDailyWorkReportService, + getDailyWorkReportsService, + updateWorkReportService, + removeDailyWorkReportService, + getStatisticsService, + getSummaryService, +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/services/imageUploadService.js b/deploy/tkfb-package/api.hyungi.net/services/imageUploadService.js new file mode 100644 index 0000000..7870130 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/imageUploadService.js @@ -0,0 +1,217 @@ +/** + * 이미지 업로드 서비스 + * Base64 인코딩된 이미지를 파일로 저장 + * + * 사용 전 sharp 패키지 설치 필요: + * npm install sharp + */ + +const path = require('path'); +const fs = require('fs').promises; +const crypto = require('crypto'); + +// sharp는 선택적으로 사용 (설치되어 있지 않으면 리사이징 없이 저장) +let sharp; +try { + sharp = require('sharp'); +} catch (e) { + console.warn('sharp 패키지가 설치되어 있지 않습니다. 이미지 리사이징이 비활성화됩니다.'); + console.warn('이미지 최적화를 위해 npm install sharp 를 실행하세요.'); +} + +// 업로드 디렉토리 설정 +const UPLOAD_DIRS = { + issues: path.join(__dirname, '../public/uploads/issues'), + equipments: path.join(__dirname, '../public/uploads/equipments') +}; +const UPLOAD_DIR = UPLOAD_DIRS.issues; // 기존 호환성 유지 +const MAX_SIZE = { width: 1920, height: 1920 }; +const QUALITY = 85; + +/** + * 업로드 디렉토리 확인 및 생성 + * @param {string} category - 카테고리 ('issues' 또는 'equipments') + */ +async function ensureUploadDir(category = 'issues') { + const uploadDir = UPLOAD_DIRS[category] || UPLOAD_DIRS.issues; + try { + await fs.access(uploadDir); + } catch { + await fs.mkdir(uploadDir, { recursive: true }); + } + return uploadDir; +} + +/** + * UUID 생성 (간단한 버전) + */ +function generateId() { + return crypto.randomBytes(4).toString('hex'); +} + +/** + * 타임스탬프 문자열 생성 + */ +function getTimestamp() { + const now = new Date(); + return now.toISOString().replace(/[-:T]/g, '').slice(0, 14); +} + +/** + * Base64 문자열에서 이미지 형식 추출 + * @param {string} base64String - Base64 인코딩된 이미지 + * @returns {string} 이미지 확장자 (jpg, png, etc) + */ +function getImageExtension(base64String) { + const match = base64String.match(/^data:image\/(\w+);base64,/); + if (match) { + const format = match[1].toLowerCase(); + // jpeg를 jpg로 변환 + return format === 'jpeg' ? 'jpg' : format; + } + return 'jpg'; // 기본값 +} + +/** + * Base64 이미지를 파일로 저장 + * @param {string} base64String - Base64 인코딩된 이미지 (data:image/...;base64,... 형식) + * @param {string} prefix - 파일명 접두사 (예: 'issue', 'resolution', 'equipment') + * @param {string} category - 저장 카테고리 ('issues' 또는 'equipments') + * @returns {Promise} 저장된 파일의 웹 경로 또는 null + */ +async function saveBase64Image(base64String, prefix = 'issue', category = 'issues') { + try { + if (!base64String || typeof base64String !== 'string') { + return null; + } + + // Base64 헤더가 없는 경우 처리 + let base64Data = base64String; + if (base64String.includes('base64,')) { + base64Data = base64String.split('base64,')[1]; + } + + // Base64 디코딩 + const buffer = Buffer.from(base64Data, 'base64'); + + if (buffer.length === 0) { + console.error('이미지 데이터가 비어있습니다.'); + return null; + } + + // 디렉토리 확인 + const uploadDir = await ensureUploadDir(category); + + // 파일명 생성 + const timestamp = getTimestamp(); + const uniqueId = generateId(); + const extension = 'jpg'; // 모든 이미지를 JPEG로 저장 + const filename = `${prefix}_${timestamp}_${uniqueId}.${extension}`; + const filepath = path.join(uploadDir, filename); + + // sharp가 설치되어 있으면 리사이징 및 최적화 + if (sharp) { + try { + await sharp(buffer) + .resize(MAX_SIZE.width, MAX_SIZE.height, { + fit: 'inside', + withoutEnlargement: true + }) + .jpeg({ quality: QUALITY }) + .toFile(filepath); + } catch (sharpError) { + console.error('sharp 처리 실패, 원본 저장:', sharpError.message); + // sharp 실패 시 원본 저장 + await fs.writeFile(filepath, buffer); + } + } else { + // sharp가 없으면 원본 그대로 저장 + await fs.writeFile(filepath, buffer); + } + + // 웹 접근 경로 반환 + return `/uploads/${category}/${filename}`; + } catch (error) { + console.error('이미지 저장 실패:', error); + return null; + } +} + +/** + * 여러 Base64 이미지를 한번에 저장 + * @param {string[]} base64Images - Base64 이미지 배열 + * @param {string} prefix - 파일명 접두사 + * @returns {Promise} 저장된 파일 경로 배열 + */ +async function saveMultipleImages(base64Images, prefix = 'issue') { + const paths = []; + + for (const base64 of base64Images) { + if (base64) { + const savedPath = await saveBase64Image(base64, prefix); + if (savedPath) { + paths.push(savedPath); + } + } + } + + return paths; +} + +/** + * 파일 삭제 + * @param {string} webPath - 웹 경로 (예: /uploads/issues/filename.jpg) + * @returns {Promise} 삭제 성공 여부 + */ +async function deleteFile(webPath) { + try { + if (!webPath || typeof webPath !== 'string') { + return false; + } + + // 보안: uploads 경로만 삭제 허용 + if (!webPath.startsWith('/uploads/')) { + console.error('삭제 불가: uploads 외부 경로', webPath); + return false; + } + + const filename = path.basename(webPath); + const fullPath = path.join(UPLOAD_DIR, filename); + + try { + await fs.access(fullPath); + await fs.unlink(fullPath); + return true; + } catch (accessError) { + // 파일이 없으면 성공으로 처리 + if (accessError.code === 'ENOENT') { + return true; + } + throw accessError; + } + } catch (error) { + console.error('파일 삭제 실패:', error); + return false; + } +} + +/** + * 여러 파일 삭제 + * @param {string[]} webPaths - 웹 경로 배열 + * @returns {Promise} + */ +async function deleteMultipleFiles(webPaths) { + for (const webPath of webPaths) { + if (webPath) { + await deleteFile(webPath); + } + } +} + +module.exports = { + saveBase64Image, + saveMultipleImages, + deleteFile, + deleteMultipleFiles, + UPLOAD_DIR +}; diff --git a/deploy/tkfb-package/api.hyungi.net/services/issueTypeService.js b/deploy/tkfb-package/api.hyungi.net/services/issueTypeService.js new file mode 100644 index 0000000..25aa048 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/issueTypeService.js @@ -0,0 +1,169 @@ +/** + * 이슈 유형 관리 서비스 + * + * 이슈 유형(카테고리/서브카테고리) 관련 비즈니스 로직 처리 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const issueTypeModel = require('../models/issueTypeModel'); +const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); +const logger = require('../utils/logger'); + +/** + * 이슈 유형 생성 + */ +const createIssueTypeService = async (issueTypeData) => { + const { category, subcategory } = issueTypeData; + + // 필수 필드 검증 + if (!category || !subcategory) { + throw new ValidationError('카테고리와 서브카테고리가 필요합니다', { + required: ['category', 'subcategory'], + received: { category, subcategory } + }); + } + + logger.info('이슈 유형 생성 요청', { category, subcategory }); + + try { + const insertId = await new Promise((resolve, reject) => { + issueTypeModel.create({ category, subcategory }, (err, id) => { + if (err) reject(err); + else resolve(id); + }); + }); + + logger.info('이슈 유형 생성 성공', { issue_type_id: insertId }); + + return { issue_type_id: insertId }; + } catch (error) { + logger.error('이슈 유형 생성 실패', { + category, + subcategory, + error: error.message + }); + throw new DatabaseError('이슈 유형 생성 중 오류가 발생했습니다'); + } +}; + +/** + * 전체 이슈 유형 조회 + */ +const getAllIssueTypesService = async () => { + logger.info('이슈 유형 목록 조회 요청'); + + try { + const rows = await new Promise((resolve, reject) => { + issueTypeModel.getAll((err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + logger.info('이슈 유형 목록 조회 성공', { count: rows.length }); + + return rows; + } catch (error) { + logger.error('이슈 유형 목록 조회 실패', { error: error.message }); + throw new DatabaseError('이슈 유형 목록 조회 중 오류가 발생했습니다'); + } +}; + +/** + * 이슈 유형 수정 + */ +const updateIssueTypeService = async (id, issueTypeData) => { + const { category, subcategory } = issueTypeData; + + // ID 검증 + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 이슈 유형 ID입니다'); + } + + // 필수 필드 검증 + if (!category || !subcategory) { + throw new ValidationError('카테고리와 서브카테고리가 필요합니다', { + required: ['category', 'subcategory'], + received: { category, subcategory } + }); + } + + logger.info('이슈 유형 수정 요청', { issue_type_id: id, category, subcategory }); + + try { + const affectedRows = await new Promise((resolve, reject) => { + issueTypeModel.update(id, { category, subcategory }, (err, rows) => { + if (err) reject(err); + else resolve(rows); + }); + }); + + if (affectedRows === 0) { + logger.warn('이슈 유형을 찾을 수 없음', { issue_type_id: id }); + throw new NotFoundError('이슈 유형을 찾을 수 없습니다'); + } + + logger.info('이슈 유형 수정 성공', { issue_type_id: id, affectedRows }); + + return { changes: affectedRows }; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + + logger.error('이슈 유형 수정 실패', { + issue_type_id: id, + error: error.message + }); + throw new DatabaseError('이슈 유형 수정 중 오류가 발생했습니다'); + } +}; + +/** + * 이슈 유형 삭제 + */ +const removeIssueTypeService = async (id) => { + // ID 검증 + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 이슈 유형 ID입니다'); + } + + logger.info('이슈 유형 삭제 요청', { issue_type_id: id }); + + try { + const affectedRows = await new Promise((resolve, reject) => { + issueTypeModel.remove(id, (err, rows) => { + if (err) reject(err); + else resolve(rows); + }); + }); + + if (affectedRows === 0) { + logger.warn('이슈 유형을 찾을 수 없음', { issue_type_id: id }); + throw new NotFoundError('이슈 유형을 찾을 수 없습니다'); + } + + logger.info('이슈 유형 삭제 성공', { issue_type_id: id, affectedRows }); + + return { changes: affectedRows }; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + + logger.error('이슈 유형 삭제 실패', { + issue_type_id: id, + error: error.message + }); + throw new DatabaseError('이슈 유형 삭제 중 오류가 발생했습니다'); + } +}; + +module.exports = { + createIssueTypeService, + getAllIssueTypesService, + updateIssueTypeService, + removeIssueTypeService +}; diff --git a/deploy/tkfb-package/api.hyungi.net/services/mProjectService.js b/deploy/tkfb-package/api.hyungi.net/services/mProjectService.js new file mode 100644 index 0000000..6336621 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/mProjectService.js @@ -0,0 +1,383 @@ +/** + * M-Project API 연동 서비스 + * + * TK-FB-Project의 부적합 신고를 M-Project로 전송하는 서비스 + * + * @author TK-FB-Project + * @since 2026-02-03 + */ + +const logger = require('../utils/logger'); + +// M-Project API 설정 +const M_PROJECT_CONFIG = { + baseUrl: process.env.M_PROJECT_API_URL || 'http://localhost:16080', + username: process.env.M_PROJECT_USERNAME || 'api_service', + password: process.env.M_PROJECT_PASSWORD || '', + defaultProjectId: parseInt(process.env.M_PROJECT_DEFAULT_PROJECT_ID) || 1, +}; + +// 캐시된 인증 토큰 +let cachedToken = null; +let tokenExpiry = null; + +/** + * TK-FB 카테고리를 M-Project 카테고리로 매핑 + * @param {string} tkCategory - TK-FB-Project 카테고리 + * @returns {string} M-Project 카테고리 + */ +function mapCategoryToMProject(tkCategory) { + const categoryMap = { + // TK-FB 카테고리 → M-Project 카테고리 + '자재 누락': 'material_missing', + '자재누락': 'material_missing', + '자재 관련': 'material_missing', + '설계 오류': 'design_error', + '설계미스': 'design_error', + '설계 관련': 'design_error', + '입고 불량': 'incoming_defect', + '입고자재 불량': 'incoming_defect', + '입고 관련': 'incoming_defect', + '검사 미스': 'inspection_miss', + '검사미스': 'inspection_miss', + '검사 관련': 'inspection_miss', + '기타': 'etc', + }; + + // 정확히 매칭되는 경우 + if (categoryMap[tkCategory]) { + return categoryMap[tkCategory]; + } + + // 부분 매칭 시도 + const lowerCategory = tkCategory?.toLowerCase() || ''; + if (lowerCategory.includes('자재') || lowerCategory.includes('material')) { + return 'material_missing'; + } + if (lowerCategory.includes('설계') || lowerCategory.includes('design')) { + return 'design_error'; + } + if (lowerCategory.includes('입고') || lowerCategory.includes('incoming')) { + return 'incoming_defect'; + } + if (lowerCategory.includes('검사') || lowerCategory.includes('inspection')) { + return 'inspection_miss'; + } + + // 기본값 + return 'etc'; +} + +/** + * M-Project API 인증 토큰 획득 + * @returns {Promise} JWT 토큰 + */ +async function getAuthToken() { + // 캐시된 토큰이 유효하면 재사용 + if (cachedToken && tokenExpiry && new Date() < tokenExpiry) { + return cachedToken; + } + + try { + const formData = new URLSearchParams(); + formData.append('username', M_PROJECT_CONFIG.username); + formData.append('password', M_PROJECT_CONFIG.password); + + const response = await fetch(`${M_PROJECT_CONFIG.baseUrl}/api/auth/login`, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + }, + body: formData.toString(), + }); + + if (!response.ok) { + const errorText = await response.text(); + logger.error('M-Project 인증 실패', { + status: response.status, + error: errorText + }); + return null; + } + + const data = await response.json(); + cachedToken = data.access_token; + + // 토큰 만료 시간 설정 (기본 6일, M-Project는 7일 유효) + tokenExpiry = new Date(Date.now() + 6 * 24 * 60 * 60 * 1000); + + logger.info('M-Project 인증 성공'); + return cachedToken; + } catch (error) { + logger.error('M-Project 인증 요청 오류', { error: error.message }); + return null; + } +} + +/** + * 이미지 URL을 Base64로 변환 + * @param {string} imageUrl - 이미지 URL 또는 경로 + * @returns {Promise} Base64 인코딩된 이미지 + */ +async function convertImageToBase64(imageUrl) { + if (!imageUrl) return null; + + try { + // 이미 Base64인 경우 그대로 반환 + if (imageUrl.startsWith('data:image')) { + return imageUrl; + } + + // URL인 경우 fetch + if (imageUrl.startsWith('http://') || imageUrl.startsWith('https://')) { + const response = await fetch(imageUrl); + if (!response.ok) return null; + + const buffer = await response.arrayBuffer(); + const base64 = Buffer.from(buffer).toString('base64'); + const contentType = response.headers.get('content-type') || 'image/jpeg'; + return `data:${contentType};base64,${base64}`; + } + + // 로컬 파일 경로인 경우 + const fs = require('fs').promises; + const path = require('path'); + const filePath = path.join(process.cwd(), 'uploads', imageUrl); + + try { + const fileBuffer = await fs.readFile(filePath); + const base64 = fileBuffer.toString('base64'); + const ext = path.extname(imageUrl).toLowerCase(); + const mimeTypes = { + '.jpg': 'image/jpeg', + '.jpeg': 'image/jpeg', + '.png': 'image/png', + '.gif': 'image/gif', + '.webp': 'image/webp', + }; + const contentType = mimeTypes[ext] || 'image/jpeg'; + return `data:${contentType};base64,${base64}`; + } catch { + return null; + } + } catch (error) { + logger.warn('이미지 Base64 변환 실패', { imageUrl, error: error.message }); + return null; + } +} + +/** + * TK-FB-Project 부적합 신고를 M-Project로 전송 + * + * @param {Object} issueData - 부적합 신고 데이터 + * @param {string} issueData.category - 카테고리 이름 + * @param {string} issueData.description - 신고 내용 + * @param {string} issueData.reporter_name - 신고자 이름 + * @param {string} issueData.project_name - 프로젝트 이름 (옵션) + * @param {number} issueData.tk_issue_id - TK-FB-Project 이슈 ID + * @param {string[]} issueData.photos - 사진 URL 배열 (최대 5개) + * @returns {Promise<{success: boolean, mProjectId?: number, error?: string}>} + */ +async function sendToMProject(issueData) { + const { + category, + description, + reporter_name, + project_name, + tk_issue_id, + photos = [], + } = issueData; + + logger.info('M-Project 연동 시작', { tk_issue_id, category }); + + // 인증 토큰 획득 + const token = await getAuthToken(); + if (!token) { + return { success: false, error: 'M-Project 인증 실패' }; + } + + try { + // 카테고리 매핑 + const mProjectCategory = mapCategoryToMProject(category); + + // 설명에 TK-FB 정보 추가 + const enhancedDescription = [ + description, + '', + '---', + `[TK-FB-Project 연동]`, + `- 원본 이슈 ID: ${tk_issue_id}`, + `- 신고자: ${reporter_name || '미상'}`, + project_name ? `- 프로젝트: ${project_name}` : null, + ].filter(Boolean).join('\n'); + + // 사진 변환 (최대 5개) + const photoPromises = photos.slice(0, 5).map(convertImageToBase64); + const base64Photos = await Promise.all(photoPromises); + + // 요청 본문 구성 + const requestBody = { + category: mProjectCategory, + description: enhancedDescription, + project_id: M_PROJECT_CONFIG.defaultProjectId, + }; + + // 사진 추가 + base64Photos.forEach((photo, index) => { + if (photo) { + const fieldName = index === 0 ? 'photo' : `photo${index + 1}`; + requestBody[fieldName] = photo; + } + }); + + // M-Project API 호출 + const response = await fetch(`${M_PROJECT_CONFIG.baseUrl}/api/issues`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}`, + }, + body: JSON.stringify(requestBody), + }); + + if (!response.ok) { + const errorText = await response.text(); + logger.error('M-Project 이슈 생성 실패', { + status: response.status, + error: errorText, + tk_issue_id + }); + return { + success: false, + error: `M-Project API 오류: ${response.status}` + }; + } + + const createdIssue = await response.json(); + + logger.info('M-Project 이슈 생성 성공', { + tk_issue_id, + m_project_id: createdIssue.id + }); + + return { + success: true, + mProjectId: createdIssue.id + }; + } catch (error) { + logger.error('M-Project 연동 오류', { + tk_issue_id, + error: error.message + }); + return { + success: false, + error: error.message + }; + } +} + +/** + * M-Project에서 이슈 상태 조회 + * + * @param {number} mProjectId - M-Project 이슈 ID + * @returns {Promise<{success: boolean, status?: string, data?: Object, error?: string}>} + */ +async function getIssueStatus(mProjectId) { + const token = await getAuthToken(); + if (!token) { + return { success: false, error: 'M-Project 인증 실패' }; + } + + try { + const response = await fetch( + `${M_PROJECT_CONFIG.baseUrl}/api/issues/${mProjectId}`, + { + method: 'GET', + headers: { + 'Authorization': `Bearer ${token}`, + }, + } + ); + + if (!response.ok) { + return { + success: false, + error: `M-Project API 오류: ${response.status}` + }; + } + + const data = await response.json(); + + return { + success: true, + status: data.review_status || data.status, + data + }; + } catch (error) { + return { + success: false, + error: error.message + }; + } +} + +/** + * M-Project 상태를 TK-FB 상태로 매핑 + * @param {string} mProjectStatus - M-Project 상태 + * @returns {string} TK-FB-Project 상태 + */ +function mapStatusFromMProject(mProjectStatus) { + const statusMap = { + 'pending_review': 'received', + 'in_progress': 'in_progress', + 'completed': 'completed', + 'disposed': 'closed', + }; + return statusMap[mProjectStatus] || 'received'; +} + +/** + * M-Project 연결 테스트 + * @returns {Promise<{success: boolean, message: string}>} + */ +async function testConnection() { + try { + const token = await getAuthToken(); + if (!token) { + return { success: false, message: 'M-Project 인증 실패' }; + } + + // /api/auth/me로 연결 테스트 + const response = await fetch(`${M_PROJECT_CONFIG.baseUrl}/api/auth/me`, { + headers: { + 'Authorization': `Bearer ${token}`, + }, + }); + + if (response.ok) { + const user = await response.json(); + return { + success: true, + message: `M-Project 연결 성공 (사용자: ${user.username})` + }; + } else { + return { + success: false, + message: `M-Project 연결 실패: ${response.status}` + }; + } + } catch (error) { + return { + success: false, + message: `M-Project 연결 오류: ${error.message}` + }; + } +} + +module.exports = { + sendToMProject, + getIssueStatus, + mapStatusFromMProject, + testConnection, + mapCategoryToMProject, +}; diff --git a/deploy/tkfb-package/api.hyungi.net/services/toolsService.js b/deploy/tkfb-package/api.hyungi.net/services/toolsService.js new file mode 100644 index 0000000..bd3718a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/toolsService.js @@ -0,0 +1,171 @@ +/** + * 도구 관리 서비스 + * + * 도구(공구) 재고 및 위치 관리 관련 비즈니스 로직 처리 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const toolsModel = require('../models/toolsModel'); +const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); +const logger = require('../utils/logger'); + +/** + * 전체 도구 조회 + */ +const getAllToolsService = async () => { + logger.info('도구 목록 조회 요청'); + + try { + const rows = await toolsModel.getAll(); + + logger.info('도구 목록 조회 성공', { count: rows.length }); + + return rows; + } catch (error) { + logger.error('도구 목록 조회 실패', { error: error.message }); + throw new DatabaseError('도구 목록 조회 중 오류가 발생했습니다'); + } +}; + +/** + * 단일 도구 조회 + */ +const getToolByIdService = async (id) => { + // ID 검증 + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 도구 ID입니다'); + } + + logger.info('도구 조회 요청', { tool_id: id }); + + try { + const row = await toolsModel.getById(id); + + if (!row) { + logger.warn('도구를 찾을 수 없음', { tool_id: id }); + throw new NotFoundError('도구를 찾을 수 없습니다'); + } + + logger.info('도구 조회 성공', { tool_id: id }); + + return row; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + + logger.error('도구 조회 실패', { tool_id: id, error: error.message }); + throw new DatabaseError('도구 조회 중 오류가 발생했습니다'); + } +}; + +/** + * 도구 생성 + */ +const createToolService = async (toolData) => { + const { name, location, stock, status, factory_id } = toolData; + + // 필수 필드 검증 + if (!name) { + throw new ValidationError('도구 이름이 필요합니다', { + required: ['name'], + received: { name } + }); + } + + logger.info('도구 생성 요청', { name, location, stock, status }); + + try { + const insertId = await toolsModel.create(toolData); + + logger.info('도구 생성 성공', { tool_id: insertId, name }); + + return { tool_id: insertId }; + } catch (error) { + logger.error('도구 생성 실패', { + name, + error: error.message + }); + throw new DatabaseError('도구 생성 중 오류가 발생했습니다'); + } +}; + +/** + * 도구 수정 + */ +const updateToolService = async (id, toolData) => { + // ID 검증 + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 도구 ID입니다'); + } + + logger.info('도구 수정 요청', { tool_id: id, updates: toolData }); + + try { + const affectedRows = await toolsModel.update(id, toolData); + + if (affectedRows === 0) { + logger.warn('도구를 찾을 수 없거나 변경사항 없음', { tool_id: id }); + throw new NotFoundError('도구를 찾을 수 없습니다'); + } + + logger.info('도구 수정 성공', { tool_id: id, affectedRows }); + + return { changes: affectedRows }; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + + logger.error('도구 수정 실패', { + tool_id: id, + error: error.message + }); + throw new DatabaseError('도구 수정 중 오류가 발생했습니다'); + } +}; + +/** + * 도구 삭제 + */ +const deleteToolService = async (id) => { + // ID 검증 + if (!id || isNaN(id)) { + throw new ValidationError('유효하지 않은 도구 ID입니다'); + } + + logger.info('도구 삭제 요청', { tool_id: id }); + + try { + const affectedRows = await toolsModel.remove(id); + + if (affectedRows === 0) { + logger.warn('도구를 찾을 수 없음', { tool_id: id }); + throw new NotFoundError('도구를 찾을 수 없습니다'); + } + + logger.info('도구 삭제 성공', { tool_id: id, affectedRows }); + + return { changes: affectedRows }; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + + logger.error('도구 삭제 실패', { + tool_id: id, + error: error.message + }); + throw new DatabaseError('도구 삭제 중 오류가 발생했습니다'); + } +}; + +module.exports = { + getAllToolsService, + getToolByIdService, + createToolService, + updateToolService, + deleteToolService +}; diff --git a/deploy/tkfb-package/api.hyungi.net/services/uploadService.js b/deploy/tkfb-package/api.hyungi.net/services/uploadService.js new file mode 100644 index 0000000..89951cc --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/uploadService.js @@ -0,0 +1,96 @@ +/** + * 문서 업로드 관리 서비스 + * + * 파일 업로드 및 문서 메타데이터 관리 관련 비즈니스 로직 처리 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const uploadModel = require('../models/uploadModel'); +const { ValidationError, DatabaseError } = require('../utils/errors'); +const logger = require('../utils/logger'); + +/** + * 문서 업로드 생성 + */ +const createUploadService = async (uploadData) => { + const { + title, + tags, + description, + original_name, + stored_name, + file_path, + file_type, + file_size, + submitted_by + } = uploadData; + + // 필수 필드 검증 + if (!original_name || !stored_name || !file_path) { + throw new ValidationError('필수 필드가 누락되었습니다', { + required: ['original_name', 'stored_name', 'file_path'], + received: { original_name, stored_name, file_path } + }); + } + + logger.info('문서 업로드 생성 요청', { + title, + original_name, + file_type, + file_size, + submitted_by + }); + + try { + const insertId = await new Promise((resolve, reject) => { + uploadModel.create(uploadData, (err, id) => { + if (err) reject(err); + else resolve(id); + }); + }); + + logger.info('문서 업로드 생성 성공', { + upload_id: insertId, + original_name, + file_size + }); + + return { upload_id: insertId }; + } catch (error) { + logger.error('문서 업로드 생성 실패', { + original_name, + error: error.message + }); + throw new DatabaseError('문서 업로드 생성 중 오류가 발생했습니다'); + } +}; + +/** + * 전체 업로드 문서 조회 + */ +const getAllUploadsService = async () => { + logger.info('업로드 문서 목록 조회 요청'); + + try { + const rows = await new Promise((resolve, reject) => { + uploadModel.getAll((err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + logger.info('업로드 문서 목록 조회 성공', { count: rows.length }); + + return rows; + } catch (error) { + logger.error('업로드 문서 목록 조회 실패', { error: error.message }); + throw new DatabaseError('업로드 문서 목록 조회 중 오류가 발생했습니다'); + } +}; + +module.exports = { + createUploadService, + getAllUploadsService +}; diff --git a/deploy/tkfb-package/api.hyungi.net/services/weatherService.js b/deploy/tkfb-package/api.hyungi.net/services/weatherService.js new file mode 100644 index 0000000..7b7d2a7 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/weatherService.js @@ -0,0 +1,435 @@ +/** + * 날씨 API 서비스 + * + * 기상청 단기예보 API를 사용하여 현재 날씨 정보를 조회 + * 날씨 조건에 따른 안전 체크리스트 필터링 지원 + * + * @since 2026-02-02 + */ + +const axios = require('axios'); +const logger = require('../utils/logger'); +const { getDb } = require('../dbPool'); + +// 기상청 API 설정 +const WEATHER_BASE_URL = process.env.WEATHER_API_URL || 'https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0'; +const WEATHER_API = { + baseUrl: WEATHER_BASE_URL, + ultraShortUrl: `${WEATHER_BASE_URL}/getUltraSrtNcst`, + shortForecastUrl: `${WEATHER_BASE_URL}/getVilageFcst`, + apiKey: process.env.WEATHER_API_KEY || '', + // 화성시 남양읍 좌표 (격자 좌표) + // 위도: 37.2072, 경도: 126.8232 + defaultLocation: { + nx: 57, // 화성시 남양읍 X 좌표 + ny: 119 // 화성시 남양읍 Y 좌표 + } +}; + +// PTY (강수형태) 코드 +const PTY_CODES = { + 0: 'none', // 없음 + 1: 'rain', // 비 + 2: 'rain', // 비/눈 (혼합) + 3: 'snow', // 눈 + 4: 'rain', // 소나기 + 5: 'rain', // 빗방울 + 6: 'rain', // 빗방울/눈날림 + 7: 'snow' // 눈날림 +}; + +// SKY (하늘상태) 코드 +const SKY_CODES = { + 1: 'clear', // 맑음 + 3: 'cloudy', // 구름많음 + 4: 'overcast' // 흐림 +}; + +/** + * 현재 날씨 정보 조회 (초단기실황) + * @param {number} nx - 격자 X 좌표 (optional) + * @param {number} ny - 격자 Y 좌표 (optional) + * @returns {Promise} 날씨 데이터 + */ +async function getCurrentWeather(nx = WEATHER_API.defaultLocation.nx, ny = WEATHER_API.defaultLocation.ny) { + if (!WEATHER_API.apiKey) { + logger.warn('날씨 API 키가 설정되지 않음. 기본값 반환'); + return getDefaultWeatherData(); + } + + try { + // 한국 시간 기준으로 base_date, base_time 계산 + const { baseDate, baseTime } = getBaseDateTime(); + + logger.info('날씨 API 호출', { baseDate, baseTime, nx, ny }); + + // Encoding 키는 이미 URL 인코딩되어 있으므로 직접 URL에 추가 (이중 인코딩 방지) + const url = `${WEATHER_API.ultraShortUrl}?serviceKey=${WEATHER_API.apiKey}` + + `&pageNo=1&numOfRows=10&dataType=JSON` + + `&base_date=${baseDate}&base_time=${baseTime}` + + `&nx=${nx}&ny=${ny}`; + + const response = await axios.get(url, { timeout: 5000 }); + + if (response.data?.response?.header?.resultCode !== '00') { + throw new Error(`API 오류: ${response.data?.response?.header?.resultMsg}`); + } + + const items = response.data.response.body.items.item; + const weatherData = parseWeatherItems(items); + + logger.info('날씨 데이터 파싱 완료', weatherData); + + return weatherData; + } catch (error) { + logger.error('날씨 API 호출 실패', { error: error.message }); + return getDefaultWeatherData(); + } +} + +/** + * 날씨 API 응답 파싱 + */ +function parseWeatherItems(items) { + const data = { + temperature: null, + humidity: null, + windSpeed: null, + precipitation: null, + precipitationType: null, + skyCondition: null + }; + + if (!items || !Array.isArray(items)) { + return data; + } + + items.forEach(item => { + switch (item.category) { + case 'T1H': // 기온 + data.temperature = parseFloat(item.obsrValue); + break; + case 'REH': // 습도 + data.humidity = parseInt(item.obsrValue); + break; + case 'WSD': // 풍속 + data.windSpeed = parseFloat(item.obsrValue); + break; + case 'RN1': // 1시간 강수량 + data.precipitation = parseFloat(item.obsrValue) || 0; + break; + case 'PTY': // 강수형태 + data.precipitationType = parseInt(item.obsrValue); + break; + } + }); + + return data; +} + +/** + * 날씨 데이터를 기반으로 조건 판단 + * @param {Object} weatherData - 날씨 데이터 + * @returns {Promise} 해당하는 날씨 조건 코드 배열 + */ +async function determineWeatherConditions(weatherData) { + const conditions = []; + + // DB에서 날씨 조건 기준 조회 + const db = await getDb(); + const [thresholds] = await db.execute(` + SELECT condition_code, temp_threshold_min, temp_threshold_max, + wind_threshold, precip_threshold + FROM weather_conditions + WHERE is_active = TRUE + `); + + // 조건 판단 + thresholds.forEach(threshold => { + let matches = false; + + switch (threshold.condition_code) { + case 'rain': + // 강수형태가 비(1,2,4,5,6) 또는 강수량 > 0 + if (weatherData.precipitationType && PTY_CODES[weatherData.precipitationType] === 'rain') { + matches = true; + } else if (weatherData.precipitation > 0 && threshold.precip_threshold !== null) { + matches = weatherData.precipitation >= threshold.precip_threshold; + } + break; + + case 'snow': + // 강수형태가 눈(3,7) + if (weatherData.precipitationType && PTY_CODES[weatherData.precipitationType] === 'snow') { + matches = true; + } + break; + + case 'heat': + // 기온이 폭염 기준 이상 + if (weatherData.temperature !== null && threshold.temp_threshold_min !== null) { + matches = weatherData.temperature >= threshold.temp_threshold_min; + } + break; + + case 'cold': + // 기온이 한파 기준 이하 + if (weatherData.temperature !== null && threshold.temp_threshold_max !== null) { + matches = weatherData.temperature <= threshold.temp_threshold_max; + } + break; + + case 'wind': + // 풍속이 강풍 기준 이상 + if (weatherData.windSpeed !== null && threshold.wind_threshold !== null) { + matches = weatherData.windSpeed >= threshold.wind_threshold; + } + break; + + case 'clear': + // 강수 없고 기온이 정상 범위 + if (!weatherData.precipitationType || weatherData.precipitationType === 0) { + if (weatherData.temperature !== null && + weatherData.temperature > -10 && weatherData.temperature < 35) { + matches = true; + } + } + break; + } + + if (matches) { + conditions.push(threshold.condition_code); + } + }); + + // 조건이 없으면 기본으로 'clear' 추가 + if (conditions.length === 0) { + conditions.push('clear'); + } + + logger.info('날씨 조건 판단 완료', { weatherData, conditions }); + + return conditions; +} + +/** + * TBM 세션에 날씨 정보 저장 + * @param {number} sessionId - TBM 세션 ID + * @param {Object} weatherData - 날씨 데이터 + * @param {string[]} conditions - 날씨 조건 배열 + */ +async function saveWeatherRecord(sessionId, weatherData, conditions) { + const db = await getDb(); + + try { + const weatherDate = new Date().toISOString().split('T')[0]; + + await db.execute(` + INSERT INTO tbm_weather_records + (session_id, weather_date, temperature, humidity, wind_speed, precipitation, + weather_condition, weather_conditions, data_source, fetched_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'api', NOW()) + ON DUPLICATE KEY UPDATE + temperature = VALUES(temperature), + humidity = VALUES(humidity), + wind_speed = VALUES(wind_speed), + precipitation = VALUES(precipitation), + weather_condition = VALUES(weather_condition), + weather_conditions = VALUES(weather_conditions), + fetched_at = NOW() + `, [ + sessionId, + weatherDate, + weatherData.temperature, + weatherData.humidity, + weatherData.windSpeed, + weatherData.precipitation, + conditions[0] || 'clear', // 주요 조건 + JSON.stringify(conditions) // 모든 조건 + ]); + + logger.info('날씨 기록 저장 완료', { sessionId, conditions }); + return { success: true }; + } catch (error) { + logger.error('날씨 기록 저장 실패', { sessionId, error: error.message }); + throw error; + } +} + +/** + * TBM 세션의 날씨 기록 조회 + * @param {number} sessionId - TBM 세션 ID + */ +async function getWeatherRecord(sessionId) { + const db = await getDb(); + + const [rows] = await db.execute(` + SELECT wr.*, wc.condition_name, wc.icon + FROM tbm_weather_records wr + LEFT JOIN weather_conditions wc ON wr.weather_condition = wc.condition_code + WHERE wr.session_id = ? + `, [sessionId]); + + if (rows.length === 0) { + return null; + } + + const record = rows[0]; + // JSON 문자열 파싱 + if (record.weather_conditions && typeof record.weather_conditions === 'string') { + try { + record.weather_conditions = JSON.parse(record.weather_conditions); + } catch (e) { + record.weather_conditions = []; + } + } + + return record; +} + +/** + * 날씨 조건 코드 목록 조회 + */ +async function getWeatherConditionList() { + const db = await getDb(); + + const [rows] = await db.execute(` + SELECT condition_code, condition_name, description, icon, + temp_threshold_min, temp_threshold_max, wind_threshold, precip_threshold + FROM weather_conditions + WHERE is_active = TRUE + ORDER BY display_order + `); + + return rows; +} + +/** + * 기본 날씨 데이터 반환 (API 실패 시) + */ +function getDefaultWeatherData() { + return { + temperature: 20, + humidity: 50, + windSpeed: 2, + precipitation: 0, + precipitationType: 0, + skyCondition: 'clear', + isDefault: true + }; +} + +/** + * 기상청 API용 기준 날짜/시간 계산 + * 한국 시간(KST, UTC+9) 기준으로 계산 + * 매시간 정각에 생성되고 10분 후에 제공됨 + * @returns {{ baseDate: string, baseTime: string }} + */ +function getBaseDateTime() { + // 한국 시간으로 변환 (UTC + 9시간) + const now = new Date(); + const kstOffset = 9 * 60 * 60 * 1000; // 9시간을 밀리초로 + const kstDate = new Date(now.getTime() + kstOffset); + + let year = kstDate.getUTCFullYear(); + let month = kstDate.getUTCMonth() + 1; + let day = kstDate.getUTCDate(); + let hours = kstDate.getUTCHours(); + let minutes = kstDate.getUTCMinutes(); + + // 10분 이전이면 이전 시간 데이터 사용 + if (minutes < 10) { + hours = hours - 1; + if (hours < 0) { + hours = 23; + // 전날로 변경 + const prevDay = new Date(kstDate.getTime() - 24 * 60 * 60 * 1000); + year = prevDay.getUTCFullYear(); + month = prevDay.getUTCMonth() + 1; + day = prevDay.getUTCDate(); + } + } + + const baseDate = `${year}${String(month).padStart(2, '0')}${String(day).padStart(2, '0')}`; + const baseTime = String(hours).padStart(2, '0') + '00'; + + return { baseDate, baseTime }; +} + +/** + * 날짜 포맷 (YYYYMMDD) - 호환성 유지용 + * @deprecated getBaseDateTime() 사용 권장 + */ +function formatDate(date) { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${year}${month}${day}`; +} + +/** + * @deprecated getBaseDateTime() 사용 권장 + */ +function getBaseTime(date) { + let hours = date.getHours(); + let minutes = date.getMinutes(); + + if (minutes < 10) { + hours = hours - 1; + if (hours < 0) hours = 23; + } + + return String(hours).padStart(2, '0') + '00'; +} + +/** + * 위경도를 기상청 격자 좌표로 변환 + * LCC (Lambert Conformal Conic) 투영법 사용 + */ +function convertToGrid(lat, lon) { + const RE = 6371.00877; // 지구 반경(km) + const GRID = 5.0; // 격자 간격(km) + const SLAT1 = 30.0; // 투영 위도1(degree) + const SLAT2 = 60.0; // 투영 위도2(degree) + const OLON = 126.0; // 기준점 경도(degree) + const OLAT = 38.0; // 기준점 위도(degree) + const XO = 43; // 기준점 X좌표(GRID) + const YO = 136; // 기준점 Y좌표(GRID) + + const DEGRAD = Math.PI / 180.0; + + const re = RE / GRID; + const slat1 = SLAT1 * DEGRAD; + const slat2 = SLAT2 * DEGRAD; + const olon = OLON * DEGRAD; + const olat = OLAT * DEGRAD; + + let sn = Math.tan(Math.PI * 0.25 + slat2 * 0.5) / Math.tan(Math.PI * 0.25 + slat1 * 0.5); + sn = Math.log(Math.cos(slat1) / Math.cos(slat2)) / Math.log(sn); + let sf = Math.tan(Math.PI * 0.25 + slat1 * 0.5); + sf = Math.pow(sf, sn) * Math.cos(slat1) / sn; + let ro = Math.tan(Math.PI * 0.25 + olat * 0.5); + ro = re * sf / Math.pow(ro, sn); + + let ra = Math.tan(Math.PI * 0.25 + lat * DEGRAD * 0.5); + ra = re * sf / Math.pow(ra, sn); + let theta = lon * DEGRAD - olon; + if (theta > Math.PI) theta -= 2.0 * Math.PI; + if (theta < -Math.PI) theta += 2.0 * Math.PI; + theta *= sn; + + const x = Math.floor(ra * Math.sin(theta) + XO + 0.5); + const y = Math.floor(ro - ra * Math.cos(theta) + YO + 0.5); + + return { nx: x, ny: y }; +} + +module.exports = { + getCurrentWeather, + determineWeatherConditions, + saveWeatherRecord, + getWeatherRecord, + getWeatherConditionList, + convertToGrid, + getDefaultWeatherData +}; diff --git a/deploy/tkfb-package/api.hyungi.net/services/workAnalysisService.js b/deploy/tkfb-package/api.hyungi.net/services/workAnalysisService.js new file mode 100644 index 0000000..c080719 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/workAnalysisService.js @@ -0,0 +1,109 @@ +/** + * Work Analysis Service + * + * Handles complex business logic and data aggregation for detailed work analysis reports + * + * @author TK-FB-Project + * @since 2025-12-19 + */ + +const { getDb } = require('../dbPool'); +const WorkAnalysis = require('../models/WorkAnalysis'); +const logger = require('../utils/logger'); +const { DatabaseError } = require('../utils/errors'); + +class WorkAnalysisService { + constructor() { + this.db = null; + this.model = null; + } + + async init() { + if (!this.db) { + this.db = await getDb(); + this.model = new WorkAnalysis(this.db); + } + } + + /** + * 프로젝트별-작업별 시간 분석 및 집계 (Service Layer logic) + */ + async getProjectWorkTypeAnalysis(startDate, endDate) { + await this.init(); + + try { + // 1. Get Raw Data from Model + const rawData = await this.model.getProjectWorkTypeRawData(startDate, endDate); + + // 2. Process and Group Data + const groupedData = {}; + + rawData.forEach(row => { + const projectKey = `${row.project_id}_${row.project_name}`; + + if (!groupedData[projectKey]) { + groupedData[projectKey] = { + project_id: row.project_id, + project_name: row.project_name, + job_no: row.job_no, + total_project_hours: 0, + total_regular_hours: 0, + total_error_hours: 0, + work_types: [] + }; + } + + // Project Totals Accumulation + groupedData[projectKey].total_project_hours += parseFloat(row.total_hours); + groupedData[projectKey].total_regular_hours += parseFloat(row.regular_hours); + groupedData[projectKey].total_error_hours += parseFloat(row.error_hours); + + // Add WorkType Entry + groupedData[projectKey].work_types.push({ + work_type_id: row.work_type_id, + work_type_name: row.work_type_name, + total_hours: parseFloat(row.total_hours), + regular_hours: parseFloat(row.regular_hours), + error_hours: parseFloat(row.error_hours), + total_reports: row.total_reports, + regular_reports: row.regular_reports, + error_reports: row.error_reports, + error_rate_percent: parseFloat(row.error_rate_percent) || 0 + }); + }); + + // 3. Calculate Project Error Rates + Object.values(groupedData).forEach(project => { + project.project_error_rate = project.total_project_hours > 0 + ? Math.round((project.total_error_hours / project.total_project_hours) * 100 * 100) / 100 + : 0; + }); + + // 4. Calculate Grand Totals + const totalStats = { + total_projects: Object.keys(groupedData).length, + total_work_types: new Set(rawData.map(r => r.work_type_id)).size, + grand_total_hours: Object.values(groupedData).reduce((sum, p) => sum + p.total_project_hours, 0), + grand_regular_hours: Object.values(groupedData).reduce((sum, p) => sum + p.total_regular_hours, 0), + grand_error_hours: Object.values(groupedData).reduce((sum, p) => sum + p.total_error_hours, 0) + }; + + totalStats.grand_error_rate = totalStats.grand_total_hours > 0 + ? Math.round((totalStats.grand_error_hours / totalStats.grand_total_hours) * 100 * 100) / 100 + : 0; + + return { + summary: totalStats, + projects: Object.values(groupedData), + period: { start: startDate, end: endDate } + }; + + } catch (error) { + logger.error('Service: 프로젝트별-작업별 시간 분석 처리 실패', { error: error.message }); + // Re-throw as DatabaseError to maintain consistency with controller expectation, or custom ServiceError + throw new DatabaseError(`분석 데이터 처리 중 오류 발생: ${error.message}`); + } + } +} + +module.exports = new WorkAnalysisService(); diff --git a/deploy/tkfb-package/api.hyungi.net/services/workReportService.js b/deploy/tkfb-package/api.hyungi.net/services/workReportService.js new file mode 100644 index 0000000..f1b0daf --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/services/workReportService.js @@ -0,0 +1,488 @@ +/** + * 작업 보고서 관리 서비스 + * + * 작업 보고서 CRUD 및 조회 관련 비즈니스 로직 처리 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const workReportModel = require('../models/workReportModel'); +const { ValidationError, NotFoundError, DatabaseError } = require('../utils/errors'); +const logger = require('../utils/logger'); +const { getDb } = require('../dbPool'); + +/** + * 작업 보고서 생성 (단일 또는 다중) + */ +const createWorkReportService = async (reportData) => { + const reports = Array.isArray(reportData) ? reportData : [reportData]; + + if (reports.length === 0) { + throw new ValidationError('보고서 데이터가 필요합니다'); + } + + logger.info('작업 보고서 생성 요청', { count: reports.length }); + + const workReport_ids = []; + + try { + for (const report of reports) { + const id = await new Promise((resolve, reject) => { + workReportModel.create(report, (err, insertId) => { + if (err) reject(err); + else resolve(insertId); + }); + }); + workReport_ids.push(id); + } + + logger.info('작업 보고서 생성 성공', { + count: workReport_ids.length, + ids: workReport_ids + }); + + return { workReport_ids }; + } catch (error) { + logger.error('작업 보고서 생성 실패', { + count: reports.length, + error: error.message + }); + throw new DatabaseError('작업 보고서 생성 중 오류가 발생했습니다'); + } +}; + +/** + * 날짜별 작업 보고서 조회 + */ +const getWorkReportsByDateService = async (date) => { + if (!date) { + throw new ValidationError('날짜가 필요합니다', { + required: ['date'], + received: { date } + }); + } + + logger.info('작업 보고서 날짜별 조회 요청', { date }); + + try { + const rows = await new Promise((resolve, reject) => { + workReportModel.getAllByDate(date, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + logger.info('작업 보고서 조회 성공', { date, count: rows.length }); + + return rows; + } catch (error) { + logger.error('작업 보고서 조회 실패', { date, error: error.message }); + throw new DatabaseError('작업 보고서 조회 중 오류가 발생했습니다'); + } +}; + +/** + * 기간별 작업 보고서 조회 + */ +const getWorkReportsInRangeService = async (start, end) => { + if (!start || !end) { + throw new ValidationError('시작일과 종료일이 필요합니다', { + required: ['start', 'end'], + received: { start, end } + }); + } + + logger.info('작업 보고서 기간별 조회 요청', { start, end }); + + try { + const rows = await new Promise((resolve, reject) => { + workReportModel.getByRange(start, end, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + logger.info('작업 보고서 조회 성공', { start, end, count: rows.length }); + + return rows; + } catch (error) { + logger.error('작업 보고서 조회 실패', { start, end, error: error.message }); + throw new DatabaseError('작업 보고서 조회 중 오류가 발생했습니다'); + } +}; + +/** + * 단일 작업 보고서 조회 + */ +const getWorkReportByIdService = async (id) => { + if (!id) { + throw new ValidationError('보고서 ID가 필요합니다'); + } + + logger.info('작업 보고서 조회 요청', { report_id: id }); + + try { + const row = await new Promise((resolve, reject) => { + workReportModel.getById(id, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + if (!row) { + logger.warn('작업 보고서를 찾을 수 없음', { report_id: id }); + throw new NotFoundError('작업 보고서를 찾을 수 없습니다'); + } + + logger.info('작업 보고서 조회 성공', { report_id: id }); + + return row; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + + logger.error('작업 보고서 조회 실패', { report_id: id, error: error.message }); + throw new DatabaseError('작업 보고서 조회 중 오류가 발생했습니다'); + } +}; + +/** + * 작업 보고서 수정 + */ +const updateWorkReportService = async (id, updateData) => { + if (!id) { + throw new ValidationError('보고서 ID가 필요합니다'); + } + + logger.info('작업 보고서 수정 요청', { report_id: id }); + + try { + const changes = await new Promise((resolve, reject) => { + workReportModel.update(id, updateData, (err, affectedRows) => { + if (err) reject(err); + else resolve(affectedRows); + }); + }); + + if (changes === 0) { + logger.warn('작업 보고서를 찾을 수 없거나 변경사항 없음', { report_id: id }); + throw new NotFoundError('작업 보고서를 찾을 수 없습니다'); + } + + logger.info('작업 보고서 수정 성공', { report_id: id, changes }); + + return { changes }; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + + logger.error('작업 보고서 수정 실패', { report_id: id, error: error.message }); + throw new DatabaseError('작업 보고서 수정 중 오류가 발생했습니다'); + } +}; + +/** + * 작업 보고서 삭제 + */ +const removeWorkReportService = async (id) => { + if (!id) { + throw new ValidationError('보고서 ID가 필요합니다'); + } + + logger.info('작업 보고서 삭제 요청', { report_id: id }); + + try { + const changes = await new Promise((resolve, reject) => { + workReportModel.remove(id, (err, affectedRows) => { + if (err) reject(err); + else resolve(affectedRows); + }); + }); + + if (changes === 0) { + logger.warn('작업 보고서를 찾을 수 없음', { report_id: id }); + throw new NotFoundError('작업 보고서를 찾을 수 없습니다'); + } + + logger.info('작업 보고서 삭제 성공', { report_id: id, changes }); + + return { changes }; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + + logger.error('작업 보고서 삭제 실패', { report_id: id, error: error.message }); + throw new DatabaseError('작업 보고서 삭제 중 오류가 발생했습니다'); + } +}; + +/** + * 월간 요약 조회 + */ +const getSummaryService = async (year, month) => { + if (!year || !month) { + throw new ValidationError('연도와 월이 필요합니다', { + required: ['year', 'month'], + received: { year, month } + }); + } + + const start = `${year.padStart(4, '0')}-${month.padStart(2, '0')}-01`; + const end = `${year.padStart(4, '0')}-${month.padStart(2, '0')}-31`; + + logger.info('작업 보고서 월간 요약 조회 요청', { year, month, start, end }); + + try { + const rows = await new Promise((resolve, reject) => { + workReportModel.getByRange(start, end, (err, data) => { + if (err) reject(err); + else resolve(data); + }); + }); + + if (!rows || rows.length === 0) { + logger.warn('월간 요약 데이터 없음', { year, month }); + throw new NotFoundError('해당 기간의 작업 보고서가 없습니다'); + } + + logger.info('작업 보고서 월간 요약 조회 성공', { + year, + month, + count: rows.length + }); + + return rows; + } catch (error) { + if (error instanceof NotFoundError) { + throw error; + } + + logger.error('작업 보고서 월간 요약 조회 실패', { + year, + month, + error: error.message + }); + throw new DatabaseError('월간 요약 조회 중 오류가 발생했습니다'); + } +}; + +// ========== 부적합 원인 관리 서비스 ========== + +/** + * 작업 보고서의 부적합 원인 목록 조회 + * - error_type_id 또는 issue_report_id 중 하나로 연결 + */ +const getReportDefectsService = async (reportId) => { + const db = await getDb(); + try { + const [rows] = await db.execute(` + SELECT + d.defect_id, + d.report_id, + d.error_type_id, + d.issue_report_id, + d.defect_hours, + d.note, + d.created_at, + et.name as error_type_name, + et.severity as error_severity, + ir.content as issue_content, + ir.status as issue_status, + irc.category_name as issue_category_name, + irc.severity as issue_severity, + iri.item_name as issue_item_name + FROM work_report_defects d + LEFT JOIN error_types et ON d.error_type_id = et.id + LEFT JOIN work_issue_reports ir ON d.issue_report_id = ir.report_id + LEFT JOIN issue_report_categories irc ON ir.category_id = irc.category_id + LEFT JOIN issue_report_items iri ON ir.item_id = iri.item_id + WHERE d.report_id = ? + ORDER BY d.created_at + `, [reportId]); + + return rows; + } catch (error) { + logger.error('부적합 원인 조회 실패', { reportId, error: error.message }); + throw new DatabaseError('부적합 원인 조회 중 오류가 발생했습니다'); + } +}; + +/** + * 부적합 원인 저장 (전체 교체) + * - error_type_id 또는 issue_report_id 중 하나 사용 가능 + * - issue_report_id: 신고된 이슈와 연결 + * - error_type_id: 기존 오류 유형 (레거시) + */ +const saveReportDefectsService = async (reportId, defects) => { + const db = await getDb(); + try { + await db.query('START TRANSACTION'); + + // 기존 부적합 원인 삭제 + await db.execute('DELETE FROM work_report_defects WHERE report_id = ?', [reportId]); + + // 새 부적합 원인 추가 + if (defects && defects.length > 0) { + for (const defect of defects) { + // issue_report_id > category_id/item_id > error_type_id 순으로 우선 + await db.execute(` + INSERT INTO work_report_defects (report_id, error_type_id, issue_report_id, category_id, item_id, defect_hours, note) + VALUES (?, ?, ?, ?, ?, ?, ?) + `, [ + reportId, + (defect.issue_report_id || defect.category_id) ? null : (defect.error_type_id || null), + defect.issue_report_id || null, + defect.category_id || null, + defect.item_id || null, + defect.defect_hours || 0, + defect.note || null + ]); + } + } + + // 총 부적합 시간 계산 및 daily_work_reports 업데이트 + const totalErrorHours = defects + ? defects.reduce((sum, d) => sum + (parseFloat(d.defect_hours) || 0), 0) + : 0; + + // 첫 번째 defect의 error_type_id를 대표값으로 (레거시 호환) + const firstErrorTypeId = defects && defects.length > 0 + ? (defects.find(d => d.error_type_id)?.error_type_id || null) + : null; + + await db.execute(` + UPDATE daily_work_reports + SET error_hours = ?, + error_type_id = ?, + work_status_id = ? + WHERE id = ? + `, [ + totalErrorHours, + firstErrorTypeId, + totalErrorHours > 0 ? 2 : 1, + reportId + ]); + + await db.query('COMMIT'); + + logger.info('부적합 원인 저장 성공', { reportId, count: defects?.length || 0 }); + return { success: true, count: defects?.length || 0, totalErrorHours }; + } catch (error) { + await db.query('ROLLBACK'); + logger.error('부적합 원인 저장 실패', { reportId, error: error.message }); + throw new DatabaseError('부적합 원인 저장 중 오류가 발생했습니다'); + } +}; + +/** + * 부적합 원인 추가 (단일) + * - issue_report_id 또는 error_type_id 중 하나 사용 + */ +const addReportDefectService = async (reportId, defectData) => { + const db = await getDb(); + try { + const [result] = await db.execute(` + INSERT INTO work_report_defects (report_id, error_type_id, issue_report_id, defect_hours, note) + VALUES (?, ?, ?, ?, ?) + `, [ + reportId, + defectData.issue_report_id ? null : (defectData.error_type_id || null), + defectData.issue_report_id || null, + defectData.defect_hours || 0, + defectData.note || null + ]); + + // 총 부적합 시간 업데이트 + await updateTotalErrorHours(reportId); + + logger.info('부적합 원인 추가 성공', { reportId, defectId: result.insertId }); + return { success: true, defect_id: result.insertId }; + } catch (error) { + logger.error('부적합 원인 추가 실패', { reportId, error: error.message }); + throw new DatabaseError('부적합 원인 추가 중 오류가 발생했습니다'); + } +}; + +/** + * 부적합 원인 삭제 + */ +const removeReportDefectService = async (defectId) => { + const db = await getDb(); + try { + // report_id 먼저 조회 + const [defect] = await db.execute('SELECT report_id FROM work_report_defects WHERE defect_id = ?', [defectId]); + if (defect.length === 0) { + throw new NotFoundError('부적합 원인을 찾을 수 없습니다'); + } + + const reportId = defect[0].report_id; + + // 삭제 + await db.execute('DELETE FROM work_report_defects WHERE defect_id = ?', [defectId]); + + // 총 부적합 시간 업데이트 + await updateTotalErrorHours(reportId); + + logger.info('부적합 원인 삭제 성공', { defectId, reportId }); + return { success: true }; + } catch (error) { + if (error instanceof NotFoundError) throw error; + logger.error('부적합 원인 삭제 실패', { defectId, error: error.message }); + throw new DatabaseError('부적합 원인 삭제 중 오류가 발생했습니다'); + } +}; + +/** + * 총 부적합 시간 업데이트 헬퍼 + * - issue_report_id가 있는 경우도 고려 + */ +const updateTotalErrorHours = async (reportId) => { + const db = await getDb(); + const [result] = await db.execute(` + SELECT COALESCE(SUM(defect_hours), 0) as total + FROM work_report_defects + WHERE report_id = ? + `, [reportId]); + + const totalErrorHours = result[0].total || 0; + + // 첫 번째 부적합 원인의 error_type_id를 대표값으로 사용 (레거시 호환) + // issue_report_id만 있는 경우 error_type_id는 null + const [firstDefect] = await db.execute(` + SELECT error_type_id FROM work_report_defects + WHERE report_id = ? AND error_type_id IS NOT NULL + ORDER BY created_at LIMIT 1 + `, [reportId]); + + await db.execute(` + UPDATE daily_work_reports + SET error_hours = ?, + error_type_id = ?, + work_status_id = ? + WHERE id = ? + `, [ + totalErrorHours, + firstDefect.length > 0 ? firstDefect[0].error_type_id : null, + totalErrorHours > 0 ? 2 : 1, + reportId + ]); +}; + +module.exports = { + createWorkReportService, + getWorkReportsByDateService, + getWorkReportsInRangeService, + getWorkReportByIdService, + updateWorkReportService, + removeWorkReportService, + getSummaryService, + // 부적합 원인 관리 + getReportDefectsService, + saveReportDefectsService, + addReportDefectService, + removeReportDefectService +}; diff --git a/deploy/tkfb-package/api.hyungi.net/setup-attendance-db.js b/deploy/tkfb-package/api.hyungi.net/setup-attendance-db.js new file mode 100644 index 0000000..284124a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/setup-attendance-db.js @@ -0,0 +1,177 @@ +const { getDb } = require('./dbPool'); +const fs = require('fs'); +const path = require('path'); + +async function setupAttendanceDB() { + try { + console.log('🚀 근태 관리 DB 설정 시작...'); + + const db = await getDb(); + + // 1. 근로 유형 테이블 생성 + console.log('📋 근로 유형 테이블 생성 중...'); + await db.execute(` + CREATE TABLE IF NOT EXISTS work_attendance_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + type_code VARCHAR(20) NOT NULL UNIQUE COMMENT '근로 유형 코드', + type_name VARCHAR(50) NOT NULL COMMENT '근로 유형명', + description TEXT COMMENT '설명', + is_active BOOLEAN DEFAULT TRUE COMMENT '활성 상태', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + ) COMMENT='근로 유형 관리 테이블' + `); + + // 2. 휴가 유형 테이블 생성 + console.log('🏖️ 휴가 유형 테이블 생성 중...'); + await db.execute(` + CREATE TABLE IF NOT EXISTS vacation_types ( + id INT PRIMARY KEY AUTO_INCREMENT, + type_code VARCHAR(20) NOT NULL UNIQUE COMMENT '휴가 유형 코드', + type_name VARCHAR(50) NOT NULL COMMENT '휴가 유형명', + hours_deduction DECIMAL(4,2) NOT NULL COMMENT '차감 시간', + description TEXT COMMENT '설명', + is_active BOOLEAN DEFAULT TRUE COMMENT '활성 상태', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + ) COMMENT='휴가 유형 관리 테이블' + `); + + // 3. 일일 근태 기록 테이블 생성 + console.log('📊 일일 근태 기록 테이블 생성 중...'); + await db.execute(` + CREATE TABLE IF NOT EXISTS daily_attendance_records ( + id INT PRIMARY KEY AUTO_INCREMENT, + record_date DATE NOT NULL COMMENT '기록 날짜', + worker_id INT NOT NULL COMMENT '작업자 ID', + total_work_hours DECIMAL(4,2) DEFAULT 0 COMMENT '총 작업 시간', + attendance_type_id INT COMMENT '근로 유형 ID', + vacation_type_id INT NULL COMMENT '휴가 유형 ID', + is_vacation_processed BOOLEAN DEFAULT FALSE COMMENT '휴가 처리 여부', + overtime_approved BOOLEAN DEFAULT FALSE COMMENT '초과근무 승인 여부', + overtime_approved_by INT NULL COMMENT '초과근무 승인자 ID', + overtime_approved_at TIMESTAMP NULL COMMENT '초과근무 승인 시간', + status ENUM('incomplete', 'partial', 'complete', 'overtime', 'vacation', 'error') DEFAULT 'incomplete' COMMENT '상태', + notes TEXT COMMENT '비고', + created_by INT NOT NULL COMMENT '생성자 ID', + updated_by INT NULL COMMENT '수정자 ID', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + UNIQUE KEY unique_worker_date (worker_id, record_date), + INDEX idx_record_date (record_date), + INDEX idx_worker_date (worker_id, record_date), + INDEX idx_status (status) + ) COMMENT='일일 근태 기록 테이블' + `); + + // 4. 작업자 휴가 잔여 관리 테이블 생성 + console.log('📅 휴가 잔여 관리 테이블 생성 중...'); + await db.execute(` + CREATE TABLE IF NOT EXISTS worker_vacation_balance ( + id INT PRIMARY KEY AUTO_INCREMENT, + worker_id INT NOT NULL COMMENT '작업자 ID', + year YEAR NOT NULL COMMENT '연도', + total_annual_leave DECIMAL(4,2) DEFAULT 15.0 COMMENT '연간 총 연차 (일)', + used_annual_leave DECIMAL(4,2) DEFAULT 0 COMMENT '사용한 연차 (일)', + remaining_annual_leave DECIMAL(4,2) GENERATED ALWAYS AS (total_annual_leave - used_annual_leave) STORED COMMENT '잔여 연차 (일)', + notes TEXT COMMENT '비고', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + UNIQUE KEY unique_worker_year (worker_id, year), + INDEX idx_worker_year (worker_id, year) + ) COMMENT='작업자별 휴가 잔여 관리 테이블' + `); + + // 5. 기본 데이터 삽입 + console.log('📝 기본 데이터 삽입 중...'); + + // 근로 유형 기본 데이터 + await db.execute(` + INSERT IGNORE INTO work_attendance_types (type_code, type_name, description) VALUES + ('REGULAR', '정시근로', '8시간 정규 근무'), + ('OVERTIME', '연장근로', '8시간 초과 근무'), + ('PARTIAL', '부분근로', '8시간 미만 근무'), + ('VACATION', '휴가근로', '휴가와 함께하는 부분 근무') + `); + + // 휴가 유형 기본 데이터 + await db.execute(` + INSERT IGNORE INTO vacation_types (type_code, type_name, hours_deduction, description) VALUES + ('ANNUAL_FULL', '연차', 8.0, '하루 전체 연차'), + ('ANNUAL_HALF', '반차', 4.0, '반일 연차'), + ('ANNUAL_QUARTER', '반반차', 2.0, '1/4일 연차'), + ('SICK_FULL', '병가', 8.0, '하루 전체 병가'), + ('SICK_HALF', '반일병가', 4.0, '반일 병가'), + ('PERSONAL_FULL', '개인사유', 8.0, '개인사유로 인한 휴가'), + ('PERSONAL_HALF', '반일개인사유', 4.0, '반일 개인사유 휴가') + `); + + // 6. 휴가 전용 작업 유형 추가 + console.log('🏖️ 휴가 전용 작업 유형 추가 중...'); + await db.execute(` + INSERT IGNORE INTO work_types (name, description, is_active) VALUES + ('휴가', '연차, 반차, 병가 등 휴가 처리용', TRUE) + `); + + // 7. daily_work_reports 테이블에 근태 기록 연결 컬럼 추가 (이미 있으면 무시) + try { + await db.execute(` + ALTER TABLE daily_work_reports + ADD COLUMN attendance_record_id INT NULL COMMENT '근태 기록 ID' AFTER updated_by + `); + console.log('✅ daily_work_reports 테이블에 attendance_record_id 컬럼 추가됨'); + } catch (error) { + if (error.code !== 'ER_DUP_FIELDNAME') { + console.log('⚠️ attendance_record_id 컬럼 추가 실패 (이미 존재할 수 있음):', error.message); + } else { + console.log('✅ attendance_record_id 컬럼이 이미 존재함'); + } + } + + // 8. 인덱스 추가 + try { + await db.execute(`CREATE INDEX idx_attendance_record ON daily_work_reports(attendance_record_id)`); + console.log('✅ attendance_record_id 인덱스 추가됨'); + } catch (error) { + console.log('⚠️ 인덱스 추가 실패 (이미 존재할 수 있음):', error.message); + } + + try { + await db.execute(`CREATE INDEX idx_daily_work_reports_worker_date ON daily_work_reports(worker_id, report_date)`); + console.log('✅ worker_date 인덱스 추가됨'); + } catch (error) { + console.log('⚠️ 인덱스 추가 실패 (이미 존재할 수 있음):', error.message); + } + + console.log('🎉 근태 관리 DB 설정 완료!'); + console.log(''); + console.log('📋 생성된 테이블:'); + console.log(' - work_attendance_types (근로 유형)'); + console.log(' - vacation_types (휴가 유형)'); + console.log(' - daily_attendance_records (일일 근태 기록)'); + console.log(' - worker_vacation_balance (휴가 잔여 관리)'); + console.log(''); + console.log('✅ 기본 데이터도 모두 삽입되었습니다.'); + + } catch (error) { + console.error('❌ DB 설정 중 오류 발생:', error); + throw error; + } +} + +// 직접 실행 +if (require.main === module) { + setupAttendanceDB() + .then(() => { + console.log('✅ 설정 완료'); + process.exit(0); + }) + .catch((error) => { + console.error('❌ 설정 실패:', error); + process.exit(1); + }); +} + +module.exports = { setupAttendanceDB }; diff --git a/deploy/tkfb-package/api.hyungi.net/tests/README.md b/deploy/tkfb-package/api.hyungi.net/tests/README.md new file mode 100644 index 0000000..fd0a004 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/tests/README.md @@ -0,0 +1,170 @@ +# 테스트 시작하기 + +## 빠른 시작 + +### 1단계: 테스트 패키지 설치 + +```bash +cd /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net +npm install +``` + +### 2단계: 첫 번째 테스트 실행 + +```bash +# 모든 테스트 실행 +npm test + +# 특정 파일만 테스트 +npm test -- tests/unit/services/workReportService.test.js + +# Watch 모드 (파일 변경 시 자동 재실행) +npm run test:watch +``` + +### 3단계: 커버리지 확인 + +```bash +# 커버리지와 함께 테스트 실행 +npm run test:coverage + +# 커버리지 리포트 HTML 보기 +open coverage/lcov-report/index.html +``` + +--- + +## 디렉토리 구조 + +``` +tests/ +├── README.md # 이 파일 +├── setup.js # Jest 전역 설정 +├── helpers/ +│ └── mockData.js # 테스트용 더미 데이터 +├── unit/ +│ ├── services/ # 서비스 레이어 테스트 +│ │ └── workReportService.test.js # ✅ 작성 완료 (예제) +│ ├── controllers/ # 컨트롤러 테스트 (미작성) +│ └── models/ # 모델 테스트 (미작성) +└── integration/ # 통합 테스트 (미작성) +``` + +--- + +## 다음 단계: 테스트 파일 작성 + +### 우선순위 1: 서비스 레이어 테스트 작성 + +다음 서비스들에 대한 테스트 파일을 작성하세요: + +```bash +tests/unit/services/ +├── workReportService.test.js # ✅ 완료 +├── attendanceService.test.js # ⬜ TODO +├── dailyWorkReportService.test.js # ⬜ TODO +├── workerService.test.js # ⬜ TODO (간단) +├── projectService.test.js # ⬜ TODO (간단) +├── issueTypeService.test.js # ⬜ TODO (간단) +├── toolsService.test.js # ⬜ TODO +├── dailyIssueReportService.test.js # ⬜ TODO +├── uploadService.test.js # ⬜ TODO (간단) +└── analysisService.test.js # ⬜ TODO +``` + +**추천 작성 순서:** +1. **workReportService.test.js** ✅ (이미 완료 - 참고용) +2. **workerService.test.js** (간단한 CRUD, 시작하기 좋음) +3. **projectService.test.js** (간단한 CRUD) +4. **attendanceService.test.js** (복잡도 중간) +5. **나머지 서비스들...** + +### 우선순위 2: 컨트롤러 테스트 + +서비스 레이어 테스트가 어느정도 완료되면 컨트롤러 테스트를 시작하세요. + +### 우선순위 3: 통합 테스트 + +마지막으로 실제 HTTP 요청을 테스트하는 통합 테스트를 작성하세요. + +--- + +## 예제 테스트 작성 방법 + +### 서비스 레이어 테스트 템플릿 + +```javascript +const serviceName = require('../../../services/serviceName'); +const { ValidationError, NotFoundError, DatabaseError } = require('../../../utils/errors'); + +// 모델 모킹 +jest.mock('../../../models/modelName'); +const modelName = require('../../../models/modelName'); + +describe('ServiceName', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + describe('methodName', () => { + it('should succeed when valid data provided', async () => { + // Arrange + const mockData = { /* ... */ }; + modelName.method.mockResolvedValue(mockData); + + // Act + const result = await serviceName.methodName(params); + + // Assert + expect(result).toEqual(expectedResult); + expect(modelName.method).toHaveBeenCalledWith(expectedParams); + }); + + it('should throw ValidationError when invalid data', async () => { + // Act & Assert + await expect(serviceName.methodName(invalidParams)) + .rejects.toThrow(ValidationError); + }); + }); +}); +``` + +--- + +## 유용한 명령어 + +```bash +# 특정 describe 블록만 테스트 +npm test -- --testNamePattern="createWorkReportService" + +# 실패한 테스트만 재실행 +npm test -- --onlyFailures + +# 병렬 실행 비활성화 (디버깅 시) +npm test -- --runInBand + +# 상세 출력 +npm run test:verbose +``` + +--- + +## 목표 커버리지 + +- **서비스 레이어**: 80% 이상 +- **컨트롤러**: 70% 이상 +- **전체**: 75% 이상 + +--- + +## 도움말 + +전체 가이드는 프로젝트 루트의 `TESTING_GUIDE.md`를 참고하세요: + +```bash +cat /Users/hyungiahn/Documents/code/TK-FB-Project/TESTING_GUIDE.md +``` + +--- + +**Happy Testing! 🧪** diff --git a/deploy/tkfb-package/api.hyungi.net/tests/helpers/mockData.js b/deploy/tkfb-package/api.hyungi.net/tests/helpers/mockData.js new file mode 100644 index 0000000..165969c --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/tests/helpers/mockData.js @@ -0,0 +1,225 @@ +/** + * 테스트용 더미 데이터 + * + * 테스트에서 재사용 가능한 모킹 데이터 + */ + +// 사용자 더미 데이터 +const mockUsers = { + admin: { + id: 1, + username: 'admin', + role: 'admin', + access_level: 5 + }, + groupLeader: { + id: 2, + username: 'group_leader', + role: 'group_leader', + access_level: 3 + }, + worker: { + id: 3, + username: 'worker', + role: 'worker', + access_level: 1 + } +}; + +// 작업자 더미 데이터 +const mockWorkers = [ + { + worker_id: 1, + worker_name: '김철수', + job_type: 'developer', + is_active: 1, + created_at: '2025-01-01 00:00:00' + }, + { + worker_id: 2, + worker_name: '이영희', + job_type: 'designer', + is_active: 1, + created_at: '2025-01-01 00:00:00' + }, + { + worker_id: 3, + worker_name: '박민수', + job_type: 'developer', + is_active: 0, + created_at: '2025-01-01 00:00:00' + } +]; + +// 프로젝트 더미 데이터 +const mockProjects = [ + { + project_id: 1, + project_name: '프로젝트 A', + job_no: 'PRJ-001', + created_at: '2025-01-01 00:00:00' + }, + { + project_id: 2, + project_name: '프로젝트 B', + job_no: 'PRJ-002', + created_at: '2025-01-15 00:00:00' + } +]; + +// 작업 유형 더미 데이터 +const mockWorkTypes = [ + { id: 1, name: '개발' }, + { id: 2, name: '디자인' }, + { id: 3, name: '테스트' }, + { id: 4, name: '회의' } +]; + +// 에러 유형 더미 데이터 +const mockErrorTypes = [ + { id: 1, name: '버그 수정' }, + { id: 2, name: '재작업' }, + { id: 3, name: '긴급 수정' } +]; + +// 작업 보고서 더미 데이터 +const mockWorkReports = [ + { + id: 1, + report_date: '2025-12-11', + worker_id: 1, + project_id: 1, + work_type_id: 1, + work_hours: 8.0, + work_content: '기능 개발', + error_type_id: null, + work_status_id: 1, + created_by: 1, + created_at: '2025-12-11 09:00:00', + updated_at: '2025-12-11 09:00:00' + }, + { + id: 2, + report_date: '2025-12-11', + worker_id: 2, + project_id: 1, + work_type_id: 2, + work_hours: 7.5, + work_content: 'UI 디자인', + error_type_id: null, + work_status_id: 1, + created_by: 2, + created_at: '2025-12-11 09:00:00', + updated_at: '2025-12-11 09:00:00' + }, + { + id: 3, + report_date: '2025-12-11', + worker_id: 1, + project_id: 2, + work_type_id: 1, + work_hours: 2.0, + work_content: '버그 수정', + error_type_id: 1, + work_status_id: 2, + created_by: 1, + created_at: '2025-12-11 14:00:00', + updated_at: '2025-12-11 14:00:00' + } +]; + +// 출석 더미 데이터 +const mockAttendance = [ + { + id: 1, + worker_id: 1, + attendance_date: '2025-12-11', + status: 'work', + regular_hours: 8.0, + overtime_hours: 0.0, + created_by: 1, + created_at: '2025-12-11 09:00:00' + }, + { + id: 2, + worker_id: 2, + attendance_date: '2025-12-11', + status: 'vacation', + regular_hours: 0.0, + overtime_hours: 0.0, + created_by: 2, + created_at: '2025-12-11 09:00:00' + } +]; + +// 분석 데이터 더미 +const mockAnalysisData = { + summary: { + total_entries: 100, + total_hours: 800.0, + unique_workers: 10, + unique_projects: 5, + working_days: 20, + avg_hours_per_entry: 8.0, + contributors: 3, + error_entries: 5, + error_rate: 5.0 + }, + dailyStats: [ + { report_date: '2025-12-01', daily_hours: 40.0, daily_entries: 5, daily_workers: 5 }, + { report_date: '2025-12-02', daily_hours: 35.0, daily_entries: 5, daily_workers: 4 } + ] +}; + +// API 응답 형식 +const createSuccessResponse = (data, message = '성공') => ({ + success: true, + data, + message +}); + +const createErrorResponse = (error, message = '오류 발생') => ({ + success: false, + error, + message +}); + +// 날짜 헬퍼 +const createDateString = (daysFromToday = 0) => { + const date = new Date(); + date.setDate(date.getDate() + daysFromToday); + return date.toISOString().split('T')[0]; +}; + +// DB 쿼리 결과 모킹 헬퍼 +const createDbResult = (data, affectedRows = 1, insertId = 1) => { + if (Array.isArray(data)) { + return [data, []]; // [rows, fields] + } + return [ + { + affectedRows, + insertId, + changedRows: affectedRows + }, + [] + ]; +}; + +module.exports = { + // 더미 데이터 + mockUsers, + mockWorkers, + mockProjects, + mockWorkTypes, + mockErrorTypes, + mockWorkReports, + mockAttendance, + mockAnalysisData, + + // 헬퍼 함수 + createSuccessResponse, + createErrorResponse, + createDateString, + createDbResult +}; diff --git a/deploy/tkfb-package/api.hyungi.net/tests/setup.js b/deploy/tkfb-package/api.hyungi.net/tests/setup.js new file mode 100644 index 0000000..d31ce4c --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/tests/setup.js @@ -0,0 +1,67 @@ +/** + * Jest 전역 테스트 설정 + * + * 모든 테스트 실행 전 자동으로 로드됩니다 + */ + +// 환경 변수 설정 (테스트 환경) +process.env.NODE_ENV = 'test'; +process.env.LOG_LEVEL = 'error'; // 테스트 시 로그 최소화 + +// 타임존 설정 +process.env.TZ = 'Asia/Seoul'; + +// 전역 타임아웃 확장 (필요 시) +jest.setTimeout(10000); + +// 콘솔 출력 모킹 (선택사항 - 테스트 출력을 깔끔하게) +// global.console = { +// ...console, +// log: jest.fn(), +// debug: jest.fn(), +// info: jest.fn(), +// warn: jest.fn(), +// error: jest.fn(), +// }; + +// 모든 테스트 실행 전 +beforeAll(() => { + // 전역 설정 +}); + +// 각 테스트 파일 실행 전 +beforeEach(() => { + // 각 테스트 전 초기화 +}); + +// 각 테스트 파일 실행 후 +afterEach(() => { + // 모킹 정리 + jest.clearAllMocks(); +}); + +// 모든 테스트 실행 후 +afterAll(() => { + // 정리 작업 +}); + +// 커스텀 매처 (선택사항) +expect.extend({ + // 날짜 문자열 검증 + toBeValidDate(received) { + const isValid = !isNaN(Date.parse(received)); + return { + message: () => `expected ${received} to be a valid date string`, + pass: isValid + }; + }, + + // ID 검증 + toBeValidId(received) { + const isValid = Number.isInteger(received) && received > 0; + return { + message: () => `expected ${received} to be a valid ID (positive integer)`, + pass: isValid + }; + } +}); diff --git a/deploy/tkfb-package/api.hyungi.net/tests/unit/services/workReportService.test.js b/deploy/tkfb-package/api.hyungi.net/tests/unit/services/workReportService.test.js new file mode 100644 index 0000000..7567d31 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/tests/unit/services/workReportService.test.js @@ -0,0 +1,321 @@ +/** + * WorkReportService 테스트 + * + * 작업 보고서 서비스 레이어 단위 테스트 + */ + +const workReportService = require('../../../services/workReportService'); +const { ValidationError, NotFoundError, DatabaseError } = require('../../../utils/errors'); +const { mockWorkReports } = require('../../helpers/mockData'); + +// 모델 모킹 +jest.mock('../../../models/workReportModel'); +const workReportModel = require('../../../models/workReportModel'); + +describe('WorkReportService', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + describe('createWorkReportService', () => { + it('단일 보고서를 성공적으로 생성해야 함', async () => { + // Arrange + const reportData = { + report_date: '2025-12-11', + worker_id: 1, + project_id: 1, + work_type_id: 1, + work_hours: 8.0, + work_content: '기능 개발' + }; + + // workReportModel.create가 콜백 형태이므로 모킹 설정 + workReportModel.create = jest.fn((data, callback) => { + callback(null, 123); // insertId = 123 + }); + + // Act + const result = await workReportService.createWorkReportService(reportData); + + // Assert + expect(result).toEqual({ workReport_ids: [123] }); + expect(workReportModel.create).toHaveBeenCalledTimes(1); + expect(workReportModel.create).toHaveBeenCalledWith( + reportData, + expect.any(Function) + ); + }); + + it('다중 보고서를 성공적으로 생성해야 함', async () => { + // Arrange + const reportsData = [ + { report_date: '2025-12-11', worker_id: 1, work_hours: 8 }, + { report_date: '2025-12-11', worker_id: 2, work_hours: 7 } + ]; + + let callCount = 0; + workReportModel.create = jest.fn((data, callback) => { + callCount++; + callback(null, 100 + callCount); + }); + + // Act + const result = await workReportService.createWorkReportService(reportsData); + + // Assert + expect(result).toEqual({ workReport_ids: [101, 102] }); + expect(workReportModel.create).toHaveBeenCalledTimes(2); + }); + + it('빈 배열이면 ValidationError를 던져야 함', async () => { + // Act & Assert + await expect(workReportService.createWorkReportService([])) + .rejects.toThrow(ValidationError); + + await expect(workReportService.createWorkReportService([])) + .rejects.toThrow('보고서 데이터가 필요합니다'); + }); + + it('DB 오류 시 DatabaseError를 던져야 함', async () => { + // Arrange + const reportData = { report_date: '2025-12-11', worker_id: 1 }; + + workReportModel.create = jest.fn((data, callback) => { + callback(new Error('DB connection failed'), null); + }); + + // Act & Assert + await expect(workReportService.createWorkReportService(reportData)) + .rejects.toThrow(DatabaseError); + }); + }); + + describe('getWorkReportsByDateService', () => { + it('날짜로 보고서를 조회해야 함', async () => { + // Arrange + const date = '2025-12-11'; + const mockReports = mockWorkReports.filter(r => r.report_date === date); + + workReportModel.getAllByDate = jest.fn((date, callback) => { + callback(null, mockReports); + }); + + // Act + const result = await workReportService.getWorkReportsByDateService(date); + + // Assert + expect(result).toEqual(mockReports); + expect(workReportModel.getAllByDate).toHaveBeenCalledWith(date, expect.any(Function)); + }); + + it('날짜가 없으면 ValidationError를 던져야 함', async () => { + // Act & Assert + await expect(workReportService.getWorkReportsByDateService(null)) + .rejects.toThrow(ValidationError); + + await expect(workReportService.getWorkReportsByDateService(null)) + .rejects.toThrow('날짜가 필요합니다'); + }); + + it('DB 오류 시 DatabaseError를 던져야 함', async () => { + // Arrange + workReportModel.getAllByDate = jest.fn((date, callback) => { + callback(new Error('DB error'), null); + }); + + // Act & Assert + await expect(workReportService.getWorkReportsByDateService('2025-12-11')) + .rejects.toThrow(DatabaseError); + }); + }); + + describe('getWorkReportByIdService', () => { + it('ID로 보고서를 조회해야 함', async () => { + // Arrange + const mockReport = mockWorkReports[0]; + + workReportModel.getById = jest.fn((id, callback) => { + callback(null, mockReport); + }); + + // Act + const result = await workReportService.getWorkReportByIdService(1); + + // Assert + expect(result).toEqual(mockReport); + expect(workReportModel.getById).toHaveBeenCalledWith(1, expect.any(Function)); + }); + + it('보고서가 없으면 NotFoundError를 던져야 함', async () => { + // Arrange + workReportModel.getById = jest.fn((id, callback) => { + callback(null, null); + }); + + // Act & Assert + await expect(workReportService.getWorkReportByIdService(999)) + .rejects.toThrow(NotFoundError); + + await expect(workReportService.getWorkReportByIdService(999)) + .rejects.toThrow('작업 보고서를 찾을 수 없습니다'); + }); + + it('ID가 없으면 ValidationError를 던져야 함', async () => { + // Act & Assert + await expect(workReportService.getWorkReportByIdService(null)) + .rejects.toThrow(ValidationError); + }); + }); + + describe('updateWorkReportService', () => { + it('보고서를 성공적으로 수정해야 함', async () => { + // Arrange + const updateData = { work_hours: 9 }; + + workReportModel.update = jest.fn((id, data, callback) => { + callback(null, 1); // affectedRows = 1 + }); + + // Act + const result = await workReportService.updateWorkReportService(123, updateData); + + // Assert + expect(result).toEqual({ changes: 1 }); + expect(workReportModel.update).toHaveBeenCalledWith( + 123, + updateData, + expect.any(Function) + ); + }); + + it('수정할 보고서가 없으면 NotFoundError를 던져야 함', async () => { + // Arrange + workReportModel.update = jest.fn((id, data, callback) => { + callback(null, 0); // affectedRows = 0 + }); + + // Act & Assert + await expect(workReportService.updateWorkReportService(999, {})) + .rejects.toThrow(NotFoundError); + }); + + it('ID가 없으면 ValidationError를 던져야 함', async () => { + // Act & Assert + await expect(workReportService.updateWorkReportService(null, {})) + .rejects.toThrow(ValidationError); + }); + }); + + describe('removeWorkReportService', () => { + it('보고서를 성공적으로 삭제해야 함', async () => { + // Arrange + workReportModel.remove = jest.fn((id, callback) => { + callback(null, 1); + }); + + // Act + const result = await workReportService.removeWorkReportService(123); + + // Assert + expect(result).toEqual({ changes: 1 }); + expect(workReportModel.remove).toHaveBeenCalledWith(123, expect.any(Function)); + }); + + it('삭제할 보고서가 없으면 NotFoundError를 던져야 함', async () => { + // Arrange + workReportModel.remove = jest.fn((id, callback) => { + callback(null, 0); + }); + + // Act & Assert + await expect(workReportService.removeWorkReportService(999)) + .rejects.toThrow(NotFoundError); + }); + + it('ID가 없으면 ValidationError를 던져야 함', async () => { + // Act & Assert + await expect(workReportService.removeWorkReportService(null)) + .rejects.toThrow(ValidationError); + }); + }); + + describe('getWorkReportsInRangeService', () => { + it('기간으로 보고서를 조회해야 함', async () => { + // Arrange + const start = '2025-12-01'; + const end = '2025-12-31'; + + workReportModel.getByRange = jest.fn((start, end, callback) => { + callback(null, mockWorkReports); + }); + + // Act + const result = await workReportService.getWorkReportsInRangeService(start, end); + + // Assert + expect(result).toEqual(mockWorkReports); + expect(workReportModel.getByRange).toHaveBeenCalledWith( + start, + end, + expect.any(Function) + ); + }); + + it('시작일이 없으면 ValidationError를 던져야 함', async () => { + // Act & Assert + await expect(workReportService.getWorkReportsInRangeService(null, '2025-12-31')) + .rejects.toThrow(ValidationError); + }); + + it('종료일이 없으면 ValidationError를 던져야 함', async () => { + // Act & Assert + await expect(workReportService.getWorkReportsInRangeService('2025-12-01', null)) + .rejects.toThrow(ValidationError); + }); + }); + + describe('getSummaryService', () => { + it('월간 요약을 조회해야 함', async () => { + // Arrange + const year = '2025'; + const month = '12'; + + workReportModel.getByRange = jest.fn((start, end, callback) => { + callback(null, mockWorkReports); + }); + + // Act + const result = await workReportService.getSummaryService(year, month); + + // Assert + expect(result).toEqual(mockWorkReports); + expect(workReportModel.getByRange).toHaveBeenCalled(); + }); + + it('연도가 없으면 ValidationError를 던져야 함', async () => { + // Act & Assert + await expect(workReportService.getSummaryService(null, '12')) + .rejects.toThrow(ValidationError); + }); + + it('월이 없으면 ValidationError를 던져야 함', async () => { + // Act & Assert + await expect(workReportService.getSummaryService('2025', null)) + .rejects.toThrow(ValidationError); + }); + + it('데이터가 없으면 NotFoundError를 던져야 함', async () => { + // Arrange + workReportModel.getByRange = jest.fn((start, end, callback) => { + callback(null, []); + }); + + // Act & Assert + await expect(workReportService.getSummaryService('2025', '12')) + .rejects.toThrow(NotFoundError); + + await expect(workReportService.getSummaryService('2025', '12')) + .rejects.toThrow('해당 기간의 작업 보고서가 없습니다'); + }); + }); +}); diff --git a/deploy/tkfb-package/api.hyungi.net/utils/access.js b/deploy/tkfb-package/api.hyungi.net/utils/access.js new file mode 100644 index 0000000..8c6fe5f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/access.js @@ -0,0 +1,178 @@ +/** + * @deprecated 이 파일의 미들웨어 함수들은 하위 호환성을 위해 유지됩니다. + * 새로운 코드에서는 '../middlewares/auth'를 사용하세요. + */ + +// utils/access.js - 유틸리티 함수와 레거시 호환성 +const ACCESS_LEVELS = { + worker: 1, + group_leader: 2, + support_team: 3, + admin: 4, + system: 5 +}; + +const ACCESS_LEVEL_NAMES = { + worker: '작업자', + group_leader: '그룹장', + support_team: '지원팀', + admin: '관리자', + system: '시스템' +}; + +/** + * 권한 레벨 비교 (유틸리티 함수) + * @param {string} userLevel - 사용자의 권한 레벨 + * @param {string} requiredLevel - 필요한 권한 레벨 + * @returns {boolean} - 권한 여부 + */ +const hasPermission = (userLevel, requiredLevel) => { + const userOrder = ACCESS_LEVELS[userLevel] || 0; + const requiredOrder = ACCESS_LEVELS[requiredLevel] || 999; + return userOrder >= requiredOrder; +}; + +/** + * 권한 레벨을 숫자로 변환 + * @param {string} level - 권한 레벨 문자열 + * @returns {number} - 권한 레벨 숫자 + */ +const getLevelNumber = (level) => { + return ACCESS_LEVELS[level] || 0; +}; + +/** + * 권한 레벨을 한글명으로 변환 + * @param {string} level - 권한 레벨 문자열 + * @returns {string} - 한글 권한명 + */ +const getLevelName = (level) => { + return ACCESS_LEVEL_NAMES[level] || '알 수 없음'; +}; + +/** + * 사용자가 특정 권한들 중 하나라도 가지고 있는지 확인 + * @param {string} userLevel - 사용자의 권한 레벨 + * @param {string[]} allowedLevels - 허용된 권한 레벨들 + * @returns {boolean} - 권한 여부 + */ +const hasAnyPermission = (userLevel, allowedLevels) => { + return allowedLevels.some(level => hasPermission(userLevel, level)); +}; + +/** + * 모든 권한 레벨 목록 반환 + * @returns {string[]} - 권한 레벨 배열 + */ +const getAllLevels = () => { + return Object.keys(ACCESS_LEVELS); +}; + +/** + * 특정 권한 레벨 이상의 모든 권한 반환 + * @param {string} minLevel - 최소 권한 레벨 + * @returns {string[]} - 해당 레벨 이상의 권한들 + */ +const getLevelsAbove = (minLevel) => { + const minOrder = ACCESS_LEVELS[minLevel] || 0; + return Object.keys(ACCESS_LEVELS).filter(level => ACCESS_LEVELS[level] >= minOrder); +}; + +// ===== 프론트엔드용 권한 체크 함수들 ===== + +/** + * 페이지 접근 권한 체크 (프론트엔드에서 사용) + * @param {string} userLevel - 사용자 권한 + * @param {object} pageConfig - 페이지 설정 {minLevel?, allowedRoles?, deniedRoles?} + * @returns {boolean} - 접근 가능 여부 + */ +const canAccessPage = (userLevel, pageConfig) => { + const { minLevel, allowedRoles, deniedRoles = [] } = pageConfig; + + // 거부 목록 체크 + if (deniedRoles.includes(userLevel)) { + return false; + } + + // 허용 목록 체크 + if (allowedRoles && allowedRoles.length > 0) { + return allowedRoles.includes(userLevel); + } + + // 최소 레벨 체크 + if (minLevel) { + return hasPermission(userLevel, minLevel); + } + + return true; +}; + +/** + * CRUD 권한 체크 (프론트엔드에서 사용) + * @param {string} userLevel - 사용자 권한 + * @param {string} table - 테이블명 + * @param {string} action - 액션 (CREATE, READ, UPDATE, DELETE) + * @returns {boolean} - 권한 여부 + */ +const canPerformAction = (userLevel, table, action) => { + // 기본적으로 모든 인증된 사용자에게 권한 부여 + // 특별한 제한이 필요한 경우에만 여기서 체크 + + // 예시: 사용자 관리는 admin 이상만 + if (table === 'Users' && ['CREATE', 'UPDATE', 'DELETE'].includes(action)) { + return hasPermission(userLevel, 'admin'); + } + + // 예시: 시스템 테이블은 system만 + if (table === 'SystemConfig') { + return hasPermission(userLevel, 'system'); + } + + // 나머지는 모든 인증된 사용자에게 허용 + return userLevel && userLevel !== 'anonymous'; +}; + +// ===== 레거시 호환성: 미들웨어 함수 ===== + +/** + * @deprecated 이 미들웨어는 하위 호환성을 위해 유지됩니다. + * 새로운 코드에서는 '../middlewares/auth'의 requireRole을 사용하세요. + * + * @example + * // 이전 방식 (deprecated) + * const { requireAccess } = require('../utils/access'); + * router.get('/admin', requireAccess('admin'), handler); + * + * // 새로운 방식 (권장) + * const { requireAuth, requireRole } = require('../middlewares/auth'); + * router.get('/admin', requireAuth, requireRole('admin'), handler); + */ +const requireAccess = (...allowed) => { + return (req, res, next) => { + if (!req.user || !allowed.includes(req.user.access_level)) { + return res.status(403).json({ error: '접근 권한이 없습니다' }); + } + next(); + }; +}; + +module.exports = { + // 기본 유틸리티 함수들 + hasPermission, + getLevelNumber, + getLevelName, + hasAnyPermission, + getAllLevels, + getLevelsAbove, + + // 프론트엔드용 함수들 + canAccessPage, + canPerformAction, + + // 레거시 호환성 (deprecated) + requireAccess, + + // 상수들 + ACCESS_LEVELS, + ACCESS_LEVEL_NAMES +}; \ No newline at end of file diff --git a/deploy/tkfb-package/api.hyungi.net/utils/cache.js b/deploy/tkfb-package/api.hyungi.net/utils/cache.js new file mode 100644 index 0000000..de2002f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/cache.js @@ -0,0 +1,284 @@ +// utils/cache.js - 통합 캐싱 시스템 + +const NodeCache = require('node-cache'); + +// 메모리 캐시 (Redis가 없을 때 fallback) +const memoryCache = new NodeCache({ + stdTTL: 600, // 기본 10분 + checkperiod: 120, // 2분마다 만료된 키 정리 + useClones: false // 성능 향상을 위해 복사본 생성 안함 +}); + +// Redis 클라이언트 (선택적) +let redisClient = null; + +/** + * Redis 연결 초기화 (선택적) + */ +const initRedis = async () => { + try { + const redis = require('redis'); + + redisClient = redis.createClient({ + socket: { + host: process.env.REDIS_HOST || 'localhost', + port: process.env.REDIS_PORT || 6379, + reconnectStrategy: (retries) => { + if (retries > 10) { + console.warn('Redis 재시도 횟수 초과. 메모리 캐시를 사용합니다.'); + return false; // Redis 연결 포기 + } + return Math.min(retries * 100, 3000); + } + }, + password: process.env.REDIS_PASSWORD || undefined, + database: process.env.REDIS_DB || 0 + }); + + redisClient.on('error', (err) => { + console.warn('Redis 오류:', err.message); + redisClient = null; // Redis 사용 중단, 메모리 캐시로 fallback + }); + + redisClient.on('connect', () => { + console.log('✅ Redis 캐시 연결 성공'); + }); + + await redisClient.connect(); + + } catch (error) { + console.warn('Redis 초기화 실패, 메모리 캐시 사용:', error.message); + redisClient = null; + } +}; + +/** + * 캐시에서 값 조회 + */ +const get = async (key) => { + try { + if (redisClient && redisClient.isOpen) { + const value = await redisClient.get(key); + return value ? JSON.parse(value) : null; + } else { + return memoryCache.get(key) || null; + } + } catch (error) { + console.warn(`캐시 조회 오류 (${key}):`, error.message); + return null; + } +}; + +/** + * 캐시에 값 저장 + */ +const set = async (key, value, ttl = 600) => { + try { + if (redisClient && redisClient.isOpen) { + await redisClient.setEx(key, ttl, JSON.stringify(value)); + } else { + memoryCache.set(key, value, ttl); + } + return true; + } catch (error) { + console.warn(`캐시 저장 오류 (${key}):`, error.message); + return false; + } +}; + +/** + * 캐시에서 값 삭제 + */ +const del = async (key) => { + try { + if (redisClient && redisClient.isOpen) { + await redisClient.del(key); + } else { + memoryCache.del(key); + } + return true; + } catch (error) { + console.warn(`캐시 삭제 오류 (${key}):`, error.message); + return false; + } +}; + +/** + * 패턴으로 캐시 키 삭제 + */ +const delPattern = async (pattern) => { + try { + if (redisClient && redisClient.isOpen) { + const keys = await redisClient.keys(pattern); + if (keys.length > 0) { + await redisClient.del(keys); + } + } else { + const keys = memoryCache.keys(); + const matchingKeys = keys.filter(key => { + const regex = new RegExp(pattern.replace('*', '.*')); + return regex.test(key); + }); + memoryCache.del(matchingKeys); + } + return true; + } catch (error) { + console.warn(`패턴 캐시 삭제 오류 (${pattern}):`, error.message); + return false; + } +}; + +/** + * 전체 캐시 초기화 + */ +const flush = async () => { + try { + if (redisClient && redisClient.isOpen) { + await redisClient.flushDb(); + } else { + memoryCache.flushAll(); + } + return true; + } catch (error) { + console.warn('캐시 초기화 오류:', error.message); + return false; + } +}; + +/** + * 캐시 통계 조회 + */ +const getStats = () => { + if (redisClient && redisClient.isOpen) { + return { + type: 'redis', + connected: true, + host: process.env.REDIS_HOST || 'localhost', + port: process.env.REDIS_PORT || 6379 + }; + } else { + const stats = memoryCache.getStats(); + return { + type: 'memory', + connected: true, + keys: stats.keys, + hits: stats.hits, + misses: stats.misses, + hitRate: stats.hits / (stats.hits + stats.misses) || 0 + }; + } +}; + +/** + * 캐시 키 생성 헬퍼 + */ +const createKey = (prefix, ...parts) => { + return `${prefix}:${parts.join(':')}`; +}; + +/** + * TTL 상수 정의 + */ +const TTL = { + SHORT: 60, // 1분 + MEDIUM: 300, // 5분 + LONG: 600, // 10분 + HOUR: 3600, // 1시간 + DAY: 86400 // 24시간 +}; + +/** + * 캐시 미들웨어 생성기 + */ +const createCacheMiddleware = (keyGenerator, ttl = TTL.MEDIUM) => { + return async (req, res, next) => { + try { + const cacheKey = typeof keyGenerator === 'function' + ? keyGenerator(req) + : keyGenerator; + + const cachedData = await get(cacheKey); + + if (cachedData) { + console.log(`🎯 캐시 히트: ${cacheKey}`); + return res.json(cachedData); + } + + // 원본 res.json을 저장 + const originalJson = res.json; + + // res.json을 오버라이드하여 응답을 캐시에 저장 + res.json = function(data) { + // 성공 응답만 캐시 + if (res.statusCode >= 200 && res.statusCode < 300) { + set(cacheKey, data, ttl).then(() => { + console.log(`💾 캐시 저장: ${cacheKey}`); + }); + } + + // 원본 응답 실행 + return originalJson.call(this, data); + }; + + next(); + + } catch (error) { + console.warn('캐시 미들웨어 오류:', error.message); + next(); + } + }; +}; + +/** + * 캐시 무효화 헬퍼 + */ +const invalidateCache = { + // 사용자 관련 캐시 무효화 + user: async (userId) => { + await delPattern(`user:${userId}:*`); + await delPattern('users:*'); + }, + + // 작업자 관련 캐시 무효화 + worker: async (workerId) => { + await delPattern(`worker:${workerId}:*`); + await delPattern('workers:*'); + }, + + // 프로젝트 관련 캐시 무효화 + project: async (projectId) => { + await delPattern(`project:${projectId}:*`); + await delPattern('projects:*'); + }, + + // 작업 관련 캐시 무효화 + task: async (taskId) => { + await delPattern(`task:${taskId}:*`); + await delPattern('tasks:*'); + }, + + // 일일 작업 보고서 관련 캐시 무효화 + dailyWorkReport: async (date) => { + await delPattern(`daily-work-report:${date}:*`); + await delPattern('daily-work-reports:*'); + }, + + // 전체 캐시 무효화 + all: async () => { + await flush(); + } +}; + +module.exports = { + initRedis, + get, + set, + del, + delPattern, + flush, + getStats, + createKey, + TTL, + createCacheMiddleware, + invalidateCache +}; diff --git a/deploy/tkfb-package/api.hyungi.net/utils/dateUtils.js b/deploy/tkfb-package/api.hyungi.net/utils/dateUtils.js new file mode 100644 index 0000000..322462a --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/dateUtils.js @@ -0,0 +1,131 @@ +/** + * 날짜/시간 유틸리티 함수 + * + * 중요: 이 프로젝트는 한국(Asia/Seoul, UTC+9) 시간대 기준으로 운영됩니다. + * DB에 저장되는 비즈니스 날짜(report_date, session_date 등)는 반드시 한국 시간 기준이어야 합니다. + * + * @author TK-FB-Project + * @since 2026-02-03 + */ + +const KOREA_TIMEZONE_OFFSET = 9; // UTC+9 + +/** + * 한국 시간(KST) 기준 현재 Date 객체 반환 + * @returns {Date} 한국 시간 기준 Date 객체 + */ +function getKoreaDate() { + const now = new Date(); + return new Date(now.getTime() + (KOREA_TIMEZONE_OFFSET * 60 * 60 * 1000)); +} + +/** + * 한국 시간(KST) 기준 현재 날짜 문자열 반환 + * @returns {string} 'YYYY-MM-DD' 형식 + */ +function getKoreaDateString() { + const koreaDate = getKoreaDate(); + const year = koreaDate.getUTCFullYear(); + const month = String(koreaDate.getUTCMonth() + 1).padStart(2, '0'); + const day = String(koreaDate.getUTCDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +/** + * 한국 시간(KST) 기준 현재 datetime 문자열 반환 + * @returns {string} 'YYYY-MM-DD HH:mm:ss' 형식 (MySQL DATETIME 호환) + */ +function getKoreaDatetime() { + const koreaDate = getKoreaDate(); + const year = koreaDate.getUTCFullYear(); + const month = String(koreaDate.getUTCMonth() + 1).padStart(2, '0'); + const day = String(koreaDate.getUTCDate()).padStart(2, '0'); + const hours = String(koreaDate.getUTCHours()).padStart(2, '0'); + const minutes = String(koreaDate.getUTCMinutes()).padStart(2, '0'); + const seconds = String(koreaDate.getUTCSeconds()).padStart(2, '0'); + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; +} + +/** + * 한국 시간(KST) 기준 현재 시간 문자열 반환 + * @returns {string} 'HH:mm:ss' 형식 + */ +function getKoreaTimeString() { + const koreaDate = getKoreaDate(); + const hours = String(koreaDate.getUTCHours()).padStart(2, '0'); + const minutes = String(koreaDate.getUTCMinutes()).padStart(2, '0'); + const seconds = String(koreaDate.getUTCSeconds()).padStart(2, '0'); + return `${hours}:${minutes}:${seconds}`; +} + +/** + * UTC Date를 한국 시간 datetime 문자열로 변환 + * @param {Date} date - UTC 기준 Date 객체 + * @returns {string} 'YYYY-MM-DD HH:mm:ss' 형식 + */ +function toKoreaDatetime(date) { + if (!date) return null; + const koreaDate = new Date(date.getTime() + (KOREA_TIMEZONE_OFFSET * 60 * 60 * 1000)); + const year = koreaDate.getUTCFullYear(); + const month = String(koreaDate.getUTCMonth() + 1).padStart(2, '0'); + const day = String(koreaDate.getUTCDate()).padStart(2, '0'); + const hours = String(koreaDate.getUTCHours()).padStart(2, '0'); + const minutes = String(koreaDate.getUTCMinutes()).padStart(2, '0'); + const seconds = String(koreaDate.getUTCSeconds()).padStart(2, '0'); + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; +} + +/** + * UTC Date를 한국 날짜 문자열로 변환 + * @param {Date} date - UTC 기준 Date 객체 + * @returns {string} 'YYYY-MM-DD' 형식 + */ +function toKoreaDateString(date) { + if (!date) return null; + const koreaDate = new Date(date.getTime() + (KOREA_TIMEZONE_OFFSET * 60 * 60 * 1000)); + const year = koreaDate.getUTCFullYear(); + const month = String(koreaDate.getUTCMonth() + 1).padStart(2, '0'); + const day = String(koreaDate.getUTCDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +/** + * 한국 시간 datetime 문자열을 Date 객체로 변환 + * @param {string} koreaDatetimeStr - 'YYYY-MM-DD HH:mm:ss' 형식 + * @returns {Date} UTC 기준 Date 객체 + */ +function fromKoreaDatetime(koreaDatetimeStr) { + if (!koreaDatetimeStr) return null; + // 한국 시간 문자열을 UTC로 변환 + const date = new Date(koreaDatetimeStr + '+09:00'); + return date; +} + +/** + * 연도 반환 (한국 시간 기준) + * @returns {number} 현재 연도 + */ +function getKoreaYear() { + return getKoreaDate().getUTCFullYear(); +} + +/** + * 월 반환 (한국 시간 기준, 1-12) + * @returns {number} 현재 월 (1-12) + */ +function getKoreaMonth() { + return getKoreaDate().getUTCMonth() + 1; +} + +module.exports = { + KOREA_TIMEZONE_OFFSET, + getKoreaDate, + getKoreaDateString, + getKoreaDatetime, + getKoreaTimeString, + toKoreaDatetime, + toKoreaDateString, + fromKoreaDatetime, + getKoreaYear, + getKoreaMonth, +}; diff --git a/deploy/tkfb-package/api.hyungi.net/utils/errorHandler.js b/deploy/tkfb-package/api.hyungi.net/utils/errorHandler.js new file mode 100644 index 0000000..4cd1a47 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/errorHandler.js @@ -0,0 +1,143 @@ +// utils/errorHandler.js - 통합 에러 처리 유틸리티 + +/** + * 표준화된 에러 응답 생성 + */ +class ApiError extends Error { + constructor(message, statusCode = 500, errorCode = null) { + super(message); + this.statusCode = statusCode; + this.errorCode = errorCode; + this.timestamp = new Date().toISOString(); + } +} + +/** + * 에러 응답 포맷터 + */ +const formatErrorResponse = (error, req = null) => { + const response = { + success: false, + error: error.message || '알 수 없는 오류가 발생했습니다.', + timestamp: error.timestamp || new Date().toISOString() + }; + + // 개발 환경에서만 상세 정보 포함 + if (process.env.NODE_ENV === 'development') { + response.stack = error.stack; + response.errorCode = error.errorCode; + if (req) { + response.requestInfo = { + method: req.method, + url: req.originalUrl, + userAgent: req.get('User-Agent'), + ip: req.ip + }; + } + } + + return response; +}; + +/** + * 데이터베이스 에러 처리 + */ +const handleDatabaseError = (error, operation = 'database operation') => { + console.error(`[DB Error] ${operation}:`, error); + + // 일반적인 DB 에러 코드 매핑 + const errorMappings = { + 'ER_DUP_ENTRY': { message: '중복된 데이터입니다.', statusCode: 409 }, + 'ER_NO_REFERENCED_ROW_2': { message: '참조된 데이터가 존재하지 않습니다.', statusCode: 400 }, + 'ER_ROW_IS_REFERENCED_2': { message: '다른 데이터에서 참조되고 있어 삭제할 수 없습니다.', statusCode: 409 }, + 'ER_BAD_FIELD_ERROR': { message: '잘못된 필드명입니다.', statusCode: 400 }, + 'ER_NO_SUCH_TABLE': { message: '테이블이 존재하지 않습니다.', statusCode: 500 }, + 'ECONNREFUSED': { message: '데이터베이스 연결에 실패했습니다.', statusCode: 503 } + }; + + const mapping = errorMappings[error.code] || errorMappings[error.errno]; + if (mapping) { + throw new ApiError(mapping.message, mapping.statusCode, error.code); + } + + // 기본 에러 + throw new ApiError(`${operation} 중 오류가 발생했습니다.`, 500, error.code); +}; + +/** + * 유효성 검사 에러 처리 + */ +const handleValidationError = (field, value, rule) => { + const message = `${field} 필드가 유효하지 않습니다. (값: ${value}, 규칙: ${rule})`; + throw new ApiError(message, 400, 'VALIDATION_ERROR'); +}; + +/** + * 권한 에러 처리 + */ +const handleAuthorizationError = (requiredLevel, userLevel) => { + const message = `접근 권한이 부족합니다. (필요: ${requiredLevel}, 현재: ${userLevel})`; + throw new ApiError(message, 403, 'AUTHORIZATION_ERROR'); +}; + +/** + * 리소스 없음 에러 처리 + */ +const handleNotFoundError = (resource, identifier = null) => { + const message = identifier + ? `${resource}(${identifier})을(를) 찾을 수 없습니다.` + : `${resource}을(를) 찾을 수 없습니다.`; + throw new ApiError(message, 404, 'NOT_FOUND'); +}; + +/** + * Express 에러 핸들러 미들웨어 + */ +const errorMiddleware = (error, req, res, next) => { + // ApiError가 아닌 경우 변환 + if (!(error instanceof ApiError)) { + error = new ApiError(error.message || '서버 내부 오류', 500); + } + + const response = formatErrorResponse(error, req); + + // 로깅 + if (error.statusCode >= 500) { + console.error('[Server Error]', { + message: error.message, + stack: error.stack, + url: req.originalUrl, + method: req.method, + user: req.user?.username || 'anonymous' + }); + } else { + console.warn('[Client Error]', { + message: error.message, + url: req.originalUrl, + method: req.method, + user: req.user?.username || 'anonymous' + }); + } + + res.status(error.statusCode).json(response); +}; + +/** + * 비동기 함수 래퍼 (에러 자동 처리) + */ +const asyncHandler = (fn) => { + return (req, res, next) => { + Promise.resolve(fn(req, res, next)).catch(next); + }; +}; + +module.exports = { + ApiError, + formatErrorResponse, + handleDatabaseError, + handleValidationError, + handleAuthorizationError, + handleNotFoundError, + errorMiddleware, + asyncHandler +}; diff --git a/deploy/tkfb-package/api.hyungi.net/utils/errors.js b/deploy/tkfb-package/api.hyungi.net/utils/errors.js new file mode 100644 index 0000000..490908d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/errors.js @@ -0,0 +1,186 @@ +/** + * 커스텀 에러 클래스 + * + * 애플리케이션 전체에서 사용하는 표준화된 에러 클래스들 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +/** + * 기본 애플리케이션 에러 클래스 + * 모든 커스텀 에러의 부모 클래스 + */ +class AppError extends Error { + /** + * @param {string} message - 에러 메시지 + * @param {number} statusCode - HTTP 상태 코드 + * @param {string} code - 에러 코드 (예: 'VALIDATION_ERROR') + * @param {object} details - 추가 세부 정보 + */ + constructor(message, statusCode = 500, code = 'INTERNAL_ERROR', details = null) { + super(message); + this.name = this.constructor.name; + this.statusCode = statusCode; + this.code = code; + this.details = details; + this.isOperational = true; // 운영 에러 (예상된 에러) + + Error.captureStackTrace(this, this.constructor); + } + + /** + * JSON 형태로 에러 정보 반환 + */ + toJSON() { + return { + name: this.name, + message: this.message, + statusCode: this.statusCode, + code: this.code, + details: this.details + }; + } +} + +/** + * 검증 에러 (400 Bad Request) + * 입력값 검증 실패 시 사용 + */ +class ValidationError extends AppError { + /** + * @param {string} message - 에러 메시지 + * @param {object} details - 검증 실패 세부 정보 + */ + constructor(message = '입력값이 올바르지 않습니다', details = null) { + super(message, 400, 'VALIDATION_ERROR', details); + } +} + +/** + * 인증 에러 (401 Unauthorized) + * 인증이 필요하거나 인증 실패 시 사용 + */ +class AuthenticationError extends AppError { + /** + * @param {string} message - 에러 메시지 + */ + constructor(message = '인증이 필요합니다') { + super(message, 401, 'AUTHENTICATION_ERROR'); + } +} + +/** + * 권한 에러 (403 Forbidden) + * 권한이 부족할 때 사용 + */ +class ForbiddenError extends AppError { + /** + * @param {string} message - 에러 메시지 + */ + constructor(message = '권한이 없습니다') { + super(message, 403, 'FORBIDDEN'); + } +} + +/** + * 리소스 없음 에러 (404 Not Found) + * 요청한 리소스를 찾을 수 없을 때 사용 + */ +class NotFoundError extends AppError { + /** + * @param {string} message - 에러 메시지 + * @param {string} resource - 찾을 수 없는 리소스명 + */ + constructor(message = '리소스를 찾을 수 없습니다', resource = null) { + super(message, 404, 'NOT_FOUND', resource ? { resource } : null); + } +} + +/** + * 충돌 에러 (409 Conflict) + * 중복된 리소스 등 충돌 발생 시 사용 + */ +class ConflictError extends AppError { + /** + * @param {string} message - 에러 메시지 + * @param {object} details - 충돌 세부 정보 + */ + constructor(message = '이미 존재하는 데이터입니다', details = null) { + super(message, 409, 'CONFLICT', details); + } +} + +/** + * 서버 에러 (500 Internal Server Error) + * 예상하지 못한 서버 오류 시 사용 + */ +class InternalServerError extends AppError { + /** + * @param {string} message - 에러 메시지 + */ + constructor(message = '서버 오류가 발생했습니다') { + super(message, 500, 'INTERNAL_SERVER_ERROR'); + } +} + +/** + * 데이터베이스 에러 (500 Internal Server Error) + * DB 관련 오류 시 사용 + */ +class DatabaseError extends AppError { + /** + * @param {string} message - 에러 메시지 + * @param {Error} originalError - 원본 DB 에러 + */ + constructor(message = '데이터베이스 오류가 발생했습니다', originalError = null) { + super( + message, + 500, + 'DATABASE_ERROR', + originalError ? { originalMessage: originalError.message } : null + ); + this.originalError = originalError; + } +} + +/** + * 외부 API 에러 (502 Bad Gateway) + * 외부 서비스 호출 실패 시 사용 + */ +class ExternalApiError extends AppError { + /** + * @param {string} message - 에러 메시지 + * @param {string} service - 외부 서비스명 + */ + constructor(message = '외부 서비스 호출에 실패했습니다', service = null) { + super(message, 502, 'EXTERNAL_API_ERROR', service ? { service } : null); + } +} + +/** + * 타임아웃 에러 (504 Gateway Timeout) + * 요청 처리 시간 초과 시 사용 + */ +class TimeoutError extends AppError { + /** + * @param {string} message - 에러 메시지 + * @param {number} timeout - 타임아웃 시간 (ms) + */ + constructor(message = '요청 처리 시간이 초과되었습니다', timeout = null) { + super(message, 504, 'TIMEOUT_ERROR', timeout ? { timeout } : null); + } +} + +module.exports = { + AppError, + ValidationError, + AuthenticationError, + ForbiddenError, + NotFoundError, + ConflictError, + InternalServerError, + DatabaseError, + ExternalApiError, + TimeoutError +}; diff --git a/deploy/tkfb-package/api.hyungi.net/utils/fileUploadSecurity.js b/deploy/tkfb-package/api.hyungi.net/utils/fileUploadSecurity.js new file mode 100644 index 0000000..cb87406 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/fileUploadSecurity.js @@ -0,0 +1,315 @@ +/** + * File Upload Security - 파일 업로드 보안 유틸리티 + * + * - Magic number (파일 시그니처) 검증 + * - 파일명 sanitize + * - 확장자 화이트리스트 검증 + * - 파일 크기 제한 + * + * @author TK-FB-Project + * @since 2026-02-04 + */ + +const path = require('path'); +const crypto = require('crypto'); +const fs = require('fs').promises; + +/** + * 파일 시그니처 (Magic Numbers) + * 파일의 실제 타입을 확인하기 위한 바이너리 시그니처 + */ +const FILE_SIGNATURES = { + // 이미지 + 'ffd8ff': { mime: 'image/jpeg', ext: ['.jpg', '.jpeg'] }, + '89504e47': { mime: 'image/png', ext: ['.png'] }, + '47494638': { mime: 'image/gif', ext: ['.gif'] }, + '52494646': { mime: 'image/webp', ext: ['.webp'] }, // RIFF (WebP 시작) + + // 문서 + '25504446': { mime: 'application/pdf', ext: ['.pdf'] }, + '504b0304': { mime: 'application/zip', ext: ['.zip', '.xlsx', '.docx', '.pptx'] }, + + // 주의: BMP, TIFF 등 추가 가능 +}; + +/** + * 허용된 이미지 확장자 + */ +const ALLOWED_IMAGE_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif', '.webp']; + +/** + * 허용된 문서 확장자 + */ +const ALLOWED_DOCUMENT_EXTENSIONS = ['.pdf', '.xlsx', '.docx', '.pptx', '.zip']; + +/** + * 위험한 확장자 (절대 허용 안 함) + */ +const DANGEROUS_EXTENSIONS = [ + '.exe', '.bat', '.cmd', '.sh', '.ps1', '.vbs', '.js', '.jar', + '.php', '.asp', '.aspx', '.jsp', '.cgi', '.pl', '.py', '.rb', + '.htaccess', '.htpasswd', '.ini', '.config', '.env' +]; + +/** + * 파일 시그니처(Magic Number) 검증 + * + * @param {Buffer} buffer - 파일 버퍼 (최소 8바이트) + * @returns {Object|null} 매칭된 파일 정보 또는 null + */ +const checkMagicNumber = (buffer) => { + if (!buffer || buffer.length < 4) { + return null; + } + + // 처음 8바이트를 hex로 변환 + const hex = buffer.slice(0, 8).toString('hex').toLowerCase(); + + // 시그니처 매칭 + for (const [signature, info] of Object.entries(FILE_SIGNATURES)) { + if (hex.startsWith(signature)) { + return info; + } + } + + return null; +}; + +/** + * 파일 버퍼에서 실제 MIME 타입 검증 + * + * @param {Buffer} buffer - 파일 버퍼 + * @param {string} declaredMime - 선언된 MIME 타입 + * @returns {Object} { valid: boolean, actualType: string|null, message: string } + */ +const validateFileType = (buffer, declaredMime) => { + const detected = checkMagicNumber(buffer); + + if (!detected) { + return { + valid: false, + actualType: null, + message: '알 수 없는 파일 형식입니다.' + }; + } + + // MIME 타입이 일치하는지 확인 + if (detected.mime !== declaredMime) { + return { + valid: false, + actualType: detected.mime, + message: `파일 형식이 일치하지 않습니다. (선언: ${declaredMime}, 실제: ${detected.mime})` + }; + } + + return { + valid: true, + actualType: detected.mime, + message: 'OK' + }; +}; + +/** + * 파일명 sanitize + * 경로 조작 및 특수문자 제거 + * + * @param {string} filename - 원본 파일명 + * @returns {string} 안전한 파일명 + */ +const sanitizeFilename = (filename) => { + if (!filename || typeof filename !== 'string') { + return 'unnamed'; + } + + // 경로 구분자 제거 (path traversal 방지) + let safe = path.basename(filename); + + // 특수문자 제거 (영문, 숫자, -, _, . 만 허용) + safe = safe.replace(/[^a-zA-Z0-9가-힣._-]/g, '_'); + + // 연속된 점 제거 (이중 확장자 방지) + safe = safe.replace(/\.{2,}/g, '.'); + + // 앞뒤 점/공백 제거 + safe = safe.replace(/^[\s.]+|[\s.]+$/g, ''); + + // 빈 파일명 처리 + if (!safe || safe === '') { + safe = 'unnamed'; + } + + // 최대 길이 제한 (255자) + if (safe.length > 255) { + const ext = path.extname(safe); + const name = path.basename(safe, ext); + safe = name.slice(0, 255 - ext.length) + ext; + } + + return safe; +}; + +/** + * 확장자 검증 + * + * @param {string} filename - 파일명 + * @param {string[]} allowedExtensions - 허용된 확장자 배열 + * @returns {Object} { valid: boolean, extension: string, message: string } + */ +const validateExtension = (filename, allowedExtensions = ALLOWED_IMAGE_EXTENSIONS) => { + const ext = path.extname(filename).toLowerCase(); + + // 위험한 확장자 체크 + if (DANGEROUS_EXTENSIONS.includes(ext)) { + return { + valid: false, + extension: ext, + message: `보안상 허용되지 않는 파일 형식입니다: ${ext}` + }; + } + + // 허용된 확장자 체크 + if (!allowedExtensions.includes(ext)) { + return { + valid: false, + extension: ext, + message: `허용된 파일 형식: ${allowedExtensions.join(', ')}` + }; + } + + return { + valid: true, + extension: ext, + message: 'OK' + }; +}; + +/** + * 안전한 랜덤 파일명 생성 + * + * @param {string} originalFilename - 원본 파일명 (확장자 추출용) + * @returns {string} 랜덤 파일명 + */ +const generateSafeFilename = (originalFilename) => { + const ext = path.extname(originalFilename).toLowerCase(); + const randomName = crypto.randomBytes(16).toString('hex'); + const timestamp = Date.now(); + + return `${timestamp}_${randomName}${ext}`; +}; + +/** + * 안전한 업로드 경로 생성 + * 경로 조작(path traversal) 방지 + * + * @param {string} baseDir - 기본 업로드 디렉토리 + * @param {string} filename - 파일명 + * @returns {string} 안전한 전체 경로 + */ +const getSafeUploadPath = (baseDir, filename) => { + const safeName = sanitizeFilename(filename); + const fullPath = path.join(baseDir, safeName); + + // 결과 경로가 baseDir 안에 있는지 확인 + const resolvedBase = path.resolve(baseDir); + const resolvedFull = path.resolve(fullPath); + + if (!resolvedFull.startsWith(resolvedBase)) { + throw new Error('경로 조작이 감지되었습니다.'); + } + + return resolvedFull; +}; + +/** + * Multer 파일 필터 생성 + * + * @param {Object} options - 옵션 + * @param {string[]} options.allowedExtensions - 허용된 확장자 + * @param {string[]} options.allowedMimes - 허용된 MIME 타입 + * @param {boolean} options.checkMagicNumber - Magic number 검증 여부 + * @returns {Function} Multer fileFilter 함수 + */ +const createFileFilter = (options = {}) => { + const { + allowedExtensions = ALLOWED_IMAGE_EXTENSIONS, + allowedMimes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'], + checkMagicNumber = false // Multer에서는 버퍼 접근이 제한적이므로 기본 false + } = options; + + return (req, file, cb) => { + // 확장자 검증 + const extResult = validateExtension(file.originalname, allowedExtensions); + if (!extResult.valid) { + return cb(new Error(extResult.message), false); + } + + // MIME 타입 검증 + if (!allowedMimes.includes(file.mimetype)) { + return cb(new Error(`허용된 MIME 타입: ${allowedMimes.join(', ')}`), false); + } + + cb(null, true); + }; +}; + +/** + * 업로드된 파일 검증 (후처리용) + * Multer 업로드 후 파일 내용을 검증 + * + * @param {string} filePath - 업로드된 파일 경로 + * @param {string} declaredMime - 선언된 MIME 타입 + * @returns {Promise} 검증 결과 + */ +const validateUploadedFile = async (filePath, declaredMime) => { + try { + // 파일 시작 부분 읽기 + const fd = await fs.open(filePath, 'r'); + const buffer = Buffer.alloc(8); + await fd.read(buffer, 0, 8, 0); + await fd.close(); + + // Magic number 검증 + const typeResult = validateFileType(buffer, declaredMime); + + if (!typeResult.valid) { + // 위험한 파일이면 삭제 + await fs.unlink(filePath); + return { + valid: false, + deleted: true, + message: typeResult.message + }; + } + + return { + valid: true, + deleted: false, + message: 'OK', + actualType: typeResult.actualType + }; + } catch (error) { + return { + valid: false, + deleted: false, + message: `파일 검증 중 오류: ${error.message}` + }; + } +}; + +module.exports = { + // 상수 + ALLOWED_IMAGE_EXTENSIONS, + ALLOWED_DOCUMENT_EXTENSIONS, + DANGEROUS_EXTENSIONS, + FILE_SIGNATURES, + + // 함수 + checkMagicNumber, + validateFileType, + sanitizeFilename, + validateExtension, + generateSafeFilename, + getSafeUploadPath, + createFileFilter, + validateUploadedFile +}; diff --git a/deploy/tkfb-package/api.hyungi.net/utils/hangulToRoman.js b/deploy/tkfb-package/api.hyungi.net/utils/hangulToRoman.js new file mode 100644 index 0000000..fcc5ae0 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/hangulToRoman.js @@ -0,0 +1,166 @@ +/** + * 한글 이름을 영문(로마자)으로 변환하는 유틸리티 + * + * 사용 예시: + * hangulToRoman('홍길동') => 'hong.gildong' + * hangulToRoman('김철수') => 'kim.cheolsu' + */ + +// 한글 로마자 변환 매핑 (국립국어원 표기법 기준) +const CHOSUNG_MAP = { + 'ㄱ': 'g', 'ㄲ': 'kk', 'ㄴ': 'n', 'ㄷ': 'd', 'ㄸ': 'tt', + 'ㄹ': 'r', 'ㅁ': 'm', 'ㅂ': 'b', 'ㅃ': 'pp', 'ㅅ': 's', + 'ㅆ': 'ss', 'ㅇ': '', 'ㅈ': 'j', 'ㅉ': 'jj', 'ㅊ': 'ch', + 'ㅋ': 'k', 'ㅌ': 't', 'ㅍ': 'p', 'ㅎ': 'h' +}; + +const JUNGSUNG_MAP = { + 'ㅏ': 'a', 'ㅐ': 'ae', 'ㅑ': 'ya', 'ㅒ': 'yae', 'ㅓ': 'eo', + 'ㅔ': 'e', 'ㅕ': 'yeo', 'ㅖ': 'ye', 'ㅗ': 'o', 'ㅘ': 'wa', + 'ㅙ': 'wae', 'ㅚ': 'oe', 'ㅛ': 'yo', 'ㅜ': 'u', 'ㅝ': 'wo', + 'ㅞ': 'we', 'ㅟ': 'wi', 'ㅠ': 'yu', 'ㅡ': 'eu', 'ㅢ': 'ui', + 'ㅣ': 'i' +}; + +const JONGSUNG_MAP = { + '': '', 'ㄱ': 'k', 'ㄲ': 'k', 'ㄳ': 'k', 'ㄴ': 'n', 'ㄵ': 'n', + 'ㄶ': 'n', 'ㄷ': 't', 'ㄹ': 'l', 'ㄺ': 'k', 'ㄻ': 'm', 'ㄼ': 'p', + 'ㄽ': 'l', 'ㄾ': 'l', 'ㄿ': 'p', 'ㅀ': 'l', 'ㅁ': 'm', 'ㅂ': 'p', + 'ㅄ': 'p', 'ㅅ': 't', 'ㅆ': 't', 'ㅇ': 'ng', 'ㅈ': 't', 'ㅊ': 't', + 'ㅋ': 'k', 'ㅌ': 't', 'ㅍ': 'p', 'ㅎ': 't' +}; + +const CHOSUNG = [ + 'ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', + 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' +]; + +const JUNGSUNG = [ + 'ㅏ', 'ㅐ', 'ㅑ', 'ㅒ', 'ㅓ', 'ㅔ', 'ㅕ', 'ㅖ', 'ㅗ', 'ㅘ', + 'ㅙ', 'ㅚ', 'ㅛ', 'ㅜ', 'ㅝ', 'ㅞ', 'ㅟ', 'ㅠ', 'ㅡ', 'ㅢ', 'ㅣ' +]; + +const JONGSUNG = [ + '', 'ㄱ', 'ㄲ', 'ㄳ', 'ㄴ', 'ㄵ', 'ㄶ', 'ㄷ', 'ㄹ', 'ㄺ', + 'ㄻ', 'ㄼ', 'ㄽ', 'ㄾ', 'ㄿ', 'ㅀ', 'ㅁ', 'ㅂ', 'ㅄ', 'ㅅ', + 'ㅆ', 'ㅇ', 'ㅈ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' +]; + +/** + * 한글 한 글자를 초성, 중성, 종성으로 분리 + * @param {string} char - 한글 한 글자 + * @returns {object} { cho, jung, jong } + */ +function decomposeHangul(char) { + const code = char.charCodeAt(0) - 0xAC00; + + if (code < 0 || code > 11171) { + return null; // 한글이 아님 + } + + const choIndex = Math.floor(code / 588); + const jungIndex = Math.floor((code % 588) / 28); + const jongIndex = code % 28; + + return { + cho: CHOSUNG[choIndex], + jung: JUNGSUNG[jungIndex], + jong: JONGSUNG[jongIndex] + }; +} + +/** + * 한글 이름을 로마자로 변환 + * @param {string} koreanName - 한글 이름 + * @returns {string} 로마자 이름 (예: 'hong.gildong') + */ +function hangulToRoman(koreanName) { + if (!koreanName || typeof koreanName !== 'string') { + return ''; + } + + // 공백 제거 + const trimmed = koreanName.trim(); + + // 성과 이름 분리 (첫 글자를 성으로 간주) + const surname = trimmed[0]; + const givenName = trimmed.substring(1); + + // 각 부분을 로마자로 변환 + const romanSurname = convertToRoman(surname); + const romanGivenName = convertToRoman(givenName); + + // 점(.)으로 연결 + return `${romanSurname}.${romanGivenName}`.toLowerCase(); +} + +/** + * 한글 문자열을 로마자로 변환 + * @param {string} text - 한글 문자열 + * @returns {string} 로마자 문자열 + */ +function convertToRoman(text) { + let result = ''; + + for (let i = 0; i < text.length; i++) { + const char = text[i]; + const decomposed = decomposeHangul(char); + + if (decomposed) { + result += CHOSUNG_MAP[decomposed.cho] || ''; + result += JUNGSUNG_MAP[decomposed.jung] || ''; + result += JONGSUNG_MAP[decomposed.jong] || ''; + } else { + // 한글이 아닌 경우 그대로 추가 + result += char; + } + } + + return result; +} + +/** + * 사용자명 생성 (중복 확인 및 처리) + * @param {string} koreanName - 한글 이름 + * @param {object} db - Database connection (mysql2 pool or knex) + * @returns {Promise} 고유한 username + */ +async function generateUniqueUsername(koreanName, db) { + const baseUsername = hangulToRoman(koreanName); + let username = baseUsername; + let counter = 1; + + // 중복 확인 + while (true) { + let existing; + + // mysql2 pool 또는 knex 모두 지원 + if (typeof db === 'function') { + // Knex + existing = await db('users') + .where('username', username) + .first(); + } else { + // mysql2 pool + const [rows] = await db.query('SELECT username FROM users WHERE username = ?', [username]); + existing = rows[0]; + } + + if (!existing) { + break; // 중복 없음 + } + + // 중복 시 숫자 추가 + username = `${baseUsername}${counter}`; + counter++; + } + + return username; +} + +module.exports = { + hangulToRoman, + convertToRoman, + generateUniqueUsername, + decomposeHangul +}; diff --git a/deploy/tkfb-package/api.hyungi.net/utils/logger.js b/deploy/tkfb-package/api.hyungi.net/utils/logger.js new file mode 100644 index 0000000..4109a96 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/logger.js @@ -0,0 +1,197 @@ +/** + * 로깅 유틸리티 + * + * 애플리케이션 전체에서 사용하는 통합 로거 + * + * @author TK-FB-Project + * @since 2025-12-11 + */ + +const fs = require('fs'); +const path = require('path'); + +/** + * 로그 레벨 정의 + */ +const LogLevel = { + ERROR: 'ERROR', + WARN: 'WARN', + INFO: 'INFO', + DEBUG: 'DEBUG' +}; + +/** + * 로그 레벨별 이모지 + */ +const LogEmoji = { + ERROR: '❌', + WARN: '⚠️', + INFO: 'ℹ️', + DEBUG: '🔍' +}; + +/** + * 로그 레벨별 색상 (콘솔) + */ +const LogColor = { + ERROR: '\x1b[31m', // Red + WARN: '\x1b[33m', // Yellow + INFO: '\x1b[36m', // Cyan + DEBUG: '\x1b[90m', // Gray + RESET: '\x1b[0m' +}; + +class Logger { + constructor() { + this.logDir = path.join(__dirname, '../logs'); + this.logFile = path.join(this.logDir, 'app.log'); + this.errorFile = path.join(this.logDir, 'error.log'); + this.ensureLogDirectory(); + } + + /** + * 로그 디렉토리 생성 + */ + ensureLogDirectory() { + if (!fs.existsSync(this.logDir)) { + fs.mkdirSync(this.logDir, { recursive: true }); + } + } + + /** + * 타임스탬프 생성 + */ + getTimestamp() { + return new Date().toISOString(); + } + + /** + * 로그 포맷팅 + */ + formatLog(level, message, context = {}) { + const timestamp = this.getTimestamp(); + const emoji = LogEmoji[level] || ''; + const contextStr = Object.keys(context).length > 0 + ? `\n Context: ${JSON.stringify(context, null, 2)}` + : ''; + + return `[${timestamp}] [${level}] ${emoji} ${message}${contextStr}`; + } + + /** + * 콘솔에 컬러 로그 출력 + */ + logToConsole(level, message, context = {}) { + const color = LogColor[level] || LogColor.RESET; + const formattedLog = this.formatLog(level, message, context); + + if (level === LogLevel.ERROR) { + console.error(`${color}${formattedLog}${LogColor.RESET}`); + } else if (level === LogLevel.WARN) { + console.warn(`${color}${formattedLog}${LogColor.RESET}`); + } else { + console.log(`${color}${formattedLog}${LogColor.RESET}`); + } + } + + /** + * 파일에 로그 기록 + */ + logToFile(level, message, context = {}) { + const formattedLog = this.formatLog(level, message, context); + const logEntry = `${formattedLog}\n`; + + try { + // 모든 로그를 app.log에 기록 + fs.appendFileSync(this.logFile, logEntry, 'utf8'); + + // 에러는 error.log에도 기록 + if (level === LogLevel.ERROR) { + fs.appendFileSync(this.errorFile, logEntry, 'utf8'); + } + } catch (err) { + console.error('로그 파일 기록 실패:', err); + } + } + + /** + * 로그 기록 메인 함수 + */ + log(level, message, context = {}) { + // 개발 환경에서는 콘솔에 출력 + if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV !== 'production') { + this.logToConsole(level, message, context); + } + + // 프로덕션에서는 파일에만 기록 + if (process.env.NODE_ENV === 'production') { + this.logToFile(level, message, context); + } + } + + /** + * 에러 로그 + */ + error(message, context = {}) { + this.log(LogLevel.ERROR, message, context); + } + + /** + * 경고 로그 + */ + warn(message, context = {}) { + this.log(LogLevel.WARN, message, context); + } + + /** + * 정보 로그 + */ + info(message, context = {}) { + this.log(LogLevel.INFO, message, context); + } + + /** + * 디버그 로그 + */ + debug(message, context = {}) { + // DEBUG 로그는 개발 환경에서만 출력 + if (process.env.NODE_ENV === 'development') { + this.log(LogLevel.DEBUG, message, context); + } + } + + /** + * HTTP 요청 로그 + */ + http(method, url, statusCode, duration, user = 'anonymous') { + const level = statusCode >= 400 ? LogLevel.ERROR : LogLevel.INFO; + const message = `${method} ${url} - ${statusCode} (${duration}ms)`; + const context = { + method, + url, + statusCode, + duration, + user + }; + + this.log(level, message, context); + } + + /** + * 데이터베이스 쿼리 로그 + */ + query(sql, params = [], duration = 0) { + if (process.env.NODE_ENV === 'development') { + this.debug('DB Query', { + sql, + params, + duration: `${duration}ms` + }); + } + } +} + +// 싱글톤 인스턴스 생성 및 내보내기 +const logger = new Logger(); + +module.exports = logger; diff --git a/deploy/tkfb-package/api.hyungi.net/utils/passwordValidator.js b/deploy/tkfb-package/api.hyungi.net/utils/passwordValidator.js new file mode 100644 index 0000000..dcfe583 --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/passwordValidator.js @@ -0,0 +1,173 @@ +/** + * Password Validator - 비밀번호 정책 검증 + * + * 강력한 비밀번호 정책: + * - 최소 12자 이상 + * - 대문자 포함 + * - 소문자 포함 + * - 숫자 포함 + * - 특수문자 포함 + * + * @author TK-FB-Project + * @since 2026-02-04 + */ + +/** + * 비밀번호 강도 검증 + * + * @param {string} password - 검증할 비밀번호 + * @param {Object} options - 옵션 (기본값 사용 권장) + * @returns {Object} { valid: boolean, errors: string[], strength: string } + */ +const validatePassword = (password, options = {}) => { + const config = { + minLength: options.minLength || 12, + requireUppercase: options.requireUppercase !== false, + requireLowercase: options.requireLowercase !== false, + requireNumbers: options.requireNumbers !== false, + requireSpecialChars: options.requireSpecialChars !== false, + maxLength: options.maxLength || 128 + }; + + const errors = []; + let strength = 0; + + // 필수 검증 + if (!password || typeof password !== 'string') { + return { + valid: false, + errors: ['비밀번호를 입력해주세요.'], + strength: 'invalid' + }; + } + + // 길이 검증 + if (password.length < config.minLength) { + errors.push(`비밀번호는 최소 ${config.minLength}자 이상이어야 합니다.`); + } else { + strength += 1; + } + + if (password.length > config.maxLength) { + errors.push(`비밀번호는 ${config.maxLength}자를 초과할 수 없습니다.`); + } + + // 대문자 검증 + if (config.requireUppercase && !/[A-Z]/.test(password)) { + errors.push('대문자를 1개 이상 포함해야 합니다.'); + } else if (/[A-Z]/.test(password)) { + strength += 1; + } + + // 소문자 검증 + if (config.requireLowercase && !/[a-z]/.test(password)) { + errors.push('소문자를 1개 이상 포함해야 합니다.'); + } else if (/[a-z]/.test(password)) { + strength += 1; + } + + // 숫자 검증 + if (config.requireNumbers && !/\d/.test(password)) { + errors.push('숫자를 1개 이상 포함해야 합니다.'); + } else if (/\d/.test(password)) { + strength += 1; + } + + // 특수문자 검증 + const specialChars = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/; + if (config.requireSpecialChars && !specialChars.test(password)) { + errors.push('특수문자를 1개 이상 포함해야 합니다. (!@#$%^&*()_+-=[]{};\':"|,.<>/?)'); + } else if (specialChars.test(password)) { + strength += 1; + } + + // 공백 검증 + if (/\s/.test(password)) { + errors.push('비밀번호에 공백을 포함할 수 없습니다.'); + } + + // 연속된 문자 검증 (선택적) + if (/(.)\1{2,}/.test(password)) { + errors.push('동일한 문자를 3회 이상 연속 사용할 수 없습니다.'); + } + + // 강도 계산 + let strengthLabel; + if (strength <= 2) { + strengthLabel = 'weak'; + } else if (strength <= 3) { + strengthLabel = 'medium'; + } else if (strength <= 4) { + strengthLabel = 'strong'; + } else { + strengthLabel = 'very_strong'; + } + + return { + valid: errors.length === 0, + errors, + strength: strengthLabel, + score: strength + }; +}; + +/** + * 간단한 비밀번호 검증 (기존 호환용) + * 모든 조건을 만족하면 true, 아니면 false + * + * @param {string} password - 검증할 비밀번호 + * @returns {boolean} 유효 여부 + */ +const isValidPassword = (password) => { + return validatePassword(password).valid; +}; + +/** + * 비밀번호 검증 결과를 한국어 메시지로 반환 + * + * @param {string} password - 검증할 비밀번호 + * @returns {string|null} 오류 메시지 (유효하면 null) + */ +const getPasswordError = (password) => { + const result = validatePassword(password); + if (result.valid) { + return null; + } + return result.errors.join(' '); +}; + +/** + * Express 미들웨어: 요청 body의 password 또는 newPassword 필드 검증 + * + * @param {string} fieldName - 검증할 필드명 (기본: 'password') + * @returns {Function} Express 미들웨어 + */ +const validatePasswordMiddleware = (fieldName = 'password') => { + return (req, res, next) => { + const password = req.body[fieldName] || req.body.newPassword; + + if (!password) { + return next(); // 비밀번호 필드가 없으면 다음 미들웨어로 + } + + const result = validatePassword(password); + + if (!result.valid) { + return res.status(400).json({ + success: false, + error: '비밀번호가 보안 요구사항을 충족하지 않습니다.', + details: result.errors, + code: 'WEAK_PASSWORD' + }); + } + + next(); + }; +}; + +module.exports = { + validatePassword, + isValidPassword, + getPasswordError, + validatePasswordMiddleware +}; diff --git a/deploy/tkfb-package/api.hyungi.net/utils/queryOptimizer.js b/deploy/tkfb-package/api.hyungi.net/utils/queryOptimizer.js new file mode 100644 index 0000000..e716d0f --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/queryOptimizer.js @@ -0,0 +1,433 @@ +// utils/queryOptimizer.js - 데이터베이스 쿼리 최적화 유틸리티 + +const { getDb } = require('../dbPool'); + +/** + * SQL Injection 방지를 위한 화이트리스트 검증 + */ +const ALLOWED_ORDER_DIRECTIONS = ['ASC', 'DESC']; +const ALLOWED_TABLE_NAME_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_]*$/; +const ALLOWED_COLUMN_NAME_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_.]*$/; + +const validateOrderDirection = (direction) => { + const normalized = (direction || 'DESC').toUpperCase(); + if (!ALLOWED_ORDER_DIRECTIONS.includes(normalized)) { + throw new Error(`Invalid order direction: ${direction}`); + } + return normalized; +}; + +const validateIdentifier = (identifier, type = 'column') => { + if (!identifier || typeof identifier !== 'string') { + throw new Error(`Invalid ${type} name`); + } + if (!ALLOWED_COLUMN_NAME_PATTERN.test(identifier)) { + throw new Error(`Invalid ${type} name: ${identifier}`); + } + return identifier; +}; + +const validateTableName = (tableName) => { + if (!tableName || typeof tableName !== 'string') { + throw new Error('Invalid table name'); + } + if (!ALLOWED_TABLE_NAME_PATTERN.test(tableName)) { + throw new Error(`Invalid table name: ${tableName}`); + } + return tableName; +}; + +/** + * 페이지네이션 헬퍼 + */ +const paginate = (page = 1, limit = 10) => { + const pageNum = Math.max(1, parseInt(page)); + const limitNum = Math.min(100, Math.max(1, parseInt(limit))); // 최대 100개 제한 + const offset = (pageNum - 1) * limitNum; + + return { + limit: limitNum, + offset, + page: pageNum + }; +}; + +/** + * 페이지네이션된 쿼리 실행 + */ +const executePagedQuery = async (baseQuery, countQuery, params = [], options = {}) => { + const { page = 1, limit = 10, orderBy = 'id', orderDirection = 'DESC' } = options; + const { limit: limitNum, offset, page: pageNum } = paginate(page, limit); + + // SQL Injection 방지: 컬럼명과 정렬방향 검증 + const safeOrderBy = validateIdentifier(orderBy, 'column'); + const safeOrderDirection = validateOrderDirection(orderDirection); + + try { + const db = await getDb(); + + // 전체 개수 조회 + const [countResult] = await db.execute(countQuery, params); + const totalCount = countResult[0]?.total || 0; + + // 데이터 조회 (ORDER BY와 LIMIT 추가) - 검증된 값만 사용 + const pagedQuery = `${baseQuery} ORDER BY ${safeOrderBy} ${safeOrderDirection} LIMIT ${limitNum} OFFSET ${offset}`; + const [rows] = await db.execute(pagedQuery, params); + + // 페이지네이션 메타데이터 계산 + const totalPages = Math.ceil(totalCount / limitNum); + + return { + data: rows, + pagination: { + currentPage: pageNum, + totalPages, + totalCount, + limit: limitNum, + hasNextPage: pageNum < totalPages, + hasPrevPage: pageNum > 1 + } + }; + + } catch (error) { + throw new Error(`페이지네이션 쿼리 실행 오류: ${error.message}`); + } +}; + +/** + * 인덱스 최적화 제안 + */ +const suggestIndexes = async (tableName) => { + // SQL Injection 방지: 테이블명 검증 + const safeTableName = validateTableName(tableName); + + try { + const db = await getDb(); + + // 현재 인덱스 조회 - 검증된 테이블명 사용 + const [indexes] = await db.execute(`SHOW INDEX FROM \`${safeTableName}\``); + + // 테이블 구조 조회 - 검증된 테이블명 사용 + const [columns] = await db.execute(`DESCRIBE \`${safeTableName}\``); + + const suggestions = []; + + // 외래키 컬럼에 인덱스 제안 + const foreignKeyColumns = columns.filter(col => + col.Field.endsWith('_id') && !indexes.some(idx => idx.Column_name === col.Field) + ); + + foreignKeyColumns.forEach(col => { + suggestions.push({ + type: 'INDEX', + column: col.Field, + reason: '외래키 컬럼에 인덱스 추가로 JOIN 성능 향상', + sql: `CREATE INDEX idx_${safeTableName}_${col.Field} ON \`${safeTableName}\`(\`${col.Field}\`);` + }); + }); + + // 날짜 컬럼에 인덱스 제안 + const dateColumns = columns.filter(col => + (col.Type.includes('date') || col.Type.includes('timestamp')) && + !indexes.some(idx => idx.Column_name === col.Field) + ); + + dateColumns.forEach(col => { + suggestions.push({ + type: 'INDEX', + column: col.Field, + reason: '날짜 범위 검색 성능 향상', + sql: `CREATE INDEX idx_${safeTableName}_${col.Field} ON \`${safeTableName}\`(\`${col.Field}\`);` + }); + }); + + return { + tableName: safeTableName, + currentIndexes: indexes.map(idx => ({ + name: idx.Key_name, + column: idx.Column_name, + unique: idx.Non_unique === 0 + })), + suggestions + }; + + } catch (error) { + throw new Error(`인덱스 분석 오류: ${error.message}`); + } +}; + +/** + * 쿼리 성능 분석 + */ +const analyzeQuery = async (query, params = []) => { + try { + const db = await getDb(); + + // EXPLAIN 실행 + const explainQuery = `EXPLAIN ${query}`; + const [explainResult] = await db.execute(explainQuery, params); + + // 쿼리 실행 시간 측정 + const startTime = Date.now(); + await db.execute(query, params); + const executionTime = Date.now() - startTime; + + // 성능 분석 + const analysis = { + executionTime, + explainResult, + recommendations: [] + }; + + // 성능 권장사항 생성 + explainResult.forEach(row => { + if (row.type === 'ALL') { + analysis.recommendations.push({ + type: 'WARNING', + message: `테이블 전체 스캔 발생: ${row.table}`, + suggestion: '적절한 인덱스 추가 권장' + }); + } + + if (row.rows > 1000) { + analysis.recommendations.push({ + type: 'WARNING', + message: `많은 행 검사: ${row.rows}행`, + suggestion: 'WHERE 조건 최적화 또는 인덱스 추가 권장' + }); + } + + if (row.Extra && row.Extra.includes('Using filesort')) { + analysis.recommendations.push({ + type: 'INFO', + message: '파일 정렬 사용 중', + suggestion: 'ORDER BY 컬럼에 인덱스 추가 고려' + }); + } + }); + + return analysis; + + } catch (error) { + throw new Error(`쿼리 분석 오류: ${error.message}`); + } +}; + +/** + * 배치 삽입 최적화 + */ +const batchInsert = async (tableName, data, batchSize = 100) => { + if (!Array.isArray(data) || data.length === 0) { + throw new Error('삽입할 데이터가 없습니다.'); + } + + // SQL Injection 방지: 테이블명 검증 + const safeTableName = validateTableName(tableName); + + try { + const db = await getDb(); + const connection = await db.getConnection(); + + await connection.beginTransaction(); + + const columns = Object.keys(data[0]); + // 컬럼명도 검증 + const safeColumns = columns.map(col => validateIdentifier(col, 'column')); + const placeholders = safeColumns.map(() => '?').join(', '); + const columnList = safeColumns.map(col => `\`${col}\``).join(', '); + const insertQuery = `INSERT INTO \`${safeTableName}\` (${columnList}) VALUES (${placeholders})`; + + let insertedCount = 0; + + // 배치 단위로 처리 + for (let i = 0; i < data.length; i += batchSize) { + const batch = data.slice(i, i + batchSize); + + for (const row of batch) { + const values = columns.map(col => row[col]); + await connection.execute(insertQuery, values); + insertedCount++; + } + } + + await connection.commit(); + connection.release(); + + return { + insertedCount, + batchSize, + totalBatches: Math.ceil(data.length / batchSize) + }; + + } catch (error) { + throw new Error(`배치 삽입 오류: ${error.message}`); + } +}; + +/** + * 쿼리 캐시 키 생성 + */ +const generateCacheKey = (query, params = [], prefix = 'query') => { + const paramString = params.length > 0 ? JSON.stringify(params) : ''; + const queryHash = require('crypto') + .createHash('md5') + .update(query + paramString) + .digest('hex'); + + return `${prefix}:${queryHash}`; +}; + +/** + * 자주 사용되는 최적화된 쿼리들 + */ +const optimizedQueries = { + // 작업자 목록 (페이지네이션) + getWorkersPaged: async (page = 1, limit = 10, search = '', status = '', departmentId = null) => { + let baseQuery = ` + SELECT w.*, d.department_name, COUNT(dwr.id) as report_count + FROM workers w + LEFT JOIN daily_work_reports dwr ON w.worker_id = dwr.worker_id + LEFT JOIN departments d ON w.department_id = d.department_id + `; + + let countQuery = ` + SELECT COUNT(*) as total FROM workers w + LEFT JOIN departments d ON w.department_id = d.department_id + `; + let params = []; + let conditions = []; + + // 검색 조건 + if (search) { + conditions.push('(w.worker_name LIKE ? OR w.position LIKE ?)'); + params.push(`%${search}%`, `%${search}%`); + } + + // 상태 조건 + if (status) { + conditions.push('w.status = ?'); + params.push(status); + } + + // 부서 조건 + if (departmentId) { + conditions.push('w.department_id = ?'); + params.push(departmentId); + } + + // 조건 조합 + if (conditions.length > 0) { + const whereClause = ' WHERE ' + conditions.join(' AND '); + baseQuery += whereClause; + countQuery += whereClause; + } + + baseQuery += ' GROUP BY w.worker_id'; + + return executePagedQuery(baseQuery, countQuery, params, { + page, limit, orderBy: 'w.worker_id', orderDirection: 'DESC' + }); + }, + + // 프로젝트 목록 (페이지네이션) + getProjectsPaged: async (page = 1, limit = 10, status = '') => { + let baseQuery = ` + SELECT p.*, COUNT(dwr.id) as report_count, + SUM(dwr.work_hours) as total_hours + FROM projects p + LEFT JOIN daily_work_reports dwr ON p.project_id = dwr.project_id + `; + + let countQuery = 'SELECT COUNT(*) as total FROM projects p'; + let params = []; + + if (status) { + const statusCondition = ' WHERE p.status = ?'; + baseQuery += statusCondition + ' GROUP BY p.project_id'; + countQuery += statusCondition; + params = [status]; + } else { + baseQuery += ' GROUP BY p.project_id'; + } + + return executePagedQuery(baseQuery, countQuery, params, { + page, limit, orderBy: 'p.project_id', orderDirection: 'DESC' + }); + }, + + // 일일 작업 보고서 (날짜 범위, 페이지네이션) + getDailyWorkReportsPaged: async (startDate, endDate, page = 1, limit = 10) => { + const baseQuery = ` + SELECT dwr.*, w.worker_name, p.project_name, + wt.name as work_type_name, wst.name as work_status_name, + et.name as error_type_name, u.name as created_by_name + FROM daily_work_reports dwr + LEFT JOIN workers w ON dwr.worker_id = w.worker_id + LEFT JOIN projects p ON dwr.project_id = p.project_id + LEFT JOIN work_types wt ON dwr.work_type_id = wt.id + LEFT JOIN work_status_types wst ON dwr.work_status_id = wst.id + LEFT JOIN error_types et ON dwr.error_type_id = et.id + LEFT JOIN users u ON dwr.created_by = u.user_id + WHERE dwr.report_date BETWEEN ? AND ? + `; + + const countQuery = ` + SELECT COUNT(*) as total + FROM daily_work_reports dwr + WHERE dwr.report_date BETWEEN ? AND ? + `; + + return executePagedQuery(baseQuery, countQuery, [startDate, endDate], { + page, limit, orderBy: 'dwr.report_date', orderDirection: 'DESC' + }); + } +}; + +/** + * 데이터베이스 성능 모니터링 + */ +const getPerformanceStats = async () => { + try { + const db = await getDb(); + + // 연결 상태 조회 + const [connections] = await db.execute('SHOW STATUS LIKE "Threads_connected"'); + const [maxConnections] = await db.execute('SHOW VARIABLES LIKE "max_connections"'); + + // 쿼리 캐시 상태 (MySQL 8.0 이전 버전) + let queryCacheStats = null; + try { + const [qcStats] = await db.execute('SHOW STATUS LIKE "Qcache%"'); + queryCacheStats = qcStats; + } catch (error) { + // MySQL 8.0+에서는 쿼리 캐시가 제거됨 + } + + // 슬로우 쿼리 로그 상태 + const [slowQueries] = await db.execute('SHOW STATUS LIKE "Slow_queries"'); + + return { + connections: { + current: parseInt(connections[0]?.Value || 0), + max: parseInt(maxConnections[0]?.Value || 0) + }, + queryCacheStats, + slowQueries: parseInt(slowQueries[0]?.Value || 0), + timestamp: new Date().toISOString() + }; + + } catch (error) { + throw new Error(`성능 통계 조회 오류: ${error.message}`); + } +}; + +module.exports = { + paginate, + executePagedQuery, + suggestIndexes, + analyzeQuery, + batchInsert, + generateCacheKey, + optimizedQueries, + getPerformanceStats +}; diff --git a/deploy/tkfb-package/api.hyungi.net/utils/responseFormatter.js b/deploy/tkfb-package/api.hyungi.net/utils/responseFormatter.js new file mode 100644 index 0000000..46365bc --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/responseFormatter.js @@ -0,0 +1,188 @@ +// utils/responseFormatter.js - 통합 응답 포맷터 + +/** + * 성공 응답 포맷터 + */ +const successResponse = (data = null, message = '요청이 성공적으로 처리되었습니다.', meta = null) => { + const response = { + success: true, + message, + timestamp: new Date().toISOString() + }; + + if (data !== null) { + response.data = data; + } + + if (meta) { + response.meta = meta; + } + + return response; +}; + +/** + * 페이지네이션 응답 포맷터 + */ +const paginatedResponse = (data, totalCount, page = 1, limit = 10, message = '데이터 조회 성공') => { + const totalPages = Math.ceil(totalCount / limit); + + return successResponse(data, message, { + pagination: { + currentPage: parseInt(page), + totalPages, + totalCount: parseInt(totalCount), + limit: parseInt(limit), + hasNextPage: page < totalPages, + hasPrevPage: page > 1 + } + }); +}; + +/** + * 리스트 응답 포맷터 + */ +const listResponse = (items, message = '목록 조회 성공') => { + return successResponse(items, message, { + count: items.length + }); +}; + +/** + * 생성 응답 포맷터 + */ +const createdResponse = (data, message = '데이터가 성공적으로 생성되었습니다.') => { + return successResponse(data, message); +}; + +/** + * 업데이트 응답 포맷터 + */ +const updatedResponse = (data = null, message = '데이터가 성공적으로 업데이트되었습니다.') => { + return successResponse(data, message); +}; + +/** + * 삭제 응답 포맷터 + */ +const deletedResponse = (message = '데이터가 성공적으로 삭제되었습니다.') => { + return successResponse(null, message); +}; + +/** + * 통계 응답 포맷터 + */ +const statsResponse = (stats, period = null, message = '통계 조회 성공') => { + const meta = {}; + if (period) { + meta.period = period; + } + meta.generatedAt = new Date().toISOString(); + + return successResponse(stats, message, meta); +}; + +/** + * 인증 응답 포맷터 + */ +const authResponse = (user, token, redirectUrl = null, message = '로그인 성공') => { + const data = { + user, + token + }; + + if (redirectUrl) { + data.redirectUrl = redirectUrl; + } + + return successResponse(data, message); +}; + +/** + * 파일 업로드 응답 포맷터 + */ +const uploadResponse = (fileInfo, message = '파일 업로드 성공') => { + return successResponse({ + filename: fileInfo.filename, + originalName: fileInfo.originalname, + size: fileInfo.size, + mimetype: fileInfo.mimetype, + path: fileInfo.path, + uploadedAt: new Date().toISOString() + }, message); +}; + +/** + * 헬스체크 응답 포맷터 + */ +const healthResponse = (status = 'healthy', services = {}) => { + return successResponse({ + status, + services, + uptime: process.uptime(), + memory: process.memoryUsage(), + version: process.version + }, `서버 상태: ${status}`); +}; + +/** + * Express 응답 확장 미들웨어 + */ +const responseMiddleware = (req, res, next) => { + // 성공 응답 헬퍼들을 res 객체에 추가 + res.success = (data, message, meta) => { + return res.json(successResponse(data, message, meta)); + }; + + res.paginated = (data, totalCount, page, limit, message) => { + return res.json(paginatedResponse(data, totalCount, page, limit, message)); + }; + + res.list = (items, message) => { + return res.json(listResponse(items, message)); + }; + + res.created = (data, message) => { + return res.status(201).json(createdResponse(data, message)); + }; + + res.updated = (data, message) => { + return res.json(updatedResponse(data, message)); + }; + + res.deleted = (message) => { + return res.json(deletedResponse(message)); + }; + + res.stats = (stats, period, message) => { + return res.json(statsResponse(stats, period, message)); + }; + + res.auth = (user, token, redirectUrl, message) => { + return res.json(authResponse(user, token, redirectUrl, message)); + }; + + res.upload = (fileInfo, message) => { + return res.json(uploadResponse(fileInfo, message)); + }; + + res.health = (status, services) => { + return res.json(healthResponse(status, services)); + }; + + next(); +}; + +module.exports = { + successResponse, + paginatedResponse, + listResponse, + createdResponse, + updatedResponse, + deletedResponse, + statsResponse, + authResponse, + uploadResponse, + healthResponse, + responseMiddleware +}; diff --git a/deploy/tkfb-package/api.hyungi.net/utils/validator.js b/deploy/tkfb-package/api.hyungi.net/utils/validator.js new file mode 100644 index 0000000..66d4f3d --- /dev/null +++ b/deploy/tkfb-package/api.hyungi.net/utils/validator.js @@ -0,0 +1,304 @@ +// utils/validator.js - 유효성 검사 유틸리티 + +const { handleValidationError } = require('./errorHandler'); + +/** + * 필수 필드 검사 + */ +const required = (value, fieldName) => { + if (value === undefined || value === null || value === '') { + handleValidationError(fieldName, value, 'required'); + } + return true; +}; + +/** + * 문자열 길이 검사 + */ +const stringLength = (value, fieldName, min = 0, max = Infinity) => { + if (typeof value !== 'string') { + handleValidationError(fieldName, value, 'string type'); + } + if (value.length < min || value.length > max) { + handleValidationError(fieldName, value, `length between ${min} and ${max}`); + } + return true; +}; + +/** + * 숫자 범위 검사 + */ +const numberRange = (value, fieldName, min = -Infinity, max = Infinity) => { + const num = parseFloat(value); + if (isNaN(num)) { + handleValidationError(fieldName, value, 'number type'); + } + if (num < min || num > max) { + handleValidationError(fieldName, value, `number between ${min} and ${max}`); + } + return true; +}; + +/** + * 정수 검사 + */ +const integer = (value, fieldName) => { + const num = parseInt(value); + if (isNaN(num) || num.toString() !== value.toString()) { + handleValidationError(fieldName, value, 'integer'); + } + return true; +}; + +/** + * 이메일 형식 검사 + */ +const email = (value, fieldName) => { + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + if (!emailRegex.test(value)) { + handleValidationError(fieldName, value, 'valid email format'); + } + return true; +}; + +/** + * 날짜 형식 검사 (YYYY-MM-DD) + */ +const dateFormat = (value, fieldName) => { + const dateRegex = /^\d{4}-\d{2}-\d{2}$/; + if (!dateRegex.test(value)) { + handleValidationError(fieldName, value, 'YYYY-MM-DD format'); + } + + const date = new Date(value); + if (isNaN(date.getTime())) { + handleValidationError(fieldName, value, 'valid date'); + } + return true; +}; + +/** + * 시간 형식 검사 (HH:MM) + */ +const timeFormat = (value, fieldName) => { + const timeRegex = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/; + if (!timeRegex.test(value)) { + handleValidationError(fieldName, value, 'HH:MM format'); + } + return true; +}; + +/** + * 열거형 값 검사 + */ +const enumValue = (value, fieldName, allowedValues) => { + if (!allowedValues.includes(value)) { + handleValidationError(fieldName, value, `one of: ${allowedValues.join(', ')}`); + } + return true; +}; + +/** + * 배열 검사 + */ +const arrayType = (value, fieldName, minLength = 0, maxLength = Infinity) => { + if (!Array.isArray(value)) { + handleValidationError(fieldName, value, 'array type'); + } + if (value.length < minLength || value.length > maxLength) { + handleValidationError(fieldName, value, `array length between ${minLength} and ${maxLength}`); + } + return true; +}; + +/** + * 객체 검사 + */ +const objectType = (value, fieldName) => { + if (typeof value !== 'object' || value === null || Array.isArray(value)) { + handleValidationError(fieldName, value, 'object type'); + } + return true; +}; + +/** + * 비밀번호 강도 검사 + */ +const passwordStrength = (value, fieldName) => { + if (typeof value !== 'string') { + handleValidationError(fieldName, value, 'string type'); + } + + const minLength = 8; + const hasUpperCase = /[A-Z]/.test(value); + const hasLowerCase = /[a-z]/.test(value); + const hasNumbers = /\d/.test(value); + const hasSpecialChar = /[!@#$%^&*(),.?":{}|<>]/.test(value); + + if (value.length < minLength) { + handleValidationError(fieldName, value, `minimum ${minLength} characters`); + } + + const strengthChecks = [hasUpperCase, hasLowerCase, hasNumbers, hasSpecialChar]; + const passedChecks = strengthChecks.filter(Boolean).length; + + if (passedChecks < 3) { + handleValidationError(fieldName, value, 'at least 3 of: uppercase, lowercase, numbers, special characters'); + } + + return true; +}; + +/** + * 스키마 기반 유효성 검사 + */ +const validateSchema = (data, schema) => { + const errors = []; + + for (const [field, rules] of Object.entries(schema)) { + const value = data[field]; + + try { + // 필수 필드 검사 + if (rules.required) { + required(value, field); + } + + // 값이 없고 필수가 아니면 다른 검사 스킵 + if ((value === undefined || value === null || value === '') && !rules.required) { + continue; + } + + // 타입별 검사 + if (rules.type === 'string' && rules.minLength !== undefined && rules.maxLength !== undefined) { + stringLength(value, field, rules.minLength, rules.maxLength); + } + + if (rules.type === 'number' && rules.min !== undefined && rules.max !== undefined) { + numberRange(value, field, rules.min, rules.max); + } + + if (rules.type === 'integer') { + integer(value, field); + } + + if (rules.type === 'email') { + email(value, field); + } + + if (rules.type === 'date') { + dateFormat(value, field); + } + + if (rules.type === 'time') { + timeFormat(value, field); + } + + if (rules.type === 'array') { + arrayType(value, field, rules.minLength, rules.maxLength); + } + + if (rules.type === 'object') { + objectType(value, field); + } + + if (rules.enum) { + enumValue(value, field, rules.enum); + } + + if (rules.password) { + passwordStrength(value, field); + } + + // 커스텀 검증 함수 + if (rules.custom && typeof rules.custom === 'function') { + rules.custom(value, field); + } + + } catch (error) { + errors.push({ + field, + value, + message: error.message + }); + } + } + + if (errors.length > 0) { + const errorMessage = errors.map(e => `${e.field}: ${e.message}`).join(', '); + handleValidationError('validation', 'multiple fields', errorMessage); + } + + return true; +}; + +/** + * 일반적인 스키마 정의들 + */ +const schemas = { + // 사용자 생성 + createUser: { + username: { required: true, type: 'string', minLength: 3, maxLength: 50 }, + password: { required: true, password: true }, + name: { required: true, type: 'string', minLength: 2, maxLength: 100 }, + access_level: { required: true, enum: ['user', 'admin', 'system'] }, + worker_id: { type: 'integer' } + }, + + // 사용자 업데이트 + updateUser: { + name: { type: 'string', minLength: 2, maxLength: 100 }, + access_level: { enum: ['user', 'admin', 'system'] }, + worker_id: { type: 'integer' } + }, + + // 비밀번호 변경 + changePassword: { + currentPassword: { required: true, type: 'string' }, + newPassword: { required: true, password: true } + }, + + // 일일 작업 보고서 생성 (배열 형태) + createDailyWorkReport: { + report_date: { required: true, type: 'date' }, + worker_id: { required: true, type: 'integer' }, + work_entries: { required: true, type: 'array' }, + created_by: { type: 'integer' } + }, + + // 프로젝트 생성 + createProject: { + project_name: { required: true, type: 'string', minLength: 2, maxLength: 200 }, + description: { type: 'string', maxLength: 1000 }, + start_date: { type: 'date' }, + end_date: { type: 'date' } + }, + + // 작업자 생성 + createWorker: { + worker_name: { required: true, type: 'string', minLength: 2, maxLength: 100 }, + position: { type: 'string', maxLength: 100 }, + department: { type: 'string', maxLength: 100 }, + phone: { type: 'string', maxLength: 20 }, + email: { type: 'email' } + } +}; + +module.exports = { + // 개별 검증 함수들 + required, + stringLength, + numberRange, + integer, + email, + dateFormat, + timeFormat, + enumValue, + arrayType, + objectType, + passwordStrength, + + // 스키마 검증 + validateSchema, + schemas +}; diff --git a/deploy/tkfb-package/backup_20260206_085303.sql b/deploy/tkfb-package/backup_20260206_085303.sql new file mode 100644 index 0000000..9e7094d --- /dev/null +++ b/deploy/tkfb-package/backup_20260206_085303.sql @@ -0,0 +1,7407 @@ +-- MariaDB dump 10.19 Distrib 10.9.8-MariaDB, for debian-linux-gnu (aarch64) +-- +-- Host: localhost Database: hyungi +-- ------------------------------------------------------ +-- Server version 10.9.8-MariaDB-1:10.9.8+maria~ubu2204 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Current Database: `hyungi` +-- + +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `hyungi` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */; + +USE `hyungi`; + +-- +-- Table structure for table `CuttingPlan` +-- + +DROP TABLE IF EXISTS `CuttingPlan`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `CuttingPlan` ( + `cutting_plan_id` int(11) NOT NULL AUTO_INCREMENT, + `project_id` int(11) NOT NULL, + `drawing_name` varchar(255) NOT NULL, + `area_number` varchar(100) DEFAULT NULL, + `spool_number` varchar(255) DEFAULT NULL, + `length` decimal(10,2) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `spec_id` int(11) NOT NULL, + PRIMARY KEY (`cutting_plan_id`), + KEY `project_id` (`project_id`), + KEY `fk_cuttingplan_spec` (`spec_id`), + CONSTRAINT `CuttingPlan_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`), + CONSTRAINT `fk_cuttingplan_spec` FOREIGN KEY (`spec_id`) REFERENCES `PipeSpecs` (`spec_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `CuttingPlan` +-- + +LOCK TABLES `CuttingPlan` WRITE; +/*!40000 ALTER TABLE `CuttingPlan` DISABLE KEYS */; +/*!40000 ALTER TABLE `CuttingPlan` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `DailyIssueReports` +-- + +DROP TABLE IF EXISTS `DailyIssueReports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `DailyIssueReports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `issue_type_id` int(11) DEFAULT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `start_time` time NOT NULL, + `end_time` time NOT NULL, + PRIMARY KEY (`id`), + KEY `worker_id` (`worker_id`), + KEY `fk_dird_project` (`project_id`), + KEY `fk_dird_issuetype` (`issue_type_id`), + CONSTRAINT `dailyissuereports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`), + CONSTRAINT `fk_dird_issuetype` FOREIGN KEY (`issue_type_id`) REFERENCES `IssueTypes` (`issue_type_id`), + CONSTRAINT `fk_dird_project` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `DailyIssueReports` +-- + +LOCK TABLES `DailyIssueReports` WRITE; +/*!40000 ALTER TABLE `DailyIssueReports` DISABLE KEYS */; +INSERT INTO `DailyIssueReports` VALUES +(1,'2025-06-02',1,7,5,NULL,'2025-06-02 05:54:35','10:00:00','11:30:00'), +(2,'2025-06-02',9,7,5,NULL,'2025-06-02 05:54:35','10:00:00','11:30:00'), +(3,'2025-06-02',7,7,5,NULL,'2025-06-02 05:54:35','10:00:00','11:30:00'), +(4,'2025-06-04',10,7,3,NULL,'2025-06-04 01:54:03','10:00:00','11:30:00'), +(5,'2025-06-04',6,7,3,NULL,'2025-06-04 01:54:03','10:00:00','11:30:00'), +(6,'2025-06-04',3,7,3,NULL,'2025-06-04 01:54:03','10:00:00','11:30:00'), +(7,'2025-06-11',10,7,6,NULL,'2025-06-10 08:56:09','07:30:00','08:00:00'), +(8,'2025-06-11',6,7,6,NULL,'2025-06-10 08:56:09','07:30:00','08:00:00'), +(9,'2025-06-11',3,7,6,NULL,'2025-06-10 08:56:09','07:30:00','08:00:00'); +/*!40000 ALTER TABLE `DailyIssueReports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `FactoryInfo` +-- + +DROP TABLE IF EXISTS `FactoryInfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `FactoryInfo` ( + `factory_id` int(11) NOT NULL AUTO_INCREMENT, + `factory_name` varchar(255) NOT NULL, + `address` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `map_image_url` varchar(255) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`factory_id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `FactoryInfo` +-- + +LOCK TABLES `FactoryInfo` WRITE; +/*!40000 ALTER TABLE `FactoryInfo` DISABLE KEYS */; +INSERT INTO `FactoryInfo` VALUES +(3,'제1공장 휴게공간 및 작업자 사물함','현대기아로 771-9','개인 보관함, 컨테이너(휴게공간), 화장실, 흡연장','/uploads/map_image-1746593523450.png','2025-05-07 04:52:03','2025-05-07 04:52:03'), +(4,'제 1공장 공구 및 용접봉 보관 구역','현대기아로 771-9','소모품, 공구류, 용접봉 보관 구역','/uploads/map_image-1746593674259.png','2025-05-07 04:53:59','2025-05-07 04:53:59'), +(5,'ee','ee','ee',NULL,'2025-06-03 22:13:23','2025-06-03 22:13:23'); +/*!40000 ALTER TABLE `FactoryInfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `IssueTypes` +-- + +DROP TABLE IF EXISTS `IssueTypes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `IssueTypes` ( + `issue_type_id` int(11) NOT NULL AUTO_INCREMENT, + `category` varchar(100) NOT NULL, + `subcategory` varchar(100) NOT NULL, + PRIMARY KEY (`issue_type_id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `IssueTypes` +-- + +LOCK TABLES `IssueTypes` WRITE; +/*!40000 ALTER TABLE `IssueTypes` DISABLE KEYS */; +INSERT INTO `IssueTypes` VALUES +(1,'구매팀','자재입고지연'), +(2,'구매팀','자재전달 미흡'), +(3,'품질','검사 내용 전달 미흡'), +(4,'품질','검사오류'), +(5,'설계','설계미스(치수)'), +(6,'설계','설계미스(작업불가)'); +/*!40000 ALTER TABLE `IssueTypes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `PipeSpecs` +-- + +DROP TABLE IF EXISTS `PipeSpecs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `PipeSpecs` ( + `spec_id` int(11) NOT NULL AUTO_INCREMENT, + `material` varchar(50) NOT NULL COMMENT '재질 (예: SS400, STS304)', + `diameter_in` varchar(10) NOT NULL COMMENT '직경 (inch, 예: 2")', + `schedule` varchar(50) NOT NULL COMMENT '스케줄 (예: STD, SCH10, SCH40)', + PRIMARY KEY (`spec_id`), + UNIQUE KEY `unique_spec` (`material`,`diameter_in`,`schedule`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `PipeSpecs` +-- + +LOCK TABLES `PipeSpecs` WRITE; +/*!40000 ALTER TABLE `PipeSpecs` DISABLE KEYS */; +INSERT INTO `PipeSpecs` VALUES +(2,'516-70N','1','SCH80'), +(1,'A106','3/4','SCH80'); +/*!40000 ALTER TABLE `PipeSpecs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Processes` +-- + +DROP TABLE IF EXISTS `Processes`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Processes` ( + `process_id` int(11) NOT NULL AUTO_INCREMENT, + `project_id` int(11) NOT NULL, + `process_name` varchar(255) NOT NULL, + `process_start` date NOT NULL, + `process_end` date DEFAULT NULL, + `planned_worker_count` int(11) NOT NULL, + `process_description` text DEFAULT NULL, + `note` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`process_id`), + KEY `project_id` (`project_id`), + CONSTRAINT `Processes_ibfk_1` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Processes` +-- + +LOCK TABLES `Processes` WRITE; +/*!40000 ALTER TABLE `Processes` DISABLE KEYS */; +/*!40000 ALTER TABLE `Processes` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `WorkReports` +-- + +DROP TABLE IF EXISTS `WorkReports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `WorkReports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `project_id` int(11) NOT NULL, + `morning_task_id` int(11) DEFAULT NULL, + `afternoon_task_id` int(11) DEFAULT NULL, + `overtime_hours` decimal(4,1) DEFAULT 0.0, + `overtime_task_id` int(11) DEFAULT NULL, + `work_details` text DEFAULT NULL, + `note` text DEFAULT NULL, + `memo` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `morning_project_id` int(11) DEFAULT NULL, + `afternoon_project_id` int(11) DEFAULT NULL, + `overtime_project_id` int(11) DEFAULT NULL, + `task_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `worker_id` (`worker_id`), + KEY `project_id` (`project_id`), + KEY `morning_task_id` (`morning_task_id`), + KEY `afternoon_task_id` (`afternoon_task_id`), + KEY `overtime_task_id` (`overtime_task_id`), + CONSTRAINT `WorkReports_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`), + CONSTRAINT `WorkReports_ibfk_2` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`), + CONSTRAINT `WorkReports_ibfk_3` FOREIGN KEY (`morning_task_id`) REFERENCES `tasks_old_backup` (`task_id`), + CONSTRAINT `WorkReports_ibfk_4` FOREIGN KEY (`afternoon_task_id`) REFERENCES `tasks_old_backup` (`task_id`), + CONSTRAINT `WorkReports_ibfk_5` FOREIGN KEY (`overtime_task_id`) REFERENCES `tasks_old_backup` (`task_id`) +) ENGINE=InnoDB AUTO_INCREMENT=1766 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `WorkReports` +-- + +LOCK TABLES `WorkReports` WRITE; +/*!40000 ALTER TABLE `WorkReports` DISABLE KEYS */; +INSERT INTO `WorkReports` VALUES +(176,'2025-01-02',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(177,'2025-01-02',2,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(178,'2025-01-02',4,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(179,'2025-01-02',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(180,'2025-01-02',8,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(181,'2025-01-02',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(182,'2025-01-02',6,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,9), +(183,'2025-01-02',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:40:56','2025-04-16 05:40:56',NULL,NULL,NULL,15), +(194,'2025-01-03',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(195,'2025-01-03',2,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(196,'2025-01-03',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,15), +(197,'2025-01-03',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(198,'2025-01-03',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,15), +(199,'2025-01-03',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(200,'2025-01-03',6,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(201,'2025-01-03',4,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(202,'2025-01-03',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:42:07','2025-04-16 05:42:07',NULL,NULL,NULL,9), +(203,'2025-01-04',7,12,NULL,NULL,NULL,NULL,'휴일근무',NULL,NULL,'2025-04-16 05:43:25','2025-04-16 05:43:25',NULL,NULL,NULL,12), +(204,'2025-01-06',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:03','2025-04-16 05:44:03',NULL,NULL,NULL,12), +(205,'2025-01-06',3,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:03','2025-04-16 05:44:03',NULL,NULL,NULL,12), +(206,'2025-01-06',2,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(207,'2025-01-06',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(208,'2025-01-06',8,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(209,'2025-01-06',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(210,'2025-01-06',6,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(211,'2025-01-06',4,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(212,'2025-01-06',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:44:04','2025-04-16 05:44:04',NULL,NULL,NULL,12), +(213,'2025-01-07',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,12), +(214,'2025-01-07',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,1), +(215,'2025-01-07',3,12,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,12), +(216,'2025-01-07',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,12), +(217,'2025-01-07',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,1), +(218,'2025-01-07',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,12), +(219,'2025-01-07',6,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:24','2025-04-16 05:45:24',NULL,NULL,NULL,12), +(220,'2025-01-07',4,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:25','2025-04-16 05:45:25',NULL,NULL,NULL,12), +(221,'2025-01-07',5,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:45:25','2025-04-16 05:45:25',NULL,NULL,NULL,1), +(222,'2025-01-08',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(223,'2025-01-08',2,2,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,1), +(224,'2025-01-08',3,12,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(225,'2025-01-08',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(226,'2025-01-08',8,2,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,1), +(227,'2025-01-08',9,12,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(228,'2025-01-08',6,12,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(229,'2025-01-08',4,2,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,1), +(230,'2025-01-08',5,12,NULL,NULL,1.0,NULL,'근무',NULL,NULL,'2025-04-16 05:46:50','2025-04-16 05:46:50',NULL,NULL,NULL,13), +(231,'2025-01-09',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(232,'2025-01-09',2,2,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,1), +(233,'2025-01-09',3,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(234,'2025-01-09',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(235,'2025-01-09',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,1), +(236,'2025-01-09',6,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(237,'2025-01-09',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,1), +(238,'2025-01-09',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(239,'2025-01-09',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:48:02','2025-04-16 05:48:02',NULL,NULL,NULL,13), +(240,'2025-01-10',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:16','2025-04-16 05:49:16',NULL,NULL,NULL,13), +(241,'2025-01-10',2,2,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,1), +(242,'2025-01-10',3,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,13), +(243,'2025-01-10',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,13), +(244,'2025-01-10',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,1), +(245,'2025-01-10',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,13), +(246,'2025-01-10',6,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,15), +(247,'2025-01-10',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,1), +(248,'2025-01-10',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:49:17','2025-04-16 05:49:17',NULL,NULL,NULL,13), +(249,'2025-01-13',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,13), +(250,'2025-01-13',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,1), +(251,'2025-01-13',3,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,1), +(252,'2025-01-13',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,13), +(253,'2025-01-13',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,1), +(254,'2025-01-13',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,13), +(255,'2025-01-13',6,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,1), +(256,'2025-01-13',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,15), +(257,'2025-01-13',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:50:22','2025-04-16 05:50:22',NULL,NULL,NULL,13), +(258,'2025-01-14',1,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,13), +(259,'2025-01-14',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,1), +(260,'2025-01-14',3,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,1), +(261,'2025-01-14',7,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,13), +(262,'2025-01-14',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,1), +(263,'2025-01-14',9,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,13), +(265,'2025-01-14',4,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,13), +(266,'2025-01-14',5,12,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,13), +(267,'2025-01-14',6,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:51:24','2025-04-16 05:51:24',NULL,NULL,NULL,1), +(268,'2025-01-15',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,1), +(269,'2025-01-15',2,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,14), +(270,'2025-01-15',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,1), +(271,'2025-01-15',7,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,13), +(272,'2025-01-15',8,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,14), +(273,'2025-01-15',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,1), +(275,'2025-01-15',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:37','2025-04-16 05:52:37',NULL,NULL,NULL,1), +(276,'2025-01-15',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:38','2025-04-16 05:52:38',NULL,NULL,NULL,1), +(277,'2025-01-15',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:52:38','2025-04-16 05:52:38',NULL,NULL,NULL,1), +(278,'2025-01-16',1,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:54:11','2025-04-16 05:54:11',NULL,NULL,NULL,1), +(279,'2025-01-16',2,7,NULL,NULL,NULL,NULL,'근무',NULL,'볼트 보관함 제작','2025-04-16 05:54:11','2025-04-16 05:54:11',NULL,NULL,NULL,14), +(280,'2025-01-16',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:11','2025-04-16 05:54:11',NULL,NULL,NULL,1), +(281,'2025-01-16',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:11','2025-04-16 05:54:11',NULL,NULL,NULL,1), +(282,'2025-01-16',8,7,NULL,NULL,NULL,NULL,'근무',NULL,'볼트 보관함 제작','2025-04-16 05:54:11','2025-04-16 05:54:11',NULL,NULL,NULL,14), +(283,'2025-01-16',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:12','2025-04-16 05:54:12',NULL,NULL,NULL,1), +(285,'2025-01-16',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:12','2025-04-16 05:54:12',NULL,NULL,NULL,1), +(286,'2025-01-16',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:12','2025-04-16 05:54:12',NULL,NULL,NULL,1), +(287,'2025-01-16',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:54:12','2025-04-16 05:54:12',NULL,NULL,NULL,1), +(288,'2025-01-17',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(289,'2025-01-17',2,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(290,'2025-01-17',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(291,'2025-01-17',7,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(292,'2025-01-17',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(293,'2025-01-17',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(295,'2025-01-17',4,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(296,'2025-01-17',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(297,'2025-01-17',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:55:22','2025-04-16 05:55:22',NULL,NULL,NULL,1), +(298,'2025-01-20',1,7,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,14), +(299,'2025-01-20',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,8), +(300,'2025-01-20',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,1), +(301,'2025-01-20',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,1), +(302,'2025-01-20',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,1), +(303,'2025-01-20',9,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,14), +(304,'2025-01-20',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,1), +(305,'2025-01-20',7,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,14), +(306,'2025-01-20',5,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:58:05','2025-04-16 05:58:05',NULL,NULL,NULL,14), +(307,'2025-01-21',1,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,15), +(308,'2025-01-21',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,8), +(309,'2025-01-21',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,1), +(310,'2025-01-21',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,1), +(311,'2025-01-21',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,8), +(312,'2025-01-21',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,15), +(313,'2025-01-21',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,1), +(314,'2025-01-21',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:06','2025-04-16 05:59:06',NULL,NULL,NULL,1), +(315,'2025-01-21',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 05:59:07','2025-04-16 05:59:07',NULL,NULL,NULL,1), +(316,'2025-01-22',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(317,'2025-01-22',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,8), +(318,'2025-01-22',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(319,'2025-01-22',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(320,'2025-01-22',8,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,8), +(321,'2025-01-22',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(322,'2025-01-22',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(323,'2025-01-22',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,1), +(324,'2025-01-22',5,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:00:28','2025-04-16 06:00:28',NULL,NULL,NULL,8), +(325,'2025-01-23',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(326,'2025-01-23',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,8), +(327,'2025-01-23',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(328,'2025-01-23',7,1,NULL,NULL,NULL,NULL,'조퇴',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(329,'2025-01-23',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(330,'2025-01-23',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(331,'2025-01-23',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(332,'2025-01-23',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,1), +(333,'2025-01-23',5,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:01:57','2025-04-16 06:01:57',NULL,NULL,NULL,8), +(334,'2025-01-24',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(335,'2025-01-24',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,8), +(336,'2025-01-24',3,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(337,'2025-01-24',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(338,'2025-01-24',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(339,'2025-01-24',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(340,'2025-01-24',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(341,'2025-01-24',5,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,8), +(342,'2025-01-24',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:03:43','2025-04-16 06:03:43',NULL,NULL,NULL,1), +(343,'2025-02-03',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(344,'2025-02-03',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,8), +(345,'2025-02-03',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(346,'2025-02-03',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(347,'2025-02-03',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(348,'2025-02-03',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(349,'2025-02-03',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(350,'2025-02-03',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,8), +(351,'2025-02-03',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:07:37','2025-04-16 06:07:37',NULL,NULL,NULL,1), +(352,'2025-02-04',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(353,'2025-02-04',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(354,'2025-02-04',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,8), +(355,'2025-02-04',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(356,'2025-02-04',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(357,'2025-02-04',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(358,'2025-02-04',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(359,'2025-02-04',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,8), +(360,'2025-02-04',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:08:43','2025-04-16 06:08:43',NULL,NULL,NULL,1), +(361,'2025-02-05',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,8), +(362,'2025-02-05',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,1), +(363,'2025-02-05',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,1), +(364,'2025-02-05',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,1), +(365,'2025-02-05',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,1), +(366,'2025-02-05',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:02','2025-04-16 06:10:02',NULL,NULL,NULL,1), +(367,'2025-02-05',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:03','2025-04-16 06:10:03',NULL,NULL,NULL,1), +(368,'2025-02-05',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:03','2025-04-16 06:10:03',NULL,NULL,NULL,8), +(369,'2025-02-05',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:03','2025-04-16 06:10:03',NULL,NULL,NULL,1), +(370,'2025-02-06',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(371,'2025-02-06',2,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,15), +(372,'2025-02-06',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(373,'2025-02-06',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(374,'2025-02-06',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(375,'2025-02-06',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(376,'2025-02-06',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(377,'2025-02-06',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(378,'2025-02-06',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:10:55','2025-04-16 06:10:55',NULL,NULL,NULL,1), +(379,'2025-02-07',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(380,'2025-02-07',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,8), +(381,'2025-02-07',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(382,'2025-02-07',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,15), +(383,'2025-02-07',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(384,'2025-02-07',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(385,'2025-02-07',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(386,'2025-02-07',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,8), +(387,'2025-02-07',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:11:54','2025-04-16 06:11:54',NULL,NULL,NULL,1), +(388,'2025-02-10',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(389,'2025-02-10',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,8), +(390,'2025-02-10',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(391,'2025-02-10',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(392,'2025-02-10',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(393,'2025-02-10',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(394,'2025-02-10',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(395,'2025-02-10',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,8), +(396,'2025-02-10',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:12:54','2025-04-16 06:12:54',NULL,NULL,NULL,1), +(397,'2025-02-11',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(398,'2025-02-11',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,8), +(399,'2025-02-11',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(400,'2025-02-11',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(401,'2025-02-11',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(402,'2025-02-11',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(403,'2025-02-11',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(404,'2025-02-11',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,8), +(405,'2025-02-11',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:13:53','2025-04-16 06:13:53',NULL,NULL,NULL,1), +(406,'2025-02-12',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(407,'2025-02-12',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,8), +(408,'2025-02-12',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(409,'2025-02-12',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(410,'2025-02-12',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(411,'2025-02-12',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(412,'2025-02-12',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,15), +(413,'2025-02-12',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(414,'2025-02-12',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:14:52','2025-04-16 06:14:52',NULL,NULL,NULL,1), +(415,'2025-02-13',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(416,'2025-02-13',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,7), +(417,'2025-02-13',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(418,'2025-02-13',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(419,'2025-02-13',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(420,'2025-02-13',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(421,'2025-02-13',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(422,'2025-02-13',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,7), +(423,'2025-02-13',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:16:00','2025-04-16 06:16:00',NULL,NULL,NULL,1), +(424,'2025-02-14',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(425,'2025-02-14',2,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,7), +(426,'2025-02-14',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(427,'2025-02-14',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(428,'2025-02-14',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(429,'2025-02-14',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(430,'2025-02-14',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(431,'2025-02-14',4,2,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,7), +(432,'2025-02-14',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:17:21','2025-04-16 06:17:21',NULL,NULL,NULL,1), +(433,'2025-02-17',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:39','2025-04-16 06:18:39',NULL,NULL,NULL,1), +(434,'2025-02-17',2,2,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,8), +(435,'2025-02-17',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,1), +(436,'2025-02-17',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,1), +(437,'2025-02-17',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,15), +(438,'2025-02-17',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,1), +(439,'2025-02-17',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,1), +(440,'2025-02-17',4,2,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,8), +(441,'2025-02-17',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:18:40','2025-04-16 06:18:40',NULL,NULL,NULL,1), +(442,'2025-02-18',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(443,'2025-02-18',2,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,15), +(444,'2025-02-18',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(445,'2025-02-18',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(446,'2025-02-18',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(447,'2025-02-18',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(448,'2025-02-18',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,7), +(449,'2025-02-18',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(450,'2025-02-18',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:19:57','2025-04-16 06:19:57',NULL,NULL,NULL,1), +(451,'2025-02-19',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(452,'2025-02-19',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(453,'2025-02-19',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(454,'2025-02-19',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(455,'2025-02-19',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(456,'2025-02-19',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(457,'2025-02-19',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(458,'2025-02-19',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(459,'2025-02-19',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:21:01','2025-04-16 06:21:01',NULL,NULL,NULL,7), +(460,'2025-02-20',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(461,'2025-02-20',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(462,'2025-02-20',3,1,NULL,NULL,NULL,NULL,'조퇴',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(463,'2025-02-20',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(464,'2025-02-20',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(465,'2025-02-20',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(466,'2025-02-20',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(467,'2025-02-20',7,1,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(468,'2025-02-20',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:22:23','2025-04-16 06:22:23',NULL,NULL,NULL,7), +(469,'2025-02-21',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(470,'2025-02-21',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(471,'2025-02-21',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(472,'2025-02-21',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(473,'2025-02-21',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(474,'2025-02-21',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(475,'2025-02-21',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(476,'2025-02-21',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(477,'2025-02-21',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:23:40','2025-04-16 06:23:40',NULL,NULL,NULL,7), +(478,'2025-02-24',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(479,'2025-02-24',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(480,'2025-02-24',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(481,'2025-02-24',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(482,'2025-02-24',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(483,'2025-02-24',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(484,'2025-02-24',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(485,'2025-02-24',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:32','2025-04-16 06:24:32',NULL,NULL,NULL,7), +(486,'2025-02-24',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:24:33','2025-04-16 06:24:33',NULL,NULL,NULL,7), +(487,'2025-02-24',10,1,NULL,NULL,NULL,NULL,'근무',NULL,'근무시작','2025-04-16 06:25:07','2025-04-16 06:25:07',NULL,NULL,NULL,7), +(488,'2025-02-25',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(489,'2025-02-25',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(490,'2025-02-25',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(491,'2025-02-25',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(492,'2025-02-25',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(493,'2025-02-25',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(494,'2025-02-25',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(495,'2025-02-25',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(496,'2025-02-25',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(497,'2025-02-25',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:26:02','2025-04-16 06:26:02',NULL,NULL,NULL,7), +(498,'2025-02-26',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'당진출장 건','2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,14), +(499,'2025-02-26',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(500,'2025-02-26',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(501,'2025-02-26',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'당진출장 건','2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,14), +(502,'2025-02-26',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(503,'2025-02-26',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(504,'2025-02-26',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(505,'2025-02-26',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,15), +(506,'2025-02-26',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(507,'2025-02-26',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:27:50','2025-04-16 06:27:50',NULL,NULL,NULL,7), +(508,'2025-02-27',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(509,'2025-02-27',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(510,'2025-02-27',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(511,'2025-02-27',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(512,'2025-02-27',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(513,'2025-02-27',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(514,'2025-02-27',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(515,'2025-02-27',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(516,'2025-02-27',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(517,'2025-02-27',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:28:41','2025-04-16 06:28:41',NULL,NULL,NULL,7), +(518,'2025-02-28',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,13), +(519,'2025-02-28',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(520,'2025-02-28',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(521,'2025-02-28',7,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,13), +(522,'2025-02-28',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(523,'2025-02-28',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(524,'2025-02-28',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(525,'2025-02-28',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(526,'2025-02-28',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,15), +(527,'2025-02-28',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:29:53','2025-04-16 06:29:53',NULL,NULL,NULL,7), +(528,'2025-03-04',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(529,'2025-03-04',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(530,'2025-03-04',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,8), +(531,'2025-03-04',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,15), +(532,'2025-03-04',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(533,'2025-03-04',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(534,'2025-03-04',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(535,'2025-03-04',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(536,'2025-03-04',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,7), +(537,'2025-03-04',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:32:11','2025-04-16 06:32:11',NULL,NULL,NULL,8), +(538,'2025-03-05',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(539,'2025-03-05',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(540,'2025-03-05',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,8), +(541,'2025-03-05',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(542,'2025-03-05',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(543,'2025-03-05',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(544,'2025-03-05',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(545,'2025-03-05',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,15), +(546,'2025-03-05',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,7), +(547,'2025-03-05',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:33:15','2025-04-16 06:33:15',NULL,NULL,NULL,8), +(548,'2025-03-06',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(549,'2025-03-06',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(550,'2025-03-06',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,8), +(551,'2025-03-06',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,15), +(552,'2025-03-06',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(553,'2025-03-06',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(554,'2025-03-06',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(555,'2025-03-06',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(556,'2025-03-06',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,7), +(557,'2025-03-06',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:34:18','2025-04-16 06:34:18',NULL,NULL,NULL,8), +(558,'2025-03-07',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,7), +(559,'2025-03-07',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,13), +(560,'2025-03-07',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,8), +(561,'2025-03-07',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,15), +(562,'2025-03-07',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,7), +(563,'2025-03-07',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,7), +(564,'2025-03-07',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,7), +(565,'2025-03-07',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,13), +(566,'2025-03-07',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,7), +(567,'2025-03-07',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:35:36','2025-04-16 06:35:36',NULL,NULL,NULL,8), +(568,'2025-03-10',1,1,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,8), +(569,'2025-03-10',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,3), +(570,'2025-03-10',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,8), +(571,'2025-03-10',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,15), +(572,'2025-03-10',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,7), +(573,'2025-03-10',9,13,NULL,NULL,NULL,NULL,'유급',NULL,'결혼(5일)','2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,15), +(574,'2025-03-10',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,7), +(575,'2025-03-10',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,3), +(576,'2025-03-10',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,8), +(577,'2025-03-10',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:37:11','2025-04-16 06:37:11',NULL,NULL,NULL,8), +(578,'2025-03-11',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:06','2025-04-16 06:39:06',NULL,NULL,NULL,8), +(579,'2025-03-11',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,8), +(580,'2025-03-11',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,8), +(581,'2025-03-11',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,7), +(582,'2025-03-11',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,7), +(583,'2025-03-11',9,13,NULL,NULL,NULL,NULL,'유급',NULL,'결혼(5일)','2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,15), +(584,'2025-03-11',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,7), +(585,'2025-03-11',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,8), +(586,'2025-03-11',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,8), +(587,'2025-03-11',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:39:07','2025-04-16 06:39:07',NULL,NULL,NULL,8), +(588,'2025-03-12',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(589,'2025-03-12',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(590,'2025-03-12',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(591,'2025-03-12',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(592,'2025-03-12',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,7), +(593,'2025-03-12',9,13,NULL,NULL,NULL,NULL,'유급',NULL,'결혼(5일)','2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,15), +(594,'2025-03-12',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,7), +(595,'2025-03-12',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,7), +(596,'2025-03-12',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(597,'2025-03-12',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:40:08','2025-04-16 06:40:08',NULL,NULL,NULL,8), +(598,'2025-03-13',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,8), +(599,'2025-03-13',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,8), +(600,'2025-03-13',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,8), +(601,'2025-03-13',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,7), +(602,'2025-03-13',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,7), +(603,'2025-03-13',9,13,NULL,NULL,NULL,NULL,'유급',NULL,'결혼(5일)','2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,15), +(604,'2025-03-13',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:07','2025-04-16 06:41:07',NULL,NULL,NULL,7), +(605,'2025-03-13',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:08','2025-04-16 06:41:08',NULL,NULL,NULL,8), +(606,'2025-03-13',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:08','2025-04-16 06:41:08',NULL,NULL,NULL,8), +(607,'2025-03-13',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:41:08','2025-04-16 06:41:08',NULL,NULL,NULL,8), +(608,'2025-03-14',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,8), +(609,'2025-03-14',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,4), +(610,'2025-03-14',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,8), +(612,'2025-03-14',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,7), +(613,'2025-03-14',9,13,NULL,NULL,NULL,NULL,'유급',NULL,'결혼(5일)','2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,15), +(614,'2025-03-14',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,7), +(615,'2025-03-14',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,8), +(616,'2025-03-14',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,8), +(617,'2025-03-14',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:42:24','2025-04-16 06:42:24',NULL,NULL,NULL,7), +(628,'2025-03-18',1,1,NULL,NULL,NULL,NULL,'조퇴',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(629,'2025-03-18',2,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,4), +(630,'2025-03-18',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(631,'2025-03-18',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,4), +(632,'2025-03-18',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(633,'2025-03-18',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,15), +(634,'2025-03-18',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(635,'2025-03-18',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,4), +(636,'2025-03-18',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(637,'2025-03-18',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:46:29','2025-04-16 06:46:29',NULL,NULL,NULL,8), +(648,'2025-03-17',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,8), +(649,'2025-03-17',2,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,4), +(650,'2025-03-17',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,8), +(651,'2025-03-17',7,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,4), +(652,'2025-03-17',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,7), +(653,'2025-03-17',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,15), +(654,'2025-03-17',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,7), +(655,'2025-03-17',4,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,8), +(656,'2025-03-17',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,8), +(657,'2025-03-17',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:50:50','2025-04-16 06:50:50',NULL,NULL,NULL,7), +(658,'2025-03-19',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:33','2025-04-16 06:52:33',NULL,NULL,NULL,4), +(659,'2025-03-19',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:33','2025-04-16 06:52:33',NULL,NULL,NULL,8), +(660,'2025-03-19',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:33','2025-04-16 06:52:33',NULL,NULL,NULL,8), +(661,'2025-03-19',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:33','2025-04-16 06:52:33',NULL,NULL,NULL,4), +(662,'2025-03-19',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:33','2025-04-16 06:52:33',NULL,NULL,NULL,8), +(663,'2025-03-19',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:34','2025-04-16 06:52:34',NULL,NULL,NULL,8), +(664,'2025-03-19',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:34','2025-04-16 06:52:34',NULL,NULL,NULL,8), +(665,'2025-03-19',4,7,NULL,NULL,NULL,NULL,'근무',NULL,'용접기 보관함 제작','2025-04-16 06:52:34','2025-04-16 06:52:34',NULL,NULL,NULL,14), +(666,'2025-03-19',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:34','2025-04-16 06:52:34',NULL,NULL,NULL,4), +(667,'2025-03-19',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:52:34','2025-04-16 06:52:34',NULL,NULL,NULL,8), +(668,'2025-03-20',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,8), +(669,'2025-03-20',2,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,4), +(670,'2025-03-20',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,8), +(671,'2025-03-20',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,4), +(672,'2025-03-20',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,4), +(673,'2025-03-20',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,8), +(674,'2025-03-20',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,8), +(675,'2025-03-20',4,7,NULL,NULL,2.0,NULL,'근무',NULL,'용접기 보관함 제작','2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,14), +(676,'2025-03-20',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,4), +(677,'2025-03-20',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 06:54:20','2025-04-16 06:54:20',NULL,NULL,NULL,8), +(678,'2025-03-21',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:27','2025-04-16 21:34:27',NULL,NULL,NULL,8), +(679,'2025-03-21',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,4), +(680,'2025-03-21',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,8), +(681,'2025-03-21',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,8), +(682,'2025-03-21',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,4), +(683,'2025-03-21',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,8), +(684,'2025-03-21',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,8), +(685,'2025-03-21',4,7,NULL,NULL,NULL,NULL,'근무',NULL,'용기 보관함 제작','2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,14), +(686,'2025-03-21',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,4), +(687,'2025-03-21',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:34:28','2025-04-16 21:34:28',NULL,NULL,NULL,8), +(688,'2025-03-24',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,8), +(689,'2025-03-24',2,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,5), +(690,'2025-03-24',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,8), +(691,'2025-03-24',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,5), +(692,'2025-03-24',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,5), +(693,'2025-03-24',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:47','2025-04-16 21:39:47',NULL,NULL,NULL,8), +(694,'2025-03-24',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:48','2025-04-16 21:39:48',NULL,NULL,NULL,8), +(695,'2025-03-24',4,7,NULL,NULL,2.0,NULL,'근무',NULL,'용기 보관함 제작','2025-04-16 21:39:48','2025-04-16 21:39:48',NULL,NULL,NULL,14), +(696,'2025-03-24',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:48','2025-04-16 21:39:48',NULL,NULL,NULL,8), +(697,'2025-03-24',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:39:48','2025-04-16 21:39:48',NULL,NULL,NULL,8), +(698,'2025-03-25',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(699,'2025-03-25',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,5), +(700,'2025-03-25',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(701,'2025-03-25',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,5), +(702,'2025-03-25',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(703,'2025-03-25',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(704,'2025-03-25',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(705,'2025-03-25',4,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,14), +(706,'2025-03-25',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,5), +(707,'2025-03-25',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:42:13','2025-04-16 21:42:13',NULL,NULL,NULL,13), +(708,'2025-03-26',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,13), +(709,'2025-03-26',2,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,15), +(710,'2025-03-26',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,5), +(711,'2025-03-26',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,5), +(712,'2025-03-26',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,8), +(713,'2025-03-26',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,8), +(714,'2025-03-26',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,8), +(715,'2025-03-26',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,13), +(716,'2025-03-26',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,5), +(717,'2025-03-26',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:43:37','2025-04-16 21:43:37',NULL,NULL,NULL,8), +(718,'2025-03-27',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,8), +(719,'2025-03-27',2,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,5), +(720,'2025-03-27',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,8), +(721,'2025-03-27',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,5), +(722,'2025-03-27',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,5), +(723,'2025-03-27',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,8), +(724,'2025-03-27',10,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,15), +(725,'2025-03-27',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,5), +(726,'2025-03-27',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,8), +(727,'2025-03-27',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-16 21:45:14','2025-04-16 21:45:14',NULL,NULL,NULL,8), +(728,'2025-03-28',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,8), +(729,'2025-03-28',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,5), +(730,'2025-03-28',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,15), +(731,'2025-03-28',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,15), +(732,'2025-03-28',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,8), +(733,'2025-03-28',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,8), +(734,'2025-03-28',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,8), +(735,'2025-03-28',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,5), +(736,'2025-03-28',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,5), +(737,'2025-03-28',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:46:31','2025-04-16 21:46:31',NULL,NULL,NULL,8), +(738,'2025-03-31',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(739,'2025-03-31',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,5), +(740,'2025-03-31',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(741,'2025-03-31',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(742,'2025-03-31',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(743,'2025-03-31',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(744,'2025-03-31',10,13,NULL,NULL,NULL,NULL,'유급',NULL,'외조모상(2일)','2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,15), +(745,'2025-03-31',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,5), +(746,'2025-03-31',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(747,'2025-03-31',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-16 21:47:37','2025-04-16 21:47:37',NULL,NULL,NULL,8), +(748,'2025-03-14',7,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-17 01:53:24','2025-04-17 01:53:24',NULL,NULL,NULL,4), +(749,'2025-04-01',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,9), +(750,'2025-04-01',2,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,5), +(751,'2025-04-01',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,9), +(752,'2025-04-01',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,5), +(753,'2025-04-01',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,9), +(754,'2025-04-01',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,9), +(755,'2025-04-01',10,13,NULL,NULL,NULL,NULL,'유급',NULL,'외조모상','2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,15), +(756,'2025-04-01',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,5), +(757,'2025-04-01',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:42','2025-04-17 04:22:42',NULL,NULL,NULL,9), +(758,'2025-04-01',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:22:43','2025-04-17 04:22:43',NULL,NULL,NULL,9), +(769,'2025-04-02',1,1,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-17 04:25:55','2025-04-17 04:25:55',NULL,NULL,NULL,9), +(770,'2025-04-02',2,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(771,'2025-04-02',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(773,'2025-04-02',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(774,'2025-04-02',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(775,'2025-04-02',10,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,15), +(776,'2025-04-02',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,15), +(777,'2025-04-02',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(778,'2025-04-02',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:25:56','2025-04-17 04:25:56',NULL,NULL,NULL,9), +(779,'2025-04-03',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(780,'2025-04-03',2,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(781,'2025-04-03',3,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(783,'2025-04-03',8,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(784,'2025-04-03',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(785,'2025-04-03',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(786,'2025-04-03',4,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(787,'2025-04-03',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(788,'2025-04-03',6,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:27:12','2025-04-17 04:27:12',NULL,NULL,NULL,9), +(789,'2025-04-04',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(790,'2025-04-04',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(791,'2025-04-04',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,5), +(792,'2025-04-04',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(793,'2025-04-04',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,5), +(794,'2025-04-04',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(795,'2025-04-04',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(796,'2025-04-04',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(797,'2025-04-04',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,9), +(798,'2025-04-04',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:30:07','2025-04-17 04:30:07',NULL,NULL,NULL,5), +(799,'2025-04-07',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(800,'2025-04-07',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(801,'2025-04-07',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,5), +(802,'2025-04-07',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(803,'2025-04-07',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,5), +(804,'2025-04-07',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(805,'2025-04-07',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(806,'2025-04-07',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(807,'2025-04-07',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,9), +(808,'2025-04-07',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:39:43','2025-04-17 04:39:43',NULL,NULL,NULL,5), +(809,'2025-04-08',1,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(811,'2025-04-08',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,5), +(812,'2025-04-08',7,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(813,'2025-04-08',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,5), +(814,'2025-04-08',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(815,'2025-04-08',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(816,'2025-04-08',4,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(817,'2025-04-08',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,9), +(818,'2025-04-08',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:41:16','2025-04-17 04:41:16',NULL,NULL,NULL,5), +(819,'2025-04-09',1,1,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-17 04:43:02','2025-04-17 04:43:02',NULL,NULL,NULL,9), +(820,'2025-04-09',2,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:02','2025-04-17 04:43:02',NULL,NULL,NULL,9), +(821,'2025-04-09',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,5), +(822,'2025-04-09',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,9), +(823,'2025-04-09',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,5), +(824,'2025-04-09',9,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,9), +(825,'2025-04-09',10,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,9), +(826,'2025-04-09',4,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,9), +(827,'2025-04-09',5,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,9), +(828,'2025-04-09',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-04-17 04:43:03','2025-04-17 04:43:03',NULL,NULL,NULL,5), +(829,'2025-04-10',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(830,'2025-04-10',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(831,'2025-04-10',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,5), +(832,'2025-04-10',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(833,'2025-04-10',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,5), +(834,'2025-04-10',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(835,'2025-04-10',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(836,'2025-04-10',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(837,'2025-04-10',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,9), +(838,'2025-04-10',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:44:30','2025-04-17 04:44:30',NULL,NULL,NULL,5), +(839,'2025-04-11',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:24','2025-04-17 04:46:24',NULL,NULL,NULL,9), +(840,'2025-04-11',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:24','2025-04-17 04:46:24',NULL,NULL,NULL,9), +(841,'2025-04-11',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:24','2025-04-17 04:46:24',NULL,NULL,NULL,5), +(842,'2025-04-11',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,9), +(843,'2025-04-11',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,5), +(844,'2025-04-11',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,15), +(845,'2025-04-11',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,5), +(846,'2025-04-11',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,9), +(847,'2025-04-11',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,15), +(848,'2025-04-11',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:46:25','2025-04-17 04:46:25',NULL,NULL,NULL,9), +(849,'2025-04-14',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:37','2025-04-17 04:47:37',NULL,NULL,NULL,9), +(850,'2025-04-14',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:37','2025-04-17 04:47:37',NULL,NULL,NULL,9), +(851,'2025-04-14',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:37','2025-04-17 04:47:37',NULL,NULL,NULL,5), +(852,'2025-04-14',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:37','2025-04-17 04:47:37',NULL,NULL,NULL,9), +(853,'2025-04-14',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,5), +(854,'2025-04-14',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,9), +(855,'2025-04-14',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,9), +(856,'2025-04-14',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,9), +(857,'2025-04-14',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,9), +(858,'2025-04-14',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:47:38','2025-04-17 04:47:38',NULL,NULL,NULL,9), +(859,'2025-04-17',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(860,'2025-04-17',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,5), +(861,'2025-04-17',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,5), +(862,'2025-04-17',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(863,'2025-04-17',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,5), +(864,'2025-04-17',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(865,'2025-04-17',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(866,'2025-04-17',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(867,'2025-04-17',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,9), +(868,'2025-04-17',6,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-04-17 04:48:39','2025-04-17 04:48:39',NULL,NULL,NULL,5), +(879,'2025-04-21',1,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,14), +(880,'2025-04-21',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(881,'2025-04-21',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(882,'2025-04-21',7,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,14), +(883,'2025-04-21',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(884,'2025-04-21',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(885,'2025-04-21',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(886,'2025-04-21',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(887,'2025-04-21',5,7,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,14), +(888,'2025-04-21',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-21 06:22:20','2025-04-21 06:22:20',NULL,NULL,NULL,5), +(889,'2025-04-22',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'ICK 크레인 공사','2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,14), +(890,'2025-04-22',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(891,'2025-04-22',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(892,'2025-04-22',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'ICK 크레인 공사','2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,14), +(893,'2025-04-22',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(894,'2025-04-22',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(895,'2025-04-22',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(896,'2025-04-22',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(897,'2025-04-22',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'ICK 크레인 공사','2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,14), +(898,'2025-04-22',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-22 01:49:11','2025-04-22 01:49:11',NULL,NULL,NULL,5), +(899,'2025-04-23',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,14), +(900,'2025-04-23',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(901,'2025-04-23',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(902,'2025-04-23',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,14), +(903,'2025-04-23',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(904,'2025-04-23',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(905,'2025-04-23',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(906,'2025-04-23',4,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(907,'2025-04-23',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,14), +(908,'2025-04-23',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-23 06:57:29','2025-04-23 06:57:29',NULL,NULL,NULL,5), +(909,'2025-04-24',1,1,NULL,NULL,NULL,NULL,'근무',NULL,'벨브 부적합 관련 작업 추가','2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(910,'2025-04-24',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(911,'2025-04-24',3,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(912,'2025-04-24',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(913,'2025-04-24',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(914,'2025-04-24',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(915,'2025-04-24',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(916,'2025-04-24',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(917,'2025-04-24',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(918,'2025-04-24',6,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-24 05:42:30','2025-04-24 05:42:30',NULL,NULL,NULL,9), +(919,'2025-04-25',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(920,'2025-04-25',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(921,'2025-04-25',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,5), +(922,'2025-04-25',7,1,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(923,'2025-04-25',8,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(924,'2025-04-25',9,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(925,'2025-04-25',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(926,'2025-04-25',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'확관 작업','2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,5), +(927,'2025-04-25',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:38','2025-04-25 04:23:38',NULL,NULL,NULL,9), +(928,'2025-04-25',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-25 04:23:39','2025-04-25 04:23:39',NULL,NULL,NULL,5), +(929,'2025-04-28',1,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:22','2025-04-28 23:20:22',NULL,NULL,NULL,9), +(930,'2025-04-28',2,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(931,'2025-04-28',3,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(932,'2025-04-28',7,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(934,'2025-04-28',9,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(935,'2025-04-28',10,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(936,'2025-04-28',4,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(937,'2025-04-28',5,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(938,'2025-04-28',6,1,NULL,NULL,NULL,NULL,'근무',NULL,'NCR 벨브 라인 설치','2025-04-28 23:20:23','2025-04-28 23:20:23',NULL,NULL,NULL,9), +(939,'2025-04-29',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,9), +(940,'2025-04-29',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(941,'2025-04-29',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(942,'2025-04-29',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,9), +(943,'2025-04-29',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(944,'2025-04-29',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(945,'2025-04-29',10,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,14), +(946,'2025-04-29',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(947,'2025-04-29',8,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(948,'2025-04-29',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-29 04:41:11','2025-04-29 04:41:11',NULL,NULL,NULL,16), +(949,'2025-04-30',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,14), +(950,'2025-04-30',2,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,16), +(951,'2025-04-30',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,16), +(953,'2025-04-30',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,15), +(954,'2025-04-30',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,16), +(955,'2025-04-30',10,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,14), +(956,'2025-04-30',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,14), +(957,'2025-04-30',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,15), +(958,'2025-04-30',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-04-30 03:43:51','2025-04-30 03:43:51',NULL,NULL,NULL,16), +(959,'2025-04-30',4,7,NULL,NULL,NULL,NULL,'반반차',NULL,'제2공장 공사','2025-04-30 04:22:04','2025-04-30 04:22:04',NULL,NULL,NULL,14), +(1023,'2025-04-15',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,9), +(1024,'2025-04-15',2,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,5), +(1025,'2025-04-15',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,5), +(1026,'2025-04-15',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,9), +(1027,'2025-04-15',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,9), +(1028,'2025-04-15',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,5), +(1029,'2025-04-15',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,9), +(1030,'2025-04-15',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,5), +(1031,'2025-04-15',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,5), +(1032,'2025-04-15',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:01:35','2025-05-07 01:01:35',NULL,NULL,NULL,9), +(1033,'2025-04-16',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,9), +(1034,'2025-04-16',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,5), +(1035,'2025-04-16',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,5), +(1036,'2025-04-16',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,9), +(1037,'2025-04-16',5,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,9), +(1038,'2025-04-16',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,5), +(1039,'2025-04-16',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,9), +(1040,'2025-04-16',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,15), +(1041,'2025-04-16',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,5), +(1042,'2025-04-16',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:03:57','2025-05-07 01:03:57',NULL,NULL,NULL,9), +(1043,'2025-04-18',1,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,9), +(1044,'2025-04-18',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,5), +(1045,'2025-04-18',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,5), +(1046,'2025-04-18',4,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,9), +(1047,'2025-04-18',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,15), +(1048,'2025-04-18',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,5), +(1049,'2025-04-18',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,9), +(1050,'2025-04-18',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,5), +(1051,'2025-04-18',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,5), +(1052,'2025-04-18',10,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 01:05:17','2025-05-07 01:05:17',NULL,NULL,NULL,9), +(1053,'2025-04-02',7,1,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-07 02:19:00','2025-05-07 02:19:00',NULL,NULL,NULL,9), +(1054,'2025-04-03',7,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 02:19:45','2025-05-07 02:19:45',NULL,NULL,NULL,9), +(1055,'2025-04-08',2,1,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 02:20:22','2025-05-07 02:20:22',NULL,NULL,NULL,9), +(1056,'2025-04-28',8,1,NULL,NULL,NULL,NULL,'반반차',NULL,'NCR 벨브라인 설치','2025-05-07 02:21:44','2025-05-07 02:21:44',NULL,NULL,NULL,9), +(1057,'2025-05-02',1,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1058,'2025-05-02',2,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1059,'2025-05-02',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1060,'2025-05-02',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1061,'2025-05-02',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1062,'2025-05-02',6,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1063,'2025-05-02',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1064,'2025-05-02',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1065,'2025-05-02',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1066,'2025-05-02',10,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-07 03:13:26','2025-05-07 03:13:26',NULL,NULL,NULL,15), +(1067,'2025-05-07',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,14), +(1068,'2025-05-07',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1069,'2025-05-07',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1070,'2025-05-07',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1071,'2025-05-07',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,14), +(1072,'2025-05-07',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1073,'2025-05-07',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,14), +(1074,'2025-05-07',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1075,'2025-05-07',9,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,14), +(1076,'2025-05-07',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 03:19:18','2025-05-07 03:19:18',NULL,NULL,NULL,16), +(1078,'2025-05-08',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1079,'2025-05-08',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1080,'2025-05-08',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1081,'2025-05-08',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,14), +(1082,'2025-05-08',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1083,'2025-05-08',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,14), +(1084,'2025-05-08',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1085,'2025-05-08',9,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,14), +(1086,'2025-05-08',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-07 23:06:52','2025-05-07 23:06:52',NULL,NULL,NULL,16), +(1087,'2025-05-08',1,7,NULL,NULL,NULL,NULL,'반반차',NULL,'작업장 구역 설치','2025-05-08 06:57:51','2025-05-08 06:57:51',NULL,NULL,NULL,14), +(1088,'2025-05-09',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,14), +(1089,'2025-05-09',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1090,'2025-05-09',3,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1091,'2025-05-09',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1092,'2025-05-09',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,14), +(1093,'2025-05-09',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1094,'2025-05-09',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,14), +(1095,'2025-05-09',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1096,'2025-05-09',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,16), +(1097,'2025-05-09',10,7,NULL,NULL,NULL,NULL,'근무',NULL,'작업장 구역 정리','2025-05-09 06:12:16','2025-05-09 06:12:16',NULL,NULL,NULL,14), +(1100,'2025-05-12',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-11 21:52:46','2025-05-11 21:52:46',NULL,NULL,NULL,15), +(1108,'2025-05-12',1,1,NULL,NULL,NULL,NULL,'근무',NULL,'포장','2025-05-12 23:55:17','2025-05-12 23:55:17',NULL,NULL,NULL,13), +(1111,'2025-05-12',5,1,NULL,NULL,NULL,NULL,'근무',NULL,'포장','2025-05-12 23:55:17','2025-05-12 23:55:17',NULL,NULL,NULL,13), +(1113,'2025-05-12',7,1,NULL,NULL,NULL,NULL,'근무',NULL,'포장','2025-05-12 23:55:17','2025-05-12 23:55:17',NULL,NULL,NULL,13), +(1115,'2025-05-12',9,1,NULL,NULL,NULL,NULL,'근무',NULL,'포장','2025-05-12 23:55:17','2025-05-12 23:55:17',NULL,NULL,NULL,13), +(1116,'2025-05-12',10,1,NULL,NULL,NULL,NULL,'근무',NULL,'포장','2025-05-12 23:55:17','2025-05-12 23:55:17',NULL,NULL,NULL,13), +(1117,'2025-05-13',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,14), +(1118,'2025-05-13',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,3), +(1119,'2025-05-13',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,7), +(1120,'2025-05-13',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,3), +(1121,'2025-05-13',5,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,14), +(1122,'2025-05-13',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,7), +(1123,'2025-05-13',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,14), +(1124,'2025-05-13',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,7), +(1125,'2025-05-13',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,3), +(1126,'2025-05-13',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:00:41','2025-05-13 00:00:41',NULL,NULL,NULL,7), +(1127,'2025-05-12',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:01:44','2025-05-13 00:01:44',NULL,NULL,NULL,3), +(1128,'2025-05-12',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:01:44','2025-05-13 00:01:44',NULL,NULL,NULL,3), +(1129,'2025-05-12',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:01:44','2025-05-13 00:01:44',NULL,NULL,NULL,3), +(1130,'2025-05-12',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-13 00:01:44','2025-05-13 00:01:44',NULL,NULL,NULL,3), +(1131,'2025-05-14',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,3), +(1132,'2025-05-14',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,3), +(1133,'2025-05-14',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1134,'2025-05-14',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1135,'2025-05-14',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1136,'2025-05-14',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,3), +(1137,'2025-05-14',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,3), +(1138,'2025-05-14',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1139,'2025-05-14',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1140,'2025-05-14',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-14 22:42:17','2025-05-14 22:42:17',NULL,NULL,NULL,7), +(1141,'2025-05-15',1,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,14), +(1142,'2025-05-15',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,3), +(1143,'2025-05-15',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,7), +(1144,'2025-05-15',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,7), +(1145,'2025-05-15',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,7), +(1146,'2025-05-15',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,7), +(1147,'2025-05-15',7,7,NULL,NULL,NULL,NULL,'근무',NULL,'제2공장 공사','2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,14), +(1148,'2025-05-15',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,3), +(1149,'2025-05-15',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,3), +(1150,'2025-05-15',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:53:53','2025-05-16 02:53:53',NULL,NULL,NULL,7), +(1151,'2025-05-16',1,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1152,'2025-05-16',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,3), +(1153,'2025-05-16',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1154,'2025-05-16',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1155,'2025-05-16',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1156,'2025-05-16',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1157,'2025-05-16',7,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1158,'2025-05-16',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,3), +(1159,'2025-05-16',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,3), +(1160,'2025-05-16',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-16 02:55:12','2025-05-16 02:55:12',NULL,NULL,NULL,7), +(1171,'2025-05-19',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1172,'2025-05-19',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,4), +(1173,'2025-05-19',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1174,'2025-05-19',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1175,'2025-05-19',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1176,'2025-05-19',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1177,'2025-05-19',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1179,'2025-05-19',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1180,'2025-05-19',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:47:56','2025-05-22 04:47:56',NULL,NULL,NULL,7), +(1181,'2025-05-21',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1183,'2025-05-21',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1184,'2025-05-21',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1185,'2025-05-21',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1186,'2025-05-21',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1187,'2025-05-21',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1188,'2025-05-21',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1189,'2025-05-21',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1190,'2025-05-21',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:49:38','2025-05-22 04:49:38',NULL,NULL,NULL,7), +(1191,'2025-05-20',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1192,'2025-05-20',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,3), +(1193,'2025-05-20',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1194,'2025-05-20',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1195,'2025-05-20',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1196,'2025-05-20',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1197,'2025-05-20',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1198,'2025-05-20',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1199,'2025-05-20',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1200,'2025-05-20',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-05-22 04:51:34','2025-05-22 04:51:34',NULL,NULL,NULL,7), +(1201,'2025-05-22',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1202,'2025-05-22',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,3), +(1203,'2025-05-22',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1204,'2025-05-22',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1205,'2025-05-22',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1206,'2025-05-22',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1207,'2025-05-22',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1208,'2025-05-22',8,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1209,'2025-05-22',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1210,'2025-05-22',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-05-22 04:53:17','2025-05-22 04:53:17',NULL,NULL,NULL,7), +(1211,'2025-05-21',2,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-22 04:54:12','2025-05-22 04:54:12',NULL,NULL,NULL,15), +(1215,'2025-05-26',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-05-26 06:58:00','2025-05-26 06:58:00',NULL,NULL,NULL,15), +(1222,'2025-05-19',8,3,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-06-01 22:34:36','2025-06-01 22:34:36',NULL,NULL,NULL,3), +(1223,'2025-05-26',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1224,'2025-05-26',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,5), +(1225,'2025-05-26',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1226,'2025-05-26',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,5), +(1227,'2025-05-26',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1228,'2025-05-26',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1229,'2025-05-26',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,5), +(1230,'2025-05-26',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1231,'2025-05-26',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:37:29','2025-06-01 22:37:29',NULL,NULL,NULL,8), +(1232,'2025-05-23',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1233,'2025-05-23',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,3), +(1234,'2025-05-23',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1235,'2025-05-23',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1236,'2025-05-23',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1237,'2025-05-23',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1238,'2025-05-23',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1239,'2025-05-23',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1240,'2025-05-23',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1241,'2025-05-23',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:41:30','2025-06-01 22:41:30',NULL,NULL,NULL,8), +(1242,'2025-05-27',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1243,'2025-05-27',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,5), +(1244,'2025-05-27',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1245,'2025-05-27',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1246,'2025-05-27',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,5), +(1247,'2025-05-27',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1248,'2025-05-27',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1249,'2025-05-27',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,5), +(1250,'2025-05-27',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1251,'2025-05-27',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:45:06','2025-06-01 22:45:06',NULL,NULL,NULL,8), +(1252,'2025-05-28',1,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-06-01 22:46:40','2025-06-01 22:46:40',NULL,NULL,NULL,8), +(1258,'2025-05-28',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:46:40','2025-06-01 22:46:40',NULL,NULL,NULL,8), +(1262,'2025-05-28',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,5), +(1263,'2025-05-28',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,8), +(1264,'2025-05-28',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,8), +(1265,'2025-05-28',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,5), +(1266,'2025-05-28',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,8), +(1267,'2025-05-28',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,5), +(1268,'2025-05-28',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,8), +(1269,'2025-05-28',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:48:21','2025-06-01 22:48:21',NULL,NULL,NULL,8), +(1270,'2025-05-29',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1271,'2025-05-29',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,5), +(1272,'2025-05-29',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1273,'2025-05-29',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1274,'2025-05-29',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,5), +(1275,'2025-05-29',6,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1276,'2025-05-29',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1277,'2025-05-29',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,5), +(1278,'2025-05-29',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1279,'2025-05-29',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-01 22:49:55','2025-06-01 22:49:55',NULL,NULL,NULL,8), +(1281,'2025-05-30',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,5), +(1282,'2025-05-30',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1283,'2025-05-30',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1284,'2025-05-30',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,5), +(1285,'2025-05-30',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1286,'2025-05-30',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1287,'2025-05-30',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,5), +(1288,'2025-05-30',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1289,'2025-05-30',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:50:53','2025-06-01 22:50:53',NULL,NULL,NULL,8), +(1290,'2025-06-02',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:18','2025-06-01 22:52:18',NULL,NULL,NULL,8), +(1291,'2025-06-02',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,5), +(1292,'2025-06-02',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,8), +(1293,'2025-06-02',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,8), +(1294,'2025-06-02',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,15), +(1295,'2025-06-02',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,8), +(1296,'2025-06-02',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,8), +(1297,'2025-06-02',8,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,15), +(1298,'2025-06-02',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,8), +(1299,'2025-06-02',10,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-01 22:52:19','2025-06-01 22:52:19',NULL,NULL,NULL,15), +(1300,'2025-05-30',1,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-06-01 23:17:51','2025-06-01 23:17:51',NULL,NULL,NULL,8), +(1301,'2025-01-02',5,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-01 23:31:26','2025-06-01 23:31:26',NULL,NULL,NULL,15), +(1302,'2025-06-04',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1303,'2025-06-04',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,5), +(1304,'2025-06-04',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1305,'2025-06-04',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,15), +(1306,'2025-06-04',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1307,'2025-06-04',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,5), +(1308,'2025-06-04',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1309,'2025-06-04',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,5), +(1310,'2025-06-04',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1311,'2025-06-04',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-04 22:13:30','2025-06-04 22:13:30',NULL,NULL,NULL,8), +(1312,'2025-06-09',1,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-09 06:47:48','2025-06-13 03:43:28',NULL,NULL,NULL,8), +(1313,'2025-06-09',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-09 06:47:48','2025-06-09 06:47:48',NULL,NULL,NULL,5), +(1314,'2025-06-09',3,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-09 06:47:48','2025-06-13 03:43:30',NULL,NULL,NULL,8), +(1315,'2025-06-09',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-09 06:47:48','2025-06-09 06:47:48',NULL,NULL,NULL,5), +(1316,'2025-06-09',5,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-09 06:47:48','2025-06-13 03:43:31',NULL,NULL,NULL,8), +(1317,'2025-06-09',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-09 06:47:48','2025-06-09 06:47:48',NULL,NULL,NULL,5), +(1318,'2025-06-09',7,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-09 06:47:48','2025-06-13 03:43:32',NULL,NULL,NULL,8), +(1319,'2025-06-09',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-09 06:47:48','2025-06-09 06:47:48',NULL,NULL,NULL,5), +(1320,'2025-06-09',9,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-09 06:47:48','2025-06-09 06:47:48',NULL,NULL,NULL,15), +(1321,'2025-06-09',10,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-09 06:47:48','2025-06-13 03:43:34',NULL,NULL,NULL,8), +(1322,'2025-06-10',1,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:03','2025-06-13 03:43:51',NULL,NULL,NULL,8), +(1323,'2025-06-10',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-10 08:47:03','2025-06-10 08:47:03',NULL,NULL,NULL,5), +(1324,'2025-06-10',3,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:03','2025-06-13 03:43:53',NULL,NULL,NULL,8), +(1325,'2025-06-10',4,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:04','2025-06-13 03:43:54',NULL,NULL,NULL,8), +(1326,'2025-06-10',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-10 08:47:04','2025-06-10 08:47:04',NULL,NULL,NULL,5), +(1327,'2025-06-10',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-10 08:47:04','2025-06-10 08:47:04',NULL,NULL,NULL,5), +(1328,'2025-06-10',7,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:04','2025-06-13 03:43:55',NULL,NULL,NULL,8), +(1329,'2025-06-10',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-10 08:47:04','2025-06-10 08:47:04',NULL,NULL,NULL,5), +(1330,'2025-06-10',9,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:04','2025-06-13 03:43:56',NULL,NULL,NULL,8), +(1331,'2025-06-10',10,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-10 08:47:04','2025-06-13 03:43:56',NULL,NULL,NULL,8), +(1332,'2025-06-11',1,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:18',NULL,NULL,NULL,8), +(1333,'2025-06-11',2,3,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-06-11 07:59:16','2025-06-11 07:59:16',NULL,NULL,NULL,5), +(1334,'2025-06-11',3,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:19',NULL,NULL,NULL,8), +(1335,'2025-06-11',4,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:20',NULL,NULL,NULL,8), +(1336,'2025-06-11',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-11 07:59:16','2025-06-11 07:59:16',NULL,NULL,NULL,5), +(1337,'2025-06-11',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-11 07:59:16','2025-06-11 07:59:16',NULL,NULL,NULL,5), +(1338,'2025-06-11',7,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:22',NULL,NULL,NULL,8), +(1339,'2025-06-11',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-11 07:59:16','2025-06-11 07:59:16',NULL,NULL,NULL,5), +(1340,'2025-06-11',9,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:23',NULL,NULL,NULL,8), +(1341,'2025-06-11',10,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-11 07:59:16','2025-06-13 03:44:23',NULL,NULL,NULL,8), +(1342,'2025-06-13',1,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,8), +(1343,'2025-06-13',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,5), +(1344,'2025-06-13',3,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,8), +(1345,'2025-06-13',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,8), +(1346,'2025-06-13',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,5), +(1347,'2025-06-13',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,5), +(1348,'2025-06-13',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,15), +(1349,'2025-06-13',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,5), +(1350,'2025-06-13',9,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,8), +(1351,'2025-06-13',10,4,NULL,NULL,NULL,NULL,'반차',NULL,'라인수정','2025-06-13 03:25:23','2025-06-13 03:25:23',NULL,NULL,NULL,8), +(1352,'2025-06-05',1,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1353,'2025-06-05',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,5), +(1354,'2025-06-05',3,4,NULL,NULL,NULL,NULL,'반차',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1355,'2025-06-05',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1356,'2025-06-05',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,5), +(1357,'2025-06-05',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,5), +(1358,'2025-06-05',7,4,NULL,NULL,NULL,NULL,'반반차',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1359,'2025-06-05',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,5), +(1360,'2025-06-05',9,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1361,'2025-06-05',10,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:34:20','2025-06-13 03:34:20',NULL,NULL,NULL,8), +(1362,'2025-06-12',1,4,NULL,NULL,NULL,NULL,'근무',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1363,'2025-06-12',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,5), +(1364,'2025-06-12',3,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1365,'2025-06-12',4,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1366,'2025-06-12',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,5), +(1367,'2025-06-12',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,5), +(1368,'2025-06-12',7,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1369,'2025-06-12',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,5), +(1370,'2025-06-12',9,4,NULL,NULL,NULL,NULL,'반차',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1371,'2025-06-12',10,4,NULL,NULL,2.0,NULL,'근무',NULL,'라인수정','2025-06-13 03:36:11','2025-06-13 03:36:11',NULL,NULL,NULL,8), +(1372,'2025-06-16',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:26','2025-06-16 04:26:26',NULL,NULL,NULL,8), +(1373,'2025-06-16',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,5), +(1374,'2025-06-16',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,8), +(1375,'2025-06-16',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,8), +(1376,'2025-06-16',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,5), +(1377,'2025-06-16',6,3,NULL,NULL,NULL,NULL,'근무',NULL,'Vessel NDE 불량 수리','2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,5), +(1378,'2025-06-16',7,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,15), +(1379,'2025-06-16',8,3,NULL,NULL,NULL,NULL,'근무',NULL,'Vessel NDE 불량 수리','2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,5), +(1380,'2025-06-16',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,8), +(1381,'2025-06-16',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-16 04:26:27','2025-06-16 04:26:27',NULL,NULL,NULL,8), +(1382,'2025-06-17',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,8), +(1383,'2025-06-17',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,5), +(1384,'2025-06-17',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,8), +(1385,'2025-06-17',4,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:36:28',NULL,NULL,NULL,5), +(1386,'2025-06-17',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,5), +(1387,'2025-06-17',6,3,NULL,NULL,2.0,NULL,'근무',NULL,'용기 비파괴 불량','2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,5), +(1388,'2025-06-17',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,8), +(1389,'2025-06-17',8,3,NULL,NULL,2.0,NULL,'근무',NULL,'용기 비파괴 불량','2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,5), +(1390,'2025-06-17',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,8), +(1391,'2025-06-17',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-17 08:17:30','2025-06-17 08:17:30',NULL,NULL,NULL,8), +(1392,'2025-06-18',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1393,'2025-06-18',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,5), +(1394,'2025-06-18',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1395,'2025-06-18',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1396,'2025-06-18',5,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,5), +(1397,'2025-06-18',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,5), +(1398,'2025-06-18',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1399,'2025-06-18',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,5), +(1400,'2025-06-18',9,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1401,'2025-06-18',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-06-18 08:16:50','2025-06-18 08:16:50',NULL,NULL,NULL,8), +(1402,'2025-06-24',1,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1403,'2025-06-24',2,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,5), +(1404,'2025-06-24',3,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1405,'2025-06-24',4,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1406,'2025-06-24',5,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1407,'2025-06-24',6,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1408,'2025-06-24',7,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1409,'2025-06-24',8,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,5), +(1410,'2025-06-24',9,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1411,'2025-06-24',10,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-24 09:25:01','2025-06-24 09:25:01',NULL,NULL,NULL,8), +(1412,'2025-06-25',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1413,'2025-06-25',2,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,5), +(1414,'2025-06-25',3,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1415,'2025-06-25',4,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1416,'2025-06-25',5,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1417,'2025-06-25',6,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1418,'2025-06-25',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1419,'2025-06-25',8,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,5), +(1420,'2025-06-25',9,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1421,'2025-06-25',10,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-25 07:08:25','2025-06-25 07:08:25',NULL,NULL,NULL,18), +(1422,'2025-06-26',1,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1423,'2025-06-26',2,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,5), +(1424,'2025-06-26',3,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,5), +(1425,'2025-06-26',4,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1426,'2025-06-26',5,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1427,'2025-06-26',6,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,5), +(1428,'2025-06-26',7,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1429,'2025-06-26',8,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,5), +(1430,'2025-06-26',9,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1431,'2025-06-26',10,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-06-26 22:45:15','2025-06-26 22:45:15',NULL,NULL,NULL,18), +(1432,'2025-06-27',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,18), +(1433,'2025-06-27',2,3,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,5), +(1434,'2025-06-27',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,5), +(1435,'2025-06-27',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,18), +(1436,'2025-06-27',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,5), +(1437,'2025-06-27',6,3,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,5), +(1438,'2025-06-27',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,18), +(1439,'2025-06-27',8,3,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,5), +(1440,'2025-06-27',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,18), +(1441,'2025-06-27',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-06-26 22:48:37','2025-06-26 22:48:37',NULL,NULL,NULL,18), +(1442,'2025-06-19',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1443,'2025-06-19',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,5), +(1444,'2025-06-19',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1445,'2025-06-19',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1446,'2025-06-19',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,5), +(1447,'2025-06-19',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1448,'2025-06-19',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1449,'2025-06-19',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,5), +(1450,'2025-06-19',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1451,'2025-06-19',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:53:46','2025-07-07 03:53:46',NULL,NULL,NULL,8), +(1452,'2025-06-20',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1453,'2025-06-20',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,5), +(1454,'2025-06-20',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1455,'2025-06-20',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1456,'2025-06-20',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,5), +(1457,'2025-06-20',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1458,'2025-06-20',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1459,'2025-06-20',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,5), +(1460,'2025-06-20',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1461,'2025-06-20',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:54:44','2025-07-07 03:54:44',NULL,NULL,NULL,8), +(1462,'2025-06-23',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1463,'2025-06-23',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,5), +(1464,'2025-06-23',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1465,'2025-06-23',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1466,'2025-06-23',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,5), +(1467,'2025-06-23',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1468,'2025-06-23',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1469,'2025-06-23',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,5), +(1470,'2025-06-23',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1471,'2025-06-23',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 03:55:50','2025-07-07 03:55:50',NULL,NULL,NULL,8), +(1472,'2025-06-30',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1473,'2025-06-30',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,5), +(1474,'2025-06-30',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1475,'2025-06-30',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1476,'2025-06-30',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,5), +(1477,'2025-06-30',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,5), +(1478,'2025-06-30',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1479,'2025-06-30',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,5), +(1480,'2025-06-30',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1481,'2025-06-30',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:24:36','2025-07-07 04:24:36',NULL,NULL,NULL,8), +(1482,'2025-07-01',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,8), +(1483,'2025-07-01',2,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1484,'2025-07-01',3,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1485,'2025-07-01',4,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,8), +(1486,'2025-07-01',5,4,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,8), +(1487,'2025-07-01',6,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1488,'2025-07-01',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,8), +(1489,'2025-07-01',8,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1490,'2025-07-01',9,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1491,'2025-07-01',10,3,NULL,NULL,4.0,NULL,'근무',NULL,NULL,'2025-07-07 04:26:44','2025-07-07 04:26:44',NULL,NULL,NULL,5), +(1492,'2025-07-02',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,9), +(1493,'2025-07-02',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1494,'2025-07-02',3,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1495,'2025-07-02',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,9), +(1496,'2025-07-02',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,9), +(1497,'2025-07-02',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1498,'2025-07-02',7,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1499,'2025-07-02',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1500,'2025-07-02',9,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1501,'2025-07-02',10,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:28:16','2025-07-07 04:28:16',NULL,NULL,NULL,5), +(1502,'2025-07-03',1,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1503,'2025-07-03',2,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,5), +(1504,'2025-07-03',3,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1505,'2025-07-03',4,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1506,'2025-07-03',5,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1507,'2025-07-03',6,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,5), +(1508,'2025-07-03',7,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1509,'2025-07-03',8,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,5), +(1510,'2025-07-03',9,3,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,5), +(1511,'2025-07-03',10,4,NULL,NULL,2.0,NULL,'근무',NULL,NULL,'2025-07-07 04:30:04','2025-07-07 04:30:04',NULL,NULL,NULL,9), +(1512,'2025-07-04',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1513,'2025-07-04',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1514,'2025-07-04',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1515,'2025-07-04',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1516,'2025-07-04',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1517,'2025-07-04',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1518,'2025-07-04',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1519,'2025-07-04',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1520,'2025-07-04',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1521,'2025-07-04',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:09','2025-07-07 04:31:09',NULL,NULL,NULL,9), +(1522,'2025-07-05',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1523,'2025-07-05',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1524,'2025-07-05',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1525,'2025-07-05',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1526,'2025-07-05',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1527,'2025-07-05',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:31:53','2025-07-07 04:31:53',NULL,NULL,NULL,9), +(1528,'2025-07-06',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1529,'2025-07-06',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1530,'2025-07-06',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1531,'2025-07-06',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1532,'2025-07-06',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1533,'2025-07-06',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1534,'2025-07-06',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1535,'2025-07-06',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 04:32:52','2025-07-07 04:32:52',NULL,NULL,NULL,9), +(1536,'2025-07-07',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:13','2025-07-07 23:35:13',NULL,NULL,NULL,9), +(1537,'2025-07-07',2,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-07 23:35:13','2025-07-07 23:35:13',NULL,NULL,NULL,9), +(1538,'2025-07-07',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:13','2025-07-07 23:35:13',NULL,NULL,NULL,9), +(1539,'2025-07-07',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-07 23:35:13','2025-07-07 23:35:13',NULL,NULL,NULL,9), +(1540,'2025-07-07',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:13','2025-07-07 23:35:13',NULL,NULL,NULL,9), +(1541,'2025-07-07',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:14','2025-07-07 23:35:14',NULL,NULL,NULL,9), +(1542,'2025-07-07',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:14','2025-07-07 23:35:14',NULL,NULL,NULL,9), +(1543,'2025-07-07',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:14','2025-07-07 23:35:14',NULL,NULL,NULL,9), +(1544,'2025-07-07',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:14','2025-07-07 23:35:14',NULL,NULL,NULL,9), +(1545,'2025-07-07',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-07 23:35:14','2025-07-07 23:35:14',NULL,NULL,NULL,9), +(1546,'2025-07-08',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1547,'2025-07-08',2,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1548,'2025-07-08',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1549,'2025-07-08',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1550,'2025-07-08',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1551,'2025-07-08',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1552,'2025-07-08',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1553,'2025-07-08',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1554,'2025-07-08',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1555,'2025-07-08',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:12:44','2025-07-10 02:12:44',NULL,NULL,NULL,9), +(1556,'2025-07-09',1,4,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1557,'2025-07-09',2,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1558,'2025-07-09',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1559,'2025-07-09',4,4,NULL,NULL,NULL,NULL,'근무',NULL,'tubing','2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1560,'2025-07-09',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1561,'2025-07-09',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1562,'2025-07-09',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1563,'2025-07-09',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1564,'2025-07-09',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1565,'2025-07-09',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-10 02:13:45','2025-07-10 02:13:45',NULL,NULL,NULL,9), +(1566,'2025-07-10',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1567,'2025-07-10',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1568,'2025-07-10',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1569,'2025-07-10',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1570,'2025-07-10',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1571,'2025-07-10',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1572,'2025-07-10',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1573,'2025-07-10',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1574,'2025-07-10',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1575,'2025-07-10',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:06:02','2025-07-30 02:06:02',NULL,NULL,NULL,8), +(1576,'2025-07-14',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1577,'2025-07-14',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1578,'2025-07-14',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1579,'2025-07-14',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1580,'2025-07-14',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1581,'2025-07-14',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1582,'2025-07-14',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1583,'2025-07-14',8,4,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1584,'2025-07-14',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1585,'2025-07-14',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:07:29','2025-07-30 02:07:29',NULL,NULL,NULL,8), +(1586,'2025-07-15',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:41','2025-07-30 02:23:58',NULL,NULL,NULL,8), +(1587,'2025-07-15',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:41','2025-07-30 02:23:58',NULL,NULL,NULL,8), +(1588,'2025-07-15',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:41','2025-07-30 02:24:00',NULL,NULL,NULL,8), +(1589,'2025-07-15',4,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-07-30 02:08:41','2025-07-30 02:24:00',NULL,NULL,NULL,15), +(1590,'2025-07-15',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:01',NULL,NULL,NULL,5), +(1591,'2025-07-15',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:02',NULL,NULL,NULL,8), +(1592,'2025-07-15',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:02',NULL,NULL,NULL,8), +(1593,'2025-07-15',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:03',NULL,NULL,NULL,8), +(1594,'2025-07-15',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:03',NULL,NULL,NULL,5), +(1595,'2025-07-15',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:08:42','2025-07-30 02:24:04',NULL,NULL,NULL,8), +(1596,'2025-07-16',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:17','2025-07-30 02:10:17',NULL,NULL,NULL,8), +(1597,'2025-07-16',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1598,'2025-07-16',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1599,'2025-07-16',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,8), +(1600,'2025-07-16',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1601,'2025-07-16',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1602,'2025-07-16',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,8), +(1603,'2025-07-16',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1604,'2025-07-16',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1605,'2025-07-16',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:10:18','2025-07-30 02:10:18',NULL,NULL,NULL,5), +(1606,'2025-07-17',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:24:31',NULL,NULL,NULL,7), +(1607,'2025-07-17',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1608,'2025-07-17',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1609,'2025-07-17',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1610,'2025-07-17',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1611,'2025-07-17',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1612,'2025-07-17',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1613,'2025-07-17',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1614,'2025-07-17',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1615,'2025-07-17',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:11:12','2025-07-30 02:11:12',NULL,NULL,NULL,18), +(1616,'2025-07-18',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,9), +(1617,'2025-07-18',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1618,'2025-07-18',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1619,'2025-07-18',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1620,'2025-07-18',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,9), +(1621,'2025-07-18',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1622,'2025-07-18',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,9), +(1623,'2025-07-18',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1624,'2025-07-18',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1625,'2025-07-18',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:13:22','2025-07-30 02:13:22',NULL,NULL,NULL,5), +(1626,'2025-07-21',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,7), +(1627,'2025-07-21',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1628,'2025-07-21',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1629,'2025-07-21',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,9), +(1630,'2025-07-21',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,9), +(1631,'2025-07-21',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1632,'2025-07-21',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1633,'2025-07-21',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1634,'2025-07-21',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1635,'2025-07-21',10,3,NULL,NULL,NULL,NULL,'반반차',NULL,NULL,'2025-07-30 02:14:45','2025-07-30 02:14:45',NULL,NULL,NULL,5), +(1636,'2025-07-22',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,5), +(1637,'2025-07-22',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1638,'2025-07-22',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1639,'2025-07-22',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,7), +(1640,'2025-07-22',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,7), +(1641,'2025-07-22',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1642,'2025-07-22',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1643,'2025-07-22',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1644,'2025-07-22',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1645,'2025-07-22',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:16:04','2025-07-30 02:16:04',NULL,NULL,NULL,9), +(1646,'2025-07-23',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,7), +(1647,'2025-07-23',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1648,'2025-07-23',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1649,'2025-07-23',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,7), +(1650,'2025-07-23',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,7), +(1651,'2025-07-23',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1652,'2025-07-23',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1653,'2025-07-23',8,13,NULL,NULL,NULL,NULL,'유급',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 22:39:10',NULL,NULL,NULL,15), +(1654,'2025-07-23',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1655,'2025-07-23',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:17:15','2025-07-30 02:17:15',NULL,NULL,NULL,5), +(1656,'2025-07-24',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,7), +(1657,'2025-07-24',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1658,'2025-07-24',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1659,'2025-07-24',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,7), +(1660,'2025-07-24',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,7), +(1661,'2025-07-24',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1662,'2025-07-24',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1663,'2025-07-24',8,13,NULL,NULL,NULL,NULL,'유급',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,15), +(1664,'2025-07-24',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1665,'2025-07-24',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:18:29','2025-07-30 02:18:29',NULL,NULL,NULL,5), +(1666,'2025-07-25',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,13), +(1667,'2025-07-25',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1668,'2025-07-25',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1669,'2025-07-25',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1670,'2025-07-25',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,13), +(1671,'2025-07-25',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,13), +(1672,'2025-07-25',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,18), +(1673,'2025-07-25',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1674,'2025-07-25',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1675,'2025-07-25',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:21:24','2025-07-30 02:21:24',NULL,NULL,NULL,5), +(1676,'2025-07-28',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,7), +(1677,'2025-07-28',2,5,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,13), +(1678,'2025-07-28',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1679,'2025-07-28',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,7), +(1680,'2025-07-28',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,7), +(1681,'2025-07-28',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1682,'2025-07-28',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1683,'2025-07-28',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1684,'2025-07-28',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1685,'2025-07-28',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 02:22:32','2025-07-30 02:22:32',NULL,NULL,NULL,5), +(1686,'2025-07-11',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1687,'2025-07-11',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1688,'2025-07-11',3,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1689,'2025-07-11',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1690,'2025-07-11',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1691,'2025-07-11',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1692,'2025-07-11',7,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1693,'2025-07-11',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1694,'2025-07-11',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:30','2025-07-30 22:48:30',NULL,NULL,NULL,9), +(1695,'2025-07-11',10,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:48:31','2025-07-30 22:48:31',NULL,NULL,NULL,9), +(1696,'2025-07-12',1,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1697,'2025-07-12',2,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1698,'2025-07-12',3,13,NULL,NULL,NULL,NULL,'휴무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,15), +(1699,'2025-07-12',4,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1700,'2025-07-12',5,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1701,'2025-07-12',6,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1702,'2025-07-12',7,13,NULL,NULL,NULL,NULL,'휴무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,15), +(1703,'2025-07-12',8,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1704,'2025-07-12',9,4,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,9), +(1705,'2025-07-12',10,13,NULL,NULL,NULL,NULL,'휴무',NULL,NULL,'2025-07-30 22:49:19','2025-07-30 22:49:19',NULL,NULL,NULL,15), +(1706,'2025-07-29',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,7), +(1707,'2025-07-29',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1708,'2025-07-29',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1709,'2025-07-29',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,7), +(1710,'2025-07-29',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,7), +(1711,'2025-07-29',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1712,'2025-07-29',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1713,'2025-07-29',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1714,'2025-07-29',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1715,'2025-07-29',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:50:13','2025-07-30 22:50:13',NULL,NULL,NULL,5), +(1716,'2025-07-30',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,7), +(1717,'2025-07-30',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1718,'2025-07-30',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1719,'2025-07-30',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,7), +(1720,'2025-07-30',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,7), +(1721,'2025-07-30',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1722,'2025-07-30',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1723,'2025-07-30',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1724,'2025-07-30',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1725,'2025-07-30',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:05','2025-07-30 22:51:05',NULL,NULL,NULL,5), +(1726,'2025-07-31',1,3,NULL,NULL,NULL,NULL,'반차',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,7), +(1727,'2025-07-31',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1728,'2025-07-31',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1729,'2025-07-31',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,7), +(1730,'2025-07-31',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,7), +(1731,'2025-07-31',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1732,'2025-07-31',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1733,'2025-07-31',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1734,'2025-07-31',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1735,'2025-07-31',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-07-30 22:51:54','2025-07-30 22:51:54',NULL,NULL,NULL,5), +(1736,'2025-09-18',1,3,NULL,NULL,NULL,NULL,'근무',NULL,'냉동기','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,18), +(1737,'2025-09-18',2,8,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,8), +(1738,'2025-09-18',3,3,NULL,NULL,NULL,NULL,'근무',NULL,'BOG','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,5), +(1739,'2025-09-18',4,8,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,8), +(1740,'2025-09-18',5,3,NULL,NULL,NULL,NULL,'근무',NULL,'냉동기','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,9), +(1741,'2025-09-18',6,3,NULL,NULL,NULL,NULL,'근무',NULL,'BOG','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,5), +(1742,'2025-09-18',7,3,NULL,NULL,NULL,NULL,'근무',NULL,'냉동기','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,18), +(1743,'2025-09-18',8,3,NULL,NULL,NULL,NULL,'근무',NULL,'BOG','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,5), +(1744,'2025-09-18',9,3,NULL,NULL,NULL,NULL,'근무',NULL,'BOG','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,5), +(1745,'2025-09-18',10,3,NULL,NULL,NULL,NULL,'근무',NULL,'BOG','2025-09-17 23:53:35','2025-09-17 23:53:35',NULL,NULL,NULL,5), +(1746,'2025-10-01',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,16), +(1747,'2025-10-01',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,16), +(1748,'2025-10-01',3,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1749,'2025-10-01',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,5), +(1750,'2025-10-01',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,16), +(1751,'2025-10-01',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1752,'2025-10-01',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1753,'2025-10-01',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1754,'2025-10-01',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1755,'2025-10-01',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:49:56','2025-10-01 23:49:56',NULL,NULL,NULL,7), +(1756,'2025-10-02',1,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1757,'2025-10-02',2,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1758,'2025-10-02',3,13,NULL,NULL,NULL,NULL,'연차',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,15), +(1759,'2025-10-02',4,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1760,'2025-10-02',5,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1761,'2025-10-02',6,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1762,'2025-10-02',7,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1763,'2025-10-02',8,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1764,'2025-10-02',9,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7), +(1765,'2025-10-02',10,3,NULL,NULL,NULL,NULL,'근무',NULL,NULL,'2025-10-01 23:50:57','2025-10-01 23:50:57',NULL,NULL,NULL,7); +/*!40000 ALTER TABLE `WorkReports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `activity_logs` +-- + +DROP TABLE IF EXISTS `activity_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `activity_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) DEFAULT NULL, + `activity_type` varchar(100) DEFAULT NULL, + `table_name` varchar(50) DEFAULT NULL, + `record_id` int(11) DEFAULT NULL, + `action` enum('create','read','update','delete') DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `created_at` datetime DEFAULT current_timestamp(), + PRIMARY KEY (`log_id`), + KEY `idx_user_activity` (`user_id`,`activity_type`,`created_at`), + KEY `idx_table_record` (`table_name`,`record_id`), + CONSTRAINT `activity_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `activity_logs` +-- + +LOCK TABLES `activity_logs` WRITE; +/*!40000 ALTER TABLE `activity_logs` DISABLE KEYS */; +/*!40000 ALTER TABLE `activity_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_attendance_records` +-- + +DROP TABLE IF EXISTS `daily_attendance_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `daily_attendance_records` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `worker_id` int(10) unsigned NOT NULL COMMENT '작업자 ID', + `record_date` date NOT NULL COMMENT '기록 날짜', + `attendance_type_id` int(10) unsigned NOT NULL COMMENT '출근 유형 ID', + `vacation_type_id` int(10) unsigned DEFAULT NULL COMMENT '휴가 유형 ID', + `check_in_time` time DEFAULT NULL COMMENT '출근 시간', + `check_out_time` time DEFAULT NULL COMMENT '퇴근 시간', + `total_work_hours` decimal(4,2) DEFAULT 0.00 COMMENT '총 근무 시간', + `is_overtime_approved` tinyint(1) DEFAULT 0 COMMENT '초과근무 승인 여부', + `notes` text DEFAULT NULL COMMENT '비고', + `created_by` int(10) unsigned NOT NULL COMMENT '등록자 user_id', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + `is_present` tinyint(1) DEFAULT 1 COMMENT '출근 여부', + PRIMARY KEY (`id`), + UNIQUE KEY `daily_attendance_records_worker_id_record_date_unique` (`worker_id`,`record_date`) +) ENGINE=InnoDB AUTO_INCREMENT=231 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_attendance_records` +-- + +LOCK TABLES `daily_attendance_records` WRITE; +/*!40000 ALTER TABLE `daily_attendance_records` DISABLE KEYS */; +INSERT INTO `daily_attendance_records` VALUES +(1,11,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(2,10,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(3,9,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(4,8,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(5,6,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(6,5,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(7,4,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(8,3,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(9,2,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(10,1,'2026-02-04',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 11:44:37','2026-02-04 11:55:01',1), +(11,11,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(12,10,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(13,9,'2026-01-05',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',0), +(14,8,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(15,6,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(16,5,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(17,4,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(18,3,'2026-01-05',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',0), +(19,2,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(20,1,'2026-01-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-04 22:38:37','2026-02-05 01:37:32',1), +(21,11,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(22,10,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(23,9,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(24,8,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(25,6,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(26,5,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(27,4,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(28,3,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(29,2,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(30,1,'2026-02-05',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:44','2026-02-05 05:04:34',1), +(31,11,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(32,10,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(33,9,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(34,8,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(35,6,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(36,5,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(37,4,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(38,3,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(39,2,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(40,1,'2026-01-02',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:33:51','2026-02-05 01:37:06',0), +(41,11,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(42,10,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(43,9,'2026-01-06',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',0), +(44,8,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(45,6,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(46,5,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(47,4,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(48,3,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(49,2,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(50,1,'2026-01-06',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:12','2026-02-05 05:22:37',1), +(51,11,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:57',1), +(52,10,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:57',1), +(53,9,'2026-01-07',4,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:57',1), +(54,8,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:57',1), +(55,6,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:57',1), +(56,5,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:58',1), +(57,4,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:58',1), +(58,3,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:58',1), +(59,2,'2026-01-07',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:58',1), +(60,1,'2026-01-07',4,3,NULL,NULL,6.00,0,NULL,1,'2026-02-05 01:34:23','2026-02-05 01:37:58',1), +(61,11,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(62,10,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(63,9,'2026-01-08',4,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(64,8,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(65,6,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(66,5,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(67,4,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(68,3,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(69,2,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(70,1,'2026-01-08',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:27','2026-02-05 01:38:17',1), +(71,11,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(72,10,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(73,9,'2026-01-09',4,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(74,8,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(75,6,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(76,5,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(77,4,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(78,3,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(79,2,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(80,1,'2026-01-09',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:31','2026-02-05 01:38:27',1), +(81,11,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:37',1), +(82,10,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:37',1), +(83,9,'2026-01-12',4,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:37',1), +(84,8,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:37',1), +(85,6,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(86,5,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(87,4,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(88,3,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(89,2,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(90,1,'2026-01-12',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:39','2026-02-05 01:38:38',1), +(91,11,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(92,10,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(93,9,'2026-01-13',4,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(94,8,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(95,6,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(96,5,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(97,4,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(98,3,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(99,2,'2026-01-13',4,2,NULL,NULL,4.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(100,1,'2026-01-13',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:34:47','2026-02-05 01:38:52',1), +(101,11,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(102,10,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(103,9,'2026-01-14',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',0), +(104,8,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(105,6,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(106,5,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(107,4,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(108,3,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(109,2,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(110,1,'2026-01-14',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:06','2026-02-05 01:39:05',1), +(111,11,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(112,10,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(113,9,'2026-01-15',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',0), +(114,8,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(115,6,'2026-01-15',3,NULL,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(116,5,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(117,4,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(118,3,'2026-01-15',5,2,NULL,NULL,4.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(119,2,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(120,1,'2026-01-15',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:13','2026-02-05 05:25:16',1), +(121,11,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(122,10,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(123,9,'2026-01-16',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',0), +(124,8,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(125,6,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(126,5,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(127,4,'2026-01-16',4,1,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',0), +(128,3,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(129,2,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(130,1,'2026-01-16',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:26','2026-02-05 01:39:26',1), +(131,11,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(132,10,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(133,9,'2026-01-19',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',0), +(134,8,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(135,6,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(136,5,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(137,4,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(138,3,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(139,2,'2026-01-19',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',1), +(140,1,'2026-01-19',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:35:38','2026-02-05 05:25:51',0), +(141,11,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(142,10,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(143,9,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(144,8,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(145,6,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(146,5,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(147,4,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(148,3,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(149,2,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(150,1,'2026-01-20',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:35:58','2026-02-05 05:25:58',1), +(151,11,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(152,10,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(153,9,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(154,8,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(155,6,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(156,5,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(157,4,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(158,3,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(159,2,'2026-01-21',5,2,NULL,NULL,4.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(160,1,'2026-01-21',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:03','2026-02-05 05:26:06',1), +(161,11,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(162,10,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(163,9,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(164,8,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(165,6,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(166,5,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(167,4,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(168,3,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(169,2,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(170,1,'2026-01-22',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:06','2026-02-05 05:26:13',1), +(171,11,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(172,10,'2026-01-23',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',0), +(173,9,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(174,8,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(175,6,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(176,5,'2026-01-23',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',0), +(177,4,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(178,3,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(179,2,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(180,1,'2026-01-23',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:20','2026-02-05 05:26:21',1), +(181,11,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(182,10,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(183,9,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(184,8,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(185,6,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(186,5,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(187,4,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(188,3,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(189,2,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(190,1,'2026-01-26',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:31','2026-02-05 05:26:26',1), +(191,11,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(192,10,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(193,9,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(194,8,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(195,6,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(196,5,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(197,4,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(198,3,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(199,2,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(200,1,'2026-01-27',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:38','2026-02-05 05:26:32',1), +(201,11,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(202,10,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(203,9,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(204,8,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(205,6,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(206,5,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(207,4,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(208,3,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(209,2,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(210,1,'2026-01-28',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:42','2026-02-05 05:26:37',1), +(211,11,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(212,10,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(213,9,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(214,8,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(215,6,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(216,5,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(217,4,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(218,3,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(219,2,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(220,1,'2026-01-29',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:45','2026-02-05 05:26:42',1), +(221,11,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(222,10,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(223,9,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(224,8,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(225,6,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(226,5,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(227,4,'2026-01-30',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',0), +(228,3,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1), +(229,2,'2026-01-30',5,1,NULL,NULL,0.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',0), +(230,1,'2026-01-30',1,NULL,NULL,NULL,8.00,0,NULL,1,'2026-02-05 01:36:52','2026-02-05 05:26:54',1); +/*!40000 ALTER TABLE `daily_attendance_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_patrol_sessions` +-- + +DROP TABLE IF EXISTS `daily_patrol_sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `daily_patrol_sessions` ( + `session_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `patrol_date` date NOT NULL COMMENT '점검 날짜', + `patrol_time` enum('morning','afternoon') NOT NULL COMMENT '점검 시간대', + `inspector_id` int(11) NOT NULL COMMENT '순찰자 user_id', + `category_id` int(10) unsigned DEFAULT NULL COMMENT '공장 ID', + `status` enum('in_progress','completed') DEFAULT 'in_progress' COMMENT '상태', + `notes` text DEFAULT NULL COMMENT '특이사항', + `started_at` time DEFAULT NULL COMMENT '점검 시작 시간', + `completed_at` time DEFAULT NULL COMMENT '점검 완료 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`session_id`), + UNIQUE KEY `daily_patrol_sessions_patrol_date_patrol_time_category_id_unique` (`patrol_date`,`patrol_time`,`category_id`), + KEY `daily_patrol_sessions_patrol_date_patrol_time_index` (`patrol_date`,`patrol_time`), + KEY `daily_patrol_sessions_inspector_id_index` (`inspector_id`), + KEY `daily_patrol_sessions_category_id_foreign` (`category_id`), + CONSTRAINT `daily_patrol_sessions_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE SET NULL, + CONSTRAINT `daily_patrol_sessions_inspector_id_foreign` FOREIGN KEY (`inspector_id`) REFERENCES `users` (`user_id`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_patrol_sessions` +-- + +LOCK TABLES `daily_patrol_sessions` WRITE; +/*!40000 ALTER TABLE `daily_patrol_sessions` DISABLE KEYS */; +INSERT INTO `daily_patrol_sessions` VALUES +(1,'2026-02-04','morning',1,1,'in_progress',NULL,'02:20:32',NULL,'2026-02-04 02:20:32','2026-02-04 02:20:32'), +(2,'2026-02-04','afternoon',1,1,'in_progress',NULL,'07:36:23',NULL,'2026-02-04 07:36:23','2026-02-04 07:36:23'), +(3,'2026-02-05','afternoon',1,1,'in_progress',NULL,'04:30:44',NULL,'2026-02-05 04:30:44','2026-02-05 04:30:44'); +/*!40000 ALTER TABLE `daily_patrol_sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_work_reports` +-- + +DROP TABLE IF EXISTS `daily_work_reports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `daily_work_reports` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `report_date` date NOT NULL COMMENT '작업 날짜', + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `project_id` int(11) NOT NULL COMMENT '프로젝트 ID', + `work_type_id` int(11) NOT NULL COMMENT '작업 유형 ID', + `work_status_id` int(11) DEFAULT 1 COMMENT '업무 상태 ID (1:정규, 2:에러)', + `error_type_id` int(11) DEFAULT NULL COMMENT '에러 유형 ID (에러일 때만)', + `work_hours` decimal(4,2) NOT NULL COMMENT '작업 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `created_by` int(11) NOT NULL DEFAULT 1 COMMENT '작성자 user_id', + `updated_by` int(11) DEFAULT NULL COMMENT '수정자 user_id', + `tbm_session_id` int(10) unsigned DEFAULT NULL COMMENT '연결된 TBM 세션 ID', + `tbm_assignment_id` int(10) unsigned DEFAULT NULL COMMENT '연결된 TBM 팀 배정 ID', + `start_time` time DEFAULT NULL COMMENT '작업 시작 시간', + `end_time` time DEFAULT NULL COMMENT '작업 종료 시간', + `total_hours` decimal(5,2) DEFAULT NULL COMMENT '총 작업 시간', + `regular_hours` decimal(5,2) DEFAULT NULL COMMENT '정규 작업 시간 (총 시간 - 오류 시간)', + `error_hours` decimal(5,2) DEFAULT NULL COMMENT '부적합 사항 처리 시간', + PRIMARY KEY (`id`), + KEY `idx_report_date` (`report_date`), + KEY `idx_worker_date` (`worker_id`,`report_date`), + KEY `idx_project_date` (`project_id`,`report_date`), + KEY `idx_work_type` (`work_type_id`), + KEY `idx_work_status` (`work_status_id`), + KEY `idx_error_type` (`error_type_id`), + KEY `idx_created_by` (`created_by`), + KEY `idx_date_worker_creator` (`report_date`,`worker_id`,`created_by`), + KEY `daily_work_reports_tbm_session_id_foreign` (`tbm_session_id`), + KEY `daily_work_reports_tbm_assignment_id_foreign` (`tbm_assignment_id`), + CONSTRAINT `daily_work_reports_tbm_assignment_id_foreign` FOREIGN KEY (`tbm_assignment_id`) REFERENCES `tbm_team_assignments` (`assignment_id`) ON DELETE SET NULL, + CONSTRAINT `daily_work_reports_tbm_session_id_foreign` FOREIGN KEY (`tbm_session_id`) REFERENCES `tbm_sessions` (`session_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=1858 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_work_reports` +-- + +LOCK TABLES `daily_work_reports` WRITE; +/*!40000 ALTER TABLE `daily_work_reports` DISABLE KEYS */; +INSERT INTO `daily_work_reports` VALUES +(14,'2025-06-02',1,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(15,'2025-06-02',3,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(16,'2025-06-02',4,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(17,'2025-06-02',6,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(18,'2025-06-02',7,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(19,'2025-06-02',9,4,3,1,NULL,8.00,'2025-06-16 05:10:23','2025-06-16 05:10:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(20,'2025-06-02',2,3,2,1,NULL,8.00,'2025-06-16 05:10:47','2025-06-16 05:10:47',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(21,'2025-06-04',1,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(22,'2025-06-04',3,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(23,'2025-06-04',5,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(24,'2025-06-04',7,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(25,'2025-06-04',9,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(26,'2025-06-04',10,4,3,1,NULL,8.00,'2025-06-16 05:11:37','2025-06-16 05:11:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(27,'2025-06-04',2,3,2,1,NULL,8.00,'2025-06-16 05:12:07','2025-06-16 05:12:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(28,'2025-06-04',6,3,2,1,NULL,8.00,'2025-06-16 05:12:07','2025-06-16 05:12:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(29,'2025-06-04',8,3,2,1,NULL,8.00,'2025-06-16 05:12:07','2025-06-16 05:12:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(30,'2025-06-05',1,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(31,'2025-06-05',3,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(32,'2025-06-05',4,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(33,'2025-06-05',7,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(34,'2025-06-05',10,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(35,'2025-06-05',9,4,3,2,6,8.00,'2025-06-16 05:12:57','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(36,'2025-06-05',2,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(37,'2025-06-05',5,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(38,'2025-06-05',6,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(39,'2025-06-05',8,3,2,1,NULL,8.00,'2025-06-16 05:13:56','2025-06-16 05:13:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(40,'2025-06-16',5,3,2,1,NULL,8.00,'2025-06-16 06:12:01','2025-06-16 06:12:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(43,'2025-06-16',2,3,2,1,NULL,8.00,'2025-06-16 06:12:01','2025-06-16 06:12:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(44,'2025-06-16',6,3,2,2,43,4.00,'2025-06-16 06:13:02','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(45,'2025-06-16',6,3,2,1,NULL,4.00,'2025-06-16 06:13:50','2025-06-16 06:13:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(46,'2025-06-16',8,3,2,2,43,4.00,'2025-06-16 06:15:22','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(47,'2025-06-16',8,3,2,1,NULL,4.00,'2025-06-16 06:15:22','2025-06-16 06:15:22',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(48,'2025-06-16',4,4,3,2,6,8.00,'2025-06-16 06:46:44','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(50,'2025-06-16',1,4,3,2,6,8.00,'2025-06-16 06:46:44','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(51,'2025-06-16',9,4,3,1,NULL,8.00,'2025-06-16 06:48:29','2025-06-16 06:48:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(52,'2025-06-16',10,4,3,1,NULL,6.00,'2025-06-16 06:50:09','2025-06-16 06:50:09',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(53,'2025-06-16',10,4,3,2,6,2.00,'2025-06-16 06:50:09','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(54,'2025-06-16',3,4,3,1,NULL,6.00,'2025-06-16 06:50:09','2025-06-16 06:50:09',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(55,'2025-06-16',3,4,3,2,6,2.00,'2025-06-16 06:50:09','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(56,'2025-06-17',2,3,2,1,NULL,8.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(57,'2025-06-17',2,3,2,1,NULL,2.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(58,'2025-06-17',5,3,2,1,NULL,8.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(59,'2025-06-17',5,3,2,1,NULL,2.00,'2025-06-17 08:23:41','2025-06-17 08:23:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(60,'2025-06-17',6,3,2,1,NULL,8.00,'2025-06-17 08:24:33','2025-06-17 08:24:33',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(61,'2025-06-17',6,3,2,2,43,2.00,'2025-06-17 08:24:33','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(62,'2025-06-17',8,3,2,1,NULL,8.00,'2025-06-17 08:24:33','2025-06-17 08:24:33',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(63,'2025-06-17',8,3,2,2,43,2.00,'2025-06-17 08:24:33','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(65,'2025-06-17',9,4,3,2,6,4.00,'2025-06-17 08:25:24','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(66,'2025-06-17',1,4,3,2,6,4.00,'2025-06-17 08:27:06','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(67,'2025-06-17',4,4,3,2,6,4.00,'2025-06-17 08:27:06','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(68,'2025-06-17',1,4,3,1,NULL,4.00,'2025-06-17 08:31:06','2025-06-17 08:31:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(69,'2025-06-17',9,4,3,1,NULL,4.00,'2025-06-17 08:31:06','2025-06-17 08:31:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(70,'2025-06-17',4,4,3,1,NULL,4.00,'2025-06-17 08:31:06','2025-06-17 08:31:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(71,'2025-06-17',9,4,3,1,NULL,2.00,'2025-06-17 08:33:06','2025-06-17 08:33:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(72,'2025-06-17',4,4,3,1,NULL,2.00,'2025-06-17 08:33:06','2025-06-17 08:33:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(73,'2025-06-17',1,4,3,1,NULL,2.00,'2025-06-17 08:33:06','2025-06-17 08:33:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(74,'2025-06-17',10,4,3,1,NULL,8.00,'2025-06-17 08:34:11','2025-06-17 08:34:11',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(75,'2025-06-17',10,4,3,2,6,2.00,'2025-06-17 08:34:11','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(76,'2025-06-17',3,4,3,1,NULL,8.00,'2025-06-17 08:34:11','2025-06-17 08:34:11',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(77,'2025-06-17',3,4,3,2,6,2.00,'2025-06-17 08:34:11','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(78,'2025-06-18',6,3,2,1,NULL,8.00,'2025-06-18 08:40:27','2025-06-18 08:40:27',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(79,'2025-06-18',2,3,2,1,NULL,8.00,'2025-06-18 08:40:27','2025-06-18 08:40:27',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(80,'2025-06-18',8,3,2,1,NULL,8.00,'2025-06-18 08:40:27','2025-06-18 08:40:27',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(81,'2025-06-18',2,3,2,1,NULL,2.00,'2025-06-18 08:41:02','2025-06-18 08:41:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(82,'2025-06-18',6,3,2,1,NULL,2.00,'2025-06-18 08:41:03','2025-06-18 08:41:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(83,'2025-06-18',8,3,2,1,NULL,2.00,'2025-06-18 08:41:03','2025-06-18 08:41:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(84,'2025-06-18',5,4,3,1,NULL,8.00,'2025-06-18 08:41:45','2025-06-18 08:41:45',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(85,'2025-06-18',5,4,3,1,NULL,2.00,'2025-06-18 08:41:45','2025-06-18 08:41:45',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(86,'2025-06-18',10,4,3,1,NULL,9.00,'2025-06-18 08:47:55','2025-06-18 08:47:55',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(87,'2025-06-18',10,4,3,2,6,1.00,'2025-06-18 08:47:55','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(88,'2025-06-18',3,4,3,1,NULL,9.00,'2025-06-18 08:47:55','2025-06-18 08:47:55',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(89,'2025-06-18',3,4,3,2,6,1.00,'2025-06-18 08:47:55','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(90,'2025-06-18',4,4,3,2,6,4.00,'2025-06-18 08:50:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(91,'2025-06-18',4,4,3,1,NULL,6.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(92,'2025-06-18',9,4,3,2,6,4.00,'2025-06-18 08:50:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(93,'2025-06-18',9,4,3,1,NULL,6.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(94,'2025-06-18',1,4,3,2,6,4.00,'2025-06-18 08:50:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(95,'2025-06-18',1,4,3,1,NULL,6.00,'2025-06-18 08:50:19','2025-06-18 08:50:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(96,'2025-06-18',7,4,3,2,6,4.00,'2025-06-18 09:00:17','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(97,'2025-06-18',7,4,3,1,NULL,6.00,'2025-06-18 09:00:17','2025-06-18 09:00:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(98,'2025-06-19',8,3,2,1,NULL,8.00,'2025-06-19 06:37:59','2025-06-19 06:37:59',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(99,'2025-06-19',2,3,2,1,NULL,8.00,'2025-06-19 06:37:59','2025-06-19 06:37:59',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(100,'2025-06-19',10,4,3,1,NULL,8.00,'2025-06-19 06:59:36','2025-06-19 06:59:36',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(101,'2025-06-19',3,4,3,1,NULL,8.00,'2025-06-19 06:59:36','2025-06-19 06:59:36',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(102,'2025-06-19',5,4,3,1,NULL,8.00,'2025-06-19 06:59:36','2025-06-19 06:59:36',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(103,'2025-06-19',9,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(104,'2025-06-19',9,4,3,2,6,2.00,'2025-06-19 07:01:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(105,'2025-06-19',4,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(106,'2025-06-19',4,4,3,2,6,2.00,'2025-06-19 07:01:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(107,'2025-06-19',1,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(108,'2025-06-19',1,4,3,2,6,2.00,'2025-06-19 07:01:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(109,'2025-06-19',7,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(110,'2025-06-19',7,4,3,2,6,2.00,'2025-06-19 07:01:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(111,'2025-06-19',6,4,3,1,NULL,6.00,'2025-06-19 07:01:02','2025-06-19 07:01:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(112,'2025-06-19',6,4,3,2,6,2.00,'2025-06-19 07:01:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(113,'2025-06-20',9,4,3,2,6,2.00,'2025-06-20 06:44:01','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(114,'2025-06-20',9,4,3,1,NULL,6.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(115,'2025-06-20',4,4,3,2,6,2.00,'2025-06-20 06:44:01','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(116,'2025-06-20',4,4,3,1,NULL,6.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(117,'2025-06-20',7,4,3,2,6,2.00,'2025-06-20 06:44:01','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(118,'2025-06-20',7,4,3,1,NULL,6.00,'2025-06-20 06:44:01','2025-06-20 06:44:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(119,'2025-06-20',6,4,3,2,6,2.00,'2025-06-20 06:44:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(120,'2025-06-20',6,4,3,1,NULL,6.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(121,'2025-06-20',1,4,3,2,6,2.00,'2025-06-20 06:44:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(122,'2025-06-20',1,4,3,1,NULL,6.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(123,'2025-06-20',5,4,3,2,6,2.00,'2025-06-20 06:44:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(124,'2025-06-20',5,4,3,1,NULL,6.00,'2025-06-20 06:44:02','2025-06-20 06:44:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(125,'2025-06-20',10,4,3,1,NULL,8.00,'2025-06-20 06:45:30','2025-06-20 06:45:30',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(126,'2025-06-20',3,4,3,1,NULL,8.00,'2025-06-20 06:45:31','2025-06-20 06:45:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(127,'2025-06-23',10,4,3,1,NULL,8.00,'2025-06-23 06:42:58','2025-06-23 06:42:58',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(128,'2025-06-23',3,4,3,1,NULL,8.00,'2025-06-23 06:42:58','2025-06-23 06:42:58',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(129,'2025-06-23',5,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(130,'2025-06-23',5,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(131,'2025-06-23',1,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(132,'2025-06-23',1,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(133,'2025-06-23',9,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(134,'2025-06-23',9,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(135,'2025-06-23',4,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(136,'2025-06-23',4,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(137,'2025-06-23',7,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(138,'2025-06-23',7,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(139,'2025-06-23',6,4,3,2,6,2.00,'2025-06-23 06:51:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(140,'2025-06-23',6,4,3,1,NULL,6.00,'2025-06-23 06:51:28','2025-06-23 06:51:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(141,'2025-06-24',10,4,3,1,NULL,12.00,'2025-06-24 11:10:32','2025-06-24 11:10:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(142,'2025-06-24',3,4,3,1,NULL,12.00,'2025-06-24 11:10:32','2025-06-24 11:10:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(143,'2025-06-24',9,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(144,'2025-06-24',9,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(145,'2025-06-24',5,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(146,'2025-06-24',5,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(147,'2025-06-24',4,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(148,'2025-06-24',4,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(149,'2025-06-24',7,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(150,'2025-06-24',7,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(151,'2025-06-24',6,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(152,'2025-06-24',6,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(153,'2025-06-24',1,4,3,2,6,2.00,'2025-06-24 11:11:00','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(154,'2025-06-24',1,4,3,1,NULL,10.00,'2025-06-24 11:11:00','2025-06-24 11:11:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(155,'2025-06-24',8,3,2,1,NULL,8.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(156,'2025-06-24',8,3,2,1,NULL,4.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(157,'2025-06-24',2,3,2,1,NULL,8.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(158,'2025-06-24',2,3,2,1,NULL,4.00,'2025-06-24 11:11:05','2025-06-24 11:11:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(159,'2025-06-25',2,3,2,1,NULL,8.00,'2025-06-25 11:08:04','2025-06-25 11:08:04',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(160,'2025-06-25',2,3,2,1,NULL,4.00,'2025-06-25 11:08:04','2025-06-25 11:08:04',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(161,'2025-06-25',8,3,2,1,NULL,8.00,'2025-06-25 11:08:05','2025-06-25 11:08:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(162,'2025-06-25',8,3,2,1,NULL,4.00,'2025-06-25 11:08:05','2025-06-25 11:08:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(163,'2025-06-25',10,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(164,'2025-06-25',9,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(165,'2025-06-25',3,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(166,'2025-06-25',6,4,3,1,NULL,12.00,'2025-06-25 11:11:30','2025-06-25 11:11:30',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(167,'2025-06-26',10,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(168,'2025-06-26',5,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(169,'2025-06-26',7,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(170,'2025-06-26',1,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(171,'2025-06-26',4,4,3,1,NULL,12.00,'2025-06-26 10:29:38','2025-06-26 10:29:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(172,'2025-06-26',8,3,2,1,NULL,8.00,'2025-06-26 11:11:31','2025-06-26 11:11:31',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(173,'2025-06-26',8,3,2,1,NULL,4.00,'2025-06-26 11:11:31','2025-06-26 11:11:31',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(174,'2025-06-26',2,3,2,1,NULL,8.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(175,'2025-06-26',2,3,2,1,NULL,4.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(176,'2025-06-26',9,3,2,1,NULL,8.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(177,'2025-06-26',9,3,2,1,NULL,4.00,'2025-06-26 11:11:32','2025-06-26 11:11:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(178,'2025-06-26',3,3,2,1,NULL,12.00,'2025-06-26 11:19:34','2025-06-26 11:19:34',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(179,'2025-06-26',6,3,2,1,NULL,12.00,'2025-06-26 11:19:34','2025-06-26 11:19:34',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(182,'2025-06-27',2,3,2,1,NULL,4.00,'2025-06-27 01:54:40','2025-06-27 01:54:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(183,'2025-06-27',9,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(184,'2025-06-27',10,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(185,'2025-06-27',7,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(186,'2025-06-27',5,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(187,'2025-06-27',4,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(188,'2025-06-27',1,4,3,1,NULL,8.00,'2025-06-27 06:47:43','2025-06-27 06:47:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(189,'2025-06-27',3,3,2,1,NULL,8.00,'2025-06-27 06:49:08','2025-06-27 06:49:08',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(191,'2025-06-27',6,3,2,1,NULL,4.00,'2025-06-27 06:58:46','2025-06-27 06:58:46',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(192,'2025-06-27',8,3,2,1,NULL,6.00,'2025-06-27 07:00:10','2025-06-27 07:00:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(193,'2025-06-30',6,3,2,2,43,2.00,'2025-07-05 01:37:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(194,'2025-06-30',6,3,2,1,NULL,2.00,'2025-07-05 01:37:29','2025-07-07 04:15:25',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(195,'2025-06-30',2,3,2,1,NULL,4.00,'2025-07-05 01:38:19','2025-07-07 04:15:40',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(196,'2025-06-30',3,3,2,1,NULL,8.00,'2025-07-05 01:38:19','2025-07-05 01:38:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(197,'2025-06-30',8,3,2,1,NULL,6.00,'2025-07-05 01:38:19','2025-07-07 04:15:02',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(198,'2025-07-01',3,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(199,'2025-07-01',2,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(200,'2025-07-01',6,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(201,'2025-07-01',8,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(202,'2025-07-01',10,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(203,'2025-07-01',9,3,2,1,NULL,10.00,'2025-07-05 01:39:21','2025-07-05 01:39:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(204,'2025-07-01',2,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:42:08',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(205,'2025-07-01',3,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:42:02',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(206,'2025-07-01',6,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:41:56',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(207,'2025-07-01',8,3,2,1,NULL,2.00,'2025-07-05 01:39:48','2025-07-05 01:41:48',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(208,'2025-07-01',9,3,2,2,43,2.00,'2025-07-05 01:40:10','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(209,'2025-07-01',10,3,2,2,43,2.00,'2025-07-05 01:40:10','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(210,'2025-07-01',7,4,3,1,NULL,5.00,'2025-07-05 01:42:57','2025-07-05 01:42:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(211,'2025-07-01',7,4,3,2,10,3.00,'2025-07-05 01:42:57','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(212,'2025-07-01',5,4,3,1,NULL,8.00,'2025-07-05 01:42:57','2025-07-07 04:21:24',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(213,'2025-07-01',5,4,3,2,10,4.00,'2025-07-05 01:42:57','2026-02-05 22:24:28',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(214,'2025-07-01',4,4,3,1,NULL,8.00,'2025-07-05 01:42:57','2025-07-07 04:21:41',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(215,'2025-07-01',4,4,3,2,10,4.00,'2025-07-05 01:42:57','2026-02-05 22:24:28',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(216,'2025-07-01',1,4,3,1,NULL,5.00,'2025-07-05 01:42:57','2025-07-05 01:42:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(217,'2025-07-01',1,4,3,2,10,3.00,'2025-07-05 01:42:57','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(218,'2025-07-02',2,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(219,'2025-07-02',3,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(220,'2025-07-02',10,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(221,'2025-07-02',9,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(222,'2025-07-02',8,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(223,'2025-07-02',6,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(224,'2025-07-02',7,3,2,1,NULL,10.00,'2025-07-05 01:43:36','2025-07-05 01:43:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(225,'2025-07-02',5,4,3,2,10,4.00,'2025-07-05 01:44:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(226,'2025-07-02',5,4,3,1,NULL,6.00,'2025-07-05 01:44:11','2025-07-05 01:44:54',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(227,'2025-07-02',4,4,3,2,10,4.00,'2025-07-05 01:44:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(228,'2025-07-02',4,4,3,1,NULL,6.00,'2025-07-05 01:44:11','2025-07-05 01:44:59',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(229,'2025-07-02',1,4,3,2,10,4.00,'2025-07-05 01:44:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(230,'2025-07-02',1,4,3,1,NULL,6.00,'2025-07-05 01:44:11','2025-07-05 01:45:05',3,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(231,'2025-07-03',2,3,2,1,NULL,10.00,'2025-07-05 01:45:44','2025-07-05 01:45:44',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(232,'2025-07-03',6,3,2,1,NULL,10.00,'2025-07-05 01:45:45','2025-07-05 01:45:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(233,'2025-07-03',9,3,2,1,NULL,10.00,'2025-07-05 01:45:45','2025-07-05 01:45:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(234,'2025-07-03',8,3,2,1,NULL,10.00,'2025-07-05 01:45:45','2025-07-05 01:45:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(235,'2025-07-03',7,4,3,1,NULL,10.00,'2025-07-05 01:46:07','2025-07-05 01:46:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(236,'2025-07-03',1,4,3,1,NULL,10.00,'2025-07-05 01:46:07','2025-07-05 01:46:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(237,'2025-07-03',3,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(238,'2025-07-03',4,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(239,'2025-07-03',5,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(240,'2025-07-03',10,4,3,1,NULL,10.00,'2025-07-05 01:46:08','2025-07-05 01:46:08',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(241,'2025-07-04',10,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(242,'2025-07-04',10,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(243,'2025-07-04',5,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(244,'2025-07-04',5,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(245,'2025-07-04',4,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(246,'2025-07-04',4,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(247,'2025-07-04',9,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(248,'2025-07-04',9,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(249,'2025-07-04',8,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(250,'2025-07-04',8,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(251,'2025-07-04',3,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(252,'2025-07-04',3,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(253,'2025-07-04',2,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(254,'2025-07-04',2,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(255,'2025-07-04',7,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(256,'2025-07-04',7,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(257,'2025-07-04',6,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(258,'2025-07-04',6,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(259,'2025-07-04',1,4,3,2,10,2.00,'2025-07-05 01:51:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(260,'2025-07-04',1,4,3,1,NULL,6.00,'2025-07-05 01:51:47','2025-07-05 01:51:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(261,'2025-07-05',8,4,2,1,NULL,8.00,'2025-07-05 05:36:38','2025-07-05 05:36:38',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(262,'2025-07-05',5,4,2,1,NULL,8.00,'2025-07-05 05:36:38','2025-07-05 05:36:38',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(263,'2025-07-05',4,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(264,'2025-07-05',3,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(265,'2025-07-05',2,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(266,'2025-07-05',1,4,2,1,NULL,8.00,'2025-07-05 05:36:39','2025-07-05 05:36:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(267,'2025-07-06',10,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:08',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(268,'2025-07-06',9,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:16',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(269,'2025-07-06',7,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:22',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(270,'2025-07-06',6,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:27',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(271,'2025-07-06',4,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:33',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(272,'2025-07-06',3,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:39',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(273,'2025-07-06',2,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:44',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(274,'2025-07-06',1,4,3,1,NULL,8.00,'2025-07-06 05:34:32','2025-07-06 05:46:49',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(275,'2025-07-07',10,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(276,'2025-07-07',9,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(277,'2025-07-07',8,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(278,'2025-07-07',7,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(279,'2025-07-07',3,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(280,'2025-07-07',4,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(281,'2025-07-07',5,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(282,'2025-07-07',6,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(283,'2025-07-07',2,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(284,'2025-07-07',1,4,3,1,NULL,8.00,'2025-07-07 06:49:31','2025-07-07 06:49:31',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(285,'2025-07-08',10,4,3,1,NULL,8.00,'2025-07-08 06:36:57','2025-07-08 06:36:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(286,'2025-07-08',9,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(287,'2025-07-08',8,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(288,'2025-07-08',7,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(289,'2025-07-08',6,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(290,'2025-07-08',1,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(291,'2025-07-08',2,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(292,'2025-07-08',3,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(293,'2025-07-08',5,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(294,'2025-07-08',4,4,3,1,NULL,8.00,'2025-07-08 06:36:58','2025-07-08 06:36:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(295,'2025-07-09',10,4,3,1,NULL,8.00,'2025-07-09 22:08:40','2025-07-09 22:08:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(296,'2025-07-09',9,4,3,1,NULL,8.00,'2025-07-09 22:08:40','2025-07-09 22:08:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(297,'2025-07-09',8,4,3,1,NULL,8.00,'2025-07-09 22:08:40','2025-07-09 22:08:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(298,'2025-07-09',7,4,3,1,NULL,8.00,'2025-07-09 22:08:41','2025-07-09 22:08:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(299,'2025-07-09',6,4,3,1,NULL,8.00,'2025-07-09 22:08:41','2025-07-09 22:08:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(300,'2025-07-09',2,4,3,1,NULL,8.00,'2025-07-09 22:08:41','2025-07-09 22:08:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(301,'2025-07-09',3,4,3,1,NULL,8.00,'2025-07-09 22:08:42','2025-07-09 22:08:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(302,'2025-07-09',4,4,3,1,NULL,8.00,'2025-07-09 22:08:42','2025-07-09 22:08:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(303,'2025-07-09',5,4,3,1,NULL,8.00,'2025-07-09 22:08:42','2025-07-09 22:08:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(304,'2025-07-09',1,4,3,1,NULL,4.00,'2025-07-09 22:09:10','2025-07-09 22:09:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(305,'2025-07-10',9,4,3,1,NULL,8.00,'2025-07-10 06:33:58','2025-07-10 06:33:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(306,'2025-07-10',8,4,3,1,NULL,8.00,'2025-07-10 06:33:58','2025-07-10 06:33:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(307,'2025-07-10',5,4,3,1,NULL,8.00,'2025-07-10 06:33:58','2025-07-10 06:33:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(308,'2025-07-10',6,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(309,'2025-07-10',2,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(310,'2025-07-10',3,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(311,'2025-07-10',4,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(312,'2025-07-10',1,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(313,'2025-07-10',7,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(314,'2025-07-10',10,4,3,1,NULL,8.00,'2025-07-10 06:33:59','2025-07-10 06:33:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(315,'2025-07-12',9,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(316,'2025-07-12',8,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(317,'2025-07-12',6,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(318,'2025-07-12',5,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(319,'2025-07-12',4,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(320,'2025-07-12',2,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(321,'2025-07-12',1,4,3,1,NULL,8.00,'2025-07-12 05:41:30','2025-07-12 05:41:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(322,'2025-07-14',8,4,3,1,NULL,6.00,'2025-07-14 06:46:30','2025-07-14 06:46:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(323,'2025-07-14',10,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(324,'2025-07-14',9,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(325,'2025-07-14',7,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(326,'2025-07-14',6,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(327,'2025-07-14',1,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(328,'2025-07-14',2,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(329,'2025-07-14',3,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(330,'2025-07-14',4,4,3,1,NULL,8.00,'2025-07-14 06:46:57','2025-07-14 06:46:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(331,'2025-07-15',3,3,2,1,NULL,8.00,'2025-07-15 05:57:06','2025-07-15 05:57:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(332,'2025-07-15',9,3,2,1,NULL,8.00,'2025-07-15 05:57:06','2025-07-15 05:57:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(333,'2025-07-15',5,3,2,2,43,4.00,'2025-07-15 05:57:47','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(334,'2025-07-15',5,4,3,1,NULL,4.00,'2025-07-15 05:57:47','2025-07-15 05:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(335,'2025-07-15',10,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(336,'2025-07-15',8,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(337,'2025-07-15',7,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(338,'2025-07-15',6,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(339,'2025-07-15',2,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(340,'2025-07-15',1,4,3,1,NULL,8.00,'2025-07-15 05:58:19','2025-07-15 05:58:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(341,'2025-07-14',5,4,3,1,NULL,8.00,'2025-07-15 06:57:26','2025-07-15 06:57:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(342,'2025-07-16',4,4,3,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(343,'2025-07-16',4,3,2,1,NULL,4.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(344,'2025-07-16',4,3,2,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(345,'2025-07-16',5,4,3,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(346,'2025-07-16',5,3,2,1,NULL,4.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(347,'2025-07-16',5,3,2,1,NULL,2.00,'2025-07-16 06:46:46','2025-07-16 06:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(348,'2025-07-16',10,4,3,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(349,'2025-07-16',10,3,2,1,NULL,4.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(350,'2025-07-16',10,3,2,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(351,'2025-07-16',6,4,3,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(352,'2025-07-16',6,3,2,1,NULL,4.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(353,'2025-07-16',6,3,2,1,NULL,2.00,'2025-07-16 06:47:53','2025-07-16 06:47:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(354,'2025-07-16',9,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(355,'2025-07-16',8,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(356,'2025-07-16',3,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(357,'2025-07-16',2,3,2,1,NULL,8.00,'2025-07-16 06:48:32','2025-07-16 06:48:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(358,'2025-07-16',1,4,3,1,NULL,8.00,'2025-07-16 06:51:31','2025-07-16 06:51:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(359,'2025-07-16',7,4,3,1,NULL,8.00,'2025-07-16 06:51:31','2025-07-16 06:51:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(360,'2025-07-17',1,3,3,1,NULL,8.00,'2025-07-17 06:45:22','2025-07-17 06:45:22',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(361,'2025-07-17',5,3,2,1,NULL,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(362,'2025-07-17',5,3,2,2,43,4.00,'2025-07-17 06:46:48','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(363,'2025-07-17',4,3,2,1,NULL,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(364,'2025-07-17',4,3,2,2,43,4.00,'2025-07-17 06:46:48','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(365,'2025-07-17',2,3,2,1,NULL,4.00,'2025-07-17 06:46:48','2025-07-17 06:46:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(366,'2025-07-17',2,3,2,2,43,4.00,'2025-07-17 06:46:48','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(367,'2025-07-17',10,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(368,'2025-07-17',9,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(369,'2025-07-17',8,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(370,'2025-07-17',7,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(371,'2025-07-17',6,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(372,'2025-07-17',3,3,2,1,NULL,8.00,'2025-07-17 06:47:19','2025-07-17 06:47:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(373,'2025-07-18',7,4,3,2,6,2.00,'2025-07-18 05:54:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(374,'2025-07-18',1,4,3,2,6,2.00,'2025-07-18 05:54:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(376,'2025-07-18',5,4,3,1,NULL,2.00,'2025-07-18 05:58:33','2025-07-18 05:58:33',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(377,'2025-07-18',5,3,2,1,NULL,6.00,'2025-07-18 05:58:33','2025-07-18 05:58:33',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(378,'2025-07-18',7,3,2,1,NULL,6.00,'2025-07-18 05:59:42','2025-07-18 05:59:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(379,'2025-07-18',1,3,3,1,NULL,6.00,'2025-07-18 06:00:15','2025-07-18 06:00:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(380,'2025-07-18',10,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(381,'2025-07-18',9,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(382,'2025-07-18',8,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(383,'2025-07-18',6,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(384,'2025-07-18',4,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(385,'2025-07-18',3,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(386,'2025-07-18',2,3,2,1,NULL,8.00,'2025-07-18 06:36:13','2025-07-18 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(387,'2025-07-21',5,4,3,2,6,4.00,'2025-07-21 06:40:08','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(388,'2025-07-21',5,3,2,1,NULL,4.00,'2025-07-21 06:40:08','2025-07-21 06:40:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(389,'2025-07-21',4,4,3,2,6,4.00,'2025-07-21 06:40:08','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(390,'2025-07-21',4,3,2,1,NULL,4.00,'2025-07-21 06:40:08','2025-07-21 06:40:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(391,'2025-07-21',10,3,2,1,NULL,6.00,'2025-07-21 06:40:32','2025-07-22 06:58:42',5,3,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(392,'2025-07-21',9,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(393,'2025-07-21',8,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(394,'2025-07-21',7,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(395,'2025-07-21',6,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(396,'2025-07-21',3,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(397,'2025-07-21',2,3,2,1,NULL,8.00,'2025-07-21 06:40:32','2025-07-21 06:40:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(398,'2025-07-21',1,3,3,1,NULL,8.00,'2025-07-21 06:53:37','2025-07-21 06:53:37',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(399,'2025-07-22',10,3,2,1,NULL,8.00,'2025-07-22 06:45:47','2025-07-22 06:45:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(400,'2025-07-22',9,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(401,'2025-07-22',8,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(402,'2025-07-22',7,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(403,'2025-07-22',6,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(404,'2025-07-22',4,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(405,'2025-07-22',3,3,2,1,NULL,8.00,'2025-07-22 06:45:48','2025-07-22 06:45:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(406,'2025-07-22',2,4,3,2,6,8.00,'2025-07-22 06:46:11','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(407,'2025-07-22',5,3,3,1,NULL,8.00,'2025-07-22 06:46:11','2025-07-22 06:46:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(408,'2025-07-22',1,3,3,1,NULL,8.00,'2025-07-22 06:46:11','2025-07-22 06:46:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(409,'2025-07-23',4,3,3,1,NULL,8.00,'2025-07-23 06:45:06','2025-07-23 06:45:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(410,'2025-07-23',5,3,3,1,NULL,8.00,'2025-07-23 06:45:28','2025-07-23 06:45:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(411,'2025-07-23',1,3,3,1,NULL,8.00,'2025-07-23 06:45:28','2025-07-23 06:45:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(412,'2025-07-23',10,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(413,'2025-07-23',9,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(414,'2025-07-23',7,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(415,'2025-07-23',6,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(416,'2025-07-23',3,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(417,'2025-07-23',2,3,2,1,NULL,8.00,'2025-07-23 06:45:30','2025-07-23 06:45:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(418,'2025-07-24',4,3,3,1,NULL,8.00,'2025-07-24 06:36:55','2025-07-24 06:36:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(419,'2025-07-24',10,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(420,'2025-07-24',9,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(421,'2025-07-24',7,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(422,'2025-07-24',6,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(423,'2025-07-24',3,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(424,'2025-07-24',2,3,2,1,NULL,8.00,'2025-07-24 06:37:18','2025-07-24 06:37:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(425,'2025-07-24',5,3,3,1,NULL,8.00,'2025-07-24 06:47:04','2025-07-24 06:47:04',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(426,'2025-07-24',1,3,3,1,NULL,8.00,'2025-07-24 06:47:04','2025-07-24 06:47:04',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(427,'2025-07-25',4,3,3,1,NULL,8.00,'2025-07-25 06:44:23','2025-07-25 06:44:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(428,'2025-07-25',10,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(429,'2025-07-25',9,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(430,'2025-07-25',8,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(431,'2025-07-25',6,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(432,'2025-07-25',3,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(433,'2025-07-25',2,3,2,1,NULL,8.00,'2025-07-25 06:45:15','2025-07-25 06:45:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(434,'2025-07-25',5,4,3,1,NULL,8.00,'2025-07-25 06:45:18','2025-07-25 06:45:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(435,'2025-07-25',7,4,3,1,NULL,8.00,'2025-07-25 06:45:19','2025-07-25 06:45:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(436,'2025-07-25',1,4,3,1,NULL,8.00,'2025-07-25 06:45:19','2025-07-25 06:45:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(437,'2025-07-28',5,3,3,1,NULL,8.00,'2025-07-28 06:30:39','2025-07-28 06:30:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(438,'2025-07-28',4,3,3,1,NULL,8.00,'2025-07-28 06:30:39','2025-07-28 06:30:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(439,'2025-07-28',1,3,3,1,NULL,8.00,'2025-07-28 06:30:39','2025-07-28 06:30:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(440,'2025-07-28',2,5,2,1,NULL,4.00,'2025-07-28 06:33:08','2025-07-28 06:33:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(441,'2025-07-28',2,3,2,1,NULL,4.00,'2025-07-28 06:33:08','2025-07-28 06:33:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(442,'2025-07-28',10,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(443,'2025-07-28',9,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(444,'2025-07-28',8,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(445,'2025-07-28',7,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(446,'2025-07-28',6,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(447,'2025-07-28',3,3,2,1,NULL,8.00,'2025-07-28 06:33:34','2025-07-28 06:33:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(448,'2025-07-29',5,3,3,1,NULL,8.00,'2025-07-29 06:39:13','2025-07-29 06:39:13',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(449,'2025-07-29',4,3,3,1,NULL,8.00,'2025-07-29 06:39:13','2025-07-29 06:39:13',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(450,'2025-07-29',1,3,3,1,NULL,8.00,'2025-07-29 06:39:13','2025-07-29 06:39:13',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(451,'2025-07-30',5,3,3,1,NULL,8.00,'2025-07-30 06:50:30','2025-07-30 06:50:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(452,'2025-07-30',4,3,3,1,NULL,8.00,'2025-07-30 06:50:30','2025-07-30 06:50:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(453,'2025-07-30',1,3,3,1,NULL,8.00,'2025-07-30 06:50:30','2025-07-30 06:50:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(454,'2025-07-30',10,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(455,'2025-07-30',9,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(456,'2025-07-30',8,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(457,'2025-07-30',7,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(458,'2025-07-30',6,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(459,'2025-07-30',3,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(460,'2025-07-30',2,3,2,1,NULL,8.00,'2025-07-30 06:52:16','2025-07-30 06:52:16',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(461,'2025-07-31',1,3,3,1,NULL,4.00,'2025-07-31 06:42:56','2025-07-31 06:42:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(462,'2025-07-31',4,3,3,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(463,'2025-07-31',4,3,2,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(464,'2025-07-31',5,3,3,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(465,'2025-07-31',5,3,2,1,NULL,4.00,'2025-07-31 06:43:32','2025-07-31 06:43:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(466,'2025-07-31',10,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(467,'2025-07-31',9,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(468,'2025-07-31',8,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(469,'2025-07-31',7,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(470,'2025-07-31',6,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(471,'2025-07-31',3,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(472,'2025-07-31',2,3,2,1,NULL,8.00,'2025-07-31 06:44:00','2025-07-31 06:44:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(473,'2025-07-11',10,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(474,'2025-07-11',5,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(475,'2025-07-11',4,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(476,'2025-07-11',9,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(477,'2025-07-11',8,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(478,'2025-07-11',3,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(479,'2025-07-11',2,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(480,'2025-07-11',7,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(481,'2025-07-11',6,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(482,'2025-07-11',1,3,2,1,NULL,8.00,'2025-07-31 22:24:47','2025-07-31 22:24:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(483,'2025-08-01',10,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(484,'2025-08-01',9,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(485,'2025-08-01',8,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(486,'2025-08-01',7,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(487,'2025-08-01',6,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(488,'2025-08-01',3,3,2,1,NULL,8.00,'2025-08-01 04:57:47','2025-08-01 04:57:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(489,'2025-08-01',2,3,2,1,NULL,8.00,'2025-08-01 04:57:48','2025-08-01 04:57:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(490,'2025-08-01',4,3,3,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(491,'2025-08-01',4,5,1,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(492,'2025-08-01',5,3,3,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(493,'2025-08-01',5,5,1,1,NULL,4.00,'2025-08-01 05:02:28','2025-08-01 05:02:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(494,'2025-08-07',9,3,2,2,43,4.00,'2025-08-07 06:42:39','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(495,'2025-08-07',9,3,2,1,NULL,4.00,'2025-08-07 06:42:39','2025-08-07 06:42:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(496,'2025-08-07',7,3,2,2,43,4.00,'2025-08-07 06:42:39','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(497,'2025-08-07',7,3,2,1,NULL,4.00,'2025-08-07 06:42:39','2025-08-07 06:42:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(498,'2025-08-07',10,5,2,1,NULL,8.00,'2025-08-07 06:43:14','2025-08-07 06:43:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(499,'2025-08-07',4,5,2,1,NULL,8.00,'2025-08-07 06:43:15','2025-08-07 06:43:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(500,'2025-08-07',2,5,2,1,NULL,8.00,'2025-08-07 06:43:15','2025-08-07 06:43:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(501,'2025-08-07',6,3,2,1,NULL,8.00,'2025-08-07 06:43:39','2025-08-07 06:43:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(502,'2025-08-07',3,3,2,1,NULL,8.00,'2025-08-07 06:43:39','2025-08-07 06:43:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(503,'2025-08-07',8,3,2,1,NULL,8.00,'2025-08-07 06:43:39','2025-08-07 06:43:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(504,'2025-08-07',1,3,3,1,NULL,8.00,'2025-08-07 06:43:52','2025-08-07 06:43:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(505,'2025-08-08',1,3,3,1,NULL,8.00,'2025-08-08 06:45:20','2025-08-08 06:45:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(506,'2025-08-08',10,5,2,1,NULL,8.00,'2025-08-08 06:58:42','2025-08-08 06:58:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(507,'2025-08-08',2,5,2,1,NULL,8.00,'2025-08-08 06:58:42','2025-08-08 06:58:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(508,'2025-08-08',9,3,2,1,NULL,8.00,'2025-08-08 06:59:18','2025-08-08 06:59:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(509,'2025-08-08',8,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(510,'2025-08-08',3,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(511,'2025-08-08',4,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(512,'2025-08-08',6,3,2,1,NULL,8.00,'2025-08-08 06:59:19','2025-08-08 06:59:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(513,'2025-08-11',1,3,3,1,NULL,8.00,'2025-08-11 06:27:37','2025-08-11 06:27:37',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(514,'2025-08-11',1,3,3,1,NULL,8.00,'2025-08-11 06:27:37','2025-08-11 06:27:37',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(515,'2025-08-11',10,5,2,1,NULL,8.00,'2025-08-11 06:46:23','2025-08-11 06:46:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(516,'2025-08-11',2,5,2,1,NULL,8.00,'2025-08-11 06:46:23','2025-08-11 06:46:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(517,'2025-08-11',8,3,2,1,NULL,8.00,'2025-08-11 06:46:49','2025-08-11 06:46:49',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(518,'2025-08-11',7,3,2,1,NULL,8.00,'2025-08-11 06:46:49','2025-08-11 06:46:49',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(519,'2025-08-11',6,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(520,'2025-08-11',5,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(521,'2025-08-11',4,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(522,'2025-08-11',3,3,2,1,NULL,8.00,'2025-08-11 06:46:50','2025-08-11 06:46:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(523,'2025-08-12',10,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(524,'2025-08-12',9,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(525,'2025-08-12',8,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(526,'2025-08-12',7,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(527,'2025-08-12',5,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(528,'2025-08-12',4,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(529,'2025-08-12',3,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(530,'2025-08-12',1,3,2,1,NULL,8.00,'2025-08-12 06:47:24','2025-08-12 06:47:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(531,'2025-08-13',1,3,3,1,NULL,8.00,'2025-08-13 06:31:32','2025-08-13 06:31:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(532,'2025-08-13',2,3,2,1,NULL,4.00,'2025-08-13 06:36:13','2025-08-13 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(533,'2025-08-13',2,5,2,1,NULL,4.00,'2025-08-13 06:36:13','2025-08-13 06:36:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(534,'2025-08-13',9,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(535,'2025-08-13',8,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(536,'2025-08-13',7,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(537,'2025-08-13',6,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(538,'2025-08-13',5,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(539,'2025-08-13',4,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(540,'2025-08-13',3,3,2,1,NULL,8.00,'2025-08-13 06:36:48','2025-08-13 06:36:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(541,'2025-08-13',10,5,2,1,NULL,8.00,'2025-08-13 06:37:19','2025-08-13 06:37:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(542,'2025-08-14',1,3,3,2,6,4.00,'2025-08-14 06:35:27','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(543,'2025-08-14',1,3,3,1,NULL,4.00,'2025-08-14 06:35:27','2025-08-14 06:35:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(544,'2025-08-14',10,5,2,1,NULL,4.00,'2025-08-14 06:39:03','2025-08-14 06:39:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(545,'2025-08-14',10,5,3,1,NULL,4.00,'2025-08-14 06:39:03','2025-08-14 06:39:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(546,'2025-08-14',2,5,2,1,NULL,2.00,'2025-08-14 06:39:44','2025-08-14 06:39:44',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(547,'2025-08-14',2,3,2,1,NULL,6.00,'2025-08-14 06:39:44','2025-08-14 06:39:44',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(548,'2025-08-14',9,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(549,'2025-08-14',8,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(550,'2025-08-14',7,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(551,'2025-08-14',6,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(552,'2025-08-14',5,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(553,'2025-08-14',4,3,2,1,NULL,8.00,'2025-08-14 06:40:10','2025-08-14 06:40:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(554,'2025-08-18',2,3,2,1,NULL,8.00,'2025-08-18 06:21:36','2025-08-18 06:21:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(555,'2025-08-18',8,3,2,1,NULL,8.00,'2025-08-18 06:21:36','2025-08-18 06:21:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(556,'2025-08-18',4,3,2,1,NULL,8.00,'2025-08-18 06:22:01','2025-08-18 06:22:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(557,'2025-08-18',10,5,3,1,NULL,6.00,'2025-08-18 06:22:53','2025-08-18 06:22:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(558,'2025-08-18',10,3,2,1,NULL,2.00,'2025-08-18 06:22:53','2025-08-18 06:22:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(559,'2025-08-18',9,3,2,1,NULL,4.00,'2025-08-18 06:23:34','2025-08-18 06:23:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(560,'2025-08-18',9,3,3,1,NULL,4.00,'2025-08-18 06:23:34','2025-08-18 06:23:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(561,'2025-08-18',5,3,3,2,6,4.00,'2025-08-18 06:41:24','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(562,'2025-08-18',1,3,3,2,6,4.00,'2025-08-18 06:41:24','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(563,'2025-08-18',7,3,3,2,6,4.00,'2025-08-18 06:41:24','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(564,'2025-08-18',7,3,3,1,NULL,4.00,'2025-08-18 06:43:10','2025-08-18 06:43:10',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(565,'2025-08-18',5,3,3,1,NULL,4.00,'2025-08-18 06:43:10','2025-08-18 06:43:10',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(566,'2025-08-18',1,3,3,1,NULL,4.00,'2025-08-18 06:43:10','2025-08-18 06:43:10',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(567,'2025-08-18',6,3,3,1,NULL,8.00,'2025-08-18 06:43:35','2025-08-18 06:43:35',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(568,'2025-08-18',3,3,3,1,NULL,8.00,'2025-08-18 06:43:35','2025-08-18 06:43:35',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(569,'2025-08-19',1,3,3,1,NULL,6.00,'2025-08-19 08:02:49','2025-08-19 08:02:49',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(573,'2025-08-19',9,3,3,1,NULL,10.00,'2025-08-19 08:03:30','2025-08-19 08:03:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(574,'2025-08-19',10,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(575,'2025-08-19',8,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(576,'2025-08-19',5,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(577,'2025-08-19',4,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(578,'2025-08-19',2,3,2,1,NULL,10.00,'2025-08-19 08:04:05','2025-08-19 08:04:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(579,'2025-08-19',3,3,3,1,NULL,10.00,'2025-08-19 08:36:51','2025-08-19 08:36:51',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(580,'2025-08-19',7,3,3,1,NULL,10.00,'2025-08-19 08:36:51','2025-08-19 08:36:51',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(581,'2025-08-19',6,3,3,1,NULL,10.00,'2025-08-19 08:36:51','2025-08-19 08:36:51',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(582,'2025-08-20',2,3,2,1,NULL,8.00,'2025-08-20 06:19:36','2025-08-20 06:19:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(583,'2025-08-20',5,3,1,1,NULL,2.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(584,'2025-08-20',5,3,2,1,NULL,6.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(585,'2025-08-20',4,3,1,1,NULL,2.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(586,'2025-08-20',4,3,2,1,NULL,6.00,'2025-08-20 06:21:28','2025-08-20 06:21:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(587,'2025-08-20',6,3,3,1,NULL,4.00,'2025-08-20 06:43:46','2025-08-20 06:43:46',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(589,'2025-08-20',9,3,3,1,NULL,8.00,'2025-08-20 06:44:23','2025-08-20 06:44:23',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(590,'2025-08-20',8,3,3,1,NULL,8.00,'2025-08-20 06:44:23','2025-08-20 06:44:23',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(591,'2025-08-20',7,3,3,1,NULL,8.00,'2025-08-20 06:44:24','2025-08-20 06:44:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(593,'2025-08-20',1,3,3,1,NULL,8.00,'2025-08-20 06:44:24','2025-08-20 06:44:24',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(594,'2025-08-20',10,3,3,1,NULL,8.00,'2025-08-20 06:44:26','2025-08-20 06:44:26',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(595,'2025-08-20',3,3,3,1,NULL,8.00,'2025-08-20 06:44:26','2025-08-20 06:44:26',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(596,'2025-08-21',7,3,3,1,NULL,8.00,'2025-08-21 06:30:36','2025-08-21 06:30:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(597,'2025-08-21',1,3,3,1,NULL,8.00,'2025-08-21 06:30:36','2025-08-21 06:30:36',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(600,'2025-08-21',10,3,3,1,NULL,8.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(601,'2025-08-21',10,3,3,1,NULL,2.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(602,'2025-08-21',9,3,3,1,NULL,8.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(603,'2025-08-21',9,3,3,1,NULL,2.00,'2025-08-21 07:51:23','2025-08-21 07:51:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(608,'2025-08-21',2,3,2,1,NULL,8.00,'2025-08-21 07:54:46','2025-08-21 07:54:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(609,'2025-08-21',2,5,2,1,NULL,2.00,'2025-08-21 07:54:46','2025-08-21 07:54:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(610,'2025-08-21',8,3,3,1,NULL,4.00,'2025-08-21 07:55:25','2025-08-21 07:55:25',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(611,'2025-08-21',8,3,2,1,NULL,6.00,'2025-08-21 07:55:25','2025-08-21 07:55:25',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(612,'2025-08-21',6,3,3,1,NULL,10.00,'2025-08-21 08:24:50','2025-08-21 08:24:50',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(613,'2025-08-21',3,3,3,1,NULL,10.00,'2025-08-21 08:24:50','2025-08-21 08:24:50',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(614,'2025-08-22',2,3,2,1,NULL,8.00,'2025-08-22 06:21:15','2025-08-22 06:21:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(615,'2025-08-22',8,3,2,1,NULL,4.00,'2025-08-22 06:23:12','2025-08-22 06:23:12',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(616,'2025-08-22',8,3,3,1,NULL,4.00,'2025-08-22 06:23:12','2025-08-22 06:23:12',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(617,'2025-08-22',5,3,3,1,NULL,8.00,'2025-08-22 06:23:55','2025-08-22 06:23:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(618,'2025-08-22',6,3,2,1,NULL,4.00,'2025-08-22 06:27:43','2025-08-22 06:27:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(619,'2025-08-22',10,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(620,'2025-08-22',9,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(621,'2025-08-22',7,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(622,'2025-08-22',4,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(623,'2025-08-22',3,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(624,'2025-08-22',1,3,3,1,NULL,8.00,'2025-08-22 06:28:15','2025-08-22 06:28:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(625,'2025-08-23',4,3,2,1,NULL,2.00,'2025-08-23 04:57:02','2025-08-23 04:57:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(626,'2025-08-23',4,3,3,1,NULL,6.00,'2025-08-23 04:57:02','2025-08-23 04:57:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(627,'2025-08-23',2,3,2,1,NULL,8.00,'2025-08-23 04:57:25','2025-08-23 04:57:25',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(628,'2025-08-23',10,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(629,'2025-08-23',9,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(630,'2025-08-23',8,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(631,'2025-08-23',6,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(632,'2025-08-23',5,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(633,'2025-08-23',3,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(634,'2025-08-23',1,3,3,1,NULL,8.00,'2025-08-23 04:57:54','2025-08-23 04:57:54',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(635,'2025-08-25',10,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(636,'2025-08-25',9,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(637,'2025-08-25',8,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(638,'2025-08-25',7,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(640,'2025-08-25',5,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(641,'2025-08-25',4,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(643,'2025-08-25',2,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(644,'2025-08-25',1,3,3,1,NULL,8.00,'2025-08-25 06:48:34','2025-08-25 06:48:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(645,'2025-08-25',6,3,3,1,NULL,8.00,'2025-08-25 06:49:16','2025-08-25 06:49:16',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(646,'2025-08-25',3,3,3,1,NULL,8.00,'2025-08-25 06:49:17','2025-08-25 06:49:17',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(647,'2025-08-26',4,8,3,1,NULL,8.00,'2025-08-26 07:28:03','2025-08-26 07:28:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(648,'2025-08-26',4,3,3,1,NULL,2.00,'2025-08-26 07:28:03','2025-08-26 07:28:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(649,'2025-08-26',2,8,3,1,NULL,10.00,'2025-08-26 07:28:35','2025-08-26 07:28:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(651,'2025-08-26',9,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(652,'2025-08-26',8,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(653,'2025-08-26',7,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(655,'2025-08-26',5,3,3,1,NULL,10.00,'2025-08-26 07:29:02','2025-08-26 07:29:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(657,'2025-08-26',1,3,3,1,NULL,10.00,'2025-08-26 07:29:03','2025-08-26 07:29:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(658,'2025-08-26',6,3,3,1,NULL,10.00,'2025-08-26 08:22:12','2025-08-26 08:22:12',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(659,'2025-08-26',10,3,3,1,NULL,10.00,'2025-08-26 08:22:12','2025-08-26 08:22:12',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(660,'2025-08-26',3,3,3,1,NULL,10.00,'2025-08-26 08:22:12','2025-08-26 08:22:12',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(661,'2025-08-27',10,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(662,'2025-08-27',9,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(663,'2025-08-27',7,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(664,'2025-08-27',6,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(665,'2025-08-27',5,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(666,'2025-08-27',4,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(667,'2025-08-27',3,3,3,2,38,8.00,'2025-08-27 06:44:47','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(668,'2025-08-27',1,3,3,2,38,8.00,'2025-08-27 06:44:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(669,'2025-08-27',2,3,3,2,6,2.00,'2025-08-27 06:45:32','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(670,'2025-08-27',2,8,2,1,NULL,6.00,'2025-08-27 06:45:32','2025-08-27 06:45:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(671,'2025-08-27',8,3,3,2,6,2.00,'2025-08-27 06:45:32','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(672,'2025-08-27',8,8,2,1,NULL,6.00,'2025-08-27 06:45:32','2025-08-27 06:45:32',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(673,'2025-08-28',10,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(674,'2025-08-28',10,3,3,2,6,4.00,'2025-08-28 08:31:42','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(675,'2025-08-28',5,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(676,'2025-08-28',5,3,3,2,6,4.00,'2025-08-28 08:31:42','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(677,'2025-08-28',6,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(678,'2025-08-28',6,3,3,2,6,4.00,'2025-08-28 08:31:42','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(679,'2025-08-28',3,3,3,1,NULL,6.00,'2025-08-28 08:31:42','2025-08-28 08:31:42',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(680,'2025-08-28',3,3,3,2,6,4.00,'2025-08-28 08:31:42','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(681,'2025-08-28',4,3,3,1,NULL,4.00,'2025-08-28 08:37:46','2025-08-28 08:37:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(682,'2025-08-28',4,5,3,1,NULL,4.00,'2025-08-28 08:37:46','2025-08-28 08:37:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(683,'2025-08-28',8,8,2,1,NULL,4.00,'2025-08-28 08:38:15','2025-08-28 08:38:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(684,'2025-08-28',8,5,3,1,NULL,4.00,'2025-08-28 08:38:15','2025-08-28 08:38:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(685,'2025-08-28',2,3,3,2,6,2.00,'2025-08-28 08:38:50','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(686,'2025-08-28',2,5,3,1,NULL,6.00,'2025-08-28 08:38:50','2025-08-28 08:38:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(687,'2025-08-28',1,3,3,2,6,8.00,'2025-08-28 08:39:24','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(689,'2025-08-28',9,3,3,2,43,8.00,'2025-08-28 08:40:00','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(690,'2025-08-28',7,3,3,2,43,8.00,'2025-08-28 08:40:00','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(694,'2025-08-28',4,5,3,1,NULL,2.00,'2025-08-28 08:44:56','2025-08-28 08:44:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(695,'2025-08-28',8,5,3,1,NULL,2.00,'2025-08-28 08:44:56','2025-08-28 08:44:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(696,'2025-08-28',2,5,3,1,NULL,2.00,'2025-08-28 08:44:56','2025-08-28 08:44:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(698,'2025-08-28',9,3,3,1,NULL,2.00,'2025-08-28 08:45:19','2025-08-28 08:45:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(699,'2025-08-28',7,3,3,1,NULL,2.00,'2025-08-28 08:45:19','2025-08-28 08:45:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(703,'2025-08-29',10,3,3,2,38,8.00,'2025-08-29 06:47:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(704,'2025-08-29',9,3,3,2,38,8.00,'2025-08-29 06:47:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(706,'2025-08-29',7,3,3,2,38,8.00,'2025-08-29 06:47:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(710,'2025-08-29',1,3,3,2,38,8.00,'2025-08-29 06:47:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(713,'2025-08-29',5,3,3,1,NULL,6.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(714,'2025-08-29',5,3,3,2,6,2.00,'2025-08-29 06:47:35','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(715,'2025-08-29',3,3,3,1,NULL,6.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(716,'2025-08-29',3,3,3,2,6,2.00,'2025-08-29 06:47:35','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(717,'2025-08-29',6,3,3,1,NULL,6.00,'2025-08-29 06:47:35','2025-08-29 06:47:35',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(718,'2025-08-29',6,3,3,2,6,2.00,'2025-08-29 06:47:35','2026-02-05 22:24:28',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(719,'2025-08-29',8,5,3,1,NULL,8.00,'2025-08-29 21:55:56','2025-08-29 21:55:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(720,'2025-08-29',4,5,3,1,NULL,8.00,'2025-08-29 21:55:56','2025-08-29 21:55:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(721,'2025-08-29',2,5,3,1,NULL,8.00,'2025-08-29 21:55:56','2025-08-29 21:55:56',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(722,'2025-08-30',2,5,3,1,NULL,8.00,'2025-08-30 05:12:03','2025-08-30 05:12:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(723,'2025-08-30',8,5,3,1,NULL,8.00,'2025-08-30 05:12:03','2025-08-30 05:12:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(724,'2025-08-30',4,5,3,1,NULL,8.00,'2025-08-30 05:12:03','2025-08-30 05:12:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(725,'2025-08-30',10,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(726,'2025-08-30',9,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(727,'2025-08-30',7,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(728,'2025-08-30',6,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(729,'2025-08-30',5,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(730,'2025-08-30',3,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(731,'2025-08-30',1,3,3,2,6,8.00,'2025-08-30 05:36:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(732,'2025-09-01',7,3,3,1,NULL,8.00,'2025-09-01 06:18:28','2025-09-01 06:18:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(733,'2025-09-01',9,3,3,1,NULL,8.00,'2025-09-01 06:18:28','2025-09-01 06:18:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(734,'2025-09-01',10,3,3,2,38,4.00,'2025-09-01 06:19:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(735,'2025-09-01',3,3,3,2,38,4.00,'2025-09-01 06:19:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(736,'2025-09-01',1,3,3,2,38,4.00,'2025-09-01 06:19:11','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(737,'2025-09-01',10,3,3,1,NULL,4.00,'2025-09-01 06:19:35','2025-09-01 06:19:35',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(738,'2025-09-01',3,3,3,1,NULL,4.00,'2025-09-01 06:19:35','2025-09-01 06:19:35',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(739,'2025-09-01',1,3,3,1,NULL,4.00,'2025-09-01 06:19:35','2025-09-01 06:19:35',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(740,'2025-09-01',5,3,3,2,6,8.00,'2025-09-01 06:20:03','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(741,'2025-08-21',4,3,3,1,NULL,10.00,'2025-09-01 23:18:03','2025-09-01 23:18:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(742,'2025-08-21',5,3,3,1,NULL,10.00,'2025-09-01 23:18:03','2025-09-01 23:18:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(745,'2025-09-02',10,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(746,'2025-09-02',9,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(747,'2025-09-02',6,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(748,'2025-09-02',5,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(749,'2025-09-02',3,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(750,'2025-09-02',1,3,3,2,6,6.00,'2025-09-02 07:36:04','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(751,'2025-09-02',10,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(752,'2025-09-02',9,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(753,'2025-09-02',6,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(754,'2025-09-02',5,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(755,'2025-09-02',3,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(756,'2025-09-02',1,3,3,1,NULL,4.00,'2025-09-02 07:36:31','2025-09-02 07:36:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(757,'2025-09-02',8,3,3,1,NULL,10.00,'2025-09-02 07:37:19','2025-09-02 07:37:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(758,'2025-09-02',7,3,3,1,NULL,10.00,'2025-09-02 07:37:19','2025-09-02 07:37:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(759,'2025-09-02',2,5,3,1,NULL,8.00,'2025-09-02 08:16:14','2025-09-02 08:16:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(760,'2025-09-02',2,5,3,1,NULL,2.00,'2025-09-02 08:16:14','2025-09-02 08:16:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(761,'2025-09-02',4,5,3,1,NULL,8.00,'2025-09-02 08:16:14','2025-09-02 08:16:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(762,'2025-09-02',4,5,3,1,NULL,2.00,'2025-09-02 08:16:14','2025-09-02 08:16:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(763,'2025-09-03',10,3,3,1,NULL,8.00,'2025-09-03 06:34:47','2025-09-03 06:34:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(764,'2025-09-03',9,3,3,1,NULL,8.00,'2025-09-03 06:34:47','2025-09-03 06:34:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(765,'2025-09-03',8,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(766,'2025-09-03',7,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(767,'2025-09-03',6,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(768,'2025-09-03',5,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(769,'2025-09-03',3,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(770,'2025-09-03',1,3,3,1,NULL,8.00,'2025-09-03 06:34:48','2025-09-03 06:34:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(771,'2025-09-03',2,5,3,1,NULL,8.00,'2025-09-03 06:44:18','2025-09-03 06:44:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(772,'2025-09-04',10,3,3,1,NULL,8.00,'2025-09-04 06:41:32','2025-09-04 06:41:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(773,'2025-09-04',5,3,3,1,NULL,8.00,'2025-09-04 06:41:32','2025-09-04 06:41:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(774,'2025-09-04',9,3,3,1,NULL,8.00,'2025-09-04 06:41:32','2025-09-04 06:41:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(775,'2025-09-04',8,3,3,1,NULL,8.00,'2025-09-04 06:41:32','2025-09-04 06:41:32',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(776,'2025-09-04',3,3,3,1,NULL,8.00,'2025-09-04 06:41:33','2025-09-04 06:41:33',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(777,'2025-09-04',7,3,3,1,NULL,8.00,'2025-09-04 06:41:33','2025-09-04 06:41:33',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(778,'2025-09-04',1,3,3,1,NULL,8.00,'2025-09-04 06:41:33','2025-09-04 06:41:33',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(779,'2025-09-04',6,3,3,1,NULL,8.00,'2025-09-04 06:41:33','2025-09-04 06:41:33',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(780,'2025-09-04',2,5,3,1,NULL,8.00,'2025-09-04 06:48:34','2025-09-04 06:48:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(781,'2025-09-04',4,5,3,1,NULL,8.00,'2025-09-04 06:48:34','2025-09-04 06:48:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(782,'2025-09-05',10,3,3,1,NULL,8.00,'2025-09-05 06:39:30','2025-09-05 06:39:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(783,'2025-09-05',9,3,3,1,NULL,8.00,'2025-09-05 06:39:30','2025-09-05 06:39:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(784,'2025-09-05',7,3,3,1,NULL,8.00,'2025-09-05 06:39:30','2025-09-05 06:39:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(785,'2025-09-05',6,3,3,1,NULL,8.00,'2025-09-05 06:39:31','2025-09-05 06:39:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(786,'2025-09-05',5,3,3,1,NULL,8.00,'2025-09-05 06:39:31','2025-09-05 06:39:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(787,'2025-09-05',3,3,3,1,NULL,8.00,'2025-09-05 06:39:31','2025-09-05 06:39:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(788,'2025-09-05',1,3,3,1,NULL,8.00,'2025-09-05 06:39:31','2025-09-05 06:39:31',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(789,'2025-09-05',2,5,3,1,NULL,8.00,'2025-09-05 22:09:55','2025-09-05 22:09:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(790,'2025-09-05',8,5,3,1,NULL,8.00,'2025-09-05 22:09:55','2025-09-05 22:09:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(791,'2025-09-05',4,5,3,1,NULL,8.00,'2025-09-05 22:09:55','2025-09-05 22:09:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(792,'2025-09-06',8,10,3,1,NULL,8.00,'2025-09-06 04:21:10','2025-09-06 04:21:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(793,'2025-09-06',4,10,3,1,NULL,8.00,'2025-09-06 04:21:10','2025-09-06 04:21:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(794,'2025-09-06',2,10,3,1,NULL,8.00,'2025-09-06 04:21:10','2025-09-06 04:21:10',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(795,'2025-09-06',10,3,3,1,NULL,8.00,'2025-09-06 05:28:18','2025-09-06 05:28:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(796,'2025-09-06',9,3,3,1,NULL,8.00,'2025-09-06 05:28:18','2025-09-06 05:28:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(797,'2025-09-06',7,3,3,1,NULL,8.00,'2025-09-06 05:28:18','2025-09-06 05:28:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(798,'2025-09-06',6,3,3,1,NULL,8.00,'2025-09-06 05:28:19','2025-09-06 05:28:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(799,'2025-09-06',5,3,3,1,NULL,8.00,'2025-09-06 05:28:19','2025-09-06 05:28:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(800,'2025-09-06',3,3,3,1,NULL,8.00,'2025-09-06 05:28:19','2025-09-06 05:28:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(801,'2025-09-06',1,3,3,1,NULL,8.00,'2025-09-06 05:28:19','2025-09-06 05:28:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(802,'2025-09-08',10,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(803,'2025-09-08',9,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(804,'2025-09-08',7,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(805,'2025-09-08',6,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(806,'2025-09-08',5,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(807,'2025-09-08',3,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(808,'2025-09-08',1,3,3,1,NULL,8.00,'2025-09-08 06:15:43','2025-09-08 06:15:43',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(809,'2025-09-08',8,5,3,1,NULL,8.00,'2025-09-08 06:47:37','2025-09-08 06:47:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(810,'2025-09-08',4,5,3,1,NULL,8.00,'2025-09-08 06:47:37','2025-09-08 06:47:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(811,'2025-09-08',2,5,3,1,NULL,8.00,'2025-09-08 06:47:37','2025-09-08 06:47:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(812,'2025-09-09',10,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(813,'2025-09-09',9,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(814,'2025-09-09',7,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(815,'2025-09-09',6,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(816,'2025-09-09',5,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(817,'2025-09-09',3,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(818,'2025-09-09',1,3,3,1,NULL,8.00,'2025-09-09 06:03:27','2025-09-09 06:03:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(819,'2025-09-09',8,5,3,1,NULL,8.00,'2025-09-09 06:44:29','2025-09-09 06:44:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(820,'2025-09-09',4,5,3,1,NULL,8.00,'2025-09-09 06:44:29','2025-09-09 06:44:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(821,'2025-09-09',2,5,3,1,NULL,8.00,'2025-09-09 06:44:29','2025-09-09 06:44:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(822,'2025-09-10',10,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(823,'2025-09-10',9,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(824,'2025-09-10',7,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(825,'2025-09-10',6,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(826,'2025-09-10',5,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(827,'2025-09-10',3,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(828,'2025-09-10',1,3,3,1,NULL,8.00,'2025-09-10 06:27:52','2025-09-10 06:27:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(829,'2025-09-10',8,5,3,1,NULL,8.00,'2025-09-10 06:48:43','2025-09-10 06:48:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(830,'2025-09-10',4,5,3,1,NULL,8.00,'2025-09-10 06:48:43','2025-09-10 06:48:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(831,'2025-09-10',2,5,3,1,NULL,8.00,'2025-09-10 06:48:43','2025-09-10 06:48:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(832,'2025-09-11',2,5,3,1,NULL,2.00,'2025-09-11 06:37:11','2025-09-11 06:37:11',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(833,'2025-09-11',2,8,3,1,NULL,6.00,'2025-09-11 06:37:11','2025-09-11 06:37:11',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(834,'2025-09-11',4,5,3,1,NULL,2.00,'2025-09-11 06:38:24','2025-09-11 06:38:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(835,'2025-09-11',4,8,3,1,NULL,2.00,'2025-09-11 06:38:24','2025-09-11 06:38:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(836,'2025-09-11',4,3,3,1,NULL,4.00,'2025-09-11 06:38:24','2025-09-11 06:38:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(838,'2025-09-11',1,3,1,1,NULL,4.00,'2025-09-11 06:40:48','2025-09-11 06:40:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(840,'2025-09-11',5,3,2,1,NULL,8.00,'2025-09-11 06:41:47','2025-09-11 06:41:47',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(841,'2025-09-11',8,3,2,1,NULL,8.00,'2025-09-11 06:41:47','2025-09-11 06:41:47',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(842,'2025-09-11',3,3,2,1,NULL,8.00,'2025-09-11 06:41:47','2025-09-11 06:41:47',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(843,'2025-09-11',7,3,2,1,NULL,8.00,'2025-09-11 06:41:47','2025-09-11 06:41:47',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(844,'2025-09-11',6,3,2,1,NULL,8.00,'2025-09-11 06:41:47','2025-09-11 06:41:47',6,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(845,'2025-09-11',10,3,2,1,NULL,4.00,'2025-09-11 06:41:51','2025-09-11 06:41:51',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(846,'2025-09-11',10,3,3,1,NULL,4.00,'2025-09-11 06:41:51','2025-09-11 06:41:51',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(847,'2025-09-11',9,3,2,1,NULL,4.00,'2025-09-11 06:41:51','2025-09-11 06:41:51',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(848,'2025-09-11',9,3,3,1,NULL,4.00,'2025-09-11 06:41:51','2025-09-11 06:41:51',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(851,'2025-09-12',10,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(852,'2025-09-12',9,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(853,'2025-09-12',8,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(854,'2025-09-12',6,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(855,'2025-09-12',5,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(856,'2025-09-12',4,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(857,'2025-09-12',3,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(858,'2025-09-12',2,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(859,'2025-09-12',1,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(860,'2025-09-12',7,3,3,1,NULL,8.00,'2025-09-12 06:45:29','2025-09-12 06:45:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(861,'2025-09-13',10,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(862,'2025-09-13',8,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(863,'2025-09-13',7,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(864,'2025-09-13',6,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(865,'2025-09-13',5,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(866,'2025-09-13',4,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(867,'2025-09-13',3,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(868,'2025-09-13',2,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(869,'2025-09-13',1,3,3,1,NULL,8.00,'2025-09-13 06:38:14','2025-09-13 06:38:14',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(870,'2025-09-14',9,3,3,1,NULL,8.00,'2025-09-14 04:47:40','2025-09-14 04:47:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(871,'2025-09-14',8,3,3,1,NULL,8.00,'2025-09-14 04:47:40','2025-09-14 04:47:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(872,'2025-09-14',7,3,3,1,NULL,8.00,'2025-09-14 04:47:40','2025-09-14 04:47:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(873,'2025-09-14',6,3,3,1,NULL,8.00,'2025-09-14 04:47:40','2025-09-14 04:47:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(874,'2025-09-14',5,3,3,1,NULL,8.00,'2025-09-14 04:47:41','2025-09-14 04:47:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(875,'2025-09-14',4,3,3,1,NULL,8.00,'2025-09-14 04:47:41','2025-09-14 04:47:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(876,'2025-09-14',3,3,3,1,NULL,8.00,'2025-09-14 04:47:41','2025-09-14 04:47:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(877,'2025-09-14',2,3,3,1,NULL,8.00,'2025-09-14 04:47:41','2025-09-14 04:47:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(878,'2025-09-14',1,3,3,1,NULL,8.00,'2025-09-14 04:47:41','2025-09-14 04:47:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(879,'2025-09-15',5,3,3,1,NULL,8.00,'2025-09-15 06:50:00','2025-09-15 06:50:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(880,'2025-09-15',10,3,3,1,NULL,8.00,'2025-09-15 06:50:00','2025-09-15 06:50:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(881,'2025-09-15',9,3,3,1,NULL,8.00,'2025-09-15 06:50:00','2025-09-15 06:50:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(882,'2025-09-15',8,3,3,1,NULL,8.00,'2025-09-15 06:50:00','2025-09-15 06:50:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(883,'2025-09-15',7,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(884,'2025-09-15',6,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(885,'2025-09-15',4,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(886,'2025-09-15',3,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(887,'2025-09-15',2,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(888,'2025-09-15',1,3,3,1,NULL,8.00,'2025-09-15 06:50:01','2025-09-15 06:50:01',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(889,'2025-09-16',2,8,3,1,NULL,8.00,'2025-09-16 06:51:19','2025-09-16 06:51:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(890,'2025-09-16',4,8,3,1,NULL,8.00,'2025-09-16 06:51:19','2025-09-16 06:51:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(891,'2025-09-16',8,8,2,1,NULL,2.00,'2025-09-16 06:52:12','2025-09-16 06:52:12',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(892,'2025-09-16',8,3,2,1,NULL,6.00,'2025-09-16 06:52:12','2025-09-16 06:52:12',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(893,'2025-09-17',4,8,3,1,NULL,8.00,'2025-09-17 06:43:08','2025-09-17 06:43:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(894,'2025-09-17',2,8,3,1,NULL,8.00,'2025-09-17 06:43:08','2025-09-17 06:43:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(895,'2025-09-17',10,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(896,'2025-09-17',9,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(897,'2025-09-17',8,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(898,'2025-09-17',7,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(899,'2025-09-17',6,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(900,'2025-09-17',5,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(901,'2025-09-17',3,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(902,'2025-09-17',1,3,3,1,NULL,8.00,'2025-09-17 06:45:06','2025-09-17 06:45:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(903,'2025-09-18',7,3,3,1,NULL,8.00,'2025-09-18 06:43:40','2025-09-18 06:43:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(904,'2025-09-18',1,3,3,1,NULL,8.00,'2025-09-18 06:43:40','2025-09-18 06:43:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(905,'2025-09-18',10,3,2,1,NULL,8.00,'2025-09-18 06:44:42','2025-09-18 06:44:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(906,'2025-09-18',9,3,2,1,NULL,8.00,'2025-09-18 06:44:42','2025-09-18 06:44:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(907,'2025-09-18',8,3,2,1,NULL,8.00,'2025-09-18 06:44:42','2025-09-18 06:44:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(908,'2025-09-18',6,3,2,1,NULL,8.00,'2025-09-18 06:44:42','2025-09-18 06:44:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(909,'2025-09-18',3,3,2,1,NULL,8.00,'2025-09-18 06:44:42','2025-09-18 06:44:42',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(910,'2025-09-18',5,3,2,1,NULL,6.00,'2025-09-18 06:46:39','2025-09-18 06:46:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(911,'2025-09-18',2,8,3,1,NULL,8.00,'2025-09-18 06:54:48','2025-09-18 06:54:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(912,'2025-09-18',4,8,3,1,NULL,8.00,'2025-09-18 06:54:48','2025-09-18 06:54:48',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(913,'2025-09-19',4,8,3,1,NULL,8.00,'2025-09-19 06:51:40','2025-09-19 06:51:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(914,'2025-09-19',2,8,3,1,NULL,8.00,'2025-09-19 06:51:40','2025-09-19 06:51:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(915,'2025-09-19',10,3,2,1,NULL,8.00,'2025-09-19 06:52:05','2025-09-19 06:52:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(916,'2025-09-19',8,3,2,1,NULL,8.00,'2025-09-19 06:52:05','2025-09-19 06:52:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(917,'2025-09-19',7,3,2,1,NULL,8.00,'2025-09-19 06:52:05','2025-09-19 06:52:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(918,'2025-09-19',6,3,2,1,NULL,8.00,'2025-09-19 06:52:05','2025-09-19 06:52:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(919,'2025-09-19',5,3,2,1,NULL,8.00,'2025-09-19 06:52:05','2025-09-19 06:52:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(920,'2025-09-19',3,3,2,1,NULL,4.00,'2025-09-19 06:52:23','2025-09-19 06:52:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(921,'2025-09-20',4,8,3,1,NULL,8.00,'2025-09-20 05:30:19','2025-09-20 05:30:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(922,'2025-09-20',2,8,3,1,NULL,8.00,'2025-09-20 05:30:19','2025-09-20 05:30:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(923,'2025-09-22',10,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(924,'2025-09-22',9,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(925,'2025-09-22',8,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(926,'2025-09-22',7,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(927,'2025-09-22',5,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(928,'2025-09-22',1,3,2,1,NULL,8.00,'2025-09-22 06:47:25','2025-09-22 06:47:25',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(929,'2025-09-22',4,8,3,1,NULL,8.00,'2025-09-22 06:50:29','2025-09-22 06:50:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(930,'2025-09-22',2,8,3,1,NULL,8.00,'2025-09-22 06:50:29','2025-09-22 06:50:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(931,'2025-09-23',4,8,3,1,NULL,8.00,'2025-09-23 05:46:40','2025-09-23 05:46:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(932,'2025-09-23',2,8,3,1,NULL,8.00,'2025-09-23 05:46:40','2025-09-23 05:46:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(933,'2025-09-24',4,8,3,1,NULL,8.00,'2025-09-25 01:14:58','2025-09-25 01:14:58',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(934,'2025-09-24',2,8,3,1,NULL,8.00,'2025-09-25 01:14:58','2025-09-25 01:14:58',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(935,'2025-09-29',7,14,1,1,NULL,8.00,'2025-09-29 06:36:07','2025-09-29 06:36:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(936,'2025-09-29',1,14,1,1,NULL,8.00,'2025-09-29 06:36:07','2025-09-29 06:36:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(937,'2025-09-29',10,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(938,'2025-09-29',8,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(939,'2025-09-29',6,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(940,'2025-09-29',9,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(941,'2025-09-29',5,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(942,'2025-09-29',4,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(943,'2025-09-29',3,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(944,'2025-09-29',2,3,2,1,NULL,8.00,'2025-09-29 06:36:47','2025-09-29 06:36:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(945,'2025-09-30',10,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(946,'2025-09-30',9,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(947,'2025-09-30',8,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(948,'2025-09-30',6,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(949,'2025-09-30',5,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(950,'2025-09-30',4,3,2,1,NULL,8.00,'2025-09-30 06:52:26','2025-09-30 06:52:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(951,'2025-09-30',3,3,2,1,NULL,8.00,'2025-09-30 06:52:27','2025-09-30 06:52:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(953,'2025-09-30',1,3,2,1,NULL,8.00,'2025-09-30 06:52:27','2025-09-30 06:52:27',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(954,'2025-09-30',2,8,3,1,NULL,8.00,'2025-09-30 06:56:55','2025-09-30 06:56:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(955,'2025-10-02',5,3,2,1,NULL,6.00,'2025-10-02 05:25:58','2025-10-02 05:25:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(956,'2025-10-02',8,3,2,1,NULL,6.00,'2025-10-02 05:25:59','2025-10-02 05:25:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(957,'2025-10-02',10,3,2,1,NULL,8.00,'2025-10-02 06:22:32','2025-10-02 06:22:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(958,'2025-10-02',9,3,2,1,NULL,8.00,'2025-10-02 06:22:32','2025-10-02 06:22:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(959,'2025-10-02',7,3,2,1,NULL,8.00,'2025-10-02 06:22:32','2025-10-02 06:22:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(960,'2025-10-02',6,3,2,1,NULL,8.00,'2025-10-02 06:22:32','2025-10-02 06:22:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(961,'2025-10-02',4,3,2,1,NULL,8.00,'2025-10-02 06:22:33','2025-10-02 06:22:33',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(962,'2025-10-02',2,3,2,1,NULL,8.00,'2025-10-02 06:22:33','2025-10-02 06:22:33',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(963,'2025-10-02',1,3,2,1,NULL,8.00,'2025-10-02 06:22:33','2025-10-02 06:22:33',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(964,'2025-09-01',8,5,3,1,NULL,8.00,'2025-10-10 23:35:07','2025-10-10 23:35:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(965,'2025-09-01',4,5,3,1,NULL,8.00,'2025-10-10 23:35:07','2025-10-10 23:35:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(966,'2025-09-01',2,5,3,1,NULL,8.00,'2025-10-10 23:35:07','2025-10-10 23:35:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(967,'2025-10-13',10,10,3,1,NULL,8.00,'2025-10-13 06:53:05','2025-10-13 06:53:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(968,'2025-10-13',7,10,3,1,NULL,8.00,'2025-10-13 06:53:05','2025-10-13 06:53:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(969,'2025-10-13',2,10,3,1,NULL,8.00,'2025-10-13 06:53:05','2025-10-13 06:53:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(970,'2025-10-13',8,3,2,1,NULL,8.00,'2025-10-13 06:53:30','2025-10-13 06:53:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(971,'2025-10-13',6,3,2,1,NULL,8.00,'2025-10-13 06:53:30','2025-10-13 06:53:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(972,'2025-10-13',3,3,2,1,NULL,8.00,'2025-10-13 06:53:30','2025-10-13 06:53:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(973,'2025-10-13',5,3,3,1,NULL,8.00,'2025-10-13 06:53:53','2025-10-13 06:53:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(974,'2025-10-13',4,3,3,1,NULL,8.00,'2025-10-13 06:53:53','2025-10-13 06:53:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(975,'2025-10-13',9,3,2,1,NULL,4.00,'2025-10-13 06:54:19','2025-10-13 06:54:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(976,'2025-10-13',9,10,3,1,NULL,4.00,'2025-10-13 06:54:19','2025-10-13 06:54:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(977,'2025-10-13',1,3,1,1,NULL,8.00,'2025-10-13 06:54:41','2025-10-13 06:54:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(978,'2025-10-14',10,10,3,1,NULL,8.00,'2025-10-14 06:55:49','2025-10-14 06:55:49',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(979,'2025-10-14',2,10,3,1,NULL,8.00,'2025-10-14 06:55:49','2025-10-14 06:55:49',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(980,'2025-10-14',9,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(981,'2025-10-14',8,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(982,'2025-10-14',7,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(983,'2025-10-14',6,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(984,'2025-10-14',5,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(985,'2025-10-14',4,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(986,'2025-10-14',3,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(987,'2025-10-14',1,3,2,1,NULL,8.00,'2025-10-14 06:56:57','2025-10-14 06:56:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(988,'2025-10-15',8,3,2,1,NULL,8.00,'2025-10-15 06:58:52','2025-10-15 06:58:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(989,'2025-10-15',7,3,2,1,NULL,8.00,'2025-10-15 06:58:52','2025-10-15 06:58:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(990,'2025-10-15',6,3,2,1,NULL,8.00,'2025-10-15 06:58:52','2025-10-15 06:58:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(991,'2025-10-15',5,3,2,1,NULL,8.00,'2025-10-15 06:58:52','2025-10-15 06:58:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(992,'2025-10-15',4,3,2,1,NULL,8.00,'2025-10-15 06:58:53','2025-10-15 06:58:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(993,'2025-10-15',3,3,2,1,NULL,8.00,'2025-10-15 06:58:53','2025-10-15 06:58:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(994,'2025-10-15',1,3,2,1,NULL,8.00,'2025-10-15 06:58:53','2025-10-15 06:58:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(995,'2025-10-15',10,10,3,1,6,8.00,'2025-10-15 06:59:41','2026-02-05 22:40:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(996,'2025-10-15',9,10,3,1,NULL,8.00,'2025-10-15 06:59:41','2025-10-15 06:59:41',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(997,'2025-10-15',2,10,3,1,NULL,4.00,'2025-10-15 07:00:06','2025-10-15 07:00:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(998,'2025-10-16',9,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(999,'2025-10-16',8,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1000,'2025-10-16',7,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1001,'2025-10-16',6,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1002,'2025-10-16',5,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1003,'2025-10-16',4,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1004,'2025-10-16',3,3,2,1,NULL,8.00,'2025-10-16 06:51:59','2025-10-16 06:51:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1005,'2025-10-16',1,3,2,1,NULL,8.00,'2025-10-16 06:52:00','2025-10-16 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1006,'2025-10-20',9,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1007,'2025-10-20',8,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1008,'2025-10-20',7,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1009,'2025-10-20',6,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1010,'2025-10-20',5,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1011,'2025-10-20',4,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1012,'2025-10-20',3,3,2,1,NULL,8.00,'2025-10-20 06:49:45','2025-10-20 06:49:45',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1013,'2025-10-20',1,3,2,1,NULL,8.00,'2025-10-20 06:49:46','2025-10-20 06:49:46',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1014,'2025-10-20',2,10,3,1,NULL,8.00,'2025-10-20 06:50:55','2025-10-20 06:50:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1015,'2025-10-20',10,10,3,1,NULL,8.00,'2025-10-20 06:50:55','2025-10-20 06:50:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1017,'2025-10-21',10,3,3,1,NULL,4.00,'2025-10-21 08:42:41','2025-10-21 08:42:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1019,'2025-10-21',2,3,3,1,NULL,4.00,'2025-10-21 08:42:41','2025-10-21 08:42:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1020,'2025-10-21',8,3,2,1,NULL,10.00,'2025-10-21 08:43:34','2025-10-21 08:43:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1021,'2025-10-21',6,3,2,1,NULL,10.00,'2025-10-21 08:43:34','2025-10-21 08:43:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1022,'2025-10-21',3,3,2,1,NULL,10.00,'2025-10-21 08:43:34','2025-10-21 08:43:34',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1023,'2025-10-21',10,10,3,1,NULL,6.00,'2025-10-21 08:44:26','2025-10-21 08:44:26',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1024,'2025-10-21',2,10,3,1,NULL,6.00,'2025-10-21 08:44:27','2025-10-21 08:44:27',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1025,'2025-10-21',5,3,3,1,NULL,10.00,'2025-10-21 08:45:01','2025-10-21 08:45:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1026,'2025-10-21',4,3,3,1,NULL,10.00,'2025-10-21 08:45:01','2025-10-21 08:45:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1027,'2025-10-21',9,3,3,1,NULL,10.00,'2025-10-21 08:45:28','2025-10-21 08:45:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1028,'2025-10-21',1,3,3,1,NULL,10.00,'2025-10-21 08:45:28','2025-10-21 08:45:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1029,'2025-10-21',7,3,3,1,NULL,10.00,'2025-10-21 08:45:28','2025-10-21 08:45:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1030,'2025-10-22',2,11,2,1,NULL,4.00,'2025-10-22 06:47:36','2025-10-22 06:47:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1031,'2025-10-22',2,10,1,1,NULL,4.00,'2025-10-22 06:47:36','2025-10-22 06:47:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1032,'2025-10-22',10,11,2,1,NULL,4.00,'2025-10-22 06:47:36','2025-10-22 06:47:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1033,'2025-10-22',10,10,1,1,NULL,4.00,'2025-10-22 06:47:36','2025-10-22 06:47:36',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1034,'2025-10-22',9,3,3,1,NULL,8.00,'2025-10-22 06:48:06','2025-10-22 06:48:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1035,'2025-10-22',8,3,3,1,NULL,8.00,'2025-10-22 06:48:06','2025-10-22 06:48:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1036,'2025-10-22',6,3,3,1,NULL,8.00,'2025-10-22 06:48:06','2025-10-22 06:48:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1039,'2025-10-22',7,3,3,1,NULL,8.00,'2025-10-22 06:48:11','2025-10-22 06:48:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1043,'2025-10-22',3,3,3,1,NULL,8.00,'2025-10-22 06:48:11','2025-10-22 06:48:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1044,'2025-10-22',1,3,3,1,NULL,8.00,'2025-10-22 06:48:11','2025-10-22 06:48:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1047,'2025-10-22',5,11,3,1,NULL,8.00,'2025-10-22 06:48:50','2025-10-22 06:48:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1048,'2025-10-22',4,11,3,1,NULL,8.00,'2025-10-22 06:48:50','2025-10-22 06:48:50',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1051,'2025-10-24',9,3,3,1,NULL,8.00,'2025-10-24 06:47:05','2025-10-24 06:47:05',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1052,'2025-10-24',8,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1053,'2025-10-24',7,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1054,'2025-10-24',6,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1055,'2025-10-24',5,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1056,'2025-10-24',3,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1057,'2025-10-24',1,3,3,1,NULL,8.00,'2025-10-24 06:47:06','2025-10-24 06:47:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1058,'2025-10-24',4,3,3,1,NULL,4.00,'2025-10-24 06:48:13','2025-10-24 06:48:13',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1059,'2025-10-25',10,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1060,'2025-10-25',8,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1061,'2025-10-25',6,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1062,'2025-10-25',5,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1063,'2025-10-25',4,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1064,'2025-10-25',3,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1065,'2025-10-25',1,3,3,1,NULL,8.00,'2025-10-25 05:32:47','2025-10-25 05:32:47',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1066,'2025-10-27',9,3,3,1,NULL,8.00,'2025-10-27 06:41:58','2025-10-27 06:41:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1067,'2025-10-27',8,3,3,1,NULL,8.00,'2025-10-27 06:41:58','2025-10-27 06:41:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1070,'2025-10-27',5,3,3,1,NULL,8.00,'2025-10-27 06:41:58','2025-10-27 06:41:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1071,'2025-10-27',4,3,3,1,NULL,8.00,'2025-10-27 06:41:58','2025-10-27 06:41:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1072,'2025-10-27',3,3,3,1,NULL,8.00,'2025-10-27 06:41:58','2025-10-27 06:41:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1074,'2025-10-27',6,3,3,1,NULL,4.00,'2025-10-27 06:43:11','2025-10-27 06:43:11',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1075,'2025-10-27',10,10,3,1,NULL,8.00,'2025-10-28 08:44:41','2025-10-28 08:44:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1076,'2025-10-27',2,10,3,1,NULL,8.00,'2025-10-28 08:44:41','2025-10-28 08:44:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1077,'2025-10-28',10,10,3,1,NULL,10.00,'2025-10-28 08:45:05','2025-10-28 08:45:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1078,'2025-10-28',2,10,3,1,NULL,10.00,'2025-10-28 08:45:05','2025-10-28 08:45:05',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1079,'2025-10-28',7,3,1,2,6,10.00,'2025-10-28 08:47:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1080,'2025-10-28',1,3,1,2,6,10.00,'2025-10-28 08:47:28','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1081,'2025-10-28',9,3,3,1,NULL,10.00,'2025-10-28 08:48:02','2025-10-28 08:48:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1082,'2025-10-28',8,3,3,1,NULL,10.00,'2025-10-28 08:48:02','2025-10-28 08:48:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1083,'2025-10-28',6,3,3,1,NULL,10.00,'2025-10-28 08:48:02','2025-10-28 08:48:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1084,'2025-10-28',5,3,3,1,NULL,10.00,'2025-10-28 08:48:02','2025-10-28 08:48:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1085,'2025-10-28',4,3,3,1,NULL,10.00,'2025-10-28 08:48:03','2025-10-28 08:48:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1086,'2025-10-28',3,3,3,1,NULL,10.00,'2025-10-28 08:48:03','2025-10-28 08:48:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1087,'2025-10-29',8,3,3,1,NULL,8.00,'2025-10-29 06:51:34','2025-10-29 06:51:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1089,'2025-10-29',6,3,3,1,NULL,8.00,'2025-10-29 06:51:34','2025-10-29 06:51:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1090,'2025-10-29',5,3,3,1,NULL,8.00,'2025-10-29 06:51:34','2025-10-29 06:51:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1091,'2025-10-29',4,3,3,1,NULL,8.00,'2025-10-29 06:51:34','2025-10-29 06:51:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1092,'2025-10-29',3,3,3,1,NULL,8.00,'2025-10-29 06:51:34','2025-10-29 06:51:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1094,'2025-10-29',10,10,3,1,NULL,8.00,'2025-10-29 06:51:44','2025-10-29 06:51:44',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1095,'2025-10-29',2,10,3,1,NULL,8.00,'2025-10-29 06:51:44','2025-10-29 06:51:44',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1097,'2025-10-30',8,3,3,1,NULL,8.00,'2025-10-30 08:49:06','2025-10-30 08:49:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1098,'2025-10-30',8,10,3,1,NULL,2.00,'2025-10-30 08:49:06','2025-10-30 08:49:06',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1099,'2025-10-30',9,13,4,1,NULL,0.00,'2025-10-30 08:49:47','2025-10-30 08:49:47',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1100,'2025-10-30',7,3,3,1,NULL,10.00,'2025-10-30 08:50:19','2025-10-30 08:50:19',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1101,'2025-10-30',5,11,3,1,NULL,10.00,'2025-10-30 08:50:43','2025-10-30 08:50:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1102,'2025-10-30',4,11,3,1,NULL,10.00,'2025-10-30 08:50:43','2025-10-30 08:50:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1104,'2025-10-30',2,10,3,1,NULL,10.00,'2025-10-30 08:51:30','2025-10-30 08:51:30',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1105,'2025-10-30',6,3,3,1,NULL,10.00,'2025-10-30 08:52:04','2025-10-30 08:52:04',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1106,'2025-10-30',3,3,3,1,NULL,10.00,'2025-10-30 08:52:04','2025-10-30 08:52:04',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1107,'2025-10-31',9,10,3,2,6,8.00,'2025-10-31 06:53:09','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1108,'2025-10-31',2,10,3,2,6,8.00,'2025-10-31 06:53:09','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1110,'2025-11-01',10,10,3,1,NULL,8.00,'2025-11-01 05:55:09','2025-11-01 05:55:09',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1111,'2025-11-01',9,10,3,1,NULL,8.00,'2025-11-01 05:55:09','2025-11-01 05:55:09',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1112,'2025-11-01',2,10,3,1,NULL,8.00,'2025-11-01 05:55:09','2025-11-01 05:55:09',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1113,'2025-10-30',1,13,1,1,NULL,2.00,'2025-11-03 21:48:30','2025-11-03 21:48:30',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1114,'2025-10-30',9,13,1,1,NULL,8.00,'2025-11-03 21:56:32','2025-11-03 21:56:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1115,'2025-10-01',10,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1116,'2025-10-01',4,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1117,'2025-10-01',3,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1118,'2025-10-01',9,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1119,'2025-10-01',8,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1120,'2025-10-01',2,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1121,'2025-10-01',1,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1122,'2025-10-01',7,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1123,'2025-10-01',6,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1124,'2025-10-01',5,3,2,1,NULL,8.00,'2025-11-04 05:29:09','2025-11-04 05:29:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1125,'2025-10-02',5,13,1,1,NULL,2.00,'2025-11-04 05:30:23','2025-11-04 05:30:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1126,'2025-10-02',8,13,1,1,NULL,2.00,'2025-11-04 05:31:11','2025-11-04 05:31:11',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1127,'2025-10-02',3,13,11,1,NULL,8.00,'2025-11-04 06:09:53','2025-11-04 06:09:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1128,'2025-10-15',2,13,11,1,NULL,4.00,'2025-11-04 06:10:29','2025-11-04 06:10:29',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1130,'2025-10-16',2,10,3,2,6,8.00,'2025-11-04 06:11:29','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1131,'2025-10-16',10,10,3,2,6,8.00,'2025-11-04 06:11:47','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1132,'2025-10-24',10,10,3,2,6,8.00,'2025-11-04 06:12:35','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1133,'2025-10-24',2,10,3,2,6,8.00,'2025-11-04 06:12:51','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1134,'2025-10-24',4,13,11,1,NULL,4.00,'2025-11-04 06:13:01','2025-11-04 06:13:01',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1135,'2025-10-27',6,13,11,1,NULL,4.00,'2025-11-04 06:13:24','2025-11-04 06:13:24',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1136,'2025-10-30',10,10,3,1,NULL,8.00,'2025-11-04 06:15:07','2025-11-04 06:15:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1137,'2025-10-29',9,3,3,1,NULL,8.00,'2025-11-04 06:15:43','2025-11-04 06:15:43',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1138,'2025-10-25',9,13,11,1,NULL,8.00,'2025-11-04 06:17:02','2025-11-04 06:17:02',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1139,'2025-10-25',7,13,11,1,NULL,8.00,'2025-11-04 06:17:15','2025-11-04 06:17:15',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1140,'2025-10-25',2,13,11,1,NULL,8.00,'2025-11-04 06:17:29','2025-11-04 06:17:29',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1141,'2025-10-17',10,10,3,2,6,8.00,'2025-11-04 06:31:47','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1142,'2025-10-17',2,10,3,2,6,8.00,'2025-11-04 06:31:47','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1143,'2025-10-17',9,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1144,'2025-10-17',8,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1145,'2025-10-17',7,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1146,'2025-10-17',6,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1147,'2025-10-17',5,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1148,'2025-10-17',4,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1149,'2025-10-17',3,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1150,'2025-10-17',1,3,3,2,6,8.00,'2025-11-04 06:36:54','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1151,'2025-10-23',2,10,3,2,6,10.00,'2025-11-04 06:37:19','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1152,'2025-10-23',10,10,3,2,6,10.00,'2025-11-04 06:37:19','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1153,'2025-10-23',9,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1154,'2025-10-23',8,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1155,'2025-10-23',7,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1156,'2025-10-23',6,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1157,'2025-10-23',5,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1159,'2025-10-23',3,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1160,'2025-10-23',4,3,3,2,6,10.00,'2025-11-04 06:37:41','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1161,'2025-10-31',10,10,3,2,6,8.00,'2025-11-04 06:38:35','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1164,'2025-10-31',3,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1165,'2025-10-31',4,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1166,'2025-10-31',1,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1167,'2025-10-31',7,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1168,'2025-10-31',5,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1169,'2025-10-31',8,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1170,'2025-10-31',6,3,3,2,6,8.00,'2025-11-04 06:39:13','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1171,'2025-10-23',1,3,3,2,6,8.00,'2025-11-04 06:43:18','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1172,'2025-10-30',1,3,3,1,NULL,5.00,'2025-11-04 22:27:07','2025-11-04 22:27:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1173,'2025-10-30',1,14,1,1,NULL,1.00,'2025-11-04 22:27:22','2025-11-04 22:27:22',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1174,'2025-10-29',1,3,3,1,NULL,7.00,'2025-11-04 22:27:49','2025-11-04 22:27:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1175,'2025-10-29',1,14,1,1,NULL,1.00,'2025-11-04 22:28:03','2025-11-04 22:28:03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1176,'2025-10-29',7,14,1,1,NULL,1.00,'2025-11-04 22:28:22','2025-11-04 22:28:22',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1177,'2025-10-29',7,3,3,1,NULL,7.00,'2025-11-04 22:28:32','2025-11-04 22:28:32',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1178,'2025-10-27',1,3,3,1,NULL,6.00,'2025-11-04 22:29:03','2025-11-04 22:29:03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1179,'2025-10-27',1,14,1,1,NULL,2.00,'2025-11-04 22:29:13','2025-11-04 22:29:13',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1180,'2025-10-27',7,14,1,1,NULL,2.00,'2025-11-04 22:29:34','2025-11-04 22:29:34',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1181,'2025-10-27',7,3,3,1,NULL,6.00,'2025-11-04 22:29:45','2025-11-04 22:29:45',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1192,'2025-11-03',2,10,3,2,6,8.00,'2025-11-05 02:54:31','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1193,'2025-11-03',10,10,3,2,6,8.00,'2025-11-05 02:54:31','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1194,'2025-11-03',9,10,3,2,6,6.00,'2025-11-05 02:55:16','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1195,'2025-11-03',9,3,3,1,NULL,2.00,'2025-11-05 02:55:16','2025-11-05 02:55:16',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1196,'2025-11-03',6,10,3,2,6,6.00,'2025-11-05 02:55:16','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1197,'2025-11-03',6,3,3,1,NULL,2.00,'2025-11-05 02:55:16','2025-11-05 02:55:16',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1199,'2025-11-05',10,10,3,1,NULL,8.00,'2025-11-05 06:54:26','2025-11-05 06:54:26',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1200,'2025-11-05',2,10,3,1,NULL,8.00,'2025-11-05 06:54:26','2025-11-05 06:54:26',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1201,'2025-11-05',9,10,3,1,NULL,4.00,'2025-11-05 06:54:40','2025-11-05 06:54:40',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1202,'2025-11-06',10,10,3,2,6,4.00,'2025-11-06 08:44:42','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1203,'2025-11-06',10,11,3,1,NULL,6.00,'2025-11-06 08:44:42','2025-11-06 08:44:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1204,'2025-11-06',4,11,1,1,NULL,10.00,'2025-11-06 08:45:59','2025-11-06 08:45:59',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1205,'2025-11-06',5,11,1,1,NULL,10.00,'2025-11-06 08:45:59','2025-11-06 08:45:59',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1206,'2025-11-06',2,10,3,2,6,1.00,'2025-11-06 08:46:46','2026-02-05 22:24:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1207,'2025-11-06',2,11,3,1,NULL,9.00,'2025-11-06 08:46:46','2025-11-06 08:46:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1208,'2025-11-06',9,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1209,'2025-11-06',8,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1210,'2025-11-06',7,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1211,'2025-11-06',6,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1212,'2025-11-06',3,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1213,'2025-11-06',1,3,3,1,NULL,10.00,'2025-11-06 08:48:17','2025-11-06 08:48:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1214,'2025-11-07',7,3,3,1,NULL,4.00,'2025-11-07 06:48:19','2025-11-07 06:48:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1217,'2025-11-07',9,3,3,1,NULL,8.00,'2025-11-07 06:48:57','2025-11-07 06:48:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1218,'2025-11-07',8,3,3,1,NULL,8.00,'2025-11-07 06:48:57','2025-11-07 06:48:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1219,'2025-11-07',6,3,3,1,NULL,8.00,'2025-11-07 06:48:57','2025-11-07 06:48:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1222,'2025-11-07',3,3,3,1,NULL,8.00,'2025-11-07 06:48:57','2025-11-07 06:48:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1223,'2025-11-07',1,3,3,1,NULL,8.00,'2025-11-07 06:48:57','2025-11-07 06:48:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1224,'2025-11-07',4,10,3,1,NULL,2.00,'2025-11-07 06:49:20','2025-11-07 06:49:20',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1225,'2025-11-07',4,3,3,1,NULL,6.00,'2025-11-07 06:49:20','2025-11-07 06:49:20',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1226,'2025-11-07',5,10,3,1,NULL,2.00,'2025-11-07 06:49:20','2025-11-07 06:49:20',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1227,'2025-11-07',5,3,3,1,NULL,6.00,'2025-11-07 06:49:20','2025-11-07 06:49:20',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1228,'2025-11-07',2,11,3,1,NULL,8.00,'2025-11-07 06:50:15','2025-11-07 06:50:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1229,'2025-11-07',10,11,3,1,NULL,8.00,'2025-11-07 06:50:55','2025-11-07 06:50:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1230,'2025-11-08',10,11,3,1,NULL,8.00,'2025-11-08 05:53:23','2025-11-08 05:53:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1231,'2025-11-08',2,11,3,1,NULL,8.00,'2025-11-08 05:53:24','2025-11-08 05:53:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1232,'2025-11-09',10,10,3,1,NULL,8.00,'2025-11-09 05:39:09','2025-11-09 05:39:09',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1233,'2025-11-09',2,10,3,1,NULL,8.00,'2025-11-09 05:39:09','2025-11-09 05:39:09',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1234,'2025-11-09',9,3,3,1,NULL,8.00,'2025-11-09 05:40:41','2025-11-09 05:40:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1235,'2025-11-09',8,3,3,1,NULL,8.00,'2025-11-09 05:40:41','2025-11-09 05:40:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1236,'2025-11-09',7,3,3,1,NULL,8.00,'2025-11-09 05:40:41','2025-11-09 05:40:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1237,'2025-11-09',6,3,3,1,NULL,8.00,'2025-11-09 05:40:41','2025-11-09 05:40:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1238,'2025-11-09',3,3,3,1,NULL,8.00,'2025-11-09 05:40:41','2025-11-09 05:40:41',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1239,'2025-11-10',10,10,3,1,NULL,8.00,'2025-11-11 08:28:29','2025-11-11 08:28:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1240,'2025-11-10',4,10,3,1,NULL,8.00,'2025-11-11 08:28:29','2025-11-11 08:28:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1241,'2025-11-10',2,10,3,1,NULL,8.00,'2025-11-11 08:28:29','2025-11-11 08:28:29',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1242,'2025-11-11',10,11,3,1,NULL,8.00,'2025-11-11 08:29:03','2025-11-11 08:29:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1243,'2025-11-11',9,11,3,1,NULL,8.00,'2025-11-11 08:29:03','2025-11-11 08:29:03',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1244,'2025-11-11',4,10,3,1,NULL,4.00,'2025-11-11 08:29:45','2025-11-11 08:29:45',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1245,'2025-11-11',4,11,3,1,NULL,6.00,'2025-11-11 08:29:45','2025-11-11 08:29:45',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1246,'2025-11-11',2,10,3,1,NULL,10.00,'2025-11-11 08:30:08','2025-11-11 08:30:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1247,'2025-11-11',10,11,3,1,NULL,2.00,'2025-11-11 08:30:35','2025-11-11 08:30:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1248,'2025-11-11',9,11,3,1,NULL,2.00,'2025-11-11 08:30:35','2025-11-11 08:30:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1249,'2025-11-11',7,3,3,1,NULL,8.00,'2025-11-11 08:45:23','2025-11-11 08:45:23',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1251,'2025-11-11',8,3,3,1,NULL,10.00,'2025-11-11 08:46:26','2025-11-11 08:46:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1252,'2025-11-11',6,3,3,1,NULL,10.00,'2025-11-11 08:46:26','2025-11-11 08:46:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1253,'2025-11-11',5,3,3,1,NULL,10.00,'2025-11-11 08:46:26','2025-11-11 08:46:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1254,'2025-11-11',3,3,3,1,NULL,10.00,'2025-11-11 08:46:26','2025-11-11 08:46:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1255,'2025-11-11',1,3,3,1,NULL,10.00,'2025-11-11 08:46:26','2025-11-11 08:46:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1256,'2025-11-12',10,11,3,1,NULL,8.00,'2025-11-12 06:47:21','2025-11-12 06:47:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1257,'2025-11-12',2,11,3,1,NULL,8.00,'2025-11-12 06:47:21','2025-11-12 06:47:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1258,'2025-11-12',9,11,3,1,NULL,8.00,'2025-11-12 06:47:21','2025-11-12 06:47:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1259,'2025-11-12',8,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1260,'2025-11-12',7,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1261,'2025-11-12',6,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1262,'2025-11-12',5,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1263,'2025-11-12',3,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1264,'2025-11-12',1,3,3,1,NULL,8.00,'2025-11-12 06:52:00','2025-11-12 06:52:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1265,'2025-11-13',10,11,3,1,NULL,10.00,'2025-11-13 08:46:09','2025-11-13 08:46:09',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1266,'2025-11-13',4,11,3,1,NULL,10.00,'2025-11-13 08:46:09','2025-11-13 08:46:09',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1267,'2025-11-13',2,11,3,1,NULL,4.00,'2025-11-13 08:46:32','2025-11-13 08:46:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1268,'2025-11-13',9,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1269,'2025-11-13',8,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1270,'2025-11-13',7,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1271,'2025-11-13',6,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1272,'2025-11-13',5,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1273,'2025-11-13',3,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1274,'2025-11-13',1,3,3,1,NULL,10.00,'2025-11-13 08:47:12','2025-11-13 08:47:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1275,'2025-11-14',10,11,3,1,NULL,6.00,'2025-11-14 07:00:16','2025-11-14 07:00:16',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1276,'2025-11-14',10,11,3,2,6,2.00,'2025-11-14 07:00:16','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1277,'2025-11-14',9,11,3,1,NULL,6.00,'2025-11-14 07:00:16','2025-11-14 07:00:16',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1278,'2025-11-14',9,11,3,2,6,2.00,'2025-11-14 07:00:16','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1279,'2025-11-14',2,11,3,1,NULL,6.00,'2025-11-14 07:00:17','2025-11-14 07:00:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1280,'2025-11-14',2,11,3,2,6,2.00,'2025-11-14 07:00:17','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1281,'2025-11-14',8,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1282,'2025-11-14',8,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1283,'2025-11-14',7,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1284,'2025-11-14',7,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1285,'2025-11-14',5,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1286,'2025-11-14',5,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1287,'2025-11-14',6,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1288,'2025-11-14',6,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1289,'2025-11-14',4,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1290,'2025-11-14',4,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1291,'2025-11-14',3,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1292,'2025-11-14',3,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1293,'2025-11-14',1,3,3,1,NULL,3.00,'2025-11-14 07:00:51','2025-11-14 07:00:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1294,'2025-11-14',1,3,3,2,6,5.00,'2025-11-14 07:00:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1295,'2025-11-15',10,11,3,1,NULL,8.00,'2025-11-15 05:46:53','2025-11-15 05:46:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1296,'2025-11-15',9,11,3,1,NULL,8.00,'2025-11-15 05:46:53','2025-11-15 05:46:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1297,'2025-11-15',2,11,3,1,NULL,8.00,'2025-11-15 05:46:53','2025-11-15 05:46:53',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1298,'2025-11-17',10,11,3,1,NULL,8.00,'2025-11-18 08:45:07','2025-11-18 08:45:07',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1300,'2025-11-17',2,11,3,1,NULL,8.00,'2025-11-18 08:45:08','2025-11-18 08:45:08',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1301,'2025-11-18',4,11,3,1,NULL,6.00,'2025-11-18 08:46:01','2025-11-18 08:46:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1302,'2025-11-18',4,10,3,1,NULL,4.00,'2025-11-18 08:46:01','2025-11-18 08:46:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1303,'2025-11-18',2,11,3,1,NULL,6.00,'2025-11-18 08:46:01','2025-11-18 08:46:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1304,'2025-11-18',2,10,3,1,NULL,4.00,'2025-11-18 08:46:01','2025-11-18 08:46:01',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1305,'2025-11-18',10,11,3,1,NULL,10.00,'2025-11-18 08:46:23','2025-11-18 08:46:23',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1306,'2025-11-24',2,11,3,1,NULL,8.00,'2025-11-25 08:47:55','2025-11-25 08:47:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1307,'2025-11-24',4,11,3,1,NULL,8.00,'2025-11-25 08:47:55','2025-11-25 08:47:55',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1308,'2025-11-22',4,11,3,1,NULL,8.00,'2025-11-25 08:48:18','2025-11-25 08:48:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1309,'2025-11-22',2,11,3,1,NULL,8.00,'2025-11-25 08:48:18','2025-11-25 08:48:18',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1310,'2025-11-21',4,11,3,1,NULL,8.00,'2025-11-25 08:48:39','2025-11-25 08:48:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1311,'2025-11-21',2,11,3,1,NULL,8.00,'2025-11-25 08:48:39','2025-11-25 08:48:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1312,'2025-11-25',4,11,3,1,NULL,10.00,'2025-11-25 08:49:02','2025-11-25 08:49:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1313,'2025-11-25',2,11,3,1,NULL,10.00,'2025-11-25 08:49:02','2025-11-25 08:49:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1314,'2025-11-26',10,11,3,1,NULL,8.00,'2025-11-26 06:51:13','2025-11-26 06:51:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1315,'2025-11-26',4,11,3,1,NULL,8.00,'2025-11-26 06:51:13','2025-11-26 06:51:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1316,'2025-11-26',2,11,3,1,NULL,8.00,'2025-11-26 06:51:13','2025-11-26 06:51:13',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1317,'2025-11-27',10,11,3,1,NULL,10.00,'2025-11-27 07:34:37','2025-11-27 07:34:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1318,'2025-11-27',4,11,3,1,NULL,10.00,'2025-11-27 07:34:37','2025-11-27 07:34:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1319,'2025-11-27',2,11,3,1,NULL,10.00,'2025-11-27 07:34:37','2025-11-27 07:34:37',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1320,'2025-11-27',9,11,3,1,NULL,6.00,'2025-11-27 07:35:24','2025-11-27 07:35:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1321,'2025-11-27',9,3,3,1,NULL,4.00,'2025-11-27 07:35:24','2025-11-27 07:35:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1322,'2025-11-28',10,11,3,1,NULL,8.00,'2025-11-28 06:47:35','2025-11-28 06:47:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1323,'2025-11-28',9,11,3,1,NULL,8.00,'2025-11-28 06:47:35','2025-11-28 06:47:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1324,'2025-11-28',2,11,3,1,NULL,8.00,'2025-11-28 06:47:35','2025-11-28 06:47:35',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1325,'2025-11-28',4,13,11,1,NULL,1.00,'2025-11-28 06:48:24','2025-11-28 06:48:24',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1326,'2025-11-29',10,11,3,1,NULL,8.00,'2025-11-29 05:12:39','2025-11-29 05:12:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1327,'2025-11-29',4,11,3,1,NULL,8.00,'2025-11-29 05:12:39','2025-11-29 05:12:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1328,'2025-11-29',2,11,3,1,NULL,8.00,'2025-11-29 05:12:39','2025-11-29 05:12:39',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1329,'2025-11-29',1,3,3,1,NULL,4.00,'2025-11-29 05:17:02','2025-11-29 05:17:02',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1331,'2025-11-29',8,3,3,1,NULL,8.00,'2025-11-29 05:17:46','2025-11-29 05:17:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1332,'2025-11-29',6,3,3,1,NULL,8.00,'2025-11-29 05:17:46','2025-11-29 05:17:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1333,'2025-11-29',5,3,3,1,NULL,8.00,'2025-11-29 05:17:46','2025-11-29 05:17:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1334,'2025-11-29',3,3,3,1,NULL,8.00,'2025-11-29 05:17:46','2025-11-29 05:17:46',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1335,'2025-12-01',10,11,3,1,NULL,8.00,'2025-12-01 06:55:15','2025-12-01 06:55:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1336,'2025-12-01',9,11,3,1,NULL,8.00,'2025-12-01 06:55:15','2025-12-01 06:55:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1337,'2025-12-01',4,11,3,1,NULL,8.00,'2025-12-01 06:55:15','2025-12-01 06:55:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1338,'2025-12-01',2,11,3,1,NULL,8.00,'2025-12-01 06:55:15','2025-12-01 06:55:15',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1339,'2025-11-01',8,3,3,1,NULL,4.00,'2025-12-02 02:07:51','2025-12-02 02:07:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1340,'2025-11-01',8,3,3,2,6,4.00,'2025-12-02 02:07:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1341,'2025-11-01',7,3,3,1,NULL,4.00,'2025-12-02 02:07:52','2025-12-02 02:07:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1342,'2025-11-01',7,3,3,2,6,4.00,'2025-12-02 02:07:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1345,'2025-11-01',5,3,3,1,NULL,4.00,'2025-12-02 02:07:52','2025-12-02 02:07:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1346,'2025-11-01',5,3,3,2,6,4.00,'2025-12-02 02:07:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1347,'2025-11-01',4,3,3,1,NULL,4.00,'2025-12-02 02:07:52','2025-12-02 02:07:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1348,'2025-11-01',4,3,3,2,6,4.00,'2025-12-02 02:07:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1349,'2025-11-01',3,3,3,1,NULL,4.00,'2025-12-02 02:07:52','2025-12-02 02:07:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1350,'2025-11-01',3,3,3,2,6,4.00,'2025-12-02 02:07:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1353,'2025-11-03',8,3,3,1,NULL,4.00,'2025-12-02 02:09:19','2025-12-02 02:09:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1354,'2025-11-03',8,3,3,2,6,4.00,'2025-12-02 02:09:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1356,'2025-11-03',5,3,3,1,NULL,4.00,'2025-12-02 02:09:19','2025-12-02 02:09:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1357,'2025-11-03',5,3,3,2,6,4.00,'2025-12-02 02:09:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1359,'2025-11-03',4,3,3,1,NULL,4.00,'2025-12-02 02:09:19','2025-12-02 02:09:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1360,'2025-11-03',4,3,3,2,6,4.00,'2025-12-02 02:09:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1362,'2025-11-03',3,3,3,1,NULL,4.00,'2025-12-02 02:09:19','2025-12-02 02:09:19',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1363,'2025-11-03',3,3,3,2,6,4.00,'2025-12-02 02:09:19','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1369,'2025-11-03',7,13,1,1,NULL,8.00,'2025-12-02 02:11:57','2025-12-02 02:11:57',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1370,'2025-11-04',10,10,3,1,NULL,6.00,'2025-12-02 02:17:03','2025-12-02 02:17:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1371,'2025-11-04',10,10,3,2,6,4.00,'2025-12-02 02:17:03','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1372,'2025-11-04',9,10,3,1,NULL,6.00,'2025-12-02 02:17:03','2025-12-02 02:17:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1373,'2025-11-04',9,10,3,2,6,4.00,'2025-12-02 02:17:03','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1374,'2025-11-04',2,10,3,1,NULL,6.00,'2025-12-02 02:17:03','2025-12-02 02:17:03',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1375,'2025-11-04',2,10,3,2,6,4.00,'2025-12-02 02:17:03','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1376,'2025-11-04',8,3,3,1,NULL,8.00,'2025-12-02 02:19:20','2025-12-02 02:19:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1377,'2025-11-04',6,3,3,2,6,4.00,'2025-12-02 02:19:51','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1378,'2025-11-04',6,3,3,1,NULL,4.00,'2025-12-02 02:19:51','2025-12-02 02:19:51',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1379,'2025-11-24',1,3,3,1,NULL,4.00,'2025-12-02 02:43:58','2025-12-02 02:43:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1380,'2025-11-24',1,3,3,2,6,4.00,'2025-12-02 02:43:58','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1381,'2025-11-24',7,3,3,1,NULL,4.00,'2025-12-02 02:43:58','2025-12-02 02:43:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1382,'2025-11-24',7,3,3,2,6,4.00,'2025-12-02 02:43:58','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1383,'2025-11-25',3,3,3,1,NULL,8.00,'2025-12-02 04:17:39','2025-12-02 04:17:39',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1384,'2025-11-25',3,3,3,2,6,1.00,'2025-12-02 04:17:39','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1385,'2025-11-25',3,3,3,2,14,1.00,'2025-12-02 04:17:39','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1386,'2025-11-25',6,3,3,1,NULL,8.00,'2025-12-02 04:17:39','2025-12-02 04:17:39',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1387,'2025-11-25',6,3,3,2,6,1.00,'2025-12-02 04:17:39','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1388,'2025-11-25',6,3,3,2,14,1.00,'2025-12-02 04:17:39','2026-02-05 22:24:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1389,'2025-12-03',10,11,3,1,NULL,8.00,'2025-12-03 06:52:28','2025-12-03 06:52:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1390,'2025-12-03',9,11,3,1,NULL,8.00,'2025-12-03 06:52:28','2025-12-03 06:52:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1391,'2025-12-03',4,11,3,1,NULL,8.00,'2025-12-03 06:52:28','2025-12-03 06:52:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1392,'2025-12-03',2,11,3,1,NULL,8.00,'2025-12-03 06:52:28','2025-12-03 06:52:28',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1393,'2025-12-04',10,11,3,1,NULL,8.00,'2025-12-04 06:45:00','2025-12-04 06:45:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1394,'2025-12-04',9,11,3,1,NULL,8.00,'2025-12-04 06:45:00','2025-12-04 06:45:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1395,'2025-12-04',4,11,3,1,NULL,8.00,'2025-12-04 06:45:00','2025-12-04 06:45:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1396,'2025-12-04',2,11,3,1,NULL,8.00,'2025-12-04 06:45:00','2025-12-04 06:45:00',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1397,'2025-11-01',6,3,3,1,NULL,4.00,'2025-12-05 00:34:20','2025-12-05 00:34:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1398,'2025-11-01',6,3,3,2,6,4.00,'2025-12-05 00:34:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1399,'2025-11-01',1,3,3,1,NULL,4.00,'2025-12-05 00:34:20','2025-12-05 00:34:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1400,'2025-11-01',1,3,3,2,6,4.00,'2025-12-05 00:34:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1401,'2025-11-03',1,3,3,1,NULL,8.00,'2025-12-05 00:35:16','2025-12-05 00:35:16',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1402,'2025-11-04',6,3,3,1,NULL,2.00,'2025-12-05 01:02:21','2025-12-05 01:02:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1403,'2025-11-04',8,3,3,1,NULL,2.00,'2025-12-05 01:02:21','2025-12-05 01:02:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1404,'2025-11-04',7,3,3,1,NULL,6.00,'2025-12-05 01:03:12','2025-12-05 01:03:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1405,'2025-11-04',7,3,3,2,6,4.00,'2025-12-05 01:03:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1406,'2025-11-04',5,3,3,1,NULL,6.00,'2025-12-05 01:03:12','2025-12-05 01:03:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1407,'2025-11-04',5,3,3,2,6,4.00,'2025-12-05 01:03:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1408,'2025-11-04',4,3,3,1,NULL,6.00,'2025-12-05 01:03:12','2025-12-05 01:03:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1409,'2025-11-04',4,3,3,2,6,4.00,'2025-12-05 01:03:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1410,'2025-11-04',3,3,3,1,NULL,6.00,'2025-12-05 01:03:12','2025-12-05 01:03:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1411,'2025-11-04',3,3,3,2,6,4.00,'2025-12-05 01:03:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1412,'2025-11-04',1,3,3,1,NULL,6.00,'2025-12-05 01:03:12','2025-12-05 01:03:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1413,'2025-11-04',1,3,3,2,6,4.00,'2025-12-05 01:03:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1414,'2025-11-05',8,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1415,'2025-11-05',8,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1416,'2025-11-05',8,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1417,'2025-11-05',7,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1418,'2025-11-05',7,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1419,'2025-11-05',7,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1420,'2025-11-05',6,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1421,'2025-11-05',6,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1422,'2025-11-05',6,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1423,'2025-11-05',4,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1424,'2025-11-05',4,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1425,'2025-11-05',4,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1426,'2025-11-05',3,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1427,'2025-11-05',3,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1428,'2025-11-05',3,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1429,'2025-11-05',1,3,3,1,NULL,5.00,'2025-12-05 01:04:39','2025-12-05 01:04:39',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1430,'2025-11-05',1,3,3,2,1,1.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1431,'2025-11-05',1,3,3,2,6,2.00,'2025-12-05 01:04:39','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1434,'2025-11-08',9,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1435,'2025-11-08',9,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1436,'2025-11-08',8,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1437,'2025-11-08',8,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1438,'2025-11-08',7,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1439,'2025-11-08',7,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1440,'2025-11-08',6,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1441,'2025-11-08',6,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1442,'2025-11-08',5,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1443,'2025-11-08',5,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1444,'2025-11-08',3,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1445,'2025-11-08',3,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1446,'2025-11-08',1,3,3,1,NULL,5.00,'2025-12-05 01:06:12','2025-12-05 01:06:12',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1447,'2025-11-08',1,3,3,2,6,3.00,'2025-12-05 01:06:12','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1448,'2025-11-10',8,3,3,1,NULL,4.00,'2025-12-05 01:06:58','2025-12-05 01:06:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1449,'2025-11-10',8,13,11,1,NULL,4.00,'2025-12-05 01:06:58','2025-12-05 01:06:58',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1450,'2025-11-10',9,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1451,'2025-11-10',9,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1452,'2025-11-10',7,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1453,'2025-11-10',7,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1454,'2025-11-10',6,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1455,'2025-11-10',6,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1456,'2025-11-10',5,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1457,'2025-11-10',5,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1458,'2025-11-10',3,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1459,'2025-11-10',3,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1460,'2025-11-10',1,3,3,1,NULL,4.00,'2025-12-05 01:07:29','2025-12-05 01:07:29',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1461,'2025-11-10',1,3,3,2,6,4.00,'2025-12-05 01:07:29','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1462,'2025-11-12',4,3,3,1,NULL,8.00,'2025-12-05 01:08:07','2025-12-05 01:08:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1463,'2025-11-15',8,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1464,'2025-11-15',8,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1465,'2025-11-15',7,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1466,'2025-11-15',7,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1467,'2025-11-15',6,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1468,'2025-11-15',6,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1469,'2025-11-15',5,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1470,'2025-11-15',5,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1471,'2025-11-15',4,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1472,'2025-11-15',4,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1473,'2025-11-15',3,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1474,'2025-11-15',3,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1475,'2025-11-15',1,3,3,1,NULL,4.00,'2025-12-05 01:08:52','2025-12-05 01:08:52',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1476,'2025-11-15',1,3,3,2,6,4.00,'2025-12-05 01:08:52','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1477,'2025-11-17',9,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1478,'2025-11-17',9,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1479,'2025-11-17',8,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1480,'2025-11-17',8,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1481,'2025-11-17',6,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1482,'2025-11-17',6,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1483,'2025-11-17',5,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1484,'2025-11-17',5,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1485,'2025-11-17',3,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1486,'2025-11-17',3,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1487,'2025-11-17',1,3,3,1,NULL,5.00,'2025-12-05 01:09:53','2025-12-05 01:09:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1488,'2025-11-17',1,3,3,2,6,3.00,'2025-12-05 01:09:53','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1489,'2025-11-18',8,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1490,'2025-11-18',8,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1491,'2025-11-18',9,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1492,'2025-11-18',9,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1493,'2025-11-18',7,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1494,'2025-11-18',7,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1495,'2025-11-18',6,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1496,'2025-11-18',6,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1497,'2025-11-18',5,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1498,'2025-11-18',5,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1499,'2025-11-18',3,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1500,'2025-11-18',3,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1501,'2025-11-18',1,3,3,1,NULL,6.00,'2025-12-05 01:11:02','2025-12-05 01:11:02',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1502,'2025-11-18',1,3,3,2,6,4.00,'2025-12-05 01:11:02','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1503,'2025-11-19',2,11,3,1,NULL,4.00,'2025-12-05 01:12:15','2025-12-05 01:12:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1504,'2025-11-19',2,11,3,2,6,4.00,'2025-12-05 01:12:15','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1505,'2025-11-19',10,11,3,1,NULL,4.00,'2025-12-05 01:12:15','2025-12-05 01:12:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1506,'2025-11-19',10,11,3,2,6,4.00,'2025-12-05 01:12:15','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1507,'2025-11-19',9,11,3,1,NULL,4.00,'2025-12-05 01:12:15','2025-12-05 01:12:15',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1508,'2025-11-19',9,11,3,2,6,4.00,'2025-12-05 01:12:15','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1509,'2025-11-19',8,3,3,1,NULL,5.00,'2025-12-05 01:12:48','2025-12-05 01:12:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1510,'2025-11-19',8,3,3,2,6,3.00,'2025-12-05 01:12:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1511,'2025-11-19',7,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1512,'2025-11-19',7,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1513,'2025-11-19',6,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1514,'2025-11-19',6,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1515,'2025-11-19',5,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1516,'2025-11-19',5,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1517,'2025-11-19',4,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1518,'2025-11-19',4,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1519,'2025-11-19',3,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1520,'2025-11-19',3,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1521,'2025-11-19',1,3,3,1,NULL,5.00,'2025-12-05 01:12:49','2025-12-05 01:12:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1522,'2025-11-19',1,3,3,2,6,3.00,'2025-12-05 01:12:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1523,'2025-11-20',10,11,3,1,NULL,5.00,'2025-12-05 01:13:18','2025-12-05 01:13:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1524,'2025-11-20',10,11,3,2,6,3.00,'2025-12-05 01:13:18','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1525,'2025-11-20',9,11,3,1,NULL,5.00,'2025-12-05 01:13:18','2025-12-05 01:13:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1526,'2025-11-20',9,11,3,2,6,3.00,'2025-12-05 01:13:18','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1527,'2025-11-20',2,11,3,1,NULL,5.00,'2025-12-05 01:13:18','2025-12-05 01:13:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1528,'2025-11-20',2,11,3,2,6,3.00,'2025-12-05 01:13:18','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1529,'2025-11-20',4,11,3,1,NULL,5.00,'2025-12-05 01:13:18','2025-12-05 01:13:18',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1530,'2025-11-20',4,11,3,2,6,3.00,'2025-12-05 01:13:18','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1531,'2025-11-20',8,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1532,'2025-11-20',8,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1533,'2025-11-20',7,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1534,'2025-11-20',7,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1535,'2025-11-20',6,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1536,'2025-11-20',6,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1537,'2025-11-20',5,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1538,'2025-11-20',5,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1539,'2025-11-20',3,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1540,'2025-11-20',3,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1541,'2025-11-20',1,3,3,1,NULL,5.00,'2025-12-05 01:13:48','2025-12-05 01:13:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1542,'2025-11-20',1,3,3,2,6,3.00,'2025-12-05 01:13:48','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1543,'2025-11-21',9,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1544,'2025-11-21',9,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1545,'2025-11-21',8,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1546,'2025-11-21',8,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1547,'2025-11-21',6,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1548,'2025-11-21',6,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1549,'2025-11-21',7,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1550,'2025-11-21',7,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1551,'2025-11-21',5,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1552,'2025-11-21',5,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1553,'2025-11-21',3,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1554,'2025-11-21',3,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1555,'2025-11-21',1,3,3,1,NULL,4.00,'2025-12-05 01:14:50','2025-12-05 01:14:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1556,'2025-11-21',1,3,3,2,14,4.00,'2025-12-05 01:14:50','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1557,'2025-11-22',9,3,3,1,NULL,8.00,'2025-12-05 01:15:21','2025-12-05 01:15:21',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1558,'2025-11-22',8,3,3,1,NULL,8.00,'2025-12-05 01:15:22','2025-12-05 01:15:22',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1559,'2025-11-22',6,3,3,1,NULL,8.00,'2025-12-05 01:15:22','2025-12-05 01:15:22',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1560,'2025-11-22',3,3,3,1,NULL,8.00,'2025-12-05 01:15:22','2025-12-05 01:15:22',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1561,'2025-11-22',1,3,3,1,NULL,8.00,'2025-12-05 01:15:22','2025-12-05 01:15:22',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1562,'2025-11-24',9,11,3,1,NULL,4.00,'2025-12-05 01:21:20','2025-12-05 01:21:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1563,'2025-11-24',9,11,3,2,6,4.00,'2025-12-05 01:21:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1564,'2025-11-24',8,11,3,1,NULL,4.00,'2025-12-05 01:21:20','2025-12-05 01:21:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1565,'2025-11-24',8,11,3,2,6,4.00,'2025-12-05 01:21:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1566,'2025-11-24',6,11,3,1,NULL,4.00,'2025-12-05 01:21:20','2025-12-05 01:21:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1567,'2025-11-24',6,11,3,2,6,4.00,'2025-12-05 01:21:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1568,'2025-11-24',5,11,3,1,NULL,4.00,'2025-12-05 01:21:20','2025-12-05 01:21:20',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1569,'2025-11-24',5,11,3,2,6,4.00,'2025-12-05 01:21:20','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1570,'2025-11-25',1,13,11,1,NULL,2.00,'2025-12-05 01:21:59','2025-12-05 01:21:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1571,'2025-11-25',1,3,3,1,NULL,6.00,'2025-12-05 01:21:59','2025-12-05 01:21:59',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1572,'2025-11-25',9,3,3,1,NULL,4.00,'2025-12-05 01:22:49','2025-12-05 01:22:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1573,'2025-11-25',9,3,3,2,14,2.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1574,'2025-11-25',9,3,3,2,6,4.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1575,'2025-11-25',8,3,3,1,NULL,4.00,'2025-12-05 01:22:49','2025-12-05 01:22:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1576,'2025-11-25',8,3,3,2,14,2.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1577,'2025-11-25',8,3,3,2,6,4.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1578,'2025-11-25',5,3,3,1,NULL,4.00,'2025-12-05 01:22:49','2025-12-05 01:22:49',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1579,'2025-11-25',5,3,3,2,14,2.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1580,'2025-11-25',5,3,3,2,6,4.00,'2025-12-05 01:22:49','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1581,'2025-11-26',9,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1582,'2025-11-26',9,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1583,'2025-11-26',8,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1584,'2025-11-26',8,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1585,'2025-11-26',6,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1586,'2025-11-26',6,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1587,'2025-11-26',5,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1588,'2025-11-26',5,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1589,'2025-11-26',3,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1590,'2025-11-26',3,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1591,'2025-11-26',1,3,3,1,NULL,4.00,'2025-12-05 01:23:32','2025-12-05 01:23:32',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1592,'2025-11-26',1,3,3,2,1,4.00,'2025-12-05 01:23:32','2026-02-05 22:24:28',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1593,'2025-11-27',1,3,3,1,NULL,8.00,'2025-12-05 01:24:00','2025-12-05 01:24:00',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1594,'2025-11-27',8,3,3,1,NULL,10.00,'2025-12-05 01:24:26','2025-12-05 01:24:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1595,'2025-11-27',6,3,3,1,NULL,10.00,'2025-12-05 01:24:26','2025-12-05 01:24:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1596,'2025-11-27',5,3,3,1,NULL,10.00,'2025-12-05 01:24:26','2025-12-05 01:24:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1597,'2025-11-27',3,3,3,1,NULL,10.00,'2025-12-05 01:24:26','2025-12-05 01:24:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1598,'2025-11-28',4,13,11,1,NULL,8.00,'2025-12-05 01:24:50','2025-12-05 01:24:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1599,'2025-11-28',6,13,11,1,NULL,8.00,'2025-12-05 01:24:50','2025-12-05 01:24:50',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1600,'2025-11-28',8,3,3,1,NULL,8.00,'2025-12-05 01:25:17','2025-12-05 01:25:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1601,'2025-11-28',5,3,3,1,NULL,8.00,'2025-12-05 01:25:17','2025-12-05 01:25:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1602,'2025-11-28',3,3,3,1,NULL,8.00,'2025-12-05 01:25:17','2025-12-05 01:25:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1603,'2025-11-28',1,3,3,1,NULL,8.00,'2025-12-05 01:25:17','2025-12-05 01:25:17',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1604,'2025-11-05',5,3,3,1,NULL,8.00,'2025-12-05 01:26:26','2025-12-05 01:26:26',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1605,'2025-11-13',2,13,1,1,NULL,4.00,'2025-12-05 01:28:08','2025-12-05 01:28:08',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1606,'2025-11-17',7,13,1,1,NULL,8.00,'2025-12-05 01:28:40','2025-12-05 01:28:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1607,'2025-11-17',4,11,3,1,NULL,6.00,'2025-12-05 01:30:38','2025-12-05 01:30:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1608,'2025-11-17',4,13,11,1,NULL,2.00,'2025-12-05 01:30:38','2025-12-05 01:30:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1609,'2025-11-21',10,13,1,1,NULL,8.00,'2025-12-05 01:31:07','2025-12-05 01:31:07',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1610,'2025-11-24',10,13,1,1,NULL,8.00,'2025-12-05 01:31:34','2025-12-05 01:31:34',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1611,'2025-11-24',3,13,1,1,NULL,8.00,'2025-12-05 01:31:40','2025-12-05 01:31:40',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1612,'2025-11-25',10,13,1,1,NULL,8.00,'2025-12-05 01:31:53','2025-12-05 01:31:53',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1613,'2025-12-05',10,11,3,1,NULL,8.00,'2025-12-05 06:53:42','2025-12-05 06:53:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1614,'2025-12-05',9,11,3,1,NULL,8.00,'2025-12-05 06:53:42','2025-12-05 06:53:42',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1615,'2025-12-05',4,11,3,1,NULL,8.00,'2025-12-05 06:53:43','2025-12-05 06:53:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1616,'2025-12-05',2,11,3,1,NULL,8.00,'2025-12-05 06:53:43','2025-12-05 06:53:43',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1617,'2025-12-06',10,11,3,1,NULL,8.00,'2025-12-06 05:46:14','2025-12-06 05:46:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1618,'2025-12-06',9,11,3,1,NULL,8.00,'2025-12-06 05:46:14','2025-12-06 05:46:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1619,'2025-12-06',4,11,3,1,NULL,8.00,'2025-12-06 05:46:14','2025-12-06 05:46:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1620,'2025-12-06',2,11,3,1,NULL,8.00,'2025-12-06 05:46:14','2025-12-06 05:46:14',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1621,'2025-12-08',1,11,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1622,'2025-12-08',1,3,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1623,'2025-12-08',5,11,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1624,'2025-12-08',5,3,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1625,'2025-12-08',3,11,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1626,'2025-12-08',3,3,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1627,'2025-12-08',10,11,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1628,'2025-12-08',10,3,3,1,NULL,4.00,'2025-12-09 07:33:48','2025-12-09 07:33:48',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1629,'2025-12-08',9,3,3,1,NULL,8.00,'2025-12-09 07:34:05','2025-12-09 07:34:05',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1630,'2025-12-08',8,3,3,1,NULL,8.00,'2025-12-09 07:34:05','2025-12-09 07:34:05',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1631,'2025-12-08',2,3,3,1,NULL,8.00,'2025-12-09 07:34:05','2025-12-09 07:34:05',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1632,'2025-12-08',4,3,3,1,NULL,8.00,'2025-12-09 07:34:06','2025-12-09 07:34:06',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1634,'2025-12-08',6,3,3,1,NULL,8.00,'2025-12-09 07:34:38','2025-12-09 07:34:38',3,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1635,'2025-12-10',4,3,3,1,NULL,8.00,'2025-12-10 06:56:21','2025-12-10 06:56:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1636,'2025-12-10',2,3,3,1,NULL,8.00,'2025-12-10 06:56:21','2025-12-10 06:56:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1637,'2025-12-10',8,3,3,1,NULL,8.00,'2025-12-10 06:56:21','2025-12-10 06:56:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1638,'2025-12-10',6,3,3,1,NULL,8.00,'2025-12-10 06:56:21','2025-12-10 06:56:21',5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1642,'2026-01-02',10,13,21,1,NULL,8.00,'2026-02-04 22:47:59','2026-02-04 22:47:59',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1643,'2026-01-02',9,13,20,1,NULL,8.00,'2026-02-04 22:50:13','2026-02-04 22:50:13',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1644,'2026-01-05',11,15,3,1,42,8.00,'2026-02-04 22:52:41','2026-02-05 22:40:21',1,1,NULL,NULL,NULL,NULL,NULL,NULL,4.00), +(1645,'2026-01-06',11,15,3,1,NULL,8.00,'2026-02-04 22:53:13','2026-02-04 22:53:13',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1646,'2026-01-07',11,15,3,1,NULL,8.00,'2026-02-04 22:53:35','2026-02-04 22:53:35',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1647,'2026-01-08',11,15,3,1,NULL,8.00,'2026-02-04 22:54:03','2026-02-04 22:54:03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1648,'2026-01-09',11,15,3,1,NULL,8.00,'2026-02-04 22:54:24','2026-02-04 22:54:24',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1649,'2026-01-12',11,15,3,1,NULL,8.00,'2026-02-04 22:55:52','2026-02-04 22:55:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1650,'2026-01-13',11,15,3,1,NULL,8.00,'2026-02-04 22:56:20','2026-02-04 22:56:20',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1651,'2026-01-14',11,15,3,1,NULL,8.00,'2026-02-04 22:56:50','2026-02-04 22:56:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1652,'2026-01-15',11,15,3,1,NULL,8.00,'2026-02-04 22:57:09','2026-02-04 22:57:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1653,'2026-01-16',11,15,3,1,NULL,8.00,'2026-02-04 22:57:29','2026-02-04 22:57:29',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1654,'2026-01-19',11,15,14,1,NULL,8.00,'2026-02-04 22:58:20','2026-02-04 22:58:20',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1655,'2026-01-20',11,15,14,1,NULL,8.00,'2026-02-04 22:58:49','2026-02-04 22:58:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1656,'2026-01-21',11,15,14,1,NULL,8.00,'2026-02-04 23:00:27','2026-02-04 23:00:27',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1657,'2026-01-22',11,15,3,1,NULL,8.00,'2026-02-04 23:00:50','2026-02-04 23:00:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1658,'2026-01-23',11,15,15,1,NULL,8.00,'2026-02-04 23:01:12','2026-02-04 23:01:12',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1659,'2026-01-26',11,15,15,1,NULL,8.00,'2026-02-04 23:01:35','2026-02-04 23:01:35',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1660,'2026-01-27',11,15,15,1,NULL,8.00,'2026-02-04 23:02:09','2026-02-04 23:02:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1661,'2026-01-29',11,15,15,1,NULL,8.00,'2026-02-04 23:02:29','2026-02-04 23:02:29',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1662,'2026-01-28',11,15,15,1,NULL,8.00,'2026-02-04 23:02:58','2026-02-04 23:02:58',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1663,'2026-01-30',11,15,15,1,NULL,8.00,'2026-02-04 23:03:16','2026-02-04 23:03:16',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1664,'2026-01-02',6,13,21,1,NULL,8.00,'2026-02-04 23:03:55','2026-02-04 23:03:55',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1665,'2026-01-05',6,15,16,1,NULL,8.00,'2026-02-04 23:04:43','2026-02-04 23:04:43',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1666,'2026-01-06',6,15,16,1,NULL,8.00,'2026-02-04 23:05:15','2026-02-04 23:05:15',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1667,'2026-01-07',6,15,16,1,NULL,8.00,'2026-02-04 23:05:59','2026-02-04 23:05:59',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1668,'2026-01-08',6,15,16,1,NULL,8.00,'2026-02-04 23:06:37','2026-02-04 23:06:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1669,'2026-01-09',6,15,16,1,NULL,8.00,'2026-02-04 23:06:56','2026-02-04 23:06:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1670,'2026-01-12',6,17,8,1,NULL,8.00,'2026-02-04 23:07:38','2026-02-04 23:07:38',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1671,'2026-01-13',6,17,8,1,NULL,8.00,'2026-02-04 23:08:01','2026-02-04 23:08:01',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1672,'2026-01-14',6,17,8,1,NULL,8.00,'2026-02-04 23:08:22','2026-02-04 23:08:22',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1673,'2026-01-15',6,17,8,1,NULL,8.00,'2026-02-04 23:08:56','2026-02-04 23:08:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1674,'2026-01-16',6,15,8,1,NULL,2.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1675,'2026-01-16',6,13,24,1,NULL,6.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1676,'2026-01-19',6,17,8,2,43,2.00,'2026-02-04 23:22:54','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2.00), +(1677,'2026-01-19',6,17,10,1,NULL,6.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1678,'2026-01-20',6,17,10,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1679,'2026-01-21',6,17,8,2,44,8.00,'2026-02-04 23:22:54','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1680,'2026-01-22',6,17,10,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1681,'2026-01-23',6,17,10,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1682,'2026-01-26',6,15,15,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1683,'2026-01-27',6,15,15,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1684,'2026-01-28',6,15,15,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1685,'2026-01-29',6,15,15,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1686,'2026-01-30',6,15,15,1,NULL,8.00,'2026-02-04 23:22:54','2026-02-04 23:22:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1687,'2026-01-02',3,13,21,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1688,'2026-01-05',3,13,21,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1689,'2026-01-06',3,15,2,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1690,'2026-01-07',3,15,2,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1691,'2026-01-08',3,15,2,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1692,'2026-01-09',3,15,2,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1693,'2026-01-12',3,15,16,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1694,'2026-01-13',3,15,16,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1695,'2026-01-14',3,15,16,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1696,'2026-01-15',3,15,16,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1697,'2026-01-16',3,15,16,1,NULL,6.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1698,'2026-01-16',3,13,23,1,NULL,2.00,'2026-02-04 23:34:05','2026-02-05 02:05:51',1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1699,'2026-01-19',3,17,10,1,NULL,8.00,'2026-02-04 23:34:05','2026-02-04 23:34:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1700,'2026-01-20',3,17,10,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1701,'2026-01-21',3,17,10,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1702,'2026-01-22',3,17,10,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1703,'2026-01-23',3,17,10,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1704,'2026-01-26',3,15,17,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1705,'2026-01-27',3,15,17,1,NULL,8.00,'2026-02-04 23:36:37','2026-02-04 23:36:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1706,'2026-01-28',3,15,17,2,15,8.00,'2026-02-04 23:36:37','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4.00), +(1707,'2026-01-29',3,15,17,2,15,8.00,'2026-02-04 23:36:37','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1708,'2026-01-30',3,15,17,2,15,8.00,'2026-02-04 23:36:37','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1709,'2026-01-05',10,15,2,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1710,'2026-01-06',10,15,2,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1711,'2026-01-07',10,15,2,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1712,'2026-01-08',10,15,2,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1713,'2026-01-09',10,15,3,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1714,'2026-01-12',10,15,3,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1715,'2026-01-13',10,15,3,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1716,'2026-01-14',10,15,3,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1717,'2026-01-15',10,15,3,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1718,'2026-01-16',10,17,8,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1719,'2026-01-19',10,17,8,2,43,8.00,'2026-02-04 23:44:26','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1720,'2026-01-20',10,17,10,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1721,'2026-01-21',10,17,10,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1722,'2026-01-22',10,17,10,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1723,'2026-01-22',10,17,10,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1724,'2026-01-23',10,13,21,1,NULL,8.00,'2026-02-04 23:44:26','2026-02-04 23:44:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1725,'2026-01-26',10,16,25,1,NULL,8.00,'2026-02-04 23:47:27','2026-02-04 23:47:27',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1726,'2026-01-27',10,16,25,1,NULL,8.00,'2026-02-04 23:47:27','2026-02-04 23:47:27',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1727,'2026-01-28',10,16,25,1,NULL,8.00,'2026-02-04 23:50:51','2026-02-04 23:50:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1728,'2026-01-29',10,16,25,1,NULL,8.00,'2026-02-04 23:50:51','2026-02-04 23:50:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1729,'2026-01-30',10,16,25,1,NULL,8.00,'2026-02-04 23:50:51','2026-02-04 23:50:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1730,'2026-01-05',9,13,20,1,NULL,8.00,'2026-02-04 23:54:55','2026-02-04 23:54:55',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1731,'2026-01-06',9,13,20,1,NULL,8.00,'2026-02-04 23:54:56','2026-02-04 23:54:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1732,'2026-01-07',9,13,20,1,NULL,8.00,'2026-02-04 23:54:57','2026-02-04 23:54:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1733,'2026-01-08',9,13,20,1,NULL,8.00,'2026-02-04 23:54:58','2026-02-04 23:54:58',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1734,'2026-01-09',9,13,20,1,NULL,8.00,'2026-02-04 23:54:59','2026-02-04 23:54:59',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1735,'2026-01-12',9,13,20,1,NULL,8.00,'2026-02-04 23:55:00','2026-02-04 23:55:00',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1736,'2026-01-13',9,13,20,1,NULL,8.00,'2026-02-04 23:55:01','2026-02-04 23:55:01',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1737,'2026-01-14',9,13,20,1,NULL,8.00,'2026-02-04 23:55:02','2026-02-04 23:55:02',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1738,'2026-01-15',9,13,20,1,NULL,8.00,'2026-02-04 23:55:03','2026-02-04 23:55:03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1739,'2026-01-16',9,13,20,1,NULL,8.00,'2026-02-04 23:55:04','2026-02-04 23:55:04',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1740,'2026-01-19',9,13,20,1,NULL,8.00,'2026-02-04 23:55:05','2026-02-04 23:55:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1741,'2026-01-20',9,15,15,1,NULL,8.00,'2026-02-04 23:56:33','2026-02-04 23:56:33',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1742,'2026-01-21',9,15,15,1,NULL,8.00,'2026-02-04 23:56:34','2026-02-04 23:56:34',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1743,'2026-01-22',9,15,15,1,NULL,8.00,'2026-02-04 23:56:35','2026-02-04 23:56:35',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1744,'2026-01-23',9,15,15,1,NULL,8.00,'2026-02-04 23:56:36','2026-02-04 23:56:36',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1745,'2026-01-26',9,16,25,1,NULL,8.00,'2026-02-04 23:59:49','2026-02-04 23:59:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1746,'2026-01-27',9,16,25,1,NULL,8.00,'2026-02-04 23:59:50','2026-02-04 23:59:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1747,'2026-01-28',9,16,25,1,NULL,8.00,'2026-02-04 23:59:51','2026-02-04 23:59:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1748,'2026-01-29',9,16,25,1,NULL,8.00,'2026-02-04 23:59:52','2026-02-04 23:59:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1749,'2026-01-30',9,16,25,1,NULL,8.00,'2026-02-04 23:59:53','2026-02-04 23:59:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1750,'2026-01-02',1,13,21,1,NULL,8.00,'2026-02-05 00:26:36','2026-02-05 00:26:36',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1751,'2026-01-05',1,15,2,1,NULL,8.00,'2026-02-05 00:26:37','2026-02-05 00:26:37',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1752,'2026-01-06',1,15,2,1,NULL,8.00,'2026-02-05 00:26:38','2026-02-05 00:26:38',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1753,'2026-01-07',1,15,2,1,NULL,6.00,'2026-02-05 00:26:39','2026-02-05 00:26:39',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1754,'2026-01-07',1,13,23,1,NULL,2.00,'2026-02-05 00:26:40','2026-02-05 00:26:40',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1755,'2026-01-08',1,15,2,1,NULL,8.00,'2026-02-05 00:26:41','2026-02-05 00:26:41',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1756,'2026-01-09',1,15,2,1,NULL,8.00,'2026-02-05 00:26:42','2026-02-05 00:26:42',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1757,'2026-01-12',1,15,2,1,NULL,8.00,'2026-02-05 00:26:43','2026-02-05 00:26:43',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1758,'2026-01-13',1,15,2,1,NULL,8.00,'2026-02-05 00:26:44','2026-02-05 00:26:44',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1759,'2026-01-14',1,15,2,1,NULL,8.00,'2026-02-05 00:26:45','2026-02-05 00:26:45',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1760,'2026-01-15',1,16,25,1,NULL,8.00,'2026-02-05 00:26:46','2026-02-05 00:26:46',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1761,'2026-01-16',1,16,25,1,NULL,8.00,'2026-02-05 00:26:47','2026-02-05 00:26:47',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1762,'2026-01-19',1,13,21,1,NULL,8.00,'2026-02-05 00:26:48','2026-02-05 00:26:48',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1763,'2026-01-20',1,17,10,1,NULL,8.00,'2026-02-05 00:26:49','2026-02-05 00:26:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1764,'2026-01-21',1,17,10,1,NULL,8.00,'2026-02-05 00:26:50','2026-02-05 00:26:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1765,'2026-01-22',1,15,17,1,NULL,8.00,'2026-02-05 00:26:51','2026-02-05 00:26:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1766,'2026-01-23',1,15,17,1,NULL,8.00,'2026-02-05 00:26:52','2026-02-05 00:26:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1767,'2026-01-26',1,16,25,1,NULL,8.00,'2026-02-05 00:26:53','2026-02-05 00:26:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1768,'2026-01-27',1,16,25,1,NULL,8.00,'2026-02-05 00:26:54','2026-02-05 00:26:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1769,'2026-01-28',1,16,25,1,NULL,8.00,'2026-02-05 00:26:55','2026-02-05 00:26:55',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1770,'2026-01-29',1,16,25,1,NULL,8.00,'2026-02-05 00:26:56','2026-02-05 00:26:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1771,'2026-01-30',1,16,25,1,NULL,8.00,'2026-02-05 00:26:57','2026-02-05 00:26:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1772,'2026-01-02',2,13,21,1,NULL,8.00,'2026-02-05 00:36:41','2026-02-05 00:36:41',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1773,'2026-01-05',2,15,2,1,NULL,8.00,'2026-02-05 00:36:42','2026-02-05 00:36:42',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1774,'2026-01-06',2,15,2,1,NULL,8.00,'2026-02-05 00:36:43','2026-02-05 00:36:43',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1775,'2026-01-07',2,15,2,1,NULL,8.00,'2026-02-05 00:36:44','2026-02-05 00:36:44',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1776,'2026-01-08',2,14,19,1,NULL,8.00,'2026-02-05 00:36:45','2026-02-05 00:36:45',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1777,'2026-01-09',2,14,19,1,NULL,8.00,'2026-02-05 00:36:46','2026-02-05 00:36:46',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1778,'2026-01-12',2,14,19,1,NULL,8.00,'2026-02-05 00:36:47','2026-02-05 00:36:47',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1779,'2026-01-13',2,14,19,1,NULL,4.00,'2026-02-05 00:36:48','2026-02-05 00:36:48',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1780,'2026-01-13',2,13,22,1,NULL,4.00,'2026-02-05 00:36:49','2026-02-05 00:36:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1781,'2026-01-14',2,15,16,1,NULL,8.00,'2026-02-05 00:36:50','2026-02-05 00:36:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1782,'2026-01-15',2,15,16,1,NULL,8.00,'2026-02-05 00:36:51','2026-02-05 00:36:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1783,'2026-01-16',2,15,16,1,NULL,8.00,'2026-02-05 00:36:52','2026-02-05 00:36:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1784,'2026-01-19',2,15,16,1,NULL,8.00,'2026-02-05 00:36:53','2026-02-05 00:46:20',1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1785,'2026-01-20',2,15,14,1,NULL,8.00,'2026-02-05 00:36:54','2026-02-05 00:36:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1786,'2026-01-21',2,15,14,1,NULL,4.00,'2026-02-05 00:36:55','2026-02-05 00:46:43',1,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1787,'2026-01-22',2,15,14,1,NULL,8.00,'2026-02-05 00:36:56','2026-02-05 00:36:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1788,'2026-01-23',2,15,14,1,NULL,8.00,'2026-02-05 00:36:57','2026-02-05 00:36:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1789,'2026-01-26',2,15,14,1,NULL,8.00,'2026-02-05 00:36:58','2026-02-05 00:36:58',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1790,'2026-01-27',2,15,17,1,NULL,8.00,'2026-02-05 00:36:59','2026-02-05 00:36:59',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1791,'2026-01-28',2,15,17,1,NULL,8.00,'2026-02-05 00:37:00','2026-02-05 00:37:00',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1792,'2026-01-29',2,15,17,2,15,8.00,'2026-02-05 00:37:01','2026-02-05 22:40:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1793,'2026-01-30',2,13,21,1,15,8.00,'2026-02-05 00:37:02','2026-02-05 22:40:21',1,1,NULL,NULL,NULL,NULL,NULL,NULL,8.00), +(1794,'2026-01-21',2,13,22,1,NULL,4.00,'2026-02-05 00:47:10','2026-02-05 00:47:10',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1795,'2026-01-02',4,13,21,1,NULL,8.00,'2026-02-05 00:53:38','2026-02-05 00:53:38',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1796,'2026-01-05',4,15,1,1,NULL,8.00,'2026-02-05 00:53:39','2026-02-05 00:53:39',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1797,'2026-01-06',4,15,1,1,NULL,8.00,'2026-02-05 00:53:40','2026-02-05 00:53:40',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1798,'2026-01-07',4,15,1,1,NULL,8.00,'2026-02-05 00:53:41','2026-02-05 00:53:41',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1799,'2026-01-08',4,15,1,1,NULL,8.00,'2026-02-05 00:53:42','2026-02-05 00:53:42',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1800,'2026-01-09',4,15,2,1,NULL,8.00,'2026-02-05 00:53:43','2026-02-05 00:53:43',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1801,'2026-01-12',4,15,13,1,NULL,8.00,'2026-02-05 00:53:44','2026-02-05 00:53:44',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1802,'2026-01-13',4,15,13,1,NULL,8.00,'2026-02-05 00:53:45','2026-02-05 00:53:45',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1803,'2026-01-14',4,15,13,1,NULL,8.00,'2026-02-05 00:53:46','2026-02-05 00:53:46',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1804,'2026-01-15',4,15,13,1,NULL,8.00,'2026-02-05 00:53:47','2026-02-05 00:53:47',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1805,'2026-01-16',4,13,21,1,NULL,8.00,'2026-02-05 00:53:48','2026-02-05 00:53:48',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1806,'2026-01-19',4,14,19,1,NULL,8.00,'2026-02-05 00:53:49','2026-02-05 00:53:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1807,'2026-01-20',4,14,19,1,NULL,8.00,'2026-02-05 00:53:50','2026-02-05 00:53:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1808,'2026-01-21',4,14,19,1,NULL,8.00,'2026-02-05 00:53:51','2026-02-05 00:53:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1809,'2026-01-22',4,15,16,1,NULL,8.00,'2026-02-05 00:53:52','2026-02-05 00:53:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1810,'2026-01-23',4,15,16,1,NULL,8.00,'2026-02-05 00:53:53','2026-02-05 00:53:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1811,'2026-01-26',4,14,10,1,NULL,8.00,'2026-02-05 00:56:53','2026-02-05 00:56:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1812,'2026-01-27',4,14,10,1,NULL,8.00,'2026-02-05 00:56:54','2026-02-05 00:56:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1813,'2026-01-28',4,14,10,1,NULL,8.00,'2026-02-05 00:56:55','2026-02-05 00:56:55',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1814,'2026-01-29',4,14,10,1,NULL,8.00,'2026-02-05 00:56:56','2026-02-05 00:56:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1815,'2026-01-30',4,13,21,1,NULL,8.00,'2026-02-05 00:56:57','2026-02-05 00:56:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1816,'2026-01-02',5,13,21,1,NULL,8.00,'2026-02-05 01:05:46','2026-02-05 01:05:46',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1817,'2026-01-23',5,13,21,1,NULL,8.00,'2026-02-05 01:06:01','2026-02-05 01:06:01',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1818,'2026-01-05',5,15,1,1,NULL,8.00,'2026-02-05 01:07:09','2026-02-05 01:07:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1819,'2026-01-06',5,15,1,1,NULL,8.00,'2026-02-05 01:07:11','2026-02-05 01:07:11',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1820,'2026-01-07',5,15,2,1,NULL,8.00,'2026-02-05 01:07:12','2026-02-05 01:07:12',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1821,'2026-01-08',5,15,2,1,NULL,8.00,'2026-02-05 01:07:13','2026-02-05 01:07:13',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1822,'2026-01-09',5,15,2,1,NULL,8.00,'2026-02-05 01:07:14','2026-02-05 01:07:14',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1823,'2026-01-12',5,17,26,1,NULL,8.00,'2026-02-05 01:07:15','2026-02-05 01:07:15',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1824,'2026-01-13',5,17,26,1,NULL,8.00,'2026-02-05 01:07:16','2026-02-05 01:07:16',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1825,'2026-01-14',5,17,26,1,NULL,8.00,'2026-02-05 01:07:17','2026-02-05 01:07:17',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1826,'2026-01-15',5,17,26,1,NULL,8.00,'2026-02-05 01:07:18','2026-02-05 01:07:18',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1827,'2026-01-16',5,17,26,1,NULL,8.00,'2026-02-05 01:07:19','2026-02-05 01:07:19',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1828,'2026-01-19',5,15,16,1,NULL,8.00,'2026-02-05 01:07:20','2026-02-05 01:07:20',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1829,'2026-01-20',5,15,16,1,NULL,8.00,'2026-02-05 01:07:21','2026-02-05 01:07:21',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1830,'2026-01-21',5,15,16,1,NULL,8.00,'2026-02-05 01:07:22','2026-02-05 01:07:22',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1831,'2026-01-22',5,15,16,1,NULL,8.00,'2026-02-05 01:07:23','2026-02-05 01:07:23',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1832,'2026-01-26',5,16,25,1,NULL,8.00,'2026-02-05 01:07:24','2026-02-05 01:07:24',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1833,'2026-01-27',5,16,25,1,NULL,8.00,'2026-02-05 01:07:25','2026-02-05 01:07:25',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1834,'2026-01-28',5,16,25,1,NULL,8.00,'2026-02-05 01:07:26','2026-02-05 01:07:26',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1835,'2026-01-29',5,16,25,1,NULL,8.00,'2026-02-05 01:07:27','2026-02-05 01:07:27',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1836,'2026-01-30',5,16,25,1,NULL,8.00,'2026-02-05 01:07:28','2026-02-05 01:07:28',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1837,'2026-01-02',8,13,21,1,NULL,8.00,'2026-02-05 01:14:48','2026-02-05 01:14:48',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1838,'2026-01-05',8,15,3,1,NULL,8.00,'2026-02-05 01:14:49','2026-02-05 01:14:49',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1839,'2026-01-06',8,15,3,1,NULL,8.00,'2026-02-05 01:14:50','2026-02-05 01:14:50',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1840,'2026-01-07',8,15,3,1,NULL,8.00,'2026-02-05 01:14:51','2026-02-05 01:14:51',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1841,'2026-01-08',8,15,3,1,NULL,8.00,'2026-02-05 01:14:52','2026-02-05 01:14:52',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1842,'2026-01-09',8,15,3,1,NULL,8.00,'2026-02-05 01:14:53','2026-02-05 01:14:53',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1843,'2026-01-12',8,15,4,1,NULL,8.00,'2026-02-05 01:14:54','2026-02-05 01:14:54',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1844,'2026-01-13',8,15,4,1,NULL,8.00,'2026-02-05 01:14:55','2026-02-05 01:14:55',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1845,'2026-01-14',8,15,4,1,NULL,8.00,'2026-02-05 01:14:56','2026-02-05 01:14:56',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1846,'2026-01-15',8,15,4,1,NULL,8.00,'2026-02-05 01:14:57','2026-02-05 01:14:57',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1847,'2026-01-16',8,15,4,1,NULL,8.00,'2026-02-05 01:14:58','2026-02-05 01:14:58',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1848,'2026-01-19',8,15,4,1,NULL,8.00,'2026-02-05 01:14:59','2026-02-05 01:14:59',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1849,'2026-01-20',8,15,4,1,NULL,8.00,'2026-02-05 01:15:00','2026-02-05 01:15:00',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1850,'2026-01-21',8,14,10,1,NULL,8.00,'2026-02-05 01:15:01','2026-02-05 01:15:01',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1851,'2026-01-22',8,14,10,1,NULL,8.00,'2026-02-05 01:15:02','2026-02-05 01:15:02',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1852,'2026-01-23',8,14,10,1,NULL,8.00,'2026-02-05 01:15:03','2026-02-05 01:15:03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1853,'2026-01-26',8,15,14,1,NULL,8.00,'2026-02-05 01:15:04','2026-02-05 01:15:04',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1854,'2026-01-27',8,15,14,1,NULL,8.00,'2026-02-05 01:15:05','2026-02-05 01:15:05',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1855,'2026-01-28',8,15,14,1,NULL,8.00,'2026-02-05 01:15:06','2026-02-05 01:15:06',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1856,'2026-01-29',8,15,14,1,NULL,8.00,'2026-02-05 01:15:07','2026-02-05 01:15:07',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(1857,'2026-01-30',8,15,14,1,NULL,8.00,'2026-02-05 01:15:09','2026-02-05 01:15:09',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +/*!40000 ALTER TABLE `daily_work_reports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `daily_worker_summary` +-- + +DROP TABLE IF EXISTS `daily_worker_summary`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `daily_worker_summary` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `report_date` date NOT NULL, + `worker_id` int(11) NOT NULL, + `total_hours` decimal(4,2) NOT NULL DEFAULT 8.00 COMMENT '총 근무시간', + `work_status` enum('normal','annual_leave','half_leave','overtime') DEFAULT 'normal' COMMENT '근무 상태', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `unique_worker_date` (`worker_id`,`report_date`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `daily_worker_summary` +-- + +LOCK TABLES `daily_worker_summary` WRITE; +/*!40000 ALTER TABLE `daily_worker_summary` DISABLE KEYS */; +/*!40000 ALTER TABLE `daily_worker_summary` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `departments` +-- + +DROP TABLE IF EXISTS `departments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `departments` ( + `department_id` int(11) NOT NULL AUTO_INCREMENT, + `department_name` varchar(100) NOT NULL, + `parent_id` int(11) DEFAULT NULL, + `description` text DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `display_order` int(11) DEFAULT 0, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`department_id`), + KEY `parent_id` (`parent_id`), + CONSTRAINT `departments_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `departments` (`department_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `departments` +-- + +LOCK TABLES `departments` WRITE; +/*!40000 ALTER TABLE `departments` DISABLE KEYS */; +INSERT INTO `departments` VALUES +(1,'생산팀',NULL,'현장 생산 작업 담당',1,1,'2026-02-03 05:03:37','2026-02-03 05:03:37'); +/*!40000 ALTER TABLE `departments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `equipment_external_logs` +-- + +DROP TABLE IF EXISTS `equipment_external_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `equipment_external_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `equipment_id` int(10) unsigned NOT NULL COMMENT '설비 ID', + `log_type` enum('export','return') NOT NULL COMMENT '반출/반입', + `export_date` date DEFAULT NULL COMMENT '반출일', + `expected_return_date` date DEFAULT NULL COMMENT '반입 예정일', + `actual_return_date` date DEFAULT NULL COMMENT '실제 반입일', + `destination` varchar(200) DEFAULT NULL COMMENT '반출처 (수리업체명 등)', + `reason` text DEFAULT NULL COMMENT '반출 사유', + `notes` text DEFAULT NULL COMMENT '비고', + `exported_by` int(11) DEFAULT NULL COMMENT '반출 담당자', + `returned_by` int(11) DEFAULT NULL COMMENT '반입 담당자', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`log_id`), + KEY `fk_eel_exported_by` (`exported_by`), + KEY `fk_eel_returned_by` (`returned_by`), + KEY `idx_eel_equipment_id` (`equipment_id`), + KEY `idx_eel_log_type` (`log_type`), + KEY `idx_eel_export_date` (`export_date`), + CONSTRAINT `fk_eel_equipment` FOREIGN KEY (`equipment_id`) REFERENCES `equipments` (`equipment_id`) ON DELETE CASCADE, + CONSTRAINT `fk_eel_exported_by` FOREIGN KEY (`exported_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL, + CONSTRAINT `fk_eel_returned_by` FOREIGN KEY (`returned_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `equipment_external_logs` +-- + +LOCK TABLES `equipment_external_logs` WRITE; +/*!40000 ALTER TABLE `equipment_external_logs` DISABLE KEYS */; +/*!40000 ALTER TABLE `equipment_external_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `equipment_move_logs` +-- + +DROP TABLE IF EXISTS `equipment_move_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `equipment_move_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `equipment_id` int(10) unsigned NOT NULL COMMENT '설비 ID', + `move_type` enum('temporary','return') NOT NULL COMMENT '임시이동/복귀', + `from_workplace_id` int(10) unsigned DEFAULT NULL COMMENT '이전 작업장', + `to_workplace_id` int(10) unsigned DEFAULT NULL COMMENT '이동 작업장', + `from_x_percent` decimal(5,2) DEFAULT NULL COMMENT '이전 X좌표', + `from_y_percent` decimal(5,2) DEFAULT NULL COMMENT '이전 Y좌표', + `to_x_percent` decimal(5,2) DEFAULT NULL COMMENT '이동 X좌표', + `to_y_percent` decimal(5,2) DEFAULT NULL COMMENT '이동 Y좌표', + `reason` text DEFAULT NULL COMMENT '이동 사유', + `moved_by` int(11) DEFAULT NULL COMMENT '이동 처리자', + `moved_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`log_id`), + KEY `fk_eml_from_workplace` (`from_workplace_id`), + KEY `fk_eml_to_workplace` (`to_workplace_id`), + KEY `fk_eml_moved_by` (`moved_by`), + KEY `idx_eml_equipment_id` (`equipment_id`), + KEY `idx_eml_move_type` (`move_type`), + CONSTRAINT `fk_eml_equipment` FOREIGN KEY (`equipment_id`) REFERENCES `equipments` (`equipment_id`) ON DELETE CASCADE, + CONSTRAINT `fk_eml_from_workplace` FOREIGN KEY (`from_workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL, + CONSTRAINT `fk_eml_moved_by` FOREIGN KEY (`moved_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL, + CONSTRAINT `fk_eml_to_workplace` FOREIGN KEY (`to_workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `equipment_move_logs` +-- + +LOCK TABLES `equipment_move_logs` WRITE; +/*!40000 ALTER TABLE `equipment_move_logs` DISABLE KEYS */; +INSERT INTO `equipment_move_logs` VALUES +(1,68,'temporary',2,10,7.82,8.53,NULL,NULL,NULL,1,'2026-02-04 04:34:45'), +(2,68,'temporary',2,10,7.82,8.53,NULL,NULL,NULL,1,'2026-02-04 04:44:36'); +/*!40000 ALTER TABLE `equipment_move_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `equipment_photos` +-- + +DROP TABLE IF EXISTS `equipment_photos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `equipment_photos` ( + `photo_id` int(11) NOT NULL AUTO_INCREMENT, + `equipment_id` int(10) unsigned NOT NULL, + `photo_path` varchar(255) NOT NULL COMMENT '이미지 경로', + `description` varchar(200) DEFAULT NULL COMMENT '사진 설명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `uploaded_by` int(11) DEFAULT NULL COMMENT '업로드한 사용자 ID', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`photo_id`), + KEY `fk_eq_photos_user` (`uploaded_by`), + KEY `idx_eq_photos_equipment_id` (`equipment_id`), + CONSTRAINT `fk_eq_photos_equipment` FOREIGN KEY (`equipment_id`) REFERENCES `equipments` (`equipment_id`) ON DELETE CASCADE, + CONSTRAINT `fk_eq_photos_user` FOREIGN KEY (`uploaded_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `equipment_photos` +-- + +LOCK TABLES `equipment_photos` WRITE; +/*!40000 ALTER TABLE `equipment_photos` DISABLE KEYS */; +/*!40000 ALTER TABLE `equipment_photos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `equipments` +-- + +DROP TABLE IF EXISTS `equipments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `equipments` ( + `equipment_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '설비 ID', + `equipment_code` varchar(50) NOT NULL COMMENT '설비 코드 (예: CNC-01, LATHE-A)', + `equipment_name` varchar(100) NOT NULL COMMENT '설비명', + `equipment_type` varchar(50) DEFAULT NULL COMMENT '설비 유형 (예: CNC, 선반, 밀링 등)', + `model_name` varchar(100) DEFAULT NULL COMMENT '모델명', + `manufacturer` varchar(100) DEFAULT NULL COMMENT '제조사', + `supplier` varchar(100) DEFAULT NULL COMMENT '구입처', + `purchase_price` decimal(15,0) DEFAULT NULL COMMENT '구입가격', + `installation_date` date DEFAULT NULL COMMENT '설치일', + `serial_number` varchar(100) DEFAULT NULL COMMENT '시리얼 번호', + `specifications` text DEFAULT NULL COMMENT '사양 정보 (JSON 형태로 저장 가능)', + `status` enum('active','maintenance','repair_needed','inactive','external','repair_external') DEFAULT 'active' COMMENT '설비 상태', + `notes` text DEFAULT NULL COMMENT '비고', + `workplace_id` int(10) unsigned DEFAULT NULL COMMENT '연결된 작업장 ID', + `map_x_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 X 위치 (%)', + `map_y_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 Y 위치 (%)', + `map_width_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 영역 너비 (%)', + `map_height_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 영역 높이 (%)', + `current_workplace_id` int(10) unsigned DEFAULT NULL COMMENT '현재 임시 위치 - 작업장 ID', + `current_map_x_percent` decimal(5,2) DEFAULT NULL COMMENT '현재 위치 X%', + `current_map_y_percent` decimal(5,2) DEFAULT NULL COMMENT '현재 위치 Y%', + `current_map_width_percent` decimal(5,2) DEFAULT NULL COMMENT '현재 위치 너비%', + `current_map_height_percent` decimal(5,2) DEFAULT NULL COMMENT '현재 위치 높이%', + `is_temporarily_moved` tinyint(1) DEFAULT 0 COMMENT '임시 이동 상태', + `moved_at` datetime DEFAULT NULL COMMENT '이동 일시', + `moved_by` int(11) DEFAULT NULL COMMENT '이동 처리자', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '생성일시', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '수정일시', + PRIMARY KEY (`equipment_id`), + UNIQUE KEY `equipments_equipment_code_unique` (`equipment_code`), + KEY `equipments_workplace_id_index` (`workplace_id`), + KEY `equipments_equipment_type_index` (`equipment_type`), + KEY `equipments_status_index` (`status`), + KEY `fk_eq_current_workplace` (`current_workplace_id`), + CONSTRAINT `equipments_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL, + CONSTRAINT `fk_eq_current_workplace` FOREIGN KEY (`current_workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `equipments` +-- + +LOCK TABLES `equipments` WRITE; +/*!40000 ALTER TABLE `equipments` DISABLE KEYS */; +INSERT INTO `equipments` VALUES +(1,'TKP-001','AIR COMPRESSOR',NULL,'AR10E','경원','지티씨',NULL,'2016-06-01','K603023Y','7.5KW(10HP)','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(2,'TKP-002','TURN TABLE',NULL,'YCT-200T','유체기계','형진종합공구',3600000,'2016-05-30',NULL,'220V','active',NULL,2,9.93,79.22,3.41,7.29,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:57:25'), +(3,'TKP-003','BAND SAW(中)',NULL,'CY300W','유림싸이겐','형진종합공구',4800000,'2016-05-30','20150943','1500W*380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(4,'TKP-004','BAND SAW(小)',NULL,'XB-180WA','렉스','형진종합공구',2700000,'2016-05-30',NULL,'180(VICE)','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(5,'TKP-005','BAND SAW(小)',NULL,'XB-180WA','렉스',NULL,NULL,'2019-05-30',NULL,'180(VICE)','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(6,'TKP-006','TIG용접기',NULL,'DAESUNG-500DT','대성용접기','형진종합공구',2200000,'2016-05-30','TEAG0168-001','500A','active',NULL,2,0.35,42.33,3.90,3.88,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-04 00:23:29'), +(7,'TKP-007','TIG용접기',NULL,'DAESUNG-500DT','대성용접기','형진종합공구',2200000,'2016-05-30','TEAG0168-002','500A','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(8,'TKP-008','TIG용접기',NULL,'DAESUNG-500DT','대성용접기','형진종합공구',2200000,'2016-05-30','TEAG0168-003','500A','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(9,'TKP-009','CO2용접기',NULL,'COD-500A','대성용접기','형진종합공구',2000000,'2016-05-30','10880','500A','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(10,'TKP-010','O2용접기',NULL,'GSORK','재현오토닉스','형진종합공구',620000,'2016-05-30',NULL,'220V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(11,'TKP-011','PIPE BEVELLING MACHINE',NULL,'S-200LT_MT(테이블포함)','DCS ENG','DCS ENG',12000000,'2017-03-29','KR-17030007','2\" ~ 8\"','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(12,'TKP-012','CO2용접기',NULL,'500MX','현대용접기','현대용접기',1800000,'2017-08-02',NULL,'220/380V,500A','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(13,'TKP-013','프라즈마',NULL,'Perfect-150AP','퍼펙트대대','현대용접기',1900000,'2017-08-02',NULL,'220/380/440V,140A','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(14,'TKP-014','터닝로라',NULL,'JK-5-TR','정일기공','정일기공',5700000,'2017-09-08',NULL,'5TON/380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(15,'TKP-015','터닝로라',NULL,'JK-5-TR','정일기공','정일기공',5700000,'2017-09-08',NULL,'5TON/380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(16,'TKP-016','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1600000,'2017-10-18','TJAD017B-005','500A/350A','active',NULL,2,0.02,46.36,4.87,4.34,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-04 00:22:53'), +(17,'TKP-017','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1600000,'2017-10-18','TJAD017B-006','500A/350A','active',NULL,2,0.35,20.93,4.06,4.03,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-04 00:23:46'), +(18,'TKP-018','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1600000,'2017-10-18','TJAD017B-007','500A/350A','repair_needed',NULL,2,0.35,17.05,4.06,3.57,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-04 05:35:54'), +(19,'TKP-019','전해연마기',NULL,'ONB-8000VP','메탈브라이트(오토기전)','오토기전',1450000,'2018-03-13','8022701','220V/MAX1200W','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(20,'TKP-020','지게차',NULL,'50DA-9F','현대지게차','현대지게차',45000000,'2018-05-10','HHKHFV36JJ0000061','5000KGS','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(21,'TKP-021','조방',NULL,NULL,'테크니컬코리아','천우기계공업/삼덕금속',14200000,'2018-05-11',NULL,'3658*12190','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(22,'TKP-022','BAND SAW(大)',NULL,'WBS-RC500AN','원공사','원공사',36000000,'2018-05-31','BC50A18-005F001','3,300kgs / 7.88kw','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(23,'TKP-023','AIR COMPRESSOR',NULL,'AR20E','경원기계','경원기계',NULL,'2018-06-05','AR020FE358','0.95Mpa','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(24,'TKP-024','TURN TABLE',NULL,'YCT-200TA','유체기계','청운종합공구',3245000,'2018-06-12',NULL,'220V','active',NULL,2,9.76,69.92,4.06,7.60,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:57:40'), +(25,'TKP-025','TIG용접기',NULL,'Perfect-500WT','퍼펙트대대','현대용접기',2400000,'2018-06-12','ADKAC017B-006','500A/AC DC','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(26,'TKP-026','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1900000,'2018-06-12','TAAI018B-002','500A/DC','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(27,'TKP-027','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1900000,'2018-06-12','TAAA018B-009','500A/DC','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(28,'TKP-028','TIG용접기',NULL,'Perfect-500PT','퍼펙트대대','현대용접기',1900000,'2018-06-12','TAAA018B-001','500A/DC','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(29,'TKP-029','ELECTRIC CHAIN HOIST',NULL,'DSM-2S','대산','청운종합공구',2300000,'2018-07-06','K1806077','3Ph-60Hz-380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(30,'TKP-030','ELECTRIC CHAIN HOIST',NULL,'DSM-2S','대산','청운종합공구',2300000,'2018-07-10','K1807028','3Ph-60Hz-380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(31,'TKP-031','ELECTRIC CHAIN HOIST',NULL,'DSM-2S','대산','청운종합공구',2300000,'2018-07-10','K1807029','3Ph-60Hz-380V','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(32,'TKP-032','만능탭 드릴링머신',NULL,'SF-TDM32','㈜애스앤에프','㈜애스앤애프',2927000,'2018-11-09',NULL,'1.5KW','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(33,'TKP-033','지게차',NULL,'30D-9B','현대지게차','현대지게차',29400000,'2019-03-06','HHKHHN51KK0000864','2850KGS','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(34,'TKP-034','갠츄리크레인',NULL,'CRANE - DHG','반도호이스트','유진산업기계',249000000,'2019-05-09',NULL,'50/10Ton x SP20M x T/L50M x H15M','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(35,'TKP-035','OVER HEAD CRANE',NULL,'CRANE - DHO','반도호이스트','유진산업기계',58000000,'2019-05-09',NULL,'20Ton x SP24.0M x T/L67M x H11M','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(36,'TKP-036','OVER HEAD CRANE',NULL,'CRANE - DHO','반도호이스트','유진산업기계',58000000,'2019-05-09',NULL,'20Ton x SP24.0M x T/L67M x H11M','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(37,'TKP-037','OVER HEAD CRANE',NULL,'CRANE - DHO','반도호이스트','유진산업기계',29000000,'2019-05-09',NULL,'5Ton x SP24.0M x T/L67M x H11M','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(38,'TKP-038','OVER HEAD CRANE',NULL,'CRANE - DHO','반도호이스트','유진산업기계',29000000,'2019-05-09',NULL,'5Ton x SP24.0M x T/L67M x H11M','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(39,'TKP-039','고소작업대',NULL,NULL,'㈜쓰리제이테크',NULL,NULL,'2019-01-01',NULL,'250 Kg','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(40,'TKP-040','고소작업대',NULL,NULL,'㈜쓰리제이테크',NULL,NULL,'2019-01-01',NULL,'250 Kg','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(41,'TKP-041','AIR CONDITIONER',NULL,'코끼리 냉장고','㈜에스엔에프',NULL,NULL,'2019-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(42,'TKP-042','AIR CONDITIONER',NULL,NULL,'㈜에스엔에프',NULL,NULL,'2019-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(43,'TKP-043','AIR CONDITIONER',NULL,NULL,'㈜에스엔에프',NULL,NULL,'2019-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(44,'TKP-044','용접흄집진기',NULL,NULL,NULL,NULL,NULL,'2019-01-01',NULL,'5 HP / 60 m3/Min','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(45,'TKP-045','용접흄집진기',NULL,NULL,NULL,NULL,NULL,'2019-01-01',NULL,'5 HP / 60 m3/Min','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(46,'TKP-046','용접흄집진기',NULL,NULL,NULL,NULL,NULL,'2019-01-01',NULL,'5 HP / 60 m3/Min','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(47,'TKP-047','용접흄집진기',NULL,NULL,NULL,NULL,NULL,'2019-01-01',NULL,'5 HP / 60 m3/Min','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(48,'TKP-048','용접흄집진기',NULL,NULL,NULL,NULL,NULL,'2019-01-01',NULL,'5 HP / 60 m3/Min','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(49,'TKP-049','자동용접기',NULL,NULL,'Swage-Lok','Swage-Lok',50000000,'2019-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(50,'TKP-050','Magnetic Drill',NULL,NULL,'NITTO','청운종합공구',NULL,'2020-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(51,'TKP-051','Magnetic Drill',NULL,NULL,'Key-Yang','청운종합공구',NULL,'2020-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(52,'TKP-052','Tube Bending M/C',NULL,NULL,'REMS',NULL,NULL,'2020-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(53,'TKP-053','Unit Test Panel',NULL,NULL,NULL,NULL,NULL,'2021-01-01',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(54,'TKP-054','고소작업대',NULL,NULL,'㈜쓰리제이테크',NULL,NULL,'2021-01-01',NULL,'500 Kg','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(55,'TKP-055','용접봉 건조기',NULL,'주문제작','진원하이텍','진원하이텍',2300000,'2022-05-04',NULL,'박스형','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(56,'TKP-056','C&T 가공기',NULL,'MS-CTK469','Swage-Lok','Swage-Lok',7347600,'2022-07-20',NULL,NULL,'active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(57,'TKP-057','테이블형 튜브 벤딩기',NULL,'MS-BTT-K','Swage-Lok','Swage-Lok',20000000,'2022-06-03',NULL,'1/2\", 1/4\"','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(58,'TKP-058','자동용접기 헤드',NULL,'SWS-10H-D-15','Swage-Lok','Swage-Lok',20000000,'2022-06-03',NULL,'1/2\"','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(59,'TKP-059','천장주행크레인',NULL,'HC-75D-13105','에이치앤씨','에이치앤씨',22800000,'2023-06-09',NULL,'7.5ton','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(60,'TKP-060','AED',NULL,'CU-SP1 Plus','제이메디','제이메디',1600000,'2023-11-09',NULL,'저출력심장충격기','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(61,'TKP-061','베벨머신',NULL,'S-150','DCSENG','DCSENG',16000000,'2023-12-12',NULL,'O.D 20mm ~ 170mm','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(62,'TKP-062','피막제거기',NULL,'CM4_OD_GC','DCSENG','DCSENG',2000000,'2023-12-12',NULL,'최대 폭 48mm, 최대 깊이 15mm, 6\"이상','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(63,'TKP-063','피막제거기',NULL,'S-CM4_OD','DCSENG','DCSENG',1200000,'2023-12-12',NULL,'최대 폭 48mm, 최대 깊이 15mm, 1\" 이상','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(64,'TKP-064','텅스텐 가공기',NULL,'S-TGR','DCSENG','DCSENG',800000,'2023-12-12',NULL,'0.89kg, 0.25~3.2','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(65,'TKP-065','전동대차',NULL,'LPM15','두산산업차량','두산산업차량',2800000,'2023-12-20',NULL,'2.0 ton','active',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-03 23:17:57','2026-02-03 23:17:57'), +(66,'TKP-066','TURN TABLE',NULL,'YCT-200T','유체기계','청운종합공구',3000000,NULL,NULL,'220V','active',NULL,2,9.76,60.78,6.17,3.10,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-04 00:17:49','2026-02-04 00:19:51'), +(67,'TKP-067','TURN TABLE',NULL,'YCT-200T','유체기계','청운종합공구',3000000,NULL,NULL,'220V','active',NULL,2,9.60,55.66,6.33,2.95,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'2026-02-04 00:18:26','2026-02-04 00:19:57'), +(68,'TKP-068','TURN TABLE',NULL,'YCT-200TA','유체기계','청운종합공구',3000000,NULL,NULL,'220V','active',NULL,2,7.82,8.53,5.68,3.10,10,NULL,NULL,NULL,NULL,1,'2026-02-04 04:44:36',1,'2026-02-04 00:18:59','2026-02-04 04:44:36'); +/*!40000 ALTER TABLE `equipments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `issue_report_categories` +-- + +DROP TABLE IF EXISTS `issue_report_categories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `issue_report_categories` ( + `category_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '카테고리 ID', + `category_type` enum('nonconformity','safety') NOT NULL COMMENT '카테고리 유형 (부적합/안전)', + `category_name` varchar(100) NOT NULL COMMENT '카테고리명', + `description` text DEFAULT NULL COMMENT '카테고리 설명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`category_id`), + KEY `idx_irc_category_type` (`category_type`), + KEY `idx_irc_is_active` (`is_active`) +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `issue_report_categories` +-- + +LOCK TABLES `issue_report_categories` WRITE; +/*!40000 ALTER TABLE `issue_report_categories` DISABLE KEYS */; +INSERT INTO `issue_report_categories` VALUES +(1,'nonconformity','자재누락',NULL,1,1,'2026-02-02 00:23:42'), +(2,'nonconformity','설계미스',NULL,2,1,'2026-02-02 00:23:42'), +(3,'nonconformity','입고불량',NULL,3,1,'2026-02-02 00:23:42'), +(4,'nonconformity','검사미스',NULL,4,1,'2026-02-02 00:23:42'), +(5,'nonconformity','기타 부적합',NULL,99,1,'2026-02-02 00:23:42'), +(6,'safety','보호구 미착용',NULL,1,1,'2026-02-02 00:23:42'), +(7,'safety','위험구역 출입',NULL,2,1,'2026-02-02 00:23:42'), +(8,'safety','안전시설 파손',NULL,3,1,'2026-02-02 00:23:42'), +(9,'safety','안전수칙 위반',NULL,4,1,'2026-02-02 00:23:42'), +(10,'safety','기타 안전',NULL,99,1,'2026-02-02 00:23:42'), +(11,'nonconformity','설비 수리','설비 고장 및 수리 요청',10,1,'2026-02-04 03:22:27'), +(12,'nonconformity','NDE 불합격',NULL,0,1,'2026-02-04 23:15:15'), +(13,'nonconformity','작업 부적합',NULL,0,1,'2026-02-04 23:15:37'); +/*!40000 ALTER TABLE `issue_report_categories` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `issue_report_items` +-- + +DROP TABLE IF EXISTS `issue_report_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `issue_report_items` ( + `item_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '항목 ID', + `category_id` int(10) unsigned NOT NULL COMMENT '소속 카테고리 ID', + `item_name` varchar(200) NOT NULL COMMENT '신고 항목명', + `description` text DEFAULT NULL COMMENT '항목 설명', + `severity` enum('low','medium','high','critical') DEFAULT 'medium' COMMENT '심각도', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`item_id`), + KEY `idx_iri_category_id` (`category_id`), + KEY `idx_iri_is_active` (`is_active`), + CONSTRAINT `issue_report_items_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `issue_report_categories` (`category_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `issue_report_items` +-- + +LOCK TABLES `issue_report_items` WRITE; +/*!40000 ALTER TABLE `issue_report_items` DISABLE KEYS */; +INSERT INTO `issue_report_items` VALUES +(1,1,'배관 자재 미입고',NULL,'high',1,1,'2026-02-02 00:23:42'), +(2,1,'피팅류 부족',NULL,'medium',2,1,'2026-02-02 00:23:42'), +(3,1,'밸브류 미입고',NULL,'high',3,1,'2026-02-02 00:23:42'), +(4,1,'가스켓/볼트류 부족',NULL,'low',4,1,'2026-02-02 00:23:42'), +(5,1,'서포트 자재 부족',NULL,'medium',5,1,'2026-02-02 00:23:42'), +(6,2,'도면 치수 오류',NULL,'high',1,1,'2026-02-02 00:23:42'), +(7,2,'스펙 불일치',NULL,'high',2,1,'2026-02-02 00:23:42'), +(8,2,'누락된 상세도',NULL,'medium',3,1,'2026-02-02 00:23:42'), +(9,2,'간섭 발생',NULL,'critical',4,1,'2026-02-02 00:23:42'), +(10,3,'외관 불량',NULL,'medium',1,1,'2026-02-02 00:23:42'), +(11,3,'치수 불량',NULL,'high',2,1,'2026-02-02 00:23:42'), +(12,3,'수량 부족',NULL,'medium',3,1,'2026-02-02 00:23:42'), +(13,3,'재질 불일치',NULL,'critical',4,1,'2026-02-02 00:23:42'), +(14,4,'치수 검사 누락',NULL,'high',1,1,'2026-02-02 00:23:42'), +(15,4,'외관 검사 누락',NULL,'medium',2,1,'2026-02-02 00:23:42'), +(16,4,'용접 검사 누락',NULL,'critical',3,1,'2026-02-02 00:23:42'), +(17,4,'도장 검사 누락',NULL,'medium',4,1,'2026-02-02 00:23:42'), +(18,6,'안전모 미착용',NULL,'high',1,1,'2026-02-02 00:23:42'), +(19,6,'안전화 미착용',NULL,'high',2,1,'2026-02-02 00:23:42'), +(20,6,'보안경 미착용',NULL,'medium',3,1,'2026-02-02 00:23:42'), +(21,6,'안전대 미착용',NULL,'critical',4,1,'2026-02-02 00:23:42'), +(22,6,'귀마개 미착용',NULL,'low',5,1,'2026-02-02 00:23:42'), +(23,6,'안전장갑 미착용',NULL,'medium',6,1,'2026-02-02 00:23:42'), +(24,7,'통제구역 무단 출입',NULL,'critical',1,1,'2026-02-02 00:23:42'), +(25,7,'고소 작업 구역 무단 출입',NULL,'critical',2,1,'2026-02-02 00:23:42'), +(26,7,'밀폐공간 무단 진입',NULL,'critical',3,1,'2026-02-02 00:23:42'), +(27,7,'장비 가동 구역 무단 접근',NULL,'high',4,1,'2026-02-02 00:23:42'), +(28,8,'안전난간 파손',NULL,'high',1,1,'2026-02-02 00:23:42'), +(29,8,'경고 표지판 훼손',NULL,'medium',2,1,'2026-02-02 00:23:42'), +(30,8,'안전망 파손',NULL,'high',3,1,'2026-02-02 00:23:42'), +(31,8,'비상조명 고장',NULL,'medium',4,1,'2026-02-02 00:23:42'), +(32,8,'소화설비 파손',NULL,'critical',5,1,'2026-02-02 00:23:42'), +(33,9,'지정 통로 미사용',NULL,'medium',1,1,'2026-02-02 00:23:42'), +(34,9,'고소 작업 안전 미준수',NULL,'critical',2,1,'2026-02-02 00:23:42'), +(35,9,'화기 작업 절차 미준수',NULL,'critical',3,1,'2026-02-02 00:23:42'), +(36,9,'정리정돈 미흡',NULL,'low',4,1,'2026-02-02 00:23:42'), +(37,9,'장비 조작 절차 미준수',NULL,'high',5,1,'2026-02-02 00:23:42'), +(38,11,'기계 고장','기계 작동 불가 또는 이상','high',1,1,'2026-02-04 03:22:27'), +(39,11,'부품 교체 필요','소모품 또는 부품 교체 필요','medium',2,1,'2026-02-04 03:22:27'), +(40,11,'정기 점검 필요','예방 정비 또는 정기 점검','low',3,1,'2026-02-04 03:22:27'), +(41,11,'외부 수리 필요','전문 업체 수리가 필요한 경우','high',4,1,'2026-02-04 03:22:27'), +(42,5,'작업대기',NULL,'medium',0,1,'2026-02-04 22:52:31'), +(43,13,'NDE 불합격',NULL,'medium',0,1,'2026-02-04 23:15:46'), +(44,4,'결과 전달 부적합',NULL,'medium',0,1,'2026-02-04 23:19:05'); +/*!40000 ALTER TABLE `issue_report_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `item_types` +-- + +DROP TABLE IF EXISTS `item_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `item_types` ( + `type_code` varchar(20) NOT NULL, + `type_name` varchar(50) NOT NULL COMMENT '유형명', + `icon` varchar(10) DEFAULT NULL COMMENT '아이콘 이모지', + `color` varchar(20) DEFAULT NULL COMMENT '표시 색상', + `display_order` int(11) DEFAULT 0, + `is_active` tinyint(1) DEFAULT 1, + PRIMARY KEY (`type_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `item_types` +-- + +LOCK TABLES `item_types` WRITE; +/*!40000 ALTER TABLE `item_types` DISABLE KEYS */; +INSERT INTO `item_types` VALUES +('container','용기','📦','#3b82f6',1,1), +('material','자재','🧱','#f59e0b',3,1), +('other','기타','📍','#6b7280',5,1), +('plate','플레이트','🔲','#10b981',2,1), +('tool','공구/장비','🔧','#8b5cf6',4,1); +/*!40000 ALTER TABLE `item_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `knex_migrations` +-- + +DROP TABLE IF EXISTS `knex_migrations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `knex_migrations` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL, + `batch` int(11) DEFAULT NULL, + `migration_time` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `knex_migrations` +-- + +LOCK TABLES `knex_migrations` WRITE; +/*!40000 ALTER TABLE `knex_migrations` DISABLE KEYS */; +INSERT INTO `knex_migrations` VALUES +(1,'20251219003210_20251219_initial_schema.js',1,'2026-01-19 00:47:40'), +(2,'20251219010000_add_columns_to_projects.js',1,'2026-01-19 00:47:40'), +(3,'20260106083251_create_permissions_tables.js',2,'2026-01-19 00:49:25'), +(4,'20260106083318_populate_permissions_data.js',3,'2026-01-19 00:49:29'), +(5,'20260107140000_update_worker_schema.js',3,'2026-01-19 00:49:29'), +(6,'20260119000000_simplify_permissions_and_add_page_access.js',3,'2026-01-19 00:49:29'), +(7,'20260119120000_add_worker_fields.js',3,'2026-01-19 00:49:46'), +(9,'20260119120001_create_attendance_tables.js',3,'2026-01-19 01:34:26'), +(11,'20260119120002_create_accounts_for_existing_workers.js',5,'2026-01-19 10:40:56'), +(12,'20260119120003_add_guest_role.js',5,'2026-01-19 10:40:56'), +(13,'20260119095549_add_worker_display_fields.js',6,'2026-01-19 01:46:21'), +(14,'20260120000000_create_tbm_system.js',7,'2026-01-20 15:30:51'), +(15,'20260120000001_add_tbm_page.js',8,'2026-01-20 15:34:53'), +(16,'20260126000001_create_workplace_categories.js',9,'2026-01-26 14:27:40'), +(17,'20260126000002_create_workplaces.js',9,'2026-01-26 14:27:40'), +(18,'20260126010002_create_tasks.js',10,'2026-01-26 15:05:01'), +(20,'20260126010003_add_work_type_task_to_tbm.js',11,'2026-01-27 06:30:46'), +(21,'20260126010004_add_work_details_to_team_assignments.js',11,'2026-01-27 06:30:46'), +(22,'20260127000001_remove_unused_tbm_fields.js',12,'2026-01-27 07:03:06'), +(23,'20260127000002_add_workplace_map_images.js',13,'2026-01-27 07:30:47'), +(24,'20260127010000_add_workplace_purpose_fields.js',14,'2026-01-27 08:15:49'), +(25,'20260127020000_make_leader_id_nullable.js',15,'2026-01-27 08:48:02'), +(26,'20260127030000_add_tbm_fields_to_work_reports.js',16,'2026-01-27 10:38:52'), +(27,'20260127040000_update_pages_for_current_system.js',17,'2026-01-27 14:59:17'), +(28,'20260128000000_add_layout_image_to_workplaces.js',18,'2026-01-28 08:24:33'), +(29,'20260128010000_create_equipments_table.js',19,'2026-01-28 09:01:32'), +(30,'20260129000000_create_vacation_requests.js',20,'2026-01-28 14:54:20'), +(31,'20260129000001_register_attendance_pages.js',21,'2026-01-28 14:55:06'), +(32,'20260129000003_update_vacation_pages.js',22,'2026-01-29 12:49:41'), +(33,'20260129000002_add_attendance_is_present.js',23,'2026-01-29 13:09:34'), +(37,'20260129000004_extend_vacation_types.js',24,'2026-01-29 13:33:11'), +(38,'20260129000005_create_vacation_balance_details.js',24,'2026-01-29 13:33:11'), +(39,'20260129000006_register_vacation_pages.js',24,'2026-01-29 13:33:11'), +(40,'20260129010000_create_visit_request_system.js',25,'2026-01-29 14:26:17'), +(41,'20260129010001_register_visit_pages.js',25,'2026-01-29 14:26:17'), +(42,'20260130000001_create_work_issue_system.js',26,'2026-02-02 00:23:42'), +(44,'20260130000002_register_issue_pages.js',27,'2026-02-02 01:19:22'), +(45,'20260202000001_create_work_report_defects.js',28,'2026-02-02 01:19:31'), +(46,'20260202100000_expand_safety_checklist.js',29,'2026-02-02 01:44:54'), +(48,'20260202200000_reorganize_pages.js',30,'2026-02-02 23:15:51'), +(49,'20260203100000_link_defects_to_issues.js',31,'2026-02-02 23:16:00'), +(50,'20260203090000_add_category_to_defects.js',32,'2026-02-02 23:55:34'), +(51,'20260204100000_add_equipment_purchase_fields.js',33,'2026-02-04 01:44:41'), +(52,'20260204100000_create_daily_patrol_system.js',34,'2026-02-04 01:47:33'); +/*!40000 ALTER TABLE `knex_migrations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `knex_migrations_lock` +-- + +DROP TABLE IF EXISTS `knex_migrations_lock`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `knex_migrations_lock` ( + `index` int(10) unsigned NOT NULL AUTO_INCREMENT, + `is_locked` int(11) DEFAULT NULL, + PRIMARY KEY (`index`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `knex_migrations_lock` +-- + +LOCK TABLES `knex_migrations_lock` WRITE; +/*!40000 ALTER TABLE `knex_migrations_lock` DISABLE KEYS */; +INSERT INTO `knex_migrations_lock` VALUES +(1,0); +/*!40000 ALTER TABLE `knex_migrations_lock` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `login_logs` +-- + +DROP TABLE IF EXISTS `login_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `login_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) DEFAULT NULL, + `login_time` datetime DEFAULT current_timestamp(), + `logout_time` datetime DEFAULT NULL, + `ip_address` varchar(45) DEFAULT NULL, + `user_agent` text DEFAULT NULL, + `login_status` enum('success','failed','locked') DEFAULT 'success', + `failure_reason` varchar(100) DEFAULT NULL, + PRIMARY KEY (`log_id`), + KEY `idx_user_login` (`user_id`,`login_time`), + CONSTRAINT `login_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=224 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `login_logs` +-- + +LOCK TABLES `login_logs` WRITE; +/*!40000 ALTER TABLE `login_logs` DISABLE KEYS */; +INSERT INTO `login_logs` VALUES +(146,3,'2025-11-02 23:53:02',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(147,3,'2025-11-03 02:10:26',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(148,3,'2025-11-03 02:10:33',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(149,1,'2025-11-03 02:11:06',NULL,'::ffff:185.199.111.133','curl/8.7.1','failed','invalid_password'), +(150,1,'2025-11-03 02:11:06',NULL,'::ffff:185.199.111.133','curl/8.7.1','failed','invalid_password'), +(151,3,'2025-11-03 02:11:43',NULL,'::ffff:185.199.111.133','curl/8.7.1','success',NULL), +(152,3,'2025-11-03 02:11:49',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(153,3,'2025-11-03 02:12:44',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(154,3,'2025-11-03 02:12:58',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(155,3,'2025-11-03 02:12:58',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(156,3,'2025-11-03 02:13:02',NULL,'::ffff:185.199.111.133','curl/8.7.1','success',NULL), +(157,3,'2025-11-03 02:13:43',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(158,3,'2025-11-03 02:15:28',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(159,3,'2025-11-03 03:07:23',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(160,3,'2025-11-03 03:27:50',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(161,3,'2025-11-03 03:44:52',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(162,3,'2025-11-03 04:02:14',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(163,3,'2025-11-03 04:36:14',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(164,3,'2025-11-03 06:21:57',NULL,'::ffff:185.199.111.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(165,3,'2025-11-03 06:50:04',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(166,3,'2025-11-03 22:39:38',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(167,1,'2025-11-04 01:38:28',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(168,1,'2025-11-04 01:58:20',NULL,'::ffff:192.168.65.1','curl/8.7.1','failed','invalid_password'), +(169,1,'2025-11-04 21:34:47',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(170,1,'2025-11-04 23:55:43',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(171,1,'2025-11-04 23:56:47',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','failed','invalid_password'), +(172,1,'2025-11-04 23:56:59',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(173,1,'2025-11-05 01:35:01',NULL,'::ffff:185.199.109.133','curl/8.7.1','failed','invalid_password'), +(174,1,'2025-11-05 01:36:09',NULL,'::ffff:185.199.109.133','curl/8.7.1','failed','invalid_password'), +(175,1,'2025-11-05 01:37:45',NULL,'::ffff:185.199.109.133','curl/8.7.1','success',NULL), +(176,1,'2025-11-05 01:44:59',NULL,'::ffff:185.199.109.133','curl/8.7.1','success',NULL), +(177,6,'2025-11-05 01:46:07',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(178,3,'2025-11-05 01:46:14',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(179,5,'2025-11-05 01:47:15',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(180,3,'2025-11-05 01:49:12',NULL,'::ffff:185.199.109.133','curl/8.7.1','failed','invalid_password'), +(181,3,'2025-11-05 01:49:27',NULL,'::ffff:185.199.109.133','curl/8.7.1','success',NULL), +(182,6,'2025-11-05 01:49:37',NULL,'::ffff:185.199.109.133','curl/8.7.1','success',NULL), +(183,5,'2025-11-05 01:49:44',NULL,'::ffff:185.199.109.133','curl/8.7.1','success',NULL), +(184,5,'2025-11-05 01:50:08',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(185,5,'2025-11-05 01:55:59',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(186,6,'2025-11-05 01:56:13',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(187,3,'2025-11-05 01:56:20',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(188,1,'2025-11-05 01:56:35',NULL,'::ffff:185.199.109.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(189,1,'2025-11-05 02:01:27',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(190,3,'2025-11-05 02:01:53',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(191,5,'2025-11-05 02:02:02',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(192,1,'2025-11-05 02:03:10',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','failed','invalid_password'), +(193,1,'2025-11-05 02:03:20',NULL,'::ffff:192.168.65.1','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(194,5,'2025-11-05 02:18:31',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(195,7,'2025-11-05 02:20:22',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(196,1,'2025-11-05 02:20:37',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(197,7,'2025-11-05 02:23:43',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(198,1,'2025-11-05 02:25:08',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(199,3,'2025-11-05 02:25:45',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(200,7,'2025-11-05 02:25:54',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(201,7,'2025-11-05 02:26:31',NULL,'::ffff:185.199.110.133','curl/8.7.1','failed','invalid_password'), +(202,7,'2025-11-05 02:27:52',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(205,1,'2025-11-05 02:52:20',NULL,'::ffff:185.199.110.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15','success',NULL), +(206,3,'2026-02-03 04:54:17',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(207,1,'2026-02-03 04:56:05',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(208,3,'2026-02-03 05:43:08',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36','success',NULL), +(209,1,'2026-02-03 05:43:42',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36','success',NULL), +(210,1,'2026-02-03 06:14:57',NULL,'::ffff:185.199.108.133','curl/8.7.1','failed','invalid_password'), +(211,1,'2026-02-03 06:25:29',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(212,1,'2026-02-03 06:26:54',NULL,'::ffff:185.199.108.133','curl/8.7.1','failed','invalid_password'), +(213,1,'2026-02-03 06:55:48',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(214,1,'2026-02-03 21:24:20',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(215,1,'2026-02-03 22:53:39',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(216,1,'2026-02-04 05:31:13',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(217,1,'2026-02-04 07:25:57',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(218,1,'2026-02-04 23:46:38',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(219,1,'2026-02-05 01:01:31',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(220,1,'2026-02-05 03:56:31',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(221,1,'2026-02-05 05:22:15',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15','success',NULL), +(222,1,'2026-02-05 21:37:09',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36','success',NULL), +(223,1,'2026-02-05 22:40:53',NULL,'::ffff:185.199.108.133','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36','success',NULL); +/*!40000 ALTER TABLE `login_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `notification_recipients` +-- + +DROP TABLE IF EXISTS `notification_recipients`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notification_recipients` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `notification_type` enum('repair','safety','nonconformity','equipment','maintenance','system') NOT NULL, + `user_id` int(11) NOT NULL, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `created_by` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique_type_user` (`notification_type`,`user_id`), + KEY `user_id` (`user_id`), + KEY `idx_nr_type` (`notification_type`), + KEY `idx_nr_active` (`is_active`), + CONSTRAINT `notification_recipients_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `notification_recipients` +-- + +LOCK TABLES `notification_recipients` WRITE; +/*!40000 ALTER TABLE `notification_recipients` DISABLE KEYS */; +/*!40000 ALTER TABLE `notification_recipients` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `notifications` +-- + +DROP TABLE IF EXISTS `notifications`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notifications` ( + `notification_id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) DEFAULT NULL COMMENT '특정 사용자에게만 표시 (NULL이면 전체)', + `type` enum('repair','safety','system','equipment','maintenance') NOT NULL DEFAULT 'system', + `title` varchar(200) NOT NULL, + `message` text DEFAULT NULL, + `link_url` varchar(500) DEFAULT NULL COMMENT '클릭시 이동할 URL', + `reference_type` varchar(50) DEFAULT NULL COMMENT '연관 테이블', + `reference_id` int(11) DEFAULT NULL COMMENT '연관 레코드 ID', + `is_read` tinyint(1) DEFAULT 0, + `read_at` datetime DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `created_by` int(11) DEFAULT NULL, + PRIMARY KEY (`notification_id`), + KEY `idx_notifications_user` (`user_id`), + KEY `idx_notifications_type` (`type`), + KEY `idx_notifications_is_read` (`is_read`), + KEY `idx_notifications_created` (`created_at` DESC) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `notifications` +-- + +LOCK TABLES `notifications` WRITE; +/*!40000 ALTER TABLE `notifications` DISABLE KEYS */; +INSERT INTO `notifications` VALUES +(1,NULL,'repair','수리 신청: TIG용접기','기계 고장 수리가 신청되었습니다.','/pages/admin/equipment-detail.html?id=18','work_issue_reports',7,1,'2026-02-04 06:08:30','2026-02-04 05:35:54',NULL), +(2,NULL,'repair','수리 신청: TIG용접기','기계 고장 수리가 신청되었습니다.','/pages/admin/repair-management.html','work_issue_reports',7,0,NULL,'2026-02-04 05:35:54',NULL); +/*!40000 ALTER TABLE `notifications` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pages` +-- + +DROP TABLE IF EXISTS `pages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `pages` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `page_key` varchar(100) NOT NULL, + `page_name` varchar(100) NOT NULL, + `page_path` varchar(255) NOT NULL, + `category` varchar(50) DEFAULT NULL, + `description` varchar(255) DEFAULT NULL, + `is_admin_only` tinyint(1) DEFAULT 0, + `display_order` int(11) DEFAULT 0, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + `is_default_accessible` tinyint(1) DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY `pages_page_key_unique` (`page_key`) +) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `pages` +-- + +LOCK TABLES `pages` WRITE; +/*!40000 ALTER TABLE `pages` DISABLE KEYS */; +INSERT INTO `pages` VALUES +(11,'dashboard','대시보드','/pages/dashboard.html','common','전체 현황 대시보드',0,1,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(12,'work.tbm','TBM','/pages/work/tbm.html','work','TBM (Tool Box Meeting) 관리',0,10,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(13,'work.report-create','작업보고서 작성','/pages/work/report-create.html','work','일일 작업보고서 작성',0,11,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(14,'work.report-view','작업보고서 조회','/pages/work/report-view.html','work','작업보고서 조회 및 검색',0,12,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(15,'work.analysis','작업 분석','/pages/work/analysis.html','work','작업 통계 및 분석',0,13,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(16,'admin.accounts','계정 관리','/pages/admin/accounts.html','admin','사용자 계정 관리',1,20,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(18,'admin.workers','작업자 관리','/pages/admin/workers.html','admin','작업자 정보 관리',1,22,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(19,'admin.projects','프로젝트 관리','/pages/admin/projects.html','admin','프로젝트 관리',1,23,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(20,'admin.workplaces','작업장 관리','/pages/admin/workplaces.html','admin','작업장소 관리',1,24,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(21,'admin.codes','코드 관리','/pages/admin/codes.html','admin','시스템 코드 관리',1,25,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(22,'admin.tasks','작업 관리','/pages/admin/tasks.html','admin','작업 유형 관리',1,26,'2026-01-27 05:59:17','2026-01-27 05:59:17',0), +(23,'profile.info','내 정보','/pages/profile/info.html','profile','내 프로필 정보',0,30,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(24,'profile.password','비밀번호 변경','/pages/profile/password.html','profile','비밀번호 변경',0,31,'2026-01-27 05:59:17','2026-01-27 05:59:17',1), +(25,'admin.equipments','설비 관리','/pages/admin/equipments.html','admin','작업장별 설비 정보를 등록하고 관리합니다',1,35,'2026-01-28 00:17:01','2026-01-28 00:17:01',0), +(26,'common.daily-attendance','일일 출퇴근 입력','/pages/common/daily-attendance.html','common','일일 출퇴근 기록 입력 페이지 (관리자/조장)',0,50,'2026-01-28 05:55:06','2026-01-28 05:55:06',1), +(27,'common.monthly-attendance','월별 출퇴근 현황','/pages/common/monthly-attendance.html','common','월별 출퇴근 현황 조회 페이지',0,51,'2026-01-28 05:55:06','2026-01-28 05:55:06',1), +(29,'admin.attendance-report-comparison','출퇴근-작업보고서 대조','/pages/admin/attendance-report-comparison.html','admin','출퇴근 기록과 작업보고서 대조 페이지 (관리자)',1,120,'2026-01-28 05:55:06','2026-01-28 05:55:06',0), +(34,'common.vacation-request','휴가 신청','/pages/common/vacation-request.html','common','작업자가 휴가를 신청하고 본인의 신청 내역을 확인하는 페이지',0,51,'2026-01-29 04:10:29','2026-01-29 04:10:29',1), +(35,'common.vacation-management','휴가 관리','/pages/common/vacation-management.html','common','관리자가 휴가 승인, 직접 입력, 전체 내역을 관리하는 페이지',1,52,'2026-01-29 04:10:29','2026-01-29 04:10:29',0), +(36,'common.annual-vacation-overview','연간 연차 현황','/pages/common/annual-vacation-overview.html','common','모든 작업자의 연간 연차 현황을 차트로 시각화',1,54,'2026-01-29 04:33:11','2026-01-29 04:33:11',0), +(37,'common.vacation-allocation','휴가 발생 입력','/pages/common/vacation-allocation.html','common','작업자별 휴가 발생 입력 및 특별 휴가 관리',1,55,'2026-01-29 04:33:11','2026-01-29 04:33:11',0), +(38,'work.visit-request','출입 신청','/pages/work/visit-request.html','work','작업장 출입 신청 및 안전교육 신청',0,15,'2026-01-29 05:26:17','2026-01-29 05:26:17',1), +(39,'admin.safety-management','안전관리','/pages/admin/safety-management.html','admin','출입 신청 승인 및 안전교육 관리',0,60,'2026-01-29 05:26:17','2026-01-29 05:26:17',0), +(40,'admin.safety-training-conduct','안전교육 진행','/pages/admin/safety-training-conduct.html','admin','안전교육 실시 및 서명 관리',0,61,'2026-01-29 05:26:17','2026-01-29 05:26:17',0), +(41,'work.issue-report','문제 신고','/pages/work/issue-report.html','work','작업 중 문제(부적합/안전) 신고 등록',0,16,'2026-02-02 00:24:55','2026-02-02 00:24:55',1), +(42,'work.issue-list','신고 목록','/pages/work/issue-list.html','work','문제 신고 목록 조회 및 관리',0,17,'2026-02-02 00:24:55','2026-02-02 00:24:55',1), +(43,'work.issue-detail','신고 상세','/pages/work/issue-detail.html','work','문제 신고 상세 조회',0,18,'2026-02-02 00:24:55','2026-02-02 00:24:55',1), +(44,'safety.issue_report','이슈 신고','/pages/safety/issue-report.html','safety','작업 중 문제(부적합/안전) 신고 등록',0,16,'2026-02-02 01:19:22','2026-02-02 01:19:22',0), +(45,'safety.issue_list','이슈 목록','/pages/safety/issue-list.html','safety','문제 신고 목록 조회 및 관리',0,17,'2026-02-02 01:19:22','2026-02-02 01:19:22',0), +(46,'safety.issue_detail','이슈 상세','/pages/safety/issue-detail.html','safety','문제 신고 상세 조회',0,18,'2026-02-02 01:19:22','2026-02-02 01:19:22',0), +(50,'safety.checklist_manage','안전 체크리스트 관리','/pages/safety/checklist-manage.html','safety','안전 체크리스트 항목 관리',1,50,'2026-02-02 23:15:51','2026-02-02 23:15:51',0), +(51,'attendance.vacation_approval','휴가 승인 관리','/pages/attendance/vacation-approval.html','attendance','휴가 신청 승인/거부',1,65,'2026-02-02 23:15:51','2026-02-02 23:15:51',0), +(52,'attendance.vacation_input','휴가 직접 입력','/pages/attendance/vacation-input.html','attendance','관리자 휴가 직접 입력',1,66,'2026-02-02 23:15:51','2026-02-02 23:15:51',0), +(53,'admin.departments','부서 관리','/pages/admin/departments.html','admin',NULL,1,3,'2026-02-03 05:06:48','2026-02-03 05:06:48',0), +(54,'inspection.daily_patrol','일일순회점검','/pages/inspection/daily-patrol.html','inspection','작업장 일일순회점검 페이지',0,1,'2026-02-04 02:17:23','2026-02-04 02:17:23',1); +/*!40000 ALTER TABLE `pages` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `password_change_logs` +-- + +DROP TABLE IF EXISTS `password_change_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `password_change_logs` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `changed_by_user_id` int(11) DEFAULT NULL, + `changed_at` datetime DEFAULT current_timestamp(), + `change_type` enum('self','admin','reset','initial') DEFAULT 'self', + `ip_address` varchar(45) DEFAULT NULL, + PRIMARY KEY (`log_id`), + KEY `changed_by_user_id` (`changed_by_user_id`), + KEY `idx_user_changes` (`user_id`,`changed_at`), + CONSTRAINT `password_change_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE, + CONSTRAINT `password_change_logs_ibfk_2` FOREIGN KEY (`changed_by_user_id`) REFERENCES `users` (`user_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `password_change_logs` +-- + +LOCK TABLES `password_change_logs` WRITE; +/*!40000 ALTER TABLE `password_change_logs` DISABLE KEYS */; +/*!40000 ALTER TABLE `password_change_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `patrol_check_records` +-- + +DROP TABLE IF EXISTS `patrol_check_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `patrol_check_records` ( + `record_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` int(10) unsigned NOT NULL COMMENT '순회점검 세션 ID', + `workplace_id` int(10) unsigned NOT NULL COMMENT '작업장 ID', + `check_item_id` int(10) unsigned NOT NULL COMMENT '체크항목 ID', + `is_checked` tinyint(1) DEFAULT 0 COMMENT '체크 여부', + `check_result` enum('good','warning','bad') DEFAULT NULL COMMENT '점검 결과', + `note` text DEFAULT NULL COMMENT '비고', + `checked_at` timestamp NULL DEFAULT NULL COMMENT '체크 시간', + PRIMARY KEY (`record_id`), + UNIQUE KEY `pcr_session_wp_item_unique` (`session_id`,`workplace_id`,`check_item_id`), + KEY `pcr_session_wp_idx` (`session_id`,`workplace_id`), + KEY `patrol_check_records_workplace_id_foreign` (`workplace_id`), + KEY `patrol_check_records_check_item_id_foreign` (`check_item_id`), + CONSTRAINT `patrol_check_records_check_item_id_foreign` FOREIGN KEY (`check_item_id`) REFERENCES `patrol_checklist_items` (`item_id`) ON DELETE CASCADE, + CONSTRAINT `patrol_check_records_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `daily_patrol_sessions` (`session_id`) ON DELETE CASCADE, + CONSTRAINT `patrol_check_records_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `patrol_check_records` +-- + +LOCK TABLES `patrol_check_records` WRITE; +/*!40000 ALTER TABLE `patrol_check_records` DISABLE KEYS */; +/*!40000 ALTER TABLE `patrol_check_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `patrol_checklist_items` +-- + +DROP TABLE IF EXISTS `patrol_checklist_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `patrol_checklist_items` ( + `item_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `workplace_id` int(10) unsigned DEFAULT NULL COMMENT '특정 작업장 전용 (NULL=공통)', + `category_id` int(10) unsigned DEFAULT NULL COMMENT '특정 공장 전용 (NULL=공통)', + `check_category` varchar(50) NOT NULL COMMENT '분류 (안전, 정리정돈, 설비 등)', + `check_item` varchar(200) NOT NULL COMMENT '점검 항목', + `description` text DEFAULT NULL COMMENT '설명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_required` tinyint(1) DEFAULT 1 COMMENT '필수 체크 여부', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`item_id`), + KEY `patrol_checklist_items_workplace_id_index` (`workplace_id`), + KEY `patrol_checklist_items_category_id_index` (`category_id`), + KEY `patrol_checklist_items_check_category_index` (`check_category`), + CONSTRAINT `patrol_checklist_items_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE CASCADE, + CONSTRAINT `patrol_checklist_items_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `patrol_checklist_items` +-- + +LOCK TABLES `patrol_checklist_items` WRITE; +/*!40000 ALTER TABLE `patrol_checklist_items` DISABLE KEYS */; +INSERT INTO `patrol_checklist_items` VALUES +(1,NULL,NULL,'SAFETY','소화기 상태 확인',NULL,1,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(2,NULL,NULL,'SAFETY','비상구 통로 확보 확인',NULL,2,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(3,NULL,NULL,'SAFETY','안전표지판 부착 상태',NULL,3,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(4,NULL,NULL,'SAFETY','위험물 관리 상태',NULL,4,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(5,NULL,NULL,'ORGANIZATION','작업장 정리정돈 상태',NULL,10,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(6,NULL,NULL,'ORGANIZATION','통로 장애물 여부',NULL,11,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(7,NULL,NULL,'ORGANIZATION','폐기물 처리 상태',NULL,12,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(8,NULL,NULL,'ORGANIZATION','자재 적재 상태',NULL,13,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(9,NULL,NULL,'EQUIPMENT','설비 외관 이상 여부',NULL,20,0,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(10,NULL,NULL,'EQUIPMENT','설비 작동 상태',NULL,21,0,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(11,NULL,NULL,'EQUIPMENT','설비 청결 상태',NULL,22,0,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(12,NULL,NULL,'ENVIRONMENT','조명 상태',NULL,30,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(13,NULL,NULL,'ENVIRONMENT','환기 상태',NULL,31,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'), +(14,NULL,NULL,'ENVIRONMENT','누수/누유 여부',NULL,32,1,1,'2026-02-04 01:47:33','2026-02-04 01:47:33'); +/*!40000 ALTER TABLE `patrol_checklist_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `permissions` +-- + +DROP TABLE IF EXISTS `permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `permissions` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `description` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `permissions_name_unique` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `permissions` +-- + +LOCK TABLES `permissions` WRITE; +/*!40000 ALTER TABLE `permissions` DISABLE KEYS */; +INSERT INTO `permissions` VALUES +(1,'user:create','사용자 생성','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(2,'user:read','사용자 정보 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(3,'user:update','사용자 정보 수정','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(4,'user:delete','사용자 삭제','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(5,'project:create','프로젝트 생성','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(6,'project:read','프로젝트 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(7,'project:update','프로젝트 수정','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(8,'project:delete','프로젝트 삭제','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(9,'work-report:create','작업 보고서 생성','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(10,'work-report:read-own','자신의 작업 보고서 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(11,'work-report:read-team','팀의 작업 보고서 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(12,'work-report:read-all','모든 작업 보고서 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(13,'work-report:update','작업 보고서 수정','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(14,'work-report:delete','작업 보고서 삭제','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(15,'system:read-logs','시스템 로그 조회','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(16,'system:manage-settings','시스템 설정 관리','2026-01-19 00:49:29','2026-01-19 00:49:29'); +/*!40000 ALTER TABLE `permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `projects` +-- + +DROP TABLE IF EXISTS `projects`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `projects` ( + `project_id` int(11) NOT NULL AUTO_INCREMENT, + `job_no` varchar(50) NOT NULL, + `project_name` varchar(255) NOT NULL, + `contract_date` date DEFAULT NULL, + `due_date` date DEFAULT NULL, + `delivery_method` varchar(100) DEFAULT NULL, + `site` varchar(100) DEFAULT NULL, + `pm` varchar(100) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `is_active` tinyint(1) DEFAULT 1, + `project_status` varchar(50) DEFAULT 'active', + `completed_date` date DEFAULT NULL, + PRIMARY KEY (`project_id`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `projects` +-- + +LOCK TABLES `projects` WRITE; +/*!40000 ALTER TABLE `projects` DISABLE KEYS */; +INSERT INTO `projects` VALUES +(1,'TKO-24008P','YHP Project',NULL,NULL,NULL,'Quang Ninh(Vietnam)','장형태','2025-04-15 22:40:28','2025-04-15 22:40:28',0,'active',NULL), +(2,'TKG-24009P','한화에어로스페이스 순천',NULL,NULL,NULL,'순천','장형태','2025-04-15 22:42:41','2025-04-15 22:42:41',0,'active',NULL), +(3,'TKG-24011P','효성화학 에틸렌 탱크 건설공사',NULL,NULL,NULL,'울산','김길종','2025-04-15 22:43:53','2025-04-15 22:43:53',0,'active',NULL), +(4,'TKG-24013P','김천 솔라 파워 그린 수소 Project',NULL,NULL,NULL,'김천','김길종','2025-04-15 22:44:57','2025-04-15 22:44:57',0,'active',NULL), +(5,'TKG-24016P','LG Chem P3RE Project',NULL,NULL,NULL,'.','장형태','2025-04-15 22:46:36','2025-04-15 22:46:36',0,'active',NULL), +(7,'TKO-25003F','25년 안전보건시설설비',NULL,NULL,NULL,'.','.','2025-04-15 22:47:32','2025-04-15 22:47:32',0,'active',NULL), +(8,'TKG-25007P','P Project',NULL,NULL,NULL,'오창읍','장형태','2025-04-15 22:48:50','2025-04-15 22:48:50',0,'active',NULL), +(10,'TKR-25008P','DIG Airgas LG CHEM',NULL,NULL,NULL,'여수','서태원','2025-04-15 22:50:05','2025-04-15 22:50:05',0,'active',NULL), +(11,'TKR-25010P','FK FISCHER Project',NULL,NULL,NULL,'울산','전상신','2025-04-15 22:51:12','2025-04-15 22:51:12',0,'active',NULL), +(12,'TKO-24007P','MP7 Project',NULL,NULL,NULL,'.','윤지민','2025-04-15 23:56:26','2025-04-15 23:56:26',0,'active',NULL), +(13,'연차/휴무','연차/휴무','2025-01-01','2025-12-31','.','.','.','2025-04-16 01:58:23','2025-04-16 01:58:23',1,'active',NULL), +(14,'TKO-25009R','M Project',NULL,NULL,NULL,NULL,'이민후','2025-09-28 22:13:33','2025-09-28 22:13:33',1,'active',NULL), +(15,'TKR-25013P','HAS MCS Plnat',NULL,'2026-03-31',NULL,NULL,NULL,'2026-01-06 06:16:37','2026-01-06 06:16:37',1,'active',NULL), +(16,'TKO-26003F','안전보건시설설비','2026-01-01','2026-12-31',NULL,NULL,NULL,'2026-01-06 06:17:33','2026-01-06 06:17:33',1,'active',NULL), +(17,'TKO-25014P','OT1-MPR-002',NULL,NULL,NULL,'말레이시아','윤지민','2026-02-04 21:35:22','2026-02-04 21:35:22',1,'active',NULL), +(18,'TKO025024P','H2 Gas Scrubber',NULL,'2026-07-31',NULL,NULL,'윤지민','2026-02-04 21:36:50','2026-02-04 21:36:50',1,'active',NULL); +/*!40000 ALTER TABLE `projects` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `role_default_pages` +-- + +DROP TABLE IF EXISTS `role_default_pages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `role_default_pages` ( + `role_id` int(10) unsigned NOT NULL, + `page_id` int(10) unsigned NOT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`role_id`,`page_id`), + KEY `role_default_pages_page_id_foreign` (`page_id`), + CONSTRAINT `role_default_pages_page_id_foreign` FOREIGN KEY (`page_id`) REFERENCES `pages` (`id`) ON DELETE CASCADE, + CONSTRAINT `role_default_pages_role_id_foreign` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `role_default_pages` +-- + +LOCK TABLES `role_default_pages` WRITE; +/*!40000 ALTER TABLE `role_default_pages` DISABLE KEYS */; +/*!40000 ALTER TABLE `role_default_pages` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `role_permissions` +-- + +DROP TABLE IF EXISTS `role_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `role_permissions` ( + `role_id` int(10) unsigned NOT NULL, + `permission_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`role_id`,`permission_id`), + KEY `role_permissions_permission_id_foreign` (`permission_id`), + CONSTRAINT `role_permissions_permission_id_foreign` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE, + CONSTRAINT `role_permissions_role_id_foreign` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `role_permissions` +-- + +LOCK TABLES `role_permissions` WRITE; +/*!40000 ALTER TABLE `role_permissions` DISABLE KEYS */; +INSERT INTO `role_permissions` VALUES +(1,1), +(1,2), +(1,3), +(1,4), +(1,5), +(1,6), +(1,7), +(1,8), +(1,9), +(1,10), +(1,11), +(1,12), +(1,13), +(1,14), +(1,15), +(1,16), +(2,1), +(2,2), +(2,3), +(2,4), +(2,5), +(2,6), +(2,7), +(2,8), +(2,12), +(2,13), +(2,14), +(4,2), +(4,5), +(4,6), +(4,7), +(4,9), +(4,10), +(4,11), +(4,12), +(4,13), +(4,14); +/*!40000 ALTER TABLE `role_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `roles` +-- + +DROP TABLE IF EXISTS `roles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `roles` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `description` varchar(255) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `roles_name_unique` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `roles` +-- + +LOCK TABLES `roles` WRITE; +/*!40000 ALTER TABLE `roles` DISABLE KEYS */; +INSERT INTO `roles` VALUES +(1,'System Admin','시스템 전체 관리자. 모든 권한을 가짐.','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(2,'Admin','관리자. 사용자 및 프로젝트 관리 등 대부분의 권한을 가짐.','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(4,'User','일반 사용자. 작업 보고서 및 프로젝트 관리 등 모든 일반 기능을 사용할 수 있음.','2026-01-19 00:49:29','2026-01-19 00:49:29'), +(5,'Guest','게스트 (계정 없이 특정 기능 접근 가능)','2026-01-19 01:40:56','2026-01-19 01:40:56'); +/*!40000 ALTER TABLE `roles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `safety_training_records` +-- + +DROP TABLE IF EXISTS `safety_training_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `safety_training_records` ( + `training_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '교육 기록 ID', + `request_id` int(10) unsigned NOT NULL COMMENT '출입 신청 ID', + `trainer_id` int(11) NOT NULL COMMENT '교육 진행자 user_id', + `training_date` date NOT NULL COMMENT '교육 날짜', + `training_start_time` time NOT NULL COMMENT '교육 시작 시간', + `training_end_time` time DEFAULT NULL COMMENT '교육 종료 시간', + `training_topics` text DEFAULT NULL COMMENT '교육 내용 (JSON 배열)', + `signature_data` longtext DEFAULT NULL COMMENT '교육 이수자 서명 (Base64 PNG)', + `completed_at` timestamp NULL DEFAULT NULL COMMENT '교육 완료 시간', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`training_id`), + KEY `safety_training_records_trainer_id_foreign` (`trainer_id`), + KEY `idx_training_date` (`training_date`), + KEY `idx_request_id` (`request_id`), + CONSTRAINT `safety_training_records_request_id_foreign` FOREIGN KEY (`request_id`) REFERENCES `workplace_visit_requests` (`request_id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `safety_training_records_trainer_id_foreign` FOREIGN KEY (`trainer_id`) REFERENCES `users` (`user_id`) ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `safety_training_records` +-- + +LOCK TABLES `safety_training_records` WRITE; +/*!40000 ALTER TABLE `safety_training_records` DISABLE KEYS */; +INSERT INTO `safety_training_records` VALUES +(1,1,1,'2026-01-29','15:04:41','15:04:41',NULL,NULL,NULL,'2026-01-29 06:04:41','2026-01-29 06:04:41'), +(2,1,1,'2026-01-29','15:04:41','15:04:41',NULL,NULL,NULL,'2026-01-29 06:04:41','2026-01-29 06:04:41'), +(3,1,1,'2026-01-29','15:08:41','15:08:41',NULL,NULL,NULL,'2026-01-29 06:08:41','2026-01-29 06:08:41'), +(4,1,1,'2026-01-29','15:08:41','15:08:41',NULL,NULL,NULL,'2026-01-29 06:08:41','2026-01-29 06:08:41'), +(5,2,1,'2026-01-29','15:12:11','15:12:11',NULL,NULL,NULL,'2026-01-29 06:12:11','2026-01-29 06:12:11'), +(6,2,1,'2026-01-29','15:12:11','15:12:11',NULL,NULL,NULL,'2026-01-29 06:12:11','2026-01-29 06:12:11'); +/*!40000 ALTER TABLE `safety_training_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tasks` +-- + +DROP TABLE IF EXISTS `tasks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tasks` ( + `task_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '작업 ID', + `work_type_id` int(11) DEFAULT NULL COMMENT '공정 ID (work_types 참조)', + `task_name` varchar(255) NOT NULL COMMENT '작업명', + `description` text DEFAULT NULL COMMENT '작업 설명', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성화 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '생성일시', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '수정일시', + PRIMARY KEY (`task_id`), + KEY `tasks_work_type_id_index` (`work_type_id`), + KEY `tasks_is_active_index` (`is_active`), + CONSTRAINT `tasks_work_type_id_foreign` FOREIGN KEY (`work_type_id`) REFERENCES `work_types` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tasks` +-- + +LOCK TABLES `tasks` WRITE; +/*!40000 ALTER TABLE `tasks` DISABLE KEYS */; +INSERT INTO `tasks` VALUES +(1,1,'H빔 절단',NULL,1,'2026-01-26 21:54:17','2026-01-26 21:54:17'), +(2,1,'H빔 가공','끝단 가공 등 전부 포함',1,'2026-02-04 21:47:35','2026-02-04 21:47:35'), +(3,1,'용접',NULL,1,'2026-02-04 21:47:53','2026-02-04 21:47:53'), +(4,1,'서포트 제작(홀 가공 포함)',NULL,1,'2026-02-04 21:48:15','2026-02-04 21:48:15'), +(5,2,'Plate 하차',NULL,1,'2026-02-04 21:48:30','2026-02-04 21:48:30'), +(6,2,'Plate 마킹',NULL,1,'2026-02-04 21:48:38','2026-02-04 21:48:38'), +(7,2,'Plate 가공 출하',NULL,1,'2026-02-04 21:48:59','2026-02-04 21:48:59'), +(8,2,'동체 L심 용접',NULL,1,'2026-02-04 21:49:19','2026-02-04 21:49:19'), +(9,2,'C심 용접',NULL,1,'2026-02-04 21:49:29','2026-02-04 21:49:29'), +(10,2,'노즐 용접',NULL,1,'2026-02-04 21:49:36','2026-02-04 21:49:48'), +(11,2,'자재 절단',NULL,1,'2026-02-04 21:49:55','2026-02-04 21:49:55'), +(12,2,'검사 지원',NULL,1,'2026-02-04 21:50:16','2026-02-04 21:50:16'), +(13,3,'pipe 절단',NULL,1,'2026-02-04 21:50:31','2026-02-04 21:50:31'), +(14,3,'배관 취부',NULL,1,'2026-02-04 21:50:39','2026-02-04 21:50:39'), +(15,3,'용접',NULL,1,'2026-02-04 21:50:43','2026-02-04 21:50:43'), +(16,3,'선 작업(용접전 작업 준비)','갭링, 면취 등 모든 선 작업',1,'2026-02-04 21:51:22','2026-02-04 21:51:22'), +(17,3,'1차 조립',NULL,1,'2026-02-04 21:51:31','2026-02-04 21:51:31'), +(18,3,'검사 지원',NULL,1,'2026-02-04 21:51:36','2026-02-04 21:51:36'), +(19,3,'2차 조립',NULL,1,'2026-02-04 21:51:41','2026-02-04 21:51:41'), +(20,11,'배우자출산휴가',NULL,1,'2026-02-04 22:41:40','2026-02-04 22:41:40'), +(21,11,'연차',NULL,1,'2026-02-04 22:41:46','2026-02-04 22:41:46'), +(22,11,'반차',NULL,1,'2026-02-04 22:41:51','2026-02-04 22:41:51'), +(23,11,'반반차',NULL,1,'2026-02-04 22:41:57','2026-02-04 22:41:57'), +(24,11,'조퇴',NULL,1,'2026-02-04 22:42:05','2026-02-04 22:42:05'), +(25,12,'설비제작',NULL,1,'2026-02-04 23:47:01','2026-02-04 23:47:01'), +(26,2,'자재 가공',NULL,1,'2026-02-05 01:01:48','2026-02-05 01:01:48'); +/*!40000 ALTER TABLE `tasks` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tasks_old_backup` +-- + +DROP TABLE IF EXISTS `tasks_old_backup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tasks_old_backup` ( + `task_id` int(11) NOT NULL AUTO_INCREMENT, + `category` varchar(255) NOT NULL, + `subcategory` varchar(255) DEFAULT NULL, + `task_name` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + PRIMARY KEY (`task_id`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tasks_old_backup` +-- + +LOCK TABLES `tasks_old_backup` WRITE; +/*!40000 ALTER TABLE `tasks_old_backup` DISABLE KEYS */; +INSERT INTO `tasks_old_backup` VALUES +(1,'Base','Fabrication','용접','...','2025-04-15 10:41:43','2025-04-15 10:41:43'), +(3,'Vessel','MI and Marking','Marking','..','2025-04-15 22:25:58','2025-04-15 22:25:58'), +(4,'Vessel','Cutting','자재 커팅','..','2025-04-15 22:26:17','2025-04-15 22:26:17'), +(5,'Vessel','Fabrication','용접','..','2025-04-15 22:26:43','2025-04-15 22:26:43'), +(7,'PKG','Pipe Pre-Fabrication','취부&용접','배관사 1명\n용접사 1명','2025-04-15 22:37:14','2025-04-15 22:37:14'), +(8,'PKG','1st Piping Assembly','1차 조립','.','2025-04-15 22:38:49','2025-04-15 22:38:49'), +(9,'PKG','Re-Assembly','재조립','.','2025-04-15 22:39:18','2025-04-15 22:39:18'), +(13,'작업지원','구매팀','.','.','2025-04-16 03:03:40','2025-04-16 03:03:40'), +(14,'기타','시설설비제작','.','.','2025-04-16 03:30:53','2025-04-16 03:30:53'), +(15,'기타','휴가/연차/휴무','.','.','2025-04-16 05:18:13','2025-04-16 05:18:13'), +(16,'PKG','제품설치','설치작업','Skid, 용기 등 설치','2025-04-29 04:39:36','2025-04-29 04:39:36'), +(18,'작업지원','품질팀','test지원','.','2025-06-25 07:07:08','2025-06-25 07:07:08'); +/*!40000 ALTER TABLE `tasks_old_backup` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tbm_safety_checks` +-- + +DROP TABLE IF EXISTS `tbm_safety_checks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tbm_safety_checks` ( + `check_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `check_category` varchar(50) NOT NULL COMMENT '카테고리 (장비, PPE, 환경 등)', + `check_type` enum('basic','weather','task') DEFAULT 'basic', + `weather_condition` varchar(50) DEFAULT NULL, + `task_id` int(10) unsigned DEFAULT NULL, + `check_item` varchar(200) NOT NULL COMMENT '체크 항목', + `description` text DEFAULT NULL COMMENT '설명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_required` tinyint(1) DEFAULT 1 COMMENT '필수 체크 여부', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`check_id`), + KEY `tbm_safety_checks_check_category_index` (`check_category`), + KEY `tbm_safety_checks_check_type_index` (`check_type`), + KEY `tbm_safety_checks_weather_condition_index` (`weather_condition`), + KEY `tbm_safety_checks_task_id_index` (`task_id`) +) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tbm_safety_checks` +-- + +LOCK TABLES `tbm_safety_checks` WRITE; +/*!40000 ALTER TABLE `tbm_safety_checks` DISABLE KEYS */; +INSERT INTO `tbm_safety_checks` VALUES +(1,'PPE','basic',NULL,NULL,'안전모 착용 확인',NULL,1,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(2,'PPE','basic',NULL,NULL,'안전화 착용 확인',NULL,2,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(3,'PPE','basic',NULL,NULL,'안전조끼 착용 확인',NULL,3,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(4,'PPE','basic',NULL,NULL,'안전벨트 착용 확인 (고소작업 시)',NULL,4,0,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(5,'PPE','basic',NULL,NULL,'보안경/마스크 착용 확인',NULL,5,0,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(6,'EQUIPMENT','basic',NULL,NULL,'작업 도구 점검 완료',NULL,10,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(7,'EQUIPMENT','basic',NULL,NULL,'전동공구 안전 점검',NULL,11,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(8,'EQUIPMENT','basic',NULL,NULL,'사다리/비계 안전 확인',NULL,12,0,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(9,'EQUIPMENT','basic',NULL,NULL,'차량/중장비 점검 완료',NULL,13,0,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(10,'ENVIRONMENT','basic',NULL,NULL,'작업 장소 정리정돈 확인',NULL,20,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(11,'ENVIRONMENT','basic',NULL,NULL,'위험 구역 표시 확인',NULL,21,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(12,'ENVIRONMENT','basic',NULL,NULL,'기상 상태 확인 (우천, 강풍 등)',NULL,22,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(13,'ENVIRONMENT','basic',NULL,NULL,'작업 동선 안전 확인',NULL,23,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(14,'EMERGENCY','basic',NULL,NULL,'비상연락망 공유 완료',NULL,30,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(15,'EMERGENCY','basic',NULL,NULL,'소화기 위치 확인',NULL,31,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(16,'EMERGENCY','basic',NULL,NULL,'응급처치 키트 위치 확인',NULL,32,1,1,'2026-01-20 06:30:51','2026-01-20 06:30:51'), +(17,'WEATHER','weather','rain',NULL,'우의/우산 준비 확인','비 오는 날 우의 또는 우산 준비 여부',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(18,'WEATHER','weather','rain',NULL,'미끄럼 방지 조치 확인','빗물로 인한 미끄러움 방지 조치',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(19,'WEATHER','weather','rain',NULL,'전기 작업 중단 여부 확인','우천 시 전기 작업 중단 필요성 확인',3,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(20,'WEATHER','weather','rain',NULL,'배수 상태 확인','작업장 배수 상태 점검',4,0,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(21,'WEATHER','weather','snow',NULL,'제설 작업 완료 확인','작업장 주변 제설 작업 완료 여부',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(22,'WEATHER','weather','snow',NULL,'동파 방지 조치 확인','배관 및 설비 동파 방지 조치',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(23,'WEATHER','weather','snow',NULL,'미끄럼 방지 모래/염화칼슘 비치','미끄럼 방지를 위한 모래 또는 염화칼슘 비치',3,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(24,'WEATHER','weather','heat',NULL,'그늘막/휴게소 확보','무더위 휴식을 위한 그늘막 또는 휴게소 확보',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(25,'WEATHER','weather','heat',NULL,'음료수/식염 포도당 비치','열사병 예방을 위한 음료수 및 염분 보충제 비치',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(26,'WEATHER','weather','heat',NULL,'무더위 휴식 시간 확보','10~15시 사이 충분한 휴식 시간 확보',3,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(27,'WEATHER','weather','heat',NULL,'작업자 건강 상태 확인','열사병 증상 체크 및 건강 상태 확인',4,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(28,'WEATHER','weather','cold',NULL,'방한복/방한장갑 착용 확인','동상 방지를 위한 방한복 및 방한장갑 착용',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(29,'WEATHER','weather','cold',NULL,'난방시설 가동 확인','휴게 공간 난방시설 가동 상태 확인',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(30,'WEATHER','weather','cold',NULL,'온열 음료 비치','체온 유지를 위한 따뜻한 음료 비치',3,0,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(31,'WEATHER','weather','wind',NULL,'고소 작업 중단 여부 확인','강풍 시 고소 작업 중단 필요성 확인',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(32,'WEATHER','weather','wind',NULL,'자재/장비 결박 확인','바람에 날릴 수 있는 자재 및 장비 고정',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(33,'WEATHER','weather','wind',NULL,'가설물 안전 점검','가설 구조물 및 비계 안전 상태 점검',3,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(34,'WEATHER','weather','wind',NULL,'크레인 작업 중단 여부 확인','강풍 시 크레인 작업 중단 필요성 확인',4,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(35,'WEATHER','weather','fog',NULL,'경광등/조명 확보','시정 확보를 위한 경광등 및 조명 설치',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(36,'WEATHER','weather','fog',NULL,'차량 운행 주의 안내','안개로 인한 차량 운행 주의 안내',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(37,'WEATHER','weather','fog',NULL,'작업 구역 표시 강화','시인성 확보를 위한 작업 구역 표시 강화',3,0,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(38,'WEATHER','weather','dust',NULL,'보호 마스크 착용 확인','KF94 이상 마스크 착용 여부 확인',1,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(39,'WEATHER','weather','dust',NULL,'실외 작업 시간 조정','미세먼지 농도에 따른 실외 작업 시간 조정',2,1,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'), +(40,'WEATHER','weather','dust',NULL,'호흡기 질환자 실내 배치','호흡기 질환 작업자 실내 작업 배치',3,0,1,'2026-02-02 01:44:54','2026-02-02 01:44:54'); +/*!40000 ALTER TABLE `tbm_safety_checks` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tbm_safety_records` +-- + +DROP TABLE IF EXISTS `tbm_safety_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tbm_safety_records` ( + `record_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` int(10) unsigned NOT NULL COMMENT 'TBM 세션 ID', + `check_id` int(10) unsigned NOT NULL COMMENT '체크 항목 ID', + `is_checked` tinyint(1) DEFAULT 0 COMMENT '체크 여부', + `notes` text DEFAULT NULL COMMENT '비고/특이사항', + `checked_by` int(11) DEFAULT NULL COMMENT '체크한 user_id', + `checked_at` timestamp NULL DEFAULT NULL COMMENT '체크 시간', + PRIMARY KEY (`record_id`), + UNIQUE KEY `tbm_safety_records_session_id_check_id_unique` (`session_id`,`check_id`), + KEY `tbm_safety_records_check_id_foreign` (`check_id`), + KEY `tbm_safety_records_checked_by_foreign` (`checked_by`), + CONSTRAINT `tbm_safety_records_check_id_foreign` FOREIGN KEY (`check_id`) REFERENCES `tbm_safety_checks` (`check_id`), + CONSTRAINT `tbm_safety_records_checked_by_foreign` FOREIGN KEY (`checked_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `tbm_safety_records_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `tbm_sessions` (`session_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tbm_safety_records` +-- + +LOCK TABLES `tbm_safety_records` WRITE; +/*!40000 ALTER TABLE `tbm_safety_records` DISABLE KEYS */; +/*!40000 ALTER TABLE `tbm_safety_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tbm_sessions` +-- + +DROP TABLE IF EXISTS `tbm_sessions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tbm_sessions` ( + `session_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_date` date NOT NULL COMMENT 'TBM 날짜', + `leader_id` int(11) DEFAULT NULL, + `project_id` int(11) DEFAULT NULL COMMENT '프로젝트 ID', + `work_location` varchar(200) DEFAULT NULL COMMENT '작업 장소', + `status` enum('draft','completed','cancelled') DEFAULT 'draft' COMMENT '상태', + `end_time` time DEFAULT NULL COMMENT 'TBM 종료 시간', + `created_by` int(11) NOT NULL COMMENT '생성자 user_id', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + `work_type_id` int(11) DEFAULT NULL COMMENT '공정 ID (work_types 참조)', + `task_id` int(10) unsigned DEFAULT NULL COMMENT '작업 ID (tasks 참조)', + PRIMARY KEY (`session_id`), + KEY `tbm_sessions_session_date_leader_id_index` (`session_date`,`leader_id`), + KEY `tbm_sessions_project_id_foreign` (`project_id`), + KEY `tbm_sessions_created_by_foreign` (`created_by`), + KEY `tbm_sessions_work_type_id_index` (`work_type_id`), + KEY `tbm_sessions_task_id_index` (`task_id`), + KEY `tbm_sessions_leader_id_foreign` (`leader_id`), + CONSTRAINT `tbm_sessions_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `tbm_sessions_leader_id_foreign` FOREIGN KEY (`leader_id`) REFERENCES `workers` (`worker_id`) ON DELETE SET NULL, + CONSTRAINT `tbm_sessions_project_id_foreign` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) ON DELETE SET NULL, + CONSTRAINT `tbm_sessions_task_id_foreign` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`task_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `tbm_sessions_work_type_id_foreign` FOREIGN KEY (`work_type_id`) REFERENCES `work_types` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tbm_sessions` +-- + +LOCK TABLES `tbm_sessions` WRITE; +/*!40000 ALTER TABLE `tbm_sessions` DISABLE KEYS */; +/*!40000 ALTER TABLE `tbm_sessions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tbm_team_assignments` +-- + +DROP TABLE IF EXISTS `tbm_team_assignments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tbm_team_assignments` ( + `assignment_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` int(10) unsigned NOT NULL COMMENT 'TBM 세션 ID', + `worker_id` int(11) NOT NULL COMMENT '팀원 worker_id', + `assigned_role` varchar(100) DEFAULT NULL COMMENT '역할/담당', + `work_detail` text DEFAULT NULL COMMENT '세부 작업 내용', + `is_present` tinyint(1) DEFAULT 1 COMMENT '출석 여부', + `absence_reason` text DEFAULT NULL COMMENT '결석 사유', + `assigned_at` timestamp NOT NULL DEFAULT current_timestamp(), + `project_id` int(11) DEFAULT NULL COMMENT '작업자별 프로젝트 ID', + `work_type_id` int(11) DEFAULT NULL COMMENT '작업자별 공정 ID', + `task_id` int(10) unsigned DEFAULT NULL COMMENT '작업자별 작업 ID', + `workplace_category_id` int(10) unsigned DEFAULT NULL COMMENT '작업자별 작업장 대분류 (공장)', + `workplace_id` int(10) unsigned DEFAULT NULL COMMENT '작업자별 작업장 ID', + PRIMARY KEY (`assignment_id`), + UNIQUE KEY `tbm_team_assignments_session_id_worker_id_unique` (`session_id`,`worker_id`), + KEY `tbm_team_assignments_worker_id_foreign` (`worker_id`), + KEY `tbm_team_assignments_project_id_foreign` (`project_id`), + KEY `tbm_team_assignments_work_type_id_foreign` (`work_type_id`), + KEY `tbm_team_assignments_task_id_foreign` (`task_id`), + KEY `tbm_team_assignments_workplace_category_id_foreign` (`workplace_category_id`), + KEY `tbm_team_assignments_workplace_id_foreign` (`workplace_id`), + CONSTRAINT `tbm_team_assignments_project_id_foreign` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `tbm_team_assignments_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `tbm_sessions` (`session_id`) ON DELETE CASCADE, + CONSTRAINT `tbm_team_assignments_task_id_foreign` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`task_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `tbm_team_assignments_work_type_id_foreign` FOREIGN KEY (`work_type_id`) REFERENCES `work_types` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `tbm_team_assignments_worker_id_foreign` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`), + CONSTRAINT `tbm_team_assignments_workplace_category_id_foreign` FOREIGN KEY (`workplace_category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `tbm_team_assignments_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tbm_team_assignments` +-- + +LOCK TABLES `tbm_team_assignments` WRITE; +/*!40000 ALTER TABLE `tbm_team_assignments` DISABLE KEYS */; +/*!40000 ALTER TABLE `tbm_team_assignments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `tbm_weather_records` +-- + +DROP TABLE IF EXISTS `tbm_weather_records`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tbm_weather_records` ( + `record_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` int(10) unsigned NOT NULL, + `weather_date` date NOT NULL, + `temperature` decimal(4,1) DEFAULT NULL, + `humidity` int(11) DEFAULT NULL, + `wind_speed` decimal(4,1) DEFAULT NULL, + `precipitation` decimal(5,1) DEFAULT NULL, + `sky_condition` varchar(50) DEFAULT NULL, + `weather_condition` varchar(50) DEFAULT NULL, + `weather_conditions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`weather_conditions`)), + `data_source` varchar(50) DEFAULT 'api', + `fetched_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`record_id`), + UNIQUE KEY `tbm_weather_records_session_id_unique` (`session_id`), + KEY `tbm_weather_records_weather_date_index` (`weather_date`), + CONSTRAINT `tbm_weather_records_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `tbm_sessions` (`session_id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `tbm_weather_records` +-- + +LOCK TABLES `tbm_weather_records` WRITE; +/*!40000 ALTER TABLE `tbm_weather_records` DISABLE KEYS */; +INSERT INTO `tbm_weather_records` VALUES +(1,12,'2026-02-02',20.0,50,2.0,0.0,NULL,'clear','[\"clear\"]','api','2026-02-02 04:00:40','2026-02-02 04:00:40'); +/*!40000 ALTER TABLE `tbm_weather_records` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `team_handovers` +-- + +DROP TABLE IF EXISTS `team_handovers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `team_handovers` ( + `handover_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `session_id` int(10) unsigned NOT NULL COMMENT 'TBM 세션 ID', + `from_leader_id` int(11) NOT NULL COMMENT '인계자 worker_id', + `to_leader_id` int(11) NOT NULL COMMENT '인수자 worker_id', + `handover_date` date NOT NULL COMMENT '인계 날짜', + `handover_time` time DEFAULT NULL COMMENT '인계 시간', + `reason` enum('half_day','early_leave','emergency','other') NOT NULL COMMENT '인계 사유', + `handover_notes` text DEFAULT NULL COMMENT '인계 내용', + `worker_ids` text DEFAULT NULL COMMENT '인계하는 작업자 IDs (JSON array)', + `is_confirmed` tinyint(1) DEFAULT 0 COMMENT '인수 확인 여부', + `confirmed_at` timestamp NULL DEFAULT NULL COMMENT '인수 확인 시간', + `confirmed_by` int(11) DEFAULT NULL COMMENT '인수 확인자 user_id', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`handover_id`), + KEY `team_handovers_session_id_handover_date_index` (`session_id`,`handover_date`), + KEY `team_handovers_from_leader_id_foreign` (`from_leader_id`), + KEY `team_handovers_to_leader_id_foreign` (`to_leader_id`), + KEY `team_handovers_confirmed_by_foreign` (`confirmed_by`), + CONSTRAINT `team_handovers_confirmed_by_foreign` FOREIGN KEY (`confirmed_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `team_handovers_from_leader_id_foreign` FOREIGN KEY (`from_leader_id`) REFERENCES `workers` (`worker_id`), + CONSTRAINT `team_handovers_session_id_foreign` FOREIGN KEY (`session_id`) REFERENCES `tbm_sessions` (`session_id`) ON DELETE CASCADE, + CONSTRAINT `team_handovers_to_leader_id_foreign` FOREIGN KEY (`to_leader_id`) REFERENCES `workers` (`worker_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `team_handovers` +-- + +LOCK TABLES `team_handovers` WRITE; +/*!40000 ALTER TABLE `team_handovers` DISABLE KEYS */; +/*!40000 ALTER TABLE `team_handovers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `uploaded_documents` +-- + +DROP TABLE IF EXISTS `uploaded_documents`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `uploaded_documents` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `title` varchar(255) NOT NULL, + `tags` varchar(255) DEFAULT NULL, + `description` text DEFAULT NULL, + `original_name` varchar(255) DEFAULT NULL, + `stored_name` varchar(255) NOT NULL, + `file_path` varchar(500) DEFAULT NULL, + `file_type` varchar(50) DEFAULT NULL, + `file_size` int(11) DEFAULT NULL, + `submitted_by` varchar(100) DEFAULT NULL, + `dt_imported` tinyint(1) DEFAULT 0, + `dt_uuid` varchar(100) DEFAULT NULL, + `of_task_created` tinyint(1) DEFAULT 0, + `created_at` datetime DEFAULT current_timestamp(), + `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `uploaded_documents` +-- + +LOCK TABLES `uploaded_documents` WRITE; +/*!40000 ALTER TABLE `uploaded_documents` DISABLE KEYS */; +/*!40000 ALTER TABLE `uploaded_documents` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `user_page_access` +-- + +DROP TABLE IF EXISTS `user_page_access`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user_page_access` ( + `user_id` int(11) NOT NULL, + `page_id` int(10) unsigned NOT NULL, + `can_access` tinyint(1) DEFAULT 1, + `granted_at` timestamp NOT NULL DEFAULT current_timestamp(), + `granted_by` int(11) DEFAULT NULL, + PRIMARY KEY (`user_id`,`page_id`), + KEY `user_page_access_page_id_foreign` (`page_id`), + KEY `user_page_access_granted_by_foreign` (`granted_by`), + CONSTRAINT `user_page_access_granted_by_foreign` FOREIGN KEY (`granted_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL, + CONSTRAINT `user_page_access_page_id_foreign` FOREIGN KEY (`page_id`) REFERENCES `pages` (`id`) ON DELETE CASCADE, + CONSTRAINT `user_page_access_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user_page_access` +-- + +LOCK TABLES `user_page_access` WRITE; +/*!40000 ALTER TABLE `user_page_access` DISABLE KEYS */; +INSERT INTO `user_page_access` VALUES +(1,26,1,'2026-01-28 05:55:06',1), +(1,27,1,'2026-01-28 05:55:06',1), +(1,29,1,'2026-01-28 05:55:06',1), +(27,12,1,'2026-02-02 01:01:57',NULL), +(27,13,1,'2026-02-02 01:01:57',NULL), +(27,14,0,'2026-02-02 01:01:57',NULL), +(27,15,0,'2026-02-02 01:01:57',NULL), +(27,16,0,'2026-02-02 01:01:57',NULL), +(27,18,0,'2026-02-02 01:01:57',NULL), +(27,19,0,'2026-02-02 01:01:57',NULL), +(27,20,0,'2026-02-02 01:01:57',NULL), +(27,21,0,'2026-02-02 01:01:57',NULL), +(27,22,1,'2026-02-02 01:01:57',NULL), +(27,25,0,'2026-02-02 01:01:57',NULL), +(27,26,0,'2026-02-02 01:01:57',NULL), +(27,27,0,'2026-02-02 01:01:57',NULL), +(27,29,0,'2026-02-02 01:01:57',NULL), +(27,34,0,'2026-02-02 01:01:57',NULL), +(27,35,0,'2026-02-02 01:01:57',NULL), +(27,36,0,'2026-02-02 01:01:57',NULL), +(27,37,0,'2026-02-02 01:01:57',NULL), +(27,38,0,'2026-02-02 01:01:57',NULL), +(27,39,0,'2026-02-02 01:01:57',NULL), +(27,40,0,'2026-02-02 01:01:57',NULL), +(27,41,0,'2026-02-02 01:01:57',NULL), +(27,42,0,'2026-02-02 01:01:57',NULL), +(27,43,0,'2026-02-02 01:01:57',NULL); +/*!40000 ALTER TABLE `user_page_access` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `user_permissions` +-- + +DROP TABLE IF EXISTS `user_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user_permissions` ( + `user_id` int(10) unsigned NOT NULL, + `permission_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`user_id`,`permission_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user_permissions` +-- + +LOCK TABLES `user_permissions` WRITE; +/*!40000 ALTER TABLE `user_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `user_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users` ( + `user_id` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(100) NOT NULL, + `password` varchar(255) NOT NULL, + `_role_old` varchar(30) DEFAULT NULL, + `created_at` timestamp NULL DEFAULT current_timestamp(), + `_access_level_old` varchar(30) DEFAULT NULL, + `worker_id` int(11) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `last_login_at` datetime DEFAULT NULL, + `password_changed_at` datetime DEFAULT NULL, + `failed_login_attempts` int(11) DEFAULT 0, + `locked_until` datetime DEFAULT NULL, + `name` varchar(50) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `role_id` int(10) unsigned DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`user_id`), + UNIQUE KEY `username` (`username`), + UNIQUE KEY `email` (`email`), + KEY `fk_worker` (`worker_id`), + KEY `idx_username` (`username`), + KEY `idx_active_users` (`is_active`,`_access_level_old`), + KEY `users_role_id_foreign` (`role_id`), + CONSTRAINT `fk_worker` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`), + CONSTRAINT `users_role_id_foreign` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES +(1,'hyungi','$2b$10$lwSfKipx0fQ.9nfMUBmzt.WXzerdxuT5MVX4b3YhFeHxyYlUjM7bi',NULL,'2025-05-06 05:03:02','system',NULL,1,'2026-02-05 22:40:53','2025-05-06 05:03:02',0,NULL,'안현기',NULL,2,'2026-02-05 22:40:53'), +(3,'김두수','$2a$10$z3i2EVOotRFBj.KHzx5LQOKlXD0QHLNFEvJcd6FlO6/1TCYGk6SSu',NULL,'2025-06-07 23:48:35',NULL,1,1,'2026-02-03 05:43:08','2025-06-15 07:40:39',0,NULL,'김두수',NULL,4,'2026-02-03 21:44:25'), +(5,'임영규','$2a$10$66ps/MEEi4BVABfJc5P0y.yCap09NhTMyd1A/7rFVxESytQGlB3wC',NULL,'2025-06-15 07:41:02',NULL,2,1,'2025-12-10 15:55:48','2025-06-15 07:41:02',0,NULL,'임영규',NULL,4,'2026-02-03 21:44:32'), +(6,'반치원','$2a$10$jcn6f7flRLZlr5yKQcXDIePodRK0rsM4deNnNGjuOlredeTVsRYZ6',NULL,'2025-06-15 07:41:32',NULL,3,1,'2025-11-05 01:56:13','2025-06-15 07:41:32',5,'2025-11-25 16:22:46','반치원',NULL,4,'2026-02-03 21:44:36'), +(7,'khahn','$2a$10$vQcJ3C37TPGweYF8rok2quzN2DK9lgxiqDAXV38vvPVjRdz3l6M8y',NULL,'2025-11-05 02:18:15',NULL,NULL,1,'2025-11-05 15:56:23',NULL,0,NULL,'khahn',NULL,2,'2025-11-05 06:56:23'); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vacation_balance_details` +-- + +DROP TABLE IF EXISTS `vacation_balance_details`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `vacation_balance_details` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `vacation_type_id` int(10) unsigned NOT NULL COMMENT '휴가 유형 ID', + `year` int(11) NOT NULL COMMENT '연도', + `total_days` decimal(4,1) DEFAULT 0.0 COMMENT '총 발생 일수', + `used_days` decimal(4,1) DEFAULT 0.0 COMMENT '사용 일수', + `notes` text DEFAULT NULL COMMENT '비고', + `created_by` int(11) NOT NULL COMMENT '생성자 ID', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + `remaining_days` decimal(4,1) GENERATED ALWAYS AS (`total_days` - `used_days`) STORED COMMENT '잔여 일수', + PRIMARY KEY (`id`), + UNIQUE KEY `unique_worker_vacation_year` (`worker_id`,`vacation_type_id`,`year`), + KEY `idx_worker_year` (`worker_id`,`year`), + KEY `idx_vacation_type` (`vacation_type_id`), + KEY `vacation_balance_details_created_by_foreign` (`created_by`), + CONSTRAINT `vacation_balance_details_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `vacation_balance_details_vacation_type_id_foreign` FOREIGN KEY (`vacation_type_id`) REFERENCES `vacation_types` (`id`), + CONSTRAINT `vacation_balance_details_worker_id_foreign` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vacation_balance_details` +-- + +LOCK TABLES `vacation_balance_details` WRITE; +/*!40000 ALTER TABLE `vacation_balance_details` DISABLE KEYS */; +INSERT INTO `vacation_balance_details` VALUES +(1,1,1,2026,17.0,0.0,NULL,1,'2026-01-19 01:40:31','2026-02-05 06:17:09',17.0), +(2,2,1,2026,17.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',17.0), +(3,4,1,2026,17.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',17.0), +(4,5,1,2026,16.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',16.0), +(5,6,1,2026,17.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',17.0), +(6,7,1,2026,15.0,0.0,'Migrated from worker_vacation_balance',1,'2026-01-19 01:40:56','2026-01-19 01:40:56',15.0), +(7,8,1,2026,16.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',16.0), +(8,9,1,2026,15.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',15.0), +(9,10,1,2026,15.0,0.0,NULL,1,'2026-01-19 01:40:56','2026-02-05 06:17:09',15.0), +(10,12,1,2026,15.0,0.0,'Migrated from worker_vacation_balance',1,'2026-01-19 01:40:56','2026-01-19 01:40:56',15.0), +(14,3,1,2026,16.0,0.0,NULL,1,'2026-02-05 06:12:39','2026-02-05 06:17:09',16.0), +(16,11,1,2026,11.0,0.0,NULL,1,'2026-02-05 06:12:39','2026-02-05 06:17:09',11.0), +(31,1,6,2026,2.3,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',2.3), +(33,1,7,2026,3.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',3.0), +(34,6,6,2026,3.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',3.0), +(36,6,7,2026,3.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',3.0), +(37,9,6,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(39,9,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(40,3,6,2026,1.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',1.0), +(42,3,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(43,2,6,2026,1.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',1.0), +(45,2,7,2026,3.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',3.0), +(46,11,6,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(48,11,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(49,10,6,2026,-0.8,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',-0.8), +(51,10,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(52,8,6,2026,2.3,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',2.3), +(54,8,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(55,5,6,2026,2.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',2.0), +(57,5,7,2026,0.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.0), +(58,4,6,2026,0.8,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',0.8), +(60,4,7,2026,3.0,0.0,NULL,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',3.0); +/*!40000 ALTER TABLE `vacation_balance_details` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vacation_requests` +-- + +DROP TABLE IF EXISTS `vacation_requests`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `vacation_requests` ( + `request_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '휴가 신청 ID', + `worker_id` int(11) NOT NULL COMMENT '작업자 ID', + `vacation_type_id` int(10) unsigned NOT NULL COMMENT '휴가 유형 ID', + `start_date` date NOT NULL COMMENT '휴가 시작일', + `end_date` date NOT NULL COMMENT '휴가 종료일', + `days_used` decimal(4,1) NOT NULL COMMENT '사용 일수 (0.5일 단위)', + `reason` text DEFAULT NULL COMMENT '휴가 사유', + `status` enum('pending','approved','rejected') NOT NULL DEFAULT 'pending' COMMENT '승인 상태: pending(대기), approved(승인), rejected(거부)', + `requested_by` int(11) NOT NULL COMMENT '신청자 user_id', + `reviewed_by` int(11) DEFAULT NULL COMMENT '승인/거부자 user_id', + `reviewed_at` timestamp NULL DEFAULT NULL COMMENT '승인/거부 일시', + `review_note` text DEFAULT NULL COMMENT '승인/거부 메모', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '신청 일시', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '수정 일시', + PRIMARY KEY (`request_id`), + KEY `vacation_requests_vacation_type_id_foreign` (`vacation_type_id`), + KEY `vacation_requests_requested_by_foreign` (`requested_by`), + KEY `vacation_requests_reviewed_by_foreign` (`reviewed_by`), + KEY `idx_vacation_requests_worker` (`worker_id`), + KEY `idx_vacation_requests_status` (`status`), + KEY `idx_vacation_requests_dates` (`start_date`,`end_date`), + CONSTRAINT `vacation_requests_requested_by_foreign` FOREIGN KEY (`requested_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `vacation_requests_reviewed_by_foreign` FOREIGN KEY (`reviewed_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL, + CONSTRAINT `vacation_requests_vacation_type_id_foreign` FOREIGN KEY (`vacation_type_id`) REFERENCES `vacation_types` (`id`), + CONSTRAINT `vacation_requests_worker_id_foreign` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vacation_requests` +-- + +LOCK TABLES `vacation_requests` WRITE; +/*!40000 ALTER TABLE `vacation_requests` DISABLE KEYS */; +/*!40000 ALTER TABLE `vacation_requests` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `vacation_types` +-- + +DROP TABLE IF EXISTS `vacation_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `vacation_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `type_code` varchar(20) NOT NULL COMMENT '휴가 코드', + `type_name` varchar(50) NOT NULL COMMENT '휴가 이름', + `deduct_days` decimal(3,1) DEFAULT 1.0 COMMENT '차감 일수', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + `is_special` tinyint(1) DEFAULT 0 COMMENT '특별 휴가 여부 (장기근속, 출산 등)', + `priority` int(11) DEFAULT 99 COMMENT '차감 우선순위 (낮을수록 먼저 차감)', + `description` text DEFAULT NULL COMMENT '휴가 설명', + `is_system` tinyint(1) DEFAULT 1 COMMENT '시스템 기본 휴가 (삭제 불가)', + PRIMARY KEY (`id`), + UNIQUE KEY `vacation_types_type_code_unique` (`type_code`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `vacation_types` +-- + +LOCK TABLES `vacation_types` WRITE; +/*!40000 ALTER TABLE `vacation_types` DISABLE KEYS */; +INSERT INTO `vacation_types` VALUES +(1,'ANNUAL_FULL','연차',1.0,1,'2025-11-03 06:48:45','2025-11-03 06:48:45',0,1,'하루 전체 연차',1), +(2,'ANNUAL_HALF','반차',0.5,1,'2025-11-03 06:48:45','2025-11-03 06:48:45',0,2,'반일 연차',1), +(3,'ANNUAL_QUARTER','반반차',0.3,1,'2025-11-03 06:48:45','2025-11-03 06:48:45',0,3,'1/4일 연차',1), +(4,'SICK_FULL','병가',1.0,1,'2025-11-03 06:48:45','2025-11-03 06:48:45',0,4,'하루 전체 병가',1), +(5,'SICK_HALF','반일병가',0.5,1,'2025-11-03 06:48:45','2025-11-03 06:48:45',0,5,'반일 병가',1), +(6,'CARRYOVER','이월',1.0,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',1,1,NULL,0), +(7,'LONG_SERVICE','장기근속',1.0,1,'2026-02-05 06:17:09','2026-02-05 06:17:09',1,3,NULL,0); +/*!40000 ALTER TABLE `vacation_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `visit_purpose_types` +-- + +DROP TABLE IF EXISTS `visit_purpose_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `visit_purpose_types` ( + `purpose_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '방문 목적 ID', + `purpose_name` varchar(100) NOT NULL COMMENT '방문 목적명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`purpose_id`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `visit_purpose_types` +-- + +LOCK TABLES `visit_purpose_types` WRITE; +/*!40000 ALTER TABLE `visit_purpose_types` DISABLE KEYS */; +INSERT INTO `visit_purpose_types` VALUES +(1,'외주작업',1,1,'2026-01-29 05:26:17'), +(2,'검사',2,1,'2026-01-29 05:26:17'), +(3,'견학',3,1,'2026-01-29 05:26:17'), +(4,'기타',99,1,'2026-01-29 05:26:17'); +/*!40000 ALTER TABLE `visit_purpose_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `weather_conditions` +-- + +DROP TABLE IF EXISTS `weather_conditions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `weather_conditions` ( + `condition_code` varchar(50) NOT NULL, + `condition_name` varchar(100) NOT NULL, + `description` text DEFAULT NULL, + `icon` varchar(50) DEFAULT NULL, + `temp_threshold_min` decimal(4,1) DEFAULT NULL, + `temp_threshold_max` decimal(4,1) DEFAULT NULL, + `wind_threshold` decimal(4,1) DEFAULT NULL, + `precip_threshold` decimal(5,1) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `display_order` int(11) DEFAULT 0, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`condition_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `weather_conditions` +-- + +LOCK TABLES `weather_conditions` WRITE; +/*!40000 ALTER TABLE `weather_conditions` DISABLE KEYS */; +INSERT INTO `weather_conditions` VALUES +('clear','맑음','맑은 날씨','sunny',NULL,NULL,NULL,NULL,1,1,'2026-02-02 01:44:54'), +('cold','한파','기온 영하 10도 이하','cold',NULL,-10.0,NULL,NULL,1,5,'2026-02-02 01:44:54'), +('dust','미세먼지','미세먼지 나쁨 이상','dusty',NULL,NULL,NULL,NULL,1,8,'2026-02-02 01:44:54'), +('fog','안개','시정 1km 미만','foggy',NULL,NULL,NULL,NULL,1,7,'2026-02-02 01:44:54'), +('heat','폭염','기온 35도 이상','hot',35.0,NULL,NULL,NULL,1,4,'2026-02-02 01:44:54'), +('rain','비','비 오는 날씨','rainy',NULL,NULL,NULL,0.1,1,2,'2026-02-02 01:44:54'), +('snow','눈','눈 오는 날씨','snowy',NULL,NULL,NULL,NULL,1,3,'2026-02-02 01:44:54'), +('wind','강풍','풍속 10m/s 이상','windy',NULL,NULL,10.0,NULL,1,6,'2026-02-02 01:44:54'); +/*!40000 ALTER TABLE `weather_conditions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_attendance_types` +-- + +DROP TABLE IF EXISTS `work_attendance_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_attendance_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `type_code` varchar(20) NOT NULL COMMENT '유형 코드', + `type_name` varchar(50) NOT NULL COMMENT '유형 이름', + `description` text DEFAULT NULL COMMENT '설명', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `work_attendance_types_type_code_unique` (`type_code`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_attendance_types` +-- + +LOCK TABLES `work_attendance_types` WRITE; +/*!40000 ALTER TABLE `work_attendance_types` DISABLE KEYS */; +INSERT INTO `work_attendance_types` VALUES +(1,'REGULAR','정시근로','8시간 정규 근무',1,'2025-11-03 06:48:45','2025-11-03 06:48:45'), +(2,'OVERTIME','연장근로','8시간 초과 근무',1,'2025-11-03 06:48:45','2025-11-03 06:48:45'), +(3,'PARTIAL','부분근로','8시간 미만 근무',1,'2025-11-03 06:48:45','2025-11-03 06:48:45'), +(4,'VACATION','휴가근로','휴가와 함께하는 부분 근무',1,'2025-11-03 06:48:45','2025-11-03 06:48:45'); +/*!40000 ALTER TABLE `work_attendance_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_issue_reports` +-- + +DROP TABLE IF EXISTS `work_issue_reports`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_issue_reports` ( + `report_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '신고 ID', + `reporter_id` int(11) NOT NULL COMMENT '신고자 user_id', + `report_date` datetime DEFAULT current_timestamp() COMMENT '신고 일시', + `factory_category_id` int(10) unsigned DEFAULT NULL COMMENT '공장 카테고리 ID (지도 외 위치 시 null)', + `workplace_id` int(10) unsigned DEFAULT NULL COMMENT '작업장 ID (지도 외 위치 시 null)', + `custom_location` varchar(200) DEFAULT NULL COMMENT '기타 위치 (지도 외 선택 시)', + `tbm_session_id` int(10) unsigned DEFAULT NULL COMMENT '연결된 TBM 세션', + `visit_request_id` int(10) unsigned DEFAULT NULL COMMENT '연결된 출입 신청', + `equipment_id` int(10) unsigned DEFAULT NULL COMMENT '관련 설비 ID', + `issue_category_id` int(10) unsigned NOT NULL COMMENT '신고 카테고리 ID', + `issue_item_id` int(10) unsigned DEFAULT NULL COMMENT '사전 정의 신고 항목 ID', + `additional_description` text DEFAULT NULL COMMENT '추가 설명', + `photo_path1` varchar(255) DEFAULT NULL COMMENT '사진 1', + `photo_path2` varchar(255) DEFAULT NULL COMMENT '사진 2', + `photo_path3` varchar(255) DEFAULT NULL COMMENT '사진 3', + `photo_path4` varchar(255) DEFAULT NULL COMMENT '사진 4', + `photo_path5` varchar(255) DEFAULT NULL COMMENT '사진 5', + `status` enum('reported','received','in_progress','completed','closed') DEFAULT 'reported' COMMENT '상태: 신고→접수→처리중→완료→종료', + `assigned_department` varchar(100) DEFAULT NULL COMMENT '담당 부서', + `assigned_user_id` int(11) DEFAULT NULL COMMENT '담당자 user_id', + `assigned_at` datetime DEFAULT NULL COMMENT '배정 일시', + `assigned_by` int(11) DEFAULT NULL COMMENT '배정자 user_id', + `resolution_notes` text DEFAULT NULL COMMENT '처리 내용', + `resolution_photo_path1` varchar(255) DEFAULT NULL COMMENT '처리 완료 사진 1', + `resolution_photo_path2` varchar(255) DEFAULT NULL COMMENT '처리 완료 사진 2', + `resolved_at` datetime DEFAULT NULL COMMENT '처리 완료 일시', + `resolved_by` int(11) DEFAULT NULL COMMENT '처리 완료자 user_id', + `modification_history` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '수정 이력 추적' CHECK (json_valid(`modification_history`)), + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`report_id`), + KEY `work_issue_reports_workplace_id_foreign` (`workplace_id`), + KEY `work_issue_reports_issue_item_id_foreign` (`issue_item_id`), + KEY `work_issue_reports_assigned_by_foreign` (`assigned_by`), + KEY `work_issue_reports_resolved_by_foreign` (`resolved_by`), + KEY `idx_wir_reporter_id` (`reporter_id`), + KEY `idx_wir_status` (`status`), + KEY `idx_wir_report_date` (`report_date`), + KEY `idx_wir_workplace` (`factory_category_id`,`workplace_id`), + KEY `idx_wir_issue_category` (`issue_category_id`), + KEY `idx_wir_assigned_user` (`assigned_user_id`), + KEY `idx_wir_equipment_id` (`equipment_id`), + CONSTRAINT `fk_wir_equipment` FOREIGN KEY (`equipment_id`) REFERENCES `equipments` (`equipment_id`) ON DELETE SET NULL, + CONSTRAINT `work_issue_reports_assigned_by_foreign` FOREIGN KEY (`assigned_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_assigned_user_id_foreign` FOREIGN KEY (`assigned_user_id`) REFERENCES `users` (`user_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_factory_category_id_foreign` FOREIGN KEY (`factory_category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_issue_category_id_foreign` FOREIGN KEY (`issue_category_id`) REFERENCES `issue_report_categories` (`category_id`) ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_issue_item_id_foreign` FOREIGN KEY (`issue_item_id`) REFERENCES `issue_report_items` (`item_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_reporter_id_foreign` FOREIGN KEY (`reporter_id`) REFERENCES `users` (`user_id`) ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_resolved_by_foreign` FOREIGN KEY (`resolved_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `work_issue_reports_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_issue_reports` +-- + +LOCK TABLES `work_issue_reports` WRITE; +/*!40000 ALTER TABLE `work_issue_reports` DISABLE KEYS */; +INSERT INTO `work_issue_reports` VALUES +(7,1,'2026-02-04 05:35:54',NULL,2,NULL,NULL,NULL,18,11,38,'전원인 안들어옴(Test)',NULL,NULL,NULL,NULL,NULL,'reported',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2026-02-04 05:35:54','2026-02-04 05:35:54'); +/*!40000 ALTER TABLE `work_issue_reports` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_issue_status_logs` +-- + +DROP TABLE IF EXISTS `work_issue_status_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_issue_status_logs` ( + `log_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '로그 ID', + `report_id` int(10) unsigned NOT NULL COMMENT '신고 ID', + `previous_status` varchar(50) DEFAULT NULL COMMENT '이전 상태', + `new_status` varchar(50) NOT NULL COMMENT '새 상태', + `changed_by` int(11) NOT NULL COMMENT '변경자 user_id', + `change_reason` text DEFAULT NULL COMMENT '변경 사유', + `changed_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`log_id`), + KEY `work_issue_status_logs_changed_by_foreign` (`changed_by`), + KEY `idx_wisl_report_id` (`report_id`), + KEY `idx_wisl_changed_at` (`changed_at`), + CONSTRAINT `work_issue_status_logs_changed_by_foreign` FOREIGN KEY (`changed_by`) REFERENCES `users` (`user_id`) ON UPDATE CASCADE, + CONSTRAINT `work_issue_status_logs_report_id_foreign` FOREIGN KEY (`report_id`) REFERENCES `work_issue_reports` (`report_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_issue_status_logs` +-- + +LOCK TABLES `work_issue_status_logs` WRITE; +/*!40000 ALTER TABLE `work_issue_status_logs` DISABLE KEYS */; +INSERT INTO `work_issue_status_logs` VALUES +(1,1,NULL,'reported',1,NULL,'2026-02-02 22:16:33'), +(2,2,NULL,'reported',1,NULL,'2026-02-02 22:44:48'), +(3,3,NULL,'reported',1,NULL,'2026-02-02 23:39:13'), +(4,4,NULL,'reported',1,NULL,'2026-02-03 00:10:10'), +(5,5,NULL,'reported',1,NULL,'2026-02-03 00:10:39'), +(6,6,NULL,'reported',1,NULL,'2026-02-03 00:11:29'); +/*!40000 ALTER TABLE `work_issue_status_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_report_audit_log` +-- + +DROP TABLE IF EXISTS `work_report_audit_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_report_audit_log` ( + `log_id` int(11) NOT NULL AUTO_INCREMENT, + `action` enum('ADD_ACCUMULATE','DELETE_SINGLE','UPDATE','DELETE','CREATE','DELETE_BATCH') NOT NULL COMMENT '작업 유형', + `report_id` int(11) DEFAULT NULL COMMENT '관련 보고서 ID', + `old_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 전 값' CHECK (json_valid(`old_values`)), + `new_values` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '변경 후 값' CHECK (json_valid(`new_values`)), + `changed_by` int(11) NOT NULL COMMENT '변경자 ID', + `change_reason` varchar(500) DEFAULT NULL COMMENT '변경 사유', + `ip_address` varchar(45) DEFAULT NULL COMMENT 'IP 주소', + `user_agent` text DEFAULT NULL COMMENT '사용자 에이전트', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '변경 시간', + PRIMARY KEY (`log_id`), + KEY `idx_action_date` (`action`,`created_at`), + KEY `idx_changed_by` (`changed_by`), + KEY `idx_report_id` (`report_id`) +) ENGINE=InnoDB AUTO_INCREMENT=880 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_report_audit_log` +-- + +LOCK TABLES `work_report_audit_log` WRITE; +/*!40000 ALTER TABLE `work_report_audit_log` DISABLE KEYS */; +INSERT INTO `work_report_audit_log` VALUES +(1,'ADD_ACCUMULATE',12,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-16 02:56:12'), +(2,'DELETE_SINGLE',12,'{\"worker_name\":\"김두수\",\"project_name\":\"MP7 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-06-16 03:17:36'), +(3,'DELETE_SINGLE',11,'{\"worker_name\":\"김두수\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-06-16 03:17:39'), +(4,'DELETE_SINGLE',7,'{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-06-16 03:17:41'), +(5,'ADD_ACCUMULATE',13,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":1,\"my_total\":\"1.00\",\"grand_total\":1,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"1.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 03:18:37'), +(6,'DELETE_SINGLE',13,'{\"worker_name\":\"임영규\",\"project_name\":\"연차/휴무\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,5,'개별 항목 삭제',NULL,NULL,'2025-06-16 03:19:23'), +(7,'ADD_ACCUMULATE',14,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(8,'ADD_ACCUMULATE',15,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(9,'ADD_ACCUMULATE',16,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(10,'ADD_ACCUMULATE',17,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(11,'ADD_ACCUMULATE',18,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(12,'ADD_ACCUMULATE',19,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:23'), +(13,'ADD_ACCUMULATE',20,NULL,'{\"report_date\":\"2025-06-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:10:47'), +(14,'ADD_ACCUMULATE',21,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(15,'ADD_ACCUMULATE',22,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(16,'ADD_ACCUMULATE',23,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(17,'ADD_ACCUMULATE',24,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(18,'ADD_ACCUMULATE',25,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(19,'ADD_ACCUMULATE',26,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:11:37'), +(20,'ADD_ACCUMULATE',27,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:07'), +(21,'ADD_ACCUMULATE',28,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:07'), +(22,'ADD_ACCUMULATE',29,NULL,'{\"report_date\":\"2025-06-04\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:07'), +(23,'ADD_ACCUMULATE',30,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(24,'ADD_ACCUMULATE',31,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(25,'ADD_ACCUMULATE',32,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(26,'ADD_ACCUMULATE',33,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(27,'ADD_ACCUMULATE',34,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(28,'ADD_ACCUMULATE',35,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:12:57'), +(29,'ADD_ACCUMULATE',36,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:13:56'), +(30,'ADD_ACCUMULATE',37,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:13:56'), +(31,'ADD_ACCUMULATE',38,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:13:56'), +(32,'ADD_ACCUMULATE',39,NULL,'{\"report_date\":\"2025-06-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":null,\"hours\":\"8.00\"}]}',1,'누적 추가 by hyungi - 삭제 없음',NULL,NULL,'2025-06-16 05:13:56'), +(33,'ADD_ACCUMULATE',40,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:12:01'), +(34,'ADD_ACCUMULATE',41,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:12:01'), +(35,'ADD_ACCUMULATE',42,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:12:01'), +(36,'ADD_ACCUMULATE',43,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:12:01'), +(37,'DELETE_SINGLE',42,'{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,5,'개별 항목 삭제',NULL,NULL,'2025-06-16 06:12:33'), +(38,'ADD_ACCUMULATE',44,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:13:02'), +(39,'ADD_ACCUMULATE',45,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:13:50'), +(40,'DELETE_SINGLE',41,'{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,5,'개별 항목 삭제',NULL,NULL,'2025-06-16 06:14:48'), +(41,'ADD_ACCUMULATE',46,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-16 06:15:22'), +(42,'DELETE_SINGLE',1,'{\"worker_name\":\"김두수\",\"project_name\":\"25년 안전보건시설설비\",\"work_hours\":\"1.00\",\"report_date\":\"2025-06-01T00:00:00.000Z\"}',NULL,1,'개별 항목 삭제',NULL,NULL,'2025-06-16 06:20:38'), +(43,'ADD_ACCUMULATE',48,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-16 06:46:44'), +(44,'ADD_ACCUMULATE',49,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-16 06:46:44'), +(45,'ADD_ACCUMULATE',50,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-16 06:46:44'), +(46,'DELETE_SINGLE',49,'{\"worker_name\":\"박현수\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-16T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-06-16 06:47:54'), +(47,'ADD_ACCUMULATE',51,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-16 06:48:29'), +(48,'ADD_ACCUMULATE',52,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-16 06:50:09'), +(49,'ADD_ACCUMULATE',54,NULL,'{\"report_date\":\"2025-06-16\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-16 06:50:09'), +(50,'ADD_ACCUMULATE',56,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-17 08:23:41'), +(51,'ADD_ACCUMULATE',58,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-17 08:23:41'), +(52,'ADD_ACCUMULATE',60,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-17 08:24:33'), +(53,'ADD_ACCUMULATE',62,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-17 08:24:33'), +(54,'ADD_ACCUMULATE',64,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:24:44'), +(55,'ADD_ACCUMULATE',65,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:25:24'), +(56,'DELETE_SINGLE',64,'{\"worker_name\":\"황인용\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"4.00\",\"report_date\":\"2025-06-17T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-06-17 08:26:17'), +(57,'ADD_ACCUMULATE',66,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:27:06'), +(58,'ADD_ACCUMULATE',67,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:27:06'), +(59,'ADD_ACCUMULATE',68,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:31:06'), +(60,'ADD_ACCUMULATE',69,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:31:06'), +(61,'ADD_ACCUMULATE',70,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:31:06'), +(62,'ADD_ACCUMULATE',71,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:33:06'), +(63,'ADD_ACCUMULATE',72,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:33:06'), +(64,'ADD_ACCUMULATE',73,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-17 08:33:06'), +(65,'ADD_ACCUMULATE',74,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-17 08:34:11'), +(66,'ADD_ACCUMULATE',76,NULL,'{\"report_date\":\"2025-06-17\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-17 08:34:11'), +(67,'ADD_ACCUMULATE',78,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:40:27'), +(68,'ADD_ACCUMULATE',79,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:40:27'), +(69,'ADD_ACCUMULATE',80,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:40:27'), +(70,'ADD_ACCUMULATE',81,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:41:02'), +(71,'ADD_ACCUMULATE',82,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:41:03'), +(72,'ADD_ACCUMULATE',83,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:41:03'), +(73,'ADD_ACCUMULATE',84,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-18 08:41:45'), +(74,'ADD_ACCUMULATE',86,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-18 08:47:55'), +(75,'ADD_ACCUMULATE',88,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-18 08:47:55'), +(76,'ADD_ACCUMULATE',90,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-18 08:50:19'), +(77,'ADD_ACCUMULATE',92,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-18 08:50:19'), +(78,'ADD_ACCUMULATE',94,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-18 08:50:19'), +(79,'ADD_ACCUMULATE',96,NULL,'{\"report_date\":\"2025-06-18\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-18 09:00:17'), +(80,'ADD_ACCUMULATE',98,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-19 06:37:59'), +(81,'ADD_ACCUMULATE',99,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-19 06:37:59'), +(82,'ADD_ACCUMULATE',100,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-19 06:59:36'), +(83,'ADD_ACCUMULATE',101,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-19 06:59:36'), +(84,'ADD_ACCUMULATE',102,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-19 06:59:36'), +(85,'ADD_ACCUMULATE',103,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-19 07:01:02'), +(86,'ADD_ACCUMULATE',105,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-19 07:01:02'), +(87,'ADD_ACCUMULATE',107,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-19 07:01:02'), +(88,'ADD_ACCUMULATE',109,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-19 07:01:02'), +(89,'ADD_ACCUMULATE',111,NULL,'{\"report_date\":\"2025-06-19\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-19 07:01:02'), +(90,'ADD_ACCUMULATE',113,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:01'), +(91,'ADD_ACCUMULATE',115,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:01'), +(92,'ADD_ACCUMULATE',117,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:01'), +(93,'ADD_ACCUMULATE',119,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:02'), +(94,'ADD_ACCUMULATE',121,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:02'), +(95,'ADD_ACCUMULATE',123,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-20 06:44:02'), +(96,'ADD_ACCUMULATE',125,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-20 06:45:30'), +(97,'ADD_ACCUMULATE',126,NULL,'{\"report_date\":\"2025-06-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-20 06:45:31'), +(98,'ADD_ACCUMULATE',127,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-23 06:42:58'), +(99,'ADD_ACCUMULATE',128,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-23 06:42:58'), +(100,'ADD_ACCUMULATE',129,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(101,'ADD_ACCUMULATE',131,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(102,'ADD_ACCUMULATE',133,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(103,'ADD_ACCUMULATE',135,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(104,'ADD_ACCUMULATE',137,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(105,'ADD_ACCUMULATE',139,NULL,'{\"report_date\":\"2025-06-23\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-23 06:51:28'), +(106,'ADD_ACCUMULATE',141,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-24 11:10:32'), +(107,'ADD_ACCUMULATE',142,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-24 11:10:32'), +(108,'ADD_ACCUMULATE',143,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(109,'ADD_ACCUMULATE',145,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(110,'ADD_ACCUMULATE',147,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(111,'ADD_ACCUMULATE',149,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(112,'ADD_ACCUMULATE',151,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(113,'ADD_ACCUMULATE',153,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:00'), +(114,'ADD_ACCUMULATE',155,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:05'), +(115,'ADD_ACCUMULATE',157,NULL,'{\"report_date\":\"2025-06-24\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-24 11:11:05'), +(116,'ADD_ACCUMULATE',159,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-25 11:08:04'), +(117,'ADD_ACCUMULATE',161,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-25 11:08:05'), +(118,'ADD_ACCUMULATE',163,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-25 11:11:30'), +(119,'ADD_ACCUMULATE',164,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-25 11:11:30'), +(120,'ADD_ACCUMULATE',165,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-25 11:11:30'), +(121,'ADD_ACCUMULATE',166,NULL,'{\"report_date\":\"2025-06-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-25 11:11:30'), +(122,'ADD_ACCUMULATE',167,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-26 10:29:38'), +(123,'ADD_ACCUMULATE',168,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-26 10:29:38'), +(124,'ADD_ACCUMULATE',169,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-26 10:29:38'), +(125,'ADD_ACCUMULATE',170,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-26 10:29:38'), +(126,'ADD_ACCUMULATE',171,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-26 10:29:38'), +(127,'ADD_ACCUMULATE',172,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-26 11:11:31'), +(128,'ADD_ACCUMULATE',174,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-26 11:11:32'), +(129,'ADD_ACCUMULATE',176,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"12.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-26 11:11:32'), +(130,'ADD_ACCUMULATE',178,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-26 11:19:34'), +(131,'ADD_ACCUMULATE',179,NULL,'{\"report_date\":\"2025-06-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":12,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"12.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-26 11:19:34'), +(132,'ADD_ACCUMULATE',180,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-27 01:54:21'), +(133,'ADD_ACCUMULATE',181,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-27 01:54:21'), +(134,'ADD_ACCUMULATE',182,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-27 01:54:40'), +(135,'ADD_ACCUMULATE',183,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(136,'ADD_ACCUMULATE',184,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(137,'ADD_ACCUMULATE',185,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(138,'ADD_ACCUMULATE',186,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(139,'ADD_ACCUMULATE',187,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(140,'ADD_ACCUMULATE',188,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-06-27 06:47:43'), +(141,'ADD_ACCUMULATE',189,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-27 06:49:08'), +(142,'ADD_ACCUMULATE',190,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-27 06:49:08'), +(143,'DELETE_SINGLE',190,'{\"worker_name\":\"김윤섭\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}',NULL,6,'개별 항목 삭제',NULL,NULL,'2025-06-27 06:58:25'), +(144,'ADD_ACCUMULATE',191,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"4.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-06-27 06:58:46'), +(145,'DELETE_SINGLE',181,'{\"worker_name\":\"박현수\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}',NULL,5,'개별 항목 삭제',NULL,NULL,'2025-06-27 06:59:37'), +(146,'DELETE_SINGLE',180,'{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-06-27T00:00:00.000Z\"}',NULL,5,'개별 항목 삭제',NULL,NULL,'2025-06-27 06:59:42'), +(147,'ADD_ACCUMULATE',192,NULL,'{\"report_date\":\"2025-06-27\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"6.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-06-27 07:00:10'), +(148,'ADD_ACCUMULATE',193,NULL,'{\"report_date\":\"2025-06-30\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:37:29'), +(149,'ADD_ACCUMULATE',195,NULL,'{\"report_date\":\"2025-06-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:38:19'), +(150,'ADD_ACCUMULATE',196,NULL,'{\"report_date\":\"2025-06-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:38:19'), +(151,'ADD_ACCUMULATE',197,NULL,'{\"report_date\":\"2025-06-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:38:19'), +(152,'ADD_ACCUMULATE',198,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(153,'ADD_ACCUMULATE',199,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(154,'ADD_ACCUMULATE',200,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(155,'ADD_ACCUMULATE',201,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(156,'ADD_ACCUMULATE',202,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(157,'ADD_ACCUMULATE',203,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:21'), +(158,'ADD_ACCUMULATE',204,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:48'), +(159,'ADD_ACCUMULATE',205,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:48'), +(160,'ADD_ACCUMULATE',206,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:48'), +(161,'ADD_ACCUMULATE',207,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"14.00\",\"grand_total\":14,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"14.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:39:48'), +(162,'ADD_ACCUMULATE',208,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:40:10'), +(163,'ADD_ACCUMULATE',209,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"12.00\",\"grand_total\":12,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"12.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:40:10'), +(164,'ADD_ACCUMULATE',210,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:42:57'), +(165,'ADD_ACCUMULATE',212,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:42:57'), +(166,'ADD_ACCUMULATE',214,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:42:57'), +(167,'ADD_ACCUMULATE',216,NULL,'{\"report_date\":\"2025-07-01\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:42:57'), +(168,'ADD_ACCUMULATE',218,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(169,'ADD_ACCUMULATE',219,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(170,'ADD_ACCUMULATE',220,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(171,'ADD_ACCUMULATE',221,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(172,'ADD_ACCUMULATE',222,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(173,'ADD_ACCUMULATE',223,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(174,'ADD_ACCUMULATE',224,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:43:36'), +(175,'ADD_ACCUMULATE',225,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:44:11'), +(176,'ADD_ACCUMULATE',227,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:44:11'), +(177,'ADD_ACCUMULATE',229,NULL,'{\"report_date\":\"2025-07-02\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:44:11'), +(178,'ADD_ACCUMULATE',231,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:45:44'), +(179,'ADD_ACCUMULATE',232,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:45:45'), +(180,'ADD_ACCUMULATE',233,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:45:45'), +(181,'ADD_ACCUMULATE',234,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:45:45'), +(182,'ADD_ACCUMULATE',235,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:07'), +(183,'ADD_ACCUMULATE',236,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:07'), +(184,'ADD_ACCUMULATE',237,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:08'), +(185,'ADD_ACCUMULATE',238,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:08'), +(186,'ADD_ACCUMULATE',239,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:08'), +(187,'ADD_ACCUMULATE',240,NULL,'{\"report_date\":\"2025-07-03\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:46:08'), +(188,'ADD_ACCUMULATE',241,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(189,'ADD_ACCUMULATE',243,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(190,'ADD_ACCUMULATE',245,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(191,'ADD_ACCUMULATE',247,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(192,'ADD_ACCUMULATE',249,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(193,'ADD_ACCUMULATE',251,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(194,'ADD_ACCUMULATE',253,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(195,'ADD_ACCUMULATE',255,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(196,'ADD_ACCUMULATE',257,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(197,'ADD_ACCUMULATE',259,NULL,'{\"report_date\":\"2025-07-04\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-05 01:51:47'), +(198,'ADD_ACCUMULATE',261,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:38'), +(199,'ADD_ACCUMULATE',262,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:38'), +(200,'ADD_ACCUMULATE',263,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:39'), +(201,'ADD_ACCUMULATE',264,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:39'), +(202,'ADD_ACCUMULATE',265,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:39'), +(203,'ADD_ACCUMULATE',266,NULL,'{\"report_date\":\"2025-07-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-05 05:36:39'), +(204,'ADD_ACCUMULATE',267,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(205,'ADD_ACCUMULATE',268,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(206,'ADD_ACCUMULATE',269,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(207,'ADD_ACCUMULATE',270,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(208,'ADD_ACCUMULATE',271,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(209,'ADD_ACCUMULATE',272,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(210,'ADD_ACCUMULATE',273,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(211,'ADD_ACCUMULATE',274,NULL,'{\"report_date\":\"2025-07-06\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-06 05:34:32'), +(212,'ADD_ACCUMULATE',275,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(213,'ADD_ACCUMULATE',276,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(214,'ADD_ACCUMULATE',277,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(215,'ADD_ACCUMULATE',278,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(216,'ADD_ACCUMULATE',279,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(217,'ADD_ACCUMULATE',280,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(218,'ADD_ACCUMULATE',281,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(219,'ADD_ACCUMULATE',282,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(220,'ADD_ACCUMULATE',283,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(221,'ADD_ACCUMULATE',284,NULL,'{\"report_date\":\"2025-07-07\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-07-07 06:49:31'), +(222,'ADD_ACCUMULATE',285,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:57'), +(223,'ADD_ACCUMULATE',286,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(224,'ADD_ACCUMULATE',287,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(225,'ADD_ACCUMULATE',288,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(226,'ADD_ACCUMULATE',289,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(227,'ADD_ACCUMULATE',290,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(228,'ADD_ACCUMULATE',291,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(229,'ADD_ACCUMULATE',292,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(230,'ADD_ACCUMULATE',293,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(231,'ADD_ACCUMULATE',294,NULL,'{\"report_date\":\"2025-07-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-08 06:36:58'), +(232,'ADD_ACCUMULATE',295,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:40'), +(233,'ADD_ACCUMULATE',296,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:40'), +(234,'ADD_ACCUMULATE',297,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:40'), +(235,'ADD_ACCUMULATE',298,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:41'), +(236,'ADD_ACCUMULATE',299,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:41'), +(237,'ADD_ACCUMULATE',300,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:41'), +(238,'ADD_ACCUMULATE',301,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:42'), +(239,'ADD_ACCUMULATE',302,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:42'), +(240,'ADD_ACCUMULATE',303,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:08:42'), +(241,'ADD_ACCUMULATE',304,NULL,'{\"report_date\":\"2025-07-09\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-09 22:09:10'), +(242,'ADD_ACCUMULATE',305,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:58'), +(243,'ADD_ACCUMULATE',306,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:58'), +(244,'ADD_ACCUMULATE',307,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:58'), +(245,'ADD_ACCUMULATE',308,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(246,'ADD_ACCUMULATE',309,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(247,'ADD_ACCUMULATE',310,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(248,'ADD_ACCUMULATE',311,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(249,'ADD_ACCUMULATE',312,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(250,'ADD_ACCUMULATE',313,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(251,'ADD_ACCUMULATE',314,NULL,'{\"report_date\":\"2025-07-10\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-10 06:33:59'), +(252,'ADD_ACCUMULATE',315,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(253,'ADD_ACCUMULATE',316,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(254,'ADD_ACCUMULATE',317,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(255,'ADD_ACCUMULATE',318,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(256,'ADD_ACCUMULATE',319,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(257,'ADD_ACCUMULATE',320,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(258,'ADD_ACCUMULATE',321,NULL,'{\"report_date\":\"2025-07-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-12 05:41:30'), +(259,'ADD_ACCUMULATE',322,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:30'), +(260,'ADD_ACCUMULATE',323,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(261,'ADD_ACCUMULATE',324,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(262,'ADD_ACCUMULATE',325,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(263,'ADD_ACCUMULATE',326,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(264,'ADD_ACCUMULATE',327,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(265,'ADD_ACCUMULATE',328,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(266,'ADD_ACCUMULATE',329,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(267,'ADD_ACCUMULATE',330,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-14 06:46:57'), +(268,'ADD_ACCUMULATE',331,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:57:06'), +(269,'ADD_ACCUMULATE',332,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:57:06'), +(270,'ADD_ACCUMULATE',333,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:57:47'), +(271,'ADD_ACCUMULATE',335,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(272,'ADD_ACCUMULATE',336,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(273,'ADD_ACCUMULATE',337,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(274,'ADD_ACCUMULATE',338,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(275,'ADD_ACCUMULATE',339,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(276,'ADD_ACCUMULATE',340,NULL,'{\"report_date\":\"2025-07-15\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-15 05:58:19'), +(277,'ADD_ACCUMULATE',341,NULL,'{\"report_date\":\"2025-07-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-15 06:57:26'), +(278,'ADD_ACCUMULATE',342,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":4,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:46:46'), +(279,'ADD_ACCUMULATE',345,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":5,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:46:46'), +(280,'ADD_ACCUMULATE',348,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":10,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:47:53'), +(281,'ADD_ACCUMULATE',351,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":6,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:47:53'), +(282,'ADD_ACCUMULATE',354,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:48:32'), +(283,'ADD_ACCUMULATE',355,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:48:32'), +(284,'ADD_ACCUMULATE',356,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:48:32'), +(285,'ADD_ACCUMULATE',357,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-16 06:48:32'), +(286,'ADD_ACCUMULATE',358,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-16 06:51:31'), +(287,'ADD_ACCUMULATE',359,NULL,'{\"report_date\":\"2025-07-16\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-16 06:51:31'), +(288,'ADD_ACCUMULATE',360,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-17 06:45:22'), +(289,'ADD_ACCUMULATE',361,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:46:48'), +(290,'ADD_ACCUMULATE',363,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:46:48'), +(291,'ADD_ACCUMULATE',365,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:46:48'), +(292,'ADD_ACCUMULATE',367,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(293,'ADD_ACCUMULATE',368,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(294,'ADD_ACCUMULATE',369,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(295,'ADD_ACCUMULATE',370,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(296,'ADD_ACCUMULATE',371,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(297,'ADD_ACCUMULATE',372,NULL,'{\"report_date\":\"2025-07-17\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-17 06:47:19'), +(298,'ADD_ACCUMULATE',373,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"2.00\",\"grand_total\":2,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"2.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-18 05:54:47'), +(299,'ADD_ACCUMULATE',374,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"2.00\",\"grand_total\":2,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"2.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-18 05:54:48'), +(300,'ADD_ACCUMULATE',375,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":5,\"work_entries_count\":3,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-18 05:58:33'), +(301,'DELETE_SINGLE',375,'{\"worker_name\":\"표영진\",\"project_name\":\"김천 솔라 파워 그린 수소 Project\",\"work_hours\":\"2.00\",\"report_date\":\"2025-07-18T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-07-18 05:58:49'), +(302,'ADD_ACCUMULATE',378,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-18 05:59:42'), +(303,'ADD_ACCUMULATE',379,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-18 06:00:15'), +(304,'ADD_ACCUMULATE',380,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(305,'ADD_ACCUMULATE',381,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(306,'ADD_ACCUMULATE',382,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(307,'ADD_ACCUMULATE',383,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(308,'ADD_ACCUMULATE',384,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(309,'ADD_ACCUMULATE',385,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(310,'ADD_ACCUMULATE',386,NULL,'{\"report_date\":\"2025-07-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-18 06:36:13'), +(311,'ADD_ACCUMULATE',387,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:08'), +(312,'ADD_ACCUMULATE',389,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:08'), +(313,'ADD_ACCUMULATE',391,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(314,'ADD_ACCUMULATE',392,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(315,'ADD_ACCUMULATE',393,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(316,'ADD_ACCUMULATE',394,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(317,'ADD_ACCUMULATE',395,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(318,'ADD_ACCUMULATE',396,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(319,'ADD_ACCUMULATE',397,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-21 06:40:32'), +(320,'ADD_ACCUMULATE',398,NULL,'{\"report_date\":\"2025-07-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-21 06:53:37'), +(321,'ADD_ACCUMULATE',399,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:47'), +(322,'ADD_ACCUMULATE',400,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(323,'ADD_ACCUMULATE',401,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(324,'ADD_ACCUMULATE',402,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(325,'ADD_ACCUMULATE',403,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(326,'ADD_ACCUMULATE',404,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(327,'ADD_ACCUMULATE',405,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:45:48'), +(328,'ADD_ACCUMULATE',406,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-22 06:46:11'), +(329,'ADD_ACCUMULATE',407,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-22 06:46:11'), +(330,'ADD_ACCUMULATE',408,NULL,'{\"report_date\":\"2025-07-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-22 06:46:11'), +(331,'ADD_ACCUMULATE',409,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:06'), +(332,'ADD_ACCUMULATE',410,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:28'), +(333,'ADD_ACCUMULATE',411,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:28'), +(334,'ADD_ACCUMULATE',412,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(335,'ADD_ACCUMULATE',413,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(336,'ADD_ACCUMULATE',414,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(337,'ADD_ACCUMULATE',415,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(338,'ADD_ACCUMULATE',416,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(339,'ADD_ACCUMULATE',417,NULL,'{\"report_date\":\"2025-07-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-23 06:45:30'), +(340,'ADD_ACCUMULATE',418,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:36:55'), +(341,'ADD_ACCUMULATE',419,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(342,'ADD_ACCUMULATE',420,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(343,'ADD_ACCUMULATE',421,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(344,'ADD_ACCUMULATE',422,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(345,'ADD_ACCUMULATE',423,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(346,'ADD_ACCUMULATE',424,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-24 06:37:18'), +(347,'ADD_ACCUMULATE',425,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-24 06:47:04'), +(348,'ADD_ACCUMULATE',426,NULL,'{\"report_date\":\"2025-07-24\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-24 06:47:04'), +(349,'ADD_ACCUMULATE',427,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:44:23'), +(350,'ADD_ACCUMULATE',428,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(351,'ADD_ACCUMULATE',429,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(352,'ADD_ACCUMULATE',430,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(353,'ADD_ACCUMULATE',431,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(354,'ADD_ACCUMULATE',432,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(355,'ADD_ACCUMULATE',433,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:15'), +(356,'ADD_ACCUMULATE',434,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:18'), +(357,'ADD_ACCUMULATE',435,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:19'), +(358,'ADD_ACCUMULATE',436,NULL,'{\"report_date\":\"2025-07-25\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-25 06:45:19'), +(359,'ADD_ACCUMULATE',437,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-28 06:30:39'), +(360,'ADD_ACCUMULATE',438,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-28 06:30:39'), +(361,'ADD_ACCUMULATE',439,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-28 06:30:39'), +(362,'ADD_ACCUMULATE',440,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:08'), +(363,'ADD_ACCUMULATE',442,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(364,'ADD_ACCUMULATE',443,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(365,'ADD_ACCUMULATE',444,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(366,'ADD_ACCUMULATE',445,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(367,'ADD_ACCUMULATE',446,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(368,'ADD_ACCUMULATE',447,NULL,'{\"report_date\":\"2025-07-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-28 06:33:34'), +(369,'ADD_ACCUMULATE',448,NULL,'{\"report_date\":\"2025-07-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-29 06:39:13'), +(370,'ADD_ACCUMULATE',449,NULL,'{\"report_date\":\"2025-07-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-29 06:39:13'), +(371,'ADD_ACCUMULATE',450,NULL,'{\"report_date\":\"2025-07-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-29 06:39:13'), +(372,'ADD_ACCUMULATE',451,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-30 06:50:30'), +(373,'ADD_ACCUMULATE',452,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-30 06:50:30'), +(374,'ADD_ACCUMULATE',453,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-30 06:50:30'), +(375,'ADD_ACCUMULATE',454,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(376,'ADD_ACCUMULATE',455,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(377,'ADD_ACCUMULATE',456,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(378,'ADD_ACCUMULATE',457,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(379,'ADD_ACCUMULATE',458,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(380,'ADD_ACCUMULATE',459,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(381,'ADD_ACCUMULATE',460,NULL,'{\"report_date\":\"2025-07-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-30 06:52:16'), +(382,'ADD_ACCUMULATE',461,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:42:56'), +(383,'ADD_ACCUMULATE',462,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:43:32'), +(384,'ADD_ACCUMULATE',464,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:43:32'), +(385,'ADD_ACCUMULATE',466,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(386,'ADD_ACCUMULATE',467,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(387,'ADD_ACCUMULATE',468,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(388,'ADD_ACCUMULATE',469,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(389,'ADD_ACCUMULATE',470,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(390,'ADD_ACCUMULATE',471,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(391,'ADD_ACCUMULATE',472,NULL,'{\"report_date\":\"2025-07-31\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-07-31 06:44:00'), +(392,'ADD_ACCUMULATE',473,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(393,'ADD_ACCUMULATE',474,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(394,'ADD_ACCUMULATE',475,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(395,'ADD_ACCUMULATE',476,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(396,'ADD_ACCUMULATE',477,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(397,'ADD_ACCUMULATE',478,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(398,'ADD_ACCUMULATE',479,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(399,'ADD_ACCUMULATE',480,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(400,'ADD_ACCUMULATE',481,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(401,'ADD_ACCUMULATE',482,NULL,'{\"report_date\":\"2025-07-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-07-31 22:24:47'), +(402,'ADD_ACCUMULATE',483,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(403,'ADD_ACCUMULATE',484,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(404,'ADD_ACCUMULATE',485,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(405,'ADD_ACCUMULATE',486,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(406,'ADD_ACCUMULATE',487,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(407,'ADD_ACCUMULATE',488,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:47'), +(408,'ADD_ACCUMULATE',489,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-01 04:57:48'), +(409,'ADD_ACCUMULATE',490,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-01 05:02:28'), +(410,'ADD_ACCUMULATE',492,NULL,'{\"report_date\":\"2025-08-01\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-01 05:02:28'), +(411,'ADD_ACCUMULATE',494,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:42:39'), +(412,'ADD_ACCUMULATE',496,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":7,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:42:39'), +(413,'ADD_ACCUMULATE',498,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:14'), +(414,'ADD_ACCUMULATE',499,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:15'), +(415,'ADD_ACCUMULATE',500,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:15'), +(416,'ADD_ACCUMULATE',501,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:39'), +(417,'ADD_ACCUMULATE',502,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:39'), +(418,'ADD_ACCUMULATE',503,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:39'), +(419,'ADD_ACCUMULATE',504,NULL,'{\"report_date\":\"2025-08-07\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-07 06:43:52'), +(420,'ADD_ACCUMULATE',505,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-08 06:45:20'), +(421,'ADD_ACCUMULATE',506,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:58:42'), +(422,'ADD_ACCUMULATE',507,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:58:42'), +(423,'ADD_ACCUMULATE',508,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:59:18'), +(424,'ADD_ACCUMULATE',509,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:59:19'), +(425,'ADD_ACCUMULATE',510,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:59:19'), +(426,'ADD_ACCUMULATE',511,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:59:19'), +(427,'ADD_ACCUMULATE',512,NULL,'{\"report_date\":\"2025-08-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-08 06:59:19'), +(428,'ADD_ACCUMULATE',513,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-11 06:27:37'), +(429,'ADD_ACCUMULATE',514,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"16.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"16.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-11 06:27:37'), +(430,'ADD_ACCUMULATE',515,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:23'), +(431,'ADD_ACCUMULATE',516,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:23'), +(432,'ADD_ACCUMULATE',517,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:49'), +(433,'ADD_ACCUMULATE',518,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:49'), +(434,'ADD_ACCUMULATE',519,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:50'), +(435,'ADD_ACCUMULATE',520,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:50'), +(436,'ADD_ACCUMULATE',521,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:50'), +(437,'ADD_ACCUMULATE',522,NULL,'{\"report_date\":\"2025-08-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-11 06:46:50'), +(438,'ADD_ACCUMULATE',523,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(439,'ADD_ACCUMULATE',524,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(440,'ADD_ACCUMULATE',525,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(441,'ADD_ACCUMULATE',526,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(442,'ADD_ACCUMULATE',527,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(443,'ADD_ACCUMULATE',528,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(444,'ADD_ACCUMULATE',529,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(445,'ADD_ACCUMULATE',530,NULL,'{\"report_date\":\"2025-08-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-12 06:47:24'), +(446,'ADD_ACCUMULATE',531,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-13 06:31:32'), +(447,'ADD_ACCUMULATE',532,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:13'), +(448,'ADD_ACCUMULATE',534,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(449,'ADD_ACCUMULATE',535,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(450,'ADD_ACCUMULATE',536,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(451,'ADD_ACCUMULATE',537,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(452,'ADD_ACCUMULATE',538,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(453,'ADD_ACCUMULATE',539,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(454,'ADD_ACCUMULATE',540,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:36:48'), +(455,'ADD_ACCUMULATE',541,NULL,'{\"report_date\":\"2025-08-13\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-13 06:37:19'), +(456,'ADD_ACCUMULATE',542,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":1,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-14 06:35:27'), +(457,'ADD_ACCUMULATE',544,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:39:03'), +(458,'ADD_ACCUMULATE',546,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:39:44'), +(459,'ADD_ACCUMULATE',548,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(460,'ADD_ACCUMULATE',549,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(461,'ADD_ACCUMULATE',550,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(462,'ADD_ACCUMULATE',551,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(463,'ADD_ACCUMULATE',552,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(464,'ADD_ACCUMULATE',553,NULL,'{\"report_date\":\"2025-08-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-14 06:40:10'), +(465,'ADD_ACCUMULATE',554,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-18 06:21:36'), +(466,'ADD_ACCUMULATE',555,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-18 06:21:36'), +(467,'ADD_ACCUMULATE',556,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-18 06:22:01'), +(468,'ADD_ACCUMULATE',557,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-18 06:22:53'), +(469,'ADD_ACCUMULATE',559,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-18 06:23:34'), +(470,'ADD_ACCUMULATE',561,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:41:24'), +(471,'ADD_ACCUMULATE',562,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:41:24'), +(472,'ADD_ACCUMULATE',563,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:41:24'), +(473,'ADD_ACCUMULATE',564,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:43:10'), +(474,'ADD_ACCUMULATE',565,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:43:10'), +(475,'ADD_ACCUMULATE',566,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-18 06:43:10'), +(476,'ADD_ACCUMULATE',567,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-18 06:43:35'), +(477,'ADD_ACCUMULATE',568,NULL,'{\"report_date\":\"2025-08-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-18 06:43:35'), +(478,'ADD_ACCUMULATE',569,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"6.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:02:49'), +(479,'ADD_ACCUMULATE',570,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:03:30'), +(480,'ADD_ACCUMULATE',571,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:03:30'), +(481,'ADD_ACCUMULATE',572,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:03:30'), +(482,'ADD_ACCUMULATE',573,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:03:30'), +(483,'ADD_ACCUMULATE',574,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:04:05'), +(484,'ADD_ACCUMULATE',575,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:04:05'), +(485,'ADD_ACCUMULATE',576,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:04:05'), +(486,'ADD_ACCUMULATE',577,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:04:05'), +(487,'ADD_ACCUMULATE',578,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-19 08:04:05'), +(488,'ADD_ACCUMULATE',579,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-19 08:36:51'), +(489,'ADD_ACCUMULATE',580,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-19 08:36:51'), +(490,'ADD_ACCUMULATE',581,NULL,'{\"report_date\":\"2025-08-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-19 08:36:51'), +(491,'ADD_ACCUMULATE',582,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-20 06:19:36'), +(492,'ADD_ACCUMULATE',583,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-20 06:21:28'), +(493,'ADD_ACCUMULATE',585,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-20 06:21:28'), +(494,'ADD_ACCUMULATE',587,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:43:46'), +(495,'ADD_ACCUMULATE',588,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:23'), +(496,'ADD_ACCUMULATE',589,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:23'), +(497,'ADD_ACCUMULATE',590,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:23'), +(498,'ADD_ACCUMULATE',591,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:24'), +(499,'ADD_ACCUMULATE',592,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:24'), +(500,'ADD_ACCUMULATE',593,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:24'), +(501,'ADD_ACCUMULATE',594,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:26'), +(502,'ADD_ACCUMULATE',595,NULL,'{\"report_date\":\"2025-08-20\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-20 06:44:26'), +(503,'ADD_ACCUMULATE',596,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-21 06:30:36'), +(504,'ADD_ACCUMULATE',597,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-21 06:30:36'), +(505,'ADD_ACCUMULATE',598,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:50:38'), +(506,'ADD_ACCUMULATE',599,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:50:38'), +(507,'ADD_ACCUMULATE',600,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:51:23'), +(508,'ADD_ACCUMULATE',602,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:51:23'), +(509,'ADD_ACCUMULATE',604,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:51:23'), +(510,'ADD_ACCUMULATE',606,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:51:23'), +(511,'ADD_ACCUMULATE',608,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:54:46'), +(512,'ADD_ACCUMULATE',610,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-21 07:55:25'), +(513,'ADD_ACCUMULATE',612,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-21 08:24:50'), +(514,'ADD_ACCUMULATE',613,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-21 08:24:50'), +(515,'ADD_ACCUMULATE',614,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-22 06:21:15'), +(516,'ADD_ACCUMULATE',615,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-22 06:23:12'), +(517,'ADD_ACCUMULATE',617,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-22 06:23:55'), +(518,'ADD_ACCUMULATE',618,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:27:43'), +(519,'ADD_ACCUMULATE',619,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(520,'ADD_ACCUMULATE',620,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(521,'ADD_ACCUMULATE',621,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(522,'ADD_ACCUMULATE',622,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(523,'ADD_ACCUMULATE',623,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(524,'ADD_ACCUMULATE',624,NULL,'{\"report_date\":\"2025-08-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-22 06:28:15'), +(525,'ADD_ACCUMULATE',625,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:02'), +(526,'ADD_ACCUMULATE',627,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:25'), +(527,'ADD_ACCUMULATE',628,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(528,'ADD_ACCUMULATE',629,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(529,'ADD_ACCUMULATE',630,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(530,'ADD_ACCUMULATE',631,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(531,'ADD_ACCUMULATE',632,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(532,'ADD_ACCUMULATE',633,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(533,'ADD_ACCUMULATE',634,NULL,'{\"report_date\":\"2025-08-23\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-23 04:57:54'), +(534,'ADD_ACCUMULATE',635,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(535,'ADD_ACCUMULATE',636,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(536,'ADD_ACCUMULATE',637,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(537,'ADD_ACCUMULATE',638,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(538,'ADD_ACCUMULATE',639,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(539,'ADD_ACCUMULATE',640,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(540,'ADD_ACCUMULATE',641,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(541,'ADD_ACCUMULATE',642,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(542,'ADD_ACCUMULATE',643,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(543,'ADD_ACCUMULATE',644,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-25 06:48:34'), +(544,'ADD_ACCUMULATE',645,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-25 06:49:16'), +(545,'ADD_ACCUMULATE',646,NULL,'{\"report_date\":\"2025-08-25\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-25 06:49:17'), +(546,'ADD_ACCUMULATE',647,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:28:03'), +(547,'ADD_ACCUMULATE',649,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:28:35'), +(548,'ADD_ACCUMULATE',650,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(549,'ADD_ACCUMULATE',651,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(550,'ADD_ACCUMULATE',652,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(551,'ADD_ACCUMULATE',653,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(552,'ADD_ACCUMULATE',654,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(553,'ADD_ACCUMULATE',655,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(554,'ADD_ACCUMULATE',656,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:02'), +(555,'ADD_ACCUMULATE',657,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-26 07:29:03'), +(556,'ADD_ACCUMULATE',658,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-26 08:22:12'), +(557,'ADD_ACCUMULATE',659,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-26 08:22:12'), +(558,'ADD_ACCUMULATE',660,NULL,'{\"report_date\":\"2025-08-26\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-26 08:22:12'), +(559,'ADD_ACCUMULATE',661,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(560,'ADD_ACCUMULATE',662,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(561,'ADD_ACCUMULATE',663,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(562,'ADD_ACCUMULATE',664,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(563,'ADD_ACCUMULATE',665,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(564,'ADD_ACCUMULATE',666,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(565,'ADD_ACCUMULATE',667,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:47'), +(566,'ADD_ACCUMULATE',668,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-27 06:44:48'), +(567,'ADD_ACCUMULATE',669,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-27 06:45:32'), +(568,'ADD_ACCUMULATE',671,NULL,'{\"report_date\":\"2025-08-27\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-27 06:45:32'), +(569,'ADD_ACCUMULATE',673,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-28 08:31:42'), +(570,'ADD_ACCUMULATE',675,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-28 08:31:42'), +(571,'ADD_ACCUMULATE',677,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-28 08:31:42'), +(572,'ADD_ACCUMULATE',679,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-28 08:31:42'), +(573,'ADD_ACCUMULATE',681,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:37:46'), +(574,'ADD_ACCUMULATE',683,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:38:15'), +(575,'ADD_ACCUMULATE',685,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:38:50'), +(576,'ADD_ACCUMULATE',687,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:39:24'), +(577,'ADD_ACCUMULATE',688,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(578,'ADD_ACCUMULATE',689,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(579,'ADD_ACCUMULATE',690,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(580,'ADD_ACCUMULATE',691,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(581,'ADD_ACCUMULATE',692,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(582,'ADD_ACCUMULATE',693,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":18,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:40:00'), +(583,'ADD_ACCUMULATE',694,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:44:56'), +(584,'ADD_ACCUMULATE',695,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:44:56'), +(585,'ADD_ACCUMULATE',696,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:44:56'), +(586,'ADD_ACCUMULATE',697,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(587,'ADD_ACCUMULATE',698,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(588,'ADD_ACCUMULATE',699,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(589,'ADD_ACCUMULATE',700,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(590,'ADD_ACCUMULATE',701,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(591,'ADD_ACCUMULATE',702,NULL,'{\"report_date\":\"2025-08-28\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":2,\"my_total\":\"10.00\",\"grand_total\":20,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"},{\"name\":\"반치원\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-28 08:45:19'), +(592,'DELETE',693,'{\"id\":693,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:05'), +(593,'DELETE',702,'{\"id\":702,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:16'), +(594,'DELETE',697,'{\"id\":697,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:26'), +(595,'DELETE',688,'{\"id\":688,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:32'), +(596,'DELETE',691,'{\"id\":691,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:41'), +(597,'DELETE',700,'{\"id\":700,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:48'), +(598,'DELETE',692,'{\"id\":692,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":4,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-28T08:40:00.000Z\",\"updated_at\":\"2025-08-28T08:40:00.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:46:56'), +(599,'DELETE',701,'{\"id\":701,\"report_date\":\"2025-08-28T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-28T08:45:19.000Z\",\"updated_at\":\"2025-08-28T08:45:19.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-28 08:47:01'), +(600,'ADD_ACCUMULATE',703,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(601,'ADD_ACCUMULATE',704,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(602,'ADD_ACCUMULATE',705,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(603,'ADD_ACCUMULATE',706,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(604,'ADD_ACCUMULATE',707,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(605,'ADD_ACCUMULATE',708,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(606,'ADD_ACCUMULATE',709,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(607,'ADD_ACCUMULATE',710,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:02'), +(608,'ADD_ACCUMULATE',711,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:35'), +(609,'ADD_ACCUMULATE',713,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:35'), +(610,'ADD_ACCUMULATE',715,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":3,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:35'), +(611,'ADD_ACCUMULATE',717,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":6,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-08-29 06:47:35'), +(612,'DELETE',705,'{\"id\":705,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":8,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:55:28'), +(613,'ADD_ACCUMULATE',719,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-29 21:55:56'), +(614,'ADD_ACCUMULATE',720,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-29 21:55:56'), +(615,'ADD_ACCUMULATE',721,NULL,'{\"report_date\":\"2025-08-29\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-29 21:55:56'), +(616,'DELETE',711,'{\"id\":711,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"6.00\",\"created_at\":\"2025-08-29T06:47:35.000Z\",\"updated_at\":\"2025-08-29T06:47:35.000Z\",\"created_by\":6,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:56:26'), +(617,'DELETE',712,'{\"id\":712,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":1,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-29T06:47:35.000Z\",\"updated_at\":\"2025-08-29T06:47:35.000Z\",\"created_by\":6,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:56:43'), +(618,'DELETE',707,'{\"id\":707,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:57:03'), +(619,'DELETE',708,'{\"id\":708,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:57:16'), +(620,'DELETE',709,'{\"id\":709,\"report_date\":\"2025-08-29T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":2,\"error_type_id\":5,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-29T06:47:02.000Z\",\"updated_at\":\"2025-08-29T06:47:02.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-08-29 21:57:26'), +(621,'ADD_ACCUMULATE',722,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-30 05:12:03'), +(622,'ADD_ACCUMULATE',723,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-30 05:12:03'), +(623,'ADD_ACCUMULATE',724,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-08-30 05:12:03'), +(624,'ADD_ACCUMULATE',725,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(625,'ADD_ACCUMULATE',726,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(626,'ADD_ACCUMULATE',727,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(627,'ADD_ACCUMULATE',728,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(628,'ADD_ACCUMULATE',729,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(629,'ADD_ACCUMULATE',730,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(630,'ADD_ACCUMULATE',731,NULL,'{\"report_date\":\"2025-08-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-08-30 05:36:49'), +(631,'ADD_ACCUMULATE',732,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:18:28'), +(632,'ADD_ACCUMULATE',733,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:18:28'), +(633,'ADD_ACCUMULATE',734,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:11'), +(634,'ADD_ACCUMULATE',735,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:11'), +(635,'ADD_ACCUMULATE',736,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"4.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:11'), +(636,'ADD_ACCUMULATE',737,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:35'), +(637,'ADD_ACCUMULATE',738,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:35'), +(638,'ADD_ACCUMULATE',739,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:19:35'), +(639,'ADD_ACCUMULATE',740,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 06:20:03'), +(640,'DELETE',650,'{\"id\":650,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:13:55'), +(641,'DELETE',654,'{\"id\":654,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:14:02'), +(642,'DELETE',656,'{\"id\":656,\"report_date\":\"2025-08-26T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-26T07:29:02.000Z\",\"updated_at\":\"2025-08-26T07:29:02.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:14:11'), +(643,'DELETE',572,'{\"id\":572,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":7,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:15:09'), +(644,'DELETE',571,'{\"id\":571,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:15:17'), +(645,'DELETE',570,'{\"id\":570,\"report_date\":\"2025-08-19T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"10.00\",\"created_at\":\"2025-08-19T08:03:30.000Z\",\"updated_at\":\"2025-08-19T08:03:30.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:15:27'), +(646,'DELETE',599,'{\"id\":599,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":7,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:50:38.000Z\",\"updated_at\":\"2025-08-21T07:50:38.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:15:59'), +(647,'DELETE',604,'{\"id\":604,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:16:14'), +(648,'DELETE',605,'{\"id\":605,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:16:19'), +(649,'DELETE',606,'{\"id\":606,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:16:28'), +(650,'DELETE',607,'{\"id\":607,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"2.00\",\"created_at\":\"2025-08-21T07:51:23.000Z\",\"updated_at\":\"2025-08-21T07:51:23.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:16:33'), +(651,'DELETE',598,'{\"id\":598,\"report_date\":\"2025-08-21T00:00:00.000Z\",\"worker_id\":1,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-21T07:50:38.000Z\",\"updated_at\":\"2025-08-21T07:50:38.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:16:54'), +(652,'ADD_ACCUMULATE',741,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 23:18:03'), +(653,'ADD_ACCUMULATE',742,NULL,'{\"report_date\":\"2025-08-21\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-01 23:18:03'), +(654,'DELETE',588,'{\"id\":588,\"report_date\":\"2025-08-20T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-20T06:44:23.000Z\",\"updated_at\":\"2025-08-20T06:44:23.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:26:52'), +(655,'DELETE',592,'{\"id\":592,\"report_date\":\"2025-08-20T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-20T06:44:24.000Z\",\"updated_at\":\"2025-08-20T06:44:24.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:26:58'), +(656,'DELETE',639,'{\"id\":639,\"report_date\":\"2025-08-25T00:00:00.000Z\",\"worker_id\":6,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-25T06:48:34.000Z\",\"updated_at\":\"2025-08-25T06:48:34.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:27:26'), +(657,'DELETE',642,'{\"id\":642,\"report_date\":\"2025-08-25T00:00:00.000Z\",\"worker_id\":3,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-08-25T06:48:34.000Z\",\"updated_at\":\"2025-08-25T06:48:34.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,3,'Manual deletion',NULL,NULL,'2025-09-01 23:27:31'), +(658,'ADD_ACCUMULATE',743,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:34:20'), +(659,'ADD_ACCUMULATE',744,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:34:20'), +(660,'DELETE_SINGLE',744,'{\"worker_name\":\"이창호\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-09-02T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-09-02 07:35:18'), +(661,'DELETE_SINGLE',743,'{\"worker_name\":\"최광욱\",\"project_name\":\"효성화학 에틸렌 탱크 건설공사\",\"work_hours\":\"8.00\",\"report_date\":\"2025-09-02T00:00:00.000Z\"}',NULL,3,'개별 항목 삭제',NULL,NULL,'2025-09-02 07:35:21'), +(662,'ADD_ACCUMULATE',745,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(663,'ADD_ACCUMULATE',746,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(664,'ADD_ACCUMULATE',747,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(665,'ADD_ACCUMULATE',748,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(666,'ADD_ACCUMULATE',749,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(667,'ADD_ACCUMULATE',750,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:04'), +(668,'ADD_ACCUMULATE',751,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(669,'ADD_ACCUMULATE',752,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(670,'ADD_ACCUMULATE',753,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(671,'ADD_ACCUMULATE',754,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(672,'ADD_ACCUMULATE',755,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(673,'ADD_ACCUMULATE',756,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:36:31'), +(674,'ADD_ACCUMULATE',757,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:37:19'), +(675,'ADD_ACCUMULATE',758,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"10.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-02 07:37:19'), +(676,'ADD_ACCUMULATE',759,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-02 08:16:14'), +(677,'ADD_ACCUMULATE',761,NULL,'{\"report_date\":\"2025-09-02\",\"worker_id\":4,\"work_entries_count\":2,\"added_hours\":10,\"my_total\":\"10.00\",\"grand_total\":10,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"10.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-02 08:16:14'), +(678,'ADD_ACCUMULATE',763,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:47'), +(679,'ADD_ACCUMULATE',764,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:47'), +(680,'ADD_ACCUMULATE',765,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(681,'ADD_ACCUMULATE',766,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(682,'ADD_ACCUMULATE',767,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(683,'ADD_ACCUMULATE',768,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(684,'ADD_ACCUMULATE',769,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(685,'ADD_ACCUMULATE',770,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-03 06:34:48'), +(686,'ADD_ACCUMULATE',771,NULL,'{\"report_date\":\"2025-09-03\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-03 06:44:18'), +(687,'ADD_ACCUMULATE',772,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:32'), +(688,'ADD_ACCUMULATE',773,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:32'), +(689,'ADD_ACCUMULATE',774,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:32'), +(690,'ADD_ACCUMULATE',775,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:32'), +(691,'ADD_ACCUMULATE',776,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:33'), +(692,'ADD_ACCUMULATE',777,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:33'), +(693,'ADD_ACCUMULATE',778,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:33'), +(694,'ADD_ACCUMULATE',779,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-04 06:41:33'), +(695,'ADD_ACCUMULATE',780,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-04 06:48:34'), +(696,'ADD_ACCUMULATE',781,NULL,'{\"report_date\":\"2025-09-04\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-04 06:48:34'), +(697,'ADD_ACCUMULATE',782,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:30'), +(698,'ADD_ACCUMULATE',783,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:30'), +(699,'ADD_ACCUMULATE',784,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:30'), +(700,'ADD_ACCUMULATE',785,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:31'), +(701,'ADD_ACCUMULATE',786,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:31'), +(702,'ADD_ACCUMULATE',787,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:31'), +(703,'ADD_ACCUMULATE',788,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-05 06:39:31'), +(704,'ADD_ACCUMULATE',789,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-05 22:09:55'), +(705,'ADD_ACCUMULATE',790,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-05 22:09:55'), +(706,'ADD_ACCUMULATE',791,NULL,'{\"report_date\":\"2025-09-05\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-05 22:09:55'), +(707,'ADD_ACCUMULATE',792,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-06 04:21:10'), +(708,'ADD_ACCUMULATE',793,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-06 04:21:10'), +(709,'ADD_ACCUMULATE',794,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-06 04:21:10'), +(710,'ADD_ACCUMULATE',795,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:18'), +(711,'ADD_ACCUMULATE',796,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:18'), +(712,'ADD_ACCUMULATE',797,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:18'), +(713,'ADD_ACCUMULATE',798,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:19'), +(714,'ADD_ACCUMULATE',799,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:19'), +(715,'ADD_ACCUMULATE',800,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:19'), +(716,'ADD_ACCUMULATE',801,NULL,'{\"report_date\":\"2025-09-06\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-06 05:28:19'), +(717,'ADD_ACCUMULATE',802,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(718,'ADD_ACCUMULATE',803,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(719,'ADD_ACCUMULATE',804,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(720,'ADD_ACCUMULATE',805,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(721,'ADD_ACCUMULATE',806,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(722,'ADD_ACCUMULATE',807,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(723,'ADD_ACCUMULATE',808,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-08 06:15:43'), +(724,'ADD_ACCUMULATE',809,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-08 06:47:37'), +(725,'ADD_ACCUMULATE',810,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-08 06:47:37'), +(726,'ADD_ACCUMULATE',811,NULL,'{\"report_date\":\"2025-09-08\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-08 06:47:37'), +(727,'ADD_ACCUMULATE',812,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(728,'ADD_ACCUMULATE',813,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(729,'ADD_ACCUMULATE',814,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(730,'ADD_ACCUMULATE',815,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(731,'ADD_ACCUMULATE',816,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(732,'ADD_ACCUMULATE',817,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(733,'ADD_ACCUMULATE',818,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-09 06:03:27'), +(734,'ADD_ACCUMULATE',819,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-09 06:44:29'), +(735,'ADD_ACCUMULATE',820,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-09 06:44:29'), +(736,'ADD_ACCUMULATE',821,NULL,'{\"report_date\":\"2025-09-09\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-09 06:44:29'), +(737,'ADD_ACCUMULATE',822,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(738,'ADD_ACCUMULATE',823,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(739,'ADD_ACCUMULATE',824,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(740,'ADD_ACCUMULATE',825,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(741,'ADD_ACCUMULATE',826,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(742,'ADD_ACCUMULATE',827,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(743,'ADD_ACCUMULATE',828,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-10 06:27:52'), +(744,'ADD_ACCUMULATE',829,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-10 06:48:43'), +(745,'ADD_ACCUMULATE',830,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-10 06:48:43'), +(746,'ADD_ACCUMULATE',831,NULL,'{\"report_date\":\"2025-09-10\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-10 06:48:43'), +(747,'ADD_ACCUMULATE',832,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":2,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:37:11'), +(748,'ADD_ACCUMULATE',834,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":4,\"work_entries_count\":3,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:38:24'), +(749,'ADD_ACCUMULATE',837,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:39:38'), +(750,'ADD_ACCUMULATE',838,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:40:48'), +(751,'ADD_ACCUMULATE',839,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:46'), +(752,'ADD_ACCUMULATE',840,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:47'), +(753,'ADD_ACCUMULATE',841,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:47'), +(754,'ADD_ACCUMULATE',842,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:47'), +(755,'ADD_ACCUMULATE',843,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:47'), +(756,'ADD_ACCUMULATE',844,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',6,'누적 추가 by 반치원 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:47'), +(757,'ADD_ACCUMULATE',845,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":10,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:51'), +(758,'ADD_ACCUMULATE',847,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":9,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:51'), +(759,'ADD_ACCUMULATE',849,NULL,'{\"report_date\":\"2025-09-11\",\"worker_id\":5,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":16,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"},{\"name\":\"반치원\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-11 06:41:51'), +(760,'DELETE',849,'{\"id\":849,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"4.00\",\"created_at\":\"2025-09-11T06:41:51.000Z\",\"updated_at\":\"2025-09-11T06:41:51.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-09-11 06:42:40'), +(761,'DELETE',850,'{\"id\":850,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":5,\"project_id\":3,\"work_type_id\":3,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"4.00\",\"created_at\":\"2025-09-11T06:41:51.000Z\",\"updated_at\":\"2025-09-11T06:41:51.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-09-11 06:42:49'), +(762,'DELETE',839,'{\"id\":839,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":10,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-11T06:41:46.000Z\",\"updated_at\":\"2025-09-11T06:41:46.000Z\",\"created_by\":6,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-09-11 06:43:07'), +(763,'DELETE',837,'{\"id\":837,\"report_date\":\"2025-09-11T00:00:00.000Z\",\"worker_id\":8,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-11T06:39:38.000Z\",\"updated_at\":\"2025-09-11T06:39:38.000Z\",\"created_by\":5,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-09-11 06:43:16'), +(764,'ADD_ACCUMULATE',851,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(765,'ADD_ACCUMULATE',852,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(766,'ADD_ACCUMULATE',853,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(767,'ADD_ACCUMULATE',854,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(768,'ADD_ACCUMULATE',855,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(769,'ADD_ACCUMULATE',856,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(770,'ADD_ACCUMULATE',857,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(771,'ADD_ACCUMULATE',858,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(772,'ADD_ACCUMULATE',859,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(773,'ADD_ACCUMULATE',860,NULL,'{\"report_date\":\"2025-09-12\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-12 06:45:29'), +(774,'ADD_ACCUMULATE',861,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(775,'ADD_ACCUMULATE',862,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(776,'ADD_ACCUMULATE',863,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(777,'ADD_ACCUMULATE',864,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(778,'ADD_ACCUMULATE',865,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(779,'ADD_ACCUMULATE',866,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(780,'ADD_ACCUMULATE',867,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(781,'ADD_ACCUMULATE',868,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(782,'ADD_ACCUMULATE',869,NULL,'{\"report_date\":\"2025-09-13\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-13 06:38:14'), +(783,'ADD_ACCUMULATE',870,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:40'), +(784,'ADD_ACCUMULATE',871,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:40'), +(785,'ADD_ACCUMULATE',872,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:40'), +(786,'ADD_ACCUMULATE',873,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:40'), +(787,'ADD_ACCUMULATE',874,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:41'), +(788,'ADD_ACCUMULATE',875,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:41'), +(789,'ADD_ACCUMULATE',876,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:41'), +(790,'ADD_ACCUMULATE',877,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:41'), +(791,'ADD_ACCUMULATE',878,NULL,'{\"report_date\":\"2025-09-14\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-14 04:47:41'), +(792,'ADD_ACCUMULATE',879,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:00'), +(793,'ADD_ACCUMULATE',880,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:00'), +(794,'ADD_ACCUMULATE',881,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:00'), +(795,'ADD_ACCUMULATE',882,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:00'), +(796,'ADD_ACCUMULATE',883,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(797,'ADD_ACCUMULATE',884,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(798,'ADD_ACCUMULATE',885,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(799,'ADD_ACCUMULATE',886,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(800,'ADD_ACCUMULATE',887,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(801,'ADD_ACCUMULATE',888,NULL,'{\"report_date\":\"2025-09-15\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-15 06:50:01'), +(802,'ADD_ACCUMULATE',889,NULL,'{\"report_date\":\"2025-09-16\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-16 06:51:19'), +(803,'ADD_ACCUMULATE',890,NULL,'{\"report_date\":\"2025-09-16\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-16 06:51:19'), +(804,'ADD_ACCUMULATE',891,NULL,'{\"report_date\":\"2025-09-16\",\"worker_id\":8,\"work_entries_count\":2,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-16 06:52:12'), +(805,'ADD_ACCUMULATE',893,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-17 06:43:08'), +(806,'ADD_ACCUMULATE',894,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-17 06:43:08'), +(807,'ADD_ACCUMULATE',895,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(808,'ADD_ACCUMULATE',896,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(809,'ADD_ACCUMULATE',897,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(810,'ADD_ACCUMULATE',898,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(811,'ADD_ACCUMULATE',899,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(812,'ADD_ACCUMULATE',900,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(813,'ADD_ACCUMULATE',901,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(814,'ADD_ACCUMULATE',902,NULL,'{\"report_date\":\"2025-09-17\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-17 06:45:06'), +(815,'ADD_ACCUMULATE',903,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:43:40'), +(816,'ADD_ACCUMULATE',904,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:43:40'), +(817,'ADD_ACCUMULATE',905,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:44:42'), +(818,'ADD_ACCUMULATE',906,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:44:42'), +(819,'ADD_ACCUMULATE',907,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:44:42'), +(820,'ADD_ACCUMULATE',908,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:44:42'), +(821,'ADD_ACCUMULATE',909,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:44:42'), +(822,'ADD_ACCUMULATE',910,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-18 06:46:39'), +(823,'ADD_ACCUMULATE',911,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-18 06:54:48'), +(824,'ADD_ACCUMULATE',912,NULL,'{\"report_date\":\"2025-09-18\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-18 06:54:48'), +(825,'ADD_ACCUMULATE',913,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:51:40'), +(826,'ADD_ACCUMULATE',914,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:51:40'), +(827,'ADD_ACCUMULATE',915,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:05'), +(828,'ADD_ACCUMULATE',916,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:05'), +(829,'ADD_ACCUMULATE',917,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:05'), +(830,'ADD_ACCUMULATE',918,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:05'), +(831,'ADD_ACCUMULATE',919,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:05'), +(832,'ADD_ACCUMULATE',920,NULL,'{\"report_date\":\"2025-09-19\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":4,\"my_total\":\"4.00\",\"grand_total\":4,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"4.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-19 06:52:23'), +(833,'ADD_ACCUMULATE',921,NULL,'{\"report_date\":\"2025-09-20\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-20 05:30:19'), +(834,'ADD_ACCUMULATE',922,NULL,'{\"report_date\":\"2025-09-20\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-20 05:30:19'), +(835,'ADD_ACCUMULATE',923,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(836,'ADD_ACCUMULATE',924,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(837,'ADD_ACCUMULATE',925,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(838,'ADD_ACCUMULATE',926,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(839,'ADD_ACCUMULATE',927,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(840,'ADD_ACCUMULATE',928,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-22 06:47:25'), +(841,'ADD_ACCUMULATE',929,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-22 06:50:29'), +(842,'ADD_ACCUMULATE',930,NULL,'{\"report_date\":\"2025-09-22\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-22 06:50:29'), +(843,'ADD_ACCUMULATE',931,NULL,'{\"report_date\":\"2025-09-23\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-23 05:46:40'), +(844,'ADD_ACCUMULATE',932,NULL,'{\"report_date\":\"2025-09-23\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-23 05:46:40'), +(845,'ADD_ACCUMULATE',933,NULL,'{\"report_date\":\"2025-09-24\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-25 01:14:58'), +(846,'ADD_ACCUMULATE',934,NULL,'{\"report_date\":\"2025-09-24\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-25 01:14:58'), +(847,'ADD_ACCUMULATE',935,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:07'), +(848,'ADD_ACCUMULATE',936,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:07'), +(849,'ADD_ACCUMULATE',937,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(850,'ADD_ACCUMULATE',938,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(851,'ADD_ACCUMULATE',939,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(852,'ADD_ACCUMULATE',940,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(853,'ADD_ACCUMULATE',941,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(854,'ADD_ACCUMULATE',942,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(855,'ADD_ACCUMULATE',943,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(856,'ADD_ACCUMULATE',944,NULL,'{\"report_date\":\"2025-09-29\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-29 06:36:47'), +(857,'ADD_ACCUMULATE',945,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(858,'ADD_ACCUMULATE',946,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(859,'ADD_ACCUMULATE',947,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(860,'ADD_ACCUMULATE',948,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(861,'ADD_ACCUMULATE',949,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(862,'ADD_ACCUMULATE',950,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:26'), +(863,'ADD_ACCUMULATE',951,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":3,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:27'), +(864,'ADD_ACCUMULATE',952,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:27'), +(865,'ADD_ACCUMULATE',953,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-09-30 06:52:27'), +(866,'DELETE',952,'{\"id\":952,\"report_date\":\"2025-09-30T00:00:00.000Z\",\"worker_id\":2,\"project_id\":3,\"work_type_id\":2,\"work_status_id\":1,\"error_type_id\":null,\"work_hours\":\"8.00\",\"created_at\":\"2025-09-30T06:52:27.000Z\",\"updated_at\":\"2025-09-30T06:52:27.000Z\",\"created_by\":3,\"updated_by\":null}',NULL,5,'Manual deletion',NULL,NULL,'2025-09-30 06:56:36'), +(867,'ADD_ACCUMULATE',954,NULL,'{\"report_date\":\"2025-09-30\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"임영규\",\"hours\":\"8.00\"}]}',5,'누적 추가 by 임영규 - 삭제 없음',NULL,NULL,'2025-09-30 06:56:55'), +(868,'ADD_ACCUMULATE',955,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":5,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 05:25:58'), +(869,'ADD_ACCUMULATE',956,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":6,\"my_total\":\"6.00\",\"grand_total\":6,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"6.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 05:25:59'), +(870,'ADD_ACCUMULATE',957,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":10,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:32'), +(871,'ADD_ACCUMULATE',958,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":9,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:32'), +(872,'ADD_ACCUMULATE',959,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":7,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:32'), +(873,'ADD_ACCUMULATE',960,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":6,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:32'), +(874,'ADD_ACCUMULATE',961,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:33'), +(875,'ADD_ACCUMULATE',962,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:33'), +(876,'ADD_ACCUMULATE',963,NULL,'{\"report_date\":\"2025-10-02\",\"worker_id\":1,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-02 06:22:33'), +(877,'ADD_ACCUMULATE',964,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":8,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-10 23:35:07'), +(878,'ADD_ACCUMULATE',965,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":4,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-10 23:35:07'), +(879,'ADD_ACCUMULATE',966,NULL,'{\"report_date\":\"2025-09-01\",\"worker_id\":2,\"work_entries_count\":1,\"added_hours\":8,\"my_total\":\"8.00\",\"grand_total\":8,\"contributors\":[{\"name\":\"김두수\",\"hours\":\"8.00\"}]}',3,'누적 추가 by 김두수 - 삭제 없음',NULL,NULL,'2025-10-10 23:35:07'); +/*!40000 ALTER TABLE `work_report_audit_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_report_defects` +-- + +DROP TABLE IF EXISTS `work_report_defects`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_report_defects` ( + `defect_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `report_id` int(11) NOT NULL COMMENT 'daily_work_reports의 id', + `error_type_id` int(11) DEFAULT NULL COMMENT 'error_types의 id (부적합 원인) - 레거시, issue_report_id 사용 권장', + `issue_report_id` int(10) unsigned DEFAULT NULL COMMENT 'work_issue_reports의 report_id (신고된 이슈 연결)', + `category_id` int(10) unsigned DEFAULT NULL COMMENT 'issue_report_categories의 category_id (직접 입력 시)', + `item_id` int(10) unsigned DEFAULT NULL COMMENT 'issue_report_items의 item_id (직접 입력 시)', + `defect_hours` decimal(4,1) NOT NULL DEFAULT 0.0 COMMENT '해당 원인의 부적합 시간', + `note` text DEFAULT NULL COMMENT '추가 메모', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`defect_id`), + UNIQUE KEY `work_report_defects_report_issue_unique` (`report_id`,`issue_report_id`), + KEY `work_report_defects_report_id_index` (`report_id`), + KEY `work_report_defects_error_type_id_index` (`error_type_id`), + KEY `work_report_defects_issue_report_id_index` (`issue_report_id`), + KEY `work_report_defects_category_id_foreign` (`category_id`), + KEY `work_report_defects_item_id_foreign` (`item_id`), + CONSTRAINT `work_report_defects_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `issue_report_categories` (`category_id`) ON DELETE SET NULL, + CONSTRAINT `work_report_defects_issue_report_id_foreign` FOREIGN KEY (`issue_report_id`) REFERENCES `work_issue_reports` (`report_id`) ON DELETE SET NULL, + CONSTRAINT `work_report_defects_item_id_foreign` FOREIGN KEY (`item_id`) REFERENCES `issue_report_items` (`item_id`) ON DELETE SET NULL, + CONSTRAINT `work_report_defects_report_id_foreign` FOREIGN KEY (`report_id`) REFERENCES `daily_work_reports` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_report_defects` +-- + +LOCK TABLES `work_report_defects` WRITE; +/*!40000 ALTER TABLE `work_report_defects` DISABLE KEYS */; +INSERT INTO `work_report_defects` VALUES +(1,970,1,NULL,NULL,NULL,2.0,NULL,'2026-01-27 05:00:13'), +(2,972,1,NULL,NULL,NULL,4.0,NULL,'2026-01-27 05:09:53'), +(3,991,1,NULL,NULL,NULL,2.0,NULL,'2026-01-30 00:13:02'), +(4,973,5,NULL,NULL,NULL,4.0,NULL,'2026-01-27 05:11:47'), +(5,987,5,NULL,NULL,NULL,2.0,NULL,'2026-01-29 22:16:36'), +(6,990,5,NULL,NULL,NULL,2.0,NULL,'2026-01-29 22:16:36'), +(8,995,NULL,NULL,2,6,2.0,'치수가 nmm 안맞음(포인트 많이 고침)','2026-02-03 00:29:52'), +(9,995,NULL,3,NULL,NULL,1.0,NULL,'2026-02-03 00:29:52'), +(10,1639,NULL,3,NULL,NULL,1.0,NULL,'2026-02-03 04:28:40'), +(11,1639,NULL,NULL,1,2,2.0,NULL,'2026-02-03 04:28:40'), +(12,1644,NULL,NULL,5,42,4.0,NULL,'2026-02-04 22:52:41'), +(13,1676,NULL,NULL,13,43,2.0,NULL,'2026-02-04 23:22:54'), +(14,1679,NULL,NULL,4,44,8.0,'잘못된 정보를 전달함','2026-02-04 23:22:54'), +(15,1706,NULL,NULL,4,15,4.0,NULL,'2026-02-04 23:36:37'), +(16,1707,NULL,NULL,4,15,8.0,'설치 지연','2026-02-04 23:36:37'), +(17,1708,NULL,NULL,4,15,8.0,'설치 지연','2026-02-04 23:36:37'), +(18,1719,NULL,NULL,13,43,8.0,NULL,'2026-02-04 23:44:26'), +(19,1792,NULL,NULL,4,15,8.0,NULL,'2026-02-05 00:37:01'), +(20,1793,NULL,NULL,4,15,8.0,NULL,'2026-02-05 00:37:02'); +/*!40000 ALTER TABLE `work_report_defects` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_status_types` +-- + +DROP TABLE IF EXISTS `work_status_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_status_types` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL COMMENT '상태명', + `description` text DEFAULT NULL COMMENT '상태 설명', + `is_error` tinyint(1) DEFAULT 0 COMMENT '에러 상태 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_status_types` +-- + +LOCK TABLES `work_status_types` WRITE; +/*!40000 ALTER TABLE `work_status_types` DISABLE KEYS */; +INSERT INTO `work_status_types` VALUES +(1,'정규','정상적으로 완료된 작업',0,'2025-06-16 02:21:16'), +(2,'에러','오류가 발생한 작업',1,'2025-06-16 02:21:16'); +/*!40000 ALTER TABLE `work_status_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `work_types` +-- + +DROP TABLE IF EXISTS `work_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `work_types` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL COMMENT '작업 유형명', + `description` text DEFAULT NULL COMMENT '작업 유형 설명', + `category` varchar(50) DEFAULT NULL COMMENT '작업 카테고리', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `work_types` +-- + +LOCK TABLES `work_types` WRITE; +/*!40000 ALTER TABLE `work_types` DISABLE KEYS */; +INSERT INTO `work_types` VALUES +(1,'Base(구조물)',NULL,NULL,'2025-06-16 02:21:32','2025-06-16 03:03:42'), +(2,'Vessel(용기)',NULL,NULL,'2025-06-16 02:21:32','2025-06-16 03:03:47'), +(3,'Piping Assembly(배관)',NULL,NULL,'2025-06-16 02:21:32','2025-06-16 03:03:50'), +(4,'작업대기',NULL,NULL,'2025-06-16 02:21:32','2025-06-16 03:03:56'), +(11,'휴무','연차사용 등',NULL,'2025-11-04 05:53:46','2025-11-04 05:53:46'), +(12,'시설설비',NULL,NULL,'2026-02-04 21:52:07','2026-02-04 21:52:07'); +/*!40000 ALTER TABLE `work_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `worker_groups` +-- + +DROP TABLE IF EXISTS `worker_groups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `worker_groups` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `group_leader_id` int(11) NOT NULL, + `worker_id` int(11) NOT NULL, + `group_name` varchar(100) DEFAULT NULL, + `is_active` tinyint(1) DEFAULT 1, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `uk_leader_worker` (`group_leader_id`,`worker_id`), + KEY `idx_group_leader` (`group_leader_id`), + KEY `idx_worker` (`worker_id`), + KEY `idx_is_active` (`is_active`), + CONSTRAINT `fk_group_leader` FOREIGN KEY (`group_leader_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE, + CONSTRAINT `fk_group_worker` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `worker_groups` +-- + +LOCK TABLES `worker_groups` WRITE; +/*!40000 ALTER TABLE `worker_groups` DISABLE KEYS */; +/*!40000 ALTER TABLE `worker_groups` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `worker_vacation_balance` +-- + +DROP TABLE IF EXISTS `worker_vacation_balance`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `worker_vacation_balance` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `worker_id` int(11) NOT NULL, + `year` int(11) NOT NULL, + `total_annual_leave` decimal(4,1) DEFAULT 15.0, + `used_annual_leave` decimal(4,1) DEFAULT 0.0, + `notes` text DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`id`), + UNIQUE KEY `unique_worker_year` (`worker_id`,`year`), + CONSTRAINT `worker_vacation_balance_ibfk_1` FOREIGN KEY (`worker_id`) REFERENCES `workers` (`worker_id`) ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `worker_vacation_balance` +-- + +LOCK TABLES `worker_vacation_balance` WRITE; +/*!40000 ALTER TABLE `worker_vacation_balance` DISABLE KEYS */; +INSERT INTO `worker_vacation_balance` VALUES +(1,1,2026,15.0,0.0,NULL,'2026-01-19 01:40:31','2026-01-19 01:40:31'), +(11,2,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(12,4,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(13,5,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(14,6,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(15,7,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(16,8,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(17,9,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(18,10,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'), +(19,12,2026,15.0,0.0,NULL,'2026-01-19 01:40:56','2026-01-19 01:40:56'); +/*!40000 ALTER TABLE `worker_vacation_balance` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workers` +-- + +DROP TABLE IF EXISTS `workers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workers` ( + `worker_id` int(11) NOT NULL AUTO_INCREMENT, + `worker_name` varchar(100) NOT NULL, + `join_date` date DEFAULT NULL, + `job_type` varchar(100) DEFAULT NULL, + `salary` decimal(10,2) DEFAULT NULL, + `annual_leave` int(11) DEFAULT NULL, + `status` enum('active','inactive') DEFAULT 'active' COMMENT '작업자 상태 (active: 활성, inactive: 비활성)', + `created_at` timestamp NULL DEFAULT current_timestamp(), + `updated_at` timestamp NULL DEFAULT current_timestamp(), + `phone_number` varchar(20) DEFAULT NULL COMMENT '전화번호', + `email` varchar(100) DEFAULT NULL COMMENT '이메일', + `hire_date` date DEFAULT NULL COMMENT '입사일', + `department` varchar(100) DEFAULT NULL COMMENT '부서', + `department_id` int(11) DEFAULT NULL, + `notes` text DEFAULT NULL COMMENT '비고', + `employment_status` enum('employed','resigned') NOT NULL DEFAULT 'employed' COMMENT '재직 상태 (employed: 재직, resigned: 퇴사)', + PRIMARY KEY (`worker_id`), + KEY `idx_workers_status` (`status`), + KEY `idx_workers_hire_date` (`hire_date`), + KEY `department_id` (`department_id`), + CONSTRAINT `workers_ibfk_1` FOREIGN KEY (`department_id`) REFERENCES `departments` (`department_id`) ON DELETE SET NULL +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workers` +-- + +LOCK TABLES `workers` WRITE; +/*!40000 ALTER TABLE `workers` DISABLE KEYS */; +INSERT INTO `workers` VALUES +(1,'김두수',NULL,'leader',NULL,NULL,'active','2025-04-15 13:23:17','2025-04-15 13:23:17',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(2,'임영규',NULL,'leader',NULL,NULL,'active','2025-04-15 13:23:17','2025-04-15 13:23:17',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(3,'반치원',NULL,'worker',NULL,NULL,'active','2025-04-15 13:23:22','2025-04-15 13:23:22',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(4,'황인용',NULL,'worker',NULL,NULL,'active','2025-04-15 13:23:33','2025-04-15 13:23:33',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(5,'표영진',NULL,'worker',NULL,NULL,'active','2025-04-15 13:23:38','2025-04-15 13:23:38',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(6,'김윤섭',NULL,'worker',NULL,NULL,'active','2025-04-15 13:23:46','2025-04-15 13:23:46',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(7,'이창호',NULL,'worker',NULL,NULL,'inactive','2025-04-15 13:23:51','2025-04-15 13:23:51',NULL,NULL,NULL,NULL,1,NULL,'resigned'), +(8,'최광욱',NULL,'worker',NULL,NULL,'active','2025-04-15 13:23:57','2025-04-15 13:23:57',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(9,'박현수',NULL,'worker',NULL,NULL,'active','2025-04-15 13:24:01','2025-04-15 13:24:01',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(10,'조윤호',NULL,'worker',NULL,NULL,'active','2025-04-15 13:24:07','2025-04-15 13:24:07',NULL,NULL,NULL,NULL,1,NULL,'employed'), +(11,'조승민',NULL,'worker',NULL,NULL,'active','2026-01-06 06:18:27','2026-01-06 06:18:27',NULL,NULL,'2026-01-05','생산팀',1,'용접사','employed'); +/*!40000 ALTER TABLE `workers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplace_categories` +-- + +DROP TABLE IF EXISTS `workplace_categories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplace_categories` ( + `category_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '카테고리 ID', + `category_name` varchar(100) NOT NULL COMMENT '카테고리명 (예: 제 1공장)', + `description` text DEFAULT NULL COMMENT '설명', + `display_order` int(11) DEFAULT 0 COMMENT '표시 순서', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성화 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '생성일시', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '수정일시', + `layout_image` varchar(500) DEFAULT NULL COMMENT '공장 배치도 이미지 경로', + PRIMARY KEY (`category_id`), + KEY `workplace_categories_is_active_index` (`is_active`), + KEY `workplace_categories_display_order_index` (`display_order`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplace_categories` +-- + +LOCK TABLES `workplace_categories` WRITE; +/*!40000 ALTER TABLE `workplace_categories` DISABLE KEYS */; +INSERT INTO `workplace_categories` VALUES +(1,'제 1공장',NULL,1,1,'2026-01-26 05:28:52','2026-01-27 03:52:45','/uploads/workplace-layout-1769485965188-143426330.jpg'), +(2,'제 2공장',NULL,2,1,'2026-01-26 05:28:59','2026-01-26 05:28:59',NULL); +/*!40000 ALTER TABLE `workplace_categories` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplace_items` +-- + +DROP TABLE IF EXISTS `workplace_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplace_items` ( + `item_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `workplace_id` int(10) unsigned NOT NULL COMMENT '작업장 ID', + `patrol_session_id` int(10) unsigned DEFAULT NULL COMMENT '등록한 순회점검 세션', + `project_id` int(11) DEFAULT NULL COMMENT '관련 프로젝트', + `item_type` enum('container','plate','material','tool','other') NOT NULL COMMENT '물품 유형', + `item_name` varchar(100) DEFAULT NULL COMMENT '물품명/설명', + `quantity` int(11) DEFAULT 1 COMMENT '수량', + `x_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 X 위치 (%)', + `y_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 Y 위치 (%)', + `width_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 너비 (%)', + `height_percent` decimal(5,2) DEFAULT NULL COMMENT '지도상 높이 (%)', + `is_active` tinyint(1) DEFAULT 1 COMMENT '현재 존재 여부', + `created_by` int(11) NOT NULL COMMENT '등록자 user_id', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_by` int(11) DEFAULT NULL COMMENT '최종 수정자 user_id', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`item_id`), + KEY `workplace_items_workplace_id_is_active_index` (`workplace_id`,`is_active`), + KEY `workplace_items_project_id_index` (`project_id`), + KEY `workplace_items_patrol_session_id_foreign` (`patrol_session_id`), + KEY `workplace_items_created_by_foreign` (`created_by`), + KEY `workplace_items_updated_by_foreign` (`updated_by`), + CONSTRAINT `workplace_items_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `workplace_items_patrol_session_id_foreign` FOREIGN KEY (`patrol_session_id`) REFERENCES `daily_patrol_sessions` (`session_id`) ON DELETE SET NULL, + CONSTRAINT `workplace_items_project_id_foreign` FOREIGN KEY (`project_id`) REFERENCES `projects` (`project_id`) ON DELETE SET NULL, + CONSTRAINT `workplace_items_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`user_id`), + CONSTRAINT `workplace_items_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplace_items` +-- + +LOCK TABLES `workplace_items` WRITE; +/*!40000 ALTER TABLE `workplace_items` DISABLE KEYS */; +/*!40000 ALTER TABLE `workplace_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplace_map_regions` +-- + +DROP TABLE IF EXISTS `workplace_map_regions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplace_map_regions` ( + `region_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '영역 ID', + `workplace_id` int(10) unsigned NOT NULL COMMENT '작업장 ID', + `category_id` int(10) unsigned NOT NULL COMMENT '공장 카테고리 ID', + `x_start` decimal(5,2) NOT NULL COMMENT '시작 X 좌표 (%)', + `y_start` decimal(5,2) NOT NULL COMMENT '시작 Y 좌표 (%)', + `x_end` decimal(5,2) NOT NULL COMMENT '끝 X 좌표 (%)', + `y_end` decimal(5,2) NOT NULL COMMENT '끝 Y 좌표 (%)', + `shape` varchar(20) DEFAULT 'rect' COMMENT '영역 모양 (rect, circle, polygon)', + `polygon_points` text DEFAULT NULL COMMENT '다각형인 경우 좌표 배열 (JSON)', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`region_id`), + KEY `workplace_map_regions_workplace_id_foreign` (`workplace_id`), + KEY `workplace_map_regions_category_id_foreign` (`category_id`), + CONSTRAINT `workplace_map_regions_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `workplace_map_regions_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplace_map_regions` +-- + +LOCK TABLES `workplace_map_regions` WRITE; +/*!40000 ALTER TABLE `workplace_map_regions` DISABLE KEYS */; +INSERT INTO `workplace_map_regions` VALUES +(1,12,1,29.43,57.36,34.43,66.06,'rect',NULL,'2026-01-26 23:05:13','2026-01-26 23:05:13'), +(2,11,1,46.05,7.85,51.68,24.75,'rect',NULL,'2026-01-26 23:05:23','2026-01-26 23:05:23'), +(3,4,1,35.18,0.12,46.05,23.79,'rect',NULL,'2026-01-26 23:05:53','2026-01-26 23:05:53'), +(4,9,1,50.68,29.10,54.93,38.52,'rect',NULL,'2026-01-26 23:06:03','2026-01-26 23:06:03'), +(5,10,1,50.80,43.35,55.05,52.05,'rect',NULL,'2026-01-26 23:06:08','2026-01-26 23:06:08'), +(6,5,1,55.30,8.33,58.55,24.27,'rect',NULL,'2026-01-26 23:06:15','2026-01-26 23:06:15'), +(7,3,1,59.30,8.09,80.93,55.67,'rect',NULL,'2026-01-26 23:06:29','2026-01-26 23:06:29'), +(8,1,1,58.93,62.92,72.93,74.03,'rect',NULL,'2026-01-26 23:06:37','2026-01-26 23:06:37'), +(9,8,1,56.43,28.38,58.55,39.25,'rect',NULL,'2026-01-26 23:06:46','2026-01-26 23:06:46'), +(10,7,1,0.18,1.32,25.68,21.37,'rect',NULL,'2026-01-26 23:06:51','2026-01-26 23:06:51'), +(11,2,1,34.93,29.10,47.93,61.95,'rect',NULL,'2026-01-26 23:06:59','2026-01-26 23:06:59'); +/*!40000 ALTER TABLE `workplace_map_regions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplace_visit_requests` +-- + +DROP TABLE IF EXISTS `workplace_visit_requests`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplace_visit_requests` ( + `request_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '신청 ID', + `requester_id` int(11) NOT NULL COMMENT '신청자 user_id', + `visitor_company` varchar(200) NOT NULL COMMENT '방문자 소속 (회사명 또는 "일용직")', + `visitor_count` int(11) DEFAULT 1 COMMENT '방문 인원', + `category_id` int(10) unsigned NOT NULL COMMENT '방문 구역 (공장)', + `workplace_id` int(10) unsigned NOT NULL COMMENT '방문 작업장', + `visit_date` date NOT NULL COMMENT '방문 날짜', + `visit_time` time NOT NULL COMMENT '방문 시간', + `purpose_id` int(10) unsigned NOT NULL COMMENT '방문 목적 ID', + `notes` text DEFAULT NULL COMMENT '비고', + `status` enum('pending','approved','rejected','training_completed') DEFAULT 'pending' COMMENT '신청 상태', + `approved_by` int(11) DEFAULT NULL COMMENT '승인자 user_id', + `approved_at` timestamp NULL DEFAULT NULL COMMENT '승인 시간', + `rejection_reason` text DEFAULT NULL COMMENT '반려 사유', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`request_id`), + KEY `workplace_visit_requests_requester_id_foreign` (`requester_id`), + KEY `workplace_visit_requests_category_id_foreign` (`category_id`), + KEY `workplace_visit_requests_workplace_id_foreign` (`workplace_id`), + KEY `workplace_visit_requests_purpose_id_foreign` (`purpose_id`), + KEY `workplace_visit_requests_approved_by_foreign` (`approved_by`), + KEY `idx_visit_date` (`visit_date`), + KEY `idx_status` (`status`), + KEY `idx_visit_date_status` (`visit_date`,`status`), + CONSTRAINT `workplace_visit_requests_approved_by_foreign` FOREIGN KEY (`approved_by`) REFERENCES `users` (`user_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `workplace_visit_requests_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `workplace_categories` (`category_id`) ON UPDATE CASCADE, + CONSTRAINT `workplace_visit_requests_purpose_id_foreign` FOREIGN KEY (`purpose_id`) REFERENCES `visit_purpose_types` (`purpose_id`) ON UPDATE CASCADE, + CONSTRAINT `workplace_visit_requests_requester_id_foreign` FOREIGN KEY (`requester_id`) REFERENCES `users` (`user_id`) ON UPDATE CASCADE, + CONSTRAINT `workplace_visit_requests_workplace_id_foreign` FOREIGN KEY (`workplace_id`) REFERENCES `workplaces` (`workplace_id`) ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplace_visit_requests` +-- + +LOCK TABLES `workplace_visit_requests` WRITE; +/*!40000 ALTER TABLE `workplace_visit_requests` DISABLE KEYS */; +INSERT INTO `workplace_visit_requests` VALUES +(1,1,'test',1,1,2,'2026-01-29','15:48:00',3,NULL,'approved',1,'2026-01-29 05:54:04',NULL,'2026-01-29 05:48:54','2026-01-29 05:54:04'), +(2,1,'테스트',2,1,1,'2026-01-29','16:11:00',2,NULL,'training_completed',1,'2026-01-29 06:11:38',NULL,'2026-01-29 06:11:23','2026-01-29 06:12:11'), +(3,1,'test',2,1,2,'2026-01-30','10:13:00',1,NULL,'approved',1,'2026-01-30 00:13:57',NULL,'2026-01-30 00:13:49','2026-01-30 00:13:57'); +/*!40000 ALTER TABLE `workplace_visit_requests` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplace_zone_items` +-- + +DROP TABLE IF EXISTS `workplace_zone_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplace_zone_items` ( + `item_id` int(11) NOT NULL AUTO_INCREMENT, + `workplace_id` int(11) NOT NULL, + `item_name` varchar(200) NOT NULL COMMENT '물품/시설물 명칭', + `item_type` varchar(50) DEFAULT 'general' COMMENT '유형 (heavy_equipment, hazardous, storage, general 등)', + `description` text DEFAULT NULL COMMENT '상세 설명', + `x_percent` decimal(5,2) NOT NULL COMMENT '영역 시작 X 좌표 (%)', + `y_percent` decimal(5,2) NOT NULL COMMENT '영역 시작 Y 좌표 (%)', + `width_percent` decimal(5,2) DEFAULT 10.00 COMMENT '영역 너비 (%)', + `height_percent` decimal(5,2) DEFAULT 10.00 COMMENT '영역 높이 (%)', + `color` varchar(20) DEFAULT '#3b82f6' COMMENT '표시 색상', + `warning_level` varchar(20) DEFAULT 'normal' COMMENT '주의 수준 (normal, caution, danger)', + `quantity` int(11) DEFAULT 1 COMMENT '수량', + `unit` varchar(20) DEFAULT '개' COMMENT '단위', + `weight_kg` decimal(10,2) DEFAULT NULL COMMENT '중량 (kg)', + `is_active` tinyint(1) DEFAULT 1, + `created_by` int(11) DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`item_id`), + KEY `idx_workplace` (`workplace_id`), + KEY `idx_type` (`item_type`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='구역 내 등록 물품/시설물'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplace_zone_items` +-- + +LOCK TABLES `workplace_zone_items` WRITE; +/*!40000 ALTER TABLE `workplace_zone_items` DISABLE KEYS */; +INSERT INTO `workplace_zone_items` VALUES +(1,2,'용기 동체(대기중)','temp_storage','',21.28,1.37,77.27,29.64,'#3b82f6','good',1,'개',NULL,1,1,'2026-02-05 06:28:36','2026-02-05 06:28:36'); +/*!40000 ALTER TABLE `workplace_zone_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workplaces` +-- + +DROP TABLE IF EXISTS `workplaces`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workplaces` ( + `workplace_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '작업장 ID', + `category_id` int(10) unsigned DEFAULT NULL COMMENT '카테고리 ID (공장)', + `workplace_name` varchar(255) NOT NULL COMMENT '작업장명', + `description` text DEFAULT NULL COMMENT '설명', + `is_active` tinyint(1) DEFAULT 1 COMMENT '활성화 여부', + `created_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '생성일시', + `updated_at` timestamp NOT NULL DEFAULT current_timestamp() COMMENT '수정일시', + `workplace_purpose` varchar(50) DEFAULT NULL COMMENT '작업장 용도 (작업구역, 설비, 휴게시설, 회의실 등)', + `display_priority` int(11) DEFAULT 0 COMMENT '표시 우선순위 (숫자가 작을수록 먼저 표시)', + `layout_image` varchar(500) DEFAULT NULL COMMENT '작업장 레이아웃 이미지 경로', + PRIMARY KEY (`workplace_id`), + KEY `workplaces_category_id_index` (`category_id`), + KEY `workplaces_is_active_index` (`is_active`), + CONSTRAINT `workplaces_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `workplace_categories` (`category_id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workplaces` +-- + +LOCK TABLES `workplaces` WRITE; +/*!40000 ALTER TABLE `workplaces` DISABLE KEYS */; +INSERT INTO `workplaces` VALUES +(1,1,'서스작업장',NULL,1,'2026-01-26 05:29:18','2026-01-26 23:28:46','작업구역',1,NULL), +(2,1,'조립구역',NULL,1,'2026-01-26 05:29:30','2026-02-04 00:26:04','작업구역',0,'/uploads/workplace-layout-1770162560033-681774067.jpg'), +(3,1,'외부작업장',NULL,1,'2026-01-26 05:29:36','2026-01-26 23:28:35','작업구역',2,NULL), +(4,1,'입고장',NULL,1,'2026-01-26 05:29:41','2026-01-26 23:28:30','작업구역',2,NULL), +(5,1,'생산팀 창고',NULL,1,'2026-01-26 05:29:48','2026-01-26 23:28:16','창고',3,NULL), +(6,1,'검사장비 창고',NULL,1,'2026-01-26 05:29:57','2026-01-26 23:28:21','창고',3,NULL), +(7,1,'2층 가공장',NULL,1,'2026-01-26 05:30:04','2026-01-26 23:28:08','작업구역',2,NULL), +(8,1,'1층 가공장',NULL,1,'2026-01-26 05:30:09','2026-01-26 23:25:00','작업구역',2,NULL), +(9,1,'조방A',NULL,1,'2026-01-26 05:30:17','2026-01-26 23:24:56','작업구역',1,NULL), +(10,1,'조방B',NULL,1,'2026-01-26 05:30:26','2026-01-26 23:24:51','작업구역',1,NULL), +(11,1,'NDE룸',NULL,1,'2026-01-26 05:30:36','2026-01-26 23:24:45','설비',2,NULL), +(12,1,'휴게실',NULL,1,'2026-01-26 05:30:44','2026-01-26 23:24:38','휴게시설',3,NULL), +(13,NULL,'테스트 구역',NULL,1,'2026-02-05 06:48:37','2026-02-05 06:48:37','설비',0,NULL); +/*!40000 ALTER TABLE `workplaces` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Dumping routines for database 'hyungi' +-- +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2026-02-05 23:53:06 diff --git a/deploy/tkfb-package/deploy.sh b/deploy/tkfb-package/deploy.sh new file mode 100755 index 0000000..1157b20 --- /dev/null +++ b/deploy/tkfb-package/deploy.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# ============================================================================= +# TK-FB-Project Synology NAS 배포 스크립트 +# ============================================================================= + +set -e + +echo "==========================================" +echo "TK-FB-Project 배포 시작" +echo "==========================================" + +# 1. 환경 변수 파일 확인 +if [ ! -f .env ]; then + echo "❌ .env 파일이 없습니다." + echo " .env.synology 파일을 복사하고 값을 수정하세요:" + echo " cp .env.synology .env" + exit 1 +fi + +# 2. Cloudflare Tunnel 토큰 확인 +if grep -q "여기에_터널_토큰_입력" .env; then + echo "⚠️ Cloudflare Tunnel 토큰이 설정되지 않았습니다." + echo " .env 파일에서 CLOUDFLARE_TUNNEL_TOKEN을 설정하세요." +fi + +# 3. Docker 이미지 빌드 +echo "" +echo "🔨 Docker 이미지 빌드 중..." +docker-compose -f docker-compose.synology.yml build --no-cache + +# 4. 기존 컨테이너 중지 +echo "" +echo "🛑 기존 컨테이너 중지 중..." +docker-compose -f docker-compose.synology.yml down 2>/dev/null || true + +# 5. 컨테이너 시작 +echo "" +echo "🚀 컨테이너 시작 중..." +docker-compose -f docker-compose.synology.yml up -d + +# 6. DB 초기화 대기 +echo "" +echo "⏳ 데이터베이스 초기화 대기 중 (30초)..." +sleep 30 + +# 7. 데이터베이스 복원 (백업 파일이 있는 경우) +BACKUP_FILE=$(ls -t backup_*.sql 2>/dev/null | head -1) +if [ -n "$BACKUP_FILE" ]; then + echo "" + echo "📦 데이터베이스 복원 중: $BACKUP_FILE" + docker exec -i tkfb_db mysql -u root -p"$MYSQL_ROOT_PASSWORD" < "$BACKUP_FILE" + echo "✅ 데이터베이스 복원 완료" +fi + +# 8. 상태 확인 +echo "" +echo "==========================================" +echo "📊 컨테이너 상태" +echo "==========================================" +docker-compose -f docker-compose.synology.yml ps + +echo "" +echo "==========================================" +echo "✅ 배포 완료!" +echo "==========================================" +echo "" +echo "접속 URL:" +echo " - Web UI: http://localhost:80" +echo " - API: http://localhost:3005" +echo " - phpMyAdmin: http://localhost:8080" +echo "" +echo "Cloudflare Tunnel 설정 시:" +echo " - 외부 접속: https://your-domain.com" +echo "" diff --git a/deploy/tkfb-package/docker-compose.yml b/deploy/tkfb-package/docker-compose.yml new file mode 100644 index 0000000..6adf764 --- /dev/null +++ b/deploy/tkfb-package/docker-compose.yml @@ -0,0 +1,150 @@ +version: "3.8" + +services: + # MariaDB 데이터베이스 + db: + image: mariadb:10.9 + container_name: tkfb_db + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE:-hyungi} + - MYSQL_USER=${MYSQL_USER:-hyungi_user} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + volumes: + - db_data:/var/lib/mysql + - ./init-db:/docker-entrypoint-initdb.d + ports: + - "3306:3306" + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + timeout: 20s + retries: 10 + networks: + - tkfb_network + + # Node.js API 서버 + api: + build: + context: ./api.hyungi.net + dockerfile: Dockerfile + container_name: tkfb_api + env_file: + - ./.env + depends_on: + db: + condition: service_healthy + redis: + condition: service_started + restart: unless-stopped + ports: + - "3005:3005" + environment: + - NODE_ENV=production + - PORT=3005 + - DB_HOST=db + - DB_PORT=3306 + - DB_USER=${MYSQL_USER:-hyungi_user} + - DB_PASSWORD=${MYSQL_PASSWORD} + - DB_NAME=${MYSQL_DATABASE:-hyungi} + - DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - JWT_SECRET=${JWT_SECRET} + - JWT_EXPIRES_IN=${JWT_EXPIRES_IN:-7d} + - JWT_REFRESH_SECRET=${JWT_REFRESH_SECRET} + - JWT_REFRESH_EXPIRES_IN=${JWT_REFRESH_EXPIRES_IN:-30d} + - REDIS_HOST=redis + - REDIS_PORT=6379 + - WEATHER_API_URL=${WEATHER_API_URL:-} + - WEATHER_API_KEY=${WEATHER_API_KEY:-} + volumes: + - ./api.hyungi.net/uploads:/usr/src/app/uploads + - ./api.hyungi.net/logs:/usr/src/app/logs + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + networks: + - tkfb_network + + # Web UI (Nginx) + web: + build: + context: ./web-ui + dockerfile: Dockerfile + container_name: tkfb_web + restart: unless-stopped + ports: + - "80:80" + volumes: + - ./web-ui:/usr/share/nginx/html:ro + depends_on: + - api + networks: + - tkfb_network + + # FastAPI Bridge + fastapi: + build: + context: ./fastapi-bridge + dockerfile: Dockerfile + container_name: tkfb_fastapi + restart: unless-stopped + ports: + - "8000:8000" + environment: + - API_BASE_URL=http://api:3005 + depends_on: + - api + networks: + - tkfb_network + + # Redis Cache + redis: + image: redis:6-alpine + container_name: tkfb_redis + restart: unless-stopped + expose: + - "6379" + networks: + - tkfb_network + + # Cloudflare Tunnel + cloudflared: + image: cloudflare/cloudflared:latest + container_name: tkfb_cloudflared + restart: unless-stopped + command: tunnel --no-autoupdate run + environment: + - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN} + depends_on: + - web + - api + networks: + - tkfb_network + + # phpMyAdmin (선택사항 - 보안상 제거 권장) + phpmyadmin: + image: phpmyadmin/phpmyadmin:latest + container_name: tkfb_phpmyadmin + depends_on: + - db + restart: unless-stopped + ports: + - "8080:80" + environment: + - PMA_HOST=db + - PMA_USER=root + - PMA_PASSWORD=${MYSQL_ROOT_PASSWORD} + - UPLOAD_LIMIT=50M + networks: + - tkfb_network + +volumes: + db_data: + driver: local + +networks: + tkfb_network: + driver: bridge + name: tkfb_network diff --git a/deploy/tkfb-package/fastapi-bridge/Dockerfile b/deploy/tkfb-package/fastapi-bridge/Dockerfile new file mode 100644 index 0000000..9d73f64 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/Dockerfile @@ -0,0 +1,21 @@ +FROM python:3.9-slim + +WORKDIR /app + +# 시스템 패키지 업데이트 및 필요한 패키지 설치 +RUN apt-get update && apt-get install -y \ + gcc \ + && rm -rf /var/lib/apt/lists/* + +# Python 의존성 설치 +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# 애플리케이션 코드 복사 +COPY . . + +# 포트 노출 +EXPOSE 8000 + +# 애플리케이션 실행 +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/README.md b/deploy/tkfb-package/fastapi-bridge/README.md new file mode 100644 index 0000000..abce877 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/README.md @@ -0,0 +1,69 @@ +# FastAPI 브릿지 + +## 📋 개요 + +Technical Korea 생산팀 포털의 FastAPI 브릿지입니다. Express.js API의 성능을 향상시키고 확장성을 제공합니다. + +## 🏗️ 아키텍처 + +``` +브라우저 → FastAPI (포트 8000) → Express.js API (포트 3005) +``` + +## 🚀 빠른 시작 + +### 개발 환경 + +```bash +# 가상환경 생성 +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# 의존성 설치 +pip install -r requirements.txt + +# 서버 실행 +python main.py +``` + +### Docker 실행 + +```bash +# 이미지 빌드 +docker build -t tk-fastapi-bridge . + +# 컨테이너 실행 +docker run -p 8000:8000 tk-fastapi-bridge +``` + +## 📡 API 엔드포인트 + +### 헬스체크 +- `GET /` - 루트 정보 +- `GET /health` - 전체 시스템 헬스체크 + +### 프록시 +- `ALL /api/*` - Express.js API로 프록시 + +## 🔧 설정 + +`config.py`에서 설정을 변경할 수 있습니다: + +- `FASTAPI_PORT`: FastAPI 서버 포트 (기본: 8000) +- `EXPRESS_API_URL`: Express.js API URL (기본: http://localhost:3005) +- `CORS_ORIGINS`: CORS 허용 오리진 + +## 📊 Phase 1 목표 + +- [x] 기본 FastAPI 설정 +- [x] Express.js API 프록시 +- [x] 헬스체크 및 모니터링 +- [x] Docker 지원 +- [x] CORS 설정 + +## 🔮 다음 단계 (Phase 2) + +- [ ] 정적 파일 서빙 +- [ ] 단일 포트 통합 +- [ ] Redis 캐싱 +- [ ] 성능 최적화 \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/analytics.py b/deploy/tkfb-package/fastapi-bridge/analytics.py new file mode 100644 index 0000000..0b4122c --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/analytics.py @@ -0,0 +1,314 @@ +""" +FastAPI 브릿지 분석 시스템 +Phase 4: 데이터 분석 및 성능 모니터링 +""" +import time +import json +import asyncio +from typing import Dict, List, Any, Optional +from collections import defaultdict, deque +from dataclasses import dataclass, asdict +from datetime import datetime, timedelta + +import aiohttp +from fastapi import Request, Response + +from config import settings + +@dataclass +class RequestMetric: + """요청 메트릭 데이터 클래스""" + timestamp: float + method: str + path: str + status_code: int + response_time: float + cache_hit: bool = False + user_agent: Optional[str] = None + ip_address: Optional[str] = None + +class AnalyticsManager: + """분석 데이터 관리자""" + + def __init__(self, max_entries: int = 10000): + self.max_entries = max_entries + self.metrics: deque = deque(maxlen=max_entries) + self.cache_stats = { + "hits": 0, + "misses": 0, + "total_requests": 0 + } + + # 실시간 통계 + self.hourly_stats = defaultdict(lambda: { + "requests": 0, + "avg_response_time": 0, + "cache_hit_rate": 0, + "errors": 0 + }) + + # API 엔드포인트별 통계 + self.endpoint_stats = defaultdict(lambda: { + "requests": 0, + "avg_response_time": 0, + "min_response_time": float('inf'), + "max_response_time": 0, + "cache_hits": 0, + "errors": 0 + }) + + # 클라이언트 IP별 통계 + self.client_stats = defaultdict(lambda: { + "requests": 0, + "last_request": None, + "user_agents": set() + }) + + def record_request(self, metric: RequestMetric): + """요청 메트릭 기록""" + self.metrics.append(metric) + + # 전체 통계 업데이트 + self.cache_stats["total_requests"] += 1 + if metric.cache_hit: + self.cache_stats["hits"] += 1 + else: + self.cache_stats["misses"] += 1 + + # 시간대별 통계 업데이트 + hour_key = datetime.fromtimestamp(metric.timestamp).strftime("%Y-%m-%d_%H") + hourly = self.hourly_stats[hour_key] + hourly["requests"] += 1 + + # 평균 응답시간 계산 (이동평균) + if hourly["avg_response_time"] == 0: + hourly["avg_response_time"] = metric.response_time + else: + hourly["avg_response_time"] = ( + hourly["avg_response_time"] * 0.9 + metric.response_time * 0.1 + ) + + if metric.status_code >= 400: + hourly["errors"] += 1 + + # 엔드포인트별 통계 업데이트 + endpoint_key = f"{metric.method}:{metric.path}" + endpoint = self.endpoint_stats[endpoint_key] + endpoint["requests"] += 1 + + # 응답시간 통계 + if endpoint["avg_response_time"] == 0: + endpoint["avg_response_time"] = metric.response_time + else: + endpoint["avg_response_time"] = ( + endpoint["avg_response_time"] * 0.9 + metric.response_time * 0.1 + ) + + endpoint["min_response_time"] = min( + endpoint["min_response_time"], metric.response_time + ) + endpoint["max_response_time"] = max( + endpoint["max_response_time"], metric.response_time + ) + + if metric.cache_hit: + endpoint["cache_hits"] += 1 + + if metric.status_code >= 400: + endpoint["errors"] += 1 + + # 클라이언트별 통계 업데이트 + if metric.ip_address: + client = self.client_stats[metric.ip_address] + client["requests"] += 1 + client["last_request"] = metric.timestamp + if metric.user_agent: + client["user_agents"].add(metric.user_agent) + + def get_summary_stats(self) -> Dict[str, Any]: + """요약 통계 반환""" + total_requests = self.cache_stats["total_requests"] + cache_hit_rate = 0 + if total_requests > 0: + cache_hit_rate = (self.cache_stats["hits"] / total_requests) * 100 + + # 최근 1시간 통계 + recent_metrics = [ + m for m in self.metrics + if time.time() - m.timestamp < 3600 + ] + + avg_response_time = 0 + if recent_metrics: + avg_response_time = sum(m.response_time for m in recent_metrics) / len(recent_metrics) + + return { + "total_requests": total_requests, + "cache_hit_rate": round(cache_hit_rate, 2), + "recent_hour_requests": len(recent_metrics), + "avg_response_time_ms": round(avg_response_time * 1000, 2), + "active_clients": len([ + ip for ip, stats in self.client_stats.items() + if time.time() - (stats["last_request"] or 0) < 3600 + ]), + "total_endpoints": len(self.endpoint_stats) + } + + def get_top_endpoints(self, limit: int = 10) -> List[Dict[str, Any]]: + """상위 엔드포인트 통계""" + sorted_endpoints = sorted( + self.endpoint_stats.items(), + key=lambda x: x[1]["requests"], + reverse=True + ) + + result = [] + for endpoint, stats in sorted_endpoints[:limit]: + method, path = endpoint.split(":", 1) + cache_rate = 0 + if stats["requests"] > 0: + cache_rate = (stats["cache_hits"] / stats["requests"]) * 100 + + result.append({ + "method": method, + "path": path, + "requests": stats["requests"], + "avg_response_time_ms": round(stats["avg_response_time"] * 1000, 2), + "min_response_time_ms": round(stats["min_response_time"] * 1000, 2) if stats["min_response_time"] != float('inf') else 0, + "max_response_time_ms": round(stats["max_response_time"] * 1000, 2), + "cache_hit_rate": round(cache_rate, 2), + "error_count": stats["errors"] + }) + + return result + + def get_hourly_trends(self, hours: int = 24) -> Dict[str, List]: + """시간대별 트렌드 데이터""" + now = datetime.now() + trends = { + "hours": [], + "requests": [], + "avg_response_times": [], + "error_rates": [] + } + + for i in range(hours): + hour = now - timedelta(hours=i) + hour_key = hour.strftime("%Y-%m-%d_%H") + + stats = self.hourly_stats.get(hour_key, { + "requests": 0, + "avg_response_time": 0, + "errors": 0 + }) + + error_rate = 0 + if stats["requests"] > 0: + error_rate = (stats["errors"] / stats["requests"]) * 100 + + trends["hours"].insert(0, hour.strftime("%H:00")) + trends["requests"].insert(0, stats["requests"]) + trends["avg_response_times"].insert(0, round(stats["avg_response_time"] * 1000, 2)) + trends["error_rates"].insert(0, round(error_rate, 2)) + + return trends + + def get_client_analysis(self) -> Dict[str, Any]: + """클라이언트 분석""" + total_clients = len(self.client_stats) + active_clients = len([ + ip for ip, stats in self.client_stats.items() + if time.time() - (stats["last_request"] or 0) < 3600 + ]) + + # 상위 클라이언트 + top_clients = sorted( + self.client_stats.items(), + key=lambda x: x[1]["requests"], + reverse=True + )[:10] + + client_list = [] + for ip, stats in top_clients: + client_list.append({ + "ip": ip, + "requests": stats["requests"], + "last_request": datetime.fromtimestamp(stats["last_request"]).isoformat() if stats["last_request"] else None, + "user_agents": len(stats["user_agents"]) + }) + + return { + "total_clients": total_clients, + "active_clients_1h": active_clients, + "top_clients": client_list + } + + def predict_load(self) -> Dict[str, Any]: + """간단한 부하 예측""" + recent_hours = [] + for i in range(3): # 최근 3시간 + hour = datetime.now() - timedelta(hours=i) + hour_key = hour.strftime("%Y-%m-%d_%H") + stats = self.hourly_stats.get(hour_key, {"requests": 0}) + recent_hours.append(stats["requests"]) + + if len(recent_hours) >= 2: + # 단순 선형 트렌드 + trend = recent_hours[0] - recent_hours[1] if len(recent_hours) > 1 else 0 + predicted_next_hour = max(0, recent_hours[0] + trend) + else: + predicted_next_hour = recent_hours[0] if recent_hours else 0 + + return { + "current_hour_requests": recent_hours[0] if recent_hours else 0, + "predicted_next_hour": round(predicted_next_hour), + "trend": "increasing" if trend > 0 else "decreasing" if trend < 0 else "stable" if 'trend' in locals() else "unknown" + } + +# 전역 분석 매니저 +analytics_manager = AnalyticsManager() + +class AnalyticsMiddleware: + """분석 미들웨어""" + + def __init__(self, app): + self.app = app + + async def __call__(self, scope, receive, send): + if scope["type"] != "http": + await self.app(scope, receive, send) + return + + request = Request(scope, receive) + start_time = time.time() + + # 응답 캡처를 위한 래퍼 + response_data = {"status_code": 200} + + async def send_wrapper(message): + if message["type"] == "http.response.start": + response_data["status_code"] = message["status"] + await send(message) + + # 요청 처리 + await self.app(scope, receive, send_wrapper) + + # 메트릭 기록 + end_time = time.time() + response_time = end_time - start_time + + # 캐시 히트 여부는 로그에서 추측 (간단한 구현) + cache_hit = "/cache/" in request.url.path or response_time < 0.01 + + metric = RequestMetric( + timestamp=start_time, + method=request.method, + path=request.url.path, + status_code=response_data["status_code"], + response_time=response_time, + cache_hit=cache_hit, + user_agent=request.headers.get("user-agent"), + ip_address=request.client.host if request.client else None + ) + + analytics_manager.record_request(metric) \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/cache.py b/deploy/tkfb-package/fastapi-bridge/cache.py new file mode 100644 index 0000000..8d12cfc --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/cache.py @@ -0,0 +1,204 @@ +""" +FastAPI 브릿지 캐싱 시스템 +Phase 3: Redis 캐싱 (메모리 캐시로 폴백) +""" +import asyncio +import hashlib +import json +import time +from typing import Any, Dict, Optional, Union +from functools import wraps + +import redis.asyncio as redis + +from config import settings + +class CacheManager: + """캐시 관리자 - Redis 우선, 메모리 캐시 폴백""" + + def __init__(self): + self.redis_client: Optional[redis.Redis] = None + self.memory_cache: Dict[str, Dict[str, Any]] = {} + self.is_redis_available = False + + async def connect(self): + """Redis 연결 시도, 실패시 메모리 캐시 사용""" + try: + self.redis_client = redis.from_url( + settings.REDIS_URL, + decode_responses=True, + socket_connect_timeout=5, + socket_timeout=5 + ) + + # Redis 연결 테스트 + await self.redis_client.ping() + self.is_redis_available = True + print("✅ Redis 연결 성공") + + except Exception as e: + print(f"⚠️ Redis 연결 실패, 메모리 캐시 사용: {e}") + self.is_redis_available = False + self.redis_client = None + + async def disconnect(self): + """연결 종료""" + if self.redis_client: + await self.redis_client.close() + + def _generate_key(self, prefix: str, *args, **kwargs) -> str: + """캐시 키 생성""" + # 파라미터들을 문자열로 변환 + key_data = f"{prefix}:{':'.join(map(str, args))}" + if kwargs: + key_data += f":{json.dumps(kwargs, sort_keys=True)}" + + # 긴 키는 해시로 단축 + if len(key_data) > 100: + key_hash = hashlib.md5(key_data.encode()).hexdigest() + return f"{prefix}:{key_hash}" + + return key_data + + async def get(self, key: str) -> Optional[Any]: + """캐시에서 값 조회""" + if self.is_redis_available and self.redis_client: + try: + value = await self.redis_client.get(key) + if value: + return json.loads(value) + except Exception as e: + print(f"Redis GET 오류: {e}") + + # 메모리 캐시 폴백 + if key in self.memory_cache: + cache_entry = self.memory_cache[key] + if cache_entry['expires_at'] > time.time(): + return cache_entry['data'] + else: + # 만료된 캐시 삭제 + del self.memory_cache[key] + + return None + + async def set(self, key: str, value: Any, ttl: int = 300) -> bool: + """캐시에 값 저장""" + json_value = json.dumps(value, ensure_ascii=False) + + if self.is_redis_available and self.redis_client: + try: + await self.redis_client.setex(key, ttl, json_value) + return True + except Exception as e: + print(f"Redis SET 오류: {e}") + + # 메모리 캐시 폴백 + self.memory_cache[key] = { + 'data': value, + 'expires_at': time.time() + ttl + } + + # 메모리 캐시 크기 제한 (최대 1000개) + if len(self.memory_cache) > 1000: + # 가장 오래된 10개 항목 제거 + sorted_keys = sorted( + self.memory_cache.keys(), + key=lambda k: self.memory_cache[k]['expires_at'] + ) + for key_to_remove in sorted_keys[:10]: + del self.memory_cache[key_to_remove] + + return True + + async def delete(self, key: str) -> bool: + """캐시에서 값 삭제""" + deleted = False + + if self.is_redis_available and self.redis_client: + try: + result = await self.redis_client.delete(key) + deleted = result > 0 + except Exception as e: + print(f"Redis DELETE 오류: {e}") + + # 메모리 캐시에서도 삭제 + if key in self.memory_cache: + del self.memory_cache[key] + deleted = True + + return deleted + + async def clear_pattern(self, pattern: str) -> int: + """패턴 매칭으로 키 삭제""" + deleted_count = 0 + + if self.is_redis_available and self.redis_client: + try: + keys = await self.redis_client.keys(pattern) + if keys: + deleted_count = await self.redis_client.delete(*keys) + except Exception as e: + print(f"Redis CLEAR_PATTERN 오류: {e}") + + # 메모리 캐시에서 패턴 매칭 삭제 + import fnmatch + keys_to_delete = [ + key for key in self.memory_cache.keys() + if fnmatch.fnmatch(key, pattern) + ] + + for key in keys_to_delete: + del self.memory_cache[key] + deleted_count += 1 + + return deleted_count + + def get_stats(self) -> Dict[str, Any]: + """캐시 통계""" + stats = { + "redis_available": self.is_redis_available, + "memory_cache_size": len(self.memory_cache), + "cache_type": "Redis" if self.is_redis_available else "Memory" + } + + # 만료된 메모리 캐시 정리 + current_time = time.time() + expired_keys = [ + key for key, entry in self.memory_cache.items() + if entry['expires_at'] <= current_time + ] + + for key in expired_keys: + del self.memory_cache[key] + + stats["expired_keys_cleaned"] = len(expired_keys) + + return stats + +# 전역 캐시 매니저 +cache_manager = CacheManager() + +def cached(prefix: str = "default", ttl: int = 300): + """캐싱 데코레이터""" + def decorator(func): + @wraps(func) + async def wrapper(*args, **kwargs): + # 캐시 키 생성 + cache_key = cache_manager._generate_key(prefix, *args, **kwargs) + + # 캐시에서 조회 + cached_result = await cache_manager.get(cache_key) + if cached_result is not None: + print(f"🟢 캐시 히트: {cache_key}") + return cached_result + + # 캐시 미스 - 함수 실행 + print(f"🟡 캐시 미스: {cache_key}") + result = await func(*args, **kwargs) + + # 결과 캐싱 + await cache_manager.set(cache_key, result, ttl) + + return result + return wrapper + return decorator \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/config.py b/deploy/tkfb-package/fastapi-bridge/config.py new file mode 100644 index 0000000..65696b3 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/config.py @@ -0,0 +1,40 @@ +""" +FastAPI 브릿지 설정 +""" +import os +from typing import List + +class Settings: + # 기본 설정 + FASTAPI_PORT: int = int(os.getenv("FASTAPI_PORT", "8000")) + EXPRESS_API_URL: str = os.getenv("EXPRESS_API_URL", "http://api:20005") + REDIS_URL: str = os.getenv("REDIS_URL", "redis://localhost:6379") + NODE_ENV: str = os.getenv("NODE_ENV", "development") + + # CORS 설정 + CORS_ORIGINS: List[str] = [ + "http://localhost:3000", + "http://localhost:8000", + "https://api.technicalkorea.com" + ] + + # 로깅 + LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO") + + # API 설정 + API_V1_PREFIX: str = "/api" + PROJECT_NAME: str = "TK FastAPI Bridge" + VERSION: str = "1.0.0" + + # 프록시 설정 + PROXY_TIMEOUT: int = 30 + MAX_CONNECTIONS: int = 100 + + # 캐시 설정 + CACHE_DEFAULT_TTL: int = 300 # 5분 + CACHE_HEALTH_TTL: int = 60 # 1분 + CACHE_AUTH_TTL: int = 900 # 15분 + CACHE_API_TTL: int = 180 # 3분 + CACHE_STATIC_TTL: int = 3600 # 1시간 + +settings = Settings() \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/docker-compose.yml b/deploy/tkfb-package/fastapi-bridge/docker-compose.yml new file mode 100644 index 0000000..a737188 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.8" + +services: + fastapi-bridge: + build: + context: . + dockerfile: Dockerfile + container_name: fastapi_bridge_hyungi + restart: unless-stopped + ports: + - "20010:8000" + networks: + - hyungi_network + +networks: + hyungi_network: + external: true diff --git a/deploy/tkfb-package/fastapi-bridge/main.py b/deploy/tkfb-package/fastapi-bridge/main.py new file mode 100644 index 0000000..52e266b --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/main.py @@ -0,0 +1,294 @@ +""" +FastAPI 브릿지 메인 애플리케이션 +Phase 1: 기본 프록시 기능 +""" +import asyncio +import logging +from typing import Any, Dict + +import aiohttp +import uvicorn +from fastapi import FastAPI, Request, HTTPException +from fastapi.middleware.cors import CORSMiddleware +from fastapi.responses import JSONResponse, FileResponse +from fastapi.staticfiles import StaticFiles + +from config import settings +from cache import cache_manager, cached +from analytics import analytics_manager, AnalyticsMiddleware + +# 로깅 설정 +logging.basicConfig(level=getattr(logging, settings.LOG_LEVEL)) +logger = logging.getLogger(__name__) + +# FastAPI 앱 생성 +app = FastAPI( + title=settings.PROJECT_NAME, + version=settings.VERSION, + description="Technical Korea FastAPI Bridge - Express.js API 프록시" +) + +# CORS 설정 +app.add_middleware( + CORSMiddleware, + allow_origins=settings.CORS_ORIGINS, + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +# 분석 미들웨어 추가 +app.add_middleware(AnalyticsMiddleware) + +# 정적 파일 서빙 설정 +app.mount("/static", StaticFiles(directory="static"), name="static") +app.mount("/css", StaticFiles(directory="static/css"), name="css") +app.mount("/js", StaticFiles(directory="static/js"), name="js") +app.mount("/img", StaticFiles(directory="static/img"), name="img") +app.mount("/pages", StaticFiles(directory="static/pages"), name="pages") +app.mount("/components", StaticFiles(directory="static/components"), name="components") + +# HTTP 클라이언트 세션 (전역) +http_session: aiohttp.ClientSession = None + +@app.on_event("startup") +async def startup_event(): + """앱 시작시 초기화""" + global http_session + + # 캐시 매니저 연결 + await cache_manager.connect() + + # HTTP 클라이언트 세션 생성 + connector = aiohttp.TCPConnector( + limit=settings.MAX_CONNECTIONS, + ttl_dns_cache=300, + use_dns_cache=True, + ) + + timeout = aiohttp.ClientTimeout(total=settings.PROXY_TIMEOUT) + http_session = aiohttp.ClientSession( + connector=connector, + timeout=timeout + ) + + logger.info(f"🚀 {settings.PROJECT_NAME} v{settings.VERSION} 시작됨") + logger.info(f"📍 포트: {settings.FASTAPI_PORT}") + logger.info(f"🔗 Express.js API: {settings.EXPRESS_API_URL}") + + # 캐시 상태 로깅 + cache_stats = cache_manager.get_stats() + logger.info(f"💾 캐시: {cache_stats['cache_type']} ({'연결됨' if cache_stats['redis_available'] else '메모리 모드'})") + +@app.on_event("shutdown") +async def shutdown_event(): + """앱 종료시 정리""" + global http_session + + # 캐시 매니저 연결 종료 + await cache_manager.disconnect() + + if http_session: + await http_session.close() + + logger.info("✅ FastAPI 브릿지가 정상적으로 종료되었습니다") + +@app.get("/") +async def root(): + """루트 경로 - index.html 서빙""" + return FileResponse("static/index.html") + +@app.get("/status") +async def status(): + """서비스 상태 정보""" + return { + "service": settings.PROJECT_NAME, + "version": settings.VERSION, + "status": "healthy", + "express_api": settings.EXPRESS_API_URL + } + +@app.get("/health") +@cached(prefix="health", ttl=settings.CACHE_HEALTH_TTL) +async def health_check(): + """헬스체크 엔드포인트 (캐싱 적용)""" + try: + # Express.js API 헬스체크 + async with http_session.get(f"{settings.EXPRESS_API_URL}/api/health") as response: + express_status = "healthy" if response.status == 200 else "unhealthy" + express_data = await response.json() if response.status == 200 else None + except Exception as e: + logger.error(f"Express.js 헬스체크 실패: {e}") + express_status = "unhealthy" + express_data = None + + import datetime + return { + "fastapi_bridge": "healthy", + "express_api": express_status, + "express_data": express_data, + "timestamp": datetime.datetime.utcnow().isoformat() + "Z", + "cached": True + } + +@app.get("/cache/stats") +async def cache_stats(): + """캐시 통계 조회""" + stats = cache_manager.get_stats() + return { + "cache_stats": stats, + "settings": { + "default_ttl": settings.CACHE_DEFAULT_TTL, + "health_ttl": settings.CACHE_HEALTH_TTL, + "auth_ttl": settings.CACHE_AUTH_TTL, + "api_ttl": settings.CACHE_API_TTL, + "static_ttl": settings.CACHE_STATIC_TTL + } + } + +@app.delete("/cache/clear") +async def clear_cache(): + """캐시 전체 삭제""" + cleared_count = await cache_manager.clear_pattern("*") + return { + "message": "캐시가 삭제되었습니다", + "cleared_keys": cleared_count + } + +# ========================================== +# Phase 4: 분석 및 모니터링 API +# ========================================== + +@app.get("/analytics/summary") +async def analytics_summary(): + """분석 요약 통계""" + return { + "analytics": analytics_manager.get_summary_stats(), + "cache": cache_manager.get_stats(), + "prediction": analytics_manager.predict_load() + } + +@app.get("/analytics/endpoints") +async def analytics_endpoints(limit: int = 20): + """엔드포인트별 성능 통계""" + return { + "top_endpoints": analytics_manager.get_top_endpoints(limit), + "total_tracked": len(analytics_manager.endpoint_stats) + } + +@app.get("/analytics/trends") +async def analytics_trends(hours: int = 24): + """시간대별 트렌드 분석""" + return { + "trends": analytics_manager.get_hourly_trends(hours), + "period_hours": hours + } + +@app.get("/analytics/clients") +async def analytics_clients(): + """클라이언트 분석""" + return analytics_manager.get_client_analysis() + +@app.get("/analytics/dashboard") +async def analytics_dashboard(): + """종합 대시보드 데이터""" + return { + "summary": analytics_manager.get_summary_stats(), + "top_endpoints": analytics_manager.get_top_endpoints(10), + "trends_6h": analytics_manager.get_hourly_trends(6), + "clients": analytics_manager.get_client_analysis(), + "cache_stats": cache_manager.get_stats(), + "prediction": analytics_manager.predict_load(), + "server_info": { + "version": settings.VERSION, + "environment": settings.NODE_ENV, + "redis_available": cache_manager.is_redis_available + } + } + +@app.api_route("/api/{path:path}", methods=["GET", "POST", "PUT", "DELETE", "PATCH"]) +async def proxy_to_express(path: str, request: Request) -> Dict[str, Any]: + """Express.js API로 모든 요청을 프록시 (GET 요청은 캐싱 적용)""" + + # Express.js API URL 구성 + target_url = f"{settings.EXPRESS_API_URL}/api/{path}" + + # 요청 데이터 준비 + headers = dict(request.headers) + headers.pop("host", None) # host 헤더 제거 + + params = dict(request.query_params) + + # GET 요청에 대해서만 캐싱 적용 + if request.method == "GET": + cache_key = cache_manager._generate_key("api", path, **params) + cached_result = await cache_manager.get(cache_key) + + if cached_result is not None: + logger.info(f"🟢 캐시 히트: GET {target_url}") + return JSONResponse( + content=cached_result, + status_code=200 + ) + + try: + # 요청 바디 읽기 (있는 경우) + body = None + if request.method in ["POST", "PUT", "PATCH"]: + body = await request.body() + if body: + body = body.decode("utf-8") if isinstance(body, bytes) else body + + logger.info(f"🔗 프록시: {request.method} {target_url}") + + # Express.js API로 요청 전달 + async with http_session.request( + method=request.method, + url=target_url, + headers=headers, + params=params, + data=body + ) as response: + + # 응답 데이터 읽기 + response_data = await response.text() + + # JSON으로 파싱 시도 + try: + response_json = await response.json() + except: + response_json = {"data": response_data} + + logger.info(f"✅ 응답: {response.status} ({len(response_data)} bytes)") + + # GET 요청 성공시 캐시에 저장 + if request.method == "GET" and response.status == 200: + await cache_manager.set(cache_key, response_json, settings.CACHE_API_TTL) + logger.info(f"💾 캐시 저장: GET {target_url}") + + return JSONResponse( + content=response_json, + status_code=response.status, + headers=dict(response.headers) + ) + + except aiohttp.ClientTimeout: + logger.error(f"⏰ 타임아웃: {target_url}") + raise HTTPException(status_code=504, detail="Gateway Timeout") + + except aiohttp.ClientError as e: + logger.error(f"🚫 클라이언트 오류: {e}") + raise HTTPException(status_code=502, detail="Bad Gateway") + + except Exception as e: + logger.error(f"💥 예상치 못한 오류: {e}") + raise HTTPException(status_code=500, detail="Internal Server Error") + +if __name__ == "__main__": + uvicorn.run( + "main:app", + host="0.0.0.0", + port=settings.FASTAPI_PORT, + reload=settings.NODE_ENV == "development", + log_level=settings.LOG_LEVEL.lower() + ) \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/requirements.txt b/deploy/tkfb-package/fastapi-bridge/requirements.txt new file mode 100644 index 0000000..e643d5d --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/requirements.txt @@ -0,0 +1,6 @@ +fastapi==0.104.1 +uvicorn[standard]==0.24.0 +aiohttp==3.9.1 +python-multipart==0.0.6 +redis==5.0.1 +python-dotenv==1.0.0 \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/Minutes/safety.html b/deploy/tkfb-package/fastapi-bridge/static/Minutes/safety.html new file mode 100644 index 0000000..677861e --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/Minutes/safety.html @@ -0,0 +1,1635 @@ + + + + + + 안전회의록 작성 + + + +
+
+

🏭 월간 안전회의록

+

테크니컬코리아 안전회의록 작성 및 관리 시스템

+
+ +
+ +
+ + + + +
+ + +
+
+
+ 하주현 선임 → 업무 인수인계 + 출산/육아휴직 대비 +
+
+
+ + + + +
+
+ +
+
+
+
+ + +
+
+
기존 회의록 참조 (미완료 항목)
+
+
+ + + + + +
+ +
+ 미완료 항목 0 | + 0개 표시됨 | + 완료된 항목 0 +
+ +
+ + +
+ +
+ +
+
+
+
+ + +
+
+
정기점검 사항
+
+
+ + + + +
+
+ 정기점검 사항 | + 0개 긴급, + 0개 예정 +
+
+ + +
+
+ +
+
+
+
+ + +
+ +
+
회의 기본정보
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ 논의사항 + +
+
+
+ +
+
+
+ +
+ + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/Minutes/인수인계관련/안전회의록 2025년 5월.xlsx b/deploy/tkfb-package/fastapi-bridge/static/Minutes/인수인계관련/안전회의록 2025년 5월.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a8f18006cba92acf90ca6b8ace8c4f8faffbdb53 GIT binary patch literal 88644 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

`IJlg{Lsi9fx0H#5jTOfW)S+<4=6Thr9tl_>Z*b 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

A0aG%=T;yyhw9bzkR9}Xdh zrUuXcM5w;mEJA=mIagQH@n-g1Gx26$J*;o=_Imm~Z_vITAGfa;l~?&k*tj!a+QVPp z8|8oBLRktRlm3rVg!#X=(2)55cZ!7mU!Ee!gEYwhMe)*s0i2ocx=s$y$J6s`( zR9}j4nd}2VRByfTA3;j`@^-uuA{6(JAl3EPM1P3>M}$<{2@r;|h-A_D%lDT`H@$e2DT8E48o?yk#QxXJ!v zKd1%X$Wg`xgFawr%$Hl%Nzdz;=NJySqI|ECxSjrIka8AE@Q$ipjE8&&srX}t`zsD) z%-O`Iv-`glN5X@KPF;WhK1_iA>nQc_&l3L>8vkQ_UYCW$XFHGA{*@WYZ>G-RN%xxGb5?cTR28FH#>et=tJUqZf zg~5x)Fl9R-AeE1wb}vyybgmI#=@F{w0#IQ}bI}MUVE0)bG8h$eL+7sLrkA2~X0_fZ z(IuWpFLS_ak>u-Ipq|$FffsV+WM5af9aES(;?CC?zhy!=ULA8D%ynzpPdAJed)w-I zc-v=4YwZOmm}%|CT;TG+xuTPnnLkB|?In{Nph54j)0ApOkSnNVbrzHSTd#pB$^45x z{%yJf)c}S#asUAQ!UO!D?&tqyVE;UJ{fGNG#oB(20VS+Qe$Bt`y{iq8DN3TUTD3)L zQKh=WhiwY-yS{aT4TS5W=ZXWpe^8~Ks1BLi^S%41f6t3tx&hQSq(TYH3y@U7F*VXE zbKgN4}r2OI($L_t9^$A+VoTU|^I_xi$ zh+f|PR4FIZNX<;phhvg+hV4Uo#u5$Oyyjk#F!>YYh&|EBVtiq>ccrXFL~EmsIC$#{ z5!pORX*hdzTJL>`8&W=@UZ+8)3b2D5F&_QqD@Dob9)D0563U;vIr!m|Dxd1puC0C2 z0;p=AP7YtUs0y=pEn?`O>{13X`F*wsE z>Ke_&wyk?&+qQMbw(VqM+qP|MVkZ;Zwv9RSK3{$3$6M$8x%$Ud)xE2F_iF6D){dp} z1WNNe0td`jq}q9N2QbU~;;K=MTl+DSaaz>jX4Qef+ny|3mp~-MLt@w%D%}13j$vGwQUf zYhsq)&#Tv$AK!uwEFCbIFUO?gW`2HD5y>8i6;9rI%$67>jT-2lqRRU(exLV8lX+=G ze?RXQUi$t%`|W&w-wodHWeI$L9rS(2|NXc=8Z5i{tB3oysrlDuJ>fFa&ga|RAkqBy zN}21&_eLMT@87GPlv7t^-zvF0;{^b_uJHmL``4dLJw5)_)4xkvhkXYebYC34G-&5d zi91(jPty$ZhFmZIYC7Axu|HbdyyIulH=N;S*)^PnEjRP>#f&$XF7!_y-?~hck%^8= zP}i`=tUhwF>l!Vvv2W$Ww0D&Vl>Lt_Iq&HD+EICXXpw)+uMRxw;W1T}y2;5o$Jlz! z$dr265{tZNpFa~Hw88^VqeGN(VP{t;UTtQZnWL@Fx?lhAsLRc%4ZAGa^RtRtlMKmz zAIzGqEMEiSu9a}!)ddrGvsY_tv&i21xWi56Ckg!0WS)-XK|4=uZQ>0*=3JBZQipxb ztr^dzo0;p)z{Hm4DTSzXCrk9GzhZb12Q722o^<~zZ;6AV@yG_tX5|ZOPW??KZjP}SFIg79RrV~*^THAR$*fMWI5{jH-N}|orZE_Cq$$c` z0@=cv24i>dpf(>zggD(ff3gr(KjOg-Go288SIK&D%;jAS@VijWUm1A^=~2OyWEX4N z`xUtijJ8jn<5u2_)K`$uYR4+MujWi_*0(LT?fzWesKgziA{IQYAC+y(3v7uAdFiOG zd}o8=?6AQ5l-847wy&}-sp#Lv#Q03y_*$Q8T Y0(f1SUx5h3JU#)647bWyqlm)! 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 + +

+ + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/components/sections/admin-sections.html b/deploy/tkfb-package/fastapi-bridge/static/components/sections/admin-sections.html new file mode 100644 index 0000000..6ec008d --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/components/sections/admin-sections.html @@ -0,0 +1,48 @@ + + + +
+

📄 작업 보고서

+ +
+ +
+

📊 출근/공수 관리

+ +
+ +
+

🔧 시스템 관리

+ +
+ +
+

🏭 공장 정보

+ +
+ +
+

📊 이슈 리포트

+ +
\ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/components/sidebar.html b/deploy/tkfb-package/fastapi-bridge/static/components/sidebar.html new file mode 100644 index 0000000..532fd6a --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/components/sidebar.html @@ -0,0 +1,136 @@ + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/admin.css b/deploy/tkfb-package/fastapi-bridge/static/css/admin.css new file mode 100644 index 0000000..14a27fe --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/admin.css @@ -0,0 +1,25 @@ +body { + font-family: 'Malgun Gothic', sans-serif; + margin: 0; + background: #f0f2f5; +} +.main-layout { + display: flex; +} +#sidebar-container { + width: 250px; + background: #1a237e; + color: white; + min-height: 100vh; +} +#content-container { + flex: 1; + padding: 30px; +} +h1, h2 { + color: #1976d2; +} +a { + color: #1976d2; + text-decoration: none; +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/attendance-validation.css b/deploy/tkfb-package/fastapi-bridge/static/css/attendance-validation.css new file mode 100644 index 0000000..15184a3 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/attendance-validation.css @@ -0,0 +1,883 @@ +/* 근태 검증 관리 시스템 - 개선된 스타일 */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); + color: #333; + line-height: 1.6; + min-height: 100vh; +} + +/* 뒤로가기 버튼 */ +.back-btn { + background: rgba(255,255,255,0.95); + color: #667eea; + border: 3px solid #667eea; + padding: 12px 24px; + border-radius: 12px; + text-decoration: none; + font-weight: 700; + font-size: 16px; + display: inline-flex; + align-items: center; + gap: 8px; + margin-bottom: 24px; + transition: all 0.3s ease; + box-shadow: 0 3px 12px rgba(102, 126, 234, 0.2); +} + +.back-btn:hover { + background: #667eea; + color: white; + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(102, 126, 234, 0.3); +} + +/* 페이지 헤더 */ +.page-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + border-radius: 16px; + padding: 2.5rem; + margin-bottom: 2rem; + box-shadow: 0 8px 32px rgba(102, 126, 234, 0.3); + border: 1px solid rgba(255, 255, 255, 0.1); +} + +/* 메인 카드 */ +.main-card { + background: white; + border-radius: 16px; + padding: 2rem; + margin-bottom: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); + border: 1px solid rgba(255, 255, 255, 0.8); + backdrop-filter: blur(10px); + transition: all 0.3s ease; +} + +.main-card:hover { + transform: translateY(-2px); + box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15); +} + +.loading-card { + background: white; + border-radius: 16px; + padding: 3rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); + text-align: center; +} + +/* 캘린더 헤더 */ +.calendar-header { + display: flex; + align-items: center; + justify-content: between; + margin-bottom: 2rem; + padding-bottom: 1rem; + border-bottom: 2px solid #f0f0f0; +} + +.nav-btn { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border: none; + border-radius: 12px; + width: 48px; + height: 48px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 16px rgba(102, 126, 234, 0.3); +} + +.nav-btn:hover { + transform: translateY(-2px) scale(1.05); + box-shadow: 0 6px 24px rgba(102, 126, 234, 0.4); +} + +/* 월간 요약 */ +.summary-section { + margin-bottom: 2rem; + padding: 1.5rem; + background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 100%); + border-radius: 16px; + border: 1px solid rgba(102, 126, 234, 0.2); +} + +.summary-title { + text-align: center; + font-size: 1.25rem; + font-weight: 700; + color: #333; + margin-bottom: 1rem; +} + +.summary-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; +} + +.summary-card { + background: white; + border-radius: 12px; + padding: 1.5rem; + text-align: center; + transition: all 0.3s ease; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); + border: 2px solid transparent; +} + +.summary-card:hover { + transform: translateY(-4px); + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15); +} + +.summary-card.normal { + border-color: #10b981; +} + +.summary-card.warning { + border-color: #f59e0b; +} + +.summary-card.error { + border-color: #ef4444; +} + +.summary-number { + font-size: 2rem; + font-weight: 800; + margin-bottom: 0.5rem; +} + +.summary-card.normal .summary-number { + color: #10b981; +} + +.summary-card.warning .summary-number { + color: #f59e0b; +} + +.summary-card.error .summary-number { + color: #ef4444; +} + +.summary-label { + font-size: 0.875rem; + font-weight: 600; + color: #666; +} + +/* 요일 헤더 */ +.weekday-header { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 0.5rem; + margin-bottom: 1rem; +} + +.weekday { + padding: 1rem; + text-align: center; + font-size: 0.875rem; + font-weight: 700; + color: #64748b; + background: #f8fafc; + border-radius: 8px; +} + +.weekday.sunday { + color: #ef4444; +} + +.weekday.saturday { + color: #3b82f6; +} + +/* 캘린더 그리드 */ +.calendar-grid { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 0.5rem; + margin-bottom: 2rem; +} + +.calendar-day { + position: relative; + min-height: 80px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 12px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + background: white; + border: 2px solid #e2e8f0; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); +} + +.calendar-day.hover-enabled:hover { + transform: translateY(-3px); + box-shadow: 0 6px 24px rgba(0, 0, 0, 0.15); + border-color: #3b82f6; +} + +.calendar-day.selected { + transform: scale(1.05); + z-index: 10; + border-color: #3b82f6; + box-shadow: 0 8px 32px rgba(59, 130, 246, 0.3); +} + +.calendar-day.loading-state { + background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%); + border-color: #3b82f6; + animation: loading-pulse 1.5s infinite; +} + +@keyframes loading-pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.7; } +} + +.calendar-day.error-state { + background: linear-gradient(135deg, #fecaca 0%, #fca5a5 100%); + border-color: #ef4444; + color: #991b1b; +} + +.calendar-day.normal { + background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%); + border-color: #10b981; + color: #064e3b; +} + +.calendar-day.needs-review { + background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); + border-color: #f59e0b; + color: #92400e; +} + +.calendar-day.missing { + background: linear-gradient(135deg, #fecaca 0%, #fca5a5 100%); + border-color: #ef4444; + color: #991b1b; +} + +.calendar-day.no-data { + background: #f9fafb; + border-color: #e5e7eb; + color: #9ca3af; + position: relative; +} + +.calendar-day.no-data::after { + content: "클릭하여 확인"; + position: absolute; + bottom: 4px; + font-size: 10px; + color: #6b7280; + opacity: 0; + transition: opacity 0.3s; +} + +.calendar-day.no-data.hover-enabled:hover::after { + opacity: 1; +} + +.status-dot { + position: absolute; + top: 8px; + right: 8px; + width: 12px; + height: 12px; + border-radius: 50%; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3); + transition: all 0.3s ease; +} + +.status-dot.pulse { + animation: pulse 1s infinite; +} + +@keyframes pulse { + 0%, 100% { transform: scale(1); } + 50% { transform: scale(1.2); } +} + +.status-dot.normal { + background: #10b981; +} + +.status-dot.warning { + background: #f59e0b; +} + +.status-dot.error { + background: #ef4444; +} + +/* 범례 */ +.legend { + display: flex; + justify-content: center; + gap: 2rem; + flex-wrap: wrap; +} + +.legend-item { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 0.875rem; + font-weight: 600; + color: #64748b; +} + +.legend-dot { + width: 16px; + height: 16px; + border-radius: 50%; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); +} + +.legend-dot.normal { + background: #10b981; +} + +.legend-dot.warning { + background: #f59e0b; +} + +.legend-dot.error { + background: #ef4444; +} + +/* 빈 상태 */ +.empty-state { + text-align: center; + padding: 4rem 2rem; +} + +.empty-icon { + font-size: 4rem; + margin-bottom: 1.5rem; +} + +.empty-title { + font-size: 1.5rem; + font-weight: 700; + color: #374151; + margin-bottom: 1rem; +} + +.empty-description { + color: #6b7280; + font-size: 1rem; + max-width: 500px; + margin: 0 auto; +} + +/* 작업자 카드 */ +.worker-card { + background: white; + border-radius: 16px; + padding: 1.5rem; + margin-bottom: 1.5rem; + border: 2px solid transparent; + transition: all 0.3s ease; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); +} + +.worker-card:hover { + transform: translateY(-2px); + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15); +} + +.worker-card.normal { + background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%); + border-color: #10b981; +} + +.worker-card.needs-review { + background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%); + border-color: #f59e0b; +} + +.worker-card.missing { + background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%); + border-color: #ef4444; +} + +.worker-header { + display: flex; + justify-content: between; + align-items: center; + margin-bottom: 1.5rem; + padding-bottom: 1rem; + border-bottom: 2px solid rgba(0, 0, 0, 0.1); +} + +.worker-info { + display: flex; + align-items: center; + gap: 1rem; +} + +.worker-avatar { + width: 48px; + height: 48px; + background: white; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 1.25rem; + color: #374151; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); +} + +.worker-name { + font-size: 1.25rem; + font-weight: 700; + color: #374151; +} + +.worker-id { + font-size: 0.875rem; + color: #6b7280; + margin-top: 0.25rem; +} + +.status-badge { + font-size: 1.5rem; + filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.1)); +} + +/* 데이터 행 */ +.data-section { + background: rgba(255, 255, 255, 0.7); + border-radius: 12px; + padding: 1.5rem; + margin-bottom: 1rem; +} + +.data-row { + display: flex; + justify-content: between; + align-items: center; + padding: 0.75rem 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.data-row:last-child { + border-bottom: none; +} + +.data-label { + font-weight: 600; + color: #4b5563; +} + +.data-value { + font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace; + font-weight: 700; + font-size: 1rem; +} + +.difference-positive { + color: #dc2626; + background: rgba(220, 38, 38, 0.1); + padding: 0.25rem 0.75rem; + border-radius: 6px; + font-weight: 700; +} + +.difference-negative { + color: #2563eb; + background: rgba(37, 99, 235, 0.1); + padding: 0.25rem 0.75rem; + border-radius: 6px; + font-weight: 700; +} + +/* 버튼 */ +.btn-primary { + background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); + color: white; + border: none; + padding: 0.75rem 1.5rem; + border-radius: 12px; + font-weight: 700; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 16px rgba(59, 130, 246, 0.3); + display: inline-flex; + align-items: center; + gap: 0.5rem; +} + +.btn-primary:hover { + transform: translateY(-2px); + box-shadow: 0 6px 24px rgba(59, 130, 246, 0.4); +} + +.btn-secondary { + background: #6b7280; + color: white; + border: none; + padding: 0.75rem 1.5rem; + border-radius: 12px; + font-weight: 700; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 16px rgba(107, 114, 128, 0.3); +} + +.btn-secondary:hover { + background: #4b5563; + transform: translateY(-2px); +} + +.edit-btn { + background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); + color: white; + border: none; + padding: 0.75rem 1.5rem; + border-radius: 8px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + font-size: 0.875rem; + width: 100%; + margin-top: 1rem; +} + +.edit-btn:hover { + transform: translateY(-1px); + box-shadow: 0 4px 16px rgba(59, 130, 246, 0.3); +} + +.delete-btn { + background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); + color: white; + border: none; + padding: 0.5rem 1rem; + border-radius: 6px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + font-size: 0.75rem; + margin-left: 0.5rem; +} + +.delete-btn:hover { + transform: translateY(-1px); + box-shadow: 0 4px 16px rgba(239, 68, 68, 0.3); +} + +/* 필터 */ +.filter-container { + display: flex; + justify-content: between; + align-items: center; + margin-bottom: 1.5rem; + padding-bottom: 1rem; + border-bottom: 2px solid #f0f0f0; +} + +.filter-select { + background: white; + border: 2px solid #e5e7eb; + border-radius: 8px; + padding: 0.75rem 1rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); +} + +.filter-select:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +/* 모달 */ +.modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.75); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; + animation: fadeIn 0.3s ease; +} + +.modal.hidden { + display: none; +} + +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + +.modal-content { + background: white; + border-radius: 20px; + width: 90%; + max-width: 500px; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + animation: slideIn 0.3s ease; +} + +@keyframes slideIn { + from { + opacity: 0; + transform: translateY(-50px) scale(0.9); + } + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} + +.modal-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 1.5rem; + border-radius: 20px 20px 0 0; + display: flex; + justify-content: between; + align-items: center; +} + +.modal-header h3 { + margin: 0; + font-size: 1.25rem; + font-weight: 700; +} + +.close-btn { + background: rgba(255, 255, 255, 0.2); + color: white; + border: none; + border-radius: 50%; + width: 36px; + height: 36px; + cursor: pointer; + font-size: 1.25rem; + font-weight: 700; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.3s ease; +} + +.close-btn:hover { + background: rgba(255, 255, 255, 0.3); + transform: rotate(90deg); +} + +.modal-body { + padding: 1.5rem; +} + +.modal-footer { + display: flex; + justify-content: flex-end; + gap: 1rem; + padding: 1.5rem; + border-top: 2px solid #f0f0f0; + background: #f8fafc; + border-radius: 0 0 20px 20px; +} + +/* 폼 요소 */ +.form-group { + margin-bottom: 1.5rem; +} + +.form-group label { + display: block; + margin-bottom: 0.5rem; + font-weight: 700; + color: #374151; + font-size: 0.875rem; +} + +.form-input { + width: 100%; + padding: 0.75rem 1rem; + border: 2px solid #e5e7eb; + border-radius: 8px; + font-size: 1rem; + transition: all 0.3s ease; +} + +.form-input:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +.form-textarea { + width: 100%; + padding: 0.75rem 1rem; + border: 2px solid #e5e7eb; + border-radius: 8px; + font-size: 1rem; + resize: vertical; + min-height: 80px; + transition: all 0.3s ease; +} + +.form-textarea:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +/* 메시지 */ +.message { + padding: 1rem 1.5rem; + border-radius: 12px; + margin-bottom: 1.5rem; + font-weight: 600; + border: 2px solid transparent; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); +} + +.message.success { + background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%); + color: #065f46; + border-color: #10b981; +} + +.message.error { + background: linear-gradient(135deg, #fecaca 0%, #fca5a5 100%); + color: #991b1b; + border-color: #ef4444; +} + +.message.warning { + background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); + color: #92400e; + border-color: #f59e0b; +} + +.message.loading { + background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%); + color: #1e40af; + border-color: #3b82f6; +} + +/* 로딩 스피너 */ +.loading-spinner { + width: 32px; + height: 32px; + border: 3px solid #e5e7eb; + border-top: 3px solid #3b82f6; + border-radius: 50%; + animation: spin 1s linear infinite; +} + +@keyframes spin { + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +} + +/* 애니메이션 */ +.fade-in { + animation: fadeInUp 0.5s ease-out; +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* 반응형 디자인 */ +@media (max-width: 768px) { + .summary-grid { + grid-template-columns: 1fr; + gap: 1rem; + } + + .calendar-day { + min-height: 60px; + font-size: 0.875rem; + } + + .worker-header { + flex-direction: column; + gap: 1rem; + text-align: center; + } + + .legend { + flex-direction: column; + gap: 1rem; + } + + .modal-content { + width: 95%; + margin: 1rem; + } + + .main-card { + padding: 1.5rem; + } + + .page-header { + padding: 2rem; + } +} + +@media (max-width: 480px) { + .calendar-day { + min-height: 50px; + font-size: 0.75rem; + } + + .summary-card { + padding: 1rem; + } + + .summary-number { + font-size: 1.5rem; + } + + .worker-card { + padding: 1rem; + } + + .modal-body, .modal-footer { + padding: 1rem; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/attendance.css b/deploy/tkfb-package/fastapi-bridge/static/css/attendance.css new file mode 100644 index 0000000..0b77e15 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/attendance.css @@ -0,0 +1,72 @@ +body { + font-family: Arial, sans-serif; + margin: 20px; + background: #f8f9fa; +} +h2 { + text-align: center; + color: #343a40; +} +.controls { + display: flex; + flex-wrap: wrap; + gap: 12px; + justify-content: center; + align-items: center; + margin-bottom: 16px; +} +.controls label { + font-weight: bold; +} +.controls select, +.controls button { + padding: 6px 10px; + border-radius: 4px; + border: 1px solid #ccc; + font-weight: bold; + cursor: pointer; +} +button#loadAttendance { + background-color: #4CAF50; + color: white; + border: none; +} +button#downloadPdf { + background-color: #007BFF; + color: white; + border: none; +} +#attendanceTableContainer { + max-height: 600px; + overflow: auto; +} +table { + width: 100%; + border-collapse: collapse; + margin-top: 10px; + font-size: 14px; +} +th, td { + border: 1px solid #ddd; + padding: 6px; + text-align: center; + background: white; +} +th { + background: #f2f2f2; +} +.divider { + border-left: 3px solid #333 !important; +} +tr.separator td { + border-bottom: 2px solid #999; + padding: 0; + height: 4px; + background: transparent; +} +.overtime-cell { background: #e9e5ff !important; } +.leave { background: #f5e0d6 !important; } +.holiday { background: #ffd6d6 !important; } +.paid-leave { background: #d6f0ff !important; } +.no-data { background: #ddd !important; } +.overtime-sum { background: #e9e5ff !important; } \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/daily-issue.css b/deploy/tkfb-package/fastapi-bridge/static/css/daily-issue.css new file mode 100644 index 0000000..827e7c7 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/daily-issue.css @@ -0,0 +1,90 @@ +/* /css/daily-issue.css */ + +body { + font-family: Arial, sans-serif; + background: #f5f7fa; + margin: 0; + padding: 40px 20px; +} + +.container { + max-width: 500px; + margin: auto; + background: #fff; + border-radius: 12px; + box-shadow: 0 0 10px rgba(0,0,0,0.05); + padding: 32px; +} + +h2 { + text-align: center; + color: #333; + margin-bottom: 24px; +} + +label { + display: block; + margin-top: 20px; + font-weight: bold; + color: #333; +} + +select, input[type="date"], button { + width: 100%; + padding: 10px; + margin-top: 6px; + border: 1px solid #ccc; + border-radius: 6px; + box-sizing: border-box; + font-size: 1rem; +} + +button#submitBtn { + margin-top: 30px; + background: #1976d2; + color: white; + border: none; + font-size: 1rem; + border-radius: 6px; + cursor: pointer; + transition: background 0.2s; +} + +button#submitBtn:hover { + background: #125cb1; +} + +.multi-select-box { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-top: 8px; +} + +.multi-select-box .btn { + flex: 1 0 30%; + padding: 8px; + border: 1px solid #1976d2; + border-radius: 4px; + background: white; + color: #1976d2; + text-align: center; + cursor: pointer; + transition: background 0.2s, color 0.2s; +} + +.multi-select-box .btn.selected { + background: #1976d2; + color: white; +} + +.time-range { + display: flex; + gap: 8px; + align-items: center; + margin-top: 6px; +} + +.time-range select { + flex: 1; +} diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/daily-report-viewer.css b/deploy/tkfb-package/fastapi-bridge/static/css/daily-report-viewer.css new file mode 100644 index 0000000..6fc187b --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/daily-report-viewer.css @@ -0,0 +1,548 @@ +/* daily-report-viewer.css */ + +/* 전체 레이아웃 */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + min-height: 100vh; + color: #333; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 20px; + min-height: 100vh; +} + +/* 헤더 */ +.page-header { + text-align: center; + margin-bottom: 30px; + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-radius: 20px; + padding: 30px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); +} + +.page-header h1 { + font-size: 2.5rem; + font-weight: 700; + margin-bottom: 10px; + background: linear-gradient(135deg, #667eea, #764ba2); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.subtitle { + color: #666; + font-size: 1.1rem; + font-weight: 400; +} + +/* 날짜 선택기 */ +.date-selector { + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-radius: 15px; + padding: 25px; + margin-bottom: 30px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); +} + +.date-input-group { + display: flex; + align-items: center; + gap: 15px; + flex-wrap: wrap; + justify-content: center; +} + +.date-input-group label { + font-weight: 600; + color: #333; + font-size: 1.1rem; +} + +.date-input { + padding: 12px 16px; + border: 2px solid #e1e5e9; + border-radius: 10px; + font-size: 1rem; + transition: all 0.3s ease; + background: white; + min-width: 150px; +} + +.date-input:focus { + outline: none; + border-color: #667eea; + box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); +} + +.search-btn, .today-btn { + padding: 12px 24px; + border: none; + border-radius: 10px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.search-btn { + background: linear-gradient(135deg, #667eea, #764ba2); + color: white; +} + +.search-btn:hover { + transform: translateY(-2px); + box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3); +} + +.today-btn { + background: #f8f9fa; + color: #667eea; + border: 2px solid #667eea; +} + +.today-btn:hover { + background: #667eea; + color: white; +} + +/* 로딩 스피너 */ +.loading-spinner { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 50px; + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-radius: 15px; + margin: 30px 0; +} + +.spinner { + width: 50px; + height: 50px; + border: 4px solid #f3f3f3; + border-top: 4px solid #667eea; + border-radius: 50%; + animation: spin 1s linear infinite; + margin-bottom: 15px; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +.loading-spinner p { + color: #666; + font-size: 1.1rem; +} + +/* 에러 메시지 */ +.error-message { + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-radius: 15px; + padding: 25px; + margin: 30px 0; + border-left: 5px solid #e74c3c; +} + +.error-content { + display: flex; + align-items: center; + gap: 12px; +} + +.error-icon { + font-size: 1.5rem; +} + +.error-text { + color: #e74c3c; + font-weight: 600; + font-size: 1.1rem; +} + +/* 데이터 없음 메시지 */ +.no-data-message { + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-radius: 15px; + padding: 50px; + text-align: center; + margin: 30px 0; +} + +.no-data-content { + color: #666; +} + +.no-data-icon { + font-size: 3rem; + display: block; + margin-bottom: 20px; +} + +.no-data-content h3 { + font-size: 1.5rem; + margin-bottom: 10px; + color: #333; +} + +/* 요약 카드 */ +.report-summary { + margin-bottom: 30px; +} + +.summary-cards { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 20px; + margin-bottom: 30px; +} + +.summary-card { + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-radius: 15px; + padding: 25px; + text-align: center; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); + transition: transform 0.3s ease; +} + +.summary-card:hover { + transform: translateY(-5px); +} + +.summary-card.error-card { + border-left: 5px solid #e74c3c; +} + +.card-header { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + margin-bottom: 15px; +} + +.card-icon { + font-size: 1.5rem; +} + +.card-title { + font-weight: 600; + color: #666; + font-size: 0.9rem; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.card-value { + font-size: 2rem; + font-weight: 700; + color: #333; +} + +.error-card .card-value { + color: #e74c3c; +} + +/* 작업자 리포트 */ +.workers-report { + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-radius: 15px; + padding: 30px; + margin-bottom: 30px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); +} + +.section-title { + font-size: 1.5rem; + font-weight: 700; + margin-bottom: 25px; + color: #333; + border-bottom: 3px solid #667eea; + padding-bottom: 10px; +} + +.workers-list { + display: flex; + flex-direction: column; + gap: 20px; +} + +.worker-card { + background: #f8f9fa; + border-radius: 12px; + padding: 20px; + border-left: 5px solid #667eea; + transition: all 0.3s ease; +} + +.worker-card:hover { + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); + transform: translateX(5px); +} + +.worker-header { + display: flex; + justify-content: between; + align-items: center; + margin-bottom: 15px; + flex-wrap: wrap; + gap: 10px; +} + +.worker-name { + font-size: 1.3rem; + font-weight: 700; + color: #333; + display: flex; + align-items: center; + gap: 8px; +} + +.worker-total-hours { + background: linear-gradient(135deg, #667eea, #764ba2); + color: white; + padding: 8px 16px; + border-radius: 20px; + font-weight: 600; + font-size: 0.9rem; +} + +.work-entries { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 15px; +} + +.work-entry { + background: white; + border-radius: 8px; + padding: 15px; + border: 1px solid #e1e5e9; + transition: all 0.3s ease; +} + +.work-entry:hover { + border-color: #667eea; + box-shadow: 0 3px 10px rgba(102, 126, 234, 0.1); +} + +.work-entry.error-entry { + border-left: 4px solid #e74c3c; + background: #fff5f5; +} + +.entry-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; +} + +.project-name { + font-weight: 600; + color: #333; + font-size: 1rem; +} + +.work-hours { + background: #e8f4f8; + color: #2c5aa0; + padding: 4px 12px; + border-radius: 15px; + font-weight: 600; + font-size: 0.9rem; +} + +.work-entry.error-entry .work-hours { + background: #ffebee; + color: #c62828; +} + +.entry-details { + display: flex; + flex-direction: column; + gap: 5px; + font-size: 0.9rem; + color: #666; +} + +.entry-detail { + display: flex; + justify-content: space-between; + align-items: center; +} + +.detail-label { + font-weight: 500; +} + +.detail-value { + color: #333; +} + +.error-type { + color: #e74c3c; + font-weight: 600; +} + +/* 내보내기 섹션 */ +.export-section { + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + border-radius: 15px; + padding: 25px; + text-align: center; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); +} + +.export-section h3 { + font-size: 1.3rem; + font-weight: 700; + margin-bottom: 20px; + color: #333; +} + +.export-buttons { + display: flex; + justify-content: center; + gap: 15px; + flex-wrap: wrap; +} + +.export-btn { + padding: 12px 24px; + border: none; + border-radius: 10px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + display: flex; + align-items: center; + gap: 8px; +} + +.excel-btn { + background: #217346; + color: white; +} + +.excel-btn:hover { + background: #1a5a37; + transform: translateY(-2px); +} + +.print-btn { + background: #495057; + color: white; +} + +.print-btn:hover { + background: #343a40; + transform: translateY(-2px); +} + +/* 반응형 디자인 */ +@media (max-width: 768px) { + .container { + padding: 15px; + } + + .page-header { + padding: 20px; + } + + .page-header h1 { + font-size: 2rem; + } + + .date-input-group { + flex-direction: column; + align-items: stretch; + } + + .date-input-group > * { + width: 100%; + text-align: center; + } + + .summary-cards { + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + gap: 15px; + } + + .work-entries { + grid-template-columns: 1fr; + } + + .worker-header { + flex-direction: column; + align-items: flex-start; + } + + .export-buttons { + flex-direction: column; + } +} + +/* 인쇄 스타일 */ +@media print { + body { + background: white; + } + + .container { + max-width: none; + margin: 0; + padding: 20px; + } + + .date-selector, + .export-section { + display: none; + } + + .summary-card, + .workers-report, + .worker-card, + .work-entry { + background: white !important; + box-shadow: none !important; + border: 1px solid #ddd !important; + } + + .page-header { + background: white !important; + box-shadow: none !important; + border-bottom: 2px solid #333; + } + + .page-header h1 { + color: #333 !important; + -webkit-text-fill-color: #333 !important; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/daily-work-report.css b/deploy/tkfb-package/fastapi-bridge/static/css/daily-work-report.css new file mode 100644 index 0000000..71be400 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/daily-work-report.css @@ -0,0 +1,756 @@ +/* daily-work-report.css - 덮어쓰기 방지 완전 스타일 */ + +/* 기본 레이아웃 */ +.daily-work-report-container { + max-width: 1200px; + margin: 0 auto; + padding: 20px; + font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; +} + +/* 단계 표시 */ +.steps-container { + display: flex; + justify-content: center; + margin-bottom: 30px; + position: relative; +} + +.step { + display: flex; + align-items: center; + margin: 0 20px; + opacity: 0.5; + transition: all 0.3s ease; +} + +.step.active { + opacity: 1; + transform: scale(1.1); +} + +.step.completed { + opacity: 1; +} + +.step-number { + width: 40px; + height: 40px; + border-radius: 50%; + background: linear-gradient(135deg, #e9ecef 0%, #adb5bd 100%); + display: flex; + align-items: center; + justify-content: center; + font-weight: bold; + color: #495057; + margin-right: 10px; + transition: all 0.3s ease; +} + +.step.active .step-number { + background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); + color: white; + box-shadow: 0 4px 15px rgba(0, 123, 255, 0.3); +} + +.step.completed .step-number { + background: linear-gradient(135deg, #28a745 0%, #1e7e34 100%); + color: white; +} + +/* 🛡️ 보호 모드 표시기 */ +.protection-indicator { + position: fixed; + top: 20px; + right: 20px; + background: linear-gradient(135deg, #27ae60 0%, #229954 100%); + color: white; + padding: 10px 15px; + border-radius: 25px; + font-size: 12px; + font-weight: bold; + box-shadow: 0 2px 10px rgba(39, 174, 96, 0.3); + z-index: 1000; + border: 2px solid #1e8449; + animation: pulse-protection 2s infinite; +} + +.protection-indicator::before { + content: "🛡️"; + margin-right: 8px; +} + +@keyframes pulse-protection { + 0%, 100% { box-shadow: 0 2px 10px rgba(39, 174, 96, 0.3); } + 50% { box-shadow: 0 4px 20px rgba(39, 174, 96, 0.5); } +} + +/* 메시지 컨테이너 */ +.message-container { + margin-bottom: 20px; +} + +.message { + padding: 15px; + border-radius: 8px; + margin-bottom: 10px; + font-weight: 500; + border: 2px solid transparent; + transition: all 0.3s ease; +} + +.message.success { + background: linear-gradient(135deg, #28a745 0%, #20c997 100%); + color: white; + border-color: #1e7e34; + box-shadow: 0 4px 15px rgba(40, 167, 69, 0.3); +} + +.message.error { + background: linear-gradient(135deg, #dc3545 0%, #c82333 100%); + color: white; + border-color: #bd2130; + box-shadow: 0 4px 15px rgba(220, 53, 69, 0.3); +} + +.message.warning { + background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%); + color: white; + border-color: #d68910; + box-shadow: 0 4px 15px rgba(243, 156, 18, 0.3); + animation: fadeInShake 0.5s ease-out; +} + +.message.loading { + background: linear-gradient(135deg, #3498db 0%, #2980b9 100%); + color: white; + border-color: #2471a3; + position: relative; + overflow: hidden; +} + +.message.loading::after { + content: ""; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); + animation: loading-shimmer 1.5s infinite; +} + +@keyframes loading-shimmer { + 0% { left: -100%; } + 100% { left: 100%; } +} + +@keyframes fadeInShake { + 0% { + opacity: 0; + transform: translateX(-10px); + } + 50% { + opacity: 1; + transform: translateX(5px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +/* 단계별 콘텐츠 */ +.step-content { + background: white; + border-radius: 12px; + padding: 30px; + margin-bottom: 20px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); + border: 2px solid #e9ecef; +} + +/* 1단계: 날짜 선택 */ +.date-selection { + text-align: center; +} + +.date-input { + padding: 15px; + font-size: 18px; + border: 2px solid #dee2e6; + border-radius: 8px; + width: 200px; + margin: 20px 0; + transition: all 0.3s ease; +} + +.date-input:focus { + border-color: #007bff; + box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25); + outline: none; +} + +/* 2단계: 작업자 선택 */ +.worker-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); + gap: 15px; + margin: 20px 0; +} + +.worker-btn { + padding: 15px; + border: 2px solid #dee2e6; + border-radius: 10px; + background: white; + cursor: pointer; + transition: all 0.3s ease; + font-weight: 500; + font-size: 14px; + position: relative; +} + +.worker-btn:hover { + border-color: #007bff; + background: #f8f9fa; + transform: translateY(-2px); + box-shadow: 0 4px 15px rgba(0, 123, 255, 0.2); +} + +.worker-btn.selected { + background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); + color: white; + border-color: #0056b3; + box-shadow: 0 4px 15px rgba(0, 123, 255, 0.3); +} + +/* 🚫 차단된 작업자 버튼 스타일 */ +.worker-btn.blocked { + background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%) !important; + color: white !important; + border: 2px solid #a93226 !important; + opacity: 0.7; + cursor: not-allowed !important; + position: relative; + animation: pulse-blocked 2s infinite; +} + +.worker-btn.blocked:hover { + transform: none !important; + box-shadow: none !important; +} + +.worker-btn.blocked::after { + content: "🚫"; + position: absolute; + top: -5px; + right: -5px; + background: #fff; + border-radius: 50%; + width: 20px; + height: 20px; + display: flex; + align-items: center; + justify-content: center; + font-size: 12px; + border: 2px solid #e74c3c; +} + +@keyframes pulse-blocked { + 0%, 100% { opacity: 0.7; } + 50% { opacity: 0.5; } +} + +/* 3단계: 작업 입력 */ +.work-entries-container { + margin: 20px 0; +} + +.work-entry { + background: #f8f9fa; + border: 2px solid #e9ecef; + border-radius: 12px; + padding: 20px; + margin-bottom: 20px; + transition: all 0.3s ease; +} + +.work-entry:hover { + border-color: #007bff; + box-shadow: 0 4px 15px rgba(0, 123, 255, 0.1); +} + +.work-entry-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; +} + +.work-entry-title { + font-size: 18px; + font-weight: bold; + color: #495057; +} + +.remove-work-btn { + background: #dc3545; + color: white; + border: none; + border-radius: 50%; + width: 30px; + height: 30px; + cursor: pointer; + font-size: 18px; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.3s ease; +} + +.remove-work-btn:hover { + background: #c82333; + transform: scale(1.1); +} + +.work-entry-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 20px; + margin-bottom: 20px; +} + +.form-group { + display: flex; + flex-direction: column; +} + +.form-group label { + font-weight: bold; + margin-bottom: 8px; + color: #495057; + font-size: 14px; +} + +.large-select { + padding: 12px; + border: 2px solid #dee2e6; + border-radius: 8px; + font-size: 14px; + transition: all 0.3s ease; + background: white; +} + +.large-select:focus { + border-color: #007bff; + box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25); + outline: none; +} + +/* 에러 유형 섹션 */ +.error-type-section { + opacity: 0.5; + transition: all 0.3s ease; +} + +.error-type-section.visible { + opacity: 1; +} + +/* 시간 입력 */ +.time-input-row { + grid-column: 1 / -1; +} + +.quick-time-buttons { + display: flex; + gap: 10px; + margin-top: 10px; +} + +.quick-time-btn { + padding: 8px 15px; + background: #e9ecef; + border: 2px solid #dee2e6; + border-radius: 20px; + cursor: pointer; + font-size: 12px; + font-weight: bold; + transition: all 0.3s ease; +} + +.quick-time-btn:hover { + background: #007bff; + color: white; + border-color: #0056b3; + transform: translateY(-2px); +} + +/* 총 시간 표시 */ +.total-hours-display { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 15px; + border-radius: 10px; + text-align: center; + font-size: 18px; + font-weight: bold; + margin: 20px 0; + box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3); +} + +/* 버튼 스타일 */ +.btn { + padding: 12px 25px; + border: 2px solid transparent; + border-radius: 8px; + font-weight: bold; + cursor: pointer; + transition: all 0.3s ease; + font-size: 14px; + text-decoration: none; + display: inline-block; +} + +.btn-primary { + background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); + color: white; + border-color: #0056b3; +} + +.btn-primary:hover { + background: linear-gradient(135deg, #0056b3 0%, #004085 100%); + transform: translateY(-2px); + box-shadow: 0 4px 15px rgba(0, 123, 255, 0.3); +} + +.btn-success { + background: linear-gradient(135deg, #28a745 0%, #1e7e34 100%); + color: white; + border-color: #1e7e34; +} + +.btn-success:hover { + background: linear-gradient(135deg, #1e7e34 0%, #155724 100%); + transform: translateY(-2px); + box-shadow: 0 4px 15px rgba(40, 167, 69, 0.3); +} + +.btn:disabled { + opacity: 0.6; + cursor: not-allowed; + transform: none !important; + box-shadow: none !important; +} + +/* 작업 추가 버튼 */ +.add-work-container { + text-align: center; + margin: 30px 0; +} + +.add-work-btn { + background: linear-gradient(135deg, #17a2b8 0%, #138496 100%); + color: white; + border: 2px solid #138496; + padding: 15px 30px; + border-radius: 25px; + font-size: 16px; + font-weight: bold; + cursor: pointer; + transition: all 0.3s ease; +} + +.add-work-btn:hover { + background: linear-gradient(135deg, #138496 0%, #0f6674 100%); + transform: translateY(-3px); + box-shadow: 0 6px 20px rgba(23, 162, 184, 0.3); +} + +/* 저장 버튼 */ +.submit-container { + text-align: center; + margin: 40px 0; +} + +.submit-btn { + background: linear-gradient(135deg, #28a745 0%, #20c997 100%); + color: white; + border: 2px solid #1e7e34; + padding: 18px 40px; + border-radius: 30px; + font-size: 18px; + font-weight: bold; + cursor: pointer; + transition: all 0.3s ease; +} + +.submit-btn:hover { + background: linear-gradient(135deg, #1e7e34 0%, #17a2b8 100%); + transform: translateY(-3px); + box-shadow: 0 8px 25px rgba(40, 167, 69, 0.4); +} + +/* 오늘 작업자 현황 */ +.daily-workers-section { + margin-top: 40px; + padding: 20px; + background: #f8f9fa; + border-radius: 12px; + border: 2px solid #e9ecef; +} + +.daily-workers-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + padding: 15px; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border-radius: 10px; + border: 2px solid #5a6fd8; +} + +.daily-workers-header h4 { + margin: 0; + font-size: 16px; + font-weight: bold; +} + +.refresh-btn { + background: rgba(255, 255, 255, 0.2); + color: white; + border: 2px solid rgba(255, 255, 255, 0.3); + padding: 8px 15px; + border-radius: 20px; + cursor: pointer; + font-size: 12px; + font-weight: bold; + transition: all 0.3s ease; +} + +.refresh-btn:hover { + background: rgba(255, 255, 255, 0.3); + transform: translateY(-2px); + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); +} + +/* 작업자 현황 그리드 */ +.worker-status-grid { + display: grid; + gap: 20px; +} + +.worker-status-item { + background: white; + border: 2px solid #e9ecef; + border-radius: 12px; + padding: 20px; + transition: all 0.3s ease; +} + +.worker-status-item:hover { + border-color: #007bff; + box-shadow: 0 4px 15px rgba(0, 123, 255, 0.1); +} + +.worker-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 15px; + padding-bottom: 10px; + border-bottom: 2px solid #e9ecef; +} + +.worker-name { + font-size: 18px; + font-weight: bold; + color: #495057; +} + +.worker-total-hours { + background: linear-gradient(135deg, #17a2b8 0%, #138496 100%); + color: white; + padding: 5px 15px; + border-radius: 15px; + font-size: 14px; + font-weight: bold; +} + +/* 개별 작업 항목 */ +.individual-works-container { + margin-top: 15px; +} + +.individual-work-item { + background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); + border: 2px solid #dee2e6; + border-radius: 10px; + padding: 15px; + margin-bottom: 10px; + transition: all 0.3s ease; +} + +.individual-work-item:hover { + background: linear-gradient(135deg, #e9ecef 0%, #dee2e6 100%); + border-color: #adb5bd; + transform: translateY(-2px); + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); +} + +.work-details-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 15px; + margin-bottom: 15px; +} + +.detail-item { + display: flex; + flex-direction: column; + gap: 5px; +} + +.detail-label { + font-size: 12px; + font-weight: bold; + color: #6c757d; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.detail-value { + font-size: 14px; + font-weight: 600; + color: #212529; + padding: 8px 12px; + background: white; + border: 1px solid #ced4da; + border-radius: 6px; +} + +/* 액션 버튼들 */ +.action-buttons { + display: flex; + gap: 10px; + justify-content: flex-end; +} + +.edit-btn, .delete-btn { + padding: 8px 15px; + border: none; + border-radius: 6px; + font-size: 12px; + font-weight: bold; + cursor: pointer; + transition: all 0.3s ease; +} + +.edit-btn { + background: linear-gradient(135deg, #3498db 0%, #2980b9 100%); + color: white; + border: 2px solid #2471a3; +} + +.edit-btn:hover { + background: linear-gradient(135deg, #2980b9 0%, #2471a3 100%); + transform: translateY(-2px); + box-shadow: 0 4px 10px rgba(52, 152, 219, 0.3); +} + +.delete-btn { + background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%); + color: white; + border: 2px solid #a93226; +} + +.delete-btn:hover { + background: linear-gradient(135deg, #c0392b 0%, #a93226 100%); + transform: translateY(-2px); + box-shadow: 0 4px 10px rgba(231, 76, 60, 0.3); +} + +/* 데이터 없음 메시지 */ +.no-data-message { + text-align: center; + padding: 40px; + color: #6c757d; + font-size: 16px; + line-height: 1.6; +} + +.no-data-message small { + display: block; + margin-top: 10px; + font-size: 14px; + color: #adb5bd; +} + +/* 로딩 스피너 */ +.loading-spinner { + text-align: center; + padding: 40px; + font-size: 16px; + color: #007bff; + font-weight: bold; +} + +/* 반응형 디자인 */ +@media (max-width: 768px) { + .daily-work-report-container { + padding: 10px; + } + + .work-entry-row { + grid-template-columns: 1fr; + } + + .worker-grid { + grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); + gap: 10px; + } + + .work-details-grid { + grid-template-columns: 1fr; + } + + .daily-workers-header { + flex-direction: column; + gap: 10px; + text-align: center; + } + + .protection-indicator { + position: relative; + top: auto; + right: auto; + margin: 10px auto; + text-align: center; + } + + .steps-container { + flex-direction: column; + align-items: center; + } + + .step { + margin: 10px 0; + } +} + +@media (max-width: 480px) { + .worker-grid { + grid-template-columns: 1fr 1fr; + } + + .action-buttons { + flex-direction: column; + } + + .date-input { + width: 100%; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/factory.css b/deploy/tkfb-package/fastapi-bridge/static/css/factory.css new file mode 100644 index 0000000..e7dcd68 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/factory.css @@ -0,0 +1,61 @@ +body { + font-family: 'Segoe UI', sans-serif; + background-color: #f9f9f9; + margin: 0; + padding: 0; +} + +.container { + max-width: 600px; + margin: 50px auto; + background: #fff; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0,0,0,0.1); + padding: 30px; +} + +h2 { + text-align: center; + margin-bottom: 20px; + color: #333; +} + +form label { + display: block; + margin-bottom: 6px; + font-weight: bold; + color: #444; +} + +form input[type="text"], +form input[type="file"], +form textarea { + width: 100%; + padding: 10px; + margin-bottom: 16px; + border: 1px solid #ccc; + border-radius: 8px; + font-size: 14px; + box-sizing: border-box; +} + +form textarea { + resize: vertical; + min-height: 100px; +} + +button { + width: 100%; + background-color: #007bff; + color: white; + border: none; + padding: 12px; + font-size: 16px; + border-radius: 8px; + cursor: pointer; + transition: background-color 0.3s ease; +} + +button:hover { + background-color: #0056b3; +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/login.css b/deploy/tkfb-package/fastapi-bridge/static/css/login.css new file mode 100644 index 0000000..3f9061e --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/login.css @@ -0,0 +1,54 @@ +body { + margin: 0; + padding: 0; + background: url('/img/login-bg.jpeg') no-repeat center center fixed; + background-size: cover; + font-family: 'Malgun Gothic', sans-serif; +} + +.login-container { + background: rgba(0, 0, 0, 0.65); + width: 400px; + padding: 40px; + margin: 100px auto; + border-radius: 12px; + text-align: center; + color: white; + box-shadow: 0 0 20px rgba(0,0,0,0.3); +} + +.logo { + width: 200px; + margin-bottom: 20px; +} + +input { + display: block; + width: 100%; + margin: 15px 0; + padding: 12px; + font-size: 1rem; + border-radius: 6px; + border: none; +} + +button { + padding: 12px 20px; + font-size: 1rem; + cursor: pointer; + border: none; + background-color: #1976d2; + color: white; + border-radius: 6px; + transition: background-color 0.3s; +} + +button:hover { + background-color: #1565c0; +} + +.error-message { + margin-top: 10px; + color: #ff6b6b; + font-weight: bold; +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/main-layout.css b/deploy/tkfb-package/fastapi-bridge/static/css/main-layout.css new file mode 100644 index 0000000..6467328 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/main-layout.css @@ -0,0 +1,160 @@ +/* ✅ /css/main-layout.css - 공통 레이아웃 스타일 */ + +* { + box-sizing: border-box; +} + +body { + margin: 0; + padding: 0; + font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif; + background-color: #f5f5f5; +} + +/* 메인 레이아웃 구조 */ +.main-layout { + display: flex; + min-height: 100vh; + flex-direction: column; +} + +#navbar-container { + position: sticky; + top: 0; + z-index: 1000; +} + +.content-wrapper { + display: flex; + flex: 1; +} + +#sidebar-container { + flex-shrink: 0; +} + +#content-container, +#sections-container, +#admin-sections, +#user-sections { + flex: 1; + padding: 24px; + max-width: 1200px; + margin: 0 auto; + width: 100%; +} + +/* 카드 스타일 */ +.card { + background: white; + border-radius: 8px; + padding: 24px; + margin-bottom: 24px; + box-shadow: 0 2px 4px rgba(0,0,0,0.08); +} + +/* 섹션 스타일 */ +section { + background: white; + border-radius: 8px; + padding: 20px; + margin-bottom: 20px; + box-shadow: 0 2px 4px rgba(0,0,0,0.08); +} + +section h2 { + font-size: 18px; + margin: 0 0 16px 0; + color: #333; + border-bottom: 2px solid #1976d2; + padding-bottom: 8px; +} + +section ul { + list-style: none; + padding: 0; + margin: 0; +} + +section li { + padding: 8px 0; + border-bottom: 1px solid #f0f0f0; +} + +section li:last-child { + border-bottom: none; +} + +section a { + color: #1976d2; + text-decoration: none; + display: block; + padding: 4px 0; + transition: all 0.3s; +} + +section a:hover { + color: #0d47a1; + padding-left: 8px; +} + +/* 로딩 상태 */ +.loading { + text-align: center; + padding: 60px 20px; + color: #666; +} + +.loading::after { + content: '.'; + animation: dots 1.5s steps(3, end) infinite; +} + +@keyframes dots { + 0%, 20% { content: '.'; } + 40% { content: '..'; } + 60%, 100% { content: '...'; } +} + +/* 에러 상태 */ +.error-state { + text-align: center; + padding: 60px 20px; + color: #d32f2f; +} + +.error-state button { + margin-top: 16px; + padding: 8px 24px; + background: #1976d2; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +.error-state button:hover { + background: #1565c0; +} + +/* 반응형 디자인 */ +@media (max-width: 1024px) { + #content-container, + #sections-container { + padding: 16px; + } +} + +@media (max-width: 768px) { + .content-wrapper { + flex-direction: column; + } + + #sidebar-container { + order: -1; + } + + section h2 { + font-size: 16px; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/management-dashboard.css b/deploy/tkfb-package/fastapi-bridge/static/css/management-dashboard.css new file mode 100644 index 0000000..08524ef --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/management-dashboard.css @@ -0,0 +1,1005 @@ +/* management-dashboard.css - 관리자 대시보드 전용 스타일 */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', 'Noto Sans KR', Tahoma, Geneva, Verdana, sans-serif; + background-color: #f5f7fa; + color: #333; + line-height: 1.6; +} + +/* 메인 레이아웃 */ +.main-layout-with-navbar { + display: flex; + flex-direction: column; + min-height: 100vh; +} + +.content-wrapper { + flex: 1; + padding: 20px; +} + +.dashboard-container { + max-width: 1400px; + margin: 0 auto; +} + +/* 페이지 헤더 */ +.page-header { + text-align: center; + margin-bottom: 2.5rem; + padding: 3rem 2rem; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border-radius: 16px; + box-shadow: 0 6px 24px rgba(0,0,0,0.12); + position: relative; +} + +.page-header h1 { + font-size: 2.5rem; + margin-bottom: 0.8rem; + font-weight: 700; +} + +.subtitle { + font-size: 1.1rem; + opacity: 0.9; + margin-bottom: 1rem; +} + +.permission-badge { + display: inline-block; + background: rgba(255,255,255,0.2); + color: white; + padding: 8px 20px; + border-radius: 25px; + font-size: 14px; + font-weight: 600; + border: 2px solid rgba(255,255,255,0.3); +} + +/* 뒤로가기 버튼 */ +.back-btn { + background: rgba(255,255,255,0.95); + color: #667eea; + border: 3px solid #667eea; + padding: 16px 32px; + border-radius: 12px; + text-decoration: none; + font-weight: 700; + font-size: 18px; + display: inline-flex; + align-items: center; + gap: 12px; + margin-bottom: 24px; + transition: all 0.3s ease; + box-shadow: 0 3px 12px rgba(102, 126, 234, 0.2); +} + +.back-btn:hover { + background: #667eea; + color: white; + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(102, 126, 234, 0.3); +} + +/* 메시지 스타일 */ +.message { + padding: 20px 32px; + border-radius: 12px; + margin-bottom: 32px; + font-weight: 600; + font-size: 18px; + box-shadow: 0 3px 12px rgba(0,0,0,0.1); +} + +.message.warning { + background: #fff3cd; + color: #856404; + border: 2px solid #ffeaa7; +} + +.message.error { + background: #f8d7da; + color: #721c24; + border: 2px solid #f5c6cb; +} + +.message.success { + background: #d4edda; + color: #155724; + border: 2px solid #c3e6cb; +} + +.message.loading { + background: #cce5ff; + color: #0066cc; + border: 2px solid #99d6ff; +} + +/* 날짜 선택 카드 */ +.date-selection-card { + background: white; + border-radius: 16px; + padding: 2rem; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); + margin-bottom: 2rem; +} + +.date-selection-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; + padding-bottom: 1rem; + border-bottom: 2px solid #f0f0f0; +} + +.date-selection-header h3 { + margin: 0; + color: #333; + font-size: 1.4rem; +} + +.refresh-btn { + background: #28a745; + color: white; + border: none; + border-radius: 8px; + padding: 12px 20px; + cursor: pointer; + font-size: 14px; + font-weight: 600; + transition: all 0.3s; + display: flex; + align-items: center; + gap: 8px; +} + +.refresh-btn:hover { + background: #1e7e34; + transform: translateY(-1px); +} + +.date-selection-body { + display: flex; + gap: 20px; + align-items: center; + justify-content: center; +} + +.date-input { + padding: 15px 20px; + font-size: 18px; + border: 3px solid #e1e5e9; + border-radius: 12px; + background: white; + transition: border-color 0.3s; + min-width: 200px; +} + +.date-input:focus { + outline: none; + border-color: #007bff; + box-shadow: 0 0 0 4px rgba(0, 123, 255, 0.15); +} + +/* 버튼 스타일 */ +.btn { + padding: 15px 30px; + border: none; + border-radius: 12px; + font-size: 16px; + font-weight: 700; + cursor: pointer; + transition: all 0.3s; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + text-decoration: none; + box-shadow: 0 3px 12px rgba(0,0,0,0.1); +} + +.btn-primary { + background: #007bff; + color: white; +} + +.btn-primary:hover { + background: #0056b3; + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(0, 123, 255, 0.3); +} + +.btn-secondary { + background: #6c757d; + color: white; +} + +.btn-secondary:hover { + background: #545b62; + transform: translateY(-2px); +} + +/* 요약 섹션 */ +.summary-section { + background: white; + border-radius: 16px; + padding: 2rem; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); + margin-bottom: 2rem; +} + +.summary-section h3 { + margin-bottom: 1.5rem; + color: #333; + font-size: 1.4rem; +} + +.summary-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 20px; +} + +.summary-card { + background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); + border-radius: 12px; + padding: 1.5rem; + display: flex; + align-items: center; + gap: 15px; + border: 2px solid #dee2e6; + transition: all 0.3s ease; +} + +.summary-card:hover { + transform: translateY(-3px); + box-shadow: 0 8px 25px rgba(0,0,0,0.1); +} + +.summary-icon { + font-size: 2rem; + width: 60px; + height: 60px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + background: rgba(255,255,255,0.8); +} + +.summary-content { + flex: 1; +} + +.summary-number { + font-size: 2rem; + font-weight: 700; + color: #333; + line-height: 1; +} + +.summary-label { + font-size: 0.9rem; + color: #666; + margin-top: 4px; +} + +/* 개별 요약 카드 색상 */ +.summary-card.total-workers { + background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%); + border-color: #2196f3; +} + +.summary-card.completed-workers { + background: linear-gradient(135deg, #e8f5e8 0%, #c8e6c9 100%); + border-color: #4caf50; +} + +.summary-card.missing-workers { + background: linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%); + border-color: #f44336; +} + +.summary-card.total-hours { + background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%); + border-color: #9c27b0; +} + +.summary-card.total-entries { + background: linear-gradient(135deg, #fff3e0 0%, #ffcc02 100%); + border-color: #ff9800; +} + +.summary-card.error-count { + background: linear-gradient(135deg, #fce4ec 0%, #f8bbd9 100%); + border-color: #e91e63; +} + +/* 액션 바 */ +.action-bar { + background: white; + border-radius: 12px; + padding: 1.5rem; + box-shadow: 0 4px 16px rgba(0,0,0,0.06); + margin-bottom: 2rem; + display: flex; + justify-content: space-between; + align-items: center; +} + +.filter-section { + display: flex; + gap: 20px; + align-items: center; +} + +.filter-checkbox { + display: flex; + align-items: center; + gap: 10px; + cursor: pointer; + font-weight: 600; + font-size: 16px; + color: #333; +} + +.filter-checkbox input[type="checkbox"] { + display: none; +} + +.checkmark { + width: 20px; + height: 20px; + border: 2px solid #007bff; + border-radius: 4px; + position: relative; + transition: all 0.3s ease; +} + +.filter-checkbox input[type="checkbox"]:checked + .checkmark { + background: #007bff; +} + +.filter-checkbox input[type="checkbox"]:checked + .checkmark::after { + content: "✓"; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: white; + font-weight: bold; + font-size: 12px; +} + +/* 작업자 섹션 */ +.workers-section { + background: white; + border-radius: 16px; + padding: 2rem; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); + margin-bottom: 2rem; +} + +.section-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; + padding-bottom: 1rem; + border-bottom: 2px solid #f0f0f0; +} + +.section-header h3 { + margin: 0; + color: #333; + font-size: 1.4rem; +} + +.legend { + display: flex; + gap: 15px; +} + +.legend-item { + font-size: 14px; + font-weight: 600; + padding: 6px 12px; + border-radius: 20px; + border: 2px solid; +} + +.legend-item.completed { + color: #28a745; + border-color: #28a745; + background: rgba(40, 167, 69, 0.1); +} + +.legend-item.missing { + color: #dc3545; + border-color: #dc3545; + background: rgba(220, 53, 69, 0.1); +} + +.legend-item.partial { + color: #ffc107; + border-color: #ffc107; + background: rgba(255, 193, 7, 0.1); +} + +/* 작업자 테이블 스타일 */ +.table-container { + background: white; + border-radius: 12px; + overflow: hidden; + box-shadow: 0 4px 16px rgba(0,0,0,0.06); +} + +.workers-table { + width: 100%; + border-collapse: collapse; + font-size: 14px; +} + +.workers-table thead { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; +} + +.workers-table th { + padding: 16px 12px; + text-align: left; + font-weight: 700; + font-size: 14px; + border-bottom: 2px solid rgba(255,255,255,0.2); +} + +.workers-table th:first-child { + padding-left: 20px; +} + +.workers-table th:last-child { + padding-right: 20px; +} + +.workers-table tbody tr { + border-bottom: 1px solid #e9ecef; + transition: all 0.3s ease; +} + +.workers-table tbody tr:hover { + background: #f8f9fa; + transform: scale(1.01); + box-shadow: 0 2px 8px rgba(0,0,0,0.1); +} + +.workers-table tbody tr:last-child { + border-bottom: none; +} + +.workers-table td { + padding: 16px 12px; + vertical-align: middle; + line-height: 1.4; +} + +.workers-table td:first-child { + padding-left: 20px; +} + +.workers-table td:last-child { + padding-right: 20px; +} + +/* 작업자 이름 스타일 */ +.worker-name-cell { + font-weight: 700; + color: #333; + display: flex; + align-items: center; + gap: 8px; +} + +/* 상태 배지 스타일 */ +.status-badge { + padding: 6px 12px; + border-radius: 20px; + font-size: 12px; + font-weight: 700; + color: white; + white-space: nowrap; + text-align: center; + min-width: 70px; +} + +.status-badge.completed { + background: linear-gradient(135deg, #28a745 0%, #20c997 100%); +} + +.status-badge.missing { + background: linear-gradient(135deg, #dc3545 0%, #c82333 100%); +} + +.status-badge.partial { + background: linear-gradient(135deg, #ffc107 0%, #e0a800 100%); + color: #333; +} + +/* 시간 표시 스타일 */ +.hours-cell { + font-weight: 700; + font-size: 16px; + color: #495057; +} + +.hours-cell.zero { + color: #dc3545; + opacity: 0.7; +} + +.hours-cell.partial { + color: #ffc107; +} + +.hours-cell.full { + color: #28a745; +} + +/* 작업 유형 태그 */ +.work-types-container { + display: flex; + flex-wrap: wrap; + gap: 4px; + max-width: 120px; +} + +.work-type-tag { + background: #e3f2fd; + color: #1565c0; + padding: 4px 8px; + border-radius: 12px; + font-size: 11px; + font-weight: 600; + white-space: nowrap; + border: 1px solid #bbdefb; +} + +/* 프로젝트 태그 */ +.projects-container { + display: flex; + flex-wrap: wrap; + gap: 4px; + max-width: 150px; +} + +.project-tag { + background: #f3e5f5; + color: #7b1fa2; + padding: 4px 8px; + border-radius: 12px; + font-size: 11px; + font-weight: 600; + white-space: nowrap; + border: 1px solid #e1bee7; +} + +/* 기여자 태그 */ +.contributors-container { + display: flex; + flex-wrap: wrap; + gap: 4px; + max-width: 120px; +} + +.contributor-tag { + background: #e8f5e8; + color: #2e7d32; + padding: 4px 8px; + border-radius: 12px; + font-size: 11px; + font-weight: 600; + white-space: nowrap; + border: 1px solid #c8e6c9; +} + +/* 업데이트 시간 스타일 */ +.update-time { + font-size: 12px; + color: #666; + white-space: nowrap; +} + +.update-time.recent { + color: #28a745; + font-weight: 600; +} + +.update-time.old { + color: #dc3545; +} + +/* 상세 버튼 */ +.detail-btn { + background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); + color: white; + border: none; + border-radius: 20px; + padding: 8px 16px; + cursor: pointer; + font-size: 12px; + font-weight: 600; + transition: all 0.3s; + white-space: nowrap; +} + +.detail-btn:hover { + background: linear-gradient(135deg, #0056b3 0%, #004085 100%); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3); +} + +/* 데이터 없음 행 */ +.no-data-row { + text-align: center; + padding: 40px 20px; + color: #666; + font-style: italic; +} + +/* 테이블 반응형 */ +@media (max-width: 1200px) { + .workers-table { + font-size: 13px; + } + + .workers-table th, + .workers-table td { + padding: 12px 8px; + } + + .work-types-container, + .projects-container, + .contributors-container { + max-width: 100px; + } +} + +@media (max-width: 992px) { + .table-container { + overflow-x: auto; + } + + .workers-table { + min-width: 800px; + font-size: 12px; + } + + .workers-table th, + .workers-table td { + padding: 10px 6px; + } + + .work-types-container, + .projects-container, + .contributors-container { + max-width: 80px; + } + + .work-type-tag, + .project-tag, + .contributor-tag { + font-size: 10px; + padding: 3px 6px; + } +} + +@media (max-width: 768px) { + .workers-table { + min-width: 700px; + font-size: 11px; + } + + .workers-table th, + .workers-table td { + padding: 8px 4px; + } + + .status-badge { + font-size: 10px; + padding: 4px 8px; + min-width: 60px; + } + + .detail-btn { + font-size: 10px; + padding: 6px 12px; + } +} + +/* 로딩 스피너 */ +.loading-spinner { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 4rem 2rem; + background: white; + border-radius: 16px; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); +} + +.spinner { + width: 50px; + height: 50px; + border: 4px solid #f3f3f3; + border-top: 4px solid #007bff; + border-radius: 50%; + animation: spin 1s linear infinite; + margin-bottom: 1rem; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +.loading-spinner p { + color: #666; + font-size: 1.1rem; + font-weight: 600; +} + +/* 데이터 없음 메시지 */ +.no-data-message { + text-align: center; + padding: 4rem 2rem; + background: white; + border-radius: 16px; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); +} + +.no-data-icon { + font-size: 4rem; + margin-bottom: 1rem; +} + +.no-data-message h3 { + color: #333; + margin-bottom: 1rem; + font-size: 1.5rem; +} + +.no-data-message p { + color: #666; + font-size: 1.1rem; + line-height: 1.6; +} + +/* 작업자 상세 모달 */ +.worker-detail-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; + animation: fadeIn 0.3s ease; +} + +.modal-content { + background: white; + border-radius: 16px; + width: 90%; + max-width: 800px; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 10px 40px rgba(0,0,0,0.3); + animation: slideIn 0.3s ease; +} + +.modal-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 24px; + border-bottom: 2px solid #f0f0f0; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border-radius: 16px 16px 0 0; +} + +.modal-header h3 { + margin: 0; + font-size: 20px; + font-weight: 700; +} + +.close-modal-btn { + background: rgba(255,255,255,0.2); + color: white; + border: none; + border-radius: 50%; + width: 32px; + height: 32px; + cursor: pointer; + font-size: 18px; + font-weight: 700; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.3s; +} + +.close-modal-btn:hover { + background: rgba(255,255,255,0.3); + transform: rotate(90deg); +} + +.modal-body { + padding: 24px; +} + +/* 사용법 안내 */ +.guide-section { + background: white; + border-radius: 16px; + padding: 2rem; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); + margin-top: 2rem; +} + +.guide-section h3 { + margin-bottom: 1.5rem; + color: #333; + font-size: 1.4rem; + text-align: center; +} + +.guide-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 20px; +} + +.guide-item { + text-align: center; + padding: 20px; + background: #f8f9fa; + border-radius: 12px; + border: 2px solid #e9ecef; + transition: all 0.3s ease; +} + +.guide-item:hover { + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(0,0,0,0.1); + border-color: #667eea; +} + +.guide-icon { + font-size: 28px; + margin-bottom: 12px; +} + +.guide-item strong { + display: block; + font-size: 16px; + font-weight: 700; + margin-bottom: 8px; + color: #333; +} + +/* 애니메이션 */ +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + +@keyframes slideIn { + from { + opacity: 0; + transform: translateY(-50px) scale(0.9); + } + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} + +/* 수정 모달 스타일 */ +.edit-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 1001; /* 상세 모달보다 위에 */ + animation: fadeIn 0.3s ease; +} + +.edit-modal-content { + background: white; + border-radius: 16px; + width: 90%; + max-width: 600px; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 10px 40px rgba(0,0,0,0.3); + animation: slideIn 0.3s ease; +} + +.edit-modal-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 24px; + border-bottom: 2px solid #f0f0f0; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border-radius: 16px 16px 0 0; +} + +.edit-modal-header h3 { + margin: 0; + font-size: 20px; + font-weight: 700; +} + +.edit-modal-body { + padding: 24px; +} + +.edit-form-group { + margin-bottom: 20px; +} + +.edit-form-group label { + display: block; + margin-bottom: 8px; + font-weight: 700; + color: #555; + font-size: 14px; +} + +.edit-select, .edit-input { + width: 100%; + padding: 12px 16px; + border: 2px solid #e1e5e9; + border-radius: 8px; + font-size: 16px; + background: white; + transition: border-color 0.3s; +} + +.edit-select:focus, .edit-input:focus { + outline: none; + border-color: #007bff; + box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1); +} + +.edit-modal-footer { + display: flex; + justify-content: flex-end; + gap: 12px; + padding: 24px; + border-top: 2px solid #f0f0f0; + background: #f8f9fa; + border-radius: 0 0 16px 16px; +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/user.css b/deploy/tkfb-package/fastapi-bridge/static/css/user.css new file mode 100644 index 0000000..c6a4562 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/user.css @@ -0,0 +1,57 @@ +body { + font-family: 'Malgun Gothic', sans-serif; + background-color: #f5f5f5; + margin: 0; + padding: 0; +} + +header { + background: linear-gradient(135deg, #4caf50 0%, #45a049 100%); + color: white; + padding: 30px; + text-align: center; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); +} + +main { + padding: 30px; + max-width: 1200px; + margin: auto; +} + +.card { + background: white; + padding: 24px; + border-radius: 12px; + margin-bottom: 24px; + box-shadow: 0 2px 8px rgba(0,0,0,0.08); +} + +.quick-menu { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 16px; + margin-top: 16px; +} + +.menu-item { + display: flex; + align-items: center; + gap: 12px; + padding: 16px; + background: #f8f9fa; + border-radius: 8px; + text-decoration: none; + color: #333; + transition: all 0.3s ease; +} + +.menu-item:hover { + background: #e8f5e9; + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0,0,0,0.1); +} + +.icon { + font-size: 24px; +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/work-report.css b/deploy/tkfb-package/fastapi-bridge/static/css/work-report.css new file mode 100644 index 0000000..fa928cb --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/work-report.css @@ -0,0 +1,108 @@ +/* ✅ /css/workreport.css */ + +body { + font-family: 'Malgun Gothic', sans-serif; + background-color: #f8f9fa; + margin: 0; + padding: 30px; + color: #333; +} + +h2 { + text-align: center; + color: #1976d2; + margin-bottom: 20px; +} + +#calendar { + max-width: 500px; + margin: 0 auto 30px; + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 4px; + text-align: center; +} + +#calendar .nav { + grid-column: span 7; + display: flex; + justify-content: space-between; + margin-bottom: 10px; +} + +#calendar button { + padding: 8px; + background-color: #ffffff; + border: 1px solid #ccc; + cursor: pointer; + border-radius: 4px; +} + +#calendar button:hover { + background-color: #e3f2fd; +} + +.selected-date { + background-color: #4caf50 !important; + color: white; + font-weight: bold; +} + +table { + width: 100%; + max-width: 1200px; + margin: auto; + border-collapse: collapse; + background-color: white; + box-shadow: 0 2px 5px rgba(0,0,0,0.05); +} + +th, td { + border: 1px solid #ddd; + padding: 10px; + text-align: center; +} + +th { + background-color: #f1f3f4; + color: #333; +} + +select, +input[type="text"] { + width: 100%; + padding: 6px; + border: 1px solid #ccc; + border-radius: 4px; + box-sizing: border-box; +} + +.remove-btn { + background-color: #d9534f; + color: white; + border: none; + padding: 6px 12px; + border-radius: 4px; + cursor: pointer; +} + +.remove-btn:hover { + background-color: #c9302c; +} + +.submit-btn { + display: block; + margin: 30px auto; + padding: 12px 30px; + font-size: 1rem; + font-weight: bold; + background-color: #1976d2; + color: white; + border: none; + border-radius: 6px; + cursor: pointer; +} + +.submit-btn:hover { + background-color: #1565c0; +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/css/work-review.css b/deploy/tkfb-package/fastapi-bridge/static/css/work-review.css new file mode 100644 index 0000000..daaec2c --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/css/work-review.css @@ -0,0 +1,839 @@ +/* work-review.css - 작업 검토 페이지 전용 스타일 (개선된 버전) */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + background-color: #f5f7fa; + color: #333; + line-height: 1.4; +} + +.main-layout-with-navbar { + display: flex; + flex-direction: column; + min-height: 100vh; +} + +.content-wrapper { + flex: 1; + padding: 20px; +} + +.review-container { + max-width: 1400px; + margin: 0 auto; +} + +/* 페이지 헤더 */ +.page-header { + text-align: center; + margin-bottom: 2rem; + padding: 2rem; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border-radius: 16px; + box-shadow: 0 6px 24px rgba(0,0,0,0.12); +} + +.page-header h1 { + font-size: 2.2rem; + margin-bottom: 0.5rem; + font-weight: 700; +} + +.subtitle { + font-size: 1rem; + opacity: 0.9; +} + +/* 뒤로가기 버튼 */ +.back-btn { + background: rgba(255,255,255,0.95); + color: #667eea; + border: 3px solid #667eea; + padding: 12px 24px; + border-radius: 12px; + text-decoration: none; + font-weight: 700; + font-size: 16px; + display: inline-flex; + align-items: center; + gap: 8px; + margin-bottom: 20px; + transition: all 0.3s ease; +} + +.back-btn:hover { + background: #667eea; + color: white; + transform: translateY(-2px); +} + +/* 컨트롤 패널 */ +.control-panel { + background: white; + border-radius: 16px; + padding: 2rem; + margin-bottom: 2rem; + box-shadow: 0 4px 16px rgba(0,0,0,0.08); + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; +} + +.month-navigation { + display: flex; + align-items: center; + gap: 1rem; +} + +.nav-btn, .today-btn { + background: #007bff; + color: white; + border: none; + border-radius: 8px; + padding: 12px 16px; + cursor: pointer; + font-weight: 600; + transition: all 0.3s; + font-size: 16px; +} + +.nav-btn:hover, .today-btn:hover { + background: #0056b3; + transform: translateY(-2px); +} + +.today-btn { + background: #28a745; +} + +.today-btn:hover { + background: #1e7e34; +} + +.current-month { + font-size: 1.5rem; + font-weight: 700; + color: #333; + min-width: 200px; + text-align: center; +} + +.control-actions { + display: flex; + gap: 12px; +} + +/* 사용법 안내 */ +.usage-guide { + background: white; + border-radius: 16px; + padding: 2rem; + margin-bottom: 2rem; + box-shadow: 0 4px 16px rgba(0,0,0,0.08); +} + +.usage-guide h3 { + margin-bottom: 1.5rem; + color: #333; + font-size: 1.3rem; + text-align: center; +} + +.guide-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 1.5rem; +} + +.guide-item { + display: flex; + align-items: center; + gap: 15px; + padding: 1rem; + border-radius: 12px; + background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); + border: 2px solid #dee2e6; + transition: all 0.3s ease; +} + +.guide-item:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0,0,0,0.1); +} + +.guide-icon { + font-size: 2rem; + width: 50px; + text-align: center; +} + +.guide-text { + flex: 1; +} + +.guide-text strong { + color: #007bff; + font-size: 1.1rem; +} + +/* 캘린더 */ +.calendar-container { + background: white; + border-radius: 16px; + padding: 2rem; + box-shadow: 0 4px 16px rgba(0,0,0,0.08); + margin-bottom: 2rem; +} + +.calendar-container h3 { + color: #333; + font-size: 1.3rem; +} + +.calendar-grid { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 2px; + border: 3px solid #dee2e6; + border-radius: 12px; + overflow: hidden; +} + +.day-header { + background: #343a40; + color: white; + padding: 15px; + text-align: center; + font-weight: 700; + font-size: 1.1rem; +} + +.day-cell { + background: white; + border: 1px solid #dee2e6; + min-height: 80px; + padding: 8px; + position: relative; + transition: all 0.3s ease; + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: center; +} + +.day-cell:hover { + transform: scale(1.05); + box-shadow: 0 4px 12px rgba(0,0,0,0.15); + z-index: 10; +} + +.day-cell.other-month { + background: #f8f9fa; + color: #6c757d; + cursor: not-allowed; +} + +.day-cell.today { + border: 3px solid #007bff; + background: #e7f3ff; +} + +.day-cell.selected { + background: #d4edda; + border: 3px solid #28a745; + transform: scale(1.02); +} + +.day-cell.selected .day-number { + color: #155724; + font-weight: 800; +} + +.day-number { + font-size: 1.2rem; + font-weight: 700; + margin-bottom: 5px; +} + +/* 선택된 날짜 정보 패널 */ +.day-info-panel { + background: white; + border-radius: 16px; + padding: 2rem; + box-shadow: 0 4px 16px rgba(0,0,0,0.08); + margin-bottom: 2rem; +} + +.day-info-placeholder { + text-align: center; + padding: 3rem; + color: #6c757d; +} + +.day-info-placeholder h3 { + font-size: 1.5rem; + margin-bottom: 1rem; + color: #495057; +} + +.day-info-content { + animation: fadeIn 0.3s ease; +} + +@keyframes fadeIn { + from { opacity: 0; transform: translateY(20px); } + to { opacity: 1; transform: translateY(0); } +} + +.day-info-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 2rem; + padding-bottom: 1rem; + border-bottom: 3px solid #dee2e6; +} + +.day-info-header h3 { + color: #333; + font-size: 1.5rem; + margin: 0; +} + +.day-info-actions { + display: flex; + gap: 12px; +} + +.review-toggle, .refresh-day-btn { + padding: 10px 20px; + border: none; + border-radius: 8px; + cursor: pointer; + font-weight: 600; + transition: all 0.3s; + font-size: 14px; +} + +.review-toggle { + background: #007bff; + color: white; +} + +.review-toggle.reviewed { + background: #28a745; +} + +.review-toggle:hover { + transform: translateY(-2px); +} + +.refresh-day-btn { + background: #6c757d; + color: white; +} + +.refresh-day-btn:hover { + background: #545b62; + transform: translateY(-2px); +} + +/* 일별 요약 정보 */ +.day-summary { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 1rem; + margin-bottom: 2rem; + padding: 1.5rem; + background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); + border-radius: 12px; + border: 2px solid #dee2e6; +} + +.summary-item { + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; +} + +.summary-label { + font-weight: 600; + color: #6c757d; + font-size: 0.9rem; +} + +.summary-value { + font-size: 1.3rem; + font-weight: 700; + color: #333; +} + +.summary-value.normal-work { + color: #28a745; +} + +.summary-value.overtime { + color: #6f42c1; +} + +.summary-value.vacation { + color: #ffc107; +} + +.summary-value.reviewed { + color: #28a745; +} + +.summary-value.unreviewed { + color: #fd7e14; +} + +/* 작업자별 상세 섹션 */ +.workers-detail-container h4 { + margin-bottom: 1rem; + color: #333; + font-size: 1.2rem; +} + +.worker-detail-section { + border: 2px solid #dee2e6; + border-radius: 12px; + margin-bottom: 1rem; + overflow: hidden; + box-shadow: 0 2px 8px rgba(0,0,0,0.05); +} + +.worker-header-detail { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 1rem; + display: flex; + justify-content: space-between; + align-items: center; +} + +.delete-worker-btn { + background: rgba(220, 53, 69, 0.9); + color: white; + border: none; + border-radius: 6px; + padding: 8px 16px; + cursor: pointer; + font-size: 14px; + font-weight: 600; + transition: all 0.3s; +} + +.delete-worker-btn:hover { + background: #c82333; + transform: translateY(-1px); +} + +.worker-work-items { + padding: 1rem; + background: white; +} + +.work-item-detail { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem; + margin-bottom: 0.5rem; + background: #f8f9fa; + border-radius: 8px; + border-left: 4px solid #007bff; + transition: all 0.3s ease; +} + +.work-item-detail:hover { + background: #e9ecef; + transform: translateX(5px); +} + +.work-item-info { + flex: 1; +} + +.work-item-actions { + display: flex; + gap: 8px; +} + +.edit-work-btn, .delete-work-btn { + padding: 8px 16px; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 14px; + font-weight: 600; + transition: all 0.3s; + white-space: nowrap; +} + +.edit-work-btn { + background: #007bff; + color: white; +} + +.edit-work-btn:hover { + background: #0056b3; + transform: translateY(-1px); +} + +.delete-work-btn { + background: #dc3545; + color: white; +} + +.delete-work-btn:hover { + background: #c82333; + transform: translateY(-1px); +} + +/* 메시지 */ +.message { + padding: 15px 20px; + border-radius: 8px; + margin-bottom: 20px; + font-weight: 600; + animation: slideInDown 0.3s ease; +} + +@keyframes slideInDown { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.message.loading { + background: #cce5ff; + color: #0066cc; + border: 2px solid #99d6ff; +} + +.message.success { + background: #d4edda; + color: #155724; + border: 2px solid #c3e6cb; +} + +.message.error { + background: #f8d7da; + color: #721c24; + border: 2px solid #f5c6cb; +} + +.message.warning { + background: #fff3cd; + color: #856404; + border: 2px solid #ffeaa7; +} + +/* 수정 모달 스타일 */ +.edit-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 1001; + animation: fadeIn 0.3s ease; +} + +.edit-modal-content { + background: white; + border-radius: 16px; + width: 90%; + max-width: 500px; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 10px 40px rgba(0,0,0,0.3); + animation: slideInUp 0.3s ease; +} + +@keyframes slideInUp { + from { + opacity: 0; + transform: translateY(50px) scale(0.9); + } + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} + +.edit-modal-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 24px; + border-bottom: 2px solid #f0f0f0; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border-radius: 16px 16px 0 0; +} + +.edit-modal-header h3 { + margin: 0; + font-size: 18px; + font-weight: 700; +} + +.close-modal-btn { + background: rgba(255,255,255,0.2); + color: white; + border: none; + border-radius: 50%; + width: 30px; + height: 30px; + cursor: pointer; + font-size: 16px; + font-weight: 700; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.3s; +} + +.close-modal-btn:hover { + background: rgba(255,255,255,0.3); + transform: rotate(90deg); +} + +.edit-modal-body { + padding: 24px; +} + +.edit-form-group { + margin-bottom: 20px; +} + +.edit-form-group label { + display: block; + margin-bottom: 8px; + font-weight: 700; + color: #555; + font-size: 14px; +} + +.edit-select, .edit-input { + width: 100%; + padding: 12px 16px; + border: 2px solid #e1e5e9; + border-radius: 8px; + font-size: 14px; + background: white; + transition: border-color 0.3s; +} + +.edit-select:focus, .edit-input:focus { + outline: none; + border-color: #007bff; + box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1); +} + +.edit-modal-footer { + display: flex; + justify-content: flex-end; + gap: 12px; + padding: 24px; + border-top: 2px solid #f0f0f0; + background: #f8f9fa; + border-radius: 0 0 16px 16px; +} + +/* 확인 모달 */ +.confirm-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.8); + display: flex; + justify-content: center; + align-items: center; + z-index: 1002; + animation: fadeIn 0.3s ease; +} + +.confirm-modal-content { + background: white; + border-radius: 16px; + width: 90%; + max-width: 400px; + box-shadow: 0 10px 40px rgba(0,0,0,0.3); + animation: slideInUp 0.3s ease; +} + +.confirm-modal-header { + padding: 24px 24px 16px; + border-bottom: 2px solid #f0f0f0; +} + +.confirm-modal-header h3 { + margin: 0; + font-size: 18px; + font-weight: 700; + color: #dc3545; +} + +.confirm-modal-body { + padding: 16px 24px; +} + +.confirm-modal-footer { + display: flex; + justify-content: flex-end; + gap: 12px; + padding: 16px 24px 24px; + border-top: 2px solid #f0f0f0; + background: #f8f9fa; + border-radius: 0 0 16px 16px; +} + +/* 버튼 스타일 */ +.btn { + padding: 10px 20px; + border: none; + border-radius: 6px; + cursor: pointer; + font-weight: 600; + transition: all 0.3s; + font-size: 14px; +} + +.btn-secondary { + background: #6c757d; + color: white; +} + +.btn-secondary:hover { + background: #545b62; + transform: translateY(-1px); +} + +.btn-success { + background: #28a745; + color: white; +} + +.btn-success:hover { + background: #1e7e34; + transform: translateY(-1px); +} + +.btn-danger { + background: #dc3545; + color: white; +} + +.btn-danger:hover { + background: #c82333; + transform: translateY(-1px); +} + +/* 반응형 */ +@media (max-width: 768px) { + .content-wrapper { + padding: 10px; + } + + .control-panel { + flex-direction: column; + text-align: center; + } + + .month-navigation { + flex-direction: column; + gap: 0.5rem; + } + + .guide-grid { + grid-template-columns: 1fr; + } + + .guide-item { + flex-direction: column; + text-align: center; + } + + .day-cell { + min-height: 60px; + padding: 5px; + } + + .day-number { + font-size: 1rem; + } + + .day-summary { + grid-template-columns: 1fr 1fr; + } + + .day-info-header { + flex-direction: column; + gap: 15px; + text-align: center; + } + + .day-info-actions { + flex-direction: column; + width: 100%; + } + + .review-toggle, .refresh-day-btn { + width: 100%; + } + + .work-item-detail { + flex-direction: column; + align-items: stretch; + gap: 12px; + } + + .work-item-actions { + justify-content: center; + } + + .worker-header-detail { + flex-direction: column; + gap: 10px; + text-align: center; + } + + .edit-modal-content { + width: 95%; + margin: 20px; + } + + .edit-modal-footer, .confirm-modal-footer { + flex-direction: column; + } + + .edit-work-btn, .delete-work-btn { + flex: 1; + padding: 12px; + font-size: 14px; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/assets/css/style.css b/deploy/tkfb-package/fastapi-bridge/static/docs/assets/css/style.css new file mode 100644 index 0000000..7775b56 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/assets/css/style.css @@ -0,0 +1,394 @@ +/* 테크니컬코리아 문서 시스템 CSS */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + min-height: 100vh; + color: #333; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 20px; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +/* 헤더 스타일 */ +.header { + text-align: center; + background: rgba(255, 255, 255, 0.95); + padding: 40px 30px; + border-radius: 20px; + margin-bottom: 30px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); + backdrop-filter: blur(10px); +} + +.header h1 { + font-size: 2.5rem; + margin-bottom: 10px; + background: linear-gradient(45deg, #667eea, #764ba2); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.header p { + font-size: 1.2rem; + color: #666; + opacity: 0.8; +} + +/* 메인 콘텐츠 */ +.main-content { + flex: 1; + margin-bottom: 30px; +} + +/* 카드 그리드 */ +.card-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 25px; + margin-bottom: 30px; +} + +/* 카드 스타일 */ +.card { + background: rgba(255, 255, 255, 0.95); + border-radius: 20px; + padding: 30px; + text-align: center; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + backdrop-filter: blur(10px); + border: 1px solid rgba(255, 255, 255, 0.2); +} + +.card:hover { + transform: translateY(-10px); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15); +} + +.card-icon { + font-size: 3rem; + margin-bottom: 20px; + display: block; +} + +.card h3 { + font-size: 1.4rem; + margin-bottom: 15px; + color: #333; +} + +.card p { + color: #666; + margin-bottom: 20px; + line-height: 1.6; +} + +.card-link { + display: inline-block; + background: linear-gradient(45deg, #667eea, #764ba2); + color: white; + text-decoration: none; + padding: 12px 30px; + border-radius: 25px; + font-weight: 500; + transition: all 0.3s ease; + box-shadow: 0 5px 15px rgba(102, 126, 234, 0.3); +} + +.card-link:hover { + transform: translateY(-2px); + box-shadow: 0 8px 25px rgba(102, 126, 234, 0.4); +} + +/* 검색 카드 특별 스타일 */ +.search-card { + grid-column: 1 / -1; + max-width: 600px; + margin: 0 auto; + width: 100%; +} + +.search-box { + display: flex; + gap: 10px; + margin-top: 20px; +} + +.search-box input { + flex: 1; + padding: 15px 20px; + border: 2px solid #e1e5e9; + border-radius: 25px; + font-size: 1rem; + outline: none; + transition: all 0.3s ease; +} + +.search-box input:focus { + border-color: #667eea; + box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1); +} + +.search-box button { + background: linear-gradient(45deg, #667eea, #764ba2); + color: white; + border: none; + padding: 15px 30px; + border-radius: 25px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 5px 15px rgba(102, 126, 234, 0.3); +} + +.search-box button:hover { + transform: translateY(-2px); + box-shadow: 0 8px 25px rgba(102, 126, 234, 0.4); +} + +/* 문서 목록 스타일 */ +.document-list { + display: grid; + gap: 20px; +} + +.document-item { + background: rgba(255, 255, 255, 0.95); + border-radius: 15px; + padding: 25px; + display: flex; + align-items: center; + gap: 20px; + box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + backdrop-filter: blur(10px); +} + +.document-item:hover { + transform: translateX(10px); + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15); +} + +.document-icon { + font-size: 2rem; + width: 60px; + text-align: center; +} + +.document-content { + flex: 1; +} + +.document-content h3 { + font-size: 1.2rem; + margin-bottom: 5px; + color: #333; +} + +.document-content p { + color: #666; + font-size: 0.9rem; +} + +.document-meta { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: 5px; +} + +.document-date { + font-size: 0.8rem; + color: #999; +} + +.download-btn { + background: #28a745; + color: white; + text-decoration: none; + padding: 8px 16px; + border-radius: 20px; + font-size: 0.9rem; + transition: all 0.3s ease; +} + +.download-btn:hover { + background: #218838; + transform: translateY(-2px); +} + +/* 네비게이션 브레드크럼 */ +.breadcrumb { + background: rgba(255, 255, 255, 0.9); + padding: 15px 25px; + border-radius: 15px; + margin-bottom: 20px; + backdrop-filter: blur(10px); +} + +.breadcrumb a { + color: #667eea; + text-decoration: none; + font-weight: 500; +} + +.breadcrumb a:hover { + text-decoration: underline; +} + +.breadcrumb span { + color: #999; + margin: 0 10px; +} + +/* 페이지 헤더 */ +.page-header { + background: rgba(255, 255, 255, 0.95); + padding: 30px; + border-radius: 20px; + margin-bottom: 30px; + text-align: center; + backdrop-filter: blur(10px); +} + +.page-header h2 { + font-size: 2rem; + margin-bottom: 10px; + background: linear-gradient(45deg, #667eea, #764ba2); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* 푸터 */ +.footer { + background: rgba(255, 255, 255, 0.9); + padding: 25px; + border-radius: 15px; + text-align: center; + backdrop-filter: blur(10px); + margin-top: auto; +} + +.footer p { + color: #666; + font-size: 0.9rem; + margin-bottom: 5px; +} + +.footer p:last-child { + margin-bottom: 0; + font-family: 'Courier New', monospace; + color: #999; +} + +/* 반응형 디자인 */ +@media (max-width: 768px) { + .container { + padding: 15px; + } + + .header { + padding: 25px 20px; + } + + .header h1 { + font-size: 2rem; + } + + .card-grid { + grid-template-columns: 1fr; + gap: 20px; + } + + .card { + padding: 25px 20px; + } + + .search-box { + flex-direction: column; + } + + .search-box button { + width: 100%; + } + + .document-item { + flex-direction: column; + text-align: center; + } + + .document-meta { + align-items: center; + } +} + +@media (max-width: 480px) { + .header h1 { + font-size: 1.8rem; + } + + .header p { + font-size: 1rem; + } + + .card { + padding: 20px 15px; + } + + .card h3 { + font-size: 1.2rem; + } +} + +/* 로딩 애니메이션 */ +.loading { + display: inline-block; + width: 20px; + height: 20px; + border: 3px solid rgba(255, 255, 255, 0.3); + border-radius: 50%; + border-top-color: #fff; + animation: spin 1s ease-in-out infinite; +} + +@keyframes spin { + to { transform: rotate(360deg); } +} + +/* 알림 메시지 */ +.alert { + padding: 15px 20px; + border-radius: 10px; + margin-bottom: 20px; + background: rgba(255, 255, 255, 0.9); + border-left: 5px solid #667eea; + backdrop-filter: blur(10px); +} + +.alert-success { + border-left-color: #28a745; +} + +.alert-warning { + border-left-color: #ffc107; +} + +.alert-error { + border-left-color: #dc3545; +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/assets/js/main.js b/deploy/tkfb-package/fastapi-bridge/static/docs/assets/js/main.js new file mode 100644 index 0000000..77f1784 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/assets/js/main.js @@ -0,0 +1,60 @@ +// 문서 검색 기능 +function searchDocuments() { + const searchTerm = document.getElementById('searchInput').value.toLowerCase(); + if (searchTerm.trim() === '') { + alert('검색어를 입력해주세요.'); + return; + } + + // 간단한 검색 구현 (실제로는 서버 검색 또는 더 복잡한 로직 필요) + window.location.href = `search.html?q=${encodeURIComponent(searchTerm)}`; +} + +// 문서 필터링 기능 (문서 목록 페이지용) +function filterDocuments(searchTerm) { + const documents = document.querySelectorAll('.document-item'); + const term = searchTerm.toLowerCase(); + + documents.forEach(doc => { + const keywords = doc.getAttribute('data-keywords').toLowerCase(); + const title = doc.querySelector('h3').textContent.toLowerCase(); + const description = doc.querySelector('p').textContent.toLowerCase(); + + if (keywords.includes(term) || title.includes(term) || description.includes(term)) { + doc.style.display = 'flex'; + } else { + doc.style.display = 'none'; + } + }); +} + +// QR 코드 생성 (선택사항) +function generateQR() { + const url = 'http://192.168.0.3:10080'; + const qrAPI = `https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(url)}`; + + const qrModal = document.createElement('div'); + qrModal.innerHTML = ` +
+
+

QR 코드로 접속

+ QR Code +

${url}

+ +
+
+ `; + document.body.appendChild(qrModal); +} + +// Enter 키 검색 +document.addEventListener('DOMContentLoaded', function() { + const searchInput = document.getElementById('searchInput'); + if (searchInput) { + searchInput.addEventListener('keypress', function(e) { + if (e.key === 'Enter') { + searchDocuments(); + } + }); + } +}); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/hr.html b/deploy/tkfb-package/fastapi-bridge/static/docs/hr.html new file mode 100644 index 0000000..ef0fdc5 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/hr.html @@ -0,0 +1,357 @@ + + + + + + 인사규정 - 테크니컬코리아 + + + +
+ + + + + + + +
+
+ +
+
+

HR-001 인사관리 규정

+

채용, 승진, 전보, 퇴직 등 인사관리 전반

+
+
+ + +
+
+

HR-002 급여관리 규정

+

급여체계, 수당, 상여금 지급 기준

+
+
+ + +
+
+

HR-003 근무시간 관리규정

+

근무시간, 휴게시간, 연장근무 규정

+
+
+ + +
+
+

HR-004 휴가 및 휴직규정

+

연차, 병가, 특별휴가, 휴직 관련 규정

+
+
+ + +
+
+

HR-005 복리후생 규정

+

건강보험, 퇴직금, 각종 지원금 규정

+
+
+ + +
+
+

HR-006 성과평가 관리규정

+

성과평가 기준, 절차, 결과 활용 방안

+
+
+ + +
+
+

HR-007 교육훈련 관리규정

+

신입사원 교육, 직무교육, 외부교육 지원

+
+
+ + +
+
+

HR-008 징계 관리규정

+

징계사유, 절차, 징계양정 기준

+
+
+ + +
+
+

HR-009 정보보안 및 기밀유지

+

회사 정보보안 및 기밀유지 의무

+
+
+ + +
+
+

HR-010 복무 및 행동강령

+

직원 복무 기준 및 윤리 행동강령

+
+
+
+ + +
+

인사규정 검색

+ +
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

인사 문의: hr@technicalkorea.co.kr | 내선: 3456

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/hse.html b/deploy/tkfb-package/fastapi-bridge/static/docs/hse.html new file mode 100644 index 0000000..af4c9a2 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/hse.html @@ -0,0 +1,447 @@ + + + + + + HSE 관리시스템 - 테크니컬코리아 + + + +
+ + + + + + + +
+
+ +
+
+

TK-HSE-001 ISO 45001:2018 HSE 관리시스템 매뉴얼

+

ISO 45001:2018 기반 보건, 안전 및 환경 관리시스템 최상위 문서 (한/영 이중언어)

+
+
+ + +
+
+

TK-HSE-P-410 조직 상황 이해 및 HSE 관리시스템 운영 절차

+

조직의 내외부 상황 파악 및 HSE 관리시스템 전반 운영

+
+
+ + +
+
+

TK-HSE-P-510 리더십 및 정책 수립 절차

+

최고경영자 리더십 및 HSE 정책 수립·운영 절차

+
+
+ +
+
+

TK-HSE-P-520 조직 편성 및 직무 배정 절차

+

HSE 관련 조직 구성 및 역할·책임·권한 배정

+
+
+ + +
+
+

TK-HSE-P-610 기획 및 위험 관리 절차

+

HSE 관리시스템 기획 및 위험과 기회 관리

+
+
+ +
+
+

TK-HSE-P-620 위험 평가 절차

+

유해요인 식별 및 위험성 평가 실시 절차

+
+
+ +
+
+

TK-HSE-P-630 HSE 법적 요구사항 관리 절차

+

HSE 관련 법령 및 기타 요구사항 관리

+
+
+ +
+
+

TK-HSE-P-640 HSE 목표 관리 절차

+

HSE 목표 설정, 달성 계획 수립 및 관리

+
+
+ + +
+
+

TK-HSE-P-710 자원 관리 절차

+

HSE 관리시스템 운영에 필요한 자원 관리

+
+
+ +
+
+

TK-HSE-P-720 교육 및 훈련 관리 절차

+

HSE 관련 교육·훈련 계획 수립 및 실시

+
+
+ +
+
+

TK-HSE-P-730 인식 및 의사소통 절차

+

HSE 인식 제고 및 내외부 의사소통 관리

+
+
+ +
+
+

TK-HSE-P-740 문서화된 정보 관리 절차

+

HSE 문서 및 기록의 작성, 관리, 보관

+
+
+ + +
+
+

TK-HSE-P-810 운영 기획 및 관리 절차

+

HSE 운영 기획, 작업허가, 변경관리, 조달관리

+
+
+ +
+
+

TK-HSE-P-820 비상 대비 및 대응 절차

+

비상상황 대비, 대응 계획 및 훈련

+
+
+ + +
+
+

TK-HSE-P-910 프로세스 성과 관리 절차

+

HSE 관리시스템 프로세스 성과 관리

+
+
+ +
+
+

TK-HSE-P-920 HSE 모니터링 및 측정 관리 절차

+

HSE 성과 모니터링, 측정 및 분석

+
+
+ +
+
+

TK-HSE-P-930 내부 심사 절차

+

HSE 관리시스템 내부 심사 계획 및 실시

+
+
+ +
+
+

TK-HSE-P-940 경영 검토 절차

+

HSE 관리시스템 경영진 검토

+
+
+ + +
+
+

TK-HSE-P-1010 사건, 부적합 및 시정조치 절차

+

사건·사고 조사, 부적합 처리 및 시정조치

+
+
+ +
+
+

TK-HSE-P-1020 지속적 개선 절차

+

HSE 관리시스템 지속적 개선 활동

+
+
+ + +
+
+

TK-HSE-W-001 개인보호구 관리 지침

+

개인보호구 지급, 관리, 점검 실무 지침

+
+
+ +
+
+

TK-HSE-W-002 화학물질 관리 지침

+

화학물질 보관, 사용, 폐기 실무 지침

+
+
+ +
+
+

TK-HSE-W-003 응급처치 및 의료관리 지침

+

응급상황 대응 및 응급처치 실무 지침

+
+
+
+ + +
+

HSE 문서 검색

+ +
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

HSE 문의: safety@technicalkorea.co.kr | 내선: 1234

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-410.html b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-410.html new file mode 100644 index 0000000..b6cd015 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-410.html @@ -0,0 +1,1208 @@ + + + + + + TK-HSE-P-410 조직 상황 이해 및 HSE 관리시스템 운영 절차 + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-410

+

조직 상황 이해 및 HSE 관리시스템 운영 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목조직 상황 이해 및 HSE 관리시스템 운영 절차
문서 번호TK-HSE-P-410
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 6
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+
+

1. 목적

+
+

본 절차의 목적은 다음과 같습니다:

+
    +
  • 조직의 내부 및 외부 상황을 체계적으로 파악하고 분석
  • +
  • 이해관계자의 요구사항과 기대사항을 식별하고 관리
  • +
  • HSE 관리시스템의 적용 범위를 명확히 정의
  • +
  • HSE 관리시스템의 효과적인 수립, 실행, 유지 및 개선
  • +
  • ISO 45001:2018 표준 4조 요구사항의 체계적 이행
  • +
+
+ + +
+
+

2. 적용 범위

+
+

본 절차는 테크니컬코리아의 다음 영역에 적용됩니다:

+
    +
  • 전 부서 및 모든 사업장
  • +
  • HSE 관리시스템 구축 및 운영 활동
  • +
  • 조직 상황 분석 및 이해관계자 관리 업무
  • +
  • HSE 관리시스템 적용 범위 설정 및 관리
  • +
  • 관련 계약업체 및 공급업체
  • +
+
+ + +
+
+

3. 인용 표준 및 관련 문서

+
+

3.1 인용 표준

+
    +
  • ISO 45001:2018 - 직장 보건안전 관리시스템 - 요구사항 및 사용 지침
  • +
  • 산업안전보건법 및 관련 법령
  • +
+ +

3.2 관련 문서

+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-510 - 리더십 및 정책 수립 절차
  • +
  • TK-HSE-P-610 - 기획 및 위험 관리 절차
  • +
  • TK-HSE-P-740 - 문서화된 정보 관리 절차
  • +
+
+ + +
+
+

4. 용어와 정의

+
+ +
+

4.1 조직의 상황 (Context of the organization)

+

목표를 달성하기 위한 조직의 접근 방식을 개발하는 데 영향을 줄 수 있는 내부 및 외부 이슈의 조합

+ +

4.2 이해관계자 (Interested party)

+

결정이나 활동에 영향을 주거나, 영향을 받거나, 영향을 받는다고 인식하는 개인이나 조직

+ +

4.3 요구사항 (Requirements)

+

명시되거나, 일반적으로 함축되거나, 의무적인 필요나 기대

+ +

4.4 적용 범위 (Scope)

+

관리시스템이 적용되는 조직의 활동, 제품 및 서비스의 범위와 경계

+
+
+ + +
+
+

5. 역할과 책임

+
+ + + + + + + + + + + + + + + + + + + + + + +
역할책임사항
최고경영자 + • 조직 상황 분석 결과 승인
+ • HSE 관리시스템 적용 범위 최종 결정
+ • 이해관계자 관리 전략 승인
+ • 필요 자원 제공 결정 +
HSE 관리책임자 + • 조직 상황 분석 총괄 관리
+ • 이해관계자 식별 및 분석 주관
+ • HSE 관리시스템 적용 범위 제안
+ • 관련 문서 작성 및 관리 +
각 부서장 + • 부서별 내외부 이슈 식별
+ • 부서 관련 이해관계자 정보 제공
+ • 조직 상황 분석 협조
+ • 관련 정보 업데이트 보고 +
HSE 담당자 + • 조직 상황 분석 실무 수행
+ • 이해관계자 정보 수집 및 정리
+ • 관련 문서 작성 지원
+ • 정기적 검토 및 업데이트 실시 +
+
+ + +
+
+

6. 프로세스 흐름도

+
+ +
+
조직 상황 분석 계획
+
+
내부/외부 이슈 식별
+
+
이해관계자 식별 및 분석
+
+
HSE 관리시스템 적용 범위 설정
+
+
문서화 및 승인
+
+
정기적 검토 및 업데이트
+
+
+ + +
+
+

7. 세부 절차

+
+ +
+

7.1 조직 상황 분석 계획 수립

+

7.1.1 절차

+
    +
  1. HSE 관리책임자는 연 1회 또는 필요시 조직 상황 분석 계획을 수립한다
  2. +
  3. 분석 범위, 방법, 일정, 담당자를 명확히 정의한다
  4. +
  5. 각 부서장에게 협조 요청을 공문으로 발송한다
  6. +
  7. 분석에 필요한 자료와 정보원을 사전에 확보한다
  8. +
+ +

7.1.2 고려사항

+
    +
  • 사업 환경의 변화 여부
  • +
  • 새로운 법규 및 규제 도입
  • +
  • 조직 구조 및 전략의 변경
  • +
  • 이전 분석 결과의 유효성
  • +
+
+ +
+

7.2 내부 및 외부 이슈 식별

+

7.2.1 외부 이슈 분석

+
    +
  1. 법적 환경 +
      +
    • 산업안전보건법 및 관련 법령 변화
    • +
    • 환경 관련 법규 동향
    • +
    • 국제 표준 및 규격 변화
    • +
    +
  2. +
  3. 경제적 환경 +
      +
    • 시장 경제 상황 및 전망
    • +
    • 업계 경기 동향
    • +
    • 경쟁업체 현황
    • +
    +
  4. +
  5. 기술적 환경 +
      +
    • 안전보건 기술 발전 동향
    • +
    • 새로운 위험요소 출현
    • +
    • 디지털 기술 적용 가능성
    • +
    +
  6. +
  7. 사회적 환경 +
      +
    • 사회적 안전 의식 변화
    • +
    • 근로자 권익 보호 요구
    • +
    • 지역사회 관심사항
    • +
    +
  8. +
+ +

7.2.2 내부 이슈 분석

+
    +
  1. 조직 구조 +
      +
    • 조직도 및 보고 체계
    • +
    • 역할 및 책임 분담
    • +
    • 의사결정 프로세스
    • +
    +
  2. +
  3. 인적 자원 +
      +
    • 인력 현황 및 역량
    • +
    • 교육훈련 수준
    • +
    • 근로자 참여도
    • +
    +
  4. +
  5. 물적 자원 +
      +
    • 시설 및 장비 현황
    • +
    • 안전보건 시설 수준
    • +
    • 기술적 능력
    • +
    +
  6. +
  7. 조직 문화 +
      +
    • 안전보건 문화 수준
    • +
    • 의사소통 체계
    • +
    • 학습 및 개선 의지
    • +
    +
  8. +
+
+ +
+

7.3 이해관계자 식별 및 분석

+

7.3.1 이해관계자 식별

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
구분이해관계자주요 관심사항
내부근로자안전한 작업환경, 건강보호, 참여 기회
경영진법적 준수, 비용 절감, 생산성 향상
주주기업 이미지, 재무 성과, 지속가능성
노동조합근로자 권익, 안전보건 조건 개선
외부고객제품 안전성, 기업 신뢰도
공급업체/계약업체안전한 작업 조건, 계약 이행
정부/규제기관법적 준수, 사고 예방
지역사회환경 영향, 사회적 책임
보험회사위험 관리, 사고율 감소
+ +

7.3.2 이해관계자 요구사항 분석

+
    +
  1. 각 이해관계자별 구체적 요구사항을 조사한다
  2. +
  3. 법적 요구사항과 자발적 요구사항을 구분한다
  4. +
  5. 요구사항의 우선순위와 중요도를 평가한다
  6. +
  7. 상충되는 요구사항에 대한 조정 방안을 마련한다
  8. +
  9. 요구사항 변화를 모니터링할 체계를 구축한다
  10. +
+
+ +
+

7.4 HSE 관리시스템 적용 범위 설정

+

7.4.1 적용 범위 결정 기준

+
    +
  • 조직의 통제 또는 영향 하에 있는 활동
  • +
  • HSE 성과에 영향을 줄 수 있는 활동
  • +
  • 법적 요구사항이 적용되는 영역
  • +
  • 이해관계자의 기대가 반영되는 영역
  • +
+ +

7.4.2 적용 범위 문서화

+
    +
  1. 물리적 위치 및 시설 명시
  2. +
  3. 포함되는 활동, 제품, 서비스 기술
  4. +
  5. 조직의 권한과 통제 범위 정의
  6. +
  7. 제외 사항 및 그 사유 명시
  8. +
  9. 적용 범위의 가용성 보장
  10. +
+
+ +
+

7.5 정기적 검토 및 업데이트

+

7.5.1 검토 주기

+
    +
  • 정기 검토: 매년 1회 이상
  • +
  • 임시 검토: 중대한 변화 발생 시
  • +
  • 경영 검토 시 함께 검토
  • +
+ +

7.5.2 업데이트 절차

+
    +
  1. 변화 요인 식별 및 영향 분석
  2. +
  3. 관련 부서와 협의
  4. +
  5. 업데이트 내용 문서화
  6. +
  7. 승인 및 공유
  8. +
  9. 관련 문서 연동 업데이트
  10. +
+
+
+ + +
+
+

8. 기록 관리

+
+ +

8.1 작성 기록

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기록명작성자보관 기간보관 장소
조직 상황 분석 보고서HSE 관리책임자3년HSE 관리부서
이해관계자 등록부HSE 담당자3년HSE 관리부서
HSE 관리시스템 적용 범위서HSE 관리책임자영구HSE 관리부서
검토 및 업데이트 기록HSE 담당자3년HSE 관리부서
+ +

8.2 기록 관리 요구사항

+
    +
  • 모든 기록은 읽기 쉽고 식별 가능해야 함
  • +
  • 기록의 검색, 보관, 보호가 용이해야 함
  • +
  • 보관 기간 만료 시 적절히 처분
  • +
  • 전자 문서의 경우 백업 및 보안 조치
  • +
+
+ + +
+
+

9. 첨부 서식

+
+ +
    +
  • 첨부 1: 조직 상황 분석 체크리스트
  • +
  • 첨부 2: 이해관계자 등록 양식
  • +
  • 첨부 3: HSE 관리시스템 적용 범위 양식
  • +
  • 첨부 4: 검토 및 업데이트 기록 양식
  • +
+
+
+ + +
+ +
+

TK-HSE-P-410

+

Understanding Organizational Context and HSE Management System Operation Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleUnderstanding Organizational Context and HSE Management System Operation Procedure
Document NumberTK-HSE-P-410
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 6
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+
+

1. PURPOSE

+
+

The purpose of this procedure is to:

+
    +
  • Systematically identify and analyze the internal and external context of the organization
  • +
  • Identify and manage the needs and expectations of interested parties
  • +
  • Clearly define the scope of application of the HSE management system
  • +
  • Effectively establish, implement, maintain and improve the HSE management system
  • +
  • Systematically implement the requirements of ISO 45001:2018 Clause 4
  • +
+
+ + +
+
+

2. SCOPE

+
+

This procedure applies to the following areas of Technicalkorea:

+
    +
  • All departments and business sites
  • +
  • HSE management system establishment and operation activities
  • +
  • Organizational context analysis and stakeholder management tasks
  • +
  • Setting and managing the scope of HSE management system application
  • +
  • Related contractors and suppliers
  • +
+
+ + +
+
+

3. NORMATIVE REFERENCES AND RELATED DOCUMENTS

+
+

3.1 Normative References

+
    +
  • ISO 45001:2018 - Occupational health and safety management systems - Requirements with guidance for use
  • +
  • Occupational Safety and Health Act and related regulations
  • +
+ +

3.2 Related Documents

+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-510 - Leadership and Policy Establishment Procedure
  • +
  • TK-HSE-P-610 - Planning and Risk Management Procedure
  • +
  • TK-HSE-P-740 - Documented Information Management Procedure
  • +
+
+ + +
+
+

4. TERMS AND DEFINITIONS

+
+ +
+

4.1 Context of the organization

+

Combination of internal and external issues that can influence the organization's approach to developing and achieving its objectives

+ +

4.2 Interested party

+

Person or organization that can affect, be affected by, or perceive themselves to be affected by a decision or activity

+ +

4.3 Requirements

+

Need or expectation that is stated, generally implied or obligatory

+ +

4.4 Scope

+

Extent and boundaries of activities, products and services of an organization to which the management system applies

+
+
+ + +
+
+

5. ROLES AND RESPONSIBILITIES

+
+ + + + + + + + + + + + + + + + + + + + + + +
RoleResponsibilities
Top Management + • Approve organizational context analysis results
+ • Make final decisions on HSE management system scope
+ • Approve stakeholder management strategies
+ • Decide on provision of necessary resources +
HSE Management Representative + • Overall management of organizational context analysis
+ • Lead stakeholder identification and analysis
+ • Propose HSE management system scope
+ • Prepare and manage related documents +
Department Heads + • Identify internal and external issues by department
+ • Provide stakeholder information related to departments
+ • Cooperate in organizational context analysis
+ • Report updates on relevant information +
HSE Personnel + • Perform practical organizational context analysis
+ • Collect and organize stakeholder information
+ • Support preparation of related documents
+ • Conduct regular reviews and updates +
+
+ + +
+
+

6. PROCESS FLOW CHART

+
+ +
+
Organizational Context Analysis Planning
+
+
Internal/External Issues Identification
+
+
Stakeholder Identification and Analysis
+
+
HSE Management System Scope Setting
+
+
Documentation and Approval
+
+
Regular Review and Update
+
+
+ + +
+
+

7. DETAILED PROCEDURES

+
+ +
+

7.1 Establishing Organizational Context Analysis Plan

+

7.1.1 Procedure

+
    +
  1. The HSE Management Representative establishes an organizational context analysis plan annually or as needed
  2. +
  3. Clearly define the analysis scope, method, schedule, and responsible persons
  4. +
  5. Send cooperation requests to each department head via official document
  6. +
  7. Secure necessary data and information sources in advance for analysis
  8. +
+ +

7.1.2 Considerations

+
    +
  • Changes in business environment
  • +
  • Introduction of new laws and regulations
  • +
  • Changes in organizational structure and strategy
  • +
  • Validity of previous analysis results
  • +
+
+ +
+

7.2 Internal and External Issues Identification

+

7.2.1 External Issues Analysis

+
    +
  1. Legal Environment +
      +
    • Changes in Occupational Safety and Health Act and related laws
    • +
    • Environmental regulatory trends
    • +
    • Changes in international standards and specifications
    • +
    +
  2. +
  3. Economic Environment +
      +
    • Market economic conditions and prospects
    • +
    • Industry business trends
    • +
    • Competitor status
    • +
    +
  4. +
  5. Technological Environment +
      +
    • Safety and health technology development trends
    • +
    • Emergence of new risk factors
    • +
    • Digital technology application possibilities
    • +
    +
  6. +
  7. Social Environment +
      +
    • Changes in social safety awareness
    • +
    • Demands for worker rights protection
    • +
    • Local community concerns
    • +
    +
  8. +
+ +

7.2.2 Internal Issues Analysis

+
    +
  1. Organizational Structure +
      +
    • Organizational chart and reporting system
    • +
    • Role and responsibility distribution
    • +
    • Decision-making process
    • +
    +
  2. +
  3. Human Resources +
      +
    • Personnel status and capabilities
    • +
    • Education and training level
    • +
    • Worker participation level
    • +
    +
  4. +
  5. Physical Resources +
      +
    • Facilities and equipment status
    • +
    • Safety and health facility level
    • +
    • Technical capabilities
    • +
    +
  6. +
  7. Organizational Culture +
      +
    • Safety and health culture level
    • +
    • Communication system
    • +
    • Learning and improvement willingness
    • +
    +
  8. +
+
+ +
+

7.3 Stakeholder Identification and Analysis

+

7.3.1 Stakeholder Identification

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryStakeholderKey Concerns
InternalWorkersSafe working environment, health protection, participation opportunities
ManagementLegal compliance, cost reduction, productivity improvement
ShareholdersCorporate image, financial performance, sustainability
Labor UnionWorker rights, improvement of safety and health conditions
ExternalCustomersProduct safety, corporate reliability
Suppliers/ContractorsSafe working conditions, contract fulfillment
Government/Regulatory AgenciesLegal compliance, accident prevention
Local CommunityEnvironmental impact, social responsibility
Insurance CompaniesRisk management, accident rate reduction
+ +

7.3.2 Stakeholder Requirements Analysis

+
    +
  1. Investigate specific requirements for each stakeholder
  2. +
  3. Distinguish between legal requirements and voluntary requirements
  4. +
  5. Evaluate priority and importance of requirements
  6. +
  7. Establish coordination measures for conflicting requirements
  8. +
  9. Establish a system to monitor changes in requirements
  10. +
+
+ +
+

7.4 Setting HSE Management System Scope

+

7.4.1 Scope Determination Criteria

+
    +
  • Activities under the organization's control or influence
  • +
  • Activities that can affect HSE performance
  • +
  • Areas where legal requirements apply
  • +
  • Areas where stakeholder expectations are reflected
  • +
+ +

7.4.2 Scope Documentation

+
    +
  1. Specify physical locations and facilities
  2. +
  3. Describe included activities, products, and services
  4. +
  5. Define the organization's authority and control scope
  6. +
  7. Specify exclusions and their rationale
  8. +
  9. Ensure availability of the scope
  10. +
+
+ +
+

7.5 Regular Review and Update

+

7.5.1 Review Cycle

+
    +
  • Regular review: At least once a year
  • +
  • Ad-hoc review: When significant changes occur
  • +
  • Review together during management review
  • +
+ +

7.5.2 Update Procedure

+
    +
  1. Identify change factors and analyze impact
  2. +
  3. Consult with related departments
  4. +
  5. Document update contents
  6. +
  7. Approve and share
  8. +
  9. Update related linked documents
  10. +
+
+
+ + +
+
+

8. RECORDS MANAGEMENT

+
+ +

8.1 Records to be Maintained

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Record NamePrepared byRetention PeriodStorage Location
Organizational Context Analysis ReportHSE Management Representative3 yearsHSE Management Department
Stakeholder RegisterHSE Personnel3 yearsHSE Management Department
HSE Management System Scope DocumentHSE Management RepresentativePermanentHSE Management Department
Review and Update RecordsHSE Personnel3 yearsHSE Management Department
+ +

8.2 Records Management Requirements

+
    +
  • All records must be legible and identifiable
  • +
  • Records must be easily retrievable, stored, and protected
  • +
  • Appropriate disposal when retention period expires
  • +
  • Backup and security measures for electronic documents
  • +
+
+ + +
+
+

9. APPENDIX FORMS

+
+ +
    +
  • Appendix 1: Organizational Context Analysis Checklist
  • +
  • Appendix 2: Stakeholder Registration Form
  • +
  • Appendix 3: HSE Management System Scope Form
  • +
  • Appendix 4: Review and Update Record Form
  • +
+
+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-510.html b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-510.html new file mode 100644 index 0000000..808a9f1 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-510.html @@ -0,0 +1,1529 @@ + + + + + + TK-HSE-P-510 리더십 및 정책 수립 절차 + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-510

+

리더십 및 정책 수립 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목리더십 및 정책 수립 절차
문서 번호TK-HSE-P-510
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 7
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+
+

1. 목적

+
+

본 절차의 목적은 다음과 같습니다:

+
    +
  • 최고경영자의 HSE 관리시스템에 대한 리더십과 의지 실증
  • +
  • HSE 정책의 체계적 수립, 실행, 유지 및 의사소통
  • +
  • 조직 내 HSE 역할, 책임 및 권한의 명확한 정의
  • +
  • 근로자의 협의와 참여를 위한 체계적 프레임워크 구축
  • +
  • ISO 45001:2018 표준 5조 요구사항의 효과적 이행
  • +
+
+ + +
+
+

2. 적용 범위

+
+

본 절차는 테크니컬코리아의 다음 영역에 적용됩니다:

+
    +
  • 최고경영자의 리더십 활동
  • +
  • HSE 정책 수립, 승인, 실행 및 유지 관리
  • +
  • 조직 내 HSE 관련 역할과 책임 배정
  • +
  • 근로자 협의 및 참여 프로세스
  • +
  • HSE 관리시스템 적용 범위 내 모든 활동
  • +
+
+ + +
+
+

3. 인용 표준 및 관련 문서

+
+

3.1 인용 표준

+
    +
  • ISO 45001:2018 - 직장 보건안전 관리시스템 - 요구사항 및 사용 지침
  • +
  • 산업안전보건법 및 관련 법령
  • +
  • 근로자참여 및 협력증진에 관한 법률
  • +
+ +

3.2 관련 문서

+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-410 - 조직 상황 이해 및 HSE 관리시스템 운영 절차
  • +
  • TK-HSE-P-520 - 조직 편성 및 직무 배정 절차
  • +
  • TK-HSE-P-730 - 인식 및 의사소통 절차
  • +
+
+ + +
+
+

4. 용어와 정의

+
+ +
+

4.1 최고경영자 (Top management)

+

최고 수준에서 조직을 지휘하고 통제하는 개인 또는 집단

+ +

4.2 정책 (Policy)

+

최고경영자가 공식적으로 표현한 조직의 의도와 방향

+ +

4.3 협의 (Consultation)

+

결정을 내리기 전에 견해를 구하는 것

+ +

4.4 참여 (Participation)

+

의사결정 과정에 관여하는 것

+ +

4.5 리더십 (Leadership)

+

목표를 달성하기 위해 다른 사람들에게 영향을 미치고 동기를 부여하는 능력

+
+
+ + +
+
+

5. 역할과 책임

+
+ + + + + + + + + + + + + + + + + + + + + + +
역할책임사항
최고경영자 + • HSE 관리시스템에 대한 리더십과 의지 실증
+ • HSE 정책 승인 및 대외 의사소통
+ • 조직 내 HSE 역할과 책임 최종 승인
+ • 근로자 협의 및 참여 프로세스 승인
+ • HSE 관리시스템 효과성 보장
+ • 필요 자원 제공 및 지원 +
HSE 관리책임자 + • HSE 정책 초안 작성 및 개정
+ • 조직 내 HSE 역할과 책임 체계 구축
+ • 근로자 협의 및 참여 프로그램 운영
+ • HSE 정책 교육 및 전파
+ • 정책 이행 상황 모니터링 +
각 부서장 + • 부서 내 HSE 정책 전파 및 실행
+ • 부서원의 HSE 역할과 책임 명확화
+ • 근로자 의견 수렴 및 상급자 보고
+ • 부서 HSE 성과 관리
+ • HSE 개선 활동 참여 +
근로자 + • HSE 정책 이해 및 준수
+ • 배정된 HSE 역할과 책임 수행
+ • HSE 협의 및 참여 활동 적극 참여
+ • HSE 개선 의견 제시
+ • 동료 근로자의 HSE 활동 지원 +
+
+ + +
+
+

6. 프로세스 흐름도

+
+ +
+
HSE 정책 수립 필요성 검토
+
+
정책 초안 작성
+
+
근로자 협의 및 의견 수렴
+
+
정책 검토 및 수정
+
+
최고경영자 승인
+
+
정책 공표 및 교육
+
+
역할과 책임 배정
+
+
이행 모니터링 및 검토
+
+
+ + +
+
+

7. HSE 정책

+
+ +
+
테크니컬코리아 HSE 정책
+ +

우리 테크니컬코리아는 모든 임직원과 이해관계자의 건강과 안전을 최우선 가치로 여기며, 환경보호를 통한 지속가능한 경영을 추구합니다.

+ +
+

우리의 약속 (Our Commitments)

+
    +
  1. 안전하고 건강한 작업환경 제공 +
      +
    • 무재해 사업장 구현을 위한 지속적 노력
    • +
    • 근로자의 신체적, 정신적 건강 보호
    • +
    • 안전한 작업 조건과 환경 조성
    • +
    +
  2. + +
  3. 법적 요구사항 및 기타 요구사항 준수 +
      +
    • 산업안전보건법 등 관련 법령 완전 준수
    • +
    • 국제 표준 및 모범 사례 적극 적용
    • +
    • 고객 및 이해관계자 요구사항 충족
    • +
    +
  4. + +
  5. 유해요인 제거 및 HSE 위험 감소 +
      +
    • 체계적인 위험 평가 및 관리
    • +
    • 사전 예방적 안전관리 시스템 운영
    • +
    • 최신 안전기술 도입 및 적용
    • +
    +
  6. + +
  7. 지속적 개선 +
      +
    • HSE 성과의 지속적 향상
    • +
    • 혁신적 개선 아이디어 발굴 및 적용
    • +
    • 학습하는 조직문화 구축
    • +
    +
  8. + +
  9. 근로자 협의 및 참여 +
      +
    • 모든 HSE 의사결정에 근로자 참여 보장
    • +
    • 열린 의사소통 문화 조성
    • +
    • 근로자 의견의 적극적 수렴 및 반영
    • +
    +
  10. + +
  11. 목표 설정 및 성과 관리 +
      +
    • 명확하고 측정 가능한 HSE 목표 설정
    • +
    • 정기적 성과 검토 및 평가
    • +
    • 목표 달성을 위한 체계적 실행
    • +
    +
  12. +
+
+ +

모든 임직원은 이 정책을 이해하고 실천하여 안전하고 건강한 일터를 만드는데 적극 참여해야 합니다.

+ +
+

2025년 1월 3일

+

테크니컬코리아 대표이사

+

________________

+

[서명]

+
+
+
+ + +
+
+

8. 세부 절차

+
+ +
+

8.1 HSE 정책 수립 절차

+

8.1.1 정책 수립 필요성 검토

+
    +
  1. 정기 검토: 매년 1회 정책의 적절성 검토
  2. +
  3. 임시 검토: 다음 상황 발생 시 즉시 검토 +
      +
    • 관련 법령의 개정
    • +
    • 조직 구조나 사업 영역의 변경
    • +
    • 중대한 사고나 사건 발생
    • +
    • 이해관계자의 요구사항 변화
    • +
    +
  4. +
  5. 검토 결과 문서화: 검토 내용과 결론을 기록
  6. +
+ +

8.1.2 정책 초안 작성

+
    +
  1. HSE 관리책임자가 초안 작성 주관
  2. +
  3. 다음 요소를 필수적으로 포함: +
      +
    • 안전하고 건강한 작업조건 제공 의지
    • +
    • HSE 목표 설정을 위한 프레임워크
    • +
    • 법적 요구사항 및 기타 요구사항 준수 의지
    • +
    • 유해요인 제거 및 HSE 위험 감소 의지
    • +
    • 지속적 개선 의지
    • +
    • 근로자 협의 및 참여 의지
    • +
    +
  4. +
  5. 조직의 특성과 사업 영역을 반영
  6. +
  7. 이해하기 쉽고 명확한 언어로 작성
  8. +
+ +

8.1.3 근로자 협의 및 의견 수렴

+
    +
  1. 정책 초안을 전 근로자에게 공개
  2. +
  3. 다양한 채널을 통한 의견 수렴: +
      +
    • 부서별 설명회 개최
    • +
    • 서면 의견서 접수
    • +
    • 온라인 의견 제출 시스템 활용
    • +
    • 근로자 대표와 개별 면담
    • +
    +
  4. +
  5. 수렴 기간: 최소 2주간
  6. +
  7. 의견 검토 및 반영 여부 결정
  8. +
+
+ +
+

8.2 조직 내 역할과 책임 체계

+

8.2.1 HSE 조직도 작성

+
    +
  1. 최고경영자를 정점으로 하는 HSE 조직 체계 구성
  2. +
  3. 각 계층별 역할과 책임 명확히 정의
  4. +
  5. 보고 체계와 의사소통 경로 명시
  6. +
  7. 의사결정 권한과 범위 규정
  8. +
+ +

8.2.2 역할과 책임 문서 작성

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
직급/역할주요 HSE 책임권한
최고경영자• HSE 관리시스템 총괄
• 정책 승인 및 자원 제공
• 리더십 실증
• 최종 의사결정
• 예산 승인
• 조직 변경
HSE 관리책임자• HSE 시스템 운영
• 법규 준수 관리
• 성과 모니터링
• 시스템 개선
• 교육 시행
• 점검 및 감사
부서장• 부서 HSE 관리
• 근로자 교육
• 사고 보고
• 부서 내 결정
• 시정조치
• 자원 요청
안전관리자• 기술적 지원
• 위험 평가
• 안전 점검
• 기술 지도
• 작업 중지
• 개선 권고
근로자• 안전 수칙 준수
• 위험 신고
• 교육 참여
• 작업 거부권
• 의견 제시
• 참여 권리
+
+ +
+

8.3 근로자 협의 및 참여 체계

+

8.3.1 협의 및 참여 체계 구축

+
    +
  1. HSE 위원회 구성 +
      +
    • 사용자 측 위원: 3명 (경영진, HSE 관리책임자 등)
    • +
    • 근로자 측 위원: 3명 (근로자 대표, 현장 대표 등)
    • +
    • 분기별 정기 회의 개최
    • +
    • 임시 회의: 필요시 수시 개최
    • +
    +
  2. + +
  3. 부서별 HSE 담당자 지정 +
      +
    • 각 부서에서 HSE 담당자 1명 지정
    • +
    • 월 1회 HSE 담당자 회의 개최
    • +
    • 부서 내 HSE 이슈 수집 및 전달
    • +
    +
  4. + +
  5. 의견 수렴 채널 운영 +
      +
    • HSE 제안함 설치 및 운영
    • +
    • 온라인 의견 제출 시스템
    • +
    • 익명 신고 시스템 운영
    • +
    • 정기적 간담회 개최
    • +
    +
  6. +
+ +

8.3.2 협의 및 참여 영역

+
    +
  • HSE 정책 수립 및 개정
  • +
  • HSE 목표 설정 및 계획 수립
  • +
  • 위험 평가 및 관리 방안
  • +
  • 안전보건 교육 프로그램
  • +
  • 사고 조사 및 재발 방지 대책
  • +
  • 작업 환경 개선 사항
  • +
  • 개인보호구 선정 및 지급
  • +
  • HSE 성과 평가 및 개선
  • +
+
+
+ + +
+
+

9. 리더십 실증 활동

+
+ +
+

9.1 최고경영자 리더십 활동

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
활동 영역구체적 활동실행 주기
정책 의사소통• 신년 HSE 메시지 발표
• 주요 회의에서 HSE 중요성 강조
• HSE 정책 서명 및 게시
연 1회 이상
월 1회
정책 수립 시
현장 방문• 정기적 현장 안전 순회
• 근로자와 직접 대화
• 안전 문제 즉석 해결
월 2회 이상
분기 1회
즉시
자원 제공• HSE 예산 승인
• 안전시설 투자 결정
• 교육 프로그램 지원
연간 예산
필요시
지속적
성과 검토• 월간 HSE 성과 보고 청취
• 경영 검토 회의 주관
• 개선 지시 및 확인
월 1회
분기 1회
수시
+
+ +
+

9.2 중간 관리자 리더십 활동

+
    +
  • 일일 안전 점검: 작업 시작 전 안전 상태 확인
  • +
  • 주간 안전 회의: 부서별 안전 이슈 논의
  • +
  • 즉석 교육: 위험 상황 발견 시 즉시 교육 실시
  • +
  • 모범 행동: 안전 수칙 준수의 모범 사례 제시
  • +
  • 격려와 인정: 우수 안전 활동에 대한 칭찬과 보상
  • +
+
+
+ + +
+
+

10. 성과 모니터링 및 검토

+
+ +
+

10.1 정책 이행 모니터링

+

10.1.1 모니터링 지표

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
영역지표측정 방법목표
정책 인식도정책 이해도 (%)설문조사90% 이상
근로자 참여HSE 위원회 참석률 (%)출석 체크95% 이상
리더십 활동현장 방문 횟수방문 기록월 2회 이상
의사소통의견 제출 건수접수 현황월 5건 이상
+ +

10.1.2 검토 및 개선

+
    +
  1. 월간 검토: HSE 관리책임자가 지표 현황 분석
  2. +
  3. 분기 검토: HSE 위원회에서 성과 평가
  4. +
  5. 연간 검토: 경영 검토 시 종합 평가
  6. +
  7. 개선 조치: 미달 지표에 대한 구체적 개선 계획 수립
  8. +
+
+
+ + +
+
+

11. 기록 관리

+
+ +

11.1 작성 기록

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기록명작성자보관 기간보관 장소
HSE 정책서최고경영자영구HSE 관리부서
역할과 책임 매트릭스HSE 관리책임자3년HSE 관리부서
HSE 위원회 회의록HSE 담당자3년HSE 관리부서
리더십 활동 기록각 부서장3년각 부서
근로자 의견 수렴 기록HSE 담당자3년HSE 관리부서
정책 교육 기록교육 담당자3년교육 담당부서
+
+ + +
+
+

12. 첨부 서식

+
+ +
    +
  • 첨부 1: HSE 정책 승인 요청서
  • +
  • 첨부 2: 역할과 책임 매트릭스 양식
  • +
  • 첨부 3: HSE 위원회 회의록 양식
  • +
  • 첨부 4: 근로자 의견 제출서
  • +
  • 첨부 5: 리더십 활동 체크리스트
  • +
  • 첨부 6: 정책 이행 모니터링 표
  • +
+
+
+ + +
+ +
+

TK-HSE-P-510

+

Leadership and Policy Establishment Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleLeadership and Policy Establishment Procedure
Document NumberTK-HSE-P-510
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 7
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+
+

1. Purpose

+
+

The purpose of this procedure is as follows:

+
    +
  • Demonstrate top management's leadership and commitment to the HSE management system
  • +
  • Systematic establishment, implementation, maintenance, and communication of HSE policy
  • +
  • Clear definition of HSE roles, responsibilities, and authorities within the organization
  • +
  • Establish a systematic framework for worker consultation and participation
  • +
  • Effective implementation of ISO 45001:2018 standard clause 5 requirements
  • +
+
+ + +
+
+

2. Scope

+
+

This procedure applies to the following areas of Technicalkorea:

+
    +
  • Top management leadership activities
  • +
  • HSE policy establishment, approval, implementation, and maintenance
  • +
  • Assignment of HSE-related roles and responsibilities within the organization
  • +
  • Worker consultation and participation processes
  • +
  • All activities within the scope of the HSE management system
  • +
+
+ + +
+
+

3. Referenced Standards and Related Documents

+
+

3.1 Referenced Standards

+
    +
  • ISO 45001:2018 - Occupational health and safety management systems - Requirements with guidance for use
  • +
  • Occupational Safety and Health Act and related regulations
  • +
  • Act on the Promotion of Worker Participation and Cooperation
  • +
+ +

3.2 Related Documents

+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-410 - Understanding Organizational Context and HSE Management System Operation Procedure
  • +
  • TK-HSE-P-520 - Organizational Structure and Job Assignment Procedure
  • +
  • TK-HSE-P-730 - Awareness and Communication Procedure
  • +
+
+ + +
+
+

4. Terms and Definitions

+
+ +
+

4.1 Top management

+

Person or group of people who directs and controls an organization at the highest level

+ +

4.2 Policy

+

Intentions and direction of an organization as formally expressed by its top management

+ +

4.3 Consultation

+

Seeking views before making a decision

+ +

4.4 Participation

+

Involvement in decision-making

+ +

4.5 Leadership

+

Ability to influence and motivate others to achieve objectives

+
+
+ + +
+
+

5. Roles and Responsibilities

+
+ + + + + + + + + + + + + + + + + + + + + + +
RoleResponsibilities
Top Management + • Demonstrate leadership and commitment to the HSE management system
+ • Approve HSE policy and communicate externally
+ • Final approval of HSE roles and responsibilities within the organization
+ • Approve worker consultation and participation processes
+ • Ensure effectiveness of the HSE management system
+ • Provide necessary resources and support +
HSE Manager + • Draft and revise HSE policy
+ • Establish HSE roles and responsibility system within the organization
+ • Operate worker consultation and participation programs
+ • HSE policy training and dissemination
+ • Monitor policy implementation status +
Department Heads + • Disseminate and implement HSE policy within departments
+ • Clarify HSE roles and responsibilities of department members
+ • Collect worker opinions and report to superiors
+ • Manage department HSE performance
+ • Participate in HSE improvement activities +
Workers + • Understand and comply with HSE policy
+ • Perform assigned HSE roles and responsibilities
+ • Actively participate in HSE consultation and participation activities
+ • Submit HSE improvement suggestions
+ • Support fellow workers' HSE activities +
+
+ + +
+
+

6. Process Flow Chart

+
+ +
+
Review Need for HSE Policy Establishment
+
+
Draft Policy
+
+
Worker Consultation and Opinion Collection
+
+
Policy Review and Modification
+
+
Top Management Approval
+
+
Policy Announcement and Training
+
+
Assign Roles and Responsibilities
+
+
Implementation Monitoring and Review
+
+
+ + +
+
+

7. HSE Policy

+
+ +
+
Technicalkorea HSE Policy
+ +

We, Technicalkorea, regard the health and safety of all employees and stakeholders as our highest priority value and pursue sustainable management through environmental protection.

+ +
+

Our Commitments

+
    +
  1. Providing Safe and Healthy Work Environment +
      +
    • Continuous efforts to achieve zero-accident workplace
    • +
    • Protection of workers' physical and mental health
    • +
    • Creation of safe working conditions and environment
    • +
    +
  2. + +
  3. Compliance with Legal Requirements and Other Requirements +
      +
    • Full compliance with Occupational Safety and Health Act and related laws
    • +
    • Active application of international standards and best practices
    • +
    • Meeting customer and stakeholder requirements
    • +
    +
  4. + +
  5. Elimination of Hazards and Reduction of HSE Risks +
      +
    • Systematic risk assessment and management
    • +
    • Operation of proactive safety management system
    • +
    • Introduction and application of latest safety technologies
    • +
    +
  6. + +
  7. Continual Improvement +
      +
    • Continuous improvement of HSE performance
    • +
    • Discovery and application of innovative improvement ideas
    • +
    • Building a learning organizational culture
    • +
    +
  8. + +
  9. Worker Consultation and Participation +
      +
    • Ensuring worker participation in all HSE decision-making
    • +
    • Creating an open communication culture
    • +
    • Active collection and reflection of worker opinions
    • +
    +
  10. + +
  11. Goal Setting and Performance Management +
      +
    • Setting clear and measurable HSE objectives
    • +
    • Regular performance review and evaluation
    • +
    • Systematic implementation to achieve objectives
    • +
    +
  12. +
+
+ +

All employees must understand and practice this policy to actively participate in creating a safe and healthy workplace.

+ +
+

January 3, 2025

+

CEO, Technicalkorea

+

________________

+

[Signature]

+
+
+
+ + +
+
+

8. Detailed Procedures

+
+ +
+

8.1 HSE Policy Establishment Procedure

+

8.1.1 Review of Policy Establishment Need

+
    +
  1. Regular Review: Review policy adequacy once a year
  2. +
  3. Ad-hoc Review: Immediate review when the following situations occur: +
      +
    • Amendment of related laws and regulations
    • +
    • Changes in organizational structure or business areas
    • +
    • Occurrence of major accidents or incidents
    • +
    • Changes in stakeholder requirements
    • +
    +
  4. +
  5. Document Review Results: Record review contents and conclusions
  6. +
+ +

8.1.2 Policy Draft Preparation

+
    +
  1. HSE Manager leads draft preparation
  2. +
  3. Must include the following elements: +
      +
    • Commitment to provide safe and healthy working conditions
    • +
    • Framework for setting HSE objectives
    • +
    • Commitment to comply with legal requirements and other requirements
    • +
    • Commitment to eliminate hazards and reduce HSE risks
    • +
    • Commitment to continual improvement
    • +
    • Commitment to worker consultation and participation
    • +
    +
  4. +
  5. Reflect organizational characteristics and business areas
  6. +
  7. Write in clear and understandable language
  8. +
+ +

8.1.3 Worker Consultation and Opinion Collection

+
    +
  1. Disclose policy draft to all workers
  2. +
  3. Collect opinions through various channels: +
      +
    • Hold departmental briefings
    • +
    • Receive written opinion submissions
    • +
    • Utilize online opinion submission system
    • +
    • Individual interviews with worker representatives
    • +
    +
  4. +
  5. Collection period: Minimum 2 weeks
  6. +
  7. Review opinions and decide on reflection
  8. +
+
+ +
+

8.2 Organizational Roles and Responsibility System

+

8.2.1 HSE Organization Chart Preparation

+
    +
  1. Establish HSE organizational system with top management at the apex
  2. +
  3. Clearly define roles and responsibilities at each level
  4. +
  5. Specify reporting system and communication channels
  6. +
  7. Define decision-making authority and scope
  8. +
+ +

8.2.2 Roles and Responsibility Document Preparation

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Position/RoleMain HSE ResponsibilitiesAuthority
Top Management• Overall HSE management system
• Policy approval and resource provision
• Leadership demonstration
• Final decision-making
• Budget approval
• Organizational changes
HSE Manager• HSE system operation
• Legal compliance management
• Performance monitoring
• System improvement
• Training implementation
• Inspection and audit
Department Head• Department HSE management
• Worker training
• Accident reporting
• Departmental decisions
• Corrective actions
• Resource requests
Safety Manager• Technical support
• Risk assessment
• Safety inspection
• Technical guidance
• Work stoppage
• Improvement recommendations
Worker• Safety rule compliance
• Risk reporting
• Training participation
• Right to refuse work
• Opinion submission
• Participation rights
+
+ +
+

8.3 Worker Consultation and Participation System

+

8.3.1 Consultation and Participation System Establishment

+
    +
  1. HSE Committee Formation +
      +
    • Employer representatives: 3 members (management, HSE Manager, etc.)
    • +
    • Worker representatives: 3 members (worker representatives, field representatives, etc.)
    • +
    • Hold quarterly regular meetings
    • +
    • Ad-hoc meetings: Hold as needed
    • +
    +
  2. + +
  3. Departmental HSE Representative Designation +
      +
    • Designate 1 HSE representative from each department
    • +
    • Hold monthly HSE representative meetings
    • +
    • Collect and communicate HSE issues within departments
    • +
    +
  4. + +
  5. Opinion Collection Channel Operation +
      +
    • Install and operate HSE suggestion boxes
    • +
    • Online opinion submission system
    • +
    • Anonymous reporting system operation
    • +
    • Regular round-table meetings
    • +
    +
  6. +
+ +

8.3.2 Consultation and Participation Areas

+
    +
  • HSE policy establishment and revision
  • +
  • HSE objective setting and planning
  • +
  • Risk assessment and management measures
  • +
  • Occupational health and safety training programs
  • +
  • Accident investigation and recurrence prevention measures
  • +
  • Work environment improvement matters
  • +
  • Personal protective equipment selection and distribution
  • +
  • HSE performance evaluation and improvement
  • +
+
+
+ + +
+
+

9. Leadership Demonstration Activities

+
+ +
+

9.1 Top Management Leadership Activities

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Activity AreaSpecific ActivitiesImplementation Frequency
Policy Communication• Announce New Year HSE message
• Emphasize HSE importance in major meetings
• Sign and post HSE policy
Once a year or more
Monthly
When policy is established
Field Visits• Regular field safety rounds
• Direct dialogue with workers
• Immediate resolution of safety issues
Twice a month or more
Quarterly
Immediately
Resource Provision• HSE budget approval
• Safety facility investment decisions
• Training program support
Annual budget
As needed
Continuously
Performance Review• Listen to monthly HSE performance reports
• Chair management review meetings
• Issue and confirm improvement directives
Monthly
Quarterly
As needed
+
+ +
+

9.2 Middle Management Leadership Activities

+
    +
  • Daily Safety Inspection: Check safety conditions before work starts
  • +
  • Weekly Safety Meetings: Discuss departmental safety issues
  • +
  • On-the-spot Training: Immediate training when hazardous situations are discovered
  • +
  • Model Behavior: Present best practice examples of safety rule compliance
  • +
  • Encouragement and Recognition: Praise and reward excellent safety activities
  • +
+
+
+ + +
+
+

10. Performance Monitoring and Review

+
+ +
+

10.1 Policy Implementation Monitoring

+

10.1.1 Monitoring Indicators

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AreaIndicatorMeasurement MethodTarget
Policy AwarenessPolicy Understanding (%)Survey90% or higher
Worker ParticipationHSE Committee Attendance Rate (%)Attendance Check95% or higher
Leadership ActivitiesNumber of Field VisitsVisit RecordsTwice a month or more
CommunicationNumber of Opinion SubmissionsReception Status5 or more per month
+ +

10.1.2 Review and Improvement

+
    +
  1. Monthly Review: HSE Manager analyzes indicator status
  2. +
  3. Quarterly Review: HSE Committee evaluates performance
  4. +
  5. Annual Review: Comprehensive evaluation during management review
  6. +
  7. Improvement Actions: Establish specific improvement plans for underperforming indicators
  8. +
+
+
+ + +
+
+

11. Records Management

+
+ +

11.1 Records to be Created

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Record NamePrepared byRetention PeriodStorage Location
HSE Policy DocumentTop ManagementPermanentHSE Management Department
Roles and Responsibility MatrixHSE Manager3 yearsHSE Management Department
HSE Committee Meeting MinutesHSE Officer3 yearsHSE Management Department
Leadership Activity RecordsEach Department Head3 yearsEach Department
Worker Opinion Collection RecordsHSE Officer3 yearsHSE Management Department
Policy Training RecordsTraining Officer3 yearsTraining Department
+
+ + +
+
+

12. Attached Forms

+
+ +
    +
  • Attachment 1: HSE Policy Approval Request Form
  • +
  • Attachment 2: Roles and Responsibility Matrix Form
  • +
  • Attachment 3: HSE Committee Meeting Minutes Form
  • +
  • Attachment 4: Worker Opinion Submission Form
  • +
  • Attachment 5: Leadership Activity Checklist
  • +
  • Attachment 6: Policy Implementation Monitoring Table
  • +
+
+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-520.html b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-520.html new file mode 100644 index 0000000..ef7cc5f --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-520.html @@ -0,0 +1,1826 @@ + + + + + + TK-HSE-P-520 조직 편성 및 직무 배정 절차 + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-520

+

조직 편성 및 직무 배정 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목조직 편성 및 직무 배정 절차
문서 번호TK-HSE-P-520
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 8
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+
+

1. 목적

+
+

본 절차의 목적은 다음과 같습니다:

+
    +
  • HSE 관리시스템 운영을 위한 효과적인 조직 구조 설계
  • +
  • 각 역할과 책임의 명확한 정의 및 배정
  • +
  • 권한과 의사소통 체계의 체계적 구축
  • +
  • HSE 성과 향상을 위한 적절한 인력 배치
  • +
  • 조직 변화에 따른 유연한 조직 운영 체계 확립
  • +
+
+ + +
+
+

2. 적용 범위

+
+

본 절차는 테크니컬코리아의 다음 영역에 적용됩니다:

+
    +
  • HSE 관리시스템 관련 모든 조직 및 직책
  • +
  • 본사, 공장, 지사 등 모든 사업장
  • +
  • 정규직, 계약직, 파견직 등 모든 근로자
  • +
  • HSE 업무에 관련된 계약업체 및 협력업체
  • +
  • 조직 개편 및 인사 발령 업무
  • +
+
+ + +
+
+

3. 인용 표준 및 관련 문서

+
+

3.1 인용 표준

+
    +
  • ISO 45001:2018 - 직장 보건안전 관리시스템 - 요구사항 및 사용 지침
  • +
  • 산업안전보건법 및 시행령, 시행규칙
  • +
  • 안전보건관리책임자 등의 선임 및 직무에 관한 고시
  • +
+ +

3.2 관련 문서

+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-510 - 리더십 및 정책 수립 절차
  • +
  • TK-HSE-P-710 - 자원 관리 절차
  • +
  • TK-HSE-P-720 - 교육 및 훈련 관리 절차
  • +
+
+ + +
+
+

4. 용어와 정의

+
+ +
+

4.1 조직 (Organization)

+

목표를 달성하기 위해 책임, 권한 및 상호관계가 배치된 개인 또는 집단

+ +

4.2 역할 (Role)

+

특정 상황에서 개인이나 그룹에게 기대되는 행동이나 업무의 집합

+ +

4.3 책임 (Responsibility)

+

할당된 업무나 의무를 수행해야 하는 의무

+ +

4.4 권한 (Authority)

+

결정을 내리고 자원을 사용할 수 있는 권리와 권력

+ +

4.5 역량 (Competence)

+

의도된 결과를 달성하기 위해 지식과 기술을 적용하는 능력

+
+
+ + +
+
+

5. HSE 조직 구조

+
+ +
+
+
최고경영자 (CEO)
+
+
+
+
HSE 관리책임자
+
+
├──────┼──────┼──────┤
+
+
안전관리자
+
보건관리자
+
환경관리자
+
HSE 담당자
+
+
+
+
부서별 HSE 담당자
+
+
+
+
현장 작업자
+
+
+ +
+

5.1 조직 구조 설계 원칙

+
    +
  • 명확성: 역할과 책임의 명확한 구분
  • +
  • 효율성: 의사결정과 업무 수행의 효율성 추구
  • +
  • 유연성: 조직 변화에 대한 적응 능력
  • +
  • 소통성: 원활한 의사소통 체계 구축
  • +
  • 전문성: 각 분야별 전문 역량 확보
  • +
+
+
+ + +
+
+

6. 역할과 책임

+
+ +
+

6.1 최고경영자 (CEO)

+ + + + + + + + + + + + + + + + + + + + + +
책임 영역구체적 책임사항권한
전략 수립• HSE 비전 및 전략 수립
• HSE 정책 승인
• 중장기 HSE 목표 결정
• 최종 의사결정
• 예산 승인
• 조직 개편
자원 제공• HSE 예산 승인
• 인적 자원 배정
• 시설 및 장비 투자
• 예산 집행
• 인사 발령
• 투자 결정
성과 관리• HSE 성과 검토
• 경영 검토 주관
• 개선 지시
• 성과 평가
• 포상 및 징계
• 시정 명령
+
+ +
+

6.2 HSE 관리책임자

+ + + + + + + + + + + + + + + + + + + + + +
책임 영역구체적 책임사항권한
시스템 운영• HSE 관리시스템 총괄 운영
• 시스템 개선 및 발전
• 법규 준수 관리
• 시스템 변경
• 절차 승인
• 법규 해석
조직 관리• HSE 조직 운영
• 업무 분장 및 조정
• 성과 관리
• 업무 배정
• 성과 평가
• 교육 지시
대외 업무• 정부 기관 업무
• 감사 및 점검 대응
• 외부 기관 협력
• 대외 협상
• 공문 발송
• 계약 체결
+
+ +
+

6.3 안전관리자

+
+

📋 주요 업무

+
    +
  • 안전관리계획의 수립 및 시행
  • +
  • 근로자의 안전·보건교육
  • +
  • 작업환경의 점검 및 개선
  • +
  • 산업재해 원인조사 및 재발방지 대책 수립
  • +
  • 안전장치 및 보호구의 점검 및 관리
  • +
  • 기계·기구류의 안전성 검토
  • +
  • 안전보건 관리규정의 작성 및 변경
  • +
+ +

🎯 필요 자격

+
    +
  • 안전관리자 선임 자격 (산업안전보건법)
  • +
  • 관련 분야 학위 또는 경력
  • +
  • 안전관리 실무 경험 3년 이상
  • +
+
+
+ +
+

6.4 보건관리자

+
+

📋 주요 업무

+
    +
  • 작업환경의 측정 및 평가
  • +
  • 근로자의 건강진단 및 사후관리
  • +
  • 직업성질병 예방 및 관리
  • +
  • 작업환경 개선 및 보건교육
  • +
  • 유해·위험 요인의 발굴 및 개선
  • +
  • 보건 관련 통계의 유지·관리
  • +
  • 응급처치 및 구급처치
  • +
+ +

🎯 필요 자격

+
    +
  • 보건관리자 선임 자격 (산업안전보건법)
  • +
  • 간호사, 위생사 등 보건 관련 자격
  • +
  • 산업보건 실무 경험 2년 이상
  • +
+
+
+ +
+

6.5 환경관리자

+
+

📋 주요 업무

+
    +
  • 환경영향 평가 및 관리
  • +
  • 환경법규 준수 관리
  • +
  • 폐기물 관리 및 처리
  • +
  • 대기, 수질, 토양 오염 방지
  • +
  • 환경 모니터링 및 측정
  • +
  • 환경 개선 계획 수립 및 시행
  • +
  • 환경 사고 대응 및 복구
  • +
+ +

🎯 필요 자격

+
    +
  • 환경 관련 기사 이상 자격증
  • +
  • 환경공학 또는 관련 분야 학위
  • +
  • 환경관리 실무 경험 3년 이상
  • +
+
+
+ +
+

6.6 부서장

+ + + + + + + + + + + + + + + + + +
책임 영역구체적 책임사항
부서 HSE 관리• 부서 HSE 계획 수립
• 부서원 HSE 교육
• 일일 안전점검 실시
• 사고 예방 활동 주관
근로자 관리• 부서원 HSE 역할 배정
• 안전수칙 준수 지도
• HSE 성과 평가
• 위험 행동 시정
보고 및 소통• HSE 현황 상급자 보고
• 근로자 의견 수렴
• 개선사항 건의
• 사고 즉시 보고
+
+
+ + +
+
+

7. 조직 편성 절차

+
+ +
+

7.1 HSE 조직 설계

+

7.1.1 조직 설계 단계

+
    +
  1. 현황 분석 +
      +
    • 현재 조직 구조 분석
    • +
    • 업무량 및 업무 특성 파악
    • +
    • 인력 현황 및 역량 평가
    • +
    • 법적 요구사항 검토
    • +
    +
  2. + +
  3. 조직 설계 +
      +
    • 최적 조직 구조 설계
    • +
    • 역할과 책임 정의
    • +
    • 보고 체계 및 권한 설정
    • +
    • 의사소통 채널 구축
    • +
    +
  4. + +
  5. 승인 및 공표 +
      +
    • 최고경영자 승인
    • +
    • 조직도 및 업무분장 공표
    • +
    • 전 직원 교육 실시
    • +
    • 시행 및 모니터링
    • +
    +
  6. +
+ +

7.1.2 조직 설계 시 고려사항

+ + + + + + + + + + + + + + + + + + + + + +
고려 요소세부 사항
법적 요구사항• 산업안전보건법상 관리자 선임 의무
• 사업장 규모별 선임 기준
• 자격 요건 및 직무 범위
사업 특성• 업종 및 업무 위험도
• 사업장 위치 및 규모
• 작업 형태 및 근무 시간
인적 자원• 현재 인력 현황
• 필요 역량 및 자격
• 교육 및 개발 계획
예산 및 자원• 인건비 예산
• 교육 및 훈련 비용
• 시설 및 장비 투자
+
+ +
+

7.2 직무 배정 절차

+

7.2.1 직무 분석

+
    +
  1. 업무 내용 분석 +
      +
    • 주요 업무 및 세부 업무 파악
    • +
    • 업무의 중요도 및 난이도 평가
    • +
    • 업무량 및 소요 시간 산정
    • +
    • 다른 업무와의 연관성 분석
    • +
    +
  2. + +
  3. 필요 역량 정의 +
      +
    • 학력, 경력, 자격증 요건
    • +
    • 필요 지식 및 기술
    • +
    • 개인적 특성 및 능력
    • +
    • 의사소통 및 리더십 역량
    • +
    +
  4. + +
  5. 성과 지표 설정 +
      +
    • 정량적 성과 지표
    • +
    • 정성적 평가 기준
    • +
    • 목표 설정 및 평가 방법
    • +
    • 피드백 및 개선 체계
    • +
    +
  6. +
+ +

7.2.2 인력 배정

+
+
직무 요구사항 검토
+
+
후보자 선정
+
+
역량 평가
+
+
배정 결정
+
+
발령 및 교육
+
+
성과 모니터링
+
+
+
+ + +
+
+

8. 역량 관리

+
+ +
+

8.1 역량 요구사항

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
직책학력/경력자격증핵심 역량
HSE 관리책임자대졸 이상, 5년 이상 경력안전관리자 또는 관련 자격리더십, 의사소통, 문제해결
안전관리자관련 학과 졸업, 3년 이상 경력안전관리자 선임 자격위험 평가, 기술 지도, 교육
보건관리자보건 관련 학과, 2년 이상 경력간호사, 위생사 등건강 관리, 상담, 응급처치
환경관리자환경공학 관련, 3년 이상 경력환경 관련 기사 이상환경 분석, 법규 해석, 개선
HSE 담당자고졸 이상, 1년 이상 경력관련 자격 우대업무 수행, 협조, 학습
+
+ +
+

8.2 역량 개발 계획

+

8.2.1 교육 훈련 체계

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육 구분대상내용주기
신입 교육신규 배정자• 조직 소개
• 역할 및 책임
• 기본 업무 교육
배정 후 1개월 내
정기 교육전체 HSE 조직• 법규 변경사항
• 새로운 기술
• 모범 사례
분기별
전문 교육관리자급• 전문 기술
• 리더십
• 의사소통
연 2회
보수 교육자격 보유자• 법정 보수교육
• 자격 갱신
• 최신 동향
법정 기준
+ +

8.2.2 역량 평가

+
    +
  • 정기 평가: 연 2회 (상/하반기)
  • +
  • 평가 방법: 서면 평가, 실무 평가, 360도 평가
  • +
  • 평가 기준: 업무 성과, 전문 지식, 협업 능력
  • +
  • 개선 계획: 평가 결과에 따른 개인별 개발 계획 수립
  • +
+
+
+ + +
+
+

9. 의사소통 체계

+
+ +
+

9.1 의사소통 채널

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
채널 유형참여자주기내용
경영진 회의CEO, HSE 관리책임자월 1회• HSE 성과 보고
• 주요 이슈 논의
• 의사결정
HSE 관리자 회의HSE 조직 전체주 1회• 업무 현황 공유
• 협조 사항
• 개선 방안
부서별 간담회부서장, HSE 담당자월 1회• 부서 HSE 현황
• 애로사항
• 지원 요청
전사 HSE 회의전체 임직원분기 1회• 정책 전파
• 성과 공유
• 우수사례
+
+ +
+

9.2 보고 체계

+

9.2.1 정기 보고

+
    +
  • 일일 보고: 현장 → 부서장 → HSE 담당자
  • +
  • 주간 보고: HSE 담당자 → HSE 관리책임자
  • +
  • 월간 보고: HSE 관리책임자 → 최고경영자
  • +
  • 분기 보고: 전사 HSE 성과 종합 보고
  • +
+ +

9.2.2 비상 보고

+
    +
  • 사고 발생 시: 즉시 보고 (30분 내)
  • +
  • 중대 위험 발견 시: 즉시 보고 (1시간 내)
  • +
  • 법규 위반 시: 즉시 보고 (당일)
  • +
  • 외부 점검 시: 사전 보고 및 결과 보고
  • +
+
+
+ + +
+
+

10. 성과 관리

+
+ +
+

10.1 성과 지표

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
지표 구분세부 지표목표측정 방법
조직 효율성업무 처리 시간기준 대비 90% 이하업무 처리 기록
의사결정 속도3일 이내결재 시스템
업무 만족도4.0/5.0 이상만족도 조사
역량 수준교육 이수율100%교육 기록
자격 보유율100%자격 대장
역량 평가 점수80점 이상평가 결과
의사소통회의 참석률95% 이상참석 기록
정보 공유 속도24시간 내시스템 로그
+
+ +
+

10.2 개선 관리

+

10.2.1 정기 검토

+
    +
  1. 월간 검토: 각 부서별 성과 분석
  2. +
  3. 분기 검토: 전체 조직 효율성 평가
  4. +
  5. 연간 검토: 조직 구조 및 운영 체계 전면 검토
  6. +
  7. 수시 검토: 중대한 문제 발생 시 즉시 검토
  8. +
+ +

10.2.2 개선 조치

+
    +
  • 업무 프로세스 개선: 비효율적 절차 간소화
  • +
  • 조직 구조 조정: 필요시 조직 개편
  • +
  • 역량 강화: 교육 및 훈련 확대
  • +
  • 시스템 개선: IT 시스템 및 도구 개선
  • +
+
+
+ + +
+
+

11. 기록 관리

+
+ +

11.1 작성 기록

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기록명작성자보관 기간보관 장소
HSE 조직도HSE 관리책임자영구HSE 관리부서
업무분장표HSE 관리책임자3년HSE 관리부서
인사발령장인사담당자영구인사부서
역량 평가서각 부서장5년각 부서
교육 기록교육담당자3년교육담당부서
회의록회의 간사3년HSE 관리부서
+
+ + +
+
+

12. 첨부 서식

+
+ +
    +
  • 첨부 1: HSE 조직도 양식
  • +
  • 첨부 2: 업무분장표 양식
  • +
  • 첨부 3: 역할 및 책임 매트릭스
  • +
  • 첨부 4: 역량 요구사항 체크리스트
  • +
  • 첨부 5: 역량 평가표
  • +
  • 첨부 6: 교육 계획서 양식
  • +
  • 첨부 7: 성과 평가표
  • +
  • 첨부 8: 의사소통 매트릭스
  • +
+
+
+ + +
+ +
+

TK-HSE-P-520

+

Organization and Job Assignment Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleOrganization and Job Assignment Procedure
Document NumberTK-HSE-P-520
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 8
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+
+

1. Purpose

+
+

The purpose of this procedure is as follows:

+
    +
  • Design effective organizational structure for HSE management system operation
  • +
  • Clear definition and assignment of roles and responsibilities
  • +
  • Systematic establishment of authority and communication systems
  • +
  • Appropriate personnel deployment for HSE performance improvement
  • +
  • Establishment of flexible organizational operation system according to organizational changes
  • +
+
+ + +
+
+

2. Scope

+
+

This procedure applies to the following areas of Technicalkorea:

+
    +
  • All organizations and positions related to HSE management system
  • +
  • All business sites including headquarters, factories, and branches
  • +
  • All workers including regular, contract, and temporary employees
  • +
  • Contractors and partners related to HSE work
  • +
  • Organizational restructuring and personnel assignment work
  • +
+
+ + +
+
+

3. Referenced Standards and Related Documents

+
+

3.1 Referenced Standards

+
    +
  • ISO 45001:2018 - Occupational health and safety management systems - Requirements with guidance for use
  • +
  • Occupational Safety and Health Act and its enforcement decree and rules
  • +
  • Notice on the appointment and duties of safety and health management supervisors
  • +
+ +

3.2 Related Documents

+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-510 - Leadership and Policy Development Procedure
  • +
  • TK-HSE-P-710 - Resource Management Procedure
  • +
  • TK-HSE-P-720 - Education and Training Management Procedure
  • +
+
+ + +
+
+

4. Terms and Definitions

+
+ +
+

4.1 Organization

+

Person or group of people that has its own functions with responsibilities, authorities and relationships to achieve its objectives

+ +

4.2 Role

+

Set of behaviors or tasks expected of a person or group in a specific situation

+ +

4.3 Responsibility

+

Obligation to perform assigned tasks or duties

+ +

4.4 Authority

+

Right and power to make decisions and use resources

+ +

4.5 Competence

+

Ability to apply knowledge and skills to achieve intended results

+
+
+ + +
+
+

5. HSE Organization Structure

+
+ +
+
+
Chief Executive Officer (CEO)
+
+
+
+
HSE Management Representative
+
+
├──────┼──────┼──────┤
+
+
Safety Manager
+
Health Manager
+
Environmental Manager
+
HSE Officer
+
+
+
+
Departmental HSE Officers
+
+
+
+
Field Workers
+
+
+ +
+

5.1 Organizational Structure Design Principles

+
    +
  • Clarity: Clear distinction of roles and responsibilities
  • +
  • Efficiency: Pursuit of efficiency in decision-making and task performance
  • +
  • Flexibility: Adaptability to organizational changes
  • +
  • Communication: Establishment of smooth communication system
  • +
  • Professionalism: Securing professional competency in each field
  • +
+
+
+ + +
+
+

6. Roles and Responsibilities

+
+ +
+

6.1 Chief Executive Officer (CEO)

+ + + + + + + + + + + + + + + + + + + + + +
Responsibility AreaSpecific ResponsibilitiesAuthority
Strategy Development• Establish HSE vision and strategy
• Approve HSE policy
• Determine medium-long term HSE objectives
• Final decision making
• Budget approval
• Organizational restructuring
Resource Provision• Approve HSE budget
• Allocate human resources
• Invest in facilities and equipment
• Budget execution
• Personnel appointment
• Investment decision
Performance Management• Review HSE performance
• Lead management review
• Direct improvements
• Performance evaluation
• Rewards and disciplinary actions
• Corrective orders
+
+ +
+

6.2 HSE Management Representative

+ + + + + + + + + + + + + + + + + + + + + +
Responsibility AreaSpecific ResponsibilitiesAuthority
System Operation• Overall operation of HSE management system
• System improvement and development
• Legal compliance management
• System modification
• Procedure approval
• Legal interpretation
Organization Management• HSE organization operation
• Work assignment and coordination
• Performance management
• Task assignment
• Performance evaluation
• Training direction
External Affairs• Government agency affairs
• Audit and inspection response
• External organization cooperation
• External negotiation
• Official document dispatch
• Contract conclusion
+
+ +
+

6.3 Safety Manager

+
+

📋 Main Duties

+
    +
  • Establishment and implementation of safety management plans
  • +
  • Safety and health education for workers
  • +
  • Inspection and improvement of work environment
  • +
  • Investigation of industrial accident causes and establishment of recurrence prevention measures
  • +
  • Inspection and management of safety devices and protective equipment
  • +
  • Safety review of machinery and equipment
  • +
  • Preparation and modification of safety and health management regulations
  • +
+ +

🎯 Required Qualifications

+
    +
  • Safety manager appointment qualification (Occupational Safety and Health Act)
  • +
  • Related field degree or experience
  • +
  • Safety management practical experience of 3 years or more
  • +
+
+
+ +
+

6.4 Health Manager

+
+

📋 Main Duties

+
    +
  • Measurement and evaluation of work environment
  • +
  • Health examination and follow-up management of workers
  • +
  • Prevention and management of occupational diseases
  • +
  • Work environment improvement and health education
  • +
  • Discovery and improvement of harmful and dangerous factors
  • +
  • Maintenance and management of health-related statistics
  • +
  • Emergency treatment and first aid
  • +
+ +

🎯 Required Qualifications

+
    +
  • Health manager appointment qualification (Occupational Safety and Health Act)
  • +
  • Health-related qualifications such as nurse, hygienist
  • +
  • Industrial health practical experience of 2 years or more
  • +
+
+
+ +
+

6.5 Environmental Manager

+
+

📋 Main Duties

+
    +
  • Environmental impact assessment and management
  • +
  • Environmental regulation compliance management
  • +
  • Waste management and treatment
  • +
  • Prevention of air, water, and soil pollution
  • +
  • Environmental monitoring and measurement
  • +
  • Establishment and implementation of environmental improvement plans
  • +
  • Environmental accident response and recovery
  • +
+ +

🎯 Required Qualifications

+
    +
  • Environmental-related engineer certification or higher
  • +
  • Environmental engineering or related field degree
  • +
  • Environmental management practical experience of 3 years or more
  • +
+
+
+ +
+

6.6 Department Manager

+ + + + + + + + + + + + + + + + + +
Responsibility AreaSpecific Responsibilities
Department HSE Management• Establish department HSE plans
• HSE education for department members
• Conduct daily safety inspections
• Lead accident prevention activities
Worker Management• Assign HSE roles to department members
• Guide compliance with safety rules
• Evaluate HSE performance
• Correct dangerous behaviors
Reporting and Communication• Report HSE status to superiors
• Collect worker opinions
• Suggest improvements
• Immediately report accidents
+
+
+ + +
+
+

7. Organization Procedures

+
+ +
+

7.1 HSE Organization Design

+

7.1.1 Organization Design Stages

+
    +
  1. Current Status Analysis +
      +
    • Analysis of current organizational structure
    • +
    • Identification of workload and work characteristics
    • +
    • Evaluation of personnel status and competency
    • +
    • Review of legal requirements
    • +
    +
  2. + +
  3. Organization Design +
      +
    • Design optimal organizational structure
    • +
    • Define roles and responsibilities
    • +
    • Set reporting system and authority
    • +
    • Establish communication channels
    • +
    +
  4. + +
  5. Approval and Announcement +
      +
    • CEO approval
    • +
    • Announcement of organization chart and job assignment
    • +
    • Training for all employees
    • +
    • Implementation and monitoring
    • +
    +
  6. +
+ +

7.1.2 Considerations in Organization Design

+ + + + + + + + + + + + + + + + + + + + + +
Consideration FactorDetails
Legal Requirements• Mandatory appointment of managers under Occupational Safety and Health Act
• Appointment criteria by workplace size
• Qualification requirements and job scope
Business Characteristics• Industry type and work risk level
• Workplace location and size
• Work type and working hours
Human Resources• Current personnel status
• Required competency and qualifications
• Education and development plans
Budget and Resources• Personnel cost budget
• Education and training costs
• Facility and equipment investment
+
+ +
+

7.2 Job Assignment Procedure

+

7.2.1 Job Analysis

+
    +
  1. Work Content Analysis +
      +
    • Identification of main tasks and detailed tasks
    • +
    • Evaluation of task importance and difficulty
    • +
    • Calculation of workload and required time
    • +
    • Analysis of relationships with other tasks
    • +
    +
  2. + +
  3. Required Competency Definition +
      +
    • Education, experience, certification requirements
    • +
    • Required knowledge and skills
    • +
    • Personal characteristics and abilities
    • +
    • Communication and leadership competency
    • +
    +
  4. + +
  5. Performance Indicator Setting +
      +
    • Quantitative performance indicators
    • +
    • Qualitative evaluation criteria
    • +
    • Goal setting and evaluation methods
    • +
    • Feedback and improvement system
    • +
    +
  6. +
+ +

7.2.2 Personnel Assignment

+
+
Review Job Requirements
+
+
Select Candidates
+
+
Competency Assessment
+
+
Assignment Decision
+
+
Appointment and Training
+
+
Performance Monitoring
+
+
+
+ + +
+
+

8. Competency Management

+
+ +
+

8.1 Competency Requirements

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PositionEducation/ExperienceCertificationCore Competency
HSE Management RepresentativeBachelor's degree or higher, 5+ years experienceSafety manager or related qualificationLeadership, communication, problem-solving
Safety ManagerRelated field graduate, 3+ years experienceSafety manager appointment qualificationRisk assessment, technical guidance, education
Health ManagerHealth-related field, 2+ years experienceNurse, hygienist, etc.Health management, counseling, first aid
Environmental ManagerEnvironmental engineering related, 3+ years experienceEnvironmental engineer or higherEnvironmental analysis, regulation interpretation, improvement
HSE OfficerHigh school graduate or higher, 1+ years experienceRelated qualification preferredTask performance, cooperation, learning
+
+ +
+

8.2 Competency Development Plan

+

8.2.1 Education and Training System

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Education TypeTargetContentFrequency
New Employee TrainingNewly assigned personnel• Organization introduction
• Roles and responsibilities
• Basic job training
Within 1 month of assignment
Regular TrainingAll HSE organization• Regulatory changes
• New technologies
• Best practices
Quarterly
Professional TrainingManagement level• Professional skills
• Leadership
• Communication
Twice a year
Refresher TrainingCertificate holders• Legal refresher training
• Qualification renewal
• Latest trends
As per legal requirements
+ +

8.2.2 Competency Assessment

+
    +
  • Regular Assessment: Twice a year (first/second half)
  • +
  • Assessment Method: Written assessment, practical assessment, 360-degree assessment
  • +
  • Assessment Criteria: Job performance, professional knowledge, collaboration ability
  • +
  • Improvement Plan: Individual development plan based on assessment results
  • +
+
+
+ + +
+
+

9. Communication System

+
+ +
+

9.1 Communication Channels

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Channel TypeParticipantsFrequencyContent
Management MeetingCEO, HSE Management RepresentativeMonthly• HSE performance reporting
• Major issue discussion
• Decision making
HSE Manager MeetingEntire HSE organizationWeekly• Work status sharing
• Cooperation matters
• Improvement measures
Departmental MeetingDepartment managers, HSE officersMonthly• Department HSE status
• Difficulties
• Support requests
Company-wide HSE MeetingAll employeesQuarterly• Policy dissemination
• Performance sharing
• Best practices
+
+ +
+

9.2 Reporting System

+

9.2.1 Regular Reporting

+
    +
  • Daily Report: Field → Department Manager → HSE Officer
  • +
  • Weekly Report: HSE Officer → HSE Management Representative
  • +
  • Monthly Report: HSE Management Representative → CEO
  • +
  • Quarterly Report: Company-wide HSE performance comprehensive report
  • +
+ +

9.2.2 Emergency Reporting

+
    +
  • Accident Occurrence: Immediate report (within 30 minutes)
  • +
  • Major Risk Discovery: Immediate report (within 1 hour)
  • +
  • Regulatory Violation: Immediate report (same day)
  • +
  • External Inspection: Advance report and result report
  • +
+
+
+ + +
+
+

10. Performance Management

+
+ +
+

10.1 Performance Indicators

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Indicator CategoryDetailed IndicatorTargetMeasurement Method
Organizational EfficiencyTask processing time90% or less of standardTask processing records
Decision-making speedWithin 3 daysApproval system
Job satisfaction4.0/5.0 or higherSatisfaction survey
Competency LevelTraining completion rate100%Training records
Qualification holding rate100%Qualification register
Competency assessment score80 points or higherAssessment results
CommunicationMeeting attendance rate95% or higherAttendance records
Information sharing speedWithin 24 hoursSystem logs
+
+ +
+

10.2 Improvement Management

+

10.2.1 Regular Review

+
    +
  1. Monthly Review: Performance analysis by each department
  2. +
  3. Quarterly Review: Overall organizational efficiency evaluation
  4. +
  5. Annual Review: Comprehensive review of organizational structure and operation system
  6. +
  7. Ad-hoc Review: Immediate review when major problems occur
  8. +
+ +

10.2.2 Improvement Measures

+
    +
  • Work Process Improvement: Streamlining inefficient procedures
  • +
  • Organizational Structure Adjustment: Organizational restructuring when necessary
  • +
  • Competency Enhancement: Expansion of education and training
  • +
  • System Improvement: IT system and tool improvement
  • +
+
+
+ + +
+
+

11. Records Management

+
+ +

11.1 Prepared Records

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Record NamePreparerRetention PeriodStorage Location
HSE Organization ChartHSE Management RepresentativePermanentHSE Management Department
Job Assignment TableHSE Management Representative3 yearsHSE Management Department
Personnel Appointment OrderHR PersonnelPermanentHR Department
Competency Assessment ReportEach Department Manager5 yearsEach Department
Training RecordsTraining Officer3 yearsTraining Department
Meeting MinutesMeeting Secretary3 yearsHSE Management Department
+
+ + +
+
+

12. Appendix Forms

+
+ +
    +
  • Appendix 1: HSE Organization Chart Form
  • +
  • Appendix 2: Job Assignment Table Form
  • +
  • Appendix 3: Role and Responsibility Matrix
  • +
  • Appendix 4: Competency Requirements Checklist
  • +
  • Appendix 5: Competency Assessment Form
  • +
  • Appendix 6: Training Plan Form
  • +
  • Appendix 7: Performance Evaluation Form
  • +
  • Appendix 8: Communication Matrix
  • +
+
+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-610.html b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-610.html new file mode 100644 index 0000000..af89870 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-610.html @@ -0,0 +1,1671 @@ + + + + + + TK-HSE-P-610 기획 및 위험 관리 절차 + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-610

+

기획 및 위험 관리 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목기획 및 위험 관리 절차
문서 번호TK-HSE-P-610
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 9
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+
+

1. 목적

+
+

본 절차의 목적은 다음과 같습니다:

+
    +
  • HSE 관리시스템의 체계적인 기획과 실행
  • +
  • 위험과 기회를 다루기 위한 효과적인 조치 수립
  • +
  • 유해요인 식별 및 HSE 위험 평가의 체계적 수행
  • +
  • 법적 요구사항 및 기타 요구사항의 체계적 관리
  • +
  • 측정 가능한 HSE 목표 설정 및 달성 계획 수립
  • +
  • ISO 45001:2018 표준 6조 요구사항의 효과적 이행
  • +
+
+ + +
+
+

2. 적용 범위

+
+

본 절차는 테크니컬코리아의 다음 영역에 적용됩니다:

+
    +
  • HSE 관리시스템 적용 범위 내 모든 활동
  • +
  • 본사, 공장, 지사 등 모든 사업장
  • +
  • 정규직, 비정규직, 계약업체 근로자
  • +
  • 제품 생산, 서비스 제공, 지원 활동
  • +
  • 일상 및 비일상 업무, 비상 상황
  • +
  • 과거, 현재, 계획된 미래 활동
  • +
+
+ + +
+
+

3. 인용 표준 및 관련 문서

+
+

3.1 인용 표준

+
    +
  • ISO 45001:2018 - 직장 보건안전 관리시스템 - 요구사항 및 사용 지침
  • +
  • ISO 31000:2018 - 리스크 관리 - 지침
  • +
  • 산업안전보건법 및 관련 법령
  • +
  • 환경정책기본법 및 관련 법령
  • +
+ +

3.2 관련 문서

+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-410 - 조직 상황 이해 및 HSE 관리시스템 운영 절차
  • +
  • TK-HSE-P-620 - 위험 평가 절차
  • +
  • TK-HSE-P-630 - HSE 법적 요구사항 관리 절차
  • +
  • TK-HSE-P-640 - HSE 목표 관리 절차
  • +
+
+ + +
+
+

4. 용어와 정의

+
+ +
+

4.1 위험 (Risk)

+

불확실성의 영향으로, 목표에 대한 긍정적 또는 부정적 편차

+ +

4.2 기회 (Opportunity)

+

HSE 성과 향상, 폐기물 감소, 사고 예방 등 긍정적 결과를 가져올 가능성

+ +

4.3 유해요인 (Hazard)

+

부상과 건강악화를 일으킬 잠재성을 가진 근원

+ +

4.4 위험 평가 (Risk Assessment)

+

위험을 식별, 분석, 평가하는 전체적인 과정

+ +

4.5 법적 요구사항 (Legal Requirements)

+

조직이 준수해야 하는 법률, 규정, 명령 등

+ +

4.6 목표 (Objective)

+

달성해야 할 결과나 성과

+
+
+ + +
+
+

5. 프로세스 흐름도

+
+ +
+
기획 프로세스 시작
+
+
위험과 기회 식별
+
+
유해요인 식별
+
+
위험 평가
+
+
법적 요구사항 파악
+
+
HSE 목표 설정
+
+
실행 계획 수립
+
+
승인 및 실행
+
+
모니터링 및 검토
+
+
+ + +
+
+

6. 위험과 기회 관리

+
+ +
+

6.1 위험과 기회 식별

+

6.1.1 식별 대상

+ + + + + + + + + + + + + + + + + + + + + +
구분식별 대상고려사항
내부 위험• 설비 고장
• 인적 오류
• 조직 변화
• 자원 부족
• 발생 가능성
• 영향 정도
• 통제 가능성
• 대응 시간
외부 위험• 자연재해
• 법규 변경
• 시장 변화
• 공급업체 문제
• 예측 가능성
• 대응 능력
• 회복 시간
• 비용 영향
기회• 기술 개선
• 비용 절감
• 효율성 향상
• 이미지 개선
• 실현 가능성
• 투자 대비 효과
• 경쟁 우위
• 지속 가능성
+ +

6.1.2 식별 방법

+
    +
  • 브레인스토밍: 다학제팀 구성하여 아이디어 도출
  • +
  • 체크리스트: 표준화된 체크리스트 활용
  • +
  • 시나리오 분석: 가상의 상황 설정하여 분석
  • +
  • 과거 사례 분석: 내외부 사고 사례 검토
  • +
  • 전문가 판단: 해당 분야 전문가 의견 수렴
  • +
  • 현장 관찰: 직접 현장을 관찰하여 위험 요소 파악
  • +
+
+ +
+

6.2 위험과 기회 평가

+
+

📊 위험 평가 매트릭스

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
발생가능성영향도
1 (경미)2 (보통)3 (중간)4 (심각)5 (치명적)
5 (매우 높음)510152025
4 (높음)48121620
3 (보통)3691215
2 (낮음)246810
1 (매우 낮음)12345
+ +

🎯 위험 수준별 대응 기준

+
    +
  • 고위험 (15-25): 즉시 조치 필요, 작업 중단 고려
  • +
  • 중위험 (8-12): 단기간 내 개선 조치 필요
  • +
  • 저위험 (3-6): 계획적 개선 조치
  • +
  • 수용 가능 (1-2): 현재 수준 유지, 정기 모니터링
  • +
+
+
+ +
+

6.3 조치 계획 수립

+

6.3.1 위험 대응 전략

+
+

🔺 위험 관리 우선순위

+
    +
  1. 제거 (Elimination): 위험 요소 자체를 제거
  2. +
  3. 대체 (Substitution): 더 안전한 대안으로 교체
  4. +
  5. 공학적 통제 (Engineering Controls): 기술적 방법으로 위험 감소
  6. +
  7. 관리적 통제 (Administrative Controls): 절차, 교육, 훈련을 통한 관리
  8. +
  9. 개인보호구 (PPE): 개인보호장비 착용으로 보호
  10. +
+
+ +

6.3.2 기회 활용 전략

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
전략설명예시
적극 추진기회 실현 가능성을 높이기 위한 적극적 투자• 신기술 도입
• 전문 인력 채용
• 시설 개선
공유다른 조직과 협력하여 기회 공유• 파트너십 구축
• 컨소시엄 참여
• 외부 협력
수용별도 조치 없이 자연스러운 기회 활용• 시장 변화 대응
• 법규 변경 활용
• 트렌드 추종
모니터링기회 발생을 지속적으로 관찰• 정기 검토
• 성과 추적
• 트렌드 분석
+
+
+ + +
+
+

7. 유해요인 식별 및 위험 평가

+
+ +
+

7.1 유해요인 분류

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
분류세부 유형주요 예시
물리적 유해요인기계적 위험• 회전체, 압착, 충돌
• 낙하, 전도, 추락
환경적 위험• 소음, 진동, 온도
• 조명, 방사선
전기적 위험• 감전, 화재, 폭발
• 정전기, 낙뢰
화학적 유해요인유독물질• 산, 알칼리, 용매
• 중금속, 발암물질
가스/증기• 독성가스, 질식가스
• 인화성 가스
생물학적 유해요인병원체• 세균, 바이러스, 곰팡이
• 기생충, 독소
알레르기원• 꽃가루, 먼지
• 동물털, 식품
인간공학적 유해요인작업 자세• 부적절한 자세
• 반복 작업, 중량물
작업 설계• 작업대 높이
• 도구 설계, 공간
심리사회적 유해요인업무 스트레스• 과도한 업무량
• 시간 압박, 책임
조직 문화• 괴롭힘, 폭력
• 의사소통 부족
+
+ +
+

7.2 식별 절차

+

7.2.1 체계적 접근

+
    +
  1. 작업 분석 +
      +
    • 작업 공정별 세부 단계 분석
    • +
    • 사용 장비 및 재료 파악
    • +
    • 작업 환경 조건 확인
    • +
    • 작업자 특성 고려
    • +
    +
  2. + +
  3. 현장 조사 +
      +
    • 직접 현장 관찰 및 측정
    • +
    • 작업자 인터뷰 실시
    • +
    • 과거 사고 사례 검토
    • +
    • 유사 업종 사례 조사
    • +
    +
  4. + +
  5. 문서 검토 +
      +
    • 물질안전보건자료(MSDS) 검토
    • +
    • 장비 매뉴얼 및 사양서 확인
    • +
    • 법규 및 기준 검토
    • +
    • 감사 및 점검 결과 분석
    • +
    +
  6. + +
  7. 전문가 자문 +
      +
    • 산업보건 전문가 의견
    • +
    • 안전 기술 전문가 자문
    • +
    • 의학 전문가 상담
    • +
    • 법무 전문가 검토
    • +
    +
  8. +
+
+ +
+

7.3 위험 평가 방법

+

7.3.1 정량적 평가

+ + + + + + + + + + + + + + + + + + + + + + + + + +
방법적용 대상장점단점
확률론적 평가통계 데이터가 충분한 경우• 객관적 결과
• 정확한 수치
• 데이터 확보 어려움
• 복잡한 계산
노출 평가화학물질, 물리적 인자• 직접 측정
• 과학적 근거
• 비용 소요
• 시간 제약
모델링복잡한 시스템• 시나리오 분석
• 예측 가능
• 가정 의존
• 불확실성
+ +

7.3.2 정성적 평가

+
    +
  • 매트릭스 방법: 발생가능성 × 영향도
  • +
  • 순위 결정법: 상대적 중요도 비교
  • +
  • 시나리오 분석: 가정 상황 설정
  • +
  • 전문가 판단: 경험과 지식 활용
  • +
+
+
+ + +
+
+

8. 법적 요구사항 관리

+
+ +
+

8.1 법적 요구사항 식별

+

8.1.1 주요 법령

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
분야주요 법령핵심 요구사항
안전산업안전보건법• 안전보건관리체계 구축
• 위험성 평가 실시
• 안전보건교육 실시
건설기계관리법• 건설기계 검사
• 조종사 면허
• 안전운행
화학물질관리법• 화학물질 등록
• 취급기준 준수
• 사고 신고
보건산업안전보건법• 작업환경측정
• 건강진단 실시
• 직업병 예방
감염병예방법• 감염병 예방조치
• 신고 의무
• 방역 활동
환경환경정책기본법• 환경오염 방지
• 환경영향 최소화
• 지속가능 발전
대기환경보전법• 배출허용기준 준수
• 방지시설 설치
• 측정 및 보고
폐기물관리법• 폐기물 분리수거
• 위탁처리
• 처리 현황 보고
+ +

8.1.2 기타 요구사항

+
    +
  • 고객 요구사항: 계약서, 사양서상 안전보건 조건
  • +
  • 자발적 표준: ISO 표준, 업계 모범사례
  • +
  • 보험 요구사항: 보험회사 안전 기준
  • +
  • 사회적 기대: 지역사회, NGO 요구사항
  • +
+
+ +
+

8.2 준수 관리 체계

+

8.2.1 법령 모니터링

+
    +
  1. 정보 수집: 정부 공고, 전문 기관 정보
  2. +
  3. 변경 분석: 기존 대비 변경사항 파악
  4. +
  5. 영향 평가: 조직에 미치는 영향 분석
  6. +
  7. 대응 계획: 필요 조치사항 계획 수립
  8. +
  9. 실행 및 추적: 계획 실행 및 결과 확인
  10. +
+ +

8.2.2 준수 평가

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
평가 방법주기담당자결과 조치
자체 점검월 1회각 부서 담당자즉시 개선
내부 감사분기 1회HSE 담당자시정조치 계획
외부 평가연 1회외부 전문기관종합 개선 계획
정부 점검수시관계 공무원행정조치 대응
+
+
+ + +
+
+

9. HSE 목표 설정 및 관리

+
+ +
+

9.1 목표 설정 원칙

+
+

🎯 SMART 원칙

+
    +
  • Specific (구체적): 명확하고 구체적인 목표
  • +
  • Measurable (측정가능): 정량적으로 측정 가능
  • +
  • Achievable (달성가능): 현실적으로 달성 가능
  • +
  • Relevant (관련성): HSE 정책과 연관성
  • +
  • Time-bound (시한설정): 명확한 달성 기한
  • +
+ +

📋 목표 설정 고려사항

+
    +
  • HSE 정책과의 일치성
  • +
  • 법적 요구사항 반영
  • +
  • 위험 평가 결과 반영
  • +
  • 기술적, 재정적 실현가능성
  • +
  • 이해관계자 기대사항
  • +
  • 지속적 개선 의지
  • +
+
+
+ +
+

9.2 목표 영역별 설정

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
영역목표 예시측정 지표목표값
안전재해율 감소재해율 (%)전년 대비 20% 감소
위험성 평가 완료평가 완료율 (%)100% 완료
안전교육 강화교육 이수율 (%)95% 이상
보건직업병 발생 Zero직업병 발생 건수0건
건강진단 실시수진율 (%)100%
환경폐기물 감량폐기물 발생량 (톤)전년 대비 10% 감소
에너지 절약에너지 사용량 (kWh)전년 대비 5% 감소
+
+ +
+

9.3 실행 계획 수립

+

9.3.1 계획 수립 절차

+
    +
  1. 세부 과제 도출: 목표 달성을 위한 구체적 과제
  2. +
  3. 일정 계획: 단계별 추진 일정 수립
  4. +
  5. 책임자 지정: 과제별 담당자 및 책임자 배정
  6. +
  7. 자원 배정: 필요 인력, 예산, 자원 확보
  8. +
  9. 성과 지표: 중간 및 최종 성과 측정 지표
  10. +
  11. 점검 체계: 정기적 진행상황 점검 방법
  12. +
+ +

9.3.2 모니터링 및 검토

+
    +
  • 월별 점검: 진행상황 및 성과 확인
  • +
  • 분기별 평가: 목표 달성도 종합 평가
  • +
  • 연간 검토: 목표 적절성 및 달성 결과 종합 분석
  • +
  • 개선 조치: 미달성 원인 분석 및 개선 방안 수립
  • +
+
+
+ + +
+
+

10. 기록 관리

+
+ +

10.1 작성 기록

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기록명작성자보관 기간보관 장소
위험과 기회 등록부HSE 담당자3년HSE 관리부서
유해요인 식별표각 부서장3년각 부서
위험 평가서HSE 담당자5년HSE 관리부서
법적 요구사항 목록HSE 관리책임자영구HSE 관리부서
HSE 목표 및 계획서HSE 관리책임자5년HSE 관리부서
진행상황 점검표각 부서장3년각 부서
+
+ + +
+
+

11. 첨부 서식

+
+ +
    +
  • 첨부 1: 위험과 기회 식별 체크리스트
  • +
  • 첨부 2: 유해요인 식별표 양식
  • +
  • 첨부 3: 위험 평가 매트릭스
  • +
  • 첨부 4: 위험 평가서 양식
  • +
  • 첨부 5: 법적 요구사항 등록부
  • +
  • 첨부 6: HSE 목표 설정 템플릿
  • +
  • 첨부 7: 실행 계획서 양식
  • +
  • 첨부 8: 진행상황 점검표
  • +
+
+
+ + +
+ +
+

TK-HSE-P-610

+

Planning and Risk Management Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitlePlanning and Risk Management Procedure
Document NumberTK-HSE-P-610
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 9
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+
+

1. PURPOSE

+
+

The purpose of this procedure is to:

+
    +
  • Systematic planning and implementation of HSE management system
  • +
  • Establish effective actions to address risks and opportunities
  • +
  • Systematic performance of hazard identification and HSE risk assessment
  • +
  • Systematic management of legal requirements and other requirements
  • +
  • Establish measurable HSE objectives and achievement plans
  • +
  • Effective implementation of ISO 45001:2018 Clause 6 requirements
  • +
+
+ + +
+
+

2. SCOPE

+
+

This procedure applies to the following areas of Technicalkorea:

+
    +
  • All activities within the scope of HSE management system application
  • +
  • All business sites including head office, factories, and branches
  • +
  • Regular, irregular, and contractor workers
  • +
  • Product production, service provision, and support activities
  • +
  • Routine and non-routine work, emergency situations
  • +
  • Past, present, and planned future activities
  • +
+
+ + +
+
+

3. NORMATIVE REFERENCES AND RELATED DOCUMENTS

+
+

3.1 Normative References

+
    +
  • ISO 45001:2018 - Occupational health and safety management systems - Requirements with guidance for use
  • +
  • ISO 31000:2018 - Risk management - Guidelines
  • +
  • Occupational Safety and Health Act and related regulations
  • +
  • Framework Act on Environmental Policy and related regulations
  • +
+ +

3.2 Related Documents

+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-410 - Understanding Organizational Context and HSE Management System Operation Procedure
  • +
  • TK-HSE-P-620 - Risk Assessment Procedure
  • +
  • TK-HSE-P-630 - HSE Legal Requirements Management Procedure
  • +
  • TK-HSE-P-640 - HSE Objectives Management Procedure
  • +
+
+ + +
+
+

4. TERMS AND DEFINITIONS

+
+ +
+

4.1 Risk

+

Effect of uncertainty, positive or negative deviation from objectives

+ +

4.2 Opportunity

+

Possibility of bringing positive results such as HSE performance improvement, waste reduction, accident prevention

+ +

4.3 Hazard

+

Source with a potential to cause injury and ill health

+ +

4.4 Risk Assessment

+

Overall process of risk identification, analysis and evaluation

+ +

4.5 Legal Requirements

+

Laws, regulations, orders, etc. that the organization must comply with

+ +

4.6 Objective

+

Result or performance to be achieved

+
+
+ + +
+
+

5. PROCESS FLOW

+
+ +
+
Planning Process Start
+
+
Risk and Opportunity Identification
+
+
Hazard Identification
+
+
Risk Assessment
+
+
Legal Requirements Identification
+
+
HSE Objectives Setting
+
+
Implementation Plan Development
+
+
Approval and Implementation
+
+
Monitoring and Review
+
+
+ + +
+
+

6. RISK AND OPPORTUNITY MANAGEMENT

+
+ +
+

6.1 Risk and Opportunity Identification

+

6.1.1 Identification Targets

+ + + + + + + + + + + + + + + + + + + + + +
CategoryIdentification TargetsConsiderations
Internal Risks• Equipment failure
• Human error
• Organizational change
• Resource shortage
• Probability of occurrence
• Impact level
• Controllability
• Response time
External Risks• Natural disasters
• Regulatory changes
• Market changes
• Supplier issues
• Predictability
• Response capability
• Recovery time
• Cost impact
Opportunities• Technology improvement
• Cost reduction
• Efficiency enhancement
• Image improvement
• Feasibility
• Return on investment
• Competitive advantage
• Sustainability
+
+ +
+

6.2 Risk and Opportunity Assessment

+
+

📊 Risk Assessment Matrix

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LikelihoodConsequence
1 (Minor)2 (Moderate)3 (Major)4 (Severe)5 (Catastrophic)
5 (Very High)510152025
4 (High)48121620
3 (Moderate)3691215
2 (Low)246810
1 (Very Low)12345
+ +

🎯 Risk Level Response Criteria

+
    +
  • High Risk (15-25): Immediate action required, consider work stoppage
  • +
  • Medium Risk (8-12): Improvement measures required in short term
  • +
  • Low Risk (3-6): Planned improvement measures
  • +
  • Acceptable (1-2): Maintain current level, regular monitoring
  • +
+
+
+ +
+

6.3 Action Plan Development

+

6.3.1 Risk Response Strategy

+
+

🔺 Risk Management Hierarchy

+
    +
  1. Elimination: Remove the risk factor itself
  2. +
  3. Substitution: Replace with safer alternatives
  4. +
  5. Engineering Controls: Reduce risk through technical methods
  6. +
  7. Administrative Controls: Management through procedures, education, training
  8. +
  9. Personal Protective Equipment (PPE): Protection through personal protective equipment
  10. +
+
+
+
+ + +
+
+

7. HAZARD IDENTIFICATION AND RISK ASSESSMENT

+
+ +
+

7.1 Hazard Classification

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClassificationSub-typesMain Examples
Physical HazardsMechanical risks• Rotating parts, crushing, collision
• Falling, overturning, falling from height
Environmental risks• Noise, vibration, temperature
• Lighting, radiation
Electrical risks• Electric shock, fire, explosion
• Static electricity, lightning
Chemical HazardsToxic substances• Acids, alkalis, solvents
• Heavy metals, carcinogens
Gases/vapors• Toxic gases, asphyxiant gases
• Flammable gases
Biological HazardsPathogens• Bacteria, viruses, fungi
• Parasites, toxins
Allergens• Pollen, dust
• Animal fur, food
Ergonomic HazardsWork posture• Inappropriate posture
• Repetitive work, heavy objects
Work design• Workbench height
• Tool design, space
Psychosocial HazardsWork stress• Excessive workload
• Time pressure, responsibility
Organizational culture• Harassment, violence
• Lack of communication
+
+
+ + +
+
+

8. LEGAL REQUIREMENTS MANAGEMENT

+
+ +
+

8.1 Legal Requirements Identification

+

8.1.1 Major Laws

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldMajor LawsKey Requirements
SafetyOccupational Safety and Health Act• Establish safety and health management system
• Conduct risk assessment
• Implement safety and health education
Construction Equipment Management Act• Construction equipment inspection
• Operator license
• Safe operation
Chemical Control Act• Chemical registration
• Comply with handling standards
• Accident reporting
HealthOccupational Safety and Health Act• Work environment measurement
• Health examination
• Occupational disease prevention
Infectious Disease Control and Prevention Act• Infectious disease prevention measures
• Reporting obligation
• Quarantine activities
EnvironmentFramework Act on Environmental Policy• Environmental pollution prevention
• Minimize environmental impact
• Sustainable development
Clean Air Conservation Act• Comply with emission standards
• Install prevention facilities
• Measurement and reporting
Waste Management Act• Waste separation
• Consignment treatment
• Treatment status reporting
+
+
+ + +
+
+

9. HSE OBJECTIVES SETTING AND MANAGEMENT

+
+ +
+

9.1 Objective Setting Principles

+
+

🎯 SMART Principles

+
    +
  • Specific: Clear and specific objectives
  • +
  • Measurable: Quantitatively measurable
  • +
  • Achievable: Realistically achievable
  • +
  • Relevant: Related to HSE policy
  • +
  • Time-bound: Clear achievement deadline
  • +
+ +

📋 Objective Setting Considerations

+
    +
  • Consistency with HSE policy
  • +
  • Reflection of legal requirements
  • +
  • Reflection of risk assessment results
  • +
  • Technical and financial feasibility
  • +
  • Stakeholder expectations
  • +
  • Commitment to continuous improvement
  • +
+
+
+ +
+

9.2 Objectives by Area

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AreaObjective ExamplesMeasurement IndicatorsTarget Values
SafetyReduce accident rateAccident rate (%)20% reduction from previous year
Complete risk assessmentAssessment completion rate (%)100% completion
Strengthen safety educationEducation completion rate (%)95% or higher
HealthZero occupational disease occurrenceNumber of occupational disease cases0 cases
Conduct health examinationsExamination rate (%)100%
EnvironmentWaste reductionWaste generation (tons)10% reduction from previous year
Energy savingEnergy consumption (kWh)5% reduction from previous year
+
+
+ + +
+
+

10. RECORDS MANAGEMENT

+
+ +

10.1 Records to be Created

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Record NameCreatorRetention PeriodStorage Location
Risk and Opportunity RegisterHSE Staff3 yearsHSE Management Department
Hazard Identification TableEach Department Head3 yearsEach Department
Risk Assessment ReportHSE Staff5 yearsHSE Management Department
Legal Requirements ListHSE ManagerPermanentHSE Management Department
HSE Objectives and PlansHSE Manager5 yearsHSE Management Department
Progress Monitoring SheetEach Department Head3 yearsEach Department
+
+ + +
+
+

11. APPENDIX FORMS

+
+ +
    +
  • Appendix 1: Risk and Opportunity Identification Checklist
  • +
  • Appendix 2: Hazard Identification Table Form
  • +
  • Appendix 3: Risk Assessment Matrix
  • +
  • Appendix 4: Risk Assessment Report Form
  • +
  • Appendix 5: Legal Requirements Register
  • +
  • Appendix 6: HSE Objectives Setting Template
  • +
  • Appendix 7: Implementation Plan Form
  • +
  • Appendix 8: Progress Monitoring Sheet
  • +
+
+ +
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-620.html b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-620.html new file mode 100644 index 0000000..c552dcd --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-620.html @@ -0,0 +1,1784 @@ + + + + + + TK-HSE-P-620 위험 평가 절차 + + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-620

+

위험 평가 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목위험 평가 절차
문서 번호TK-HSE-P-620
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+

1. 목적

+
+

본 절차는 테크니컬코리아의 모든 사업장 및 활동에서 발생할 수 있는 보건, 안전 및 환경(HSE) 위험요소를 체계적으로 식별, 평가 및 관리하기 위한 표준화된 방법론을 제공함을 목적으로 합니다.

+

이를 통해 근로자의 안전과 건강을 보호하고, 환경 영향을 최소화하며, ISO 45001:2018 요구사항에 부합하는 위험 관리 체계를 구축합니다.

+ + +
+

2. 적용 범위

+
+

본 절차는 다음에 적용됩니다:

+
    +
  • 테크니컬코리아의 모든 사업장, 시설 및 작업 현장
  • +
  • 정규직, 계약직, 파견직, 협력업체 직원을 포함한 모든 근로자
  • +
  • 일상적 및 비일상적 작업 활동
  • +
  • 제품 및 서비스의 전체 생명주기
  • +
  • 계획된 변경사항 및 비상상황
  • +
  • 모든 방문자 및 외부 이해관계자
  • +
+ + +
+

3. 관련 문서

+
+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-610 - 기획 및 위험 관리 절차
  • +
  • TK-HSE-P-630 - HSE 법적 요구사항 관리 절차
  • +
  • TK-HSE-P-810 - 운영 기획 및 관리 절차
  • +
  • TK-HSE-P-1010 - 사건, 부적합 및 시정조치 절차
  • +
  • ISO 45001:2018 - 보건안전경영시스템 요구사항
  • +
  • 산업안전보건법 및 관련 시행령, 시행규칙
  • +
  • 환경정책기본법 및 관련 법령
  • +
+ + +
+

4. 용어의 정의

+
+
+

4.1 유해요인(Hazard)

+

부상과 건강악화를 일으킬 잠재성을 가진 근원으로, 물리적, 화학적, 생물학적, 인간공학적, 심리사회적 요인을 포함합니다.

+ +

4.2 위험(Risk)

+

유해요인에 노출될 확률과 그로 인한 부상이나 건강악화의 심각성을 조합한 개념입니다.

+ +

4.3 위험 평가(Risk Assessment)

+

유해요인을 식별하고, 관련 위험을 분석 및 평가하는 전체적인 과정입니다.

+ +

4.4 허용 가능한 위험(Acceptable Risk)

+

조직의 법적 의무와 HSE 정책에 따라 수용 가능한 수준까지 감소된 위험입니다.

+ +

4.5 잔류 위험(Residual Risk)

+

위험 대응 조치를 실행한 후에도 남아있는 위험입니다.

+
+ + +
+

5. 역할과 책임

+
+
+

5.1 최고경영자

+
    +
  • 위험 평가 프로세스에 대한 최종 책임
  • +
  • 위험 평가에 필요한 자원 배정
  • +
  • 중대한 위험에 대한 의사결정
  • +
+ +

5.2 HSE 관리책임자

+
    +
  • 위험 평가 절차의 수립 및 유지
  • +
  • 위험 평가 팀 구성 및 교육
  • +
  • 위험 평가 결과의 검토 및 승인
  • +
  • 위험 평가 현황 모니터링
  • +
+ +

5.3 부서장/현장 관리자

+
    +
  • 담당 영역의 위험 평가 실시
  • +
  • 위험 통제 조치의 실행
  • +
  • 근로자의 위험 평가 참여 보장
  • +
  • 위험 평가 결과의 현장 적용
  • +
+ +

5.4 근로자

+
    +
  • 위험 평가 과정에 적극 참여
  • +
  • 유해요인 및 위험 상황 보고
  • +
  • 위험 통제 조치 준수
  • +
  • 안전 교육 및 훈련 참석
  • +
+ +

5.5 위험 평가팀

+
    +
  • 체계적인 위험 평가 수행
  • +
  • 위험 평가 보고서 작성
  • +
  • 위험 통제 조치 제안
  • +
  • 위험 평가 결과의 지속적 모니터링
  • +
+
+ + +
+

6. 위험 평가 프로세스

+
+ +
+
준비 및 기획
+ +
유해요인 식별
+ +
위험 분석
+

+
위험 평가
+ +
위험 대응
+ +
모니터링 및 검토
+
+ +
+

6.1 준비 및 기획 단계

+

6.1.1 위험 평가 범위 설정

+
    +
  • 평가 대상 작업, 활동, 시설의 명확한 정의
  • +
  • 평가 기간 및 주기 결정
  • +
  • 관련 법규 및 표준 확인
  • +
  • 이전 평가 결과 및 사고 이력 검토
  • +
+ +

6.1.2 위험 평가팀 구성

+
    +
  • 팀장: HSE 관리책임자 또는 지정된 담당자
  • +
  • 팀원: 해당 분야 전문가, 현장 관리자, 근로자 대표
  • +
  • 필요시 외부 전문가 참여
  • +
  • 팀원에 대한 위험 평가 교육 실시
  • +
+ +

6.1.3 정보 수집

+
    +
  • 작업 절차서 및 매뉴얼
  • +
  • 물질안전보건자료(MSDS)
  • +
  • 장비 및 기계 사양서
  • +
  • 과거 사고 및 아차사고 기록
  • +
  • 건강 검진 결과 및 직업병 발생 현황
  • +
  • 환경 모니터링 데이터
  • +
+
+ +
+

6.2 유해요인 식별

+

6.2.1 식별 방법

+
    +
  • 현장 조사 및 관찰
  • +
  • 작업 분석 및 작업 조건 검토
  • +
  • 근로자 면담 및 설문조사
  • +
  • 과거 사고 및 질병 기록 분석
  • +
  • 체크리스트 활용
  • +
  • 브레인스토밍 세션
  • +
+ +

6.2.2 유해요인 분류

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
분류유해요인 예시
물리적 유해요인소음, 진동, 온도, 조명, 방사선, 전기
화학적 유해요인독성물질, 부식성물질, 가연성물질, 분진, 가스, 증기
생물학적 유해요인세균, 바이러스, 곰팡이, 기생충
인간공학적 유해요인반복작업, 과도한 힘, 부자연스러운 자세, 진동
심리사회적 유해요인업무 스트레스, 작업 강도, 인간관계, 직장 내 괴롭힘
환경적 유해요인대기오염, 수질오염, 토양오염, 폐기물
+ +

6.2.3 노출 상황 고려사항

+
    +
  • 일상적 작업과 비일상적 작업
  • +
  • 정상 운영 조건과 비정상 조건
  • +
  • 비상상황 및 잠재적 사고 시나리오
  • +
  • 모든 작업자 및 방문자의 노출
  • +
  • 작업장 접근 경로 및 주변 영향
  • +
+
+ +
+

6.3 위험 분석

+

6.3.1 발생가능성 평가

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
등급설명기준
5 (매우 높음)거의 확실히 발생주 1회 이상 또는 연간 50회 이상
4 (높음)발생 가능성이 높음월 1회 이상 또는 연간 12-50회
3 (보통)가끔 발생 가능년 1회 이상 또는 연간 1-12회
2 (낮음)발생 가능성이 낮음수년에 1회 또는 10년에 1-10회
1 (매우 낮음)거의 발생하지 않음10년에 1회 미만
+ +

6.3.2 심각성 평가

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
등급설명인명 피해환경 영향
5 (치명적)사망 또는 영구장애사망 또는 영구 전신장애심각한 환경오염, 복구 불가능
4 (심각)중대한 부상 또는 질병중상, 만성질환, 부분장애중대한 환경영향, 복구 어려움
3 (보통)의료처치 필요의료처치 필요한 부상보통의 환경영향, 복구 가능
2 (경미)응급처치 필요응급처치 수준의 부상경미한 환경영향
1 (무시)부상 없음부상이나 건강영향 없음환경영향 무시할 수준
+
+ +
+

6.4 위험 평가

+

6.4.1 위험도 계산

+

위험도 = 발생가능성 × 심각성

+ +

6.4.2 위험도 매트릭스

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
심각성발생가능성
12345
5510152025
448121620
33691215
2246810
112345
+ +

6.4.3 위험도 분류 및 대응방안

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
위험도분류대응방안대응시한
20-25매우 높음즉시 작업 중단, 긴급 대책 수립즉시
10-19높음상세한 대책 수립 및 즉시 실행1주 이내
5-9보통대책 수립 및 계획에 따라 실행1개월 이내
1-4낮음현재 수준 유지, 정기 모니터링3개월 이내
+
+ + +
+

7. 위험 통제

+
+
+

7.1 통제 위계 (Hierarchy of Controls)

+
    +
  1. 제거 (Elimination): 유해요인 자체를 제거
  2. +
  3. 대체 (Substitution): 덜 위험한 방법, 재료, 장비로 대체
  4. +
  5. 공학적 통제 (Engineering Controls): 환기시설, 차폐, 격리 등
  6. +
  7. 관리적 통제 (Administrative Controls): 절차, 교육, 훈련, 표지판 등
  8. +
  9. 개인보호구 (Personal Protective Equipment): 마지막 수단으로 사용
  10. +
+ +

7.2 통제 조치 선정 기준

+
    +
  • 효과성: 위험 감소 효과
  • +
  • 실현가능성: 기술적, 경제적 실현 가능성
  • +
  • 수용성: 근로자 및 조직의 수용도
  • +
  • 지속성: 장기간 유지 가능성
  • +
  • 법적 요구사항 부합성
  • +
+ +

7.3 통제 조치 실행

+
    +
  • 실행 계획 수립 (담당자, 일정, 예산)
  • +
  • 필요한 자원 확보
  • +
  • 관련 인원 교육 및 훈련
  • +
  • 실행 상황 모니터링
  • +
  • 효과성 검증
  • +
+
+ + +
+

8. 문서화

+
+
+

8.1 위험 평가 보고서

+

모든 위험 평가 결과는 다음 내용을 포함하여 문서화해야 합니다:

+
    +
  • 평가 대상 및 범위
  • +
  • 평가팀 구성 및 역할
  • +
  • 평가 방법론
  • +
  • 식별된 유해요인 목록
  • +
  • 위험 분석 및 평가 결과
  • +
  • 제안된 통제 조치
  • +
  • 실행 계획
  • +
  • 모니터링 계획
  • +
+ +

8.2 위험 등록부 (Risk Register)

+

조직 차원의 통합 위험 등록부를 유지하며 다음 정보를 포함합니다:

+
    +
  • 위험 식별번호
  • +
  • 위험 설명
  • +
  • 영향 범위
  • +
  • 현재 통제 조치
  • +
  • 잔류 위험도
  • +
  • 추가 조치 계획
  • +
  • 담당자 및 일정
  • +
  • 검토 일정
  • +
+
+ + +
+

9. 모니터링 및 검토

+
+
+

9.1 정기 검토

+
    +
  • 일상 점검: 현장 관리자의 일일 안전 점검
  • +
  • 월간 검토: 부서별 위험 평가 현황 검토
  • +
  • 분기 검토: HSE 위원회의 위험 관리 현황 검토
  • +
  • 연간 검토: 전사 위험 평가의 전면적 재검토
  • +
+ +

9.2 검토 트리거

+

다음 상황에서는 즉시 위험 평가를 재검토해야 합니다:

+
    +
  • 사고 또는 아차사고 발생
  • +
  • 새로운 법규 또는 표준 시행
  • +
  • 작업 방법 또는 절차 변경
  • +
  • 새로운 장비 또는 화학물질 도입
  • +
  • 조직 구조 또는 인원 변경
  • +
  • 통제 조치의 실패 또는 부적절함 확인
  • +
+ +

9.3 성과 지표

+
    +
  • 위험 평가 완료율
  • +
  • 고위험 요소 감소율
  • +
  • 통제 조치 실행율
  • +
  • 사고 발생률 감소
  • +
  • 근로자 참여도
  • +
+
+ + +
+

10. 교육 및 훈련

+
+
+

10.1 교육 대상 및 내용

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
대상교육 내용주기
위험 평가팀위험 평가 방법론, 기법, 도구 사용법연 1회
관리자위험 관리 원칙, 통제 조치 선정 및 실행연 1회
근로자유해요인 인식, 위험 보고, 안전 수칙분기 1회
신입사원HSE 정책, 위험 평가 개념, 참여 방법입사시
+ +

10.2 교육 방법

+
    +
  • 집합 교육 및 워크숍
  • +
  • 온라인 교육 프로그램
  • +
  • 현장 실습 및 사례 연구
  • +
  • 외부 전문 교육 과정
  • +
+
+ + +
+
+

11. 위험 평가 양식

+
+ +
+

위험 평가 기본 정보

+ + + + + + + + + + + + + + + + + + + + + + + +
평가 번호평가 일자
평가 대상평가 유형□ 정기 □ 수시 □ 변경
평가팀장부서/현장
참여자
+
+ +
+

유해요인 식별 및 위험 평가

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
작업/활동유해요인잠재적 결과현재 통제조치발생가능성심각성위험도위험 수준
+
+ +
+

위험 통제 조치

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
제안 조치우선순위담당자완료 예정일예상 효과잔류 위험도
+
+ +
+

승인

+ + + + + + + + + + + + + + + + + + + +
작성자성명:서명:일자:
검토자성명:서명:일자:
승인자성명:서명:일자:
+
+
+ + +
+

12. 문서 관리

+
+

이것은 통제 문서입니다

+

승인 없이 복사하지 마십시오

+

최신 버전은 회사 인트라넷에서 확인할 수 있습니다

+

이 문서에 대한 문의사항은 HSE 관리부서로 연락하십시오

+
+ + +
+ +
+

TK-HSE-P-620

+

Risk Assessment Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleRisk Assessment Procedure
Document NumberTK-HSE-P-620
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+

1. PURPOSE

+
+

This procedure aims to provide a standardized methodology for systematically identifying, assessing, and managing health, safety, and environmental (HSE) risk factors that may occur in all workplaces and activities of Technicalkorea.

+

Through this, we protect the safety and health of workers, minimize environmental impacts, and establish a risk management system that complies with ISO 45001:2018 requirements.

+ + +
+

2. SCOPE

+
+

This procedure applies to:

+
    +
  • All workplaces, facilities, and work sites of Technicalkorea
  • +
  • All workers including permanent, contract, temporary, and contractor personnel
  • +
  • Routine and non-routine work activities
  • +
  • Entire life cycle of products and services
  • +
  • Planned changes and emergency situations
  • +
  • All visitors and external stakeholders
  • +
+ + +
+

3. RELATED DOCUMENTS

+
+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-610 - Planning and Risk Management Procedure
  • +
  • TK-HSE-P-630 - HSE Legal Requirements Management Procedure
  • +
  • TK-HSE-P-810 - Operational Planning and Control Procedure
  • +
  • TK-HSE-P-1010 - Incident, Nonconformity and Corrective Action Procedure
  • +
  • ISO 45001:2018 - Occupational Health and Safety Management Systems Requirements
  • +
  • Occupational Safety and Health Act and related enforcement decrees and rules
  • +
  • Framework Act on Environmental Policy and related laws
  • +
+ + +
+

4. TERMS AND DEFINITIONS

+
+
+

4.1 Hazard

+

Source with a potential to cause injury and ill health, including physical, chemical, biological, ergonomic, and psychosocial factors.

+ +

4.2 Risk

+

A concept that combines the probability of exposure to hazards and the severity of resulting injury or ill health.

+ +

4.3 Risk Assessment

+

The overall process of identifying hazards and analyzing and evaluating related risks.

+ +

4.4 Acceptable Risk

+

Risk that has been reduced to a level that can be tolerated by the organization having regard to its legal obligations and HSE policy.

+ +

4.5 Residual Risk

+

Risk remaining after risk treatment measures have been implemented.

+
+ + +
+

5. ROLES AND RESPONSIBILITIES

+
+
+

5.1 Top Management

+
    +
  • Ultimate responsibility for risk assessment process
  • +
  • Allocation of resources required for risk assessment
  • +
  • Decision-making on significant risks
  • +
+ +

5.2 HSE Manager

+
    +
  • Establishment and maintenance of risk assessment procedures
  • +
  • Formation and training of risk assessment teams
  • +
  • Review and approval of risk assessment results
  • +
  • Monitoring risk assessment status
  • +
+ +

5.3 Department Heads/Site Managers

+
    +
  • Conducting risk assessments in their areas of responsibility
  • +
  • Implementation of risk control measures
  • +
  • Ensuring worker participation in risk assessment
  • +
  • Field application of risk assessment results
  • +
+ +

5.4 Workers

+
    +
  • Active participation in risk assessment process
  • +
  • Reporting hazards and risk situations
  • +
  • Compliance with risk control measures
  • +
  • Attendance at safety education and training
  • +
+ +

5.5 Risk Assessment Team

+
    +
  • Systematic risk assessment performance
  • +
  • Preparation of risk assessment reports
  • +
  • Proposal of risk control measures
  • +
  • Continuous monitoring of risk assessment results
  • +
+
+ + +
+

6. RISK ASSESSMENT PROCESS

+
+ +
+
Preparation & Planning
+ +
Hazard Identification
+ +
Risk Analysis
+

+
Risk Evaluation
+ +
Risk Treatment
+ +
Monitoring & Review
+
+ +
+

6.1 Preparation and Planning Phase

+

6.1.1 Risk Assessment Scope Setting

+
    +
  • Clear definition of work, activities, and facilities to be assessed
  • +
  • Determination of assessment period and cycle
  • +
  • Confirmation of relevant regulations and standards
  • +
  • Review of previous assessment results and incident history
  • +
+ +

6.1.2 Risk Assessment Team Formation

+
    +
  • Team Leader: HSE Manager or designated person
  • +
  • Team Members: Subject matter experts, site managers, worker representatives
  • +
  • External experts participation when necessary
  • +
  • Risk assessment training for team members
  • +
+ +

6.1.3 Information Collection

+
    +
  • Work procedures and manuals
  • +
  • Material Safety Data Sheets (MSDS)
  • +
  • Equipment and machinery specifications
  • +
  • Past accident and near-miss records
  • +
  • Health examination results and occupational disease status
  • +
  • Environmental monitoring data
  • +
+
+ +
+

6.2 Hazard Identification

+

6.2.1 Identification Methods

+
    +
  • Site inspection and observation
  • +
  • Work analysis and working condition review
  • +
  • Worker interviews and surveys
  • +
  • Analysis of past accident and disease records
  • +
  • Checklist utilization
  • +
  • Brainstorming sessions
  • +
+ +

6.2.2 Hazard Classification

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClassificationHazard Examples
Physical HazardsNoise, vibration, temperature, lighting, radiation, electricity
Chemical HazardsToxic substances, corrosive substances, flammable substances, dust, gas, vapor
Biological HazardsBacteria, viruses, fungi, parasites
Ergonomic HazardsRepetitive work, excessive force, awkward postures, vibration
Psychosocial HazardsWork stress, work intensity, human relations, workplace harassment
Environmental HazardsAir pollution, water pollution, soil contamination, waste
+ +

6.2.3 Exposure Situation Considerations

+
    +
  • Routine and non-routine work
  • +
  • Normal and abnormal operating conditions
  • +
  • Emergency situations and potential accident scenarios
  • +
  • Exposure of all workers and visitors
  • +
  • Workplace access routes and surrounding impacts
  • +
+
+ +
+

6.3 Risk Analysis

+

6.3.1 Likelihood Assessment

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LevelDescriptionCriteria
5 (Very High)Almost certain to occurMore than once a week or 50+ times per year
4 (High)Likely to occurMore than once a month or 12-50 times per year
3 (Medium)May occur occasionallyMore than once a year or 1-12 times per year
2 (Low)Unlikely to occurOnce in several years or 1-10 times in 10 years
1 (Very Low)Rare occurrenceLess than once in 10 years
+ +

6.3.2 Severity Assessment

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LevelDescriptionHuman ImpactEnvironmental Impact
5 (Fatal)Death or permanent disabilityDeath or permanent total disabilitySevere environmental pollution, irreversible
4 (Serious)Major injury or illnessSerious injury, chronic disease, partial disabilityMajor environmental impact, difficult to recover
3 (Moderate)Medical treatment requiredInjury requiring medical treatmentModerate environmental impact, recoverable
2 (Minor)First aid requiredFirst aid level injuryMinor environmental impact
1 (Negligible)No injuryNo injury or health impactNegligible environmental impact
+
+ +
+

6.4 Risk Evaluation

+

6.4.1 Risk Level Calculation

+

Risk Level = Likelihood × Severity

+ +

6.4.2 Risk Matrix

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityLikelihood
12345
5510152025
448121620
33691215
2246810
112345
+ +

6.4.3 Risk Level Classification and Response

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Risk LevelClassificationResponseTimeline
20-25Very HighImmediate work stoppage, emergency measuresImmediate
10-19HighDetailed measures development and immediate implementationWithin 1 week
5-9MediumMeasures development and planned implementationWithin 1 month
1-4LowMaintain current level, regular monitoringWithin 3 months
+
+ + +
+

7. RISK CONTROL

+
+
+

7.1 Hierarchy of Controls

+
    +
  1. Elimination: Remove the hazard entirely
  2. +
  3. Substitution: Replace with less hazardous methods, materials, or equipment
  4. +
  5. Engineering Controls: Ventilation, shielding, isolation, etc.
  6. +
  7. Administrative Controls: Procedures, training, education, signage, etc.
  8. +
  9. Personal Protective Equipment (PPE): Use as last resort
  10. +
+ +

7.2 Control Measure Selection Criteria

+
    +
  • Effectiveness: Risk reduction effect
  • +
  • Feasibility: Technical and economic feasibility
  • +
  • Acceptability: Worker and organizational acceptance
  • +
  • Sustainability: Long-term maintainability
  • +
  • Legal compliance
  • +
+ +

7.3 Control Measure Implementation

+
    +
  • Implementation plan development (responsible person, schedule, budget)
  • +
  • Securing necessary resources
  • +
  • Training and education of relevant personnel
  • +
  • Implementation status monitoring
  • +
  • Effectiveness verification
  • +
+
+ + +
+

8. DOCUMENTATION

+
+
+

8.1 Risk Assessment Report

+

All risk assessment results must be documented including the following content:

+
    +
  • Assessment target and scope
  • +
  • Assessment team composition and roles
  • +
  • Assessment methodology
  • +
  • List of identified hazards
  • +
  • Risk analysis and evaluation results
  • +
  • Proposed control measures
  • +
  • Implementation plan
  • +
  • Monitoring plan
  • +
+ +

8.2 Risk Register

+

Maintain an integrated organizational risk register including the following information:

+
    +
  • Risk identification number
  • +
  • Risk description
  • +
  • Impact scope
  • +
  • Current control measures
  • +
  • Residual risk level
  • +
  • Additional measure plans
  • +
  • Responsible person and schedule
  • +
  • Review schedule
  • +
+
+ + +
+

9. MONITORING AND REVIEW

+
+
+

9.1 Regular Review

+
    +
  • Daily Inspection: Daily safety inspections by site managers
  • +
  • Monthly Review: Departmental risk assessment status review
  • +
  • Quarterly Review: HSE committee risk management status review
  • +
  • Annual Review: Comprehensive review of company-wide risk assessments
  • +
+ +

9.2 Review Triggers

+

Risk assessments must be immediately re-reviewed in the following situations:

+
    +
  • Occurrence of accidents or near-misses
  • +
  • Implementation of new regulations or standards
  • +
  • Changes in work methods or procedures
  • +
  • Introduction of new equipment or chemicals
  • +
  • Changes in organizational structure or personnel
  • +
  • Identification of control measure failure or inadequacy
  • +
+ +

9.3 Performance Indicators

+
    +
  • Risk assessment completion rate
  • +
  • High-risk factor reduction rate
  • +
  • Control measure implementation rate
  • +
  • Accident occurrence rate reduction
  • +
  • Worker participation rate
  • +
+
+ + +
+

10. TRAINING AND EDUCATION

+
+
+

10.1 Training Target and Content

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
TargetTraining ContentFrequency
Risk Assessment TeamRisk assessment methodology, techniques, tool usageAnnual
ManagersRisk management principles, control measure selection and implementationAnnual
WorkersHazard recognition, risk reporting, safety rulesQuarterly
New EmployeesHSE policy, risk assessment concepts, participation methodsUpon hiring
+ +

10.2 Training Methods

+
    +
  • Group training and workshops
  • +
  • Online training programs
  • +
  • Field practice and case studies
  • +
  • External professional training courses
  • +
+
+ + +
+
+

11. RISK ASSESSMENT FORM

+
+ +
+

Risk Assessment Basic Information

+ + + + + + + + + + + + + + + + + + + + + + + +
Assessment No.Assessment Date
Assessment TargetAssessment Type□ Regular □ Ad-hoc □ Change
Team LeaderDepartment/Site
Participants
+
+ +
+

Hazard Identification and Risk Assessment

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Work/ActivityHazardPotential ConsequenceCurrent ControlsLikelihoodSeverityRisk LevelRisk Rating
+
+ +
+

Risk Control Measures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Proposed MeasuresPriorityResponsible PersonTarget DateExpected EffectResidual Risk
+
+ +
+

Approval

+ + + + + + + + + + + + + + + + + + + +
Prepared byName:Signature:Date:
Reviewed byName:Signature:Date:
Approved byName:Signature:Date:
+
+
+ + +
+

12. DOCUMENT CONTROL

+
+

This is a controlled document

+

Do not copy without authorization

+

The latest version can be found on the company intranet

+

For inquiries about this document, contact the HSE Management Department

+
+
+ + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-630.html b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-630.html new file mode 100644 index 0000000..1f3f431 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/hse/TK-HSE-P-630.html @@ -0,0 +1,1894 @@ + + + + + + TK-HSE-P-630 HSE 법적 요구사항 관리 절차 + + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-630

+

HSE 법적 요구사항 관리 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목HSE 법적 요구사항 관리 절차
문서 번호TK-HSE-P-630
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+

1. 목적

+
+

본 절차는 테크니컬코리아의 사업 활동과 관련된 보건, 안전 및 환경(HSE) 법적 요구사항을 체계적으로 식별, 접근, 평가 및 관리하기 위한 프레임워크를 제공함을 목적으로 합니다.

+

이를 통해 법적 요구사항의 준수를 보장하고, 법규 위반으로 인한 리스크를 최소화하며, 지속적인 개선을 통한 HSE 성과 향상을 달성합니다.

+ +
+ 중요: 법적 요구사항의 식별과 준수는 조직의 HSE 경영시스템의 핵심 요소이며, ISO 45001:2018 및 ISO 14001:2015의 필수 요구사항입니다. +
+ + +
+

2. 적용 범위

+
+

본 절차는 다음에 적용됩니다:

+
    +
  • 테크니컬코리아의 모든 사업장 및 운영 활동
  • +
  • 국내외 모든 자회사 및 관계회사
  • +
  • 협력업체 및 계약업체와의 HSE 관련 활동
  • +
  • 제품 및 서비스의 전체 생명주기
  • +
  • 다음 분야의 법적 요구사항: +
      +
    • 산업안전보건 관련 법규
    • +
    • 환경보호 관련 법규
    • +
    • 화학물질 관리 관련 법규
    • +
    • 건설안전 관련 법규
    • +
    • 소방안전 관련 법규
    • +
    • 기타 HSE 관련 규제 및 표준
    • +
    +
  • +
+ + +
+

3. 관련 문서

+
+
+

3.1 내부 문서

+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-610 - 기획 및 위험 관리 절차
  • +
  • TK-HSE-P-620 - 위험 평가 절차
  • +
  • TK-HSE-P-810 - 운영 기획 및 관리 절차
  • +
  • TK-HSE-P-1010 - 사건, 부적합 및 시정조치 절차
  • +
+ +

3.2 외부 참조 표준

+
    +
  • ISO 45001:2018 - 보건안전경영시스템 요구사항
  • +
  • ISO 14001:2015 - 환경경영시스템 요구사항
  • +
  • ISO 9001:2015 - 품질경영시스템 요구사항
  • +
+ +

3.3 주요 법적 요구사항

+
    +
  • 산업안전보건법 및 시행령, 시행규칙
  • +
  • 환경정책기본법 및 관련 법령
  • +
  • 대기환경보전법
  • +
  • 수질 및 수생태계 보전에 관한 법률
  • +
  • 폐기물관리법
  • +
  • 화학물질관리법
  • +
  • 소방기본법
  • +
  • 건설기술 진흥법
  • +
+
+ + +
+

4. 용어의 정의

+
+
+

4.1 법적 요구사항(Legal Requirements)

+

국가 또는 지역의 법률, 규정, 조례, 허가, 라이선스 및 기타 형태의 정부 인가에 따라 조직이 준수해야 하는 요구사항입니다.

+ +

4.2 기타 요구사항(Other Requirements)

+

조직이 준수하기로 선택하거나 채택한 기타 요구사항으로, 업계 표준, 고객 요구사항, 자발적 약속 등을 포함합니다.

+ +

4.3 준수 평가(Compliance Evaluation)

+

조직이 법적 요구사항 및 기타 요구사항에 얼마나 잘 부합하는지를 판단하는 과정입니다.

+ +

4.4 규제 감시(Regulatory Monitoring)

+

조직의 활동에 적용되는 법적 요구사항의 변경사항을 지속적으로 추적하고 식별하는 과정입니다.

+ +

4.5 법적 등록부(Legal Register)

+

조직에 적용되는 모든 법적 요구사항과 기타 요구사항을 체계적으로 문서화한 데이터베이스 또는 목록입니다.

+
+ + +
+

5. 역할과 책임

+
+
+

5.1 최고경영자

+
    +
  • 법적 요구사항 관리에 대한 최종 책임
  • +
  • 법적 요구사항 준수를 위한 자원 할당
  • +
  • 중대한 법적 이슈에 대한 의사결정
  • +
  • 법적 위반 사항에 대한 최종 승인 및 조치
  • +
+ +

5.2 HSE 관리책임자

+
    +
  • 법적 요구사항 관리 체계의 수립 및 운영
  • +
  • 법적 등록부의 구축 및 유지관리
  • +
  • 준수 평가 프로그램의 기획 및 실행
  • +
  • 법적 요구사항 변경에 대한 영향 평가
  • +
  • 관련 부서에 대한 교육 및 지원
  • +
+ +

5.3 법무팀

+
    +
  • 법적 요구사항의 해석 및 자문
  • +
  • 규제 변경사항의 법적 영향 분석
  • +
  • 허가 및 인가 절차 지원
  • +
  • 법적 분쟁 및 위반 사항 대응
  • +
+ +

5.4 부서장/현장 관리자

+
    +
  • 담당 영역의 법적 요구사항 식별 지원
  • +
  • 해당 법적 요구사항의 현장 적용 및 준수
  • +
  • 법적 요구사항 위반 가능성 보고
  • +
  • 개선 조치의 실행 및 모니터링
  • +
+ +

5.5 모든 근로자

+
    +
  • 적용 가능한 법적 요구사항의 숙지 및 준수
  • +
  • 법적 요구사항 위반 상황의 즉시 보고
  • +
  • 관련 교육 및 훈련 참여
  • +
+
+ + +
+

6. 법적 요구사항 관리 프로세스

+
+ +
+
식별
+ +
접근 및 확보
+ +
분석 및 평가
+

+
등록부 업데이트
+ +
의무사항 전파
+ +
준수 모니터링
+
+ +
+

6.1 법적 요구사항 식별

+

6.1.1 식별 방법

+
    +
  • 체계적 검토: 정기적인 법규 데이터베이스 검색
  • +
  • 전문 서비스 활용: 법률 자문 및 규제 모니터링 서비스
  • +
  • 업계 정보: 협회, 세미나, 컨퍼런스를 통한 정보 수집
  • +
  • 정부 기관: 관련 부처 및 지방자치단체 공지사항
  • +
  • 내부 제보: 직원, 고객, 협력업체로부터의 정보
  • +
+ +

6.1.2 식별 대상

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

6.2 법적 요구사항 접근 및 확보

+

6.2.1 정보 소스

+
    +
  • 공식 채널 +
      +
    • 국가법령정보센터 (www.law.go.kr)
    • +
    • 행정안전부 자치법규정보시스템
    • +
    • 관련 부처 공식 웹사이트
    • +
    +
  • +
  • 전문 서비스 +
      +
    • 법률 자문 서비스
    • +
    • 규제 모니터링 전문업체
    • +
    • 업계 전문 컨설팅
    • +
    +
  • +
  • 업계 네트워크 +
      +
    • 산업별 협회 및 단체
    • +
    • 전문 세미나 및 워크숍
    • +
    • 동종업계 정보 교류
    • +
    +
  • +
+ +

6.2.2 문서 관리

+
    +
  • 모든 법규 문서의 전자 파일 보관
  • +
  • 최신 버전 유지 및 이력 관리
  • +
  • 접근 권한 설정 및 보안 관리
  • +
  • 백업 및 복구 체계 구축
  • +
+
+ +
+

6.3 법적 요구사항 분석 및 평가

+

6.3.1 적용성 평가

+

다음 기준에 따라 각 법적 요구사항의 조직 적용성을 평가합니다:

+
    +
  • 지리적 범위: 사업장 위치에 따른 적용 법규
  • +
  • 업종별 적용: 사업 분야에 따른 특화 법규
  • +
  • 규모별 적용: 기업 규모, 시설 규모에 따른 차등 적용
  • +
  • 활동별 적용: 특정 활동 또는 공정에 대한 법규
  • +
+ +

6.3.2 영향 분석

+ + + + + + + + + + + + + + + + + + + + + + + +

6.3.3 갭 분석

+

현재 조직 상태와 법적 요구사항 간의 차이를 분석:

+
    +
  • 현재 준수 수준 평가
  • +
  • 필요한 개선사항 식별
  • +
  • 추가 자원 소요 분석
  • +
  • 이행 일정 수립
  • +
+
+ + +
+

7. 법적 등록부 관리

+
+
+

7.1 등록부 구조

+

법적 등록부는 다음 정보를 포함해야 합니다:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

7.2 등록부 유지관리

+
    +
  • 정기 업데이트: 월 1회 이상 내용 검토 및 업데이트
  • +
  • 버전 관리: 변경 이력 및 승인 기록 유지
  • +
  • 접근 관리: 부서별 차등 접근 권한 설정
  • +
  • 백업 관리: 정기적 백업 및 복구 테스트
  • +
+ +

7.3 등록부 품질 관리

+
    +
  • 데이터 정확성 검증
  • +
  • 중복 항목 제거
  • +
  • 폐지된 법규 아카이빙
  • +
  • 관련 문서 링크 유지
  • +
+
+ + +
+

8. 준수 평가

+
+
+

8.1 평가 계획

+

8.1.1 평가 주기

+ + + + + + + + + + + + + + + + + + + + + + + +

8.1.2 평가 방법

+
    +
  • 현장 점검: 직접 현장 방문을 통한 준수 상태 확인
  • +
  • 문서 검토: 관련 기록 및 보고서 분석
  • +
  • 인터뷰: 담당자 및 작업자 면담
  • +
  • 테스트: 필요시 측정 및 시험 실시
  • +
+ +

8.2 평가 실행

+

8.2.1 평가팀 구성

+
    +
  • 팀장: HSE 관리책임자 또는 지정된 담당자
  • +
  • 팀원: 관련 부서 전문가, 외부 전문가
  • +
  • 관찰자: 해당 부서 담당자
  • +
+ +

8.2.2 평가 절차

+
    +
  1. 평가 계획 수립 및 통보
  2. +
  3. 관련 자료 사전 검토
  4. +
  5. 현장 평가 실시
  6. +
  7. 발견사항 정리 및 확인
  8. +
  9. 평가 보고서 작성
  10. +
  11. 개선계획 수립
  12. +
+ +

8.3 준수 상태 분류

+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

9. 의사소통 및 교육

+
+
+

9.1 내부 의사소통

+

9.1.1 의사소통 채널

+
    +
  • 정기 회의: HSE 위원회, 부서별 회의
  • +
  • 교육 및 훈련: 신입사원, 보수교육
  • +
  • 공지사항: 인트라넷, 게시판, 이메일
  • +
  • 보고서: 월간/분기별 HSE 보고서
  • +
+ +

9.1.2 의사소통 내용

+
    +
  • 새로운 법적 요구사항 및 변경사항
  • +
  • 준수 평가 결과 및 개선계획
  • +
  • 위반 사례 및 교훈사항
  • +
  • 모범 사례 및 성공 스토리
  • +
+ +

9.2 교육 및 훈련

+

9.2.1 교육 프로그램

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

9.2.2 교육 효과성 평가

+
    +
  • 교육 이해도 테스트
  • +
  • 현장 적용 상황 점검
  • +
  • 참가자 만족도 조사
  • +
  • 행동 변화 모니터링
  • +
+
+ + +
+

10. 모니터링 및 검토

+
+
+

10.1 규제 변화 모니터링

+

10.1.1 모니터링 시스템

+
    +
  • 자동 알림 서비스: 법규 변경 알림 시스템 구축
  • +
  • 정기 검색: 주간 단위 법규 데이터베이스 검색
  • +
  • 전문가 네트워크: 법률 자문사, 컨설턴트 활용
  • +
  • 업계 정보: 협회, 세미나 참여를 통한 정보 수집
  • +
+ +

10.1.2 변경사항 대응

+
    +
  1. 변경사항 식별 및 분석
  2. +
  3. 조직 영향도 평가
  4. +
  5. 대응 계획 수립
  6. +
  7. 관련 부서 통보
  8. +
  9. 필요시 절차 및 시스템 업데이트
  10. +
  11. 교육 및 훈련 실시
  12. +
+ +

10.2 성과 모니터링

+

10.2.1 핵심 성과 지표 (KPI)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

10.2.2 보고 체계

+
    +
  • 월간 보고: 부서별 준수 현황
  • +
  • 분기 보고: 전사 종합 현황
  • +
  • 연간 보고: 성과 평가 및 개선계획
  • +
  • 특별 보고: 중대 위반 또는 변경사항
  • +
+ +

10.3 시스템 검토

+

10.3.1 정기 검토

+
    +
  • 분기 검토: 절차 적정성 및 효과성
  • +
  • 연간 검토: 전체 시스템 종합 평가
  • +
  • 특별 검토: 중대 변경 또는 사고 발생시
  • +
+ +

10.3.2 개선 활동

+
    +
  • 검토 결과에 따른 개선계획 수립
  • +
  • 절차 및 시스템 업데이트
  • +
  • 교육 프로그램 개선
  • +
  • 모니터링 시스템 강화
  • +
+
+ + +
+
+

11. 양식 및 서식

+
+ +
+

11.1 법적 요구사항 등록 양식

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

11.2 준수 평가 체크리스트

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

11.3 법규 변경 통보서

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+

12. 문서 관리

+
+
+ 문서 통제
+ 이 문서는 통제 문서입니다. 승인 없이 복사하거나 배포하지 마십시오.
+ 최신 버전은 회사 인트라넷에서 확인할 수 있습니다.
+ 문의사항은 HSE 관리부서로 연락하십시오. +
+
+ + +
+ +
+

TK-HSE-P-630

+

HSE Legal Requirements Management Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleHSE Legal Requirements Management Procedure
Document NumberTK-HSE-P-630
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+

1. PURPOSE

+
+

This procedure aims to provide a framework for systematically identifying, accessing, evaluating, and managing health, safety, and environmental (HSE) legal requirements related to Technicalkorea's business activities.

+

Through this, we ensure compliance with legal requirements, minimize risks from regulatory violations, and achieve improved HSE performance through continuous improvement.

+ +
+ Important: Identification and compliance with legal requirements is a core element of the organization's HSE management system and a mandatory requirement of ISO 45001:2018 and ISO 14001:2015. +
+ + +
+

2. SCOPE

+
+

This procedure applies to:

+
    +
  • All workplaces and operational activities of Technicalkorea
  • +
  • All domestic and international subsidiaries and affiliates
  • +
  • HSE-related activities with contractors and subcontractors
  • +
  • Entire life cycle of products and services
  • +
  • Legal requirements in the following areas: +
      +
    • Occupational health and safety regulations
    • +
    • Environmental protection regulations
    • +
    • Chemical substance management regulations
    • +
    • Construction safety regulations
    • +
    • Fire safety regulations
    • +
    • Other HSE-related regulations and standards
    • +
    +
  • +
+ + + + +
+

3. RELATED DOCUMENTS

+
+
+

3.1 Internal Documents

+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-610 - Planning and Risk Management Procedure
  • +
  • TK-HSE-P-620 - Risk Assessment Procedure
  • +
  • TK-HSE-P-810 - Operational Planning and Control Procedure
  • +
  • TK-HSE-P-1010 - Incident, Nonconformity and Corrective Action Procedure
  • +
+ +

3.2 External Reference Standards

+
    +
  • ISO 45001:2018 - Occupational Health and Safety Management Systems Requirements
  • +
  • ISO 14001:2015 - Environmental Management Systems Requirements
  • +
  • ISO 9001:2015 - Quality Management Systems Requirements
  • +
+ +

3.3 Key Legal Requirements

+
    +
  • Occupational Safety and Health Act and enforcement decrees and rules
  • +
  • Framework Act on Environmental Policy and related laws
  • +
  • Clean Air Conservation Act
  • +
  • Water Quality and Aquatic Ecosystem Conservation Act
  • +
  • Waste Management Act
  • +
  • Chemical Substances Control Act
  • +
  • Framework Act on Fire Services
  • +
  • Construction Technology Promotion Act
  • +
+
+ + +
+

4. TERMS AND DEFINITIONS

+
+
+

4.1 Legal Requirements

+

Requirements that an organization must comply with according to national or regional laws, regulations, ordinances, permits, licenses, and other forms of governmental authorization.

+ +

4.2 Other Requirements

+

Other requirements that the organization chooses to comply with or adopt, including industry standards, customer requirements, voluntary commitments, etc.

+ +

4.3 Compliance Evaluation

+

The process of determining how well an organization conforms to legal requirements and other requirements.

+ +

4.4 Regulatory Monitoring

+

The process of continuously tracking and identifying changes in legal requirements applicable to the organization's activities.

+ +

4.5 Legal Register

+

A database or list that systematically documents all legal requirements and other requirements applicable to the organization.

+
+ + +
+

5. ROLES AND RESPONSIBILITIES

+
+
+

5.1 Top Management

+
    +
  • Ultimate responsibility for legal requirements management
  • +
  • Resource allocation for legal requirements compliance
  • +
  • Decision-making on significant legal issues
  • +
  • Final approval and action on legal violations
  • +
+ +

5.2 HSE Manager

+
    +
  • Establishment and operation of legal requirements management system
  • +
  • Construction and maintenance of legal register
  • +
  • Planning and execution of compliance evaluation programs
  • +
  • Impact assessment of legal requirements changes
  • +
  • Training and support for related departments
  • +
+ +

5.3 Legal Team

+
    +
  • Interpretation and consultation on legal requirements
  • +
  • Legal impact analysis of regulatory changes
  • +
  • Support for permit and authorization procedures
  • +
  • Response to legal disputes and violations
  • +
+ +

5.4 Department Heads/Site Managers

+
    +
  • Support identification of legal requirements in their areas
  • +
  • Site application and compliance with applicable legal requirements
  • +
  • Report potential legal requirement violations
  • +
  • Implementation and monitoring of improvement measures
  • +
+ +

5.5 All Workers

+
    +
  • Understanding and compliance with applicable legal requirements
  • +
  • Immediate reporting of legal requirement violation situations
  • +
  • Participation in related education and training
  • +
+
+ + +
+

6. LEGAL REQUIREMENTS MANAGEMENT PROCESS

+
+ +
+
Identification
+ +
Access & Acquisition
+ +
Analysis & Evaluation
+

+
Register Update
+ +
Dissemination
+ +
Compliance Monitoring
+
+ +
+

6.1 Legal Requirements Identification

+

6.1.1 Identification Methods

+
    +
  • Systematic Review: Regular legal database searches
  • +
  • Professional Services: Legal consultation and regulatory monitoring services
  • +
  • Industry Information: Information gathering through associations, seminars, conferences
  • +
  • Government Agencies: Notices from relevant ministries and local governments
  • +
  • Internal Reports: Information from employees, customers, contractors
  • +
+ +

6.1.2 Identification Targets

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

6.2 Legal Requirements Access and Acquisition

+

6.2.1 Information Sources

+
    +
  • Official Channels +
      +
    • Korea Law Information Center (www.law.go.kr)
    • +
    • Local Regulations Information System
    • +
    • Official websites of relevant ministries
    • +
    +
  • +
  • Professional Services +
      +
    • Legal consultation services
    • +
    • Regulatory monitoring specialists
    • +
    • Industry-specific consulting
    • +
    +
  • +
  • Industry Networks +
      +
    • Industry associations and organizations
    • +
    • Professional seminars and workshops
    • +
    • Peer industry information exchange
    • +
    +
  • +
+ +

6.2.2 Document Management

+
    +
  • Electronic file storage of all regulatory documents
  • +
  • Latest version maintenance and history management
  • +
  • Access permission settings and security management
  • +
  • Backup and recovery system establishment
  • +
+
+ +
+

6.3 Legal Requirements Analysis and Evaluation

+

6.3.1 Applicability Assessment

+

Evaluate the organizational applicability of each legal requirement according to the following criteria:

+
    +
  • Geographic Scope: Applicable regulations by workplace location
  • +
  • Industry-specific Application: Specialized regulations by business sector
  • +
  • Scale-based Application: Differential application by company size, facility scale
  • +
  • Activity-specific Application: Regulations for specific activities or processes
  • +
+ +

6.3.2 Impact Analysis

+ + + + + + + + + + + + + + + + + + + + + + + +

6.3.3 Gap Analysis

+

Analyze differences between current organizational status and legal requirements:

+
    +
  • Current compliance level assessment
  • +
  • Identification of necessary improvements
  • +
  • Additional resource requirement analysis
  • +
  • Implementation schedule establishment
  • +
+
+ + +
+

7. LEGAL REGISTER MANAGEMENT

+
+
+

7.1 Register Structure

+

The legal register must include the following information:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

7.2 Register Maintenance

+
    +
  • Regular Updates: Content review and update at least monthly
  • +
  • Version Control: Maintain change history and approval records
  • +
  • Access Management: Set differential access permissions by department
  • +
  • Backup Management: Regular backup and recovery testing
  • +
+ +

7.3 Register Quality Management

+
    +
  • Data accuracy verification
  • +
  • Duplicate item removal
  • +
  • Archiving of repealed regulations
  • +
  • Maintenance of related document links
  • +
+
+ + +
+

8. COMPLIANCE EVALUATION

+
+
+

8.1 Evaluation Planning

+

8.1.1 Evaluation Frequency

+ + + + + + + + + + + + + + + + + + + + + + + +

8.1.2 Evaluation Methods

+
    +
  • Site Inspection: Direct site visits to verify compliance status
  • +
  • Document Review: Analysis of related records and reports
  • +
  • Interviews: Interviews with responsible persons and workers
  • +
  • Testing: Measurement and testing when necessary
  • +
+ +

8.2 Evaluation Implementation

+

8.2.1 Evaluation Team Composition

+
    +
  • Team Leader: HSE Manager or designated person
  • +
  • Team Members: Related department experts, external experts
  • +
  • Observers: Department representatives
  • +
+ +

8.2.2 Evaluation Procedure

+
    +
  1. Evaluation plan establishment and notification
  2. +
  3. Preliminary review of related materials
  4. +
  5. Site evaluation implementation
  6. +
  7. Findings compilation and confirmation
  8. +
  9. Evaluation report preparation
  10. +
  11. Improvement plan establishment
  12. +
+ +

8.3 Compliance Status Classification

+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

9. COMMUNICATION AND TRAINING

+
+
+

9.1 Internal Communication

+

9.1.1 Communication Channels

+
    +
  • Regular Meetings: HSE committee, departmental meetings
  • +
  • Education and Training: New employee, refresher training
  • +
  • Announcements: Intranet, bulletin boards, email
  • +
  • Reports: Monthly/quarterly HSE reports
  • +
+ +

9.1.2 Communication Content

+
    +
  • New legal requirements and changes
  • +
  • Compliance evaluation results and improvement plans
  • +
  • Violation cases and lessons learned
  • +
  • Best practices and success stories
  • +
+ +

9.2 Education and Training

+

9.2.1 Training Programs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

9.2.2 Training Effectiveness Evaluation

+
    +
  • Training comprehension tests
  • +
  • Field application situation checks
  • +
  • Participant satisfaction surveys
  • +
  • Behavioral change monitoring
  • +
+
+ + +
+

10. MONITORING AND REVIEW

+
+
+

10.1 Regulatory Change Monitoring

+

10.1.1 Monitoring System

+
    +
  • Automatic Alert Service: Regulatory change alert system establishment
  • +
  • Regular Search: Weekly regulatory database searches
  • +
  • Expert Network: Utilization of legal advisors, consultants
  • +
  • Industry Information: Information gathering through associations, seminars
  • +
+ +

10.1.2 Change Response

+
    +
  1. Change identification and analysis
  2. +
  3. Organizational impact assessment
  4. +
  5. Response plan establishment
  6. +
  7. Notification to related departments
  8. +
  9. Procedure and system updates when necessary
  10. +
  11. Education and training implementation
  12. +
+ +

10.2 Performance Monitoring

+

10.2.1 Key Performance Indicators (KPI)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

10.2.2 Reporting Structure

+
    +
  • Monthly Report: Departmental compliance status
  • +
  • Quarterly Report: Company-wide comprehensive status
  • +
  • Annual Report: Performance evaluation and improvement plan
  • +
  • Special Report: Major violations or changes
  • +
+ +

10.3 System Review

+

10.3.1 Regular Review

+
    +
  • Quarterly Review: Procedure adequacy and effectiveness
  • +
  • Annual Review: Comprehensive evaluation of entire system
  • +
  • Special Review: Upon major changes or incident occurrence
  • +
+ +

10.3.2 Improvement Activities

+
    +
  • Improvement plan establishment based on review results
  • +
  • Procedure and system updates
  • +
  • Training program improvements
  • +
  • Monitoring system enhancement
  • +
+
+ + +
+
+

11. FORMS AND TEMPLATES

+
+ +
+

11.1 Legal Requirements Registration Form

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

11.2 Compliance Evaluation Checklist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

11.3 Regulatory Change Notification

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+

12. DOCUMENT CONTROL

+
+
+ Document Control
+ This is a controlled document. Do not copy or distribute without authorization.
+ The latest version can be found on the company intranet.
+ For inquiries, contact the HSE Management Department. +
+
+
+ + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/index.html b/deploy/tkfb-package/fastapi-bridge/static/docs/index.html new file mode 100644 index 0000000..7cec773 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/index.html @@ -0,0 +1,295 @@ + + + + + + 테크니컬코리아 문서 시스템 + + + +
+
+

테크니컬코리아 문서 시스템

+

회사 규정 및 절차서 열람 시스템

+
+ +
+
+ +
+

HSE 관리시스템

+

ISO 45001:2018 기반 안전보건환경 관련 절차서

+ 바로가기 +
+ + +
+

품질 관리시스템

+

ISO 9001 기반 품질관리 절차 및 매뉴얼

+ 바로가기 +
+ + +
+

인사 규정

+

인사관리 규정 및 지침서

+ 바로가기 +
+ + +
+

기술 문서

+

설계 표준, 용접절차, BOM 시스템 가이드라인

+ 바로가기 +
+ + +
+

경영 방침

+

회사 방침, 윤리강령 및 정책 문서

+ 바로가기 +
+ + +
+

문서 검색

+ +
+
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

http://192.168.0.3:10080/docs

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/iso45001_bilingual_manual.html b/deploy/tkfb-package/fastapi-bridge/static/docs/iso45001_bilingual_manual.html new file mode 100644 index 0000000..d187ab0 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/iso45001_bilingual_manual.html @@ -0,0 +1,1469 @@ + + + + + + ISO 45001:2018 HSE 관리시스템 매뉴얼 + + + +
+ +
+ + +
+ + +
+ +
+

ISO 45001:2018

+

보건, 안전 및 환경 관리시스템 매뉴얼

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목HSE 관리시스템 매뉴얼
문서 번호TK-HSE-001
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+

목차 및 개정 이력

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호제목개정 번호개정 일자
1목차 및 개정 이력
21. 적용 범위
32. 인용 표준
43. 용어와 정의
54. 조직의 상황
65. 리더십과 근로자 참여
76. 기획
87. 지원
98. 운영
109. 성과 평가
1110. 개선
+ +

문서 개정 이력

+ + + + + + + + + + + + + + + + + + + + + + + + + +
개정일자수정 문서개정 내용 및 사유
02025.01.03ISO 45001:2018 HSE 관리시스템 구현 - 초기 생성
1
2
+
+ + +
+
+

1. 적용 범위

+
+ +

본 보건, 안전 및 환경 관리시스템 매뉴얼은 테크니컬코리아(이하 "회사"라 함)의 HSE 관리시스템 문서 중 최상위 문서로서, 국제표준 ISO 45001:2018의 요구사항에 따라 작성, 운영 및 유지됩니다.

+ +

본 HSE 관리시스템 매뉴얼은 테크니컬코리아가 수행하는 사업 범위 내에서 조직 관리부터 기획, 영업, 계약, 자재 조달 및 제조, 공정 실행, 관련 제품 및 서비스 활동에 이르기까지 전체 사업 범위에 걸쳐 보건, 안전 및 환경 활동을 수행하는 임직원에게 적용되며, 모든 이해관계자로부터 지속적으로 신뢰를 확보하고 향상시키기 위해 작성, 운영 및 유지됩니다.

+
+ + +
+
+

2. 인용 표준

+
+ +

본 HSE 관리시스템 매뉴얼은 국제표준 "ISO 45001:2018"의 요구사항을 적용하여 작성되었습니다. 본 HSE 관리시스템 매뉴얼 및 관련 문서는 국제표준의 개정이나 업무 개선의 필요에 따라 수정되어야 합니다.

+
+ + +
+
+

3. 용어와 정의

+
+ +

본 매뉴얼에서 사용하는 모든 용어는 "ISO 45001:2018"의 정의를 따르며, 정의되지 않은 용어는 관련 법령 및 테크니컬코리아의 규정이나 규칙에서 정한 정의를 따릅니다. 다만, 하위 규정에서 필요한 용어의 정의는 별도로 정할 수 있습니다.

+ +
+
조직의 상황:
+
목표를 달성하기 위한 조직의 접근 방식을 개발하는 데 영향을 줄 수 있는 내부 및 외부 이슈의 조합
+ +
이해관계자:
+
결정이나 활동에 영향을 주거나, 영향을 받거나, 영향을 받는다고 인식하는 개인이나 조직
+ +
의사소통:
+
조직 구성원 간에 생각이나 감정을 교환하는 포괄적인 행위
+ +
위험:
+
불확실성의 영향
+ +
위험과 기회:
+
잠재적 부정적 영향(위협)과 잠재적 유익한 영향(기회)
+ +
문서화된 정보:
+
조직이 관리하고 유지해야 하는 정보와 이를 포함하는 매체
+ +
HSE 관리시스템:
+
HSE 정책을 달성하기 위해 사용되는 관리시스템 또는 관리시스템의 일부
+ +
준수 의무:
+
조직이 준수해야 하거나 준수하기로 선택한 법적 요구사항 및 기타 요구사항
+ +
근로자:
+
조직의 통제 하에서 일이나 일과 관련된 활동을 수행하는 사람
+ +
참여:
+
의사결정 과정에 관여하는 것
+ +
협의:
+
결정을 내리기 전에 견해를 구하는 것
+ +
작업장:
+
근로 목적으로 사람이 있어야 하거나 가야 하는 조직의 통제 하에 있는 장소
+ +
계약업체:
+
합의된 규격, 조건에 따라 조직에 서비스를 제공하는 외부 조직
+ +
부상과 건강악화:
+
사람의 신체적, 정신적 또는 인지적 상태에 대한 부정적 영향
+ +
유해요인:
+
부상과 건강악화를 일으킬 잠재성을 가진 근원
+ +
사건:
+
일로부터 발생하거나 일의 과정에서 발생하여 부상과 건강악화를 일으킬 수 있거나 일으키는 사건
+
+
+ + + + + +
+
+

4. 조직의 상황

+
+ +
+

4.1 조직과 조직의 상황 이해

+

조직은 조직의 목적과 관련이 있고 HSE 관리시스템의 의도된 결과를 달성하는 능력에 영향을 주는 외부 및 내부 이슈를 결정해야 합니다.

+ +

외부 이슈에는 다음이 포함됩니다:

+
    +
  • 문화적, 사회적, 정치적, 법적, 재정적, 기술적, 경제적 및 자연 환경
  • +
  • 새로운 경쟁업체, 계약업체, 공급업체, 파트너 및 제공업체
  • +
  • 제품 및 OH&S 영향에 대한 새로운 지식
  • +
  • 산업 또는 부문과 관련된 주요 동향 및 추진요인
  • +
  • 외부 이해관계자의 관계, 인식 및 가치
  • +
+ +

내부 이슈에는 다음이 포함됩니다:

+
    +
  • 거버넌스, 조직 구조, 역할 및 책임
  • +
  • 정책, 목표 및 이를 달성하기 위한 전략
  • +
  • 자원, 지식 및 역량 측면에서의 능력
  • +
  • 정보 시스템, 정보 흐름 및 의사결정 과정
  • +
  • 근로자와의 관계, 그들의 인식 및 가치
  • +
  • 조직 문화
  • +
+
+ +
+

4.2 근로자 및 기타 이해관계자의 필요와 기대 이해

+

조직은 다음을 결정해야 합니다:

+
    +
  • HSE 관리시스템과 관련된 근로자 및 기타 이해관계자
  • +
  • 이러한 근로자 및 기타 이해관계자의 필요와 기대
  • +
  • 이러한 필요와 기대 중 법적 요구사항 및 기타 요구사항인 것
  • +
+
+ +
+

4.3 HSE 관리시스템의 적용 범위 결정

+

조직은 적용 범위를 정하기 위해 HSE 관리시스템의 경계와 적용 가능성을 결정해야 합니다. 적용 범위는 조직의 HSE 성과에 영향을 줄 수 있는 조직의 통제 또는 영향 하에 있는 활동, 제품 및 서비스를 포함해야 합니다.

+
+ +
+

4.4 HSE 관리시스템

+

조직은 이 국제표준의 요구사항에 따라 필요한 프로세스와 그들의 상호작용을 포함하여 HSE 관리시스템을 수립, 실행, 유지 및 지속적으로 개선해야 합니다.

+
+
+ + +
+
+

5. 리더십과 근로자 참여

+
+ +
+

5.1 리더십과 의지

+

최고경영자는 다음을 통해 HSE 관리시스템에 대한 리더십과 의지를 실증해야 합니다:

+
    +
  • 업무 관련 부상과 건강악화 예방에 대한 전반적인 책임지기
  • +
  • HSE 정책과 목표가 수립되고 전략적 방향과 양립할 수 있도록 보장
  • +
  • HSE 관리시스템 요구사항의 사업 프로세스 통합 보장
  • +
  • 필요한 자원을 이용할 수 있도록 보장
  • +
  • 효과적인 HSE 관리의 중요성 의사소통
  • +
  • HSE 관리시스템이 의도된 결과를 달성하도록 보장
  • +
  • 지속적 개선 촉진
  • +
  • 사건, 유해요인, 위험 및 기회를 보고할 때 근로자를 보복으로부터 보호
  • +
+
+ +
+

5.2 HSE 정책

+

최고경영자는 다음과 같은 HSE 정책을 수립, 실행 및 유지해야 합니다:

+
    +
  • 안전하고 건강한 작업 조건을 제공하겠다는 의지 포함
  • +
  • HSE 목표 설정을 위한 프레임워크 제공
  • +
  • 법적 요구사항 및 기타 요구사항을 충족하겠다는 의지 포함
  • +
  • 유해요인을 제거하고 HSE 위험을 감소시키겠다는 의지 포함
  • +
  • 지속적 개선에 대한 의지 포함
  • +
  • 근로자의 협의와 참여에 대한 의지 포함
  • +
+
+ +
+

5.3 조직의 역할, 책임 및 권한

+

최고경영자는 관련 역할에 대한 책임과 권한이 조직 내에서 할당, 의사소통 및 이해되도록 보장해야 합니다. 모든 수준의 근로자는 자신이 통제하는 OH&S 관리시스템의 측면에 대해 책임을 져야 합니다.

+
+ +
+

5.4 근로자의 협의와 참여

+

조직은 OH&S 관리시스템의 개발, 기획, 실행, 성과 평가 및 개선을 위한 조치에서 근로자의 협의와 참여를 위한 프로세스를 수립해야 합니다.

+
+
+ + +
+
+

6. 기획

+
+ +
+

6.1 위험과 기회를 다루는 조치

+

6.1.1 일반

+

HSE 관리시스템을 기획할 때, 조직은 다음을 위해 다루어야 할 위험과 기회를 결정해야 합니다:

+
    +
  • HSE 관리시스템이 의도된 결과를 달성할 수 있다는 확신 제공
  • +
  • 바람직하지 않은 영향 예방 또는 감소
  • +
  • 지속적 개선 달성
  • +
+ +

6.1.2 유해요인 식별 및 위험과 기회의 평가

+

조직은 다음을 고려하여 지속적이고 사전 예방적인 유해요인 식별을 위한 프로세스를 수립해야 합니다:

+
    +
  • 업무가 조직되는 방법, 사회적 요인, 리더십 및 조직 문화
  • +
  • 일상적 및 비일상적 활동과 상황
  • +
  • 기반시설, 장비, 재료, 물질 및 물리적 조건
  • +
  • 과거의 관련 사건 및 잠재적 비상 상황
  • +
  • 작업장에 접근하는 사람들
  • +
+ +

6.1.3 법적 요구사항 및 기타 요구사항의 결정

+

조직은 유해요인, HSE 위험 및 HSE 관리시스템에 적용되는 최신 법적 요구사항 및 기타 요구사항을 결정하고 접근할 수 있는 프로세스를 수립해야 합니다.

+ +

6.1.4 조치 기획

+

조직은 위험과 기회, 법적 요구사항 및 비상 상황을 다루기 위한 조치를 기획해야 합니다.

+
+ +
+

6.2 HSE 목표 및 이를 달성하기 위한 기획

+

조직은 관련 기능과 수준에서 HSE 목표를 수립해야 합니다. HSE 목표는 다음과 같아야 합니다:

+
    +
  • HSE 정책과 일치
  • +
  • 측정 가능하거나 성과 평가가 가능
  • +
  • 적용 가능한 요구사항 고려
  • +
  • 모니터링되고 의사소통됨
  • +
  • 적절하게 갱신됨
  • +
+
+
+ + +
+
+

7. 지원

+
+ +
+

7.1 자원

+

조직은 HSE 관리시스템의 수립, 실행, 유지 및 지속적 개선에 필요한 자원을 결정하고 제공해야 합니다.

+
+ +
+

7.2 역량

+

조직은 다음을 해야 합니다:

+
    +
  • HSE 성과에 영향을 주는 근로자의 필요한 역량 결정
  • +
  • 적절한 교육, 훈련 또는 경험에 기반하여 근로자가 역량을 갖추도록 보장
  • +
  • 필요한 역량을 획득하고 유지하기 위한 조치 취하기
  • +
  • 역량의 증거로서 문서화된 정보 보존
  • +
+
+ +
+

7.3 인식

+

근로자는 다음에 대해 인식하도록 해야 합니다:

+
    +
  • HSE 정책과 HSE 목표
  • +
  • HSE 관리시스템의 효과성에 대한 자신의 기여
  • +
  • HSE 관리시스템 요구사항에 부합하지 않는 것의 의미
  • +
  • 자신과 관련된 사건 및 조사 결과
  • +
  • 자신과 관련된 유해요인, HSE 위험 및 결정된 조치
  • +
+
+ +
+

7.4 의사소통

+

조직은 HSE 관리시스템과 관련된 내부 및 외부 의사소통을 위한 프로세스를 수립하여 무엇을, 언제, 누구와, 어떻게 의사소통할지를 결정해야 합니다.

+
+ +
+

7.5 문서화된 정보

+

조직의 HSE 관리시스템은 이 표준에서 요구하는 문서화된 정보와 HSE 관리시스템의 효과성에 필요하다고 조직이 결정한 문서화된 정보를 포함해야 합니다.

+
+
+ + +
+
+

8. 운영

+
+ +
+

8.1 운영 기획 및 관리

+

조직은 프로세스에 대한 기준을 수립하고 기준에 따라 관리를 실행함으로써 HSE 관리시스템 요구사항을 충족하는 데 필요한 프로세스를 기획, 실행, 관리 및 유지해야 합니다.

+ +

8.1.2 유해요인 제거 및 HSE 위험 감소

+

조직은 다음 관리 체계를 사용하여 유해요인 제거 및 HSE 위험 감소를 위한 프로세스를 수립해야 합니다:

+
    +
  • 유해요인 제거
  • +
  • 덜 위험한 프로세스, 운영, 재료 또는 장비로 대체
  • +
  • 공학적 관리 및 업무 재조직 사용
  • +
  • 훈련을 포함한 관리적 관리 사용
  • +
  • 적절한 개인보호장비 사용
  • +
+ +

8.1.3 변경 관리

+

조직은 OH&S 성과에 영향을 주는 계획된 임시 및 영구 변경의 실행 및 관리를 위한 프로세스를 수립해야 합니다.

+ +

8.1.4 조달

+

조직은 제품 및 서비스의 조달을 관리하고 계약업체와 협력하여 유해요인을 식별하고 HSE 위험을 평가 및 관리하는 프로세스를 수립해야 합니다.

+
+ +
+

8.2 비상 대비 및 대응

+

조직은 다음을 통해 잠재적 비상 상황을 대비하고 대응하는 프로세스를 수립해야 합니다:

+
    +
  • 비상 상황에 대한 계획된 대응 수립
  • +
  • 계획된 대응을 위한 훈련 제공
  • +
  • 계획된 대응 능력을 주기적으로 시험 및 연습
  • +
  • 성과를 평가하고 필요시 계획된 대응 수정
  • +
  • 모든 관련 당사자에게 의무와 책임 의사소통
  • +
+
+
+ + +
+
+

9. 성과 평가

+
+ +
+

9.1 모니터링, 측정, 분석 및 성과 평가

+

조직은 모니터링과 측정이 필요한 것, 모니터링 방법, 평가 기준, 모니터링과 측정을 수행해야 하는 시기를 결정하기 위해 모니터링, 측정, 분석 및 성과 평가를 위한 프로세스를 수립해야 합니다.

+ +

9.1.2 준수 평가

+

조직은 법적 요구사항 및 기타 요구사항에 대한 준수를 평가하는 프로세스를 수립해야 합니다.

+
+ +
+

9.2 내부 심사

+

조직은 HSE 관리시스템이 조직의 요구사항과 이 국제표준에 적합한지, 효과적으로 실행되고 유지되는지에 대한 정보를 제공하기 위해 계획된 주기로 내부 심사를 실시해야 합니다.

+
+ +
+

9.3 경영 검토

+

최고경영자는 조직의 HSE 관리시스템이 지속적으로 적절하고, 충분하며, 효과적임을 보장하기 위해 계획된 주기로 검토해야 합니다. 경영 검토는 다음을 고려해야 합니다:

+
    +
  • 이전 경영 검토의 조치 상태
  • +
  • 외부 및 내부 이슈의 변화
  • +
  • HSE 성과에 대한 정보
  • +
  • 자원의 적절성
  • +
  • 지속적 개선 기회
  • +
+
+
+ + +
+
+

10. 개선

+
+ +
+

10.1 일반

+

조직은 HSE 관리시스템의 의도된 결과를 달성하기 위해 개선 기회를 결정하고 필요한 조치를 실행해야 합니다.

+
+ +
+

10.2 사건, 부적합 및 시정조치

+

사건이나 부적합이 발생할 때, 조직은 다음을 해야 합니다:

+
    +
  • 사건이나 부적합에 시기적절하게 대응
  • +
  • 근본 원인을 제거하기 위한 시정조치의 필요성 평가
  • +
  • 시정조치를 포함하여 필요한 모든 조치 실행
  • +
  • 취한 조치의 효과성 검토
  • +
  • 필요시 HSE 관리시스템 변경
  • +
+
+ +
+

10.3 지속적 개선

+

조직은 다음을 위해 HSE 관리시스템의 적절성, 충분성 및 효과성을 지속적으로 개선해야 합니다:

+
    +
  • HSE 성과 향상
  • +
  • HSE 관리시스템을 지원하는 문화 촉진
  • +
  • 지속적 개선을 위한 조치 실행에서 근로자 참여 촉진
  • +
  • 지속적 개선의 관련 결과를 근로자에게 의사소통
  • +
+
+
+ + +
+
+

관련 문서

+
+ +
    +
  1. TK-HSE-P-410 - 조직 상황 이해 및 HSE 관리시스템 운영 절차
  2. +
  3. TK-HSE-P-510 - 리더십 및 정책 수립 절차
  4. +
  5. TK-HSE-P-520 - 조직 편성 및 직무 배정 절차
  6. +
  7. TK-HSE-P-610 - 기획 및 위험 관리 절차
  8. +
  9. TK-HSE-P-620 - 위험 평가 절차
  10. +
  11. TK-HSE-P-630 - HSE 법적 요구사항 관리 절차
  12. +
  13. TK-HSE-P-640 - HSE 목표 관리 절차
  14. +
  15. TK-HSE-P-710 - 자원 관리 절차
  16. +
  17. TK-HSE-P-720 - 교육 및 훈련 관리 절차
  18. +
  19. TK-HSE-P-730 - 인식 및 의사소통 절차
  20. +
  21. TK-HSE-P-740 - 문서화된 정보 관리 절차
  22. +
  23. TK-HSE-P-810 - 운영 기획 및 관리 절차
  24. +
  25. TK-HSE-P-820 - 비상 대비 및 대응 절차
  26. +
  27. TK-HSE-P-910 - 프로세스 성과 관리 절차
  28. +
  29. TK-HSE-P-920 - HSE 모니터링 및 측정 관리 절차
  30. +
  31. TK-HSE-P-930 - 내부 심사 절차
  32. +
  33. TK-HSE-P-940 - 경영 검토 절차
  34. +
  35. TK-HSE-P-1010 - 사건, 부적합 및 시정조치 절차
  36. +
  37. TK-HSE-P-1020 - 지속적 개선 절차
  38. +
+
+ + +
+
+

문서 관리

+
+ +

이것은 통제 문서입니다

+

승인 없이 복사하지 마십시오

+

최신 버전은 회사 인트라넷에서 확인할 수 있습니다

+

이 문서에 대한 문의사항은 HSE 관리부서로 연락하십시오

+
+ +
+ + +
+ +
+

ISO 45001:2018

+

Health, Safety and Environment Management System Manual

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleHSE Management System Manual
Document NumberTK-HSE-001
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+

TABLE OF CONTENTS AND REVISION HISTORY

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
No.TitleRevision No.Revision Date
1Table of Contents and Revision History
21. Scope
32. Normative References
43. Terms and Definitions
54. Context of the Organization
65. Leadership and Worker Participation
76. Planning
87. Support
98. Operation
109. Performance Evaluation
1110. Improvement
+ +

Document Revision History

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RevisionDateModified DocumentContent and Reason for Revision
02025.01.03ISO 45001:2018 HSE Management System Implementation - Initial Creation
1
2
+
+ + +
+
+

1. SCOPE

+
+ +

This Health, Safety and Environment Management System Manual is the highest-level document among the HSE management system documents of Technicalkorea (hereinafter referred to as "the Company"). It is prepared, operated, and maintained in accordance with the requirements of the international standard ISO 45001:2018.

+ +

This HSE Management System Manual applies to employees who perform health, safety and environment activities throughout the entire business scope, from organizational management to planning, sales, contracting, procurement and manufacturing of materials, process execution, and related product and service activities within the business scope that Technicalkorea performs. It is prepared, operated, and maintained to continuously secure and improve trust from all stakeholders.

+
+ + +
+
+

2. NORMATIVE REFERENCES

+
+ +

This HSE Management System Manual is prepared by applying the requirements of the international standard "ISO 45001:2018". This HSE Management System Manual and related documents shall be revised when necessary for the revision of international standards or improvement of work.

+
+ + +
+
+

3. TERMS AND DEFINITIONS

+
+ +

All terms used in this manual follow the definitions in "ISO 45001:2018", and undefined terms shall follow the definitions prescribed in related laws and regulations and Technicalkorea's regulations or rules. However, definitions of necessary terms in subordinate regulations may be separately established.

+ +
+
Context of the organization:
+
Combination of internal and external issues that can influence the organization's approach to developing and achieving its objectives
+ +
Interested party:
+
Person or organization that can affect, be affected by, or perceive themselves to be affected by a decision or activity
+ +
Communication:
+
Comprehensive act of exchanging thoughts or feelings among organization members
+ +
Risk:
+
Effect of uncertainty
+ +
Risk and opportunities:
+
Potential adverse effects (threats) and potential beneficial effects (opportunities)
+ +
Documented information:
+
Information required to be controlled and maintained by the organization and the medium containing it
+ +
HSE management system:
+
Management system or part of a management system used to achieve the HSE policy
+ +
Compliance obligations:
+
Legal requirements and other requirements that an organization has to comply with or chooses to comply with
+ +
Worker:
+
Person performing work or work-related activities under the control of the organization
+ +
Participation:
+
Involvement in decision-making processes
+ +
Consultation:
+
Seeking views before making a decision
+ +
Workplace:
+
Place under the control of the organization where a person needs to be or to go for work purposes
+ +
Contractor:
+
External organization providing services to the organization according to agreed specifications, terms and conditions
+ +
Injury and ill health:
+
Adverse effect on the physical, mental or cognitive condition of a person
+ +
Hazard:
+
Source with a potential to cause injury and ill health
+ +
Incident:
+
Occurrence arising from or in the course of work that could or does result in injury and ill health
+
+
+ + +
+
+

4. CONTEXT OF THE ORGANIZATION

+
+ +
+

4.1 Understanding the organization and its context

+

The organization shall determine external and internal issues that are relevant to its purpose and that affect its ability to achieve the intended outcomes of its HSE management system.

+ +

External issues include:

+
    +
  • Cultural, social, political, legal, financial, technological, economic and natural environment
  • +
  • New competitors, contractors, suppliers, partners and providers
  • +
  • New knowledge about products and OH&S impacts
  • +
  • Key trends and drivers related to the industry or sector
  • +
  • Relationships, perceptions and values of external interested parties
  • +
+ +

Internal issues include:

+
    +
  • Governance, organizational structure, roles and accountabilities
  • +
  • Policies, objectives and strategies to achieve them
  • +
  • Capabilities in terms of resources, knowledge and competencies
  • +
  • Information systems, information flows and decision-making processes
  • +
  • Relationships with workers, their perceptions and values
  • +
  • Organizational culture
  • +
+
+ +
+

4.2 Understanding the needs and expectations of workers and other interested parties

+

The organization shall determine:

+
    +
  • Workers and other interested parties relevant to the HSE management system
  • +
  • The needs and expectations of these workers and other interested parties
  • +
  • Which of these needs and expectations are legal requirements and other requirements
  • +
+
+ +
+

4.3 Determining the scope of the HSE management system

+

The organization shall determine the boundaries and applicability of the HSE management system to establish its scope. The scope shall include activities, products and services within the organization's control or influence that can affect the organization's HSE performance.

+
+ +
+

4.4 HSE management system

+

The organization shall establish, implement, maintain and continually improve an HSE management system, including the processes needed and their interactions, in accordance with the requirements of this international standard.

+
+
+ + +
+
+

5. LEADERSHIP AND WORKER PARTICIPATION

+
+ +
+

5.1 Leadership and commitment

+

Top management shall demonstrate leadership and commitment with respect to the HSE management system by:

+
    +
  • Taking overall responsibility for the prevention of work-related injury and ill health
  • +
  • Ensuring that the HSE policy and objectives are established and compatible with strategic direction
  • +
  • Ensuring integration of HSE management system requirements into business processes
  • +
  • Ensuring that necessary resources are available
  • +
  • Communicating the importance of effective HSE management
  • +
  • Ensuring the HSE management system achieves its intended outcomes
  • +
  • Promoting continual improvement
  • +
  • Protecting workers from reprisals when reporting incidents, hazards, risks and opportunities
  • +
+
+ +
+

5.2 HSE policy

+

Top management shall establish, implement and maintain an HSE policy that:

+
    +
  • Includes a commitment to provide safe and healthy working conditions
  • +
  • Provides a framework for setting HSE objectives
  • +
  • Includes a commitment to fulfill legal requirements and other requirements
  • +
  • Includes a commitment to eliminate hazards and reduce HSE risks
  • +
  • Includes a commitment to continual improvement
  • +
  • Includes a commitment to consultation and participation of workers
  • +
+
+ +
+

5.3 Organizational roles, responsibilities and authorities

+

Top management shall ensure that responsibilities and authorities for relevant roles are assigned, communicated and understood within the organization. Workers at all levels shall take responsibility for those aspects of the OH&S management system over which they have control.

+
+ +
+

5.4 Consultation and participation of workers

+

The organization shall establish processes for consultation and participation of workers in the development, planning, implementation, performance evaluation and actions for improvement of the OH&S management system.

+
+
+ + +
+
+

6. PLANNING

+
+ +
+

6.1 Actions to address risks and opportunities

+

6.1.1 General

+

When planning for the HSE management system, the organization shall determine the risks and opportunities that need to be addressed to:

+
    +
  • Give assurance that the HSE management system can achieve its intended outcomes
  • +
  • Prevent, or reduce, undesired effects
  • +
  • Achieve continual improvement
  • +
+ +

6.1.2 Hazard identification and assessment of risks and opportunities

+

The organization shall establish processes for ongoing and proactive hazard identification considering:

+
    +
  • How work is organized, social factors, leadership, and organizational culture
  • +
  • Routine and non-routine activities and situations
  • +
  • Infrastructure, equipment, materials, substances and physical conditions
  • +
  • Past relevant incidents and potential emergency situations
  • +
  • People with access to the workplace
  • +
+ +

6.1.3 Determination of legal requirements and other requirements

+

The organization shall establish processes to determine and have access to up-to-date legal requirements and other requirements applicable to its hazards, HSE risks and HSE management system.

+ +

6.1.4 Planning action

+

The organization shall plan actions to address risks and opportunities, legal requirements, and emergency situations.

+
+ +
+

6.2 HSE objectives and planning to achieve them

+

The organization shall establish HSE objectives at relevant functions and levels. HSE objectives shall be:

+
    +
  • Consistent with the HSE policy
  • +
  • Measurable or capable of performance evaluation
  • +
  • Take into account applicable requirements
  • +
  • Be monitored and communicated
  • +
  • Be updated as appropriate
  • +
+
+
+ + +
+
+

7. SUPPORT

+
+ +
+

7.1 Resources

+

The organization shall determine and provide the resources needed for the establishment, implementation, maintenance and continual improvement of the HSE management system.

+
+ +
+

7.2 Competence

+

The organization shall:

+
    +
  • Determine necessary competence of workers that affects HSE performance
  • +
  • Ensure workers are competent based on appropriate education, training or experience
  • +
  • Take actions to acquire and maintain necessary competence
  • +
  • Retain documented information as evidence of competence
  • +
+
+ +
+

7.3 Awareness

+

Workers shall be made aware of:

+
    +
  • The HSE policy and HSE objectives
  • +
  • Their contribution to the effectiveness of the HSE management system
  • +
  • The implications of not conforming to HSE management system requirements
  • +
  • Incidents and investigation results relevant to them
  • +
  • Hazards, HSE risks and determined actions relevant to them
  • +
+
+ +
+

7.4 Communication

+

The organization shall establish processes for internal and external communications relevant to the HSE management system, determining what, when, with whom, and how to communicate.

+
+ +
+

7.5 Documented information

+

The organization's HSE management system shall include documented information required by this standard and determined by the organization as necessary for the effectiveness of the HSE management system.

+
+
+ + +
+
+

8. OPERATION

+
+ +
+

8.1 Operational planning and control

+

The organization shall plan, implement, control and maintain the processes needed to meet HSE management system requirements by establishing criteria for processes and implementing control in accordance with the criteria.

+ +

8.1.2 Eliminating hazards and reducing HSE risks

+

The organization shall establish processes for elimination of hazards and reduction of HSE risks using the following hierarchy of controls:

+
    +
  • Eliminate the hazard
  • +
  • Substitute with less hazardous processes, operations, materials or equipment
  • +
  • Use engineering controls and reorganization of work
  • +
  • Use administrative controls, including training
  • +
  • Use adequate personal protective equipment
  • +
+ +

8.1.3 Management of change

+

The organization shall establish processes for the implementation and control of planned temporary and permanent changes that impact OH&S performance.

+ +

8.1.4 Procurement

+

The organization shall establish processes to control the procurement of products and services and coordinate with contractors to identify hazards and assess and control HSE risks.

+
+ +
+

8.2 Emergency preparedness and response

+

The organization shall establish processes to prepare for and respond to potential emergency situations by:

+
    +
  • Establishing a planned response to emergency situations
  • +
  • Providing training for the planned response
  • +
  • Periodically testing and exercising the planned response capability
  • +
  • Evaluating performance and revising the planned response when necessary
  • +
  • Communicating duties and responsibilities to all relevant parties
  • +
+
+
+ + +
+
+

9. PERFORMANCE EVALUATION

+
+ +
+

9.1 Monitoring, measurement, analysis and performance evaluation

+

The organization shall establish processes for monitoring, measurement, analysis and performance evaluation to determine what needs to be monitored and measured, methods for monitoring, criteria for evaluation, and when monitoring and measurement shall be performed.

+ +

9.1.2 Evaluation of compliance

+

The organization shall establish processes for evaluating compliance with legal requirements and other requirements.

+
+ +
+

9.2 Internal audit

+

The organization shall conduct internal audits at planned intervals to provide information on whether the HSE management system conforms to the organization's requirements and this international standard, and is effectively implemented and maintained.

+
+ +
+

9.3 Management review

+

Top management shall review the organization's HSE management system at planned intervals to ensure its continuing suitability, adequacy and effectiveness. The management review shall consider:

+
    +
  • Status of actions from previous management reviews
  • +
  • Changes in external and internal issues
  • +
  • Information on HSE performance
  • +
  • Adequacy of resources
  • +
  • Opportunities for continual improvement
  • +
+
+
+ + +
+
+

10. IMPROVEMENT

+
+ +
+

10.1 General

+

The organization shall determine opportunities for improvement and implement necessary actions to achieve the intended outcomes of its HSE management system.

+
+ +
+

10.2 Incident, nonconformity and corrective action

+

When an incident or nonconformity occurs, the organization shall:

+
    +
  • React to the incident or nonconformity in a timely manner
  • +
  • Evaluate the need for corrective action to eliminate root causes
  • +
  • Implement any action needed, including corrective action
  • +
  • Review the effectiveness of any action taken
  • +
  • Make changes to the HSE management system, if necessary
  • +
+
+ +
+

10.3 Continual improvement

+

The organization shall continually improve the suitability, adequacy and effectiveness of the HSE management system to:

+
    +
  • Enhance HSE performance
  • +
  • Promote a culture that supports an HSE management system
  • +
  • Promote worker participation in implementing actions for continual improvement
  • +
  • Communicate relevant results of continual improvement to workers
  • +
+
+
+ + +
+
+

RELATED DOCUMENTS

+
+ +
    +
  1. TK-HSE-P-410 - Understanding Organizational Context and HSE Management System Operation Procedure
  2. +
  3. TK-HSE-P-510 - Leadership and Policy Establishment Procedure
  4. +
  5. TK-HSE-P-520 - Organization and Job Assignment Procedure
  6. +
  7. TK-HSE-P-610 - Planning and Risk Management Procedure
  8. +
  9. TK-HSE-P-620 - Risk Assessment Procedure
  10. +
  11. TK-HSE-P-630 - HSE Legal Requirements Management Procedure
  12. +
  13. TK-HSE-P-640 - HSE Objectives Management Procedure
  14. +
  15. TK-HSE-P-710 - Resource Management Procedure
  16. +
  17. TK-HSE-P-720 - Education and Training Management Procedure
  18. +
  19. TK-HSE-P-730 - Awareness and Communication Procedure
  20. +
  21. TK-HSE-P-740 - Documented Information Management Procedure
  22. +
  23. TK-HSE-P-810 - Operational Planning and Control Procedure
  24. +
  25. TK-HSE-P-820 - Emergency Preparedness and Response Procedure
  26. +
  27. TK-HSE-P-910 - Process Performance Management Procedure
  28. +
  29. TK-HSE-P-920 - HSE Monitoring and Measurement Management Procedure
  30. +
  31. TK-HSE-P-930 - Internal Audit Procedure
  32. +
  33. TK-HSE-P-940 - Management Review Procedure
  34. +
  35. TK-HSE-P-1010 - Incident, Nonconformity and Corrective Action Procedure
  36. +
  37. TK-HSE-P-1020 - Continual Improvement Procedure
  38. +
+
+ + +
+
+

DOCUMENT CONTROL

+
+ +

This is a controlled document

+

Do not copy without authorization

+

Latest version available on company intranet

+

For questions regarding this document, contact the HSE Management Department

+
+ +
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/policy.html b/deploy/tkfb-package/fastapi-bridge/static/docs/policy.html new file mode 100644 index 0000000..84e87cd --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/policy.html @@ -0,0 +1,317 @@ + + + + + + 경영방침 - 테크니컬코리아 + + + +
+ + + + + + + +
+
+ +
+
+

MP-001 경영방침서

+

테크니컬코리아 경영이념 및 기본방침

+
+
+ + +
+
+

MP-002 윤리강령

+

임직원 윤리행동 기준 및 가이드라인

+
+
+ + +
+
+

MP-003 정보보안 정책

+

회사 정보자산 보호 및 보안 정책

+
+
+ + +
+
+

MP-004 조직도

+

회사 조직도 및 부서별 역할

+
+
+ + +
+
+

MP-005 권한위임 규정

+

의사결정 권한 및 위임 규정

+
+
+
+ + +
+

경영방침 검색

+ +
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

경영방침 문의: policy@technicalkorea.co.kr | 내선: 5678

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/quality.html b/deploy/tkfb-package/fastapi-bridge/static/docs/quality.html new file mode 100644 index 0000000..9ae8382 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/quality.html @@ -0,0 +1,373 @@ + + + + + + 품질 관리시스템 - 테크니컬코리아 + + + +
+ + + + + + + +
+
+ +
+
+

QM-001 품질매뉴얼

+

ISO 9001 기반 품질경영시스템 매뉴얼

+
+
+ + +
+
+

QP-001 문서 및 기록관리 절차

+

품질문서 작성, 승인, 배포, 보관 절차

+
+
+ + +
+
+

QP-002 고객만족 관리절차

+

고객 요구사항 파악 및 만족도 관리

+
+
+ + +
+
+

QP-003 설계 및 개발관리

+

설계입력, 검토, 검증, 타당성확인 절차

+
+
+ + +
+
+

QP-004 구매 및 외주관리

+

협력업체 평가, 구매품 검증 절차

+
+
+ + +
+
+

QP-005 생산 및 서비스 제공

+

생산공정 관리 및 제품 식별추적성

+
+
+ + +
+
+

QP-006 검사 및 시험관리

+

원자재, 중간품, 최종제품 검사 절차

+
+
+ + +
+
+

QP-007 부적합 및 시정조치

+

부적합품 관리 및 시정예방조치 절차

+
+
+ + +
+
+

QP-008 내부심사 절차

+

품질경영시스템 내부심사 실시 절차

+
+
+ + +
+
+

QP-009 경영검토 절차

+

품질경영시스템 경영검토 실시 절차

+
+
+ + +
+
+

QP-010 측정장비 관리절차

+

측정장비 교정, 점검, 관리 절차

+
+
+ + +
+
+

QP-011 교육훈련 관리절차

+

품질 관련 교육훈련 계획 및 실시

+
+
+
+ + +
+

품질문서 검색

+ +
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

품질 문의: quality@technicalkorea.co.kr | 내선: 2345

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/docs/technical.html b/deploy/tkfb-package/fastapi-bridge/static/docs/technical.html new file mode 100644 index 0000000..7178527 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/docs/technical.html @@ -0,0 +1,333 @@ + + + + + + 기술문서 - 테크니컬코리아 + + + +
+ + + + + + + +
+
+ +
+
+

TD-001 배관설계 표준

+

배관 설계 기준 및 표준 사양서

+
+
+ + +
+
+

TD-002 용접절차서 (WPS)

+

배관 용접 절차 및 품질 기준

+
+
+ + +
+
+

TD-003 재료사양서

+

배관재료 규격 및 선정 기준

+
+
+ + +
+
+

TD-004 CAD 도면 표준

+

도면 작성 기준 및 CAD 표준

+
+
+ + +
+
+

TD-005 배관 검사기준서

+

배관 제작 및 설치 검사 기준

+
+
+ + +
+
+

TD-006 압력시험 절차서

+

배관계통 압력시험 절차 및 기준

+
+
+ + +
+
+

TD-007 BOM 시스템 사용자 매뉴얼

+

자재관리 시스템 사용 가이드

+
+
+
+ + +
+

기술문서 검색

+ +
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

기술 문의: tech@technicalkorea.co.kr | 내선: 4567

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/img/login-bg.jpeg b/deploy/tkfb-package/fastapi-bridge/static/img/login-bg.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1681fd4a946a149de64f7a34876333edd1810ad1 GIT binary patch literal 2721048 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 $8#)6yTyxZ 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 Q98c-gvda{`!}PD%IDHMJ*rq{osU? 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

$V2SF9`zerOn5~jKJ~5T*j~u} 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%0A-#>ZZ_+tYIY z05MkGiV>cbS5D_yhiT_>{{S&u%+USw(}p}br}2;Uc)#=!Rb?Dzu4%*mDa|}*{$1k# z0MJENm!{lTTsAz}Zc`&Q9x8G$I#V|LRgy=yfkr!2yK%)gZ{a`@oZ^gBnDwQ{r2s^E zrtKa16)rKrqzgdC00%T<(xlsur5N<-KnwtiZApw#`cNwj7^4TZKNOh2skm5X-e^1z zYIpp@ zSOR;FI#=_1t!cKgY7#65ba9fPpH(DR^yBgS#kT$j_&MS&Y4~w$Vu)ioc|k$?8vbK1 zKGh}5`HETO+;|*hoYpc&T{dN;NUlTt!`r1Xtz%=97y`7U(Y0%PaWG8h_&}-x*H&f! z0FQPD(-eC&Z|wwiRSKYVsXUZqSU8pmzxyTslNLPw~P8*tT zJ!y)=FiG^L;~dk@X+Yws1%?nP#yV4#PiinaQvm=hc;Hg>#T#+fj+_pZ0E0QD;M1@% z#TcL!hVAFlnNnlDCfxL@NF9jw(vmTNDaA9AOr;S%wA0T{Dd(`HTp~P(Sg^} zfE$lal!F~AKrnGgRA-8-50q!MC$On@W8RY)(k}MqqUmhXN?dx=_~=D0 z2TA~o6u76HVwW6bQvslH#TXxrI0|qWpau{-P`T-fm;sJy>Vl{d7To(&f(nt7)1@Nu z#RViHjMIXOOq_92Mvn9pMzpyng%y4{B7sb|5~3g+mLWj;lU^I+{{Y%2;kU#1N&8sT zZaMwcz8j~jbON%IOLBQnX1Tmw7fQU5BGGjeoWWiF|RV&*8lou9v4={Hzl@$~PD-pXFZ-+!<`|14jIjk&cz;)~u(b zPU6-FAf5uw$9w3JP*55HMK2hvzr`EnH>GyZG zQ@yW{(crs#*1Dlv%+Q}ixwFGh2`9EXSD))v4kL7A!6v?o(mZY9&2HWXlWy#DS2b@B zczay4d2HEHy+Ey@Te!Iomvoy?CKe=nV->qB2_1kca7pb`-B?^$Pd%iI_cPDZtoZ=x z%EWWlx=v{_oy;ff%4$bk+Qt}lspY}7MXB#oWt3{Yt4I=8nh6p}LJyRIRP|(d?;~GQ zD@_Z@3~onGD=$?NE%Z$%PACIX;D4n=pmwCxkIaA$)g-h30Hnm*cp{yshgSp+F-eyb ziJKmCV!5qpRTV;>Nv@vuJWS6Wb2^k+P{*xe%ZUxH(GF_7v81iiuR$7%a1AO#fvG@~ zLRN|mHC|QD(!bKa&G^QV-S`U5R9pjQ7!UXjd|Q6$_6#>Cau35IzS{Vht2e`&85g5i zuHXCMRaF{3JNRcHD}QYYlPjJpth&(eR#MY2P(OrKkAoJrlCGfPK$RF{+PfbVMv>f& zxamm<WI4Yo@ifh9ufY27oz) zv$?xuGn{9zt=Kf=hvkfPt8El(AZW)P)p9j_@~0FTmG}$yaDAx)GZk8$-Z;K#h>b;I zUU-hm2MGchpW1*omNZ^C6-xH{!pUZBuu-pblfiPSYYy6n;!- z*w0GnZ6UK;Wtm*ulA!%71H|KeN+)c5+^F=fhQvo5f=6Q>ODLcV3~p8+tVA)laaH1q z82)7qJNovkA}AsOZy(N({{RT+D#WwiI1wyD-3Nba0H-8ZGGpy?2$22;fGi@xw2aK_ z{7urRN^Qi2orf%hGwr13&gsf_|kuT>!5ZqX#3+H%}@6KoG5>mrFv8utP+pV-7wVtzE?&3DR zoOd;DJu_6)oc*sh(RK+zpxK_*-H-N#$DjVnRBGCd(*va0n|Ob`!-HKum*H(b)8}>b z8`Z0#i(>xnJ_7dbKpdTqg{Qe9ZAM+h_8bc9Ewqa(MFKVHR#k@VzfRbwC6%IVjN-l%uuV?i;yui8wr(;;O@5RtC4L>) z$&Idvaz6_E`12LMEf$;pdv@cD*Ox6Z2YnylGke7PSBSpaB)r_f4CA#LaVY>+7&Y%+ zDuE`qSxCSuUM9X&HwH1#*G+GT!w<38_%$CJA)r9ADa&PZ(z?NU zr`eC*N)!$%VmTcQJDhO5ik32CQqnfu`qu?<;`x>QohBo2dmhzN04G7%zTvfN)Dr4* zc?y4kRfz4cHR}yH0W_-K%gta<;vHvFac`x;<-`5vu6iG_MB+ObzR@7=+}66ut=*^Z z%2~(LiU4eyOfEd_Z&Ar#`DUh~7bl2xYhAzXkyVy0D#}kWx8G0c+N}w-OV-;O3mAHH z#Q;kre=apUv6If#q=xDUQ)ZcG<~Z)vpEbUlV&Y#g-O9a3YQ1YVsi^Z5YikccXaYGR zy}c%VYT<35U*KLT$*5^|$+JncGq~e+Do2k)1qyErzOzGD9`vX81W0P3B zk926ZQ1{OUs7Tr!v*PwsbpDIYDX_elESjCchCb>k?{T8(_%?Rld;b7<&;)|-Rk~lY z=$3zGgntw9Rix6p>=&lLd2dz9)ybQwEqAP+F7pOBs(7Fw)~jjJ-8hx1BtWno^aQs%HO4R@M*U3 zDr`_T`c;_j7yV~yBDupcZj=G#zBpMTo*3dCNUqmNc_h=}^Ee;@TyKrpq@F3`=%%;y zhL`M-Zat_2rfY>y!m6~p@K>p-!Quee(1Q^h1cC)47X+h|%~ z-rOl7fGvHm#yY8FjxVyo@5TjGItGyhMs0ro0M38zsjVRgiEm*ke!|W+{5Y(^rg(PL z7rVG?qQB07F2$_cLkPF<-jp{l{Ip?JnjaJDCw=|Mw~x?pF-=Wk{&W`lC4$8f<8k2C ziF8ZnUpHC5D6RY;&<0u4d@rT9nW;_oxrykfHK=ucRz(o_dr$J>0|1d#{GSYIgg=+| zse5h}Dr-9Cq5hAi+4)iSBZ>f?9Sd8O`P$|BMH7DxaZs=PBAP_tHZLXZj%pXtWO5|e zubFfFAn`$y!+Jt5*kJoj$6`eQXvwYXw};BnY(>0%23HjM^vl( zTBVh_<8v)@`c3AApf$vX7P-7E1}ma{bH&=zCBBbpmT~v>0;CMDh}tx;_&)vhyUpxS zU~bwvj)JoM9jj;`@PS8VrrI>_kdj$_YVVGGCp&mv{(lnReWg;k$UtOX4jt6*6);AiItt_9V0A+t~cz;cmhMQt;7;q0>m1gHr z@ut6HGWi}o+~c+=Kzw)MUk}`;!w(eB z^KaTDTzxv%y!*FM`f%evFS_>%1gf~cQ+o@jdQMA+l}TypF>&pejD*NuHf8$=?`;V z=9}=Q+yOP|GyQs2Mu(lt;w!t4`0<3e_NBAXJWH#|yKcojGhY7yW8m8xFalesPio)t zw2eM6@3t_N9N}ZebkBueVOh0#OM43RYcB+8+H`6ypk$m=480nl=1>cRdTM06c=AM8pa1Y__O7}OOCe#Y& zqN(DcE8)#HKlEk$M2qWHaug1${u8Zo{^cOj?7l`nd53C;;$6MNcu}sV=2AHTbgZ2# z#CLLELmjoJmW)8oE3^2G6CVf9hQnhg6p>aulR$NQNQkb6Zc|g+4RUBSqDsXti=BSgvVTyl@_sfpbt%(RMPEGr1PjN*0|fx8)??rODN6Do`6Y+TQ^wlK5y5TtWN*7y?K~%~TDiQ}^$_ac z^2~Zv7kc-KHHH#tb|&5-z%?vd4zY6|ovYoF!}vE=RSt@01%9m8(r1MP4akn4nHcbzXSu)za-3mk0b8zpTk6(cOQ^r6y_zcz3NvX5EbI1#zs_fE1cP) zU%EXpO2jg*ds8+ubsW@@orm{}QihHv;wDa$3lHz~{42^WV_^_(-j(YA01%rRd`v#> z{{ZP;POQa1UX|=%eiIp%!Hfg+tof62{HKbTC>)-KsvId`4;9*s%-0c_Juym+vRIi$ zFx{#-07)`?)x`l(cJgYL#%EFS8U(-5tXalFh3CC_?X9FyLZaX0uT1ekhHnkq8CMLr z=e2pzln7O09MMQ7boxWIKYqOzO1W3zdRLO!EyTD{)Yqu!I(*Ql&(zUcAp^IKRKyDO ztI)C}O^%g9098bND%RBjfUiB8K=6%k2UVD;+PjTOr$~I|UetJxVAdu670(q~!f4~2 zL)Tt>+!IrM zq6m<@gl4(>t!~y5UDyyR6bm%dY5mz#_URD*+~vqX@Aj+vD20Sv5-=HQ1QqxGA-WqkrGc#dCN5B(q1vUp;j!JCTv; z(s-Tu5OG;|TEvq?S>)PRt$9=Ug8JpWs3FItM$u~5KkKBxKf_%MFEjRsRe9n|c(`eI z_=@`*Au%i0XQzB83;zHiOV2C)n(tU-amyHw3|&6b-)N2?;Q9*b z^!*c7yu^0a4Yc>i74#mT;cpG;1OW)2Z>@CE>JpqmWo{#0gNo^=gJ%r!=Y-gNGS=k+ zTZIuRuHwVte}^rKzNs!=y+L8ruCZ?H5}tfD5c#HaBMR$|2^_Mc;5>SzjYYJ}@=~m+tNC_RQo|DGVAz^C?aD6EtJpg$sGTmu>`#3&%Bv22nd6Hgu zgHmkUCzh?!tw-S7UsF-qCa(rf1rSbHlTN#oM1VbpQO zPB*e)dsG`3=R8(sgB8EMR$*mRnu0JR&zd+jIA}4&14z&D1PghjTtvUbzskOAP!ZW1 z_zo-T3#2b=Adk4ke9dZG^8-X|(RkwfIS<)`ovaN)7ql_{-1?$8kN=3c(_X$Ddw783s%$g$-LRQ$Mvk8 zM^#(RSugFAfOxKqJxz{D!*ky(G>faHLn{?hD^)x(XBqP+m!a=m#+j^ZclNRUi8kSC z^J)6c@E>iTXVSgTvUwk9=%l*Qbo4lM+_jrGiWXQ5Ht`uf@l1=tx@-|<;mf)2R>j7P zWf+5ck~piTQRe{PKB#0PVQzxDmbSP^43{o(=qnRcyWgn>fMEq#zSOQoju=$z2N66l z>N=7@4i_VnUYRVKHKn>M6=M(s0=(xy)8*B#8RPj;4SK8iV%`fDByN)#=Ch`Yo{Ggg zUl2l({^kt&U{haM)~+8AuN8Yow}Ke>k1f;Mx1mVmZ<$9m)Qo(NUOgjKzZ>pm+C3`m zpM@hv^KKs?R{sE+GqiLS1d_=hAv;qt8ih^I4RT0raM&=x@HeK&V-j-}h&M+JF(5aEdKlU6^qZkcfuc&VecP(JS+ zs@mZ&tAkcilN?u*=2!V@+FE6IPBU6cu0g=!rB9hQk?i2#+W48UT(t#4654eKAo&?JF^C1KO4p z0jU^lJC7dJ0ctfYHlDtf1AgsFuoR%NJC}h~+jNXfqly4f>IQHs5`Ju-(x95^(mqRY zwVe9(yepWHKH31>3_#=Nsh#6E;<&@EU)(nPTYL(WXNWG-Acdd~j(MPmm*{IfwW~M} z?)lA8PYr4^e)i&X?zN|H;q5jdhf%w^CV(=f@e_bV5Ejo)DT#Tk&lco^1-(UdOmv$i z1(&84R1)~I=Ib%q!-9HMZ0na; z-H|{YB5C?Hnceb?den03dQF(bN(rok;mel-TZzjt{t;SG>2@%v6GzI>1zCJpLIH1X zT+|0z)$UhfL$n`i*-12b2g;#wO>J{dflrphJ+VL;Hu^59cH8Bb0QTux2f{$(e3-1( z@jcTLmhcumjY5|`B)A2XZ4?31N2chus;MDU_3K3XmXl$^M6P>cxybZQQu0mrGGjHP zZ{cX5o6MY-`kDZkc&0u@q+d6Dim3Ybtvh1Y0vEZhfoY{%Ht~Q366umN8xmb5?sm-J5UA1@pZBimhcispsJ7JU0UJ1xFgyRPAg(7 zT{7A&>9t7psNYx8ZNNDUN2LH_rI(1WoA-=HYT|fG>DM(`0^%Pp+k@?R*P!NhE9^1t@2luhH&8+AzWk4|fbw&>Oe%hvjIEH|E%!((l~U^o?{5K|7t;;01L z{-(VeZ$UCA(yZBXNi@Nxz!dph{c6aG-MBauyL`66>05IUis`2$dt6tT{6%$Zb%z+_ z;=O!H`>>+CbK)se&Ru_fe%F|U;XCk+q*KY#8 z>XQB1K4M=G#oiNv#Xv9)MLW!4$7&WpszK{Y!st$npLV3%<#H;dawu+k)Uv+(W3?6w z0U2sS2y87P{J%NkoxL3WDu&SYWyaR)Mhakcs7V>(rb!uwC?%4Xj~K->q4_C+N$0gR z7R^s6^dx31FnFVEgC3O}jOPd`(aE#rJkiQDJdBQM(UxBP)O@+eK~7=it}1LXv4YYc zK~9;Gum@^{F;S9gLKDl%igvLqb-ZEFzf5$gp_42@9152(~1Sf`3R+1=`VOJIA9+EhR_0XP-k`BAd)I#oe!Zl^4u=72cH)aI0CSk47~#rq;^HtTVD3*+{0T<&91&-F`iIlJ{N~hT`D2 zIon!-R3;p*K}V=6pkuD*)?7uxT#TcYu=gUk~{wZ4I+X8#R|X0 zNw|_Y;q#@RSMY9ia4Z7x(Cj`WNbNFY{%LxUCI zb)+PkU99JD;*9L$6ax?q!~?*mH&CE)NckWU(wwqm1FyXRi5F^(qL|@FBAjv3m6HQK zMF22A%e0Ou(FH#-YH0&*DMTD_X(Td7E1oH=#NdOBRc9d^XsH3n^rVmyZez_j5=IRm z!zUF659Ln6u|JZ7uX>PdjdqHRC&3WPy#s>BADC( z-j$H7D}YDKQ7%UWQX5=HE?5o z25m>;N1yyRZQ8psnqvTol1JL)0q?uQyHY%3i0bn6qp5MrDsL!(y2(#lxLkJc-nF(-dm`_ zsNFz2$0Datvabheq@+GkFeD*;DrS(!^5Z!5rU=AjF*J<9$vr7^l%R$*sQAwmt2#&9 zifbsqZ%T6_NHfzEy`bGBJlrIo!_6=SAoj&7AW@KVY91ZE1utknW-5R>^c2ZmWZ;Z_ zDr8a0^rw^vK4HZk&|HN?O{g-o{{SrNvK>zYsHi%=G0iV%h3v>$+S(j>c*&ta zj1U)(r40ex1x!d)*iAJh*q%q+SRjSLW>JytPV(%xa~S+ZL%(U*oefCQs;(IGRi|J{ z_ZXJ8vE(WSA4+VH+sHh#8iDkwV*TGeYF{l+&fV#9L$L2IGFzMZ1nli zFOt7qqO2r2CPH{xbCo0H9GZU49fi#<=6h+@ClTR)kW>7_x(kl1W-foBGh{ z(&g9`rQGt3D@)Sv^~s}n!4Z3PuF_8j=&YQ?qwuab!taj}-FMti^RHdo*07~U5A2&c z$#pp8@NR~~{Xzju{{VywKy&g(gY8{h!xAds>~&9ljrEYxiTw{3;>f z9Ra1S8TzG?xYUN+q&^b)#-L0wyE6WkHgImksMfRhF^y|Gk^kM*M4R^Fc=hu zaK~vFr}aubjXkwa=bWF18bE)Qa0MXvXQaMg7!~O3$_C!`D3F8#kE&7Z9@?jK$}WBv z>8e3iG{f++$&@-uL9bdYF@w^X8~*@zrAxrkeFm`=7gNbU;Zs|;%w{>NZ}648&C50g zdtyz7z@eld}q9yX-xUk{uTDSjj1jLH2ggA7+uRXeHvr| zeo@!jqw}Oejz20tu<4imr!(h4@cYE7GP2-(YA^UgyiuK^Q^&o1A}$yV5GlTQs*lQ} z`vRYF{{U*wvGalOpNpb6RzHEJ9S_Dfjq0e01SsNr|RgKWG!Br>eNA?9i;r**V z$Ic(wzBh~qX&+~xG~k{yOyhlh5KLTvf}tx3AsJV1(vR#4eZ%`^eUG2Rc-V{&F#a_g z-}uT8-aL}1UwZm3SZ(1Ukq1vo4g1;n?>N?TNmJlMfU4w4hwb>O0a8 z6Zobg9sJLi+P$+vw6;2AW=Oy%+PBunOe@Sw&$VU#t}f=E+U`9Mp1d z6ZKlSpBy!U2H1v0c8}qECX@HdjHlY8e+g*Nbhbm9Kh^1v`&uU~pBy!ekt9k!f~`gI z!uSw|K7N(C{{RSYho&k;vMbXcz*-0=F)u!q434|0-$e& zdZzpvo+$d3dcF25HnEoYrR$sj^U&g+0{{V$msGqxV0jhHRE7#F;=7K2t zu9^#b_+0K(+uE|h*Wr^mh--V|J~KK1gk_*LRXh{|Ng<5id8r-{{bzxAc{n0F6m zeR&UzJT!-RyFxy-Jbo$ACOe|KPtLwPPXKtlWmR%MwA0{k8b+tf3_gabR*!Q&L+p0( z9*9^**GMz|)mo2N&^LsR-(+$_mDy^X*?6%cXd^kCywHed=b1#g;IZc6iWw zQgo!c4mF{oKI4Y-OKj$4{OJwuo`d&uAtxQ{;mBw4RPp(VER2J`X+_VBR|Xj*VfCo? zGJOHofi9BN%!Zf2b8u+utkp1_Rnmv^J2epa!Tf+{|-AJGxdQ^@j>mdB= z;m`O_d{!~@NCi0jK=D9a?|Pm|b}ODe&$$*D7=7VF+Qu?f#e7E}#IF=5cg0y>ihd=H zM&0?Nl3jzIJ+w9WGkHf!oD?+;^&D~w>IuQs`vaZO?^<7&V4abl)Dwr z9*p|+?G8R(T7hIb^fmHC9~!mDh-O32t!hW{vr!F~PPEitVtKsJsD8yRGQ9_-IW6}b zo}#{GkK>*22W(+QN&f%~(rC#I7&)rt@)7jATgcejaY`+ib+4P?`0ua)@PSs_MY0ZA^Wr3gr1O_Qim-mGiH7^BJQij6*L(4Iv} zuk8^lH?{>=Lo+KU$Ot$Fy$`~}?DlvEt$FpT`HB^|;=K#QKz*F1Gq=5IhWLoZ{3fmO z&Aa=5g?Rj6HPpMkYuGRFE#CwD;=Fz$8v0ZNy>wSOC>tay#xc^EfpL*T5f}-K(~iu1 zm4T>+Mk8;fA`*lg({f7p&AKqLSI9 z8-DWfQQ+f&OXaZ~aX=0)w0yMa*@FX~wH#`rf+;{;f~Ody%0rlsH=50s9rp;yjtHyr zqcaamqlWuRN1v3RO1cZ)K`oDKkIWXy&lvud!ua&6Y2J5Tq*s4$5Eh8J>0AfIAg`xe z+K#fw1%8o*{u(|?e;L-;w%tAgM@1Cwueg2Mo+wOK=@WH~0Z=etII0pH#X$trM3dW! zkVIGpCls4FBdus=LeKKxRAI?GPfDN3e@-eNEMTeYS(*+lv+jyil+#mk3^g#Z>?=bu zbyapb;-h%Je1pKGS&vP$*%_PUQHsp8HeH|&d8qo-W;2kbO;=}Skf%Xf47l@$U8Hg= zGF*ZS^rx9r52a`Y#bJ;E>t1Tk&*RxZA9fL5fU=+kk81O~38H@-T{%DU#UENBq?^+kbw z-!oCAjs7CBQO0FY<|*!+@zS&GriDC3W0%I+Q~v-$70XZ$=n~YR&}_ticgT+)_sFO^ z;2%ntOh_g0=A7}j%FsuSf7umvZ6VqTZ`QiuvF6EYWU_kHMRC@)O{yLg^r#*cUSEJJ zg<~&i6xJjQB2DAteJ9*?p;0b@JMGR) zT6={|de#)aEb#1dc}DRwS=ebCWoX+;Yk#L*s4z~inz$1^2I>S=*eKdPD%RHi?K{dp z-K($^_Ip#d@rt?SKcz>qPwvwKutppT8Y5PMxc(YKu0MveuoV>;b*a??_NVPVmYehT zS}X*h9AxyR19`wWs6Tp6HX4&_L^8tyiAdU=Gr&J;ZC^~c_*rqIU&H6VpvbY0LcHXP z{C~XBG;1%CD4`9W%bNS6_L%Y4_UDM3PP4cM*H1$p2Tj@Lz6yCh*?!0P6xMN-+C|ij zhsk9TUB)#(fUM@Rfb>v50a~|Lh=XVu#bg_ez`siDz|DOk{k*Gsih43VehS`lehiFFmkQSREw+tAZQZU+4DF;=av-B>Q%iq26BpSxcP zyltR(^WnacK7+O?Y~V8+a4Cb9exP>U(~)Bc%BQvnJi}cCy2Hc(DnRB zYW;Z7d_kjl&qRY>@a*Dyd6ztT_aB8}7HZaozSS2)QuH{WuN9$*T!7swCR}2yf$2e9 z@M*I$pixfRDsL=N<YJ51_d4JZJ6Slv)X|)M}bBKNwA7dri2L* zkwF6#rA;XuQ)3VcZ+e$$KNM}CixJZ8 zsWu-79$kA)VqHQL5c^;M5~$z=cP%vntst# zm~xfyF^X>5vQ&2zZ51KPS5@?W&l9oC7 zTjl(#=j}tqa^1{G$Subs(zt44Ka}pLgZ^XeABq0}wD*gAZ*WrgPI}uWye9B57UbC`<+bu%_;LvdJ2lqO4KzRIwzKy>x^Q!<;^Y5m{W{)E?w)l zF2dqT068BmdZaL>y`!z=nEm=Ft}@@kHn7VZT^~M1BjvAB(k$=%<7;gf+0j&fRnbbF zg;D5vrJk9it;;^WJ48X}X!*Y?^e+#1$Kk()FCOMNB)drlIqE+OAMf@2X^Kb%LFS(-6_0sO ziI%aI7N~8)``5Mj3&q-=rj0BzZ$Le3;rNhCBBtY$$4dK`;a-gukA*WLg3LPNm$5_U zIxDNmZ;XvO%!AUM3ox)^c>7c`*}G}p%^t9Zm^XB(}Q;~6|woyQM?$uMm=XYs3wGc(usF~k({nr^g#t|4sn#Yrj3#87dO#aGsWNh5#nV*-SL z9lY70h;fS7)MN7EL_Ni0#s{4X^fkMzA!SctMYJg#4Ew~4r@eDm=)i3~1$A<%4tG~S zs76l*rD0->5uNW-mde-^IIuB zolSV3!z-;~JIz8JH=}3tu7d6_5#C)imz-jxvr^LZ=L)aA_=ZdFlS;<=qFBBfGQ zdoVe4H4cIuoc0;0Ew$hVSl*z?)yyFTjsXPbm*}pboBE+e<~v%oi1jdE$8_VGflUlhmGq zxwH0fwEqCa#$z;tu<2G0pCfIL7Sa0mpaxwn#N^4UT;UH?UMgE=X%t1KL9!+P0G5V? z{?3dL3A&hi^r=-ZJhIYEA%(w%eJBF1$dSulOXqX+fRpm3Sy0K9bH|J5RDZ*Kx1b-2z+3oX-xk)Mf zGy%@*zEZ*+e|d%-YjaL^xQEWVm2J^bVMS%@dj*MTVa`t(?N;>2tf8@4F9DWTQSy$I z0e;ftdFDG9yug3uq3Ki4W~>@rPJ949>QkeZc~n6JV%i*4JE`J>_eh?53ILHV?Ba*Y z((H4e<7%mOa;IY!PK&$+!Wwq9|5V3*wX#KdYdoK*z!Oh_F2PA85q zP*WujBNC?-0CY5g#59H6*eV8pD)65@C78PW;VZe;Be`ui%+w|$co-GuRt{sC;EU$>uKAqM zHuU@5R(E*qm_nzF*0gpO5jZ-W#^v}p70hXPd#M)YU6Cp2n(Lvy(?Q*15t+cpO3o&d zHEk}hOYGAv#4wNIVTzJpu_T^mqj1*}c17t`7;2ZXV)AdZKz%(bc$-YM+ZCiH@?rc{ zM4Av>-ZC@k_RDV=<1N9(QJN&*=4uy=-l~SIv^tI9KW&&=L+Cv!tIeZWy2ldzrO$q% zfG*kIyw0#_mVYYnWO{tMX_iKpSG~e^RH#-BYJ4rJ`!o&d#}yZqqiI=fO5o1x&e6>P zJYHJEi(MYv%*Tz)DbJ?r5)&=$z>N>^jwpjryT2RsYjFzn$rv;n7~zw4vw66m;mrU+ zZE>S%(jP81x|sCGHEvs7dr$&W>1l81csQqvh#?|98qhHQ^+7B$JMY!63~~Pea8Lv? zTIjY61=P)RA?&=0w-x@QIP&amL@ zls(*@RDO%abk<%Ku(6kM{o{YNTjLnr7~4}UknQ=p&;t@XcvBky1Jat(f<`)asQkdn zNHq>vuH+pk6^pNPBw%gidejYb=W;4Du@y_6YP7nYowIR*eJBePO40%&3r#HvP4h?> z9jg}WRlB=wwo8C`q8%1_FfN$n_7n``d~Ipjj!&&^oEY#I2D324{M->*8ID*H zV+x~{rl@`3bj3&x7v<_INW#c+de8${uinoz*xPpu4n3%sWCxsJbtbT{ykVwk%aH2F zrUeFuvzA=#UIi;OQNzAh3O(!3U&dOFrru7IZH?c=Yc}Ib)Ne-pa{R)B_(7l!y6?ss z9-gFmo^yI9HP5GsJVUL@V$y7kDcRg(ipX2P3~0ac>kryobR=f2N2++IRsuab-|VnA zMn5hE09bDi-CZ+F;vG|B{{VGPDw56NT`-uep?kSUr#&gBMYD;G$B6YNl#k$3Np0dy zF3ruhhhe$T0hx0^7p-snPpN{MeX7|<{pJ|rv#&H=G5{y>7NXNh-4O9tB`VZdUw z0lo0Pmnia~`&^60I3lqtl*g*P0x#P4+jQGeD-*yAQoYBDHC7S8zhQumqmC%$0w4HB zAQ`#w2BnfaDaA?syW#CNFC$F1Gq~@J)gSDAJ{DuD-ub-p38zP`==KcIX;#754!F%6 zpiTXw;+v;o6nyx_Ipvk2c+X9z`BW<^s(?Du$#5Zo*@y6-ZUt%Tg_>lA zm$9Yo2V=}MzlL^pN~Y*}(w|;}y$4J1y|s$4mNgmafm}a`J}~%OOeQEL7ezn0UPY<= zbl0^l@aT5FP&@-zI;M(>KBnDeVgCRhGO9+S_^>OG@ejp+3HW{^7`j=cAHs(<@*VB} z0F3pdFR5QRE&Kz4ip~E3gl06BC%YxH)SAxaa-UVh;*S*gj@fTCv=-K{(6^;VG$|$~ z=U&uHkM60(ZCnd|AHkO2VL*yd0o%1^Xuckn{>?5fq-hlN#b#+@J8eh9dOEPv?M(BY z0V6cV)_g&7n2r$|p1@aOYoXX!w(}6ku7E{sBND0%4{EWVOxhl&dOXXiTh|qK%S5$^ zhm)xFuJ-2QGN%3cTmmUwiSsM%>Vm~Trf%7JnujzUHh$`*Y6DOKfG&DEDsm>dd?vahqV6yI#I?{ zaZER!H`l<9D1ONwt~*tB@fU|QXY#abAt~qxT2$4%XR8plYAs@K&lCY+{3RG&`tGNa zy;ncdoSMgi^fdBqArr_c2ZS)f?_a)V^#t)tBX}=NebA!ZGSGlx_^-rTo^7%c)4Wf2AfHmW+C3>Xp(x=mt=22K zVg$C+RL>l3&1h=tC9UJf_uD;cm=b)f=NRo@l4eWy@;^Yq{{RgV$O}fGaZC`h<83k6 zk_T#fZzBZoYk?gitbw2B>MGh3B4Zfzs>qSXaNX*{Vc0631z013_=GlTF$d|qe=71| z%d?J^>>m;t7e$Ck*LeO_s-@R&?gLna4misl`-E7GQouy8t5Mn?^>*Ky8b z%a@Y`V-;c|QIkC4nQ@;tYSY4$Am+5_LD+ci>7($Kys<7uR=j^l)SB{LthmK{wy$q* zecf-hWu_cgt64iligS}*TcX75L0a_9Ia)qg{GzkO zNKlEi)6D%it2WNTNt2qxpINc81>|7Z=qnEA#$Ur}A6nyaY}puICDW$4)XT!72em_{ z=&2mx?;AMnP~B^i&P>FBhbD!Rtx)~(x}~dx<~m@a0Phv z--_9f?iV7nzqIu`(TG=VFJW>o7@nhjt4}}g9!;S3u2$<`wzvJ zpNGB%c;{YpX0%e^nWk+aK+~5pi!FpmqGoM zi%T5Zz0r|)EUVJJ&rA3{@cY8djd5;+fr8jI-wFwAjwxc~esgJF0r5Vpq3m?VUIqzV z6I#~4417Ru1-1C{InO*-=)Sq*F9rB|28Q2cr5EK2pmeX5CYN0CPl)H#m3)g=ZUOAI zr8+k=`p=oq+I%zc?UJmQa{1+ZS6gomm2A5-s~}4IS5;}@NP@F8g!>xawbShEh9f`^ zt#ro>kN)p{6+$P<(t8bCJ;lY>a#y8L}ATC7)gT`e$`;OJk-%P*Tx=Z8cNs~3vpi4{r$kty=mI7hxGHdNtK`2R!Fv38rHFTLR&}Wq3?>;xA4}tdZF&_j>FokN8(#p zSIe`5%x>IM#ovoHCd6_1Q5s@5)51CoF^9UGGcRJ*Yx`@$nm`dO9%kP`S&{fQ=HLl0 zu1ja|tzlu|JvuO#QU`I^)g%Qs@x|n){v`IBSEoveBk_*8Cix`tSJ+j<;*AQ&_jVS- zLE8eW&*Ket@QAdVKOlP5rUjV1H+yXUZT-gVR&~s1u0%w&Ic+>mdUxN?v>F*&7ZB%h zTKL`}r>8OWIXH;ym_zAF!(@tzX90lQif9ZIiunWREKd}x9_;=VD47ocR0@g!-P)c! zwI44gt&tH~!NKe*yQnNS^r<%dy*kpt9|Y7F62S_L&7;DJp6qo-Rm^A=OWion*d z3txFLjuVRNH2(nfEjCM%FmYU9SGbVKcs*$?%jjAtJdNkAXC4%SIIToUJgvQ|5|~T@ z%``KA!cJ1{lpd>`Rt~ot{{U#pSYtK2;Zg>syN?7BiigFP=^gVj4WLp3n1CE@&oy3C zjG^YVk~C#foHaz&MUM0NP-aroboj6DqPKDs5-YUv2AQX64IF3`u@%edwi33rY_T1x z&NE)ApF!4M%THB~4cX~iGHSZj$q_{k)imD;B1@+Sbrspf zBhTHhavurfzlh@_(RE9SH(brNPhnaScv9FunB1D^%P@VZz^K8@m{zTQnI{wC3n;B# zKPf;0xbG3)sJ2^pz$c3IFBL`_*?mE;B4|zCsU5iI=B`SoMKjWT6Q+o?(Q@25=DQo& zr7*Aqj8$tijwqHW*8nam^T@KoVlT(z^#$EMo(JCw`7V&3Nu=9 z&9GsHGf5IX0B|>OYSOBqswIZwvxAC>Ns)nb(x}XB$nvG#5a8E6CQa|n-nZu57<*P- z%z-YWAZIoR5~RCB!R(o))wL-gK~?sa4tBz6i!?X1s_E z+k)12_JzK34oIL4KPj7vks~oUZUXnL33W`k*oL7+zqyxkld#YSNiEg8J~w^Z&TUrJ zWc}AT?N!E@p}1qZt-)b!2h789Gyz%l!r54%$sW|ipHY?Y0RgLJqlE_LKq^I;h2(MD z6`&Ym!PafkoRjHU{{RpyEg!>9$NgXx)T{Ym79DX|J}>g5(kCT)p~VOfkY|oH9$Iy% ztUSNBDSnkD+L-5L`qp*7%W@TcYeSWvNce0hg&8_mbsi5j=bjcqwoz{5fnEG>{5>ie z(GvQWBWR~G7}F$F5obJ9&inX1sT4^R&ZBQ?m7Ia{j8#D0gbdjLncU#a78D0OFeLk;n5%%>Yi@*mfqR@`He67{}#VKif7o zs6)szSkw5a-0g*TFQA~z>zXBC210>QOd;Jmnti&pH$H8(8(Ut?O9*&ls?e*knNA@KoDDaPJ4~bc_BFM+O(I$+FhvMGYqKd znx!_atzM`4BKc#zQ%x^bzEkGO$JT&45qYHA!}5X0L0NC&p&JCZj~>{mt-LZ71KmlH z=xab)=-P5+w$KI~y8f|pHo+DNs;j5#cRWnTE$LfwYr13u_e!LXO3t6fGPup8WFMsf zEItz}9xkM6){j8aAo-Ysk6PxRRPhb#Y+R@``1DO$04+h%zVjbxa*IG6ESiRer=}xS zIOr=TPZe7++XCa-oSqf7L7Akkl=yZq5lAcjt9!yq2tA;m{7w`CfI82NfA6;clfv&KC8jGEDh zK+>%7yzXJ&Gyy@pMRPF4tbIMIk&{@uZ=4Xm)zHm*qS%qU0;$d7t2mby>M=kWiK1W3 z`=55h+OEUlXd^k9y86{u@h+g>G!T*L#WQ}re4C{CcXq`9bTQg#I&z0%4m~N);td|$ zh6~4_tScP?_IAYb6YW~*;R|weD*^o|11nMSbmZ*Q;QZ@*!`il`elvR>z`Su*W3bSy zqcQGRb@i+rBKGvE?OO7bhe z6Y3D%O=)bKSzFS8I*7bAr^Mmq8?ozJ9(ILm%PM@e!iDh-`gyW3Kx%k=HE}Tg{Imi8 z()}#w98!Mc&UUCD%D-Ds<`?G}#eP73(YGFN#XUtw@L+y|xGMZe(wX7#F-G80F)}{x z)i8_?pMVWOP^tE>QW5t=$Dt~C=~fy@BpXLsq%s@i996`K9&?JK5V7poRCccr_=^7k z>2XK=M!lzRl*HGE{6dj#HE3gA_0fi2@*=0g&c{PR9-j&U)oRp$s5?4UZ7murD3hiX zR)g&+wK+BSFkb3DS?*KZcI0tOg>e6`Ok`8JUYt^fE^x!8P>>FLQwYKKsab-q0H{2`Pa}!}2I6=W@DTe_n9-CJ;+i95 zJAufg77=hW`cg6DKczqTxg1k+p}FWN6}2Q7WvC=lhmMtDm<7Vqk%J5o%`%FhpIlVf z8!$&S$5II*m0aVeGyr3cc%&+LD?>3Op0wz=88jJ^AwR?^9#96+NxbK2=}jo1Pptqd z7F7U>fx6*pRgkU}jGAkFG>x!gh9SV7{b@txf}WH%J5+7Y zN(ZrHfpxw4BC&xj!WUffpS=KabD8RwZ3Zc?}sI0xj*d+_D2J8-B{(H!Z*h5h+16yq;cAS z+jtc`imrhARWZhLE2*Ou643d+{{R&#G3iktEC9tlP@~|E4KyZ)7>NXqn6D`DYX`lC zA^bJ!&$&4Vit^7CA{{~!I<;Ym*t$Ov==Lx$)8Ss9D5+)N9uN#vmY|ym_8y8ql_&2v z0!DFLQ}|JpPl=5{Bse{)X<=QM&q{C0=41>Skig@ zX$fF4K=dR5iTSEg&s<`j(H4vlFlxBU0x?J~ha7ZMM%Dw4)QPp1<>H@{j1DnNlrBW8 zk$`Y&L5MO^R}Z;=DtDV1 zY_}A`%pV|N8f2cEuY> zlh{x&qlKrYPFUb#n8uHls%JmC8K=g(ff&iC{%83!j8Y3AS$426>qSPaHaf*~F zIU=DaYYd9e%s@{4wDv_O9V$0%jg_YPxj#1)0P`B)E@{6awha-gZp$|m`IL3-L7@lA z4o5XIx`F{5R0!R0IH~w#!Cq(p*sS=^6&pq)Y%6h7pg?l{X=Ft|Frwf_f#l>5;ZE(y5hU#xYirvPlM*12M}{%z#Mt4j5*MAzkZ^ zlqMPW_7w6?K2FqgAmkQLya%Ol-ZkC*pB6vAUAE^Z=B_8k&5KBv{i>O;g4Esc=#ot? zJo;ABC_r;qo*l~RF>}~|D%MfGdiSD~z0jJ}vAd`oR6xkQ3UKNctzsnL)q6p58TU`N z%0fqK^X~|AtIorwPAj~>7_*i${nK1Og4cE2<#{7D%TsaES{|7p3WEStF2{|O+??$_ zDR86ZuBl9pK{sVV^r)OMZCPCn{A?LO+LtM=|dJvgl84DrUx&YP&rs z^e0*H<7WnzdAY?UvSLq~iQ-cGnBZ3@DW!tnEPh6-EXVFWQHu*F`!!-|5D%1Qj!?02 zLhRz2ph;C@-L|DgW$9V+hbcI7pDgqgj8}j=RbX)BwIO^ztrjnp79!fLTct8-nTW>% zlrbQjR6R{x8@UsS1FTYGD^aq>I0BnAjU0hMrbx#*uh#M!v7Horeq$R{EU1CN+=Jz= zbHyrS(QY=N?TXu8qdZqX;^!kqk%0puy^8ix*z>6;%vbPqaXyL~L{d&`s1|mrgUpBz zrE`7>Rz4p_Zca~1>4_xg9R*$;MaN*OpD`O-S}+4(rwdCRn@nT!sK^d5I5ha-aCsT4 z_j?&~vbXkiza+*n^r%jqX8bHGpQUK-+S^%pp%O6NF-N=Dc4lMf_F;0?=yB~;29Kt{ zA7@|6x69)yITaQ$$Q3-a`xWnZGDeA|;~ql(RVeWGk&Yl=%Cwmd0mdqA(d`?k<)_#^ z?&m%K00_>H&-yCk=~Y|7`XtS`TY-w|B~{uyx`0U{f}@I$V^6SiO>E9}{1>CQEdb)0 zd>5hu2!V55U@|J@&OxXoVi+2KSEJaEZBcB_ZTu18>;v{-Dx}^6&@LBmk+gePZ5yL6 z?+-M*FHe+J{Z5PMQpHVmI2ZVHph*afNB3(tRPY9oYo&osC=3(}p+;}n*}qGec$ZN){gLE4?^xjT62P7E?Bp(0p^mmuBJjdcTCBlhBz z8|K4~4Le#*wn#I9#aBZ!GR@e=6pUA;cu_W4$XH}ooLVSo_cs_ESEKk_Enwl#2c>C- z_=v@PB)76~O8vwB73FBEFJ*q5*Qwu-prGhK!n~!$&g>i5Qwy95kPzc;Jt?3JWK)?B98+30&jNrHazVv7fTolVK4D3K2TA}! z+Xh8F9JT@PP1>?!wJ(y&avP-pD@M#dUNK1k&f)1!GHl=)jI*n51B#S5jVRbBIOeMt z5Pzggk{}u4t&@@uKzmejBtBaw_lGsnhhFj`qtM~s;`Qj6yrlsKLX1`xvGEpdVn~h9 zC?Q~1WpP@)g|u3n%K*sSdsQnqB8q+2354{o(=fPyaUT_k#rwyt{{X`1ypAP}SJMT% z(_{F@sFAcH9P!e%?Yte~%~H`Ov`F#*$j4flz8>fuOhJ2KSE{l)lJ}x;e`-Y;F#Khb zCfPh-qquIZo&PjPr2-g@h?Pm^E|=& zQXh#L5&O9PE5`o-;Z(3*Cu8~5bMVIIA-C-&kL-HggZomSbJ&~5dRZJY{WDGf0EF92 zBjs~^B8eFQ9v*htvS6&C6+@Ig&v(Qofm0PiY+En|V?;neFiCc2a20K-+_)4^b zH+jK8uLu7Cg>|eI4-~k?CC`F&7=t zL_HrrLs0(!!Y$&=Vlrx80R8 zb`wWrXdCUzD{3f?Zg+hpi2(O;Mv^;jv z;TAv_AC*)|yjqhRsMbZ30G6Zb((F&xW8C{ZO%Ng`Wi+^jiB(}=AB}&;xe_^*@%`G6 zc(2ANN!==aYW}S*!S#suKECq6PSqOnHZyTwBd^3S62bCF(w6kAKk%`^y%B1LB8?nf#KRkKw6wpJJ6|-1@noUE9=- zDo-oT=Zp&ZOa2yzh!M6jANOk9e-(AqUK8-F-6z$4pcU@p}GfLQQV0SYUJ0 z6~JCBZSB7REV$|j_f%kVDS3k0p zO>Gu_#NGIR;`OUE`gQ!StNdHo@%U5L4~qJ|zu9iCqy%>vAIiTz{44u-d_vOMV!!?R zbRmyw_x}J6e%_W6zTH;QR5xwLv*(cggimpH_>19JZ9;3=im$IDilaBg---8vNpy>X z;y>=LO-rNx)87kxU21JL7fWU%8(8|+rg&3c_+;@v_9gT`InNlVRiue@VsM@j_>J*D zSdhVaE5=lEcI*|~T5kRt@>@kEw3l(q3)(~h$?gR{c^Ug8 zadv+mJX+FuR~E33Pm>kDAI85GFF$0r$Gmlc;pNagRI*&!+9--5z_-$p*HG|3n1jAUY|PD1ukHIw7~u@bj>7*!wL%}a6nLE0jR8YApIdFfs~ zt?PESI^DLL2F;Fsa>017NlhzBy@5z*ToJ(FW{+tg_DI*Y{iF05_+iqn2Hxa<^{dM~U*WjtvyA8vru^fetKJ^)O@)<; zwaa;Tjz;bV+C8j@_DJb&zA$_|7Y;A^!+OuPl>+>%)8q_kOTg}{{RZd@ehP8 z^!qtAQzEkWUMo98&@8o$H77P(S3CjUk82@&BzE?H7d{l*zRPVoXiu`^`d3LG#-9Mh zfGxei9>9Nvc@6i&{XSP8C)xi13em9eg`^P};$)K^pi%8)Y3z~c&GGNRD0V%q%8&O) z_*9m^9sVC&NwFcgU#K79UOnO;2HQhoWwo~7IrPRWJHmbjd63-S!XQ1qQNEbAa%NKgkA$!We1@SeP{ zZ4JN87XCy9xqN@S(xbKb{{Zmn?r{aI(#pj336JSs zUvcm=M4deCySP6n;Mbk_f54WB;%3s}uzje*=EodS?d8}#l0Krn_~YPv7GFL|lz+R@ zxGx!g(!UGrv>B#NT%?W)s8NRvRdpYRP+gPw5Av;v? zb5+eITw`PN%f#L?(=X@0xcfwseW}@ylbYhcx9qK<0xsj0HTo&5e#xH=rM3|1u(VRB z;|Dd*TK>kK6PXm=w7?t;3UK#KY9@YtzNoYAb^El%)SxS{*XarUi@X5QEGZ=Ms8f^w z0PC+1*FR*t33c!6e+^$u{XTpRsy*;4rD73}vS-TB>eiUuo&cu}LM-Gm?LVD;C8_?! z{xY%R(^QUJgW9df`xxuLVe>9^m4bX8+;puyyh-+QK5YKcf=!?hKN_~TFd^lD#dq4* z?4R*ZNaE4O>|UwqT>Sq40sbdLvL&#P`qpluW%3zcZixq&92)vl;0MR+--i0i!Eok% zBIT84h;y|`<(KFy&R6zb@yxnpcLe!Txc(!>a@U^%e1GBV*sP>=9+1$PP4p6|-EQRVQavlxm*dZk zrrjvAi2)}AZg47ns#}!kpH~Z0O*YTkzHib#H+ZVyWRm*cDAqMSMn9G+D=*qJTzMKZ zqDL~Wa6?h;qGag4htfZ0e@cJZ+;kjQ&S&<9)ew2I_<3>u{ZD24MO|FClm7q+_dd^8 z?IJ&9eF@}0r8~;UYWearg09&-+nW+Y|PU22tsWDCa`g*Wa=}Y=~@$h&|V*h{$a1XxZTtAqn!)bv)N28DLkjI6JOdt!MVlN zq_K}-o}Yzuo*ww);ExdJ?CSA_^&P(|eCR!kJsSt5Kg;&6N?(gU2)A9=CF5WBb6LmZ zhr>MJ-jVD3v&C1mLF`%IW7?y|b9UbrJ{jG>*AeRo6?)`j6%@Z0J{84{`s_nK)O$n@ znbu?4nTq7s;?KhNZCy2Zw<#~&%TWt071wh^=@Qd*lt!&>%6x7gi zGG#HG;KOgV!4fn zvkH|Uwv&k28|cE0VB|9}2U<;|(zT6}4h}y$Z`lI$0+BW|I#V{*u(Tb8JM3GBN?~Ik zU^MS6VzmCpj?~Yx6IK>8ysT0P>qqP?I*LBX-Gu@(gkW{1k=P2pEnHA+ie0=_folEf!q!1W!pN($){sVO z*OtSz9#eG1StWlgQ#Mtj6R&D-l>Nm3SJ<>{#aURGcA%>c)fXL#yKz7UtQ9A<3lTl2 zxLB@GQe(AT@=5lld0S}a_7n#yD-<}X0t|90ZMfo;FBH=PzQIeh z=Zc&v)3)(c1#D6U9+hC@H0`U7D6nW$+DA%HFVe30UFk3f6q*92!%q>_j40_&$Ec|S zsX^&Uf;v^bqJpF8S^-bXG^J|R-acMw00)97Ga*#~)YuWBk-JmXP?~&*84P~3a)I-g zj=yPt4tPQCZ8WPl)NXBt7_i$Ku>N)NAB{h2{{V@4;>l}ic)D%7oMII6@I5kl{cH51 z$KgML1@!l~x-=JZ&Pih;?(6Me1AoCoyal7fpm;vt!rDYOlKHZR`y49~Dgxn7z%%Vt zQ)8wYp9FZf;-%HquXZDTHT0u3fOu3>P4<@M`b zRjd(5a_j~hZB?DTxAm>>1?alBi*@m$=|FD4c?syTj`Zv_&y~I@_@4g&Siem_O^w}c zjxeJ+uQ`juek#2_W5DP;{JpF6)^CQsAJE<9@)9xzS&HX1qDw%c5%#&e5z4$U0Zl{{UwWq=nm6g_;M>)y*GQA2IUOcAA6_^FqTNPAl%uhPtEP zcuELaHoA?Y@U8>WH~bljSoM8M-IOq|NbyC#?=p%Pp4I1{2%Tf`9;F$Ru6kFX_`d$y z2_1aFnv_|~S;GEq0pNA6-rnNg-ZgBDcNOLk>Wu#Y>X$k1TWJ(5QKux6{34nqqr0D9 zw}j%?Ge2OxD<11m)o&OJhZc$GI@ETtv0x#O%7}NX631(}$szMG(zGOjV}vj;p_#wD z)p>9TdxEDS;cPP#D|%L)fV;Y7g(31sYzhFv@i>}0U@jOU zagaSK#hvJDXduz;i*PdJWL2*gX+BVnIb2ER5IL^vNwAK~OM)nVTqw>30AX8bw_1a# zypW(Bmx|oC(X1@U2$_F++j*jm1CF@I6-G%*50~a@02HDUtSYp!20tn3P@j~Y-Ayl> zY=ktY7_AJzJi8BSRoZ~Ot@+nIsQ7_Io=u|f_pF(}v@ZwD+eKyu_2#c_0KjqhS2T4y z+leu1Hm9knBGJTP84mO7TIp>7z){kGF@DK3pX*NS{#B)Kr^Oa9zny53Fam&aQiW!~ zKPaFHqY4Jl2jNavVEbcQh(ys1_NACKYa&7a0G6%LRV$4!%)V~3f1gzx0YRbF-+0SOgqZC~xOM&&=DCagTf};d zc#bc!K={LZR2qDmeW3F6OEEkD0DrYp)g#pAL;baV_Gpht)3p$0RU&;w;n-!f_<3&? z#Qta_?;8C6@qOZ4d_{&RzFm^zKaG8v7Q3X{{5OKu(sJfC>c`T)4erGoe~g*mhyD{joYxr}PK{B#)>ReemL^BNZZ=n-T~4;zL`E3$%q!0!mp7!dV|Qxr znaL9EvL(IbhU4cQfUeU{xVmK#Sz8FO2P9VwX)C4UGFzD&wRaXU>XMT!+lxrZ7_8!4 zi&qiAKY6TNbJ-Bp`%OmfHS%#u3>)NcxKDTvm{LmPm^q{Z)I-4)`S-tt?1ih2iVh~IG_y# zx4yeAF1dcT=sF_tRaSi#(|6cl`&_*;!y>b$)9m9uZT#lqMC6XuG+LyxFWI!49zVT6 z7qP2dfaI;Be{^wFrEMD5_tTcSn0D$a^}mPpO+|y>%wtvR1#j8-cFNE0s4RP)Xakjk z^H$VQ$6;^e$LdBaO4q`2$W~24QpfbJ>e}8Y5P$|nOw4dHIG_yseJb9_1-FO*D^*x< zpbDt7yEf2pqLEm$5sJ{vxzz0fn#I+&jwl)IYP9o1ANt3|07_Ytr!>g<`}_l07aH6V zk1ip(t1+%G?oJbcYcM){i;GK6tO*s5F1+pXT1UFGMxP;-T1>t=p4Gb@wYrhzt}{Vg zraHr^%)Vjj-=$lNObW`=4bNLjb`Awd)22rlpgBmQiD5WE0X2FeP>tOxkwQt4dJ3}; z^G7^lf=&bCEOG>n3&kM|#npA#SJONq0IF4tuUUOMq6V@!W{U`U=1Acz!pwRS& zSy6{SD5z%gkweIE4RAAfyHLIT)|qX){i>$=ezACWYL}m9Q_~ay*lHdj(e(A^L7!^o zr1357{{YLR+wadt#bi#N6w}A=*xpUwJk+r2y0y%HPK9bM;{NtAKn$Nt*C+kvt9Bwr z{t(#X(xF*=EvKOo#BL@X{`WMOdRdhDn(g`B{n65^!+T?A`;9Kk?G63v&D*zHa_74^{bH9OLY*BRn~D?NvX zbg31!OP0Kte+W4hB5T((HR-%dgHKjJ~t93BwI@N~MJWG2Z{>ir%akp`S zKo(=uHQAJ%dhu=JZpv|07B36w4Y^d_%nu*M%`#0L82P&XqRoy50hKbwBWGm79VJkcRw{rCEtv7Xg_ePX&0t3#WLT-T2-p~IyRmsnD7oL zHvTKt5Sb+V3}4cKBmV$|dcx5b zB)?{i_8moO+IR}q7TTa9(irxJ5WTrjHXlRT}7^mrQ3kE_T!G`wF9O{IH?*?tAysH z%&?+3*J5#w)q$=2)^7_6zO5n=&)%w<+wHR{AKq#J#_+SDSreRt#dXq4kCm&>JThh% zq;?%^znjZ!7Qmnh!@t>NKst)?Z-rC1)wP=??K%Fn>Wh7B43P;vtH6F9-(5%Jol?#r zfFF1Btj!LG!KPbJh`uF-@OeYW(!Fkb#DZ|spO@0SKSGNAJ}2uwTJ7_2Pv8Z61LoGo27En~U4N|eW+8vzM!DYvz%2eFc;3{mOllh=zC~krYCr7{ z2Fd3RMA8iU4b{&hLHggv9~bJU?D}kL3WJWE;<($B;!SozJ>>4exFdE2Zs;04yWCw! z3Xd!wn;cZ03cGD{U7E+LMB9ChbDN}8wD8@%w12%D-MuTb(L61GJFIpVr<3VlM(IBf z^w{BwXN_`u5na``m1AH+TSNgJz^J%0z%2e4UR@vb!{z%|d!u|X)1h^HuqIW<73)a{ zeZ6VvZXt7yGfSNlW6ZuJTgPvtBoPgfrZ7E#tDXxcPY=SXImI*LOeM5$G1~`rKPt1} zMh~FE?7U+fdr%`zTW~pUzLdzL&l_;Qm7_a=_}fg8iy&m<6_^;hj4_o1?$%b-+vSmw zTNlH60(q>fbMxSew7^L1U1U~_bUiDn)*K%S-x)q{+&>>dS&?N|E%$3{SP{2}uHzg= zV19n0v`i0%d^)-;ay{0xckCxO& z;caH-KeXz%zEU2eHBiCf4JorEziO0rpa(_bonha}((FWQ>$bJwgT&LwF7IVnp{t$2~qKQWztjdP{_6*~=sH2gkk8AOY($%0_ zOSg>R?eyzeVUQilEAmX+O7cHI!T$ga4d;yTD&NY=6?;=q4qWu70Ka-V^HI`A(XxAS zin$tODI6Mz>^Ni8Q(fCTx^1fjao-T)52NIdxWc@K1ZF^|fnL?)RWoQ3mK>=S<1vsU z1EqSn9gHSC#);FlXUxxxuWHi5?9274Hw%dW0C!zyIfdpllIE>OCYAbdDTwgI-!SH$ z_xm_Ois$tU(8iIJ6A%YkV<5~X}g>i3~*|AtYdr$8=A|s zl4%oY7~`#7jiil&)~XRQxxQhuwuo@G=pGyRf8x&*+pWfpV$TzB8yFSh8pZtRQB?8m z#eTK?5%GV8?0y*NaTQOreVs$9_1*7^=)=-Y*&O(qoUuN2&_8BR7u>?1+EN7%)C%|C z4*twO9gIv^(+enrL{{UriTs`gnxvZV{Gr!<*TM%iHTaB0>m0tTd{PF+=_O6)FiaA|b z9E4gFY|7JQpL*&oEuoG;V_pSKwU~V4rB1P_hym2nv`M)-k?*?Jpfw^PdG;_Aj)R6kDP|C&F_o}u4)0mh zEO2L-U{D5`-pmN(idEbgnNHf^@4SC%SjDDW@5k{9#FJI=R;EJRLdd7Mpbt;Ep5EAb zlS%@8aacD#Fwt!eBa?CVu6_>y>YADfwOh0P?s%(z*d7_uNc&@}GWMVfa`?Jig3V=U z#Gh)Z=WF_%&9c0HQVAFGt+w%2hhT;~C_@p`ioyQ?gr88lx`iWy%2OiqTEUSc>hFkU zgx(yHM&?-4pL|!#zqC{m$)uTXS8J;bV!ns*&HJ4b!&lQb3EDrEc%SVN8%^PlJw|@- zKZS5q_>THN3F3bVJVkk>>2kvrxRsagaa!Iazwy2L;gic!dJjtEz7T6x`gAu?$rqZ+ zGhK$c;@whz^lLjZr=Oa->THfx@g9CWJ*vEc?_@mt)~&voq}wnTINk1RGD!SMsY(^t zrD@vucnJX1=L~%_NTZ>*)pR=r#7G^7O3;VKI-`x2HhE8_XTfivY22N!iqTIMY4Ik@ zJ6w_JKneCw6Y7V}mQxZQ!nEyt32l$GYF7Z0{pPIWtN4=q2<@WsBR|TmuZHz&_Ex-^ z%K8IMpfxc)AQgO4jP9-d$5sHCOf%2MpCm<1LYvANbR1UrXwZsjg@S+q*k+S8wDq+`Hqi0DUT;Vi#j|6hP3s0U1~OBAoOCnt(j&-M(GK^sDKU z8Rs>T5NwqLBCo*38yLk|nj(%#VZMf6yN6o$FBYJe!)Y)3ApVu%^I>LI9hg_Q+_GQz zNGUtNcV3PSoY<1Dfh7Ayp58XEYVJb$M|eLic_)BwOlC_}Q^BuRMj>$Z?NZqC>MH}t zSmj0q5H4gO3XjhI5HnIc;W7r==tc)I;+v&{(8JZuaNZuZ^Doxzx~*FAMfsZK#ySov z$AyQ@u<~oosQIcLRM)zC9Dlmt{*>RBr$A{4iBHILObn%V$k?v=oTgpIBb+RCpoF}C zH*S@Ub#V-LK=lHiZ`3I;@@q3gQb18b2RWw~RF7jER#M$hafQYWOl@u&Kp5tp#7}?3D>nhS{@-9Ds)@Tol^+ek<u;@J;1lJF z(vQNoLk8|*RL}(T_=``E{i@5j@f6Y!ntU1jD|tLWq}u>wU_P}my3q9Q6f2)$KpeuZ zy?(g=09M|@r;o$hq~G!PDGORH;`re>x3e7jilrxrb-Tl|(mjh>0d+hlWQ9%30zcX{ zqb0Y8>;Ur$DIEgWG5wLQ>HxLX#s{FQ@OU{k?znb(49y8VOQTyyh(_buuqN?!`+Sy> ze5be-vV1qB!c@LE>}td6S{9zZP=#9_lmW{_FNifj$fTkgojf@^FiEE@qpfJ&c%lz0 z7D?pirxlR;p0_%Wv!~-g8xeSKONlbv{Y_g*G@BvizT7WCT=CNNi4;83V7Fmb?ff?D zi7q5A-jo4ye-T((jgcno_7#}A=B+p@YiGpr8#~Zx87<#E1P& zU2DA>!Aw!AHDDbJQkQP|y49F`HE$3Na9H}#1&KUMV4y5X$n+JRF1e~*KFe5+%GfaI zRzwydaqCTQ5NS}jRX|tTfH4}+TDtj|?W+sn>$l=*i3hJWH2x@E-{_HK4{EIX)~z_& zvH5$taX=atei+m3kjr&~ed^#kJ(?9wr21Dpbp2xF4>8W#y$6MH``IKk0crK?Xovbd zV{-Pa$-GH_Dcc3M7}oqcJ)|93cN%QBnr)9v7g_-4QY~u#04!L<4{Du!IdbXy=?z@C z@j4X$07Q#%tkbLOcUV-9XrK+Kyg8;ufs0{>b65WW;!kF(xl(;ab6?r|-O}!oPn7nl zq42f&;&}i=+JH7Ld_kmJ;79ZO3e1zm6EOb(M2jjqaaZ8*t&9LOa%)5E+C8Q`+ze0$ zGbW?2UJQlV^rtS7tKF{YBq{A(8P>FTeprY*YdTLCZv@-LkiF;v8(#;b^L*vKt707= zL9`oW1CLt4msr-WP&7%jA4;m$8m-|TZb38w+#O3twooGqanp*;x$%XhCvTQB?O4m< z7m)#)T>k({)QiJfWD$=u1dmz($d|=;5)v&CdUitI30i0913{qpTrvaWQD#OrYincfv0FuhWk&%on3=u`OH5mPDxVNV9Dj6U73;4Q(L=gJ#xY(q;%JcTP$=$4HPwRn&U{C}&quLxEm5DY(OL4LA!mG?hoA2f>C+}SkXq#vK|idIH3f})yEKvPfyj>ZRQr>QPB z^a7&$xZ6v(jy-4{$w}HmftpQ%L!9)ceaswnr{e>0>p%`*N{!rNjB&*>NwPwLj8tT@ zj!gtIW5zR0Qg{0rK5s8}Ij1039Q70wO7SuKwAFS81k;HjX`Q_&0Zun$(y%MQ=93$b zT9Yh2#Ryso@(`hM#YV(3?Ws!#;~1v60XU!t5qjYCt5BVs6V|GQ-O{Y67~`!2Er{3e zXEhqJ1jc*P9x$S$5vykhkSkTNndBZdNfz-C9FdGy&>kL zv}3fK=N0H45QRR@?-;;g%}sBFxbAsp#ABUSA^v(+9h*1GJ78A7#DDn=#=e!6X3Anw z-vYkFBmN2V*}ukI$j=n@#X*7%OjL!4G!~>rF))uqoM9 z7z2-5VZgy!13}NUeQG`3Hi~#T`HyOy8ZxKl#Q;PkTpiU213QN_g_OSo6oFfl+JV?r zKR!BCjJ*X2RC7}0S$Los5hos6^GE?hiZ=6=r}A+~OJFgnuRHjLLTN!qt$G-Zn;=)2 z{75D{2-N!59yj=G-iOAFzlV{7a9^$m^sir-{Kt$}l>9tUcRySX-%9maWKP^xIdc8c zwlm{HMh_XKI9?Z;O{4(Air&UU<91F5G}d;`T9p+~Uet{FAPxmoM8z%Z$geW-7*^Eb zUVwD3O%eH@BA(Udy87`OzwQ+ zis+1e)MG8#VbxfN=xG$OZ>2my&N8Po{hJVm>M5cKWjG?2Y5UlyOB`VHQ-&u14m~QY z1KMIxb~Rh4%*LdZw%}9)t~%n74p{Pc15>R)na|78r_TNtwE#4bDB2kF+NQ#)WYi?@ zIUEWAMUUp@q~2HMUX%t^UMUxG7!&~j%k`+-H-432FdGd|B|zkHKopo|`K$3pBaf{@ z?He$_rXMtXz|aMiAbh++qnw-!Vx%#QZ>Ym`pvX&L^q>(N zfE#yVQ%cLU5l|dBT-Y zXK$rdzTB`n`YFXBqt3h({!XoMG5kioOe*adIOe>|!LbL_?pe-$YV@LvpDNT)_*r$j z6Rez(j8JxwQ7~n3k}0__CRe3sMTYEPa79P3XXP0*@>_R34M(=z?^YyNAQkC~0FBhMWK&cTKv^-xN#)D3 zfGc1Y3V%wtRHidbSB@W)j%mhT)BtTHQ)LBqj?~|shC2#S>{D)QKpZ7B@0Gsr;*k(% znkNB3P$&Tu43dM2baB22V}VgA=!xE>Z#evir2r)9wm)xbY+wk0=~5_VI6Wzha@ZVH zTnCuc;FEz%9uSaz?I?`x$)ra96G*KF0yq4Jk4ln9@{}c4aZ|*5~2EitRM;Q3ca9%h+xrBSyf4{YGemGy;!hPy0{3eh$v^CqN!l(F` z`d0ct5O2+4Xt0r|Ky%8iY%pgy&M1e#h?eAw%hM%CEC;P8%^xSFSlz;rRDh?cfgOu5 zM2vQ&TzQ^{W2>ak}P!G!%gzP-2?jGiMm5#Bzl|=}wFe zgitg>dsObZfwmsiQP}5^#aKg_-vhO3{t=_ed@cljB)j)->t4C3lDcyYZX0XJv|rtL zqToNvmj1Qum$B~CSTCWkI}Py79TVOs%o8zti3;#@S~@Qm(YM_IilKKGmwhTDWM-~u zt^St~=r;=ZY(li8kEf;ZMEW8Z&AMZOin$ZMHq{8DA7_ZKKm}ci_x!c<72~Pt#CrzZ z0PR2=;rdgy6nyoiF}r--D=-*cG7waOLYx7d)pEHbBL=M;jAOM+Ks0gpdG@F8e1&0( zbbKf@j{ak8UJXr(99c-kF_Q`nN&{Mw(neutifY(j&oM884N&<7jx38ssk;0Pqc~6$kBkvZ59qX6zyDDgJ zk8kH)FkdN^y=#&2!2bY=EQI&R^RK9{@UzLKx-NJm?9gHzj%%iK!Nqc(4am^pPipDg zD0b7sd;_WR5fVcTRk1GC_Nsf_RJjbfHK7_3NWq9~(>COFs7sJ|8CrP#<9d5gAkH(2 zM4K2|X(dJo=}*8bxqDCoyxDwqs2?(C9R*mo2*i>zQD+Q5=}2RNEeh@EDYc9ZV}f$ssm=0^dQ*5fD^?=f#HD^*993uCyJ)KsU=9AAs0d zt44VpYtlR~^V*kM(+%+%Vtx``RH_rYypWCe(go?7^{q`Ak3Fl(9RuG;2V>g0E1dK; zHPtYoXxKM#NUBjbnw3)+=AdJTIR=P`SK8RcGC(B398yMrgN~w;0z;L5lk%v}^lZNr zyyu>xmA-5mkOB`=NtQfzsdkOHJ*prWWKsa!>y7{>LD|0bFqN^4Rde}Mfx!ZR4D`(= z$0v@JCv4MteBI~(DA)(3Iaz_)X`8Y|KWg`&5J?(^2faHCV&a)8DnK15Es@rx0@#K% zCQYqXH91A35;uHSnl8oPipbV{xitApaB*E2KaCMz;XF87?VP(Fq@T{NwW7Kb#+YL} z@WQQNs(izfU#Zae7oqSKSG>;ez?Xhho)Q-DO1z2au;8Y9?b>h3+&Q%mZM&tCWP&*b1YPjIjmQ1k# zV2Tw%I3981VYd1M{?M;Pgch`kk7XaqyyM3I05sO4{h?lmYk_SZJ1G8DFrU6(BIP1> z+S_wekgTACP;D)fKz)N1(CZoUBGH}I0*W^rjoj1$OMdgUJ8*8CRQpimMAFL|{n47{ zHC2vLxDBSa+@95&a8g6HMok{nIZ>l&Df>F8G}&{4Nu;(?h&R(Na95txl~f+gY%h$0 zpo(|_$lLPbqEvN{Vr- zxoK7;#H4dd{{XxjyZTjRU~no@qaP`vH6z%U23ORAjW$CkU8f(Fd1u4_04=Wd1?t;? zA4>IoM`~%(vHt1)Rpnm}L}K?)ammgrhZoDtj@&&zb)KX4Xaeonzm)>g(pA_%6pP8h zsX+?0(y7C-&&%dk7M9Q-mlVggwq-kzAIhcNO8_{lYZ!J4O=mbmv2b2z79-H(yCUaq zQ`A-CKZhlk1ft+^Tqlf;yn3rzMs^efHN+Kd!9gaxDdsezE?!g9h7wLUx$AOi`b@X6 zybP>)=qs6y!UN+qgJ2Qt6yFM87_~HxURVDBty+th@rFRh$yrLQWi1g(lSu1syf>w+ zyPh!r0EJUN8`0)$BnrP(71d0@zD+4;-9R|6XW3HzQ-_*e&P;eqN=C~-xcXJ3@TP^Z zv59f?t>?%io+*Kg0+`67>eRoKJ*4}XvG`L$7VQ^uT09L@oeM9A` zkIVj5^CyU6NHyD#hxqze&t~+a8*-!C%Bp`cR47m-Cz`zi%D}R6D>eS^-&*cGF&u9Z zNmn_qDhH}%S?yNblX)-0NI(VTizTO?k;%9pT2bF=oyYH)@^@m&xkP< z^Q03H2g*|**T(Y^_ezSby$9Z@cxBMI)Uo<4qW;@@jClUov5IsZP$w1a8dvSL;Y*nI z-C2E{kT!q@2kBptF_}w}xX03gfY`=Z`*f~%h3s0akJ&r_0NShJr;4mr%H^IskQi}_ z_74jDaQIIqnwn%6D}cLB{B*Cu5*sSSgO0+rA=NcFKo;_p{{VKS(Xm{|?eE2pi+%?1 zXT$wVQ}DISKWZuEM-)slOq^$m_)EbTnzo~7_N#_+(q=|%o=aEBi+QYHM50@XB#m+M zvEshd_)B4r45X8uO5+}tFoB%pbk=&dt6*^j!^Tge5&WwA_>;sEwjTaa2cxw*Ye@H% zJo;8_mf<>air?9z4r4Cn`%yC)q`7x*Qch~!zle3aMplCIL;nB+YJtGmcLFM~i~s=? zdo&!yyPa=ZzPkHF_iyG7gt;|lZyETE6olS8Z0X6YW{r{kX&D2rBWV=BgWdN9kwFlsje4ngIw}J9eVVm*^8L<%~#?liZ56F zF6u^6&~Ct~bpHU1{xj1NE$uEg#5yf;8i4)K6^6<<*-6t5W7+jzk6t^vv69)Y6%ocV z2O_ykAB(;*(`~-Z70%%&QbtX1l5(Tkst{YZN);8}`?GK=J@7h1aT7|1wL2DFiCk24RVx#cq z?FZry4L}mw+9?6+y+6XfcoytFRy{pxQl(Q0+|lfV+Mi_U{{Xd((^|ZD`gAf%pzRwt z=Dex@0BDa9{{U^ts3M}q$A}evPAkG9NjCMQmKRk45Ma^ljXk0C&7bX8;wYqHKA#y= zz#Dk3pGy6yEtW@;=S@YG`s`3E;{O03#^-Rs^r{j<*8c!L(eqKsVieEN6Z=%@@ma{< zWoBW~M@rx=e`tLlSk?xwtyqTgzUqO}zBYt~B}fE6=}7|!rDWamj?}qI=08d-{{U&P zhYzwdVJuvA0~M3vFWO_mHnE}8qL(@J?O&cxmtfiB(;xk6QV!sDSIqJrCzGkzKf=E`CAZ3afDHRmrM!DKzw)VchNOO>zwH6= zx@8ij(NcPRwdYhw*22R-vza6j;Y{nc+UgCXu3c-9@h^>h1!rxyM7f4*h3K1?75R4@*AXY*E9@%uoy*1Zi8B4T ztW-)rPxQs`=AowBJ=N{9$vWhK;C>Z&LEw!e?q6F&>xn@AwfTLhUf)2gGD<-ruq4$r z8NU3){RJ*SKUARcPs91A`!edV@ANJ)RwjqT_cO-YRQv1S3!*a(5 zhb>~bEzy*X)$sPO;_YiyxJ#>xseHxgLts{wm&6|x**5glCRS1MoYCxqoc#j0@I?2v z%GXh<$&Z^H)+hWcO*JB8I0WN4C#8IOYw^qC2A-KZgpvm1lU472IC%2y8YR79k@FCG zQS6v=pIh5#ULTn*G`%fSS5Ljv*EebKwPa~0)G)bkl}BM;FlfINd}pO@n#SnnL-P}Z zT?VP~`^J`rD2oX#vi2|fn%#b12suz5_$3{ z80UK*>s{5ygf8@*F=D^De%W0n)}OUSwx)&+XG=+7 zUcrSNfn%?43u=0!hSD!(SX;j4AJ(KF4!mU)gY0^p!u=+Ye_Caa?KR*i;#4|&LI+?) zT%Y!t@JW$&TDeo)8hoO$vp<7;O=$<(A6vWJtBz)q{A-J}viOOAGe>2t-R(nxnOuKb zrFHvD=r`BP5Cv@maypvrljGmR6oY$Q>>zYi=8G`0GUCy`F@2$7gIl-@o^vaY>s=P3 zYw<4HHAwZ_g_I6+D~0}bl0Rr)hYsK9*A8*p2Q@UgPD5W1aBl#&3)xQTq<7QV{i7-v&HkkvF=@F~?SI4i2SGRslnlu|n{WBu8bTQ!A>_mUs*4Iqm zd5a9!PrJi*v0zOAR~&Sw?PNb^6PVO~Jb2?tgwH;S35|c)AOTp`U$rK$a}k&R5#cBw z+)@W0g-znETfx!WE}egI1g2~SK*J)nbUhQpR+?g_pBhI4@^gxxZ87^OmUOS$R^s#& zlf%r6J9CQDy8WZ=?GqAcGL!9^p#{E!8QUM1$DkD5YfH7cwIb8Y^LubA{iMwOlt}*o z;i|5#o@0C z#TVJq-6LG~P_+5x9?B!z_LcBdEXjRqaT5>rI#e-!(*FPtUzU#IFguj%`d6R$^Wooz zE*2)U#3h(y0oJ$luZ2Dw8d}HXZ(^h7+9>w(7qN-y7M~q_4|x}xZe?Nq=l=j&n=i*t z1jmmwOrUlB-~RwwxJz$`cGl4OR_Lfd+!d3pcxu|x+}o|NmE_=jqMz1h*gcGUo{ul> z1@O)y5^I;qKl9B00EKn-pA`HFb8arTBqMz1h*uSesx$Eumf8pZr+M1_fxMHm*#XpDAFpTQ(0^K`&EKbLz$M?|~#>gI9z8`WUGXjyw`vMm39Kf8Q1J z*!X{;$g7KN1Q_(LH^n{!(DeILbsR;#l=D#WZ?G&X?tO+lTj1^#YPQ+`0IrKyqSrh( zB4lb7{{Z*#YvPRy;eD>DXt!aSB_G1wYpH*R5q+P_id+%Xnx%^JDtK6*SFWq!{FN8> z-}m)JPM6w5nGs$NL-WnvH=n34F!JOxBAO`w8Kr zZO^kj-7xjJhd=MFD4$LTXPp`L+_mx<@Ko0vhh<@0UcIDGrO2s0;e$M6)}LB^j6STp zpL_#l_f}}g9*ng)hTYRDP~*{sd^e_eLh==k;!C!fCFB*Yd#?*$sRr8p;v=Uu4;gNS z{aJTD$ZH@*&@ewbm2E&?Ir`V<#J}*clU5pjov2*w{{Hi}yIWlY$0`C|>z50jLGunP zHI4Eg)lam3#mC*`)PG?ta6g8=JbgdnO}GXPc6I}&&TEvL#Ge;**^Q*SzleKPmsEI`dRwIh@2MN_}=PsZzZA}vYwk5IU+ezzM9;SaQh znu10^{3=DUP7XzWe8cf~<3s8{+3;O7@-GJpwdoM}{{Z5K*v$7HT!XIVTGBYRV;6;J z`w&{H92NsLR^!7uKBp`*>M%oe(0$J}Rkr;%1B&?`Z;4+NQ!gFLNC$1JSyul58NM#f zdG=T>Bb7%}wQ4@K65&Cgccq@u9B|CBq<_Ky#yUHGly8~rKlJX4^o_BSd7vFC=zv8$ip61_IKQ2YsF|HMX9k!qFrv0t_#TyUf*ZEiJ9-}A29Wnvu_!>1%nGmS{LaAx` z7s2lmP6R#@D#|iSp#XkWr#O9F{O!Dz-b6s8X9K4k@n3uVGw>dn@Yms;-o11|*L64< zi~j&|I|}Trd?WB`%IwcKhqkmNV{-hb9sd9dPmKOK@Vp)Zx`#!!k>@Gp#EZ}aM>xK& z&z3wxt6V0NE!Fn#Efu-{0D8V&7dxhw^`GU*#d;^j4-o6pcs}1ox3Y9;SxdM3HQ+yJ z)*^r+!b*&0yXmvesCKjJs8cB2YcS8e@&T+Eth`Bk{{SBL5|RGO)Kgn{hQ#itmSy(@(N2ew}!!t}i1RdgT1apaQ<*e+T}{`n1hxx|}e# z@Zqp4OHcSC@DBY?_I9F|J4Ogsr5cHwdjsGot_PN*o+=$u>2}1q#eMsC@DJd$pXkqh zIjT2bvgd{-9z~yuQ$G86r|r;t7JNr_C|M6oEoR?cA%H4lpQU}1H|&3R zF)OF|f*CW@BdtLv>__9fh=0(vD`&^AYQfYWvyt(Av+NtVC-AG*?sL7cKN|OqWA<72 zgQ80D+&nFgIAyG+{hz#T8V1Bz$M=?(w}}0Wj~=@U=j9^4w$i_U@JhyKIR+9r7{(4O z#5He&UNh5SSMr3#yCx6vucGwr16Q^9J7c07W|HpQ6_H0cUb(7u;?;#5JnyPLL+}-} zr^J`hK`)lP<%#sJhhA7lp|Ub&arp|DL-0?D?EFtPvLh%pV3^rCT z^Pj!9(yldOVk%OXG0j4tqbO6YBL9}<|r zYj%YXT#nUV)+Tl}Bi{(ycP3Qy3sVUH0C$UY;Qs&-s8deAQTAlFGBExsw7PZjNB)+K z5Ox)O;6%$7&9XO`>)2JrGWlzT5pmSia9Z4Xgjw5_0Cggs_7f@dZkV_GAW?8DdDiVH zjhD}H(BpwuzQruZH!dyX9-ZmYM{(tCwu8&haw?>-$r1kmNi8IYpdBf50Qlsviz3=K zxMAy3NG@iB2NvM^Qi~l<=|HznC4Fm3&%)%4-AdA*PLy*2i5%$$AxO={osDYSX?nJ) zC!2J9h<~~(sJ67WhxZ`@Fs*bTuD}N!>2m?f!J}B%uwXJzdfc^pc*vA-jyh9r_CS7M zIjV^@vtd{71Nc#JFnnn;$YN;vWLHn5Gs~w(xbceO{8J(W660|uw)EXmrnWZri;atl zE(bz(?!o9QGV@fowc!XPdQ}5!sNEl#@F*~7sy+d zV$y5_08+-2Nc}Lr)y&-ZgHO}O>7)nRx!aE$-Q5EYjR!uodsI?^>C#PaYKB>k(7n$U z%j#YnmTD7c6_I)PP%g^zVOWPsx8!|tMHIJI+ zRk4JA2BLuIdU~@;t#@)d6Z2Mgoo@n{)vq__qKc9|RuY088rU?a_^4F_l+qvD*U@!d zI@h=GoP8>>e-GO*f_8mQ;C~NM`BZNd(?8n0M}L5wA{8t;o_O%}pi(-?fk!ZMn{Jx* z(kyC=VQr2H`A#b_-$t~bFCo30di=tqk@(-PY5?)~0qI#&-uattd^>5&pY?=QQzV;S z()@X^*}OVEmfLk1+$-jtUqIEgZGOz&W$qQ!ZO2OeE%;Sys1F2PUg}dU*BiFrb`|mW z#-?aIS*J%H5X~VO$8c&Za`Pj4KMO}+ev;g2_Taadgw1)KtDrz>NVc;~CZ}}H2W4vIkj^fPMB+5> zp0%wN?vHHQ1WzM%K9m8}+3F|#R)uGQ(|HuLL2&M7)$aDM_d&%_vzuMIZz9e=CMM@S zE1`qJEjugf68WsXt4kS}@#-3Vs+e@UcDRuD#}y@>jj!r5=4nl|P1sj`X{WC!NzHIH>;6+wg+|gEL$e$5B*e zbd9jJ27JaLc*P{o1UND^09r{)3Bd0 z!~(~_TCwu4%%_uD0a_g@-X_UR)%3TCRIvGJrs6;V$4Y5OkY}Kv1@j60(CJJH?Tm4X znje>_Q;7>wWW=yo_wF18K4gOE8S~Sh>IH`XAf>MS$A4fMnmd%#gn?`ohx{n z`N~~S_Gm{zj8%WJ=@!wMbsM2_{{Y<-0H4}=C9{Ro?ELu`jN-4#-XPRa9xW55I$%`@ z?=PbvG#em@-^4)TqnAy;n&3^WYC9LHP-p_o_F659snu@H)W6(Qnq(Ti?ZY%WC6|;F z_}F5hms0Tcgrr!(_L;jA&ovB}z975Wkw@g`(|`qN1ns43Hwx417v5Ms7dYam8FU>w zRq|BaN+ZvJ}$ncRPL7VVuwgnAA0mPA@9X+(rjNMk^kD zBV>MVvwnZvLsAs+MeFc>&c3IN3am8k6H6^Nv3M?}>$fxkD{DGMqNT2lVrGo?A#Jqpju{{U-m6ajYXFBED=&AXUd zqxJ_CK-u_rOLcul=j{>>+p|+24tSSXm1Wf~h)?dX718Pb39z=1JgdL`?r1YP$aU!! zR{qJd1qVa6oOIt6>hlk@&GvZTviet~MW$)iZI}=Yb*p0G0)}1y_Mi?cPw-uYZMNh0 zta{^(D*zZY|7!A`ES!EKbW5z0?Pa9;&*vCo&#*~boDd|ib$@Z)n^;i%QoyC1Bli%G= z5ZfskphsTPENTm|$gJ&3?it_#I*P^nE#1%h;zlatS@~A1olYnNma({!3&&VV$vs7N z60OzP3>@R7a~e0xsO>l&)#%af$Wj0UwE$;X=@BDtl;*t4!4O3k#eGiIKu}`@X1%U4 zlG{keE5hMrviQxk5B1OvpIXhD6X}yRpT-SH;1Mbh>0aq`!{tC3^sk;w<}Zv>CP4Ee z{{Ra2xdVwXfAy*A11F&sAKUG1f8*)aFe@2K#YG-p;OH~) zL&iC6#(QX+p5qlu!C@Q0`kP3j{yro{Pfo(J^zRYr(EMHT47z-tZL`^+%Jkt!O4Im! z&vBq?ZGbn<EE`v9CY)HMSoY>H=eoNFGDza_{-BdL%Ca1P-&HUwXXtgZDTW_)tq7s#p4D2yHhWm)Zh=NB(UjnT zI#ijGHum{ca41fpU+)@*85!7*YOx$Fr*Snb4?p;oYR{vy=jBSt_;+wlhLPtYJl99@ z1q=9oZ))T|9WiY!#@&j%Re|V}Cj1->)m8o2!*r+{%xvvEQWU_$9%=xoa?ys!)N+&LH@wFTyi5n%CP{!O}{a&p>ZykGe~&Y zK@=c97P9`qw7j`n^28YqK-h}a1jN~ipeihQ95b5^*d-Um%RZ~~-7ONnN!rSc8j+|nw%d7Z5 zPaaLQLPER%1wki?HMxRAq1Y53-XpaxQiUpa@Z9H3sC#n$pS{7S4$hoC!Ys{Sd|K43o1 zhugJ5{{RU^luPC5c6+hFz^P)N#agEkC)v>Y`c+S3GamX0Ev0DPyvA;(vc^;7E7rAd z;+ogwyE~-ytj0Ur=KL%2eB=1?KKljyBt7E9e<}Pb1m1@|s#7Kg%4%gfBZ~75-3K8h zxv8Ud--oBH@g54(oFMstpfov89Gqxwsp`3}7>xs9cCTdduutqaVd}ZB9*1IpO?tQ$ zp^V99TmYbEniWK6H7ib|^Vc%P7dJzEZ|; zIjDYZ+zbk?VOW8!qJZsza4CYxX9vx#k0la4%zD&usKzMf3l-qfV~RhQr4nhVtD4j4 z9??-NmQowF9Kp(Sce+ir=}3N&DAZV{uYrz z{Ok0SO_B(-xRW2l#e2D0JWSSBNfcw#V~v9_T~QT=I>dz zT8^1!pj^xl4|?;+?R;~nxEBNL>GZ8X_(HA066<$?^UevN(6e{r+Xz_2WIW;u?3BhLV6M_QJ=uN7te38-FphC{yA2Szp-pdZpR!@1sOa!<2^;uukJj!&t*8P zt>C>D(my{^y4=Urs*+uJ?^kgd{lXtgkoY3uN1Ll^8-sJSngF!A{{Vt?c>d3{NbA7B z%}|rZ+J(a#T^`8nevP)Qrk&u8Er*-2-yLb+@Rw=Uxr0r#^FZiSPz68i-y7;ciDWkM z{#8A{g6$Q4(W>3=kafwbmtG+8cBG+gU}%u^r^n%Kb5TJyqi|4n?OB0-8?Ogx8`YFM zk8IUTpAuQ!d23~C0+I%CQ>TXfHDsHwE)m>&)qCsh8Z}7t=)o)8R*)t~w|ql}Ildj~ zcgol{<#Ww>PsWD2yzm@XumE7%nLj~ZjjT$#kHJ~)9Oa?G{Hw|QNpvs%6J@@23)9mT z#b0x3UkT#B2yV2vV!WE=e|)(9mFRl6j5L^4-rmugOk?iXn0zO(vADRnX`}&T3P}7b z)BHtw;k#J3L>5Op0JYfmMl0exs!e-YznRr7$|2}#Yh5E*l=-FbPx7MUSiF?%)9lKQ z)hq|ZmnBiZa=x_%9WADbY>Kj8Or(yvt=M%x3u%l#Q6u^&u2SE_(lY^ha&Ud?rn9r~ z-HZPAL~^tNar|6c_jVR%+lp|s@n)z4p)kgO4k?m&mqvv7R@TAD=tWkS#GWL(L2sr) zV?)IThN5^;oR94*o&NyuHB0@U;e9dlbjaj-8pDgjz9YS0ZlyVI(zPS-JQ1Jt>y8Jh zpa;w1eHIVh>DJ+~=qnmcUhh#j@_f8;Tg?}Qbf6SU8bMk2z9iB}7WS}Y^vD(DW>k5p z*zCa6<&r9{7>w{hsNxMPkZDHdBOGt-K#7(9UMusOk>z$iwv)VWSaR6fItpA3n<=pz zle_q8Lb*GKK}lG$C02}esiRb5lTbVE6*le45OIo@1i`{C-qe#>EY>owsH*(#$7;}1 z`?DB5sm0l#wuj6Y){Sd_G+l!li;ydO#Wv4ptj*jvHHDq-2V-AJMcp1%MQIH?Pg72f z5tQ#d(n_ef;-!W)$31GuCL%bts7#*qz2~-_r98?8=imeHR5ayD=l$@?r9t95sArlR zNKQn2x7M>YMifmWmUGsoTn72N)1o-a^iffWoVzeM6`~Pp&u^MXT8`^-WaooTv?e*Y z6}73KTPPPpXsuT+jDy70%()-=v5IT@Z_ zu3-uR%}%bQ?y7H?+ih64E79tJp5{dnj0}@rf#K`<-${En8C3@r!Ab&wv2$L9;He^# zz=t0>IIgTDj4>-i8^Y4Hwzy(L_sPwBGs?U-r&{rAW)>bPa?6391$tP$l2+N+_OEh@ z=2cr8suoU01x0;!miDaq6_AN?Fa~(yx$hTBZLNe%*vQT+rMn|2E4v&;&BNYmSV6l6 zx-B|ag6IWYXNu48ZH$*v$#o+9y#;i4AuTV!*|xZ7#?rafH>WAJzU6^nF^Y@qS8~4j z8-rU`YYB;i9t|sTAlN=ZUA+!gV@+usas2&i&856s2bMEZT_Wxb!-{pT7C zhIOl$_fIFw=}Rw#63*4+m54ik3I>mq^>;?PoT~A-;<*zJ`S7*cc!m)kp*$#Z5v!9& z5l`C{(F2})o|WOKFIW#Ooua*0P0;TpPcq?(uf2JfhINAk1~}u%?Ou^>aj#!0Mh+0v zR4E+1(mS<@!g6>qg%xD5Cyz68@+Py z0H|f~;S^$Io5|20Kw1flOiq4i_5Z)h@`D%NL-*@otmz)sfb`_m3imiy*Yi`Yo0HbT+ ztH;aT&d*n3(e0vaylUHhYdy7%a(2Wq6;soSRMYj_p_$uipGpAVShRSP4;lkiB-gZ? zJjSXrI%2b}{52rrX^zqAYe;GOC8B=t260*ei#Lfb=0E86*~d;Qx+jQl&zZQwJu9UC z)6s2X`4nceW$|QKDP?X;{WzcoLE)?EPHyKczV&$cZ%U1n%*qsXtYp>o%|v+$rBBlo zt>N8D?5odmR1VYu(LK+HZDTO018+=K5BNy*n8*Swvh=F(_&x-D&nDn&S}hkruuam) zgV@jpb9j>Oa8}9<-Lq95-^4dD4HS;jK0etuM^J^Z`k{Q6sk7XpY}ntu5}odH$_-Ag++jq1t?l zvjVDrZ|RZ$0IC@S(tt3NNY(C+>7**Xg=pLOZ9xA3N_^&@H;CFn{)-Pvp(XaSaM)Pz zPf7sjBGYusBD@ULl3!_-nPNxbT-s?mw9+eHF~_xNuZEywzF7$R&;c)sA&Z+(e*skG z@h+h{?T#aZ?OhBux+R=`QvgV&wyC1PF@_IZKi-a8&3>r_Jq8IIQOgDbXznkcK#K{`C8rQ3`!~KRxSK1bur&G z=N-iWbQ1W3MYdc;^VW0tvv}KY4u1-o-@~>LH}4mB*0y4@vqA(&20f?)lb2G~?sRRWkZJQM_T0X7>l>}t+i6| zh`ajMMe?fL1Wty4E5=Hly+Nz7<|f>urAHFuj%fhv zUg_Z^KO^bdo!jN6jCbu$9et<2 z)q&2(xXP6xs$*aT4wXE_@7y|45ULcKWT19QpeZ8b72vw~-{NTF=%DdmK^WmMF;mVf z=lyXP{t}RLlD(^|1@WBtpMjpY3PhHX@z4r|-46g$pMQ3`Z1B14tQ8ML@=dpq|*|Q`tjf9ja7`HiBp+u~Te-2N*RQ zM#$eO$f*oGe7s_s-9-Z-Di1vkFBtiTaZPkOZ;-{Cb=YZ5Rp4OrS2gU%`v8DKCUeuN=kKf_X@0y21}J1R!l9M#F_ zCV1b9E}^*bBnuGxtf1Gq+QqusCIjWhE5UULmQNGHP;$%(ucEBgme~e7SIA@EzI&Ke z?v?(@8+BY$TT6|{9DOTrDBJUKReBsPaUG>7bi^uD3S|09vhZ<=)GX)$#zCfqRv8^= z1anVf(F}u=Uf1BuO`2yt>&q_FX!(wMSFdT#sFgCACY+;? zMS7ArU{0H3`B+nOT;VtsC}rqJG>V`%%f&)0a>93Vb5CYf8)_^tCA(5H2}jMwD!_5r z7b{U`JX5^0)E+5|*V7ad8%aENr+c*_I6l;%^~ZVx!k?TT1_dIotw)}4C<}_j zXNr7%aMX;ew~A_wydFgXVeT8K=}!)$8RDQDo8=uUe<{G-)`8eS$94yLl!2UjRB@1a zBc)6+j+6?-1e9-TRvB!l;+kB8ic=s1fk3nr1Cf!%A;U34_);M_#W168>&*e6qyRRK zXdrM0N>aNBW~3)1AJT#K8~`no+Kel(8KllS_ojv`$T-CT)RI8GI|@vx8&{<(Hb(^u#!bM`gh(N!0Ekd+sf!3xmqXW(Wri*mObIokb$eDS-;*cVa zYGV_B0L?vPL)7g)l}JTaBoTp(SDNavvGFWLhu*JFxlt00yw{uRC(iLDy8i&PSywfp zdQ4$LZ0ra0q%n6&wd5eT8+ziSL-K_Kn(O7!9OLrQs8#DwG>)e%DpMH?p7bep<%a^0 zT&}ITv9}c<42RmD;HNmEINkZ_M<`rJ2ze)^K&+tS996?=tTFsm0fIz32%^DpgCp+L zyaBm>Q&8dKJ8_zvMhU^bYJ4#0|& zARG=cNwpib77LJ>0Xf^vSlog?oK!BGNGLd@X5$aj+LeYQEN}j+sH9fsVW_t<@~e+Z zl{TpiMokt1KsKC;JhM&*c6(AY>>l)3Nr7b_D5sn(dFzURa(L@O$>~X;xhiHvBnpT| zKsnq^q(@kNG8A9Q~8Rxs>pVrlWARtKhN0tej-jCbat))+@)B&YkeZs|#s zW1tmBUjcOX-O!9wJ%)}Cz`&c?*zw-ICA`vifstN$;H6VF#AI?$A4>EUl%WU)cGOV# zS#`HVfm6edds4--q2ie%`Gjp4rbZ6@n%6=uERg)!Q^hwSzEC<;l4V8=dCqXP1waKkb+3yRfLg`-WaM;3zdwLbo8kcZZbt# z3ZcGJnrkR;ml&oYt$;yZl_aj1T#hO%0N&T5THx?NoG?L8rlAaWspx7` z^7N;=?@;U7tMcv_wNepFSa~C`a^H7taNY^tZe{YubDHhENXj&+yNp*S;6vnFNZ8yB zb5`9N)A&yIMsNT%Q*qt%RhIqg?#3y0qo7gNwlN{vs=L>kjyyL|3g*1I#!A zfHYN;X5|>-pkFi`uS!VO;`vWQS2$(Zycz(eIc!wDI28{oCMv?=nzR}`rf?$hejDWk zuk){AxI68dF~WgfN#d=sc!JtR`Acp7b?Vkc&8I0nSYo`~KgTGY6+RTtn{_yL>NDe@ zV@8<2>5%W^<`qAP9Imf%8xP_=DVk^|@*U$pFvWasHa4jweKsBb?H@zLp(BqRF40;D zW7)V0&RzaOae=f|%YB_|<*O}EQX2}Gkes(P<}yYBJt;Qxkw9Vw2*|9IMloHT_!!Mi zmuBgJD!4e5b`^gghG{efRhReJPrFW#I<|XI#6kwq%}B1T{uDTgF{v4Un>5m{Ic`Nt zjJ>$UM9q`1j8<(83V2bTaZh3$IPFY}uT8Y#199m{sg*8SBZ%%DxTqk6mE6M|aZ>6r z<|R?o)RAsfRXuTEp>USW`JCZwM=uHmavnGvv`#(0opw@;psqW{dH%+KY=1iX+W!Cx zJbGKA$ApjkN?{|Q71K`Jjz?9O~<5a>zwmPl*5MUOgot5 zaf+OlWf`pr(61WfDkxNK`B75jryjKTUnB-jb3lk0Mm}nYV13b26Ybv$Fsd9Vx+b zxg1a^BtJ_~Zh0IE+tqxuvXn$QD_E9N{hsJ<8O>~J7>>eeB<{Ql{L719ynU`m(DG|w z#h9O3(~X%%(^=Md0KdIzjjhk6erVUc&(LA;p|~TC)T|jX+NQ}X#|D&uSP3cwH4YbW zp;eiVDebjJ#Tlln6nq{iKuH4?a+Mc|14U}Sgo>UbrMRZ+nUd57?TW63XsKwCEs!hM z72Wti<_1Ar1%^J$gI(`~&?UTuYfLx9Wr_GpTDf5Er14%(%!_*adV^lIsEoS?Jq39j zV;YRz#%rRv&qHHzes$bwypBaUa=2O)1Q=?8iMwQJoQ9wfgOjwHU?oo8wBwUwIFS6q413kajZp(1yleG39|}GKr^L@n@GwbjXD|1&U4u6F3f%>9UIdjD zW{tX{OMPk-ea0Woy&4Gt zw@||wQBzOjH2WeFKZcMg-N>cJItrAP1DdIskT_w&9w`t3^D(D!oYOMLjB!z5754*? z$Td<=l>DoTx<(`7svdcMXs{OJ4p$NiWT-aOu{yf(#wmkpc)WHVcX#k;-xpB=zWBI;LMNJsulXx785Zfb6FUrFeENTM`Qv+w3aKRYwLPU+! zO8)?7%nzZjBlvJz?YGFk-XF@nV&Oruls{!PYMjQ21Hu&JN%f zm`Mx+cBz2F7N8-OiLTUhk4=rprVv-=6(~U(=9#z^CW6l;)x0OD-e1Xl$A13+dZ>IA zsgwm6eKTIXixF+!ovKn1zGcQM&UsBc^Bqvew5)k{nc;i8DTLEF$fDDH9w-afVv6pi z4AM6k1Nv7F3xnd8a5|{2O88X=p}a8{JxX!4Rz($1;0&Jic1FZMg=X$O`d6(Tk3H@m zGqwk6nMqE(Rek##BCVh@f2`nC%(xWq?vm2hTfx;9zF@ka?N{^M%5qC)y?@4<&w>50n(c=CAg(PO=@$FP)||CJuKjE3iD2lx!Y4jGID4%GVipQpA4e0&W?n1 zf#MHNbZI7BW(!S^TXwkQZAYwM65Di4r5OGyOK4(gzNaPEeu27a36=|1q@F@zM@jws- zVfTh=Hjg!Yrx_o5s`8D;C(?i%Fp(E;;jcA{<|+I_s+{J%9_N4AByGRKYsx%6jV8a! z=NX_6OqSctP!w@g{{XW#H_R|AQRMQ57p+Gm+mI91fHO^k$VeY8NBxq%S;@hx?93Ew z7^jwZ0Z&Q*=HARN%6P|dQHYmr)#@vG;pYkYQ$EF$yByYlb8l?n$33Z@Kp4obnCX%q zn{8B{!bsFM-jo53A}R@9^(=oPbJnkjiBXZjr@R=!UMn**pL=5~7dcv~CA$z8Zhs2v z*4d;RLe-e`c|ivos5Ct3toAn?3WCIN#%^oq*ty|8_K?_KmmbHPp6esTE z70-p>ZS7myyL^$M`=n;E&aRyH8P$2A(q&oyEC)SEKAQ~)X_Mif@OGBj(Ayn9w` z18jgbZ$)J#$KC1eK$+0!gUpl_IIh*~<0;6jT?0uGGQ5C_^eF6NXmM9#6M%RfK-f5{ z%osK+tkf+GezH(^>&MQ?vv!5rwSHUglfE zvPX=iEYrjxM8?r_!m+@dy=?4fg2{KiaHS2z}|qV0^g6WneU<)-RdFvPfCip(d{X0K#wLsL)3qr79rk z1CT49+x4cHQ2p%D$Oho?e~Fp7zLV>`*8Z2`{{R)7I%+dzKk1>aB_dPTqV%oZ5;Wf< z5_sq+y-8RLjum|0%$Jy6t0;Pm;$o**dgW1ITBTfCJynm+3 zlC{##qpGmT{#BpiKiW6Pn%1EO$eufBq36p$Ks`UtO7P4m^s3H)oYLlD?9ue~ukBCc z7@$}l7>QhSxBmdGTWR}Oc$gp$Yajjd{{Ysnkwr+~KMhLku0(x3seaUcExL?AEuz|g z*#7|QR{oLuRqB>D;t4d!-vhFr@UN0plq!vwBAFxXZM$+!BDrFHb94JwYi0c8u|-ka z2mC6d{?z*HpfhRkG9Te8f5N^`Viqz&;+q~>G1uOpIZ^h_zwKdlwiqMQV^DhFVz#CI zr|zWUJv~tN$ghZPAc(;xA8!z0IPn3bhd5=D*x*n3sDKve9ZTm=g zZ^=GxoXaP++U9kikNy|Fc;QYVOSFHY^s4) zv&xU5AK5gIw{;)dZ^CiH7fI6{XKv&!2kTp!Z|x`Gk*BZrmz>ua`=LfF^Z3H-xESZH zQJ&Mvk2{73rE46{PoTb`1+n@UAMHut_*_ISWx(&ZHAdt1fcR^w-zDy)6v^fN-`&^e zoEw;x18DEXD|u`3fzQ^ojx0_*MONu7+P!N9go_9DETa+R33ondCn)^1|1v+Wb-Q4a5=u0BFj5 z;yDF6SLPRm73RDf0K(Uz-$`|9o1-CzwRpJBB6QuXdU$-EGe_T3{6zR+jo)op@yFe+ zBIm{b01hwjNL^st#6I(d#e6yTwzz$_UHVd+H*dJ$r@u<#{{UGZV}JF3%>5xx7kn+a zvyU3clterAYR|jzKf`@x1%#K1$p9Te;=b8W0=@yTS&$f$Zb!9P@+F0f?)kquKh}5H zKh^&LGw$iUVetO|!J;TM=TDdpBEdDi5088!G(zp~Ht+r%{MGs88nmtE%-A3gTCgr= z18i-#+ZC$fk0QUY{Lj#)@i&9@3rQpUbZk2-W36*O9Msg`%W*ugBoXktO7yRXM7L}? zlmY3A)U|7fm&_9|&rmv6{{ZV`dlCJKF6ZADdj9}|$Io!+cYP~AR?|EU;w?Yy#o|?N z`9Me0n)qqtx_+`2^r-FTzKU(_Dfw!D)~I$g{>GC>+c(;G!#y8Oi%-rbl-@^V5fPbJhv~l+c$^JE%+CGDOdG=d~?Pj+fH*7WeEf

MkGIHy^$0B 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%0D+@R2%EfEY_BMQPcz?B4|) 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�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%0DUt*)F#WWHJ%TzzL^m4phEj;UbG;#db3;EC% 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

pOk#mi}H=efCf1`X$CR0Q(3av#}wbC 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%0DlqK_|xDI0jJz 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%0DGx$x&##Me*z1lO zF**+tc)wrqjq_?c{oI#RzjkA^eHWmth@cUU7w=GG01S1h)s6r)%k2A`N_~ecVGeOq zhXp`h)ea9Hl^{*4m94E}1<$QDvPs8kdX9Oi*eG16p%7GD3<4^2asdETEtA@iISK%z zwgLOd>p&#(Y7hyhWPwxyjN>MzRsd96yHkcSKoW^R3W?u5Q*)7lQIJPU0G$EjwK$9# zd|Mqr?kN~BJoFR+6PElbm>3?k{QFZu1aa1Y1q876r?DoY2k@l+Q~@^!nvOzvQN>Fk z1EnJrEAK!EG6pI~d`GlY139T5+ob>^4Es{5jOD65--SrKoiRWTWl{zPXk6nBQKJ#^ z)Py%tNdV<;%~Alk;;Zi&=A6FN^#WbMb4@&qijiaA$3Q4p`PzQ%09PEa^rzu-g*c|R z1AMf?a83mPJ#ijJX#pJwr2HyPtBjfe2^jfmXrF3qHCN{QwIKO;GyyJE8!A4Ok^zn0 zwGZ;9o_Xvj0DJ+S)YT^#Q-M)#-N5Nm6#!5IqXesQw((R4Tw<;$DxeOu0Xm>9^A0Mj z;2dV9F2n_<9k`$g3Hg1hEDkY9240st{l++k(bf65Am6!(SHL3F8WB6*5CfVxRtpz=aBLt9fz^fnw&#!8M z9h6{Fg3dC%MFfgMV-*PQDZzH+nrD2}^#JL>qy(_XN_HusMsY__95(muQejBliiviN z=bCvSbm(e;OwogmC{@YkrCv@KwE#!Gh`~Hli+r0!F_`BBVv?s&6+kDYNOpATP+;}x zNHElD1eonf)7qW1cBsiGfm8rJsmjKiid6?4C<01Mj8YaOnuyQ@x$TNlKqHEccN_|P z00#z;4Cget?La@JAm)HS|I++)P+0p^$cJ`G;8bz-#V7?y&r15k!yforh#VZR6uXr0 zdsDx6jEVr1&cDPe29a1|n%K@d3U1N5fE$ssQhw*@gg623Q6| zlhTx@7y_)w5l_oPfH}r-RnSO?+bYMoy3+>92mo*@ck>^BIHdB7WNpnmXegDM5MLvT zpKNEXOdy%~3rE=G3-eGH8Req^j@1y2l=D)pwEY093vE6zieYlU-RCsSM&Ek1VzqV~ zSahbFFi%R%qdYQ&+M^Y3PrQmbb~wdbjyrhI%(w4j zq&o&N*A>NGsGG%IAB}U}qjc;myYN(g9@OR#YBj+U%}rF1>GhI_Qia$qvB45> zzO~v~{AIe0l*^R~TPZ}v)0y<7e+K+75e^|6jci5m&%#iy*R~t0!R^0jMF=C2H+IMs zem{MIuIlFg+Ah%=R0^mhmWGU@O2s;c#h8zdD3kYW!Q$-G;^i z2fb*fgX;4>f-hiKD4;jep=-N6zFCD%J*&my_@$)haB+iDABmbe{Kixn_p4PRXY6Eq z3XMMN?^^+nVNV)nl;D#Jf8Qd!rY{}o6Q`Oklz+ggX#8hlK?!iDKkZeiz&(`DK$F9M z9B@g3J?FO3ST~*m@bt^NTV=`q=*43H0K!phiM<_5`!!h}G_s8Wxs?$8YA*-Se6vS8 zfAEt^Y|m%}N40Vn-wE%UGGmi>rYqMV@y?FiO>}@%gT}rcMkHLX=ThmwrBZ15uJgd2 zAkv%Vg`9mWpOrPcHpI5XW4QWO|WVcN*7&?vL+ei2fq5cvalpR(+3{ zm&Et>k@D<>dJ24h5p_7YTb2NOSJ1aspAWASYnXC<#d1^lJHXOsWRc_9g-5ZsQq^VH z;2`+7sYI%d?ZWCo$$Ei*-xW5Oaq_^s zr+ibE-I7r==g^*&>sl|z+Zc*Na56_)@MGbR3r4w1)nI?xtjpUU3~B4T&R0ExoSHqf zhNz!v>N9v-;x>ZYf;n~kMSKP0&w_W>`lJ5% z{hcFC*x=+=Mx_Ao#nRhL2l_W+2N6;XX_MOg>4f6_d=Tlh&c z>94BzX5dYr`d)753+k(!I-C_-}D&8f#ehsING@(|*nJ%9vr>6ami0 z&#);xR8lNld1nT-+7(Wq4l5Kp2uk z2?xzkPtv*j&kE`Hk(X%34{G!;vck$GIK@=EhTj0IV2;#W51O^lh7Mijvfy?YuPM~D zEmqB03`a5d#eJ&M+x^z&@1apALU&-+uZTZmO&49W`$vav%uGLpn&lc zIGRYYyRB*@rI!TKE1cE}Vs9}I6)L+0-W!^u9OVA%6=iexK%fm9eMV@x-O{%0d_%P1 z$4cc!;BkscBP4vhR#qA5wmu+6Y=eR6R&H+Mx|B1f<^3zk?c7>?`N^(|+r$a-s}3kp z>{W}}&xG`SWj}ukk?bqTb)SNXIeD~p^1Y3FhxVnch&;C0Rw26ien-x0Xvv}+5%aHv z{3WkwTA7CSCMu+S-LNavA(Tfp))=oxid%pAYM|!29|wFmw)l(UTWtp3QDknIAd|4q z9Mg47Tn{&b;xbedj8@8B9k@fbzNzuI><{r@!i%6UJ9e1CTi zsiI%YqU(0@T3_3oNffA5sUFluqI(kH*67z+7`G;r$Yc45{3|vyDFN4$S{_t|0V5{5 zp)j#JHu1mGlgyERVNZ)C2m_@?o?{Y#R-EQ`CG!aw{U{SUFU?ILuK;o=Q6sP2;BUzl_zEc*WI{bCG_hc)s%Hl#uPT?0s5E3``cZHZS3DDn z^Zx)GLg!7DA|#S4yHzZ}9xE5b5v*3P+~Ts7fcSd(&Ajgo)>P)A)2MDU#8)W`fr)LNQ_oFp=tV4~_jMm0yHd~yP z;+nDqJCs)U*;M?cdQzJd+mN`$W(Pkd)QoU4Dm~1@?&7*gY*3z+ay>Q{KQPSzals#e zS2U6%U<_AhHk^^J;4mr}?4e=OfH>0;Twqe{c0YEz2eODT8+ub@vO$~-PzNRuk_IX^ zjzY%+rF9EpfQq!XXcUk$KpaxXCNYdus~e6nU2@o?4C56dX~EAyL0qRMme14-RI6t$ zde=-X8V1HVr~Q~I-Hgy2r#6=IvutXY`#NM9Q(YI5I3Nyc#Av^8fJG~ka$>^ZfOEj5 z7L${LrnM;Dq#vIG+YioI~f&-ka0k?E06~j*!f`cMN?>4^jc%F&aJ)^Y2uoe zl1M<#E2m3b{{XBQ6!Qcr!q65lX0>#O%U(@agTdO4q@H!S!&go6?ZU4$=$;R}j^CM3 z5WckKD+eKg;9rM&m8Iah)P^Ho#=Y!X?T`0-C><*@=frjpL>S0{o3&*h8R;t-N00;U zT+*G*p-k#xiz|%O{#a3j>s*{3Fwv9;5(>V)HqjTW0a^2-PF8fWMC>z~v(7e}<_C@R zD0wb9s85cxRej39iaC(1&cZd69CWP&ZHQ zbabmJBE~$jE6c~kyF3laike@D+G_w+d7uwVV#fh`3Up!Ao#TUEOy3hNVr&TbpnOrZ z>LVmpoX8JggvOn!ZTaXiUNFBCZJ!}xITYvkuM((=D{@+nWCyh*L#J9-i4f#*UL>Cs z$>C$5{7$$BK1ShIW_w!2yyZ<Gn3;j^dzrWQ{&-SBQVY)76UQV8vB`i29_T zy(!0~M>ySA&e#h=0P=)Rn?{Km$_A@gq=T3P+mD+M4p7+P1k~F`BB; zGJ>FjMR?nMNxwmWoYg6QDPG2L zY5Z5Jh5rCqRS%9eYknDyDf0!7ZIU1k(l`|9EX0Zmo-4&a;WO3cPm!q?#TxT`s^n43 z7Co75Ong%ftFO#)it*<0PPm{D`2wlW;@w~!-eIGdEPI;4Z;nMs-cTPX99Pe4<1Jy> zp>iod;Um`{q=yu91&@6}4)eHG;SIUL3>Ln6ZxCyETsg%j_U63GM)uqFqTyrcy|$=6 zS-|?z2e$|PVw(BVJwsb=OOie6X1&y$W6WS`gnb|-v^*?}O-qYJlMf>Pb@N%d)yFF{ zRcC!!;jy;hdi@@5%!$NSZ%IC39R zE~BLb^Ia#?H8X1(Kp69viusV*&OTNLKaEwFPrDyCnArSi<_<&Y#_<-ForZMB)|xe~ zA;#~uCm!|l3|e)>hdCy#u9EoL#E-^~VB|iNe-h~EIGqJDKND#r^Ew~KzHR=-n>><# z8khSXMI0Pa&miPJj(-(skUr+PMXJr?T@2(4g|C?|t!48zXQf@T(s!=*Y|`do$bAfa zYoWq-$vTlz4;|=7=Za--VT$?x0Q)d*`Iqn&ANFWR$Qx=DnE4LB;zx??wLh~%YAF6%28H2kd2Wsu0={b2wD6Nc#q*LsO7;&B!YA-Ow0-u9`AqZp(UI@v9|VrJPly^# z&99Xk^4RHFS93GH_( z=$#t+X-_=X%vU5wgVL~Up(1uG$f+-9@{h~F^sgOLJzir$rQMPaDd{j~PWY^7-*WwG z#4WZ!qM^W1k?dBkl3FL1z`&%DvT$jZn?AsSI`LB~DXv$!-2%S{f+}DGE=u4ES>Y-- ztwAJ>Shr3Yi=L0<|7?1BjUMoiBNDNn{VWtFuw_w-KME0b5Hi-*hNPE|n z{8>1T74(1UUaz8;Yj2>hANZ)*x`HFz{{V$lek4S`6Rgl*XNO=?dDtqEC7S^8T3SR1 zx;#hykyr(aJ9`?6zZgOLrQPwb%luU6UwaVa09QMx>M?2Y8<~4onqGL{QM#3uz* z=wKYsol73##X#K|;8KZH<0NLhCdbAaoxJM}*F)=Giw>aEM2-mOo+(ty+)UOe?W2`c z;~i^G-av;q;<>9**ARJwKP@qJbp%Aj4ZK$cY!td35yYdtj##skg{yJwcG`oA;zpxw zw*pQ@Sc}9qcH`%eE-RDj6FOEVCurD+Wrq~imj!kj=Jfvn6lwaPFvTEZD_lB`oMN~t zP?TlL(bEa1vos{j)nmhAo|7IaBqw)DjzZAuXw=BObUCjv_`d7?p8!$7V_v6Y8+n-` zyno{RksMK|`FSU}kCg2GxAGO7 zY9ZJi)kig3?Gdk2fnMF=Z`nikg7L$~x^IPUqlNlOG;Iox`{)Y#8^fRQOs|dlt45l& z#kGPzUD9N)-cl~DEvY3(#LzQ1EA>{1>SYTmG(pFU!ea04n7wA6Zk*nN#Xk#^$kuX$J=N9 zkK~v{2b07Qr~?U9HWh+KZYx>(tZ{EInhuJKg0HDSD|Q;kLE>kR?R$( zmJy$nnvae=X{$_Z{57WB-Z0>KD$GaaUTLd*2mPvkAY7NU@b%=}L_=#d^9f6#QS*?uV4CPljc z07{?jDxHe@v`?6U75xk|({09cNEWcpS*~d#8)5D_v;XY(* zqVr&{qOl|NuVKIVzLx8|%TgZ4~Mn3SY(u`kwWsR-oJ8fykb1LKG3RN zzVXd*+M@Vw{odfm6I@6+VTEtN*F$i9XUI(QN8{~ZDENcm z8S$m;x~{u_EW7wrJmc7U3U}xDjhnIa4x#bO#M+JfU7N;5Cxy;2Ri*gh;>g#F`5AIJ z&3dN0`!PYM#kvX0&Wt3ZyWgb`C2<0siiIb-u34? z)`R0cO6jhyEGChTo(uLPUIQRsI*MA0mG^yyo}GPyFtG=5xL{3ZB>a5EO4AkVKAy=(9j;&sps z_9h?jAS?9lJ6i-$5d~R65CuR3@}>3g_DuZHi}q^xnK$~-kuSL)(APy{`zrX-Z=T}v zG+%1{7Y!09`E&VHo^o~-FC4?!GvFIP*&6l6>&-|Z_E2k~wEdEF#s2`0i}!z`;=b57 z2oGHT6&ZO)%%h6W>yNm57JQ|pe#+h$Ny1!QJb-o_3ifXf{15Oqh9ncmr$-|%@i#T- zsdnp@L4)+B&381XmLHX4EJ>n)q}TTL5iAz!Frx|wVO-Rgb58r1;8NT?Y?zVu*4BaH z7uD14)7&f;odMlgwJ8^|%3a<^6if^9J*%G5ZLcryiM55CpYDqKlEc702epM-Rsrp4v#)up+8W;9YXs<0jmd z$i_u|(Wm?{_=|e@)B;+kz6L6eyWt-Wcs4IT#rm>s!Q*vyEHX0ohsDj{e-qsuiE0&F zfZmmQ-{1zTc$@C8%v-$$dnU2*@8JH5i*02jlQIwC0E+VMTlTi_O_G5Gdx$(P1$9P* zQ8gxZ{vG|C{68rI>h0!n*F7uJt-oil0og8QwT;5{Cl&I3z58i>n@nqO4r%fE({*Aw z72uk`?KANgRQVE93}?ENTYD2fXnvlb4tz7vSICVbLY;C2aoVqqz8vXHQaNH$zuf}A zG9vLG#Qy*kNMwx8$o>9m>-2wyJ~`IpSGe34zVd1o3U8sK#lk1qTDQjU0$8ps-DEz4 ziu2u1_KUF!$)(xuJ+e)58b|E;s7bZ82|^EJUYVx+572D3ncK|U)DvB_vZl^yW=o;v z*B=|aYkmxRe1CtYE1a79;(v$_?v-jK(SygypD*d(3Oo&_5$8enlkO|H)AT1;m3rbLcE*{^y30EAD& z7N9iu3x(Lczj43|)D%%;1`GN7(Ix?di2eS})>jme`TH4{j^6 zZyNYQ$@ayJk3|)ad+~EfwLiOM^2e?!txa?%-!a?6{w=uRw4YLG4}p9`ax*meA6n16 z`0=L1td`6P{{VKm3%`!?v}{!1A4UHF>r(cyTL-g|=;Psq!{E(w0mVw63~W>WK4;yx z(D7asFUDKvLz3q`F`DOx#Ge!DQW&)O<&^eNtZE)0YKim}?}a=ury<=gT=9(NxcmJw z$`9V#Fe*9^O3(23!_SQ#Gub`1knq6&0P@md<$?bIePX?i!TqG;=O5X!2SqZ zasL1c>hE`2s8Yv?+*_C&;A3@fHH^F zi1S1nAzbT)2Db;igB9G_ z{>&FQDy^+*D<871YwSy{TGkcYynY6`i|-X%!rokBxW2a|tLl;aN0VsZvp>UKG>5#7 zTldEyiBb9t>}xja zGgS(4*&fR_uVre2DBK`k08TMn#qW!4E%Uw0dv31=)I4jDWQ^?|mBiloxUuskYzoy9 zd)@DkRTZL+Om6qC6IJn~#c}qIovXvO9~rSYjZO!pa#HKJGP^WL>`%3Hdm|2W*e`rs zz?L(970BKAl_Ug!Yl-_lt9g$u)<*m)!uWH<^AM?E`1)3=k|oqMTUlaBN7{b1RA0w# zuRYUlC)TYm!`~H1c((`$&2##>n2@Z(6pSqd2OGtuS0iZpR*iy*cziBC#=n&ugFLPE-AdUF#1;=T zuSDsZ`7g&G4}L#-*X%lYe~}%4j4A1n#%uH^eUp6r23n8p5XOx&Qj`r;tbS8J z?1|!Nby&3RO5`weg2*=jE7)v5Vvh|dQF(teIqSyNud8%>)z>^jaj09d5LQGy`w%vv;B|0A6N~}Uf}V=8oMX#>+tTyb{#44-LX32RW^;>??RkU^u1h!<_TW9TUp` z09G;ubau820_SHYx@5FeBOMQ=TQDMy6Qxp!%v%^3NPb=`VPa%((Tr5Fs>Pl$R}lyS z$2FzVnH+n|e8Ux~X|Oj9REZ>YsL<^>2CgheLS)!^ZYjw!V}n>tF<=srSgsUR^M@h2 zFMv4PPy29F!qyWp4c4E#cNwFc&yd+`&iyJQbi`!Vacqsbrk%lXc&$0Zkkwny;mtX& zW$B(P5mexu)7D9PdRBhW*V&^`+|9SHDx*&@=z3Ea$aapDtrXeCFK#bphJC(6^5bTkY_s;M2ml_GjdLJx-Wtb!Lr#V^l1sRhCtsLX zFR1)M@U@8j^~jUhR8J6GX*0gLyMtgV*{aC$&%^vHDlaaU5$VNzEq(FF#qtJEwlaMI6~gL2 z5hTv|+0A9%d|3E7qAL}-Nl5IgUzyTtI)%w5 zNeef*thp~3xJHb%XUi_;mx=lzb^B0wCed-H*yIkC$7-Lowd+RFXx33j?rY*{Jof-c zZch~oTWVyGut+|Fmn$9OeLJZB)c!xZUm`n$9y$3quQ1iVH2CXNXO81gowxr0x5as~ z_8p$ai!;S*6IjkDYWvT=?U}lQ>qnkgvODu&y=DR(JjU z#*!DNgtB`0ByF9qYAG!u45nQ zCdTLMmTw-&OZWcKdr=m&7aTm z&!|Zs8vT@hC;VHuTif^_M$#~?=1RC`Q{6$Y)13$QX82X$-DvB# zmJv);A1x#RgvX$*4;p-R(7ZEZbnO(YydS$zssb+F!xfydU4xU9cf%ime+YgB+kL9u zD6X|A(+_cU104FO?Noeo`#@=0L{nSn@_fKxGLy7^74s|jgW_Ms?POT^Qqp_LCi!rn z>|d!JE9l<`{=i!PzZ%_qMe!H*drULrTQ=tU6Ifj@h*!9fV2k-<}rRkrrC+xeYx-`BF zg6WWTn3vDjCa2odG*p}1{#o_!6zW>D8Lp)`Zb!|)u1bAXA&=#CZQk|$b6ozz-?H7@ zUQFHr)AsvEkL6xhs{a7NGQVXlN(-2w@a&dtG0L=4$fiH{er#3}oKCpXKbB-xx=ilt zP?Z68`d95Q$B+0V#=oK1zO(R8RBc_5u{IY6Y^8f_euVp1frVv>MRlqC9dbtfM?uglMWT*r=Tp9xJruBZ?4LnsUXk z(|{tLIHm%IJ?VE~QI%1S^;EViM2WdN$%C9zWsor9tNFWl6oOH-oO4fNMFXB`H-p7O z7_j1<8WuHROdXTyO>@7T(#X3;+KE6>KoSCRg*_=Y6V{+>go}!<_o06pi2DjyH0ihKAaj(b{dQ9c@y5l z7}`LrsWmuR6M_9D$DQ;P~Q4*HV>0X_pdD<7HNY*;l3r289@f*?n~n8$7?b)0nCCCbXf_ymxpAeU_m1HRrdV z7_{gV`MQ`Nm2kSB$GsZd?MvpJy$2Ouh+NF~IlLdOI3o94SjT;!Q>}b6;mG47Q`H*h zXZu*Ml(iq)BT7S*g`AIE{{TwiFMnvOlFZtDup7Ooyu^Lo9+B|&5xm;GzUP{~Z>)Gq z!15=~csD&Z- zI2D~Y#O*p1;_@g@*1soj{vi0yO za2GaA{{ZkDQOGZ7XWsmH@!i8PO+mi~u0rqPzm6{nL#RwM-*B&7w*8zuLdXo3dr9qD z%lkKKh=7Q2edx4G=V#6rek}1_*x4qdDIf0&!Ix0g=Hgjhhpl~o5A55jNWZ;QTvo(i zv#ChcWY`a-9?c5u_;|&4#HEity3~zrbi*tE0HD|1_WuC0#2c|WL;|Lh;AWQr^3{Zf ztCa_|J_7#6y_99t75Y;@v2GWJg9F!Xeu4i0!ky6J0Z$}$6!Y-2NQ`{F2V+k`bDy98 z0Pv4Fk9x+W{S6WLeq0n{nYS zR@|{vE!zNB+?xKQrdr5sG@Eo{+-?h8ji!$q$kWVpD=&Isni%}ck-ow zh5DRn@;~ygrM}q$4Ue>bRTJG>?clHJN3{+{eA2%Qb(iE3`c%vCyH+20zmh>%5*?&qssh=Z0c|QwvM*EokDZlWnbvXL}08080>w0o?<}N=9p*Ma=oxV0+IDrHp{2s6zuv{-L7Xf&u(l0kn! z1$vAY7Pc|PZ*GA?E)E9u3HU;SH^n^icN0OBm3Kd=qt~Su`D^s6#oFTa46?v(DvVlnzVPf zS22_G73ouJP5zqTuO79@d@e?h#B;<)1uL`GVwcO;%2vRPh{VbpTjX9&oi<^r(oS>xzCz zeg_o!p%O>$S)e&s_Q%$?t)_1;2aig}lzDBlxHY2!1_KAB2bGL3#*HcD)OQF%?L3NP zWQ>q%JBP~QPf8CV$SsHx`U;xoYn`FC;2N)Ler#id=~iw+B9aG1HJps#{p5b8{67Bx zNceZ4GY*!Kf9N8%opZ-eO2GJUaU7ox^cDvIT1AihJMNFGhU?2J`>fca10zxJ<({{UzPvils6u$n}E z3hW-W^_T5`YLfguw{4r!Ib*JEziK~)Hus;~4X3i+Ny9ouH(+$<8LaOTe%XEk)?gMF z9v^GlbO3FY0aK4+D>?25Yx^PGte*@oAWUsrgN%FTzLbc(WkBs-Ir~0%^TU2U&@YFE zG^NtxicFZ1La5J91$!&o%jT5ninPGz{xWFa+kXfAMHX-p4>zaxO?+GX7}{L_0K#Rc zq(GRO1H64PU!Z<3v|Epcn)S0OIkA_3I^b937s79f_rD1>yNmls3$X=cQoXa%m>;bs zJD)QSH&^73#W?2EemGu8{5RVpb^LK(L*0JccNa5n{>4~-;5G5zjXY^}d{g3o?B5K|*7pPNx}0EF z>uO#90Big@MkDW7Y(G_u17Dm!vh~Ng zFz)e1GNg}6b>RO1L_2w_-dg!!HBz}ID`(s3RJS?~3T7)V?lDrCfxs16^4a#L46j=2 zNQPTuifcAh1*(OgIi%df2B@x5*f{G)oS{RJY%L8ojv;(!%qa4>11kI>TX7b4j-+IG_e+xaul(C5O${nSeRQDROZ@4g0-mhiN!k zQrV^tm4z1p>~hswlV!k>PM^2Dc-X6*SVv3*er$YBxz2 zXG&KCF>PBJH1>opJJy=*UzGDv0HwC}sslYE9S2H~Mb0}`gDglkj@X|Xybt>|d{6j{*4l=uf3h^$NG#2fCd23}@BaXX-?OiP zejVG!_V%lDdOFW2+}ZZeO6aGBoVG_jOiUtt74Y-+WcZ8m21L8p!)SVY;Em(wBk9_{ z{P=PEKX?z}v~m5O$!5L-n}<-$e;(EB;#9U>kpY3lQJYXJ@{AMh(!Giqa$2*?t&ML; znk#W@Y6?Js4spd-YsFFh?VF}SEm@IvBc)tt#L7z<;E(DKqDaM z8S7Y@r--4`px!wmylYwbkvWc3wrsy@<*$h4Iw;XSzUNxf^x$6NWgC4+uQAvDC^Ly5 z&?5QQ{#qZqUq9+vgUA~5RlPf(kh$aXt^-y0ool08y|fCa{i9xOOmlw;*-HwJ>ss+O z!v?z5?hKN86UBJ{0Ej*+EEdlVrUH)jbYsqzOd9F?){Og~Z?A$SDIjq^_+5uWzgcHj)erXM7O?83oS=Sey zURjN1Sz2p8CDc<)(QRbAxPQ8lg2(i&V5|k3olrtDrx@V+S54r*hQ2uXoqU%58PnyO zCty7CF%teJzO(p8`x;$dc|IWcn<0e(S4$*4asB@Q@UPHqCri-$Gp44KpjxH1ydw&c zC{g-XT`V-F6R8-VI(#4fm3$%a{wTG75=OeluYg&cW;oBHEqyNcHrC-_w1^_F$^hU1 zDzuVZFx=cP@~#KQzY%;P;Eg@+b<5<7%Ng5|xc(LE(xD1#-Z-aHQ}|BtT5=1&%nxH; zDe)uYmx2BsTf8@yi$0*eEu%SLe-4%LXT=ZNzr_9}GUzsS~SIT!Y zOQ>8m<=n44(j2on$v=s%YWV(-1cvY{{XZHjD8_pOJ@Y{r|FU(^${^#ulrc9 z4oFDlxixMmRJMI6BL@}dG~TS;%G(GdP`@zdoB+oZ?oBw1bgD>;j8I9bHj&z#qXbo= z=mlybuo&x7k7{B0x>5IN0(D+GQ+Ji%(;7^!1vi>V30c=2D!A+EOYKciSFI(m4*RFt zj8Hn~6ch7R02Ks#ieilXqL;57Dp-^$=71T~gF$RniDE1PUX=^3-;mG)W8BA%1xOh3 zrkJeD$4Xq2%>Xdxy&=y|l=cRs#AbjZ0Cc7tW~3{%xTpNR2%rY}L=5$*V~i2=if+;u zo&`6|<7uDvS<%}`stpFsglbVUx?c%1I zEuA`5a6WHp02ihWJq|dgj=1eo`3<`(_eB6JD)p#|IO)YXvCve>8nWsG&i~rBb4d;ODhZP#DF7e7z~*v%seA!)F{)Hr#@}DCz{9AG^jW2P2w5J$R*c z!huu-v93O9h!PtsPl>qO+LBBIiU460fFAv+xy4SHYMnq;J64(k(~Byc0h+TIg~r~L zY6W#*J5(xuZ%TU&tXI;a$7-M~Jc__!d8kJMoH*i|LmmYHH~>erFmuGaof_IrXY7G zH9jGJPZjnDhE?*xBONMPApip%HJ?03QSOj^D=-`7oaY?V))piycc~1=ZU~|_{OAGx zLaS~E@TruZJt?xX;1A-cHyj>%R)A`GP`(2Z#aU0XL~wCj_n7CuN{q_Efa^dV5uVvI zv<%cn?iBg3D>wN*?QZ;{aA*gl)+n3TeRMd92LMLwDuKsT;2qR5@4a#Ywm~MW)RKc4D~(k~@h>3daJN(K9I^ z;-NdR1w#Wv?H35(Lgj0y)0W|#UgmwmxTw*X_32x-lkEaF9V-b!=CEh9={IW@(7Q^H zO6cxZ+flYCGt_SobLQuSm7{rq|OA$>se8Y078qPaGc( zJXIJfz^e+lpAYr)KqY@D*SE>zJBa}z9n09_s=loHf|BD6*kX=Q_NSAt!`)_BgiUkv zeQSSD_&cxNpO)|<{cEI_9YtMag|O9|d*Uw==>GsTZM=I_@-shZXi4x_QL?oAOJA-O zbIo&ccxLq*$@@uo)Ymnrc>e&!1sKZBu%4Bf2aI)8Kf2>IaxnIXszc$M*nVWZ$F)iS z00_&iu9+lGQmse6qCTYltc_7tn7d0-tKQ*#^@?;*Bh%EqC z4&`&l%U;W4;(rLd0dJ&IP-2}Xt?>Rx&chxl`%4EQ;{O2Hw=<{iCFZ)FC*f|VsX^vT zbLE5UR{TTaZw*=}{7Sa7`mbu?6XK4kWtby<>)3i#DX}=6J>SAzdI|PJdKm{wf`5h{ zEJ*jqai67PLGeddclpoDTJZc&)Q8O!+z!T-*jX6!_z%U={^{g)HCO%>r;I24+BO@6}I>(;+a=$^7&`$RxQ2`-$g##%brDj z9^N3iBWn&vddX?zxRcD>b5Gc!ez5xuExYwU064Q=XHX=Dw=OOaWlYnl-Fl1D)ttiV--O)~A-rCr;-MR9QI)~t3(9tf?N zu433sTxOVzJzwG0g{ovp5)J-<3i17G;9COErB94>2dC>_KrPe8p^5rc)Vqvfn+G+t zYe>dakA?Mr2KbLekcPKyqqrPa0$p5NKG#fQzd|OrvA>L@=(|s-uRqs*8u)iqLcUOn zL(!J2oJux6Ua{AvL;@DukHWoc!+#LPU`+1bz8|9qfB%oAC-Qad@lX0d^4=s#~!U9i#QvzU(ff4ygjMi zZHfeCbLuPTuLJ15Be$M4JCR}Q=~>Q-D(CbN`mcgMBv>|`1d(bX*QfC>(ASUnllFav z+xyGjs?~v~;MX@S5lMmjshu9{&Ivp>e&A zD=q#v!dpIQZ*0-asoU85Pdlpg}%*)igT3ouU+s@jAhaoMLoj}oM7~?&zZhHHM$QjT!ZgeSDziOWE-J# z`P1ZKbN2Sb#hw%KC7Q!@iIK<5ax2a}VenJoe~iv9t?k4A0C_N^*W-$Q(mo`zJ1nPV zBhc2c{j5A>tMf>B9YN_wDW@^@m&8xl`%banb>R!tC`Np@;=VKSH^a?;!n4T+p$Qv5 ziytmO3huPe+PB0SfJmpfEElNjUtWA8wbQ;fS+Uep%kw^8x+_#c`KXx>h3!_vj=e>F z$?;eAQ*Q_Tr&EGuYhpK|mH^}FUnAdW=^U>JBjp(D=|Yek{^X1go2?)lmv(roO{WvJ zMldPTS}LfGPc>js@|D!_RNZzBv5sqPf%$0+-JEgJeT#d}YHJ|O9SAG}-W zj@yW^QwIbQT!)L;Yi+qASpJ+>5gv-DR0TVSrDi*ywI2(AY+V;$j^9kbfcg9)_A%v1INU4K!mCG9o_6S4kH%V4a2;_| z$Ku@(AC*pfNCq+WB@y8Smyife7s9zdg*G&=A2T9@i`3>;KV z@jB^G%@5wJ1k-L^u2Sk|UCi9)wP=WDJaH&Y z9t~NyERBqDP=^k4gT*`T3m7%8DFu=gWQtGS?ZK>xZ$4ZODnGVk8Kaa9pD4Ejfm1YQ zH5)ms=&zv*ma7SP2z+_+w0JLCUwK%tn zXvwU#c#GpN33yG%rf_{|*w-+0B5llIaiEa^&!P2X$hC4y5Cwa5L>Fq=}E+6F_ z&>Y7=kpyG7@mn@GaF3A%a*?#>?;Z_n*?#Sol!}SG_G0AkHB{+{ue5iq=p}*B1w4w5 zP)m}$Rt*|l&RrZF5Gp&3AR>lgn%atId?!p*vl+)HH3b}#X~I>(=qd4O=%_&*E2h|i zNCK)(aS`Jb0nXd$=+_}L!LEsPbR*Lhg{Oko{G0*MS8%Q7t_K*V*cq#%T6t$^#zeY&3qI8QrnRl~%Wsz);;3A^CnWRI9X%*g2N7q|;SHYE2-2X+uWw4xRd@F_C(R6jpQRk)P%-s8HHOf#3;-*i(5-~h zH=WYDPY_JaYq5CEWoWRfmFJpwE0o-OD6^FvDmg6?M(Viv-N5Nczcb@+YC>qqi%Yhd zw;X1#$7O4{qYPkFCwy}p3{gy(!qUMkt{OgB3eR5gT^# zQO1C{OxB0liYL~K0a)6=(cya6Kd5sPePF+tvtA(-gKtW<6}aa#TnmxG#^%K@-UV@iRm(}`;2H#s%d<3q!jd#wkKR_@ zq>KFkmH{g= z&nJP>wPXQ#9cTi-nJ-G5%O?SaBEG@7fTd~DOki}N3~faSKOn0bQSE@7jY*FiGcs(tMA{A<}fK?jxL zTNNX27m@f^ir-#|H7k4$j5)7t@lDn=SS=6C&5V9k^11y_ekal7^!?c$ZE0}80UsEr zUNo~t%uPcAYy`gss@_a|qEzu%P2MQ3OEWV~app)A^r{-;V_^pdiw0jc$T+In?1(}E z+NH#I(2~|;wRp{4iT?o7(R&)ix40<|7n-$V-fi?*J?f_o4B;c)wDwa1?%)AaI}bMr z_iHlUh=noIt`=44UR>6vtp}lE;%Nv2KQ1b_-9fZ*Qnn?F9+ebLu}ZZo515WTGi32k zloG@zN{v;CKi#A+)l|{S9K`nJkdcb<--~xe?BjvEwnckIyDrQTUIp<$ zbnj6kEJVL{&nd9drjiDnt`t|P{4gs&o`;R66-xNQVd4Foah0tfhF0wrth4l1BEF{) zKiydQ+A;Uh>6(KWV`N`S=CTRHcCFn;LP5_J%{;&#mcDwDJ*t}?qv32DR>|#NNAWWa zs#~b*kUv`WUkj$o29-~0@*jx=oo3m(WRK@sQeN?l{u8`~UJV*0PRJ{kc}o&c71-m+ z(PRGra<~@U?}Nr_AI2zrCj;YIrIHaE~2xo)4BKIfDlSn)H&xV16^{UkjZ|^>jXqFOR#Z;QcDxM20Blr#Y`{LfHjt!+tF7N$o)DSDN&)5BHdy`0wB|$)JpRKs8xN)mP=H z;Y@%Dt7&iOYxX1a`H%>P+>wfLhBX_i>e~W7_G(dW=}2)Sx3)JwDIYCp+xRb0)-G1h zONh%fqy+=srneqKj@8m=zA3rT?^g2Efa%a=S1nrHt3z1Qxs|H?3izp}$L7nU+&q1L zL?`)IpUtJ~x^W`<(ra+MA2CSjUtrmO)&3^a<6A=tGN8vPyCd?d7dIah{x|Hi@YjaT z*^uOUa2|h3<%T|g%4_vV_dZJ#Bq_PiKT4@4uM!=xFvs$*(jNqW!7@HOc-DC5@gLdr z3s=F!lI6hv0B~2^o&f&#DM9DH%HyglJFeib@XnN@UO!D z8;M}jG;2!~P5_MpsbZ6jKjCh0gxbc z-_o(=zOwM%o+Gf@st4U1SCIIV$H^b>ZmvXrgLW&=sWWrvZAZo$PMn@xYm?{&au;6{ z(h;^Ow%5qox5V33Qq6X`{{VWt`%(D4YX~d$k1*FCvK`s>mB+;u z@~h#yzl;$+RaJ=|g0SWIv2fhSZqNEr?1Pz~YhQT$$lGMNEPah(TzJoT{o8IITKKkK ziF&NBx(jR{Ls^pe_r(`4kOV3_3e(t$&7WyY;^`w?yM-XpVCgGJm1z5C>VEfqa_cXnM8lL-a<2mo7Ci#d5rCom*wU!pnKnHwRg|+OA_|M&{ zzi6M#+zvBW?7V`<>C&rHL<_9b8YsZ<(x6Jh@-?g^?>VhfhJhjGHTGNE5YqvbK+ZA zH3WG)vAL_wG~HF~{y@ZmU7fD29O?VRLXC^&Joe%lV35QY091?0it2TRfWy6dpGxD^ z$UA8{44tNATrEtlM0TM7M6;Af(z@r0-<*&R~r&=N3 z_o@JXq2mK-AzTGLy?-j^f8jH~xVRS9L(ZL!(1(N_j(Un(knel+5 z*w^1*4?Yn1N5IywPGL){>2bPe`L>^G?4d^L?3XTw&R!AtJMj<3PA;`6Ke6p{IF}oU z_FDS4!(R;k82C!wJAH3aH&+q$2aKO#UbW+o0a`YbZ+WKbtrfw?1AtVH)${ewg{<_+ z8foTvX6j2F)#zdA^E)GovuktO<@kZ%Zwx}IqG-|2v!fooSCs4DwZ5gJ-g$PhMFInW zqo@`0{{X}v9HoLajjM)}xyMTRBgB3;(jk&ZyO2w8IuCm6mLIX4Y9FG0DgCzf!KRq4 z6JxOd09ol@p5GRJH0pjYx{`bQr@NW`@&$Nx_lR|`7Tqm|oQ~Vh1aYo&`B%4i3-)C3 zM~EIf?-t4Zn`U|2yXVDiM-0fFRD9Iho$jF_QpQGO(Q{s*;V*+8HSue$#h#rqM1PIf z10RikiFhaBFT-yOMz*?6khgaWjL9nRVt%#m_TC@WE+P;|64}599Ag9ME7PTcFsq7* z@Q;T70A)=is(ftMFGrVU69LoZ7_Nk&9)>MR?0pRffURJUex-MebQu__-Y*7e06f#i z%)X>o$d`U4@#eO6`LZG&gEgFdGvaMQ$J(x6pL(xqx*$|M&#Z3#DtIqRVv(vzk4ogP zKWGguJBA+H6WAR8=CCm|Y%p`uB)0lXUF)Jrwa!J+8lgfXo;VL0*k< zC8fSFp~}@2zM19_+D2rNx*%HSt0pxhaIN9(Q5|EEimMJzb5$-pFXmz?Wb4qL59MD_ zcyr))kNi&2+~3B!Wvl-H6sK!}{_k4)7s3Akv)_X>DaH1zTUMDm2|v~6=qt>rh&!p$ zaz8jUzlHuF)-J`aho;SX=l*%AVUK)tub^}f*z3i5ibp4iZ(-Ba^RNx<2fo~j{Sk@{ zJ5PW?YLVK*7{F9excsXg=UcRgA|PD;RhPGyL#0rP_>Tne=j@;GyFyssRE70vhu+*u zr~UI@<)ip}!X6p7OHB()wz7&p?w|&;u6##yQ28me*EM;qMI3p(xmfemmK;_xQhT#S zDr;nVWWFG>i{%fV-z{L=_=GEFH72}6S@?_K%`PT0>WIt_MdrM_Uj3sy52eJ*ZzPjS z2LL5cvqrwzbVt*d-Xx#qDfdNjSKcg-Ze|CL=cRnz;qQz3@5BqUr}%cogk=2FV*y2b z81V0%60QB-@`L8Vz%`quN~lA9;%8R#JmHV6akri34Sc*jq*Y+J^leJh^3@#LW9 z5sZ6RRm>V@cl;{tUg1Mr-Q(C*=zbLGiU-?fWAv;Gj~?HEcE|>6ou9^U;z7Dc%vWFx4)vhf(E2l?VUm6d3pOE-!9 zJ!}ki`%wD|!@2Rso{zN(h5Fad=Kkk7-wrSl1pl zMq!oQeT{hunRC4URTz>&$7$lN2RD)G7hWq#BgV?+B-O!_a23omIUQQYEKIIMMM9R)N#^UoES8WP<(0O#eTH$~I$U{-r?{vJgyQZqrJWIM0pRrPDX zvS~BEe}vP4{v+DCzZg!b;p>B(9)hzSik=Cyir-6nrD2)LuAn#o^z;>l;aL2?4_jqG zz^!(Sk_zJ#7Dm8r^s3>PAXL&W<{09ux@~M8)tC;*ZUE_3Sw3%=Rh~kEDMD`L>D&sX zRdK~kcCZL)SK7mER@lL^Iilb<3l{^LcTvSSCef2e%a8{Y`jW`jBO%+2ROEzDE7Fxo zLrP-|H+Q3`A{=(782I9t#m5GaH>s*5oFEu)N|WT<=2cL{{IuC6SfVOxFd9pgS^+0U7^f@}G2k3j7oH)|G{8R9DuO-h&UL?w`W2JBHk+KU zpse}L6c1gB(jBBoahj)fbEVjV^Gd2c&3vt^{8-j+{{Z93Jf+4x>w&t}b?r?tEyRvV z=nZFfYh;hBbuWqD9n;Gq+@qEL?Qqw>8>}Hl`z#GH9SwZ{02hb#xyDilJH3r`T7SbY z7HV=TMP|SrB9}xAs@_y5B`wyoT?Ak}{+2U*E zR=9PKcTu|)>3VnUuWE{-{^VeF0Mzou70miX_=bIA=H-Z4ScB_X!q)ay+=;rsOf6L!pC{lWjqP-VN{fca3WfxNpJrcgKy!fl&-5VzM{xo6!*sdp4{iyyMX)F89 zL^BS{&1CUXV5p;p(|=>{2iq`vsDz|`73g|r?7iR^u%g8=^{+G4{{U@Y0$N47(Tv~l z8uHy!_UW<+&8J(iJ-DQ&HeVt>+SC33cn-mXrG$81#}(SzcpJhRVA&O{N(XET{GZhS z0B)ZaTxBfn$}g>XzNPzCd{EU~wWQ4&pGv=HP<-hhw(DczJ45q%DUbI>L3iR`18K45 zYnT&nxUa!oN8=yH4P%(EE)IU8xl4_A;?AUVH1`kflTqwycNerr@4f#3#=nOeTzHoL z+~9QFIIla_e`@cB8eRl9(KB`mYw+IVN%7U*Uh?8kUR>58&^76`2(TyY%F+?(z^-D;_S4pURd$+Zg0zV*E@U`S7~DUVe24I# z_Al|Ljm%oNjqXl~rHnV0TM{_>SLj!Vyf5&};GUL=pu-e1LYVVk21X;kY91aj>OX4V zL)CmC;;$M@q{piGwn1+^i<2MmFST-hGWgMLq(>^pIC)fH1?^um{6qNZJ<0Mk=~Y#` zjCiFqBYu(}TKyT+ekDPr*~evO$pkTs zAYb7Fj0(P6Y(?(%J^ui~ejM;m!|fIw8^hL-T3f`VDF7=Ut!Y1xbjxXW!zkQ65A&~v zHD8MtD=A2%EUVCy$2I4de-ox+?$hnZe$|wzx4CYtR*^^PvG}QIxc%~cy|Ydq7qs+j zI}glP7ggGmWS@HFXZW9~th>I^!1t_uk|*0p{f-|PG-&WUU>#MCv>;|?(QoeW@!qtKXm5!m*IhH_L%O` z*Eq-^SLeU&iDU3z;}?d%v-Ov^lT@}Dwz(Wl3Hsyi`&Yp_r^TIrR6%PU{INux2J8y? z_r_lkFXA(OqfvKk9CA$xo4KUwHmrQR;w=sIy=LOZB;1fOP)Be$tTu&@0zCc|+gfTi z`i`e0_Y&p4y=pyT`%bh%v2yL{UalTm9Iht=B4B!Ape>%1lTKZaxu`}+uE?1a00{b3 za;=^PN*4nZn}YQ{DvZcBny<1#*u_|$>NNSYRU^EXS(ZC^%#YY8&+?!Ss@qJBZM@r` zmye}$_ZP4$uwDS^Ud7?hhJHKog`%VuKWB*l034q$>0Zy_FWEmxR{KwkH71|Gl@kCy zm5Zoaq@iw`9BSqzuHs8{$$*ue^@UoDA zOCk?rPS2@Vk3-8mJ>jccSeD;G(Gt;dh4RoS;=BDn!M-fHC1u1YeQ{i^_s9DSLhw_)qh`aQlM>Gp%o)wKjnbsL3Ol5dBa7GFPWkair3 z`2tTJc!u;GZ=9c8nx-Gd7r*MGWZmedrY9X6~(&DGtBF~#{J}T-i#9BhfJpYK=e#jl6--Gj{9n|_t8Zytkg_>s`C+Km4IvHt+puhPkUPvQGV!i32BR(03J&kot2ozY12 zBC`6+E7>0l*nYwgcY8O z@7hbla001$665`$S^Z>w#N=(iVo!&*@rfl}$LU&2`y>1`u^;j3qe&GN|D_Nn&rA0j^cPX_oF%}1AOY@~MBDJM?_*nk2ic$YxSv4$bdcDzfYz%^#_k8qb7n*su|)9WjdK?>uGUu-jr( z_vv4jx1Y4#^r`!(&TA3BXgxx2^~hBZpsh6_#QiwbejsS@F)CLdTIO!PC+M+ctEOx7 zw%_BPkoQWLZy-bMT@1e#ya@Y9XL5b2)C#foME?L3qB502Huk})(tJXd(x$;| z{{R^4`uvW%U4-{Tb~nb1Q}Y%1Wp%CV_ocksxf}ijfBMz+kHc@;yTpGD{0Rqzbl4K+ zNSTiJ89d|hrcIIbj`EPjPe@$wuiWoX z*$(LTsXj7a76v$n=TSe#4QbEHFty`*0-i_mrX9HBia7<&dc6Mt6*Z>h915c+#EoVC zZ!p)ImqEsOrfyKYQOF$UeJ_vor|BWAxx96*pOi{#kn^xV`qa-qJ-Q0F=q@s7Ix z0P@+Ysqr4OCmwTFV$1%|=~AqX{om4`Ag)>(hN&UkWn)t{`g=Et1d37KU(9(~G7IEPv zzulifNJp4F!IuloHGR!`()>NqqsV)gBif~h!CC^6Ga+BXpEw>yO6LTO){G5>;}z-6 z;GG08k#`V1>p~9==y8C2tdFf6;CX~{fUZP?&B%U&GD!aUFxCaKSs9AdPieMRR_7s4Xf{v8Y zikWuf9V!eG+eHS1h&j$GamF!C#=(k2J*WcQeZ>u))QEc1!-VTV998|wM|5-AxAe%K z?jrG51FN6($q)Ng_J@If7TMqUJ59gkT3Gk9cI4IaA1}l><%g%veBf>8MlsYT&OkDA zkEMNm2g24wmosWfFS4X+>J*}$@9E12%Z;+zC21XA``i=e) zY0bJ@XC$cUUIVLW-(=OMu+BoU7&R>(jt@JfR!fneqTdc}UQdQP4brOuEh7M9w$WOj zW-*}8UcXB8{{V*n01fqd{uFq6@*=r=WWs~c1r=^@hx)-^E=zt-85Pq{q56Ivf4fJN zD)colLU~SWx47_bwP*tUl%K+>$DnGdo%XCh3ZjmA0rL42n|EVwb6ZBr@*MApfF9Kn z<$rmwfIX-Jjn%EbrDrXT>^tL`3NSu~ymfzOzlKJ3xR%3len`(Bg?pyvWZucN3Vc^c zc*OvCZNKd6@Uk4rbmU-r6I=0o0{Bb^8Wp>7-n~K62{&P|1u$)og8u+1??=1`oBsg9 zhWJzgAMlUcl|F*J@8b`_zX52U4E4QBN6?^xYgigYbx;^>74(1~A;jM;bDtLUuk9~` z-Xph)KqY%AcJt_`idSHKfBOq+4;8MzWw-9KHGTKxMC{TU{QUiktnYMR6!?cn)f35+ z$wRb^9I3CryzRS{dJpldwSd@E{lSHX=-qaa*pEzCpHJWq3yBTG={Cf%{{Ws#{uS5_ zQ4%nSbNE%r+`0l(pTejQExGu4;MZe2X*SH>o>Kn+g;QULUKMhZjV{_YPMC>v{HxXe z#d9+kSP#<&{3_kHlYb-eY;wJ^{{YsY4n3?H^h=0hk8Eg;xcn>g3*eoT+5XVbS*Hwd zrBBG$>+Qamt0lD7@>n}=R=`oo&3<`!FW@)DOHYn5c%%CQXe{HtmTxeTf*HU1)B)4} z+S*jV@Q&#>a-Whp`g&vv?7wCEb0@+$Vgox}v5M$FZSM{16MQs+;tMCuyok?)CvW9h z{{XSJo2uP>HlEsBcU4y02~snkt|`Z3Gt*wtMiG-00_p3IO7$5$8?Cr3w)v_R+Pb(8Z;Dgl-9ZP>3jjT;xq#2p;7MZn@qu5M{{R-O zj2{xUh|>W)L5w3ZV~l?Zu3SOEn$rEj zd1SbR3U{}*#74T)QnHtZj#u{emJuA^8v$xr{B?J!Gz@wb<>TwUVmnr#)u3g?} zn&r)f%HiUDrF}6~hPx(nir@In8H3^`sH`#j-h+TR6~ZS#Yqk-(KUK?LJs8iq(Ek8# zO5Q!dr4=1ttGp)ncewNW}69gW>ZGXosehu~#8R75K$9cyB2RU?{Bzm-dl z)GJ`^#RZKCPE~xb~%H=j%=23ILr*E1Haxnwe8_`c!*Lx6RN{1gZ%?N*QC#M6$O4 z3PMI`0sZ-;JREvbsTeG3Jd@1;I{@;$QNt0trAPQu&;^kcY<^zV6o78VI#W@$nt96- z*yex*jGtjaB?j6WbGKzyl19f)C;{zo7p+6)UQB<{S2e%jjS>$Nc*ji8E@cqMcQPw6 z>9-=kT>L-qKjFTeWU*Rlap6-Nhz!l|S@Qw;8>je7#Tu&aiUJgRj0&l&_+wepQ+)B0 zx6;3A6X6elj1B&bWAw)Yu(cn9Uk~ps{D*~q9942lp$eo=#8=d=6@)6gPikx5T|t6+ z8vT85fPV|)xZe7FGL-3B5Aa*zi>OcRh;Tiq_ERlYiTL0BuReZZ`qRdxc6)ra`xE~F z3X9>)E44IRRzL0vfBY)Xhsp+Yi)F`Pf}hpqPu3!SIj!yUpWUI&Sr=N?Hkerb1%ARG zhW-dr3|dvXf&TzZ)~8PbcuF?P>2PEIxvd{pn0;a=exgU=pAT9brkx2M$SXiWrp7>m(GU;zYej^a4-k*fIKC1|xMJE;N1&^6 z{29HHJjH1!C)&S4t>Lp%{-72<)nKYDm`Hkd#cHr@k8Y34-ACZ3isNEow3Uxw1#-7P z4*YFnlP;eyEB?)Xw+2jZ`!EN$6->uvAjQqME#GZKu-58YtbRNh<$=r>BM!WDsYHXQ zucH3|X>Sd9cSF{#CDCFDB;mZkybsF0Z$t|k`qmb)vech(Jv&sMc2gL|Qrt&Mc#w{w zs6lf+^;IXOO#_fYQ-N91ZSyNZ92E$iXad_f#~d1u&D!3z5d<7R2BBx!k=B4N?ikN{ zXP7|7YK(5uFpUOlNY(GU6pE02s%MGd5*0pUk(%X0RtxYz-ZSrD|&XD#3y$?$8 zRPC~DMEOho+QxN~DMaJ!vwl$v%W5N^cCA#*g;_kOGE%; z(zUHDt|r0861eACvsA2R!<8Of04O~LZCmLNH!`W_w<5E#v?@*{5>nXbsfmnFh5jCV0Qi&fA=cwi zjkKLG;P04xwD@H4N!)Jg9&OIO4HxFP%x}il=dQ?!PY;nDQUt=DkHtEsh4s z-tmi^wgpm}=a8sszSo)aj-QoBd2?f@Mdx0~sH44CI*#Uw7ucOe!?xVy9`%W-UfXHt z{{U){ab9`iPl}e-$ZfQN<~L2q@h^>RxPAe3RO)Je&xIwK*WJ?+yUE)_`_H67Omo&xpggW@$Thg z)z1UyE9~2^*mJ~4hy5-ykGi3&lDhqmykTsNB5>P(+O8^?iA!^36%*uP1R(s(Dr2#K zh+@6dRQ;K}e_@|44fyotyz5l>L*vaq{dJ6lFQBO`E;?7ma z`!%2Ti;HIR=ZLS=R_U3vX~P;g=}u^wdvR4#?J?JFS@ZWV4NQv=^x~5lH9DYoBX<J!y0K3d{$U8RxY->rsQ&oH^-M0+HUD-8&;e2p#dpXJkuX;;G?BQo_3nCACgWDFcqCg$^}Q94wWREH}Om( zf83x1Vpw9H1_p6RQ~||IxMaZXKoK+ixHO3nVe)mPJXEj{xjiTXx!gL8Q;>sFG^e8s zifJj>Pz20T)9Fx`IP?OOfH60CvsC0;V4#VADy! z#xYT=0oR%UY;2{D?v(wnAI!XiRf!qSD#A^*aZHya<21lroMxiNTb`8s5HfmF`Wl;n z!Z;Y{Dcb`KnnpZRqh%v*Y1jqZ#sxbBE;~}%R$QJ6)NPJKhg$O}JYTHa^pKCnv?1}%u21^YUs+?rIxCGjdq%@48LA|O z`CGM7e-++d4Yydpt^GQ|wWz>=?V!xcXB{a`!p6LEYo?dNI+SE8ox+wc25K@M8}OhG zU+o*dW)$x?APjL`SnyTkV43>Xj9w0x%3m{~tpM}aC^!b1SpXQW>3knDx${$jQ~v64gk0(6amHW&wN#cl~;^ry7Qvh ztYaM1Lrk_EIHt`GP{`f5rV_{QjMq+d=#{YCiep+p2-(F$1C?2&5@CA#R*W|f4=uqp zrvh5XHW>yzYq8On!?zcao86)%Ue%&8pcaK zdK;3L7Sljf;G~FEf%L(_uiVdu-yQz|XK#c*3axBywJ0+T2<>MCB1u|P*Bh_}er@=> z<35q&-xTT^@v%stxVU$T8Xy2n@tkp9Y%%UrW4{$z_rsFN z+x&<8tKMwBB=~aD6ZW`c9>Hmn{8sRhBNmIZ*=pxAB##SE2_V|y7W}Gr@O%@nK!-k+ z>pHK*-wHfq?67VB0D#v&2gDx_XUqxn4{FU!(IbtA!RFUHt=WZiI&Ot;Xr61qk7HdE zd{WRAHjqCmuNRKAy+8vJ@${?b6^)n;sfA+^;~v$gXK|v$>a$1l*E=VOwAFCo@O?2? zEw$Y`X#%`p4_r~s2TteBHv;v-GalLAtcjR6?=&Woxw_E{v`h0lQYIBRif%ej5~R#xgyzPyYag za)mOA!`i(fo7H3KiG^rxVXVlRj2sfCDxT6$lHZ>%p7ZR08hbWnJX zc$<}}aV(`q zdRNApH^o_FREEs$l=rXFzu7axS{IBaYySWpMHHyR_d(bV)zJ!(gklphcN5$WH%Z8J^`-l0Fnx*aMXg1s! zRm*^_@+X+E|k~>$jd`tfTg>iAL zODBcoU8}-?E6*U&+D2W2m#;#NPGn&s4K~*EP+gF4Pj5=Id!_1@1PPZT*1GL8Pi-u# z?ZbDiOT1pG&ni1pGd$+j^X4gVI#uMg)9z20F`sc;hr{;ZiFOa3rh`XVoU1R(?LZT0 zwt8ehF(4KG=*3yP_>UKa8Rw24JwV`7ZR})RsEFaXt#t6No2lX}$Z~#_4t>i|vEzF0 z?OU%V@oR15h5Nm+UOlgV)7~|_aS}{pR_c3K+cA6$@P+hc?kv^Ak3n8<;-A?+!`hT? zH0b`$_{xBItRJ)LT4%$$kHp^+YV2jbyFV{M*16yKPBs18?eAGz`B${~pY~z##){6m zeXzS#^lI@vPvF(y4{ahHXUBdm)?iCLUsRH7bl@Q;Za$qWE-UU7 zqhS}&Rwee6s@VSKdv_8qUJX9ct~iOJBNex@T?yy8xOIaG;IX7WCA%CWl>@a@Hd8p> z$Ve4Y(%oAU3{&L;Qg0Dz6OD#Lk7|f&a~uL#R(>Jf@)5;3O76iNRdNBL{iSwSYB@DZ zOS`DfSf8y+CzTqFhiR=HFG`nMnPPx_PioVUS2BG0PtF@8(noV}GB=T3KDpt?(PJA= znd*Hj2G~Z?{{TukP+Y0!&Q2WWr5nx^nsW%l^~FEWhCCX}*^ijsus>r8{0jPe;Rna- zuL3Gt+cSKvo-5=Bzi9^5?ZsTu{{VF{eZ*CA3h4bv@n7u;Kg4S_ivH!YR18b{b8@0An^s(pEA13$>SNW=EuiZCN(}_CZp=|A35k!X}X*_>c_S#IGcnUC*i8j zljGPfF%{4o$4pmeX?dY)oX(1-m4Nek7^p3~r%H`vlQ`{Oy8aZ=@6ek!2uH1Q*S-hU zA!ca4bsnCTpd6Y9Y(`H8wQVk%%mcV!cB-@JTJ5U&zC&zZYR8&Oxuq7%0W$EQeQQHA zx{JgXv-KF;?^mPLE#xC<99FiA`z?OZn$@g2j-TOKR@&t}$lg~-_a~@QbNW^ezu-R= z{5{owvOINex^2W*B})d#Ju!;TT%|@2vAYG`xZ|x~`&t3=3|9&LucO9)7Rg?S9(j zCx~O|S@ZZGN1r9_z&}dy8_$l+kBFhi;aK1BzVDU3=6?#Pxfr;ftEl`aGUc@Q2%eS4 zU3@n26@+Z@sF4Sya&Ph9Rd4xb6jf#T@2ZtC{Ge0kka8i{dS<5+;J{O7T6A|07#pJ_ z70ha16)rC0EbN2mDutJil4$(7_UGwOo%BtsaOI52d!jTYH;2t*hWoX=K}|t zzH!))v0e>l->5OvMLl*4}R> z*e~~}3mPGT7^)X43}k^&z4pO?I#qVm3q)`zC8IJFVJT2JsickAg&iu1xNzIL3W7~Q zqwYgm37uQcVYXDyAXM5mgD$Z@nJ*Cv;y<-FNH@0?=z4#OqO!DGXs{THw25a&eWmDj zHs&CJzB^Zz-)XSCjAIz|u9D|ei_2*xe3q_W-sVZ}Fb-CiF$Q#c9mIz$aJ8);h0v~K zZYo==#)ZO0YCr9~0ULIsm4kQ&!KD8Hgnqy_F}QvehBZUf zHcdvFy}*2y;($8D(X{nXl{x$=!$`I~t-f*XSr(eJd4Y+@uF@|M+Cc{9!q5g}Rstdk zv>QjYOl{y`e5e3FO45VH+H}CIgmLXv?mSJVNB*fYO$LNeY4XX2@_+-{o<7e56`B?N zsx|S2ym2?n&2o31BbM>c%d}7jLigHow#JQf^r#$Z^781ot}srLe9q@JF`1P(JXG@m z*9f$bFsLcabd9($FCNv!E##;{%@gWPkfh>{U^{hvC08l{_Np^nX+lq#Le>R^#8(m+ z*k>KJ9(l|LF-l)=O61EipCK=mIe!aLgon)Um1aVgc2%zM3q`;N0VgihtW~I}RwY8n>||QSR+o)|Z4ZR{ONYYn!Foc@;X@1zckWk3kmy z0JdSalhg`~YDRY5jH#^grGqYCrF4SQ*&tsmbfhbs_NyVNf((yv?IhKD3{ zr?sp_ep;a|v5);%Zq(S3q+UJh#AdQ}bx9K;diJP=%&6Zo^sJ3a>h1DC!it7cIsX8& zNA{4Qa1D2fk02_X5G#a$pEr9~U1jriJYuM^Qb$J$I@Z7TkICh-@+vcF9t4Zlt8H-L z?Vt&b#E0f1ipRZ2kmT|!s!ft0LIA95wb=bQpv;=UVgP_*l0y5o)|G;8jPcs5yn7sz zKpCYc&J^)YSfy4R@+)CS8O0{V0I{IZgvpdp4k|!JQS!u&Pe3WzWgBP%O>hR{aw@F1 zF)LItM)Kz;6y~$r^ADPUAeL`8<&Al$!``a^conX(#)=(R6xj-t-RVFXh;F29nX3ZY z=zOA`2|i$KVzpjoi3iFk1D7ze+-!Q%`!QkiV~VFV?Jdr6iq(e-oEiY2@j4tDd{N0K z-aHDtSIim5H7p9a!*M_rHjprf7^$MTQ^bd*SV)w&wN!g>UA77Uv~FTmJE{h|iyto) zo+EQE*=p0+5_f^}&;$P65)5NGtnIAw83^L7c?lB$d)BfD1X#eJ3@y+1bBd8P`Cs>i zvMSW+82Oi)Ae71brQ))f(a!4@ijv17cJ!{7`$~JLAyV8R$2E_wE8C`VyKl8-*k8nv zX5j6`e6DLxnV&&`mn=?-XC=7rSy$x43le(ONi`^BebF}+Lr}eEiw-!hC~R*b+EGli z8l$bWeH7Mpjp$b@rlr)GWQREBw`jq#3rPr%1o2xsGe&hNv(q)k$2dc@o-3lznZDSP zb``5$>6B&f9{wbakpgjmDoyw!j+K*VG8I;SIIB%@nFpY+8LxQuV*S%a+vXd1;*rmo zfrm<`B!P&*s{n0|iw~GlAXLKCB&SowEM*3BO*=OXbfsZjziu|h%-u0xJ9xI?FZ@zq zQ}Ux%zg^FZd?x@ce5-vcKDl#so&%n1vn!{~HqLBh?F4IhqUBoFEjB;C z>2(wPgY>R3ShU4!&!mp}k3-x1FuQcZSEkzWuZV5t>$b6u#D6;WUkf(PBV+nvyko~p zvtNVQgZkFAm%L#o?w*%&rF3|I-L3{jBpUASCJm!O{_SxOAXCL+{xYNRnD;U6Qm2Z@ zZ9X-OmKm+t%Q>o3GX>j<^ytjyoJ@4JKy!`-XX+Q;LWLXwThXCqHOp(Z#xM_KTBmtf zT((6=*QAajAbq6PpNA%&P-YUg>f~jFEIYBybsh=M`54!1q00-LzS8c;phagH{m5Km ztS*Ua%lqZcO$?a&){HE3lhV8i)|u$jpsZqO`gO*esIj*=iR;uYmHe;?-CXJ_ZeLSd zHuE|Rbj5iXxpPSLsmGNX>fuH@RhY(k&1VTW3b2kq#c)(QAZo&Px6SBl!agmDMb(>n zgI?!s#fZ;J@n4Ggj`H1{{{RomUHJ$5%uF%=0KjLCtcRZm2qNgwealc%7sN>!UjiR|KF zd@uh1f_r=i_=%+Gy)#Xdqk!gaB{{wSH#! zi}r!nd`+mEdpp@D2dGn(0pm^Kn-?6S7Uv%Rl_!CJW_WZvmDP3j7Z-8#9Ri@73k@uY3Ko7l_Oed@$-RM51jMJ?6;uA zeATG*?YtQ4wm)MF#xeA&&SK8!hT}$o&T}J6AnsW3YQpIfb-=C1yOBr*1w!{M$1Bu! zs%-)@Mw-BM0-R&=quNI`VXj*^HCje0-77Z7%2W}Y?xo>HThGayReWykQd&d=hB&E# zD{jSVIUy^8IHxm+tr&HzrfOhluBklcLHtIy%PIMXO60U@eAy-6{o`9Q%L}KcyYs2qUUnsGy$r~2*IfE8cZm_ ztlzYJqndx(ST0tRKxh?+oxR0QBxr`^;}wKwEOI*0_JhDy#$I2@cz#4tlz2mExZDJDR?|mqx@eY3pz2J>**TQ#D+blqsm!879UlV+M zL#jt-WyS~@9X^~?o-FX?uA3B>GMJRAXKzaRYQd~*{73z(s_hWM`?iCT?Oy!~T556B zpJVh}M)9|ZZuFF!P<^P;{Dk!b+Po9uU&S=it>lI~tV;ZK`K!gedHYI6+IZ7+1RpBn zb}@``Un|{f8qbRL0p=MenpOc&bI;PdAr4)RbldojpT%Dhbq!Kij?v17I4pXfrCRVO z!aovxLb*w$Mzyie&m@DEAMDq;{3QLK#(%dwR-Sa7V}l$It$l;0cz7%c1(ZSsPnA>* z0r^*T8c(T|>Lsz}ehK(z;ZKLw(Waef8f#1m#M8_5mI&n=p^iT4@KTa!7Lq21bviN(Y!0Pi2_0>b8X?A==8u3p1 zWR9bEA4;Vq$>$u?P(tUCvLUvQl>k$I-3t7>M-|TfqE_!nShrJJsG&QWvR?*#FBMu# z={IArthZ7=bR8;;vPyX-wa~=Wmr>f^DXbffMtQCl8+9_s=K)uee*s+|ggg!6Ply_t zY5D|X$2g zN)p>>uO_Q-zb+w+><8J70sJe)^$*%3$C|J1G@B@_6!0DXW&`PgUM*VgN1;a!qJ7nW zs@v(&@16Xl$iZ?IYs@wO0Eu1`)AxO^T(?|vv^f5PzAchJi9ZrAN?d9eH_^wO;flt% z`d6xHUjS^<)Jv^jp>`aAbC1rry`)jst2zxsiaHws}cpqBq zU&3D=b$v0l7_DrynE(YXq>wz`*(sDCP1Ve4+Mj~H8r@plX*Mv%*2Hg>M(6Ea2gKjn zH%q(Gf3dtMUGC>kow2uWeGN@ol2+wFqaU<*_li6(@i?wLQ{vk_I!8Y=5FN}h^sgE5 z28*O=vG3G1$?uqQ&71;0m5bsZ5l0Y{Rn+d8r%{$KCro{7<=+!{^Tgi}um1qy8t^;@ zeg6O>OVJnc6$-Ui(646$d&gfB^ov`M?2QfvmPb2Obz|v_S9S2`;Kzu(VLUqTju_Z! z{4zj(`+5Q^viMc-Q$z4oyn3#*MyIV~agt0GjQ3O?)$USX$td2uV}L8ABO{@(IyZzY z8WQsKcpYdNl7P)N?| z-;YUUUzBn5tr)Zp17jKXt90}xQ)dXvcOdCiWP)y14&@yVc*%cQX@&U#fKyyF-Z+g;iDWbwsw5+(`7 zQeaWoJ7WT&3BNsvsj@-Z2U>__GtU)3GDxF1$>dQOOc1oLskdFZ5=7Qc;cA+EoKCZ z$-q99#e7DPN1(C}3lY-0NLwXvcoo3>LT&a*67ji~f|EMk9TpuL)&a-v*ZB&yy`ufz zavGzvjp5Uw1ZQe5U!bW$jzQA|R%HPsaA zs031mEuO}!2?{O+Oe1muUi5VYBT2_R)piFN6=9LnpyH~_A|TFjLuC)&v{$Qq68KAL z@pr|NX*$*8+iCV`=F8;sBY$;Apf%vPn#n?AKr46Q@5HYdcmq?q)qFDkRJU>YF4)ci z^!}Bcosm4I{{Y6l2g6?od}}v`bepHYSfWSAbSwcX-Lfm^ty9LD)}g&L^k|TD$0ofM zygjRUp8d5u*yOvqoc{7gBiiO$spjQmM-mZBLK%kAzkh z>>BNUZ%kLF>3*dVvO70;$8s<$mRO#~ zii&%kHkqR63f@_>Rom@~@2&LvKO_ia2#f41=goWef$*1wXAx>KfhIoaAlHm|yY|VE zZOk4Uu#E>m?^rsu8MJA}C*6WMGD376F^Y_doiTZEA_La~zbj1wZ+tpp1(1w(CIffKQ_|d_$})wt8Z(e{E@&{{X!5aDJ6aj8{T_uzBb9 zCyq6C^Y1QXKT}%vpANNqkQ(xO>1FZ4?-9VKj=@b`xA7jQcOtA-k}y3mhP6#DggLVw z&*4l4PxQNwlDbI#8TfV_d7n5Qn5W#!;#kukWnd3Xf-4>GHR7Z`)WvA35vkZ)_+!D= zNF!@-bN%YL{{ZlaX^1vO9~}T3*N#4;s84b&RrgCH1W}$cc&}iw_;+dH_(a|$xHsCg z>zJ)!R$!;<2VcU8OG4utk)IW5aHe3k!u=~E{{Y4VAGlN>&c3DiIr}R3gX0`GmwJuB z@Xd{y^mW}Vgd7D_;19&tvRQu4UkJVzYtlog-M+JRZ^-*d3aj`6Ynu9xkof1o9|ry- z{7#u}A-6hqlfilA8$loJiujWfg6e__$m zJ&~@}RRL51>?`DN8GK^bwX*T~m_zT{x8!ygJW=%Lj($C9nru&Rr%m(p801&S{ww&8 zscUjHl1gMG_B>acUS3akCzx_r)<&zTTWMBi;`Trkcl4-GT~Q9D_BC$xA!{4zT7;uw z`|*y|A9}o##vc%GHRXF~vlXc52YU6-*_G}5HFPI?-8L3=W8nf9-_uN2lkGU@iw zk*CC5`kpJxHD8RH{n;rC2$$Np-9vw6W9qBZrdgccT!aJOyyL{55d1%0Qx{j(HutP_(Cte1O1k zYnZmyo;-8KdS8V;9{AhhJ^I1n+Xra6ysz@2kF8Oe#7le?t6xU&---NRaJHTw)26v% zdaC@tpGy0S!2bZUW|gH$1^)nx??1F8QMkZ^2oJt-UsULNFNORqYAvj-qk&Xl1yCue z3zYa{!Jo1Qt9~N8@qOrp3CV^rmdDnEWF1~kTaUuMM6R>0NK;2a z9A~2wfGe)hd;byI6Qm(IN}L*nxkQc($+c7sfs%$QLgNJ(QZvcRr!t z@T=kM3mvJ7X$J(JO>vs%$FH+Dli}$0uWh4@SI+hx9MpA50ltxlJ;|=}%fU9*?u0f} zccBH$EnCJOE%7zWOCw5Ak3euMDlZM|H;kz>?c96%SFXXN*}^tP%7A;~vb7mB3t5z2 zYH14&z}D(0E_2pD3))~ArUZHl>nuJPX`6D)SR@|S$Iu#w?N{*|P*Pg;)xC{zx8EQBB3&ULZj&aw z<}Dree(i8-c(f_xa5kEygMmKW)05(FjIVOj>Jt_{vx>&K@pp=+Q|4UC!2bZXTIa*Y zAPM56k4Gnfp#BwW3j%$+IN$9pZca?n5BL=@%c?qj(lPvNyZ*sR0Nug#rCkZjY*nVP z@E^5jo_RNemMn8i0LARIl~~(uK4m~Z3an!H#YvnnLCqY&%7rta zz$!l~k!6U2RewsV=-aSHCV>P=zDrq$t?OtpGzS z3ahw|D$A>t867I2M#g%2Py>(?(~6!o9onlQA$h0Af@lKiU9{xmoKtg7^Rd7b05>Nf zQ&;a(*PPReg~6Z;3O+(<>lWoS$odmjZH7q{8XirnN51sO>h=1G@bcOydQt_ zu5s=&Uzj@TI$ua5;gsZ8L1E+H7U|ZD4ZYi{puod_O3~_kpAuyg#Zu&f`g0DCx<& zTWK;uxX4Jaj{JKKv>r9Rj2sS1{#68DwGO;@B=#|F>D2!Kg?-iVOW;R>{x5ty(|#dq z@k*DPruM=dD8bv)@TpwObb46_3*uqK)pQ$cCwX+ZWz>UI>?L7FgT?6Vd3&K<$+a?!mSEc!( zT_wMUGziyVfj}O@v`~DfCz^yX#wviZ7LBAu9t1<%0;Pt|#eP(TVEa_|&lyd=lr)$) zS`5tDt)oc~lm`_IaL1gofWxIpyCnT-g@*5#Vva*XJNRsMYgsI{C{lRO46dPp1K8Gf znWkxaEGFAawn!sC!y4^h%B+`7=9IF34K)BAy)Z(iDln;zSBi^s4wWkB9M+tmP9e6G zaDu8ejk=$i20ntNSwaer&J1~^1OmdtyhHM@iat30%h&$^68vnwAkr_QvyaIN!PK0( zZsusC)tm-2w)Vbrzep2|a_E6M30i@h`pIOx+p3=l_eSnM(o$*-OM~{9N z>5xW|-bE9tjFtyE`~`jg0Q*G7w|@t`Qyko{*%`R)f-zst zv`^AmJ}r19=PM4O6A#3HO4ZXoBlv3I69w!<`ewf|RyGoFNc?KdR~MGe`o zU@+dslBd{sJZ7A~H(G3gKmlo0wykQ781csxpm(Ul=e0NI&TBymSeln`0A`^l(u@*l z0zn`Efk+(Vo|OSi9w~YOK)FfS1;G@+MRx$?^a)9h__NKVO;(*0T&p}FATke{m7$aj(W3_pt zJB3Jy8F`=zhmN!lYL(;pvFS|PKo1VUW|5zEJ!!qbrC>9GKn*Q}#XB3ZiZ+I(41+)u zat6~);}qU$c>;hHcCo?WQsF`3ljZ0|Cj+GbJ8<2D)|?zh$28w9`t7L5!NX7kw{|_~ zaLCvLgG~b@XSG~eQvfjOKo@*1aGGz6bld4MwkeRG!oObpBjcSWZ59dcrvclb_OHf! zh#SvYV?78p-&*`h@fD4l+ea~vVBm`8pEb=7)qQi~PL!MBH(?Qd4SAjC#V-t@!PG*9 z>tCCfUN_b*2k-73iS#vreXnX4G5J8VZmRb4=wGpk`ZcJ0bnu0Xd2wDWqxdMu>R7JJfH{)hVD-lw4bz9l(<8U%jj$5Np!dpFPj-rz^+n7 zdn>OoK>+$t@iQq>f%*Y!@y;n&O_9eyD|*x8jjngkocap<`iI0j1{9FOqnE@Qk@q82-rq8SvqcR`Ha-+SlWd zj6Zg#>E5@chH}`(Rg&EJm%-l){v~`;xrk|2Z)arPXOLkr?O%I*Fa4Cf5#ZS3)HUe; z0JSwG!7m{F*gnf&PuW@N+Dr*=VFE!EV*yn_UOk0JaecK*9+m51^3=7F=T*l&qCN|2 zD>d?LV-ZG!04@L@K~YO_f;P5mCS5@CbMl_miFK&-5piCeX{E8}%2(XpzrDs3n#Q=h zeWM*KC1jRo+U!X+ZbX7Ozka}CtVmeadA@P?ag27T?sY2-DLl)`l|c32SC#mm;>CuI zyH3&oyto4&Dfv>oBU08i-xSEx>T+z1bY7VJD~`T0F*_;Y+dZ4a-x%y|OuBxB8M(OV z7=6)RJE{1iRMairU3TDujD#Et<8@7MOz{1&`!CNnJJ-*CEb;B_%P}qOfnH^7Lz(DO zqZpo*tNcKM(H@LNwCt&8C^0Np~()6nlF9998lG=YsO*P`FDCHaEGRLKRXlOELNi`t#v;?3JqO zQ(5bO5**vw5+CeK{;`LlJ*(`$hW`Knz90NBv5D+$mity!9(CM+7A^kB{u=IXH9)K& zRQt`;)}GEw;@I=+;y%np(sb=BK(@Bfyfvn+vaZZFfu)%sZ*FN-|6+l*6zwi<^ry-g3vZwPoJ#y%Uqw$!{mV=`XpPyBJ=fnL?^J}mK{#XlMOc3Pd8 zwzW_BW)op8kK(Uz@%P1_1^8peHu_{O739-I?Kp(1ZE^Q^V!VIEzaKQ4Ynd0yNVomo zJ*$#Zgsj@s))gPZwmfT4@Slk-W-`eh44$H}CeSs=AI(rkYqHe7Gg;0=*Djbn1#nuA z#oZ?5_N1U~^cA!!c^dKr_PVy!E||x)bJyv3lI?WJ1Japu@j}8*5rGTsTwbN|2HxR` zRs$Z@x@K;Xqddr;>to0@hjjWBr^&dt$Ti8`_|ntn4%N;};(J*#b6Nqls`x9y7tfZp zQm3&Mt*6ks-e^Hu)<;UdTk(pH9N$KEadnBLA~{f8kr z{v2YwM_l+d;_VGg&kXZu;Z;E>FGmZzV8^N3_2dP0A~PuQs$dLpaqa|?M+lCrxhONJoca$ zJtzWQr14C{DaWNQ;-j9mGPq&2xikR?Jmk`zyc%7nIO$CwiU5!{7Zk+6Jky6tU*KBA-OwK8LGOjQ9h65iDlaw!E*h1OOwa>J2Lru7=}kRG zDR|8QES=DmpSZ9aXaVemVUKz-*i($0Y{fGa0KyMSb9#DFjP#`oiU4Aao_M3ZE;~|VA1I&& zUqC6vSvt{;yw#$iNc$VHTu}kF6MNuNYsK`g0Mk$i&BcOOcw*Rlb{WBs72@;cLn>H)~%Ud@E7qt=Ro{Yr;0BV z_^VM^_sK5-9G}9X^ON|FYr}uxDZB1@r2hbfmh^B>6a|lPj^+e#3v{N-f95}xZH!@dd@EwGG_Qln0P{RHif1E(WC%3|hMn_iB3<*BN%hWh-aVYu2p3 zEBI<=iYeel3xIx6Uf-sCK=^-ari+2)ryTr(ub6y?$SbAzj%F;{bij`LY9H+H5J1`c z9NGT>cD}ru<9~n_CJ{7jNBaw0>wIzW94zeOJfHRj9Kr0*n$kUH781>EA`f-NEIQOd zijp@E(!IA<_{-qEQr)94#-y&%fGgxr6t7vGuAZ^(SI{yjL)& z6oXoE$`o)jS%IM~#IUaT_{XOe=(;Dye~3B-f?4T$o5dL5D&!C`+XlSDdb09yRa#Vu zgO1d>Naa4i&@~?)_{QCCr`B$Sj5>L*{{Y2Sl)e=4oQGtZrOb!d%zyqWx!;0*Bu7B5 z!)ozgO*Q;33q&(qbthxCpTc~%t@u~Pc8F$=Q=cjR(f{!>? zT7=MC#8ybTJ*($Wh+Y=^F*=o;e=zHc!ARPfTS3XZN0gpTeG8`D#S|#pbHJ~bycMg* zb#t=oqTDzk>T0ybq|?yhowD)5hozY;ts=4^j;QL-ljo5qF=pS=Zkc@S4GVG4dRJDPuSB%27iQeX0FjA>8^` zRrsBwYuSw2D!X^$xZk$vO6C4geX(9nA-<0cA}jb*Xu5-v3Vt#Zt_ASEYDI!aBmtC7Us*>}ZN2QaCMA)?G4oh<)0l1kUUM z>0Ytp4+=UFG;NZ4ir`bjx`yl`@O>)cgxQsJ%+dqY*Q9MfE|}8)01@q81@@^GwgHOvT|)jXPSfT+2TJoBn@Ekp1A#!yCYj{u zDIvAEoa3cyn##{S{tR{j*#?d8A*x@#*vM%DHm{8vSB<9$8_ zFM!6mJI{#L%ORBp6n3p8B+NM_W74#XtxYh_+i_l%W8zDDB?j(Q!Syxq)}`@M>}72u z;ktIN6HwRuMXRB2HPm|=%a9V0_wK9lf5NsFvPCh9MgxEduO`s^Yw+__@l~z3-S@|N5_)&Uv9A><_9}P-M zx#sY&x~;;Bz> zEtksUn(OvaIenudcgOKj5vB2q6#!F`vAeU=n?&6cC7c?F%tTvp|INO3cRX3f1 z$mXJwLcwxzS@MCQDkG<*bN3N8?XlISnElN0O5xf|)pt*` z7cvNxj8F$v;VCW*$&>OedV#%%X+6br+9r_|tXa)#Nn;j61I11tc#cRS8jiA$970BuZ0A|IfmgJm@vi5MQ z`_u^|dAxA7YEZ3?)B(_H>+Y;x%@mV{#b)?o5hkDpcoorW@+fk?l|XW{-CZ%*PFAM2ypq%3HB}gy0`{wo zw>ub9xCGboNWs9U9_Ve{N6kcvFc+Yt5JxT)oKbQtbv_!tYm2C%LGx!7x8scqP|$TG zxwso*xj@T`=CnDj^o!KEZg%=tP4NfDkoca~!X-F1>$K4}X#{Y|afv$hsgYxsIXx?u zS;{_h(x&@aCjj-NBcqNq-d7_O_E`3vyyCg^m5}9+0+lb6X9plwfNsVl+l4)9{k@0V zT_cf?JXbb#J7|-6d^e>_4~UZA5{AhgCn^u-M%T` zeVgptj?q~6UOv9Phslxl$LU#*klMZbCB4Hee2;3PlSR%?(z%7zx|Z)#E!q^{w*r9V zIwoaBBx44cw=1`4HP4%%p`^yOH*#qUn$hd$8F7kuWWSU4VMO20G? z%s~7qv{si7^110nz{Qw^n**g%X;pH4D@x)ZlMrh)<0_@G(y0?6w)0BTW1uzbo*qNx zs*aeiA-9tfG$!N9GTLL4aRSeD4!&p5?zMV22ipazl7MMEoO;-zD> z?G+ouSuhO%OB7L<^VXt%_N~)XB6z?!F>BT@4=XO>P{55*sUEmMltn00+2RZhs zA~;Yw3IJ}f@raH()eRYnoSK(Y1Ioat^r;dvvAWO)O5FUz(wdwCJ5viN9ck>!iN8Eh z1B1o}+IGb2nx`D7@5MfB{{Rn40Ht#p5?OmzMbL?$D0&U4_07ZN?}8-*qr4pluxWsY9y2&(fligH8b8Pz9@W56SIWx4iW2 zTakoS!1Sz1MIqLyvp!aMY>|0v4h}1z@b%)Q(xDkz^588JUlgq`xg${>9c}Z{6jVxLgt288nUJ(Z&bO zQyKFY%Us;QYlwMI8OvZ_iSgs}S6)o;bxriAk1q zqSpFkk`6Yh{#EiM^W2A$IL6}aYu)@|;+^UJnPtmk=C2{sZJOg%5#yZKx0O=mjn6wU zo~kFTcn3rpb(-DWf3BOKrFT;K4Z1?yj@9SdzOOEq3|8=tNc^hKk$(5lg8u+|xUpQ) zmCZ2eMkc1GFYb=cmBqt1?=k#f)}Fs|Y@%VF4Rbn3xxJBI-ZDmN@YK4Q)t^J@UkxaI z6$=bDE5^KI8JAm)fXM`LUelq8A<|JLTo5bCwWShk!ym%clq{+bmdMk(6GdSe>5*6_ zFi>ZT>Gf%X*v1cPSH#s?MiEcW5C)5PPCTGNHto_bd?1jCH+TNcuD$>O-G zK8(}`H_0c+i~ z_E8gd;=X$LnK^A~KsmzKR!aW>+7Xsvr3QJ?0T(&xP}$qx>pFy5UX^awS62)YIMb5E z_NZ@MEMsZOJYv4!{g`y04E#3J+u~n~t;CmZGYDke<*#A|ewR{u9~~In_g~q|_Ehlq zfGnZ-hw+_JuN6bVYUFK9^vLzEp}cGRMcct-+JA;nSlGZep&Sl4;8*AW0L4$*FT}n+ z)%@FbFllhM5+vhx-h|hj*NMUuBn?dYn$xfRQQBDoKz?|wL6Yqw@KV&XOV zoS)@hU2FdU32($bWyY@TU-1Q+XdVI6 zKF1pozH%@qxN;o~w_XwWduFyND4y|$%;S@vrD0gl;;$N9i0oo9Ta)+LW96>b!XE_T zwVV4-#FCr)w&d>nqP^P7PP5aZ^5BVKRUH7OaQ0^x;SYwIZiW|9yisv`jv2n{{VULO zuXO$AhM&hP0}&K!fb{M)KUmL+eRt2Mx3fyHHAPj6Cm>b@|K?e_|~XxQNw z+PN>;{{Y7N8SrF!q*m(;%oLU*9jj}{KN;^@CW6iI4^5{P%ZSF$;Ygoj7@p$Vzkog- zS^b+xw6?KG*8oDQI#-AIx8udV@HU!q7g6d(eABG!dbY0Y_jd%Vd)F@TyUjvYmu|p&3|BsHt|q|26-fkl1Y`Uvj-{_@8Uh(F?ot50tSR&I^&hhG zHP4*24knQa{#D{y&+QH1-8e{=t@fs0?$?yh`%!O|lFrB~^yZIieUWjX&#v~)oRC1L z2{4%kzID+50BF4)@-4cYdrz>d(tLdIgl(}4epLDUqMjX|@b?lp+mHUWJxVXkPCffq z&X=FGZ-uRwY#_?rfbCu##P6%-+a7jgQa=lTQFQoVohcPWES! zDE#a4fqp4?#J~K6B*6awYOg27j~S@kFWZlLzhyD|hw6#L$Fx;4#vi+13-~|wgVpUG z8+~cK$i_MLudMtz<9#E=T5?_3$(B5Ate-O77NH)8V)L;|sdF#-D|V{VNw+F0oU-nL z)rDiuN3$ttai1-wPUO~=##fMeHIt&27SE13HKQYO^HLd1$06pTY=ernk}iI3l>~tc zU{C{MQg{_IBM!9&);ZlJ#Ojz_Z*$+6)R^C|C(SeX5s~0JM z3Xv7YGPU74cf?;3cpq8RW$@#O=5{NeYW8hzc`S6vW>1)^n)#kv-4{-|dyP(S-pS5B zwb6s6?-5#l>A07kI`QtIwGOYuWa(R?GKLuqd?p8i4u4D_rh{w`Wr zME2S}xKWG->0Vu{>Nmb1yld;G+{F6u1$*?48yVIXKiZe66a1l%Zo2=@FC5T#??a+<0>9Q@HaXd?OFNo&{V*I3IOS`%8E;P0Tit?pXeu z*DW{gdjOE8m!_USD)|fk5sf;;XHdEr_BE=%@Q&I=`>6pK>5gluVtW~VSszDgf3@F> z?&C07+xc1Jj@9NGhsWQDH>`isopbtE4IZzcTf}^bOtQB@wzs@5@axCkG`-)UXzbA+ z<0AsCRi8qAj8QN4&x|}phL-+q$F|}>t$i!-Z@|7K6CGDkG8AvRta|>n>K_b0XZ=6J zu%@NsCKnf-L_-)__vfEZvXx=8g(F267#PKR7--L_=i)hf9Grd)F~#Rj^#fYLXm$>3 zdsNllU)-tME0DX?ZEg9QTJ%n98fHR43OMzs6et-jisA44acu&Xw_W(@TwUji^&7?j zWdZE960VVPrrGRL>J~QOmyvj^8?P4WN_Hvcyo9yX&RSL@>r|(JJAmZZJh7dJ8V97_ z`1K>)mg~Zb!Gp!K-_Dzmh(Q_0rE+8J5&r<~{ua_Vlkz{ib|c{vYtRiDPcS%X$OnzS{T>_guG=7gueb2h)#g!fm4C zME$b(E8|;zBjH`0{lfXu+#|Ul@srav#_AqE*0tSTk!SMI{{VOH;=VihW8#k!Yn~K` zOw#AsZmWe{?ZtWp=ZWk-9O=Jk@eS(v&OYE^O;l$ExJrzc$8F*n?&Z`>ahH&eo|WWY zG5E1z;L!HV7u&UYzDVMallfPh&+(te-x75X?7xP3XW3Bj_i_w?Jw8!AcWZ)ixy$DmW%-Sx9oCHygsfb^$yM=1XQ?D&-j z0;7@}a5={ng>$Vca32-T+<1-{%NCSUL*+VY<$*KkD+cROi|(l6xZB?pTJxD}o14UT z@-`MsR*8ox-CSLO2?n{@?)fBF8+EUi`>(}P{?^~XG-ye?d3YttgNo*Ek3TO;WcMY{ z%4(+aMry!Pz;b$2C+DSLWEm$FQJIwB8lFw9???DrhMWQ;4Y)}zS>-lej+OFaiPncOz_#X_xvlTOD3 zijrdzYiRa9PfGJI9>`^$#sS7;73ndv5C@>IG4Zpj>Y8MD$L|GZYXo|J9WA4T^T7U9 zSRe%LJt_ELPy_Pfp<}R|3{|!wbdNme1X9bfSDsB$Gq?qNR6b!TlhU9Ih;VmPFKeo%4H81kyf!Rq0QSf+-Ews+S9jYssEP0BCut6K*P#;BqPhIUjgbCQS3% zfGqChW~>XMensOInzFk$mIX{>F#h?u#QV@E^lZ z2F6=n)!~+L)pLQGt21g5=lfe(XyZS^i~z-P`o*7tWrWQ;tgM+NvjR;Vp?jSz-^b5{ z`X((jEjDdJMLSo?L5z<4*E@aj!^hgZPTm^u{{YzGJgZ6vPw8HBCa>Vn4Z}8~EtR9{ zt*{#LJxAjvspB0`X*zy1n8BH?90z+ak7Nz4&>i7i(d{ zXqqsEJ2UcsD%-pt6FgC9E$=lpv4i`OuG;Hi@n?ht1uRgPCkuo%2C=DluHwMO;msOr ziI{w)V{h=K?iur+JoxLux)+AD*=}`v=AQYwDLmKDF1EKW2y$`SzOl9al>Y!|e~DMW z+7jsUL?!5FZKLw9d+?|H6FcH1>LmUm)#0-Z)-?HzX?O=SKRIK2NR>cp)Q<8!yFlaW zEA~snpYTlo0Ee1t#NH;>C%Yhg%DYs4b?f%OvVZLN;K-0cqYJlB`RI4_{VO+!iW-6V zRbdvVa^Wm&=D1V+#NGU>({zuApA&UZqe}4Y&_?J?JAa-l_PW!;-V@SQZS)Tg+dzY+ z*ada=x<0vewksV!%THmne@e;Ymt$2x{BY3!0A`Pl8ry($-?Jh9DO+woD)k*V_9yY= z_-#{Hwt)8obAL+xTZh3OC6&U>`=t8Tzx*q^zb`V}g&viI#Y>^0!^Hf}(?4Q;F5d@P z*P27zM1&9LUa6q|$KMNK+HOR*qS=dp!y4qhp0gtw{iV zabLQczOV4|{yqA|oD=zZ=0sNgO?id?0L0IRIy7%x#CXoG;{aE8U;xSDLYm-~J*ulG+I?sqK zJUwA0?em0G91i6BSIYh?@t&jNtEQ2Oirjs~9+gkUo+!QXhM*^u`F5%Pu0Ftf))K~% zvV+sLa?I?7K2od3WL00gU!WH{XN3GO@Snr(vLN%2Nc&IB&U)9u(=<_XY5I?f^(n1l zu$t-QhA+7ucodje`fB6ieuZxd`y6G6?rV(Hekxtb9xXmW+qHNX+xM;m5m6h0M%~rJ zQklO!k3iJCWvgF4TIhg#3g;!%ru*#WjdLtt_m#-;q%oC3|yX<4}1ITFYtO zkEK)_yK`0-9qVOHBPTXHa~=mZrD>(y+IzF;fBsYR#wdex?p$jcS^6n%SF>4(5i*iT>ab)fNw#IDGEKiQ)ZHeILQPazhkvl^5?@(*$+d~BwbI&cMGUo$AjdiL`n5M z@n2o&8da{I-`Tz$wOC<~jj;e10=uhE4ch3MN!I*VbS>aN^3Obz*a1=L{wLBc;b*ge zTHBsekDcn9uzSNl;TpJWcGNX{g|~?Zu+4D3SN4pJ7MmIJvx6z`U4`AIvEt@QwHXbr zml52tf(Gn*)>gIS{{RH|V${Pm>~Sn3pvM^cR#BMLG&N!$*t%vzaz9_CdCs}0U0t(D zG3(HD09TRg-?TNpwQ|-T6w>9tlkTf*V5jk_x*vjmH~dF)D=O($t^U^|^r}q}%6BnK zpxVUWYr2gX_4%<>r}&BB%_sE2|FNQ+}?4~zf2&Uy=vF=(Y!e0tmLFQlFuKZ<# z8ro|Qh58Wlt_&~biul^|$J*E|CY{blt$E(3;tg9+-5cDJr>{M$lBH8sPDi7BX84n% zc#`dOp9tIe7Erg%CNaAmhZW*5*@j&0+{UJkFi+3TY(Nz;j@1c?s~Irq(vFLYy1Gn{ z)K=o$_5ccKo%dF}$aW}4p`2vmtwp0JLs!k#0KldjjyU3uaoAzf;fPhZtsx7@6<5v4 z>rVSd-rP~nE>h~-!g`98V}S9B%WJTBT6)j&(&ry3u4A`Bz@aCNN6Ng`V#*2R;+KBj zdea?^KQ&*56y;@$k_IaorwiVrTe1f<1&#HV4CbBoh{xToc+ZiLY3nh^HJBR)ecyQ0 zMrB&ZYm8KWeFl~`KGDw<(|4W?WBsF=VYwa679iR)fH_*7=&*MV7He%?CM4B@D-a~hv&3c!O(*F$&7 zSZzMj$4Zaw3Ezq=QMDw2{`snaA!D|)P124!)I#{9aZC#rF%tW_Rz&Cksph@&4?I?L z%aN1Pw27J1=&$l)_(g6=etPHpJ@ZEE=xd;UwUp&z(i3=I)WSn_rktLXb5YJQ!YB2k z8)?TobLml++Pu-s1%yRzSmK2PHLKxY4Qd`QxSHP4gh>Z1?b5PuZ7y`X*(@%;Qio_h zwJvED7~Ksx2A6QAV*;V?S+;1AXKSglzSgMmO654AKLoKrFd zNQfJdXaH=H%}0Vbr_S4P?OAVp$lE~A&`<`SnApPcQ0Kj8{kCV}A$Il(f5NS3_P3hu zs}7B3xVV{ufOzEeqy&a@j2_h=nzg^aQDFuyF+^TBjtEqAYLn0hpYvJb~UhrS2+J8R+ne*9Y8B+@Wb=vdYhkJ<_g-akm={o|4iT?$!x z*UYK=RD2(XQoq|N`Bi`TYp;XoS%0=ukM?Vu+Md0Sr@qYC$ZC8*#(5&XRd3q=0O1}u z)d&6a{{Yvjzwp@q00(0~KBj-~kN&+J>@+^c+Py_7+(r`uzA!(wufhc%y1sV*0Dyn> z>Z$#>z7CMYL%38=z(y0Fc!@@iszjDcqA6lPa_fOJi zw=PM}2&ytH%0REp@&5n?2k^0gzXfACP-4fumhIs9uD@BRuMc^ZGAX+ekkS*!Zg`v)XX*NB;d^Z?Ueelj}OAf8SJnYJG!}C+rJ-r+*!)IcAh_{p<0${{Y~jo-t#X z^!SE<-mKZb;Go_+X3yB682vu=c@{lR5wwI&|)$v z83LhFMnz0jhZKS)TpUmYTSznn{v7dAvXE&4;Na4*v>D|#+zyoFiBx);k+ZiRl@f+4 zMT0=+Jb{V;8R zV-%|y%>@;M5-G~3994-T0~i!3BaBc4QK?MT|S%PJKaMP%zTKw>%FqlwEZmt+eNxT+}18>1&=+_d@SX>`|-3N;XGG$ zXJkaFZDS5cqK+%jwC@Mp>PnXyjGtzJ{{Rn0uEXs5PLhJtO@KVO#_sjYQn{*$%2;?> z-Zo3kPmRCB+Pave`$z7y_;9141B$V zv+(4~iE(t_Ep7Tx9A>5=Z0qu&z8rH4iJC)J&3unBY&ecfN@%68(J{$hWy3V+; zYM&9V&8@rPzR4d_Jqhhs3^S3NsFvr;`cs=JLUm_13Zq^l{NbmDi6(A(_b>F<2CC-lwz$E zaZaO_=DX?}0o~v7teLM>*WRSIx!1S$=mcv=(kpBRCJu%Xpwy=Tc zT)&mK*QIhkBlwHq-w43s^5IO1K2#XoYvk`4{9o}uillo@AR8-F!2|CRT$qepDSSs& z3?!;-kEZ-x@n^#R6@kQ4EcYXYNclDM7Q68)#lAASFvQPmY#dwvm)hg*vM0&JvH0kbY!E0-yt6pBr8cw{|1>$dr$qKSs zFkakOm3YI(*Ec1~zCF7N@Y~ILS)^^!9M*h>r=)A%H8U0_OtJT`DAc?|B#cRFz`eWO zmJRb)IP)}(hB!1>4Qa3UNL-rAp5uN==~U;DAsJ?_YVT2zn`C_|`37#!sKXR~rl@Jw zTIY&2B+@iXSuZZsZqX&%5@Y^n7$K!$adD#TkAg(*iOoUmd-u`xBF+ked(uK z>H0mYY5GhlZ45&Skqjz~Vw}#*3o~tucj=n&e~OW2P`%|-kfimmj=mT8i^M)Rp5w+oBe^XI zd_@}Y1$xG{;}0oJE5HB&&2VNFRF#pY9}MrQ_4@pH7B_I4Bv?(b033nRxc>kje%0PP zy|+3mYLfks{{RFhZ{fIeUk=}Rnr4u?oPk_Msp31Co8>sK4$js+S1T(YOxXNMHqy&@ zu6*e_v2JUf)xIL!-Ala6?0wG_^N;qmz>JrZ9@IyvGh;9E)ba(-Z@BTK^8WzKPu8GM z7B}(Ae>(8ntysj^Q~J~+SHk6uXpnOr*LmY956c{<^Qs^4mP}U;`L7u|pKxdzt{1Is zV7cp3_>*_uYN-AqkT1&ISCYP}?B6XxCaWkMns#Ax)engnoHH6>@f)D|8oZQhC68J^ zvLHsfdQ+}76lLo`9?fOq*&;htuq$E@5JPpk zIfxmr0E1Id05xRlZi6WGpdOv8cwb4@H~pZdTvyIMG5B+Hr8C^=gUpG04z=kJYcrQn zWIR^%8nwHhDsml9tu)1BVxwfh=bD+D%WPt#$yVfWXac^@GNzm5?Q9x* zw$qiQmDRx8)_@`)Bx?H13XiTfygw*VBAt5?LZ5#8bWsT6!U;_ znrR|{4b8!+8*2_tMi{8ZDUt1W!Qy}%Fpb9|jx(BT4XuvCl|f#V0PX_vDTmXgE^|ss z;|Hw(AmCsQC=ZE?>^V=9gXDz4*!M#6_4lmOh|^G_@>#W|Ho z=9(l``9RG8BC_L(UBO4SM0S&ol+9stkHR^m*r(yO5ic@<$e8)y^U zMgc}mLP#eVsaS97Y9frM1E8Q|h6hSvAH*tbFPD>0wl@5<0MJ0>((cDPE#7My+<<;qZ9zql;Cu!$yZK0RZO?xQy-TU6vY5{?NX}Yy{az4 zo+jA54rnA-liH#j^`+nD91%!3XmxK)P3HxbTj}c$-$=;U~nlo2a23O6afmaG`~tuyxdTJPACDO9MO+jO!JB{ zjyli))S=i64wSeQ$^c$R%}5&*jDB6T(SR^1SPM$2CntPK^QSEN$ZneZ(Ay+e453x@?*yT0JArY{2;PiT3h+{k@P6JIIoQSm;$G$Jc{s-AAZli8Szn)_R2A9aNL5c$K_sCYz<0(4##CY zLVKTvn!kiK8&xw|smF2YR5ULTYI;4$1np!zdspb+i@pVGUK+dq07~^o;yC1Beiahmvvf83DQ~6xEBM`{ zCAOgwCZUcRF}24P^5?~G*`LRM4?p60qgyt$qf3&e0hWzH$IJz53h{ar>1mjkB zb5PuQk>E+w+OXo(UfIlNC`SZ$9@wjb>8?ImIa=JvxF%!5)J2YPO-QJx<{f=1Pb_`r z=h}r5WLF`$NV>Ij`Y(g;^+yt1{^|kVvvh{j;l5cfIu3)x%097E-q{;gei-nkof-2(I}YUZt(EZig&kG?&ynw5%@@N>D&xXd`l)7V-9tz~ z;8%~zV78h_n3hChqqZ?#G^^F_eZ4HF3H&s+CjQ0ngGaILR|CCSgF*0a(gmVF;aOLg z7NR9cSSUW#siWwZ_v+GHl86Udbnz8Cl~XChN1^WD0e%Gd8^=B^v|VdX^EC51`HC9~ zSB#4N6!`P|Gk(q93HW<|t!e%gj>KABo;3_<0jSqFf)e#Q9t{ zK5i@2{Av4Y{7?9a;kyqC_`~eUX9Qtf#-B8};BLu3%DD4PO>H?3M<>a!&Mt1p#=a-; zgb?Zy!=?SyISuMPE6;B1FD;}I$CLP1(@Usm7iea<+N{K$Kb2=(Xr3OvkbRzAxg9-g z(Zk~H6&db)ZfTcu)oz-yK3ck4m`)@dpGu(|lLo-!74#;f@a(LuC97{vyw{U!+A`_) zC(Zdwab0n%7I-qkN(VYT&^@VxBZJiRtqXA$-z@f_yuI1{t3x}KgPw-0MGJ-V2;!wx zk6|s>wM3KRB8@!yRAqjyI_2{ zzerP_IIIY|8mYmz@|Q}YaC+N4{Fc9bZ1 zsO29yr}l}k0hph})J;1K=0>cN(;ToE#W&2k;NX$;sVM0!???mphmTs^`+1QtPI#_1 z*52me{_Y~x)mrF!#Ib(r99EowM%NAeG_lCX?;5(E9oJdE)MBF^9M=q+Sus<}9K<>K zxam{*qz$RXSsoVFdh9fV!y2jTrjAhND}|8rns7-^0Mx(OI@El5ZBPEl))SqL`BfQ> z!=@SO(eA-uc&gV+JZcsG^-^gkiFh;`7fh^#;;We&SytXNmU_#$yK^62Yiq*shM(;& zHyHX>GoLEEG^bCVR!7xe4D9VR8vrh`=Cb4p_pc0GPk$rJ5BjlRFZh2^OU8^d@-Vos zuDlU$wwB!n+zRs}E_oiVGK6VUMwgT%ZzpINtX*3{8jNyV03RcuuEKB{W94<}iubRC z9|>gEuLh;6gB&B3&wA+gc09OLKP$XJ;oU>Qy0bG|v~jlsaK>|7-l?y&azCmr6ghE#qVU*ERE8*K@?XAtkqTuCKycE~~4|B)cq-uc^gv8j>-bPi~vT{sM`- z*z6%G+vVb@$rr=$+YN*bkM>6u&3J=Y(zNwWHW@MpUU{!S)%8mgYSCIrhdt|0YQxzc z!5aKCXUVd+Kq?oP;g!6GMYFdc*T~b&sToR{vcAxxHU4P6_p|Ox64;Drv%IZgJ32$WJL}S@AB2Wd8t1RVnBNbARxV z>CC?*U{@t^V%FFPD^*e~cf~GND;|Mu;s_EzVpR+}ab5O>;!EvHVG?0>^{=0UN#L{{RZXveb0zPGsa)FXEpOTum!1FNEwX&&}=3 zjmgd`QF>VR8{ZOG0z_&y*9WNTYjY-I0=b5foq=uzGkFd23Za|-0BM{q&~Oby=571@ zn#vN&Q12ZoAvC$k90~y36DG_xRvcxIBC~$fND9kV9(6G7h-A=aTaCegty;5P*D5+! zHwd|TKJQA@w_C{DaxON|2dvs9ybu-NgNpObVogD&J9B~46)mOovN-db7_F(VEij{S zCYHvLXC(t_awpBW=Ze{}(_Kz((;(Mlrd(Mcyr6+l>bit5w$xF!vvN8kRLTC$v|>MY zFe`35SW?&oj0}5MHg%{r@y04>_4LLUkSXduXqxK`G5pGdnt|Tk0S==zl-lsm-4&T} zsQK@Zyb2PKb3or0kjK)jeY!X4T!#MuTC*L*ON!bsIp2}Lb${eWNc68V)Gl6mi8a5d zT?rS8<;w!~Mnj=SBy6eoF5))SsACE8@m0#4jPNPkEJW%$)OcoWRI*9)VR-_UHd4W< zps^f^BF1{t0<@eUsps6^H)??!%jwpn1Z8#k8n(2Eog5KaYCO}2>s>vJOB5iH%>Z_` zH}XVP9C2METrA;QI^iLacLK(`Jv8};3(~U#RhKR|>52fpFo~gT!#P|ZO1SoEWA&p!fZm_ZXQ)1i3-qib*4xc>$Wknpo`HS~z!rVCERftqFg-W>%niuAPDZSLYaD%l{ zf@_qUbDj@s*^(6wR0_{!Q8)*+0B#8z$lPkXe9`(;sL{xZndwcGq7AEAfl3I(u5x-- zgnuU(&15wGN#ng}Lvb4}bIkx<$#Jnq6=`k0PEBU5(1(tqohGEAI6TkMlKm>$UxGevFAY0JN6nqQL7> zrL>GNIK^0oMk+S1T9`;tvC}jGL9Ksxp7kA!N6pG`MQqCHvv;7ZTU&&N>7APkL7~tV z9#>9HQXvRCs?uFR!{n+rEOrytfELQM~fV!#ojIm5iAm z*yJO3aZ-7XN0*LjXyuTfn}JMRNJ-C1=c!)C)acwIgUsQ%#aFw5qFe#RY+IFHgNm!E zl#M|ZgmE`CbgYHbj$qonVy{V(02R(#Tr?qn!7U-8H&CSo3SDbnD2GF{Y<}Q8%z6%?ZyojC>3@Qzj6rCi#5ongUF!GpNK9OAsG+{p3uafqu1{vptDT0T zhf;|Ao3{3@+rbc9!ENO{AV1Q$y%ShiA8d)ZV!b0u*7Sslrj!WSRx^`|B z7WPci5TFY1!*^+@YsI5)mv>s^d}ZVNtw#9i_D)jSPB`yfhk^V!lUt^tIr+1|sHZ`} zbI7Wa*&^S>CtF=HHZWXzSBF93$u0g}+k)58{vgod)*=?toMO1h{u5}-q`RD-O4AEo zkJ=)ERdoxQ}Y_#(>@&BPh`?uF%COb-525Y-u4dIUs}?5%3QBgHHWFqu-NZ{ zrU?}?-yp#RS9ceHw8c%bxh9-G9_gdzG7>#2=Vw|AW7Ve#rK!jbPTTH+D%4u63C8c% zx}osfOq1tHSXGqxai({XhAS^`Pr0Wo&UH1o6>*x>v(_Md<+g!a@c0KzN8OTZ%DjEI zLe!vw*p){Fk@{88rB1B5P~|B`Jk4x+wVtzW&&~?trFf5yOg9?2onPe@PTyB?4&@|f zv9(FsU}Ze}SGj@6{gnCcd033k+Cz}+{s{a&xcHgzBTDev{{Y9lvmuoB*c;~j>-J0I z=feL018DvavC*yVQXR1@YO(ySh3HLuN&6IN_Buq@-ZH!kz9tC~$4$NK?T-+6me0hR z%$J(4?-lsNa-->9#ah1gjyOl$KRJ)W9cx$AoOpW4yp7v;75PA~rM?_|FuM3@q}{z`#u=;@yA!Rh>%1r%d_hP54EnKCw2p zt>*6H;OCx|>{@=GZ=?l+(GnyBqH$IyR8?0WC>=3buPc?yK5^QjH4AVy4x;<^Ms|vl zT|lq^9Gd4;oNsEdqjGK(?m?h#ByROIk~+pWx5_%zVdTda={UuFP5VH6ewR<0PX_oh zf8PO#?hyUo_7~sQvXrl)G>X$x+5RZ}c<|?ets36e;cjo+gpChRt$YjPPmKOD@x8%I zyQYTRbdEk2ytfxRgv~X>G?FpSSmc`3j?y?I&Ia#ls9?FZW`5uKOy4f@00Tk%zTv#d zSnc$#hr`gS>M+SRN}&d;dEk7600^gPw?S@|bMoYLu7yT1*%Qv$`vLH8#na8<8+#^w zk?dXvwRW0@uCh7E$rba*!AINS@K=&mai4niX&*8WKK3ifuT$SG(={f)E;`^;5T7!$ zkQZ&W!~9h7?We<^3Qee-HRPWqyj|Fy6S39X|SNRc-OcE58qc zQr1B#w%Cw6oRWIg=-h1_)(n>;_3A`3gq#^{+Uzyjz9AJc_f*Ze%}7 z#-#*qs#yJ3@Rx|}yj7zm^|>2}6>j%@aWEC|{{X?CAHIiq7M*iH?p)xh=qv5Zi-o+k zS>ZWX9jnB|(B*m^ad$->5SD?|w?b=Lcfy3OUrchZBz-VzP|gbho|Viy5)-uG^q>@D z_qtV0!P@}SB_31oC<_`&!10=0>^K#h6Q8|So@}QS1&M^CIBwMSkq=tU+(9g9eE$HK z6a|e80)A6TD*S*{7V<_LCZ=}<#yJ!Pi4j)-bfNRW6vuYQ0~Hc81l>qwo!I$Lr9Rvb zF-vx;o?|s$lMve($6-u44>b6v<0y1{BV!wbB*TH}n)s_x)FimL^O=j1c+YC|e;6*c z;k4p3*Bc5)@qg;4&TWAvMUT>A`E6n58?{@u~H)Hg#P4MrB zd`06+F=RtS0Q{@oJQ46eMbq1Szv&bA2D)KOn8I}rmb9M^_^-qqT3fVZzgO2JeQbBf90TPxY5eS`4V#6BYNwyh-3F=$~K{{UxqrGAQhFz|kd z;XOTkU*h(SuV>GatbxCFUBW@2t#c@|YBk^~N zNVSj6nL~W3(R1~#{{Ttw1Zx6K;(P4KIr}>HC)SIX?uW#m9(bSPR;ytxj51xrV*r5$ zGNQOkj{$g!-pB2_#x0}jx!{af)7l-5wf1$e@TQWs@wfc6JR0qx_$e;6Gr={d6L{nKJo%<=r0HU&-&+zBZFP|m8eTQWH;IO zbsm-U)|22r4|sV4=~{di%^KlIL7&dLAGSVH+Z=JzwQWle{Kj*x`V7%@eILWxbb4-) zZ5^~R3~fP=&a?n`Z;`W}-jtD{5|FqnT7m#TDmr>sqM(wrPFC(`S=hD3%Ejty*!0UK zhTUUvj0)sDJz%eJXK{_S+0CfO68!uHt1>ncNa7zTsHD_{eD2x>dA6Y6B< z7k($yrTfo{%=>l3%ek1-MX4tk%~}?c1RF&qRK8O=&zRj!M#Qn((zRDlkeu|X(!gyc zt3^~fOdurad8clCU~yY5VUCSaizO+~T0OBo%+1RVwGnxM-B+czG2?OiRBaI>k&3lg zT!nb1EWbAfjjgb`r+GVh#YEfC;3>fEQD6#|%HwL+kPb5aSCh7{j0hWUC5iBz0}QmI^R z$4UYvh-De%cCRn-U=QLAF%LgIdTa}pJa(@w@d9JTdUR@XGg+EM^$8BtQm3U<6L0&% ztXvdW#@=|U3d-5%7@(3_TgzOEspgmc+KNeJ2R+3`LiLZWLtrC@+!eY~KgvcrRBX(6 zJ!&>{kEJ5)PsdY84|=Swam_b#ZQ_8j9n{}87mBr}+Rdq4C9SC3&&6lSwD98wy?f!Y z(6sqPw=%Ds{H{iM`ck-9^6!a$9PuB5ZnXPo*;y|aadpSaJJwat#h-^B5VRKeG0m%L z5vbe~0A%**UqF0e@Z7#N(V8LFgFaE=PW)p{6X;@>cx4f`D(+EfGDQ;U-obKk>e7rrf8Cg z*kraa1$|54@7O2Ca;n_w_lsh`FBk;U_T_st&yl=S;vW^<9HyZ14`crT*RBKYUN@5M zLP5z})2%FGSgmcNf+gSu8%8Ti zIiiSc0Ydv4=l1NsW{=4K01AJ>Idz+sNjy#BVQ<{5YDxZe^mm6pV9$h_Fhi-_TxxE; zcSukl$XDD_>e_T;_p*T1gLC687Te_#2K{PXRy9o?b>ZLH-{DV(O8)?6Xi<{A42OO{ zI`w-W3+Q@q5!=~A9^RNl82u}Qz4(=75Bz&^j+iyeU;JAlJ*kC%V_3A!c~S3+3~=-* z81?{Dq*)lm#u&-v&F}~GG7boE^uHutra*SbFz*1iZA6Q45gHN*DH6cNa{-yit7IW;SSXoDzK7I zwN*X^)#M&qM#KICRcM*>GtTGL6@iUG6+p;M{{RZ-rSKn# zm5WDfAs<8j6{KoG8QkS&lx!V^F`xhJ*-e9!SKTfgxZqSm@PNY)UYssQT4`d7aAnro=7MxC?CxtjxN zAH!N&CxvY-?GtQ4qyr>v>sIz3KPmCmzlMBF_z7hABm1>}KM8oUY$&mBm(*9?7W!lo zfghG*BDCW0%8&{_Us}u92iA{-f8kyDw(0z*gK5vc|5(ynyryr$zGwMY^=*ROc*PGr<(l2jmq*!1IpUR5k= zr{%9QdOIEKVxh_F(uD!I6dpJ|DFIdKKo)|mNzFdr$}P=jOLM#Brlf&r1Jkr*vVDlk z26(S%vG6Qca3s-0yIaz}YSXV)*^)+(pG;S_cyHo7_A0Q*<)amFGnwkqcqG|I8BtLM zeS!NN{4=rfM~`OIb&GVK*GY)Ff-*M}0`XrVuf$6`>jM&CK0cNDZTkbHdWM6qYw!#M zG%$~T2|vhG)AyZ>?tR(g8|Bcv6{}rFfg_IDqXQfa@n4n6@druxelPVIQDwc6+soU| z-PQLG?P=qs@K3?5PU$jaxMhYgJF|0&{487F8F<%F7I3kQ&m#5XitDRN-w6x*$FXXk z7gqlOP;FCPxNCq3+Y2@kf8aa{+R=VF>pIQKTlhc2HyWM5`A~%U2hjAdefV4Z9(XWW zMX30#Y2FX;=Y#E&P0?&&)8dG5kf1<69<)Ob+^I=)J_{ZI z{h+=gI?1nUN#V;E81iCWt+((s=^7{O)A0L2vlD8sHm`l$&mr5p>0eH2S3hP0YK$H_ z=BVjj9=g|W&XP4M~Khu^pu+i+Iv_7$*$R6BR(|!Z^c@~*z67DX? zuNA!>pP=|o%k5X2K2EH0UQ6O{je^N$8W0XZ`3UH>jb2n;G|yl0jqiuNJ8l;4RE%Sh zz^|7)LGjnZmQuZ*j)mDzUI4G1ylLW(6nLWjq||O?nV+JAfn7(#e}Z?uCAwSh5I2!x zpEsA?tDXqj;%lE3{vdd+L#KFR&GtXbxmS{W-RdP+ zrA+&O#XqzzlVxKywvA|!aezP-@m9Ixo2^q*lKH?MXFQH8jl9(^Zi4PS3aAH|GTc^b z?5iV2=Te&Kw>hZM#~saQqI}(O1y~Fh?zL#ClXGGQ0r=-+6mp59f6m1@ zW!yOxh4zY>E=UzTqUJYNNWj6S0tw=>g~%qQ67j*KlsSzeSQ>lEHsckZZbr-+g=Yk3 zG;)VAY)S#C_i>uc^Fw#188Wo_Lgs?V)HL!6pe`R66pbOqahjrwjUmQPDWXOLHAP8d zlTI@#ADCcJ1YWy4h2BY6!F@k^EV9B3mVb}XJ_GwHwggtuBpa2t{=jW zhm==r?ehxfnWPB%QODAp*aoYTOL18vK?y2x+N|1IPpMqRXK#Y?uu)W{$QA8>416i} zRQ}x5*KCY27(Kn|RGNf&m_ja6QAeWqYr~NEcFH(nTpVTF*1TupPNk;b>njbqb8pp$ zt$LS^d{i_|Fx%Rk+(>Qv`@9=<6?ojzWp;!iWDK~(PB z$u*@LMzQh1HIb;KlP4Tvy;+`OJ(t731H5J8Zwmha!e3%yOF{`nWAm_Hxb51!fwxBO z6r40{RQ?tEEAV>aZAaiWrLDMMGs>D3UZ2F?pIZ337C5Sl( z74!Uf##X+={j6>0xsOY^iZFI=&INpLZ@3`O6)^(xdh_`(ql)(**{05Q+N24wWf{+08`?J#u#@eU7~MS*R>81*Nb@EF4x zGRnmIobx~*q&g;-@UL1D4F<-_R$dOo8T^fW1@RkCO((~CzMC9t62mVFg9-rvfGgZT zWytRbinWilMIuAwDNV|D{53}7&e{{TP~0p#JqUX>_6FBKL?K}PoN zKoHzzlvmxq4E0Zf)_x4r?e#lrZ?{Ju?@Wu9E`96aT88WWU*6`XNDtFJ4_Nq9t7=0| z(W12bLkuX`y#AH*SH(>qOz_{wjR*TOHH1yEq*NGOla7?{*+ar@sO$HhD!)_qeK-|H zJtGey`KL7 z;Dw{Z9tuSkbK8MkzmNO^pAfYF01e)myt8OgzHZ|JsC;zO*5Bb}#hNm@z=|+EsxPs% zv_CVf$!J$KXK2MmW&uNv)hh9t>P8{}0XY%2F#Y7=Ez;eHhXbW)1A+b*|Dvr6PTr@NO%vCTM zj(^&ye2FuWT7`3sy{bZtstBy@6K-Z?{{Uy)GVba4nt<9)y+569nHz31Q37#>6s;3J zc^PX62y$CAM{Eim#MY<@j8c?{50`^ak|vzY#rrlhT^N6u=a6M6F6tSti4hdH1T)Y09tiv8^@80craK9M+tX9;Q=T zY#_%=93-(WD@?FKj?;^* zlX_I6R(x|=fuZ(jm!gVKv*(}{o&Biipr)Ntb?7J#LsUThcoeDtY&fi6?K^_pij?Ya z{oK}u4kpV)GyAS7!X7?)#s1QibQGW3GB;YJ%jGrN9jAgRRs@r+Vx2+yEg-y{bgB+h zU&?THfyGH04ck}@Rx!Vypghw)*>FcDf_YAq#~&Rkq>89=wTN!##zE$lZf-IO9My9N zA+(BflU9Uz<28iWGm*y?2)dn5Q%5klP4ct^+#YJ4bK<;C31)|c&)gMmRl%;^emBNX*f4tMih$-lV9dSaRO z`P;1l?9Q(dFzJe@VhY&?x&Hv|35OLMT}<8aM>u;kr(K|SrCp%*u25V}(=_k2P3uia ze5X=cBKQXs-MhHWbL;kkM%>kxTd00~)8-CSU&|r%?=XjDc1cQC{58Un3@1^1hU-6K8nf3O>^l zuPusro+e$Z&1O+u-*a#?^r&&irCkpi4i^<&*q>oQ5pDTs18)YW1O>(_FgFgA`9O9H zClwJ=gd9}ySN+-m+#0O%1NTm9?T(SD>r)8qque{UVP3hT_zzFhAs07o_KT11_7#;%f>Au@ zMDVt&t+(!z%8UEW#d?OB;e882LBIFcJ=pfGm73z{uAg9|a`Clz#dms7g>?Ns-|bqf zeWL0A0E4iuXIR&e;_Nh=oo+xalgfm3VmnuJ29=|De+_Ot`N-;dt($8*i=10&=pcyk z#dLPM1+JebnR>z44yL)>u56-_&cmi^daEnQe5i=yj0))NG`lS_H_rwt* zn|pJTI9;Rp3iST~hra=SA$&`CE@uZ!(j5HKzfwJgV`3TQ6Zni=zt}YB+IgJqM2v1@ z_zL&mhTpQsjXZNC8mEk0>3U-jL|DYEwf67BU)l4(KMkRZdpktBy#wZ+U>URRUfh?F z+lC+x1_lNz)1iXydDSsi*z>Oid?xT$!@D%L&}<`)MFaPw10#MWyQ!{HEN^fRrDbY5 zkeRSPQ|nkQaq4$htxl4O!#a*zn^zi$V#M?vE1$U3Ci|<#YJ=QNScv}Us2|UD=jE=m zpOBrWlau#}?NCP@#mCI}RbRrYUh6tmiDuWA(=2GC?=^hm zk8;d&nLnj=x`pPE;cI0xDzw<-dRHytKZp=%kbRR!V4(&xUpx4Z#n)Q2#ig4#>U}Gk z6tAq#hgB^idMAngCe3=yZ*Klt4w$bM)%;a+w25WSar&mN6Wttc|7VZO-=@W*x9AMNAJ6(ELB*PaEp7>3$uwd#PCC3O-TwHTnzi zfA&$)d^lj%{B?~-QQ?FG{ak0z`q$H+4}KPSN8zTHEHpc15@2qSfxXYxyVO|FGu(dc zFF{?HdJW3ya!Yam z>rNMk6?Q7;N^aR!p=*}glhV2GwgcXfUjG0KbfUp?aNIE&98?c<>N%{oy8vUQQ+uW( z3q^wF+TW-Yzik9pG4{Yd^+wl-IUG|N)h+JR)}Qv{kG))<_Jn7E)eCAE=|CO5zN8m| z*fni61DuA*uR1rG`@L#N^%fj-G#Q?iZ>xE70$;Cci&(I=xs9#_YIhFZYlKVe5KD7b zX4Yj$%EWU(9L&gqMqfjU&VC-Jo^A3I>s86iaatLZU`R9RPCW)sN{J61lpjj49B@W^ zR9i<;QjUi;7~>w4z%maMZMONvKw15>jBZ>f>dFQoDJ0ZaDQ6>~-q(w;%4**aFQ=eLTj1Fo?gmhj9 zrAAb)1pp>FrxqiDPDCB)!~$?Rpa{VPZRt%Bl73#5Fh#~GnJf3YRPun&YCdk%gl_Lk z^9~1UIY5)3`Gqy3+&)^DmO)XHR{&K2%oH0t<2mV0&Nv+@I&(k`#XmS06q|F5Q?R`a04a@t-An))nTZRu)I5Px za1g714Ivo7YELn}Di&h>X9wT~8Ixq$Wh%8l{dlBVaZ9Cpq#S%ZSv?2*3RGE zBoCk!($C_*3D}bx-Nrn>ezei?gTZ#hK_%p1`sby2RU=AgT{@D6$A#bgB%9*qr)}`| zOBGo>)JD5yZRB#3Y?G@>M9sQs@ z8R1PquB@hl;zt=6W%B{)`Bg87{{XZet??qtPY=m^7MrIC@iZ%s-)H;8^Y{w#tI>4+ z25%fnm&A|4{X*Ma_Cwu?yDlq;Serouh*UWcxD zU&9)jPiJspxf_lEPyk=TzD)7oz`1Q6T}Q(10)w9`AIg;{39WQB=W*E{`|%t0bNEy7 zk|{Os0o=!-YLbSKtYmp|KVP~rjQdyTcaQ!Qc<B<3k`CBv^&sxz=Q1eAN#z_49it$&R z{uR3vf@p&+b{;DDUM=LB`@{0)6*=(@-^aKL{Fz^{OQ6YH09>k!#M*fN}FwSI+JL2;qO4ea*;V=4*7XHJY|60tby zke@sb1I1qhG;J<5HVo1@>;`dPV|*9=jQkO)cpLkBT-Gjp`^019E*EDN=2l)k&?bZ% zf*)=@J6E-MYvbOBp;!qnZj3Mtjf!)|Ju8a4pXPn zJY%Sfl(n1YLxEMkCfh4nMR<#on&s>+gnEidS0^A>Z{z7a?+%Av*sjWF#^!65=g+Az z1PZg}g{<$ocV?vCcqbUIO&=m`!z4$SsHbEHa#bMcP>%HhW5SbAXlp?vCzioJmFONH zdnjTea0oTzq~QGBs%Wq7t;pEiev|?9J-ix3i@rUJ^{Gv!iobtleEizI>kv$YeJN$s zZ>NjP^BREUK7kTxX@rhM3+!qywrMuxoy+;x&c1c@U;!gk!sg+Z=5xgX$bAAeogerL zgXvg$mZPUj_n9lkh1~eUzu`<0+&}SRfaE@R#+dpF^R4ZSZmU`O0Np_OPfD@Yw98y9F`&oNx)}Ur zW{OMTW6;-$I{Lw0r_;={r~@1z3t*pjV)HZ^`=u zGLM+op2*t{*63@|G!%?!<rC{BJrM;wQ9W)v0cr#wRsng{57cfYgxI|aDQ_vFXAgp z!Fqh}5t`w@1MOagC3u`nS#Pynwrjqw@Z*0lCz z7YK}JilWexye%-kM}9CegsHVvGu+*h#@W3R(1M$}Ew#OHM`g z&uXqpA^BQYeCPu-7NVh1wH80xG zk6}O>)|RnG_+T?uq73f#sWlD;ctW;U$(dlzqNrimkwgrRSz|APh0=ii&SN&-snwe3IaYfaONb)HeTxtTR6{2Qi$qd~wQ-$LKh@#)njw)684N!-ydz(Eevcd-o zSK?$pdYsXzAFLVRy@{kXD%cliU6Uwb?H@+!C_XOC1OgRDxa3afGUs^NX?$S3Rtp0IHX9= z-_PM)7MEiqsN6c#nV6`|Bn4NcZY|8a0N6r z*lPNe>XwiaJ#k)zr`TNS%wxP8TDI&wNo%HpBSp`k6_-AtE~j$y6R~|MDu#ouCXYK* zb5x~#fC=KRTtr^qDb!X2MR6w|!YflVU(JnEZtj(xb$90CHR)O2ME+*MnzAfeKJlOn zw&X;(-BQlu$s`)dcx2zfq+>K=WBj6o1&cWgON?}_3Bs~&UJX&SU85=9t~+FHrhteQ z2muvZ<=4yGv=dUx_f%C0!B9%ofnGDUNCNzdfV<8^q^5R z;~=i##agsK=}JXq#VaDJ)0*I0ktpJTvFK6{Hr==SSDjtk#?#~8r5+%Vl9}R?E2w0{ zzgo;>4{y`U9V%3l?BE9NOrGzs7!{p0$f`^Y@u=lE<22!YA`g}8mJ^ad?NSML1DbIY zI^n9hUU{b-MO!_qj#-#}(~4)>B_|5iYjO`u(5*kVFQSAt0k3g?1?l#-YCr_zt$5GF zmrJ`d)^7v}nSIR`Wt(ZJFrbPgaqC#4({kp~#U5)r= zp0^e^0e^T9XV$Uyj5$i5@Plb`#?qMA0Cudj@b;B!xU549UC;LBi(?0r^RD7LS3CW& zqp)-4u01L950MPDv(ro?d<&1ILe_RKnA#QD>?(M*jSZ7;n!I+Zt>Qfm950xo6t2UO z8!4daO=91>+A;kr=AB~hJ8Rh^jNwtR0Q9eX*1jNUP*^pxFyA8WP(GFNMfJ-`dnCKE zGHEFn%5;ZO=jEthP~6z*T&R595YLOJO{Kq(~ zz?*u5h2T(Q#DYQ6qGG^fZ%SV=v4hg8Aa@#Hh$GXX`G#vdRPh{IrefQHT%6OZFP1o} z(G(5qQh?jFWD}~bdVQFaVr}V)@~u5XPQP0AEjmcVN}cgm#)l^22qE%S%dQ@BY zOTglQ9~SB48~O^+j^8bX;-yg@+^FqMhnL4n0GdlS{u9MDY?LYUDchVJXQd&1g@)7PaSW;a`(s@Zh5=(;PV5f$d@&++iQ4~PAT(v5^YK(ExfHEhYqQE>F z$eE0RiykWJV{thh1y;L>QA|UVKosnvS0oDPA=CHZlfbNt2#R*abYfT70H6zz!m+Lf zIH;Z|%Vg3-;B_?O!JCQziS47rpC+|A{o08j;si-^@W4s%&6W@S9^O+^YzaQV&vt(B0&fLD<~5&eaufG&DfXcU*& z#-+KqVx;t{Hjc&j16i6I45e_m;-!udPilwG<6*@v9Y$2p1KAYy7{xsmdR1u{knC&3qhx8s;}|0qpQ;VyD$+@)TBsv%qz;!6?;Wc;QFkhKwuN-JR6)9%bL6PV z6s3ppb5v&_{nK8TLx{6%Ks)hQ9}H@YGATf(wMZO&&}zsh3W~h*OXjdS=qeSA0CH*^ zpSlfbwjr0Yvht^sP^?V1C>xrGJ8%U|w;Lr;4RhD{O{pt1ZE6Z#kRF(-NfNm@?OHdO zbXFs^X8`Hf+O+jXFLdE}0->_`<_c?Q zF*J2nmir>gj-r*KkQ^m!!wB+JdeQb)N8n^o$VMs|5%6+xR=(FT917G(GUFf$o>(IT zg{wk2tJ|5<-JB8#9jnJ|JWF?>_=)vkS)E$FqgQ~NLJ;8BkKNb_WMH@lJ?nfv<`oZ3 z@h`;9TgLi-mvZ}%pj>?`#u_iONxN)#T{Eih6oI)_r-fh!#l$+k>tt3Vb z9Xvs$f{Tje%qrTIhlYo~b@PQov2j(` z-_1OQ<{**N>0dBvpBQhizAMS4>IAKfauh+^t$i(YvCR@(TVSEATla2Nub~P~SnY0< z$6!t>B02Olp*h@o3OR%YSRM{mriKYit7iy1Q$r2v7rkWoms^9v{vEv4u9zyp8DXDl zeBsD^)%!;LW1GVEN5cLelr8PxJKP_dHU62e&zK^X;%2y=i^%6Bo}`-F@g}o%;=d7I zYqzdmONk3}*me~RdsRY_itEGDwyfr^`WG$HU>Q8|`Bf<{q>@dsE?DpYr^_qc6oL`+ zbj5pbg!~<0qiN$=)|44rl~dZfXIGTM2;p>}hq}hC3SCY6q?5Oxu88<6OVSFUkVz`y ztoVb+g=Kgw50x75FJJ_$|vYY!M5`Bf?RDt02S)agmkHG#(5&24Xe9zS4j~KnCU>SL?g+`=|VJltvxqE z@eaQ##iZFual59$$MUa6)4l=xM77s|Qs0GvlobFLxH?UaY4$6yrGe8>24Ap2&;0YKqNx2{o)y;$s|xk;Ox?SmUKx zfs6~l`Q{^gv!^3b&vU%<`p8`7C365=a7J!X>H_UrJytfg-$zEf^IQc`~Luk6uxSwT1*Mr zWA`GFg)OfMB*H9-#J&lssDDmqg@X`97$#Y+nzO{DQy zakfWVvlOI_r1YvlYKKL2Ue#v#{{Ych3BV$k{j{I09)votP3v;>t_uwn&uZJHDH25KHd&F^X zxtQ)<{DrS$)F;xc?3z0>xFGGouXcwlVsgDt%`4q9Z5vZC?m5#3V;qP z(X=fZ2rglTd6CaG!dmLbPCJLnoK=k{;^&4eFT``szi0;lS9KYqjrII(HT2o+Hh%mkLePHyt)`-KZPrftwW{|vC4dB`0XSQCx<*ME+!u= zlPUYY%kN(u++N&VyG?Z?ODmj~W0GnUmtyXBGjdHxBgf2oSD!gt=!8ge&FxASG#MwF zt8;jXkhPWOJij(@DRLHRU0#USY<+9lzi0md4?l=}S~ZE7CAN}0#w>89yARU7cb6sh zSK7Y@yaBK3o*Mqo(W7NI*l8pj3{<$-4^H@(x|@ZE9iX_!rE1m=E4+J{{VLeoj9$zLrFikG4(y=|94~Als@PypKw%@uI#njCZb;Nawj4EHI$Q_k)eKqizA30EKsUtc&egBl#1pUWk;gbx~@orod!l^LkeetN4cQ?Z^je)?Ako z+#j8)5p2)%ec@d4k*cInGd$9K=N|PuXkEA&tvIY=U!3vvt{27s02BNf;Cpv#+oUrA z{;wk@vvNj?2WR$YWgcJ&>6)!|eWPh9=ikndulr;HUjz8-_O8}-C2L;`qSzq*Bg=jj z^6!ZLBKWh!mj-QDQzbLVP73>Y+-6Nj02JZ zH2GLvAEFvZ?Qshfj`qwC!o5#N{iQr7e}%eH89syx{GmA~a~_`6B1+M)Y>&WGw1VjU zw9))^;XQs3)_0MHJ-1f(+0td*Zg+m7zZ3ND6zh6i!b=;6h_9iqpgb4*M|i73Wlch3 zG-HlUHCjkqk!R@>+sn}LQEn(UlZx^02ma7L6!9D}!*?pfGkWn}y%@B=gk4z5Bu43q z>V;z$O(G5Feg!a$aZZvsA;HHL3gEakzd4Zb2YO?i@G4oE>kRjI-916E;TQ0Aeshmaeb)ng&uv>H`lz53Jv(HMey)*wt|*}&$N8Cg!_ip!ez zIGEblGH9{vbG_;AKg33jC_WKKxY|y*b$!+(!d#eN*Aj*+0a0 zkw-s?uZ6C8*f7T)mGl>fKWD#&-W^!p=HKmduTv*New7^NhvyxShWt~lxBN@&rI*kM z^Ip~9Z`rrvPOo_#?xh&h;27nyynQS5KGrV{=&-ChU7R-If4IA8C-G!h%x8hdGg&#X zel6IU5%6}8iOCtQ<_^ISH z_fJx{xUjH@T3MpRi_uj;sAkr!6ytzLUV^-wUu!omOe2HP;}uNlTCLNN!L!`b$b}HH}VURo#d_^_3vhrbD#1=U+-e z@UjhnF&Q4!w;#i66$&so_NC1b|b;9$ow?CmA>ccPH%+Tli(PR54C=TzlXHdhugK4Gz0EI6se>Bml#eMR0yJb0Wsrgd|m7^#xA_mXBPqvVKTg><+eh}SG zzFn=MbN=mJ)BgZwy;Av%*J>eOPHXRFpG|>t9APPquh>F9Y!Aw#or~Bbq?_@;+u`YfncuvuG&wCPq?kahoa=naC9JBqNG+4lS z*BgJ&rF1ZS67b9_Lqe_f1NYueI!^mBu8l*#Sy%%9hYHFbzL^k8t}H zJ{fpM9=1q-3PJGq!LfYFVHp1afUSOiYG1b=m>2y8A9uZRx`*w{e>8qowXp~4YgI}_ zb3pwrZv}Wgdf31Z`-@a=JQ?uT2&TWh)2%>-31ZQp82qtcl=ok@XNrsPK8gviCisW@ zR{TNN^tRHWyYj7XzDX4b&*#>(_h_e~ z3OM7nZtH)u*TPHhIU|BQNe>I<$+s2xN2Pwzo<7qwcr@z^i6B&55>Hy8bMe>W7NSc& zrs#c|xAt|6-07cwYd^C;fsnJ>>k9{$!vf;GgI@Skr+951NcAW#1bseX(!N5M;(v}L zcWL!WUw3WQ&(GpbZv2^UZ)9!VK{eS;PpQp1aOiu@_OWFI#yKPhZ})4J)I3wCylo1P zm!){y%{xAKHfacwVV&5;beO0kpYi91?X_aF*&U?);a(SY@aFNu7#J@+SJ3Yqjl*Y( zk6^~uUIk+Cu{ZXbA2qMTElx(uNHb4gg}0^gB$%(HHpIAKqLxKj2H>C?uc|~nq2Lkx zC|(S+9M+V73vF11cO(k-wS#vgfm3brmy#-88Y1?L@#sDpX^@?ymaS+!1E#>+los}{ zMI^Iij+EAvvDzy|LL%olIXpXU0Nro$SM87NA>riE{tq;ayk6b3x%I%W$D6!D(dWK@ zm455~%vwWee+M*3Wb1OCchEoo0IIO|YA-=K4gIM!Z6{IqDXISeXf9S8h@_94eB&#D z_!|6`u+r`AFKp(wQX6>b_5T3tSLt`{iQ*K4;q8ZpV0<;z;CJWv5l{6ZzE}7c@aEse z`rF>>BXymY2pu>70Gw6MXr4pu&xe=Ra_Dxb@N8s^0)25@*Nbna7pxF~hxM+{Q=d%H zZDWoCmf=PK^cCY8--^5~=8r!07>=XTm$VK*(_o)gyi{gBQl3qFoHv?(hxDz`sNIg$ z@{XtRm%`p2iH(fn;jzG8mE+p~0PQ1rc?q_#wJW>$swZ7rLr73P%i<2Rt@w*k5s7wL zj>5d!{wpg8LAjVH1Dv)i=KWLRkBP4L;_af(Z%Xn#Z^hd7r86w|vN-4~ic`7Pp=0Vh z&k^`{N4WmbmSmG>AZEDF68_YekfE~E9K{lh4ZK&$n$7*(36_wv5!}}SaWu0JHb%+x z?OA)n_fJ9bU&Osv#8;1TEY9aS1fE5C#M-69Zo_hW^{nUPfmPnNjo1!(UCG>XO;usH zzcoMJ>BcG+IL_+UFe8|lW6I?7Oa%7nQD-$OWR5FUVr*GVG0XO<((u_7(r|OyoER0! z?L%Tna>#M>aZdAs;0lE7m%a@_k1XM-3A0c+KX!$Y#~G@rAr!BZ$P@^=CfYD5%Wy|i zS%JtnsgS8W&<2uBSQ9{>9R+8-#A*t!6-}>WKyqs{TN|HfqtE{UYPm<$zq`d!lTn=X zIi+yrJ2%uLL6Uk^DLg?E3@$5%Yq?kw#-T-aJFsdwi{wXNCx{sEoEobpw=w(XuoBu{ z;+y2U^`*?m%8iE9WpR*csdFO_nX5G;YLxCwVv7jafHKGzO0wu=Ft9nWfdzqd7TUBi#M zDW7VEzEZfW0<@BzjZpc73|5g5F$Ww}s}y8mR8R(5%h%~m^G-RfCbCiYYP6Q27ODnj z--MZr(hpHyfa+5jt^>luW#cLIuSB?Rg1PD%K&X)f& zYPoq1DI(d^_#;4@#9G8)Df=uZG9K9-tLdw&s|`BEntUWS>&M|)9u&~+{4=5@iZAaN zZgXBk@jJx-0BxCcYXYu~jbT4tejrC8|;FWH%pI~;PnR_E-od2gwFI=RtgkSoJ8{Jrqt zQ*Xa!j|^RE&wFtzg^}6FJOh(i^#jm;7kK{T;!lIM9Z1`VWI)ld1C9r3{QJ?1TYN-? ziNi;Iw>|#-ev)`w!@d~s7l&rB(wX;_WV!@FCA81jl&=k!hI zMm<5zOiCn1s~~*2rYexU({e>n58O84>$>AST6d)B?<&xIPi!s7j6x^*321mp3nNc?y3 zX48>jZ=a%{>0VqvWoy-ZO{$PbUMosJ*-FWZm(?UI-xLApw*LSbz8mP0gJB#{A;%Hz zAIiQa_^smGUm1Ks)b+b0#k9p1FZWeI{+0Dg{>i=*kw1H=%Foya=~}iwvZsSaA)fL= z%j$Wc4}yAeMS35_UkPbm3-P7ThqQV8=wMak_BhTf&&L9(GI>Z&SDe=8gS;2w4~RP2 zXxc0!s}LoZ_+wMvx%+_I2wp4n3&6f9_;K*Z;cOa&Qpfh6C_JG**3BnjN^FyR#CMtx zz<-4=r0ML2_E@~IJG_m?#jlFq8`nM;!=l=;mg0XXkO}#A*4KpoD(I7Z9k|kOu^iA_JZb?v z`c_tq1BI0D&l320;pQa9O2}PGeP ztjHNS7_C663Y?QxQGQICtAeKntf3ot=71(gF}KOmrpR;82C5D@=~C`zz#S+8QiD8E z5Ql6JX02h z-?l`(ABt7f;{zG0M@$&~*{4IKhUQlk28H{Y z5RFYq;8TvF^r7sbLIPk_mC})yITQtv40k2@0<2|^BA*qfl78?tE&v%dp*Ab+W$jB+ zk_|>Nn#?RcWXRfkQVDvBgts^ysT1WnHC(~US?(&s2+};~nxp27U{!fs;*MbDC3!~E zip9B+yBvy|VoLC9G`Y?yjRXqA2Bbiw(71d9Q<&9PiU5mhsllWOq~KHWyX6%k$FhJT zXq9?Xwu~Mr&DW(UZZXn@ z$j7At%u4YAz%>~GahiAsf@$xAz^BSc(9w1sDTIeO98-h`0ja)QuM66aP$S1|)Apzw zo@qi8)KZ8^Jn>Y8U=NSIOgQbu0x&quN+Zu+YLg2Qk1nJ=0S265=oI3HQyXn+vTip# zidGBjO(O?5;+G7=r2%rpYK3~$n7pmrn$BIo)r2T|(zqmO$>i53DtBCei)hLCW)EdW<#1w}KBj*oO?L(A>?Xq_YjbSH~ zQ!M`gHrk~n=-y)#dqJp*=;P^6+{cPUW^wYGczws^9E!Cd7#a6>#cD#X06w&+q{cX_ zs(*K$n`!eB(IX~Tif^&zsL6h*z^6xW^N=G<(&iP5WDqk>R@>5rSHTW2MKCrpfOAio z2Prm7;Pk~dL|g)#8j>q%U4Bu;HfSCWv~wYHkl}#IIrS9bG7*3=RY_?GiX|+42U_p^ zIq>&X)s<$v{{Tg{>T}l>E~-GFaM9ad-Z+NNHkpt2M-}P17sGhcA%Egln(B1TGf&ZB`A|)C;~TNkx?3$K?ZBSokgeEPJE~tPlWn8v+Itn!VZ(H0$0oWP zEgCRI#nH<9@l(jqSRg35_03()I^<6tmQY~=B zM?h;|!afG^{{Y2H@%jGHyTBq7_Y>=1Vd)xf zm!w&(j+bhd(8M;XpbEd2dg`TxY~-nkOJnD6g@3Z=gZv=TY8vcos^9JFAEH31G3G05ZPtm8OryoZYP>EWXj&Z%9qPVV$ZKX=l(`L!~@ zlT@d>4e}_eZbYATYo!?pCCWL?RcA6CiNK}u5;fm&*jn>H6#P^0_lLLI+PJy79Boe2 z-r~G(#s2^ng}!ZcBoDNG^U!@OzOOh`dLv>vyw%XQ~3#PqID#h(!^?cw_-mQ_)B-P7`}3TmZSc^&ecDXT>t zo$dC6;mcO?f|=BC1}o?P02KT{zPg;G(s^+XfOM`$Sn*`nDI|<{d)JNYTJdDY{E=Po zgkZEe?I~*`tknEUC1%W(!`^E@duvxAHTy_%4N_^(LTKg=LrUuX?iXn7Sq%9&bHzjF z2+1VzSywli{nTUTJp~p5<;B!daKANL@ZW_zQ{$acbk7djJYZoR9z&`Tqd% zm-eC5E)BmvI;g z#ySf2Pk3GL#v3Q6VP2!~yIxNZ>Jz-U2_lYtFS zaA`c!xjCt(ZM*?gGTHW^IZG>W!mURuAHBe=z5M;!hH2zM!Jva~c%c9`aB8%17Y7_y zK5pbE<~gnHJ>O_!$TR^e+0E2;r<-=*5n73G0^kZ@nDscI%&Q%%4k|Nd!Mb9!eAF1` zrD@Zk{#Bq9R@lb5UiBZ@pFGxqmNpplr1MY=3ORs*t%+KJElYf?aaVlB&jyf4zO-`z zoh6pW>rpfSVzk){H8qe7RdWHJRnN=XkF)SOHF2B;BN(JdDk$axC~Y@C&BZ_Lh@_si zU`*qll+Qea%@+cpwg>L_rTZ=y6=ANFakmu*nqThrtnLKx+5*@oiiS%~q>ignERq9~ zYV2|kFDyk+8R=<*ik#Y&)1t#JA2xN#>5Z$fWZIM>wOHIZEGT zKAcsEEaPrT#ao7G&&tjzhFFeyz!Y;C@{mgkuM5Z(1n{oF$~miMNMrsX^Hfag+=k+_ z<}~Ffq&ZX0O+~ky5z?h;Q6w80lr(PPfyGxbBf^lGUNKGHPc zGs&q;k>jpu0ZoC=98&FIIH{WE5ydfXVfDoTHB0oxGixhkijdtz8w*JHF{sTlg;@Yo zOfR@&rB{2nw*WY%{iO#=0Jt$2#a2GTp!Q_`rVWkJZQseKq2sQ%X(HK#CgmWy+h zs|en2%0@9+EqNa8t5QdLVsBb59HquwKHOBuoMN+%pbPKYQziHD?c$4vDJzEQP3LYY zhf$4=HdG?*2|Q77BVU9(8ZI2App_^GrBGY;#Uko0pQRTL zQ%ylrwW{(e?Amcyl4@Y5-R7bG&|oqt^C5DZY_N_1#Yin+kZ$i>_x7l9*921k0BOh< zC!?TaJA>P0a6noc)c(dbo?L+ZH!m!+2UCU>oz_=b# z2(kx5^73oPJ|w4!JW1mD^&7a%mlMAv4ujIY9{0t+6Q9Ah{u%K7fVNePDU*!x{HwyN zIWy6Mj8B%YJZa*$nZxQbsXf_C-D*B-^j)NS-7oPz8!e2WqGb6W#^pw)i3x% zHJ8E!`MYA3I2G=lM}u_@MqAZ;oB0tq=XtMlTlo};hOH!-!2ACI{d)2p3*k<^0TXw@bg!?oP^}5>}xvX;ijo=v+WsG2c;-sB081geVwW5egg4)2(vOXy8C2)HRIa< z0K)aOKWNdU!Z6@}PAQ)TJ{fBl{vcZ`D>=0rra`tihU58H>IcKW*$?8@v1Xc{rKkOl z4m`N#3LERUtu15jneXtQlCoL&qfUtZsutKf5)XdWcf;Qa<@k@R+UWMNrM=DMs~D7w z1>M|%*jMfzyZbR|FN( z><7JBnfX2OclHnQx52LuKa91#X2$DCQV_B}Bo4zM1+R>u&~+QDhqSO?Jf}HP*w^$e z`$ky!*W(6`{uIBn`yP*O!bMo{H?oWj;=eI9&w*Yf@H1RXr$F*63<6ivwQ|YJsp(UX zA@Uc8waGj^eq)u46T)z~?Oxn|Givifme&%Qf{mjmityhR_*cXh+Kks1c2fr@C4j)I zIs(W)b8x$H*EKMU=z27{CbdV^&8>Z>!$VM6wn`KnA;oyL-^3kpuD;9mmoctRI)Pr* z@P|mz{6}&$d0aZljt@%u=19rPl~<hmT;orAfHPW5iM?qZW-kmy0C(2ZGucbT{;2m#E(>%|yGZ$Wly!T%4 zp1t?vif(2*4j`!!?%j;k3;A49$E8AA1tp-H%gk^pa*{n;Dn9i~Dq%cyG%x#90WR;CimkhDH&T<1 zw89$zmEwy5ByJtHjs-||jzu*g3^y+oaV?zV6s!eh$QUA!D9IwG^3FO^D8ay7(*n#g z1jle{IodYQ7^Y)r;c<#$DzVGZ1kg?f0UT7%<^A;)TVes%AX9w9AN#Zb*+_RAtGd!B zjyo?bp0&a=bbMe}ec?-cYo-e~3OiRWE8#s%p?>i6uLJ4&mF$7wh_pz03=YTfuSe3gi#Vk7E}3?980lVXsmgU@wU;UH zt?^#-IcSI@vew<7#oLJ@{{UBlJ!|LD;td6)-R3UetzCy&@X6!OU%=LU_c?u?kE8VO zj5m=^8*j)v*F~=UVYIu`0yBco!4>meh0d3#A%@OMp{r@BZ)nCd$mz`{2gKhTHBB0S z8&1fh4%uT_S`E&NJ+dq=7agmN_{D8E_Vn`g`LIoS&X;>Fm<-H#;}z*)7rJoN_>ZBr zof;e1SPoQ*`Mbm#RQg@(#6b(%y;{e`@)!a%nc6Y^_eY;bAj zMm(CQ!Ebtd2LiM+CtH`n8Kdp5z$YT9JWfE_PmUwEYYbLkT>D7_Bfn}-Jh1Dxil}Yy zeqM1(*75)jGsS2!(Vqi3rYn>8d8+AaE2$M|S;+|8dr%e?By3=eS3#o3iR=JS; zU~^kmnvalGP;w~b4r8^}t)zQ#BxB{r6~b?1IBqMyw~JiAu@Z|J3|%+v`D>PgK-G0k zLG4x|fOYn)%QJq{{23JAHa+0673k6YD!4!l()F!W_&)Qmz#e%OG%5Cj!(e(>xu1r5Z`r)n=DcTK zvHruRrtn zh6TOq+&avP-3?QuUF>_E+*YpxZEV+?-mGxSaaoJvX^7fQLH5?TZ1k$I7ZLCY6=E4i za7|_hA&4}-a7M_j49m(p4kv?Jl7s(lRLADR=9AuB7i%gcM0Q+R4uC8Td!kW zK$>IF(Ss+--Dm?#P}gLX?2U>8>0I2GGcfu7Z>?y|u>cf~MN*W+nB-Qe0Kn_BBw*BJ zyDkSxUGYC11t^vnzTvHTQJAQ6fsAdf=(SHR7X$9r9Ct`b92$Y;2l#6VL=L%i_U*^x zO>K9ao_`wSS(JYcDS(FPD;G%6?7z2)xNOtg#O|k#E15Azv=Plf=svZVARd#Zc#3qWAl$;UVIv^3V-;#iL*aUgXa_W;FC&V?nt3HG zsaEeL+MySn{bctaFPc;qSg^`OqEyVzEQyc@6 z$7;?zjV2=$Iml+ zS2of}R}UE!hj1#pP7g{PQC!DF-X+uu{L(f>H29BFVldDGB!T7lMHtRGb5A|*NRPrFywEBh2V==Km zjYB2<#Hc*NLG`FjwfjeuwP_lxLu;33p{?F~tCK zHog(Qx%uDZT8{Hawy;c>+{;_nzAO?(VT0wxaW@yQIV7Fgpb6~B`$CjB73(^20w~EH ztH|u!d5Cd}^?NXW%!HhAM9mSd(n99|;-d!~W~iA^914_5rn$`vrKD7-Ng;FEqx(T# z3F4x=yFdU!C<9Ugb_P8vN09p9R!yzSxZ5LO3YO;T9k^4{fEQ?KGEQqj9aT2J;aL`U z5i!9vqvu;^4AcO!;NT`PRY_=$;3`Iv1NRMAl2Nyo6alflo&_p4nifp)RAIUsb{7f- zU*B#b1UR4tR%RqM1-32)LmkvCHZ#&0BRmG;fG1f97*kG3NH`*)iJ{&G>XupKLNh=V zuH*($in|2(j4fqNac{dh%}ke&vU1=7+JV^6nnDN4b6NJ}tc`)ms&Zc<=V7ALP>(og z859MMkIi_{2Bc{hVb6NYH|WDVxD^}U#1|Rl&>@UMO}TMX$>qFzh`}|>+-e9PuOh6) zsjP%AKqv!hBq_~YM&h}@?F0>i!mh)pTaV)u0ld6Z!nQc#vIYEn9E!31qYEhkz@Q7S zff+5$WyKpbyM z7A)PR&Cd(Pa-Z99=kHPdw5j(-XalTL z80E4my~qaujw_dM6F=Nk#wkv+*90!inv^t&FXOyt#k=hlOzB#&PcTo4xp#8b@rH4X z)Y|S4VvW+2f^Jz}uSh1F7n0cjJnj>spaPTckng zGRji`8eo_BmxEjn_O^#Tn4rq5jAp$d<3zAI^s6PU zPZ-n}{U$&uG^8zY(=|S$fpqxqOQVvPBX4@rn-r1g_K^b+-B+VbF&LuWKivjBDco+# z8rhuJB6v#VsH)7T7;%c!UEJ>GoMKjAN|H`rSwOmb0qI^lDviv4ioLH}O|~)v*l}Jf zBH*z-b6pg`p35P*tM3>+`&C<20P|Noo;WqBnMI>TQ^i-{@tf@3SzeA_N8eXaTLKPYVguWYbPFAVS|d2Kto`3s+hwH zw<&H4njM1UzzDr)icPJ^#%egp2Vv%<*yX*2A&!x=CgDZAxg`%;Oyh%00X)nBP?<_4 z-<4^B{{V+Sl_Q{14tn;b7>}r>p+&UD%n{a?CO(3QSRa^l6(EywJK^O%9AdL> zSxk8x3iMMRk*E+DjGBv4@Wq+8-*3f!j;bT$RUMz6;(~KOVj_vv_~vOWXz6 z1c8?yTKkXTpNK8B?+d{yox}nBtK-kwvKuJ8TMV(t1ch^o?*9O0Zy84=vgo&G4g59H zNnV+RpDgTsYcXFp7{w^Y-L-D|-9))l@|w+`E5h`w4wQ>_@TqK$)$z~mUE=$QG`n98 zTFJA{ZPH_|#p1rrx5C-HzTe8fD}Fv}$6EM@bcM2($Rh*aoYm4^@ikqQ&mXXW1q9Uh zgJukLup#ntDfYJ0Y8TO1!ZOTpUd&G{?|vP4YwcGHt6i>RjN}UTUlv;ZuR>|zC*)2P zR?dr~L8a($*|rhzGhH3Egc4f3C+EnnDzm#brAYW5`r>(AqS$u>gIc~2jz!htc|U=M zE9yOG;kJ{5d1)9D9-_I=hTja^S@DcElZ-?kcOKQ$*bYCjYCIyI() z5$1Nu9?M@7Lm%1gOOb+W+ka@CT^e`>5FD#1vtn^@K`7*~1BSY=qkfG}x_5oJ>_%J-$2gRm!zRd<z-Y`zN6MN%0GKTf*0Rq!DhCD9K(s;=T~L_`BmxS!FZG0!hZuF@axf z{9cVF@Ghv2jCm|Zdtqzx`p*4UQm2u}O2Y+Dn9~sXPL6pbxtZmVjGncg_#ax3-A2a? ziUuU%Yu7x{j5j9M6`d?zPtA(H=Vu+oS1es|Ko+d8HxU%QD`v{)>>7+0F%qR%bo8!P zGZbtIt@#I-i6nioSk5;?i?R9x;jK&iM@P1hoSmY&$##f9KZSh%0PvSz`%atoCp^c} zz2Y#9SAkv}vOO5R2)xHt`MCn8wYfrmVT@KB_bPY?6h%H4Xy%}!sA&9x%{{UD4r+uy^AL|AvNDXr~2I^I~ z;FDbYYBurz02nn9zqjk=04Pucr%Q!AV-%|(ujxK4Mw~Vc9bm?w0_eKRf;P$HriW=hfZX7lN_N%1=S=spB=2b+p z(^m`keqJ%{Sl5~z)|KGf?PmNDw zLO^_H5jbpDuNR@_PjmDaQjI>y(*FQ)I(`-T<>I;Sth`V5jpad{bDq`uBd8E;nTQ{B zSLZ*)_Gq^TdZ-?|-jaK!7 zq$pXlUzMIY@h$I+yiIegPEVH2i2aa#(fL=|f3&ZPVAFgsx(&Mqp8bO0c2U;88H5}F zdJdJvh?cfDgl?`zNk9cbb$PNqqO9Dw2v4PRlF8h%OWT3qn&VByr{ugcbXXs91S6#ftohD;5WaU!hy{w@;UMTJLOOTYEu) z&{YUD&e|AzbIj&Ac zEO);ZF7O!P@+kUru4h!)K>AbS z$L(LN>WeOq;LvTYIa6``Y(1;v4MSDF)h?Ru?q-%*4p@`Ps!Z&}XP@O#2*BiuN*&9v zNT=&jDxak!w`puT)0HdW@;`c}Zd0J?#n~jE<3160@7X)y^q4Rc*l^V!1RdHC+j!@im_OCnEj?Wco zWFTCUKT7V=hV{wXF#}&^`@MdF9KlNL4?&y=yv;upTV|xVv$0X%opO7}~l1RqS35{hxeo;*lNZ zq6V8}{{Y7P9DOV5ZwGis!d?}HWU$lYGJpp6T(x)atxoC$K&o`WBNd1qec>;F9}m1O zvU~Ra(z-?Yi?_-D0DRZ6L#b&xRkGXZP%KcW04gX^#d0EHBk;#P#Y-K#PJeQR{(^%; zT5l3vOvh)+KA5Qf-Kb6m@0eBV9}H@D18|Sa`qyJ?;OR_D_Ll?kr=T8s@l3>L3++># zB1te^c8_ZHMDWFgC=0&k9+hHSZ4S;bZ)RA){_|q8G(6JVMX-#5<9%;i=sI(L@+fy7 zrfX*7#{L7+BHbJh+OG~z$ zZQ5iK9@~a%;p-2ITDOZeZ|uEK#Iab|tMWsEiuS7?9DD`vlo4ttSzS)?M(x|T^Yk26 zO-R-%DEb|Q^8B$zMmyrJ+acTg)#Q6u%$ld|gYd@D%vPoD2>$56uR7HK0BwH{#VPv* zhV&gW)VUbFqCW20gQ9^zFu2A5`d8*Qwfk>svZ-A|4~=BYCM`PTOXfvi&P~;2Se|qxSbv{jmNQ>Fbo8=f|NH=DO$Y-Qe4Qn#SFm9f=kA z-E#8Cr)+~CO2jcs({?fFE2U+K!|O-t)~)+|!MTmCqK`mEYt3~p+ndDKfSV{Ih;}7w z^T~H`3x1UO5+ap85})CTRUz|{6DtmOLI3vbAoKO$$b(W87ChR_4{r7b9zq)qch(&B>Crvb*o~9M?ap#|vLsX~+iS zm#(T6%9)SSxX285z9p9U1DkQ>k4h~b#Pc0gQ4c5y1~E@qB2ks4-N?wrA;xkmO9+xM zqlTqzqwb1`u|Cx8haQv~2bklvFuRI)R;G}8Py;;7;*8)^af-9B6chml#UmpX8?o)$ zp5wC9k}f$FOb7yycN%*xSDLV!M_O#8^c^cX0Za}mBE9O?J*Z^jguu^uJn5~#JFwi3 zYW=AAS@BE5*1i+c>?OEW7WS%zbJJ+A#|#O&G0?HES?~t2tZDudiaP)yj!~W1=bHS-v-@tN;;16Y zl1rM|IhlxG9pxQ~e52h#i+@I`Lte7y6H)B)vFTdeL)V%=MaMv zm4kP4<{W3GW@vL)ikls=*10JXHIsPhTe_sKBFxTyCJykryGUu3dPjz}?!AiyLEOxewt{%0pmu zBAbo83UC?Z&^rTVMFM6kiluQeR@=I%w2#>FS&Y* zW4zRFCI$^kw&jN7-lt1mo2xTJHw@tiyplCfmy<=p#z@Y3^rLc@1?ykF^N94B5*U- zwMLu(^Yg||!ohoIsSoqCQ7&$oFDL!C1t@C3ZGC8P4uwJV` z7=YuYGkG0Nbf02LMtBs_r^KhGXak*DW%c5uTe*irTTNh({5Yn4i4cXw0A{W2$s-*q zR=j<{Fs)y+M5B?4iQtX60;&dPpNHokZwj4AuTJvUZs)Hq(I6Juq(pO(UX?qSI9@BB zp`-{|LC8*(+l!?uf<(eZ~7e z{4vpVPYo}QHK+u)(#zIHi9)^(;JR-}$zZ&)HHq3KF45OnGyR+&mI)8&75cHdf zucWZ^QWgwKbr`RA@el1sZ)>Q{W1-mzqlA_7Gk|gFRlF(tP{(m_*1jUP{nU&AlRtOx zrXz#+q4AF6#GV+7!Z)@i+U6VwEHFr4YWcyGvCv;*V~`BWo9_V1RWEyV;=Ncn2OOIw+&?&G_M@4~^?>b)!7E&l*$Pl`H(mfBUE z>*jx}jX?JF{42v$dskQRxugF8g_ofu;1&Bu2<_8~0Q8R;{7U%C;ptAtx8?<##nCp3i7Yo<*gu>Nm#(&f;W3&u)YTTXzG{BRjj-Xgmq879w~sAZNyZ;GIF#4x!!PkQ%Yd*(wtKV<*Nt)A2$>MB4_3F z6?PGa4OIXHjhqU#82NzDN=TlDKa4?32;GkvuQV5NV~X_e8X=cR$UH50;;Ad^RT6Az zeYP||N@3JDpSyunmLT1#%yvQf995H`rvCtE3r$=0Jyx!bGbz}bfN7x)SxzVo2*0!+ zu*D(1a=g@r(Kmd90-5$PyJ_Zt&{24JhxG54qnrllj+ows115+Evb^3$Dgp|Q

dV$iALg(furC%`lO&>M_yq=Wi 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 <{R&Uvt1dYvTw3-NX30U zZ3A1Zt{-!O(y{J!JIg&W@8n;U9D3G-p9SjQ0X$CE4$!!jMsiJK#qi5o&=>6z$L6p< zciz7BvDYELvuBbV`kZ2$;TGA*duU<+{oRNBEA=-|@Rxr^CMy$)ssO zDxv5w0H`GWq&!O*NKOdv&{mX`7sO>XFS3257MC8I62)$tMmSX*3eJ{iLPI5dnJ4WX zbz;G;6{RP#^sT)cd8q+oq( z;~yD(NbygP?!*$#e75NXe{>4uqVSiFwar37C9Cgq^D!N(va;~Lp`xeRVz(`Ld)JSN z#mZVl_Nd|EOyM>$S{H)#4QDqOhwQd$dbb3Mv0^g1MeTDaYmDGQ)$;$vOQ;8@dt%`8)hvu_g9#3 zTi(8O@rR7A^g@CJ>pLr>hWk^8MBj6 zyqM!;N=RRFaexIw;Vlwx80*$r5V#hpbohB&qAh-^{4CPG4E!k24W5T68n}GTc*O3J zKp!ad6yZ+p#7?D-2jM^Lnc-a;-aF5T1N%!;;It?GTxYoVHT9N}r1*2gcAsO>?bbNd z;6@YxF(IE@`w|6`-30Kyi@)b&w`^IT_N_(SAUIO28)KB1}iVzm3oJ` zHO`)``?!Du+y4NqPCA{6eBM~&+P-`L0EO+~=jCM!O`qexgd$8C73)9Thc!d!QL9)M z&y~;8n);QI9KfYlxfS!Ye;&LoCO{b{rFjp;-`YkUF4=7~ShGBXsI00^iaIH&v+Mn5 z;(vp5D|R}J(8aT{z%}6-{{Zc6@Y=y;hBosUa5kVKzcGAO<2`4@*UvrW%M~Z?=DA7j zeofds^v!tHaS{6{?uHfprhTLFBlel_r;Bv<)8Mc!9QRCZ9<}n++V+jOn4rdc;8z3X z(OiyqI-^Z3j^F!k+n_;HM|T9{Aq8-lHD()$A?Z`hS1H)BkFwJQa1rwg$BR%O#5Yxu zc^h>3YVI7Si$NPlwQDE^g|k2rK~>)RR{kti za~brdNWt`=c7Uehd}n#426yC~8h4h>^r_Oqc~ml?H7WvXB~0Y)9coW7sOOs8hr{=K zM4LD@(AfB06nT^M^sN*OT#>;=4aLi17|VSHdl$lOFHX|@RcozyhTqPP$cYj%xeVR1 zD|b#^KFvcc3WQd<*J4k*8lR;;QXJ3I4+(hBP1f|p7QtZNGqi9Nb_39RS3@lS04Mx? ze7{=!zK7xlwWpw6Hd6*YD@GrS{xyq%de!OB#zHE|9CO3Aewm`9L>(_O-kYdZWyqT2 zIsX7^zcQEN=Z*K5OXgGQnvPG4o;uGulM;RFf9)t4eN~^Q3lu?i{ih#|M6g2>ZWkl| z`W5+&AH_c#$;;|&KN^m2ias%J2BhccX#UiPVEU^+P~?KhCi8eP{_vzpH04c#=pXnH zuggh3B6z*w3fhy8#;U)Md|03~dZXv-NA{#U3+kupt3Hpkhq?>@00I?XItqch=`rlp z`C~20K#SB20*6zLG&h~UlnVy<2SM&#+UZIf0VDNAFO9s@Y^=;w4h)2#%cqt zcxm&t>NNxXp7!AUhupuNxhA+ z*f6P=#Xb@sq?fUbf3z#|X}m?Nul&8aUuLKeh_z`()w*?4>S+GdE9xie;qi}ze8N80 z76{G2+q?m3;mGf^E%=NU7%=4(IgVET+t)_?d;{0rtB-9&%j zLZg@BKY)}3H?WL_XUB79+ z4Wn&_BZ1S3{O()Cjd<%;S5(U7K;oD7o9t=zIG=vY`%-B5$B@K*Dk1w(XvH{%v-Gck zn^0#M7!;=e0BYqx7^wc!pJ4i&PrIl6r>v76O{r#YQB6rA|bnsSHcGW0L{il zMs5f>BRqbszm#;@Ajj$UA|4TAHtzu+J#w3HpBs63(0uH?tm%}v^(`Qe`!?g zA61F>F#V|s`&21Q8vgSh!Hrl0nmK>Dl?vwz{JwJqLU zws;=Yl77>UN6l#HN2PpRFQx~vsJ_w+yWCcP+EoMUus+Ct+JjUa$7%A`WWTiDzboz# zZBI)1FYVi#Y3JJ*sFrqOK

5H34B@eQy5%wC=qi*e!qppmz-60 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 ZV%aWSYlR7^c5lf zmi1&HE}_bGgIt17nqHgSsj#t+$3P<2q00;k`wafck&rX0$C2)8WBVyu41J?hTn|ENeP$iQ*vql; zgWN#!Wky9u_J|M5w!Yu7{gw1{Czfx6FV?o(_CwP#xLp#zT7OxGaP~6nd=QerqvRaa z{{Y$nN8IAR{kHv(^r+5SazXd4NWWyi45MtAvCq9Ptw*>j5`Xti{{Vs@Z2gWlA4;-5 z2Y5Moio!Jm{gG4k)L+yjel@S#-MEFeueC4@K(P_T&G;Jqj$eVk4+NpJLA%&hs~>@W z54Mx$vyHz2OY6}Os7U;77JAF5*>3!QvT9Y+wV60Jjt|h+?L&Md@O`@cmQnuz-y)Jf zg+3I{@3Kaqf3hh0^h4?rKNyol*NX9E`2PTO{{V#|_;+7pyX-O(^grQWwQKO}!qMSY z)e8Rrx++EZb>Y3+me~{!_C-h6kp802#gF(#d`h4<_I!izKjBIL00_s48N!Pv$^QUk z{{V%4)=l8A4#)&z)dt`8NBC2r@CSy~guiA?k7524eR&V+Ec{(x1$eBk1*?PZr~E2K z@E?pOKQ)_>J&*WT?Md)&hxcx4MbG=A{3*ZiiD;-c{h4|8AK_E|qKf{{eb2@S{u=nj z$L{p$KO>O1QG+!p4J-YKM+xeMujiiTf}3m@wUNIrgpFFWEO# zm;G(-81}_}iYhR}Ixa`GYC;+Ce6<+%q2kz<7ANP0zwCz~KfSvn@U0lXWEd24a&h#p z&(NOK0W_9g>S_}Iscy=_}tjaybeRv^Z{;cQHrw=GQ3h_tQ zq#sv_@>>4OJ`)iD7c4!h#9y-?gwO!-@;$5S#xI?qVuiKfnGHwQ_uhtj@=jz28nj}+tOD`7`8eQrVZc%BJs@C(7voHe9uze?AK;E#jQ zf%XW3{RMkN1yvhVR4Aaf2;!mEnQEMS9%moIFAPC}_DIBj$SX!4hF%hk{I-#i{^+kk zVs`9PkxWQH9Oj|anOv)}%O`;RHlu1<$H)63kvtusTgV^mss8|citC0KuN5&dl*t08 z+Q`?Hb~)jo=m!8=N6-5;EIu31cWi4k$NROr62M0ODt4CN0|0(>dszo6>|!>9qM^(d z$;Y)aI}0#z_F=_uB1Bs&(vi_y?r}%8k)JB;WW{4*?UuJuin!KRT~Z-UVYlVYRRo6X zM>`8H#*nnMjWgv6NaMHv0G=uj;Z!{4&JS*s_qh3XlY>V)3ogc>ip5vujdSUNQ9M>^ zG7x9e0;(+WDi2y?@<9flI~gJfgA=fAsSVnN+Ntu>Q_E3;X{YS#j32_NRwfM_jG)_D zw=wUG#D967)p2BvPs`KVn&kj9EdgWa4~TvQkq6uKl_@9jAn#sfrrq6HFoNk!Ytx$h z8t%vK-#Pp%%KTsO{%h+uxv*7Phf#{!6X?w49>+PN-Ng7&AmY0f#9uad8u{6;HIE8j z2(HtfoY$*(dtY5jBzIsbjPKTEl|W;+6>bUQUJ1@C3(dDL!(yWbh-R-hE= zil`+LkC1N7U>jH76~5`Ny3HZCgg0S9b~9ypB9CcawTGMjL__62rFIu0+T}!>x^}9; z?c-mSXbTu{+ex$iBC}-@dAnojU7(gG8$kJME&k45XcPsERE|r3n>hBRHy4uNMwqR) zu@Xn-CrX(R!c>ImQ_3?HVOIfW>rzE)`_wY?><@D^PJu9H_$HadSX)YtV zo6be(4{FYu=Wauc*DHFYw&+(osO2q4`pZlBqonGBIHiyz$EX$P)>q4P146?cg?@T( zx-0}|%PZVAR_~9MS$O*j*w= zes(|UUXx|x3mNu^WCR~Wn#wiqJ#NS6k&}bc zmE3{}8-cEsZuF!+K*3Q`KB1&WM0*DnrGUz|j^bgqIJm2crfNCNYl_;n*EIOkF{Wu# z#a8V5V~_Np44>?)@OSt6RSE5N80O#471bXTChev_(wcRlj_PB2D&>d zy<#N+S2?P1-wYOX0~M!ftq{SHMk(1Au1?pQsc$Xg$ZxGjd*Nucn@3xiF~5vsHLiSH zqglbe`eclb#DQFXr}59gnrSO7>W#f{Y9iX$xx0Kvg!td~M)2Q?3BN0e&rd7?UnF?j z_8ajR!gCigkHzv zWyizcj=v8s1kvfY62%8rT#2v{ zG~M$!l}>v1XWaUpV=Cy#;^)N&*5yq~3xbl2 z{D-iw71O>dYO61obBSWkG3+|lH^dD~N7i*&E;Oa`pkswx^aG`N`b3drp~2%7--N>@ z9gaHKi?i#i4ST}covPhTRvEv#aa|-n9$jA4-f8~;GB2fkNSE^`%K6$q3ib~O{7Js> z%qX^!7L4^%&2&zQlq#OtE{AslZIU7dQd>QP0XkMg{BBE#cFk@-DrKLh4eM}2oD#J&Jb?0gdsA)o&ko-(@@D|m{6JSRy0|pGh`EkK#Em!DSpNVHE5znu zyyuRU?;a?MSJTLaIon@9NpE>1ra4m_ikD2N$kMWKWYo(QIK?2MMb)!_&bUoU$sG3cj`8=)MNEvXNw)_s@#&ptDGh zF;~9K#N=QKy7}c-9#m%xu9_O4A|fK=01G)@ef^9{brDh+u*X?a=pT-^Nq zl?WB)I=+qjOI&=0Tei=$R?87vqcU{qE{Cd5`w93q0IhT4KApZnS+>M53%U4n`$}Jdxo(bs-~Rv_=O_3f`$k?8o<+{n>RvRCpg=TS3Ps#pMh2+?7CSnPVSY!H|%@ywn4s7+dv)K zs;}%@@tSzq*>H#5t3@gQ0620(`A#$9Mv?G)$ZM?*eY1{=E9EPx?Gk3e%IA(N?PvXl zek_#+Kt6ACPyYah1o)deh9w3*wcSdxTgc_BO8Z3ki7$c?<*@><4MH-%Gyb*qclNb&gp0F785@J~OA82Ab!Ztt4bzIL_L$rspC5p) zxmW%P*YP-y`1yo>4gNKDFZd@%#A2h&y@hk^-{VKtY4htV;6=`uFA2va)7nT!`n!PvT z&+N}$jACs}?;dsfksdZRZMv@~w65U-Rw*V5m!_3|Z^ z>@G2b$Gv$!g)DqGEb4V(xMP8y)$~7yHID#zdfnpF2bNp5d)9TOrH4kD-uS0cGU)T8 z0u(9f^sj-YHy_$lnBXJ^J*(`y{{SC&ZdjTLIuTwuulUEp_Cc3VvqyiWbK$+)ofUc> zGV@Cr`PXUptjVW$77 zrb(tDRY$FT#o!OvcUIPPxOHC>YY^GI_{1xn!#=##xu~nin8xnN_+-k33om-jmgQ7{ zYxOce*k8gnWG&vj4{Qb%VsF@E;pC*NYmFWUP{OhL{XXXF4Kwn-JBZIpoH5OPm+@2f zOz{5zfHbLfoj=6CXh@0qB-@fZ0gPA1a=|6F!$3}U_pKpbGx$uZQgPhbvecT?bj?2Z zTYIc18*2=&UTFgHlUK+D#^CogU9NWj02MUG&G&2Se}mt%ev#v?IO`rL)|XF!kKM+n z=VSc`;X|5=)R@J+5%Wc@+8!FZTOD0AmP?oubBg^8(SK#nf!Y@3)HUxuUN)(a3|CDT z?BDPzaq?3}bJZn%lSil|Bzo51AeC10CeWays;$$49Z0PtJ4kkH*>FZi)Qq{{Zl~ zd}hha?7y9Ukz4-E-vv@5=3hqTNBs1x=s#wkfx>2zO-Nw>01uf*w19F*{N_)KzBgVH z_3`PGQJ;z4Dwa_s(zAVQ^okGJzu+WOG^bF=JwJI@)AoD#4FiY!XkqANrS0j9*wjBX zpW-&9F%2wXn0r)T@Rvz-lQdv{75aVu017YmdyQIKi-^ajB&uofJN9^o_lD_qxBWDy zPZvyH!bj#6uCcoBVx~duS2ZHB-NAOG4o4OG3#S^Ptk4`=F%71k`8$l+e)&Y$19~{tDHlq>8m7Ml@-%?R_FUR4bz>fF zQ}?OXk@$ne*OBOcAGdk#WFT?(RC<$JQ;C#{ej?RdUh#FjRw`YCs89xTh86lPp)9uA z1+BH<+aN^*SDkz|_$Q?JA|=)JWLw=~$1*U_m+ZCcS12ZR9qY0uJ2~GI-F=tCcdqWWJg~{7%R9uhl<^vwerbnv;Li2L4s~S8s#5RqOu%*RFbli1(DFTN}M( zNOqdhxjDc!oi_)HaWyXK$Tw!RE0*Pt{m(hdLBKEeuey2(BX#H zP1fCf*rkneyP(`F8ls8t6q;FHiaHT5E%8UI)s`% ztYPDLwhwxeia!oKO?BbBi0-65TL}i>e~D}8pNiiS?R-`!c%y|#Xsh^x}3BIB6=(&%3-MqFVT0!#Z|}00FJx zP}uJMNv*x_A=vaxH(Zv++)`|MV~k3!m|#`76~%m3@d)sbfi+E9H}cvjSdaIJuJ$Na zMmg<)UmE_|9xNJnhHU&Z3w-zNatB?jT=OD35At9V<(jjB-0v628y{D>l)SUeoXk;Rd7em&S>v1u3OjVq3X!z){hE8kx?@ z<4EZL0B7IX`&an8tw(u%8$+PlFfvF+Jj`|n(!ERerSPt+@a^=yH$aTq_|YkB2&yq-mMsQz9I5l&{64w~`lVW*B57AFo4O(le+^ z{3x!w;ireD@n4R#eF`8*xScm(bX7S&psY)MCR>!;r-5H$e#gE7YySWl-gu5w{ob1% z!JqHR>G)RCRxyh|N20P#KTfu@fNfY+P!FKRP}lXF4-V+pdfues8(S!u+>?%-2jkMZ zS=NfA~6uWW?Em(;p-&zPjrRSk-XDI3JaEz8jz6*M~kFUF&-N%C@T`ZA1<8 z07oA$Ojn3s`2PS*w;pAm%pSL<$&xzVcbz&_fpXhOuaq^0HZ#lir}@WD_^(`t#oG3_ za@N{ylS`bA7mBix5qJTiCRf#}x ziq%tzJm(<}j%=jD0fAaTu0UnM6}Ico-KrNBf=`)vt&&D^ks5>?WvXysmhrstE_mdQ@Z}Ky%iZMP_6&l~uT^XHcA^Vo4%PpV$ZcgZuheNAW1 zS@x;dv?11I{KYf-e?!I=b;s0K#YXn$vk~~y4b+hPcq7RWUhl-L`4dRNL?Z^S)vz^>_x zi|<~6rhHdZ{{SDUfmEtUJ(=wxNjP(gau!YiCb^v-##$by^Le39y>*byX>`B2kP+=# z#}Lt*q5;7i)QZSQ9cmvWqir0DkLOc>D_?GB?91bkidRvxsqbNcDnl==9?+gbKDYp5 z6u48zLs3Z~Ckw_YfV*O|<}E~+5}zohu`NbU%o>$;EO}vBIT|RH4(9nsYIH0E0ZX_p zLieZbA1Ucm&O0v0J>r=aLXa9 zv}Y9ci=Rrqu@zn_C5=u=>r|#3r8w=`6( z-FXA09OitZEM;4730_<=*_9{h#eQ&VlYOsSxOQ#Jy}2J+`#;87;nKVnd2bv3@78WOWw%SDNqq2Xz#8XphDSt_EKyLZo*U*!VUSYuFD=5n36asb90t zjw1M3c)mEB%9rej&*e(LD~w|tV2b%`_LTVl0OB8xzBY>L{bPp9O%f%nG325LZ17J! z*P~g!JS8$e&HJvt+*idH7baawdD8$FIQk0YR3j?NPodPNl{*mXkwzmt_QB15fd0w4 zcBTIS3eH>A`=V9}pFv-rS0G#=80-Bj?Js~|5iEQ);OO)#iG*vCPJQd9s`pNMXJPUB z%0>8htiGX+V>n>GgVw(-Y=71h>TC6*_LT8=gf2b^-P+jBk9l|&FpAm1JxLg^$txe0 zQaueu6yC1J(fJ7!nKVd&j};lcwG6aXWsvo# zS7~jeR*ZlJ%~MbZ%xMg3CSPifD?$qp*u^^94>iMMirNYz`?a7I(iDs3kMC34Dn4OS zfKN0RXZc=$8@LcD`>FxPN2NG)tiX21KT2j9P6bFEhsr9X_ff(1pbJ4xDxJ;Z#n+rx zT$+rJ(}7f8LQfs&0^HZHJ8{KlyPot6gH6aiXfzY81@O2OH%f>OFlYeV-!uV=L5g;L zC^Q?M*rwBtX@zJ3!#%0WGHIhU^~mi&4kr|<_@?qsF+(8(r2r{rq!KWs!J{738IpO8 zN*b%T6smDR>|FB~7^u&vsB^~@o?{L>P**7C9+e5nsW!3Zn%=0Y`=yml;Jv%pmuH6V<#XB2V=IOo5)X53^Z zqc?X_oGgr>RZxw)lZ;f13iFC~CzzFPE)NDq#YJ)F72COqKJ?$G6>TL1ZDCbmb2FcB zFfmpqk9v?iybPWyYpD0kN}6h%W7>-$+-BE5JZEXBf-&X!HE49=n~z#7g?2`Y-kejw z+I^~21GPQSj(bw&9m}@tvL?(@OK&24$<0uWytc~mS}AzUHqpu#B8 zb6-VxTlP!%Z=p=Lcaa<7zw^-KXX#Vz;v9$M^`4dDJz>`0O0$yUL(^iDUaO#f&tDci zLh-26+SoUFIIq}^Gr?XB(3Mw9(;5w9p#BtqwPowI-U94Ez1yU8&;DX$%U-fgwG(6v$)p% zt%PYF9lFp4E!UDJ^CCSv0ZV4a_WVZtEf#pR)MSF?a~bGJt!uqP*3Lwh7{)zCPbd}c z^y%Tc%u()NT8`q%e=m5GuT>qYOTQ4yb0S4-nHcn{3H`R)zjSuDwH%;Wva@J;mx{V9 zl36f~(x?qL#21Z-;yXvRYT0NSxdh0rho=ILP#~Hscz<{NboRNof*@P3(z@F}hMpn6 zD{y1l4@&ecGvGe4tS0-%Sdn^BVCOszO;Q$-Q3%JTDSX*(-C%&=o|qV~uQU(YmrRCX zb*;`?AV zvya8iU?CcOk!QSwC?BPIR*Cx>_~PP3lUdd+?GyXE42SuO`bKZsN5U{C`nGZY&;J0b zxs5~iv+%{A%MGiy;y=QnveAd7e#Ux5p$)2QuR7mRn2#hW>@)1WHD2p>5f{2KG={{U=172f4l(lSRLTtH*<&1b03(eDp< zAHn_<&-^3$bT(x5DhnUYi8a^&0I$p~6XOqzyi0K#U0t}1$j3M%@EEVO^goGk#id4d zSKT7083P%`7A_~W5)^t5Z_e)y5`dfMv9BvMOg6|f2& zyM`;_9~OA*++MU2PR(!FvF9eU8Tu)%{?uLo(cwuU5>904z)&m4d{6sn>9&Jrjbx3E z?#KF9=9h^)St?wTSUf!d&T(FOsB6(k`H7A?_2QbOXLIyVUj4RwRd~BJ+gp2g9mZJx zro7L@AGJrsOV~WdxpY75VMp?>ha~Zg*3xg_mEcxA=ZtSIkndu->5c_xsTrSA-hR;j zJiAtjujNI4q&;yur^O9jp&(4o&DD!n&P}VcalDuPDT7& zK)xirx0ho5+Me%STZn*l1p8ME(up5D=Bvqb<&C8N6@JW{qo*34%;O5RS`AGkbGi2C zrE_v$p@c?oK9!mz!)`;0J(!NWRMbF08a7RH%XYwmKb>dEan2m(p?T34avo~^n+uyJ z^_UP&KN_sp?6DjS))Z6x+@7@gE>Q+J#Xn>hEv?`ygH1PR6KEBbE)cgpDbH~jZUt$| zBH_6KX(PM|$}SCJw3%W@0-*ay1CxrrP&zp;{J?ms2JEOcogLR48fNh4){ayLtXEkX zrIKyLVAfhlSLN+Qt{3haIZzr-{{Ss4S1zLqSmNP`!&Hkp4)vcP8!Y60^w9HgBqp;B z@_Bw)IjS;Vg&TU*dm{PGS!a1M=~bFce7MC?H%e1*II1mp`?={??2#PC;yGTODmi5l zkR#yMN82)aJ8G2I5PcZ_DZ$GDIV zxB{d5TZ{omAYAF@x-Ll16uFsDTe3|lvYzn)Za6TIReJF+E*Tx5xMlN&Fohg zr+n(X)mVJR(|3WzIc^x^6`#1{r7D6)6vLRb(_`gYZ<;%btS|;C;WNz|2Qg)&DIP;s zVBIU_jZZX+M#6DUg%wB3%>YguvphBIh-fsm60s5H09v$t!Tl{#^`FmiX{Xd)D@}AwwE%U$Z`!ZSxXos z_4KZ-0;m8EDkg|K7Fq+HoQwIYxM5J`v0YTQhCz&01kgM$w2mt~8^!2C-!cL!4b9S? z-h!Bz2bzYB5WIA1X&#iVfN@6yr6R)v6l080&S^8)Pyx3cX*j7owkPK4Oez7O1Fu?b zI4S9hJLA%T4!jBn27|$)uO^8BHuc+zh=D-otx59Z0<;1QRJg?@JcER_m4sD4iUs58cJN$1j`X#;iXOfEMW&N!sbcodA~MMT@W^q^lNVi1hQg;ROF6$#XSz*v;k-w4kO2?fl;2kQ<1)WiU60VT1Fd}6l`ZZy(u$;KoR4d8gM-FDZp>xlN@Appa{P7AwIyY4-N6%S_4Iz;bx58Uh5F73f|bjLUfvAG^g{e(6!%@21n_k4`NoLbc_$ zOrma`4SRoy7|mE1^7y2MLATs_#UUYw%f}T=&c;-p zW=>8qO-P-&ZuK0w-}4$g)&q`$v_v#Dz>JV8So5$ks&3_u<5pmlkXIa2Mns^o`@ID_ z&MdxOGe+&P74@j0!Z4@;Smg5CXOng?;=*Eyl2?nOPC z9B?pdxA9{%1}E!lB4zJcn`FlWtz3zkFbEU@ z@7f&tR8~75Y7je$WV(i$3B-y3uMRht?aH~wrfN32xpeZ_k@T)fBS@Z~;tgL;mfW;# z8c#~{>F172HZVb?^6nWyZU!l$1$R})aZV8lJr8E^5{WHKo?ARuqy4J&R7V*q1#>

si{4l_Zhjes99MOGLR<^W{U4*wv$S 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

UEyYom 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

?T50Mgzef;WB$toSb(?u!wGsiT4Jm&<15 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੄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

rC+mizeCPc(!%mio0#&O+v&7=0aDtMSnvc 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�M+2_^rp>c4bRG` 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

k&J-;?qt2cpd$l3`t>6>F50BKWdFDLM$oGy7; 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

VPBxUvc8a{JVspBg6tTN( zf6{;^vz1E~BbuRo=0$SOdR5;cJn!5bQ8l|eeE$G70A)vf$jg=BR=K)XkL2omRaet; za!3Gnsy>_KrL$i_V=0`xlUz+t;o*4nbqHW{{$YUggDWdKHU z52Zn28$!&+fIT8>i&u*r9yzXNG!Sl-Hq*O+Ju0f+hT9ljxv8%whBz>X=2`%$cOaH# zm5(E}G6}6?LpWT&r9Lwi(lejGip@5cCGi5_PzCkZutJrY$k~LkB>^_LrkY?4n633uM`Drf$cyYD2d=dJ7Frx zyhb7<8-T1EMYxmz$B%l|NX!71s^tP9DQQ_x%C&yS3A=IQwO2ODD`Pm#MAnkWDxl5{ z9H3~m)vTw>bOxq^(iD?1wg;fB{{XT^%2f^;uGv8G@K4_2qz!rPt=O1bEu-e$ zavzG;k;;)D-s2TPEhX~{2F54@9{%QbK2E{_s34X&gACx;M=jg}GK2!+v8J&TuzZEx zKpBl8l2PQ7#a5lJZa;Oi?$=9iroEzWVi;A$lG)V!pbnFA5>`cMXK!pzvmG$b?U4f26n zZ!(jVPJJkjHQl;Ed7uaqWXP%>Z44RJmMD`d3Y9 ztIGcXd!gxEg}ZG9Pasp0c@{w`aH~KayR%9`JXO;YY#q&T$$vA+l;bt074*@t0kS

R9jQkv?ym+JHL-x3g%=t}%+`{{XVXxsgs6wMlP! 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

L5vbP4gL1a9!6zoQ51Fnx$n%>9Fjj~TqYUQpX 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

yJs_N??N{vvpu=Wm^VA;+ap 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 literal 0 HcmV?d00001 diff --git a/deploy/tkfb-package/fastapi-bridge/static/img/logo.png b/deploy/tkfb-package/fastapi-bridge/static/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbd962e3dedce356d28528ee4d3414d2279fdb0 GIT binary patch literal 14999 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

OOiH6BUu|TplqV(0k%_=aq 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/deploy/tkfb-package/fastapi-bridge/static/index.html b/deploy/tkfb-package/fastapi-bridge/static/index.html new file mode 100644 index 0000000..1e91260 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/index.html @@ -0,0 +1,80 @@ + + + + + + (주)테크니컬코리아 생산팀 포털 + + + + + +

+ + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/admin.js b/deploy/tkfb-package/fastapi-bridge/static/js/admin.js new file mode 100644 index 0000000..b48105d --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/admin.js @@ -0,0 +1,34 @@ +// ✅ /js/admin.js (수정됨 - 중복 로딩 제거) +async function initDashboard() { + // 로그인 토큰 확인 + const token = localStorage.getItem('token'); + if (!token) { + location.href = '/index.html'; + return; + } + + // ✅ navbar, sidebar는 각각의 모듈에서 처리하도록 변경 + // load-navbar.js, load-sidebar.js가 자동으로 처리함 + + // ✅ 콘텐츠만 직접 로딩 (admin-sections.html이 자동 로딩됨) + console.log('관리자 대시보드 초기화 완료'); +} + +// ✅ 보조 함수 - 필요시 수동 컴포넌트 로딩용 +async function loadComponent(id, url) { + try { + const res = await fetch(url); + if (!res.ok) throw new Error(`HTTP ${res.status}`); + const html = await res.text(); + const element = document.getElementById(id); + if (element) { + element.innerHTML = html; + } else { + console.warn(`요소를 찾을 수 없습니다: ${id}`); + } + } catch (err) { + console.error(`컴포넌트 로딩 실패 (${url}):`, err); + } +} + +document.addEventListener('DOMContentLoaded', initDashboard); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/api-config.js b/deploy/tkfb-package/fastapi-bridge/static/js/api-config.js new file mode 100644 index 0000000..888a530 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/api-config.js @@ -0,0 +1,143 @@ +// api-config.js - nginx 프록시 대응 API 설정 + +function getApiBaseUrl() { + const hostname = window.location.hostname; + const protocol = window.location.protocol; + const port = window.location.port; + + console.log('🌐 감지된 환경:', { hostname, protocol, port }); + + // 🔗 nginx 프록시를 통한 접근 (권장) + // nginx가 /api/ 요청을 백엔드로 프록시하므로 포트 없이 접근 + if (hostname.startsWith('192.168.') || hostname.startsWith('10.') || hostname.startsWith('172.') || + hostname === 'localhost' || hostname === '127.0.0.1' || + hostname.includes('.local') || hostname.includes('hyungi')) { + + // 현재 웹서버의 도메인/IP를 그대로 사용하되 /api 경로만 추가 + const baseUrl = port && port !== '80' && port !== '443' + ? `${protocol}//${hostname}:${port}/api` + : `${protocol}//${hostname}/api`; + + console.log('✅ nginx 프록시 사용:', baseUrl); + return baseUrl; + } + + // 🚨 백업: 직접 접근 (nginx 프록시 실패시에만) + console.warn('⚠️ 직접 API 접근 (백업 모드)'); + return `${protocol}//${hostname}:8000/api`; +} + +export const API = getApiBaseUrl(); + +export function ensureAuthenticated() { + const token = localStorage.getItem('token'); + if (!token || token === 'undefined') { + alert('로그인이 필요합니다'); + localStorage.removeItem('token'); + window.location.href = '/'; + return null; + } + return token; +} + +export function getAuthHeaders() { + const token = localStorage.getItem('token'); + return { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + }; +} + +// 🔧 개선된 API 호출 함수 (에러 처리 강화) +export async function apiCall(url, options = {}) { + const defaultOptions = { + headers: getAuthHeaders() + }; + + const finalOptions = { + ...defaultOptions, + ...options, + headers: { + ...defaultOptions.headers, + ...options.headers + } + }; + + try { + console.log(`📡 API 호출: ${url}`); + const response = await fetch(url, finalOptions); + + // 인증 만료 처리 + if (response.status === 401) { + console.error('❌ 인증 만료'); + localStorage.removeItem('token'); + alert('인증이 만료되었습니다. 다시 로그인해주세요.'); + window.location.href = '/'; + return; + } + + // 응답 실패 처리 + if (!response.ok) { + let errorMessage = `HTTP ${response.status}`; + try { + const errorData = await response.json(); + errorMessage = errorData.error || errorData.message || errorMessage; + } catch (e) { + // JSON 파싱 실패시 기본 메시지 사용 + } + throw new Error(errorMessage); + } + + const result = await response.json(); + console.log(`✅ API 성공: ${url}`); + return result; + + } catch (error) { + console.error(`❌ API 오류 (${url}):`, error); + + // 네트워크 오류 vs 서버 오류 구분 + if (error.name === 'TypeError' && error.message.includes('fetch')) { + throw new Error('네트워크 연결 오류입니다. 인터넷 연결을 확인해주세요.'); + } + + throw error; + } +} + +// 디버깅 정보 +console.log('🔗 API Base URL:', API); +console.log('🌐 Current Location:', { + hostname: window.location.hostname, + protocol: window.location.protocol, + port: window.location.port, + href: window.location.href +}); + +// 🧪 API 연결 테스트 함수 (개발용) +export async function testApiConnection() { + try { + console.log('🧪 API 연결 테스트 시작...'); + const response = await fetch(`${API}/health`, { + method: 'GET', + headers: { 'Content-Type': 'application/json' } + }); + + if (response.ok) { + console.log('✅ API 연결 성공!'); + return true; + } else { + console.log('❌ API 연결 실패:', response.status); + return false; + } + } catch (error) { + console.log('❌ API 연결 오류:', error.message); + return false; + } +} + +// 개발 모드에서 자동 테스트 +if (window.location.hostname === 'localhost' || window.location.hostname.startsWith('192.168.')) { + setTimeout(() => { + testApiConnection(); + }, 1000); +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/api-helper.js b/deploy/tkfb-package/fastapi-bridge/static/js/api-helper.js new file mode 100644 index 0000000..8057bc9 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/api-helper.js @@ -0,0 +1,115 @@ +// /public/js/api-helper.js + +import { API_BASE_URL } from './api-config.js'; +import { getToken, clearAuthData } from './auth.js'; + +/** + * 로그인 API를 호출합니다. (인증이 필요 없는 public 요청) + * @param {string} username - 사용자 아이디 + * @param {string} password - 사용자 비밀번호 + * @returns {Promise} - API 응답 결과 + */ +export async function login(username, password) { + const response = await fetch(`${API_BASE_URL}/auth/login`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ username, password }), + }); + + const result = await response.json(); + if (!response.ok) { + // API 에러 응답을 그대로 에러 객체로 던져서 호출부에서 처리하도록 함 + throw new Error(result.error || '로그인에 실패했습니다.'); + } + return result; +} + + +/** + * 인증이 필요한 API 요청을 위한 fetch 래퍼 함수 + * @param {string} endpoint - /로 시작하는 API 엔드포인트 + * @param {object} options - fetch 함수에 전달할 옵션 + * @returns {Promise} - fetch 응답 객체 + */ +async function authFetch(endpoint, options = {}) { + const token = getToken(); + + if (!token) { + console.error('토큰이 없습니다. 로그인이 필요합니다.'); + clearAuthData(); // 인증 정보 정리 + window.location.href = '/index.html'; // 로그인 페이지로 리디렉션 + // 에러를 던져서 후속 실행을 중단 + throw new Error('인증 토큰이 없습니다.'); + } + + const defaultHeaders = { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }; + + const response = await fetch(`${API_BASE_URL}${endpoint}`, { + ...options, + headers: { + ...defaultHeaders, + ...options.headers + } + }); + + // 401 Unauthorized 에러 발생 시, 토큰이 유효하지 않다는 의미 + if (response.status === 401) { + console.error('인증 실패. 토큰이 만료되었거나 유효하지 않습니다.'); + clearAuthData(); // 만료된 인증 정보 정리 + window.location.href = '/index.html'; + throw new Error('인증에 실패했습니다.'); + } + + return response; +} + +// 공통 API 요청 함수들 + +/** + * GET 요청 헬퍼 + * @param {string} endpoint - API 엔드포인트 + */ +export async function apiGet(endpoint) { + const response = await authFetch(endpoint); + return response.json(); +} + +/** + * POST 요청 헬퍼 + * @param {string} endpoint - API 엔드포인트 + * @param {object} data - 전송할 데이터 + */ +export async function apiPost(endpoint, data) { + const response = await authFetch(endpoint, { + method: 'POST', + body: JSON.stringify(data) + }); + return response.json(); +} + +/** + * PUT 요청 헬퍼 + * @param {string} endpoint - API 엔드포인트 + * @param {object} data - 전송할 데이터 + */ +export async function apiPut(endpoint, data) { + const response = await authFetch(endpoint, { + method: 'PUT', + body: JSON.stringify(data) + }); + return response.json(); +} + +/** + * DELETE 요청 헬퍼 + * @param {string} endpoint - API 엔드포인트 + */ +export async function apiDelete(endpoint) { + const response = await authFetch(endpoint, { + method: 'DELETE' + }); + return response.json(); +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/attendance-validation.js b/deploy/tkfb-package/fastapi-bridge/static/js/attendance-validation.js new file mode 100644 index 0000000..2eb16e1 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/attendance-validation.js @@ -0,0 +1,1038 @@ +// 근태 검증 관리 시스템 - API 통합 개선판 + +// ======================================== +// API 설정 및 인증 (통합 방식) +// ======================================== +import { API, getAuthHeaders, apiCall } from '/js/api-config.js'; + +// ======================================== +// 전역 변수 및 설정 +// ======================================== + +let currentDate = new Date(); +let selectedDate = null; +let selectedDateWorkers = []; +let currentFilter = 'all'; +let editingWorker = null; + +// Rate Limiting 설정 - 더욱 엄격하게 +const RATE_LIMIT = { + maxConcurrent: 1, // 동시 최대 1개 요청만! + delayBetweenRequests: 2000, // 요청 간 2초 딜레이 + retryDelay: 5000, // 429 에러 시 5초 후 재시도 + maxRetries: 1 // 최대 1번만 재시도 +}; + +// 캐시 및 상태 관리 +let dateStatusCache = new Map(); +let requestQueue = []; +let activeRequests = 0; +let isProcessingQueue = false; + +// ======================================== +// 캐시 및 성능 관리 유틸리티 +// ======================================== + +/** + * 캐시 상태 확인 + */ +function getCacheStatus() { + return { + cachedDates: dateStatusCache.size, + activeRequests: activeRequests, + queuedRequests: requestQueue.length, + isProcessingQueue: isProcessingQueue + }; +} + +/** + * 캐시 클리어 + */ +function clearCache() { + dateStatusCache.clear(); + console.log('📦 캐시가 클리어되었습니다.'); +} + +/** + * 성능 상태 UI 업데이트 + */ +function updatePerformanceUI() { + const status = getCacheStatus(); + const performanceEl = document.getElementById('performanceStatus'); + + if (performanceEl) { + document.getElementById('activeReq').textContent = status.activeRequests; + document.getElementById('cacheCount').textContent = status.cachedDates; + document.getElementById('queueCount').textContent = status.queuedRequests; + + // 개발 환경에서만 표시 + if (window.location.hostname === 'localhost' || window.location.hostname.includes('dev')) { + performanceEl.classList.remove('hidden'); + } + } +} + +/** + * 성능 모니터링 (디버그용) + */ +function logPerformanceStatus() { + const status = getCacheStatus(); + console.log('📊 성능 상태:', status); + updatePerformanceUI(); +} + +// 개발 모드에서 성능 모니터링 (2초마다) +if (window.location.hostname === 'localhost' || window.location.hostname.includes('dev')) { + setInterval(logPerformanceStatus, 2000); +} + +// ======================================== +// 유틸리티 함수들 +// ======================================== + +/** + * 한국 시간 기준 날짜 문자열 반환 + */ +function getKoreaDateString(date = new Date()) { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +/** + * 현재 로그인한 사용자 정보 가져오기 + */ +function getCurrentUser() { + try { + const token = localStorage.getItem('token'); + if (!token) return null; + + const payloadBase64 = token.split('.')[1]; + if (payloadBase64) { + const payload = JSON.parse(atob(payloadBase64)); + return payload; + } + } catch (error) { + console.log('토큰에서 사용자 정보 추출 실패:', error); + } + + try { + const userInfo = localStorage.getItem('user') || localStorage.getItem('userInfo'); + if (userInfo) { + return JSON.parse(userInfo); + } + } catch (error) { + console.log('localStorage에서 사용자 정보 가져오기 실패:', error); + } + + return null; +} + +// ======================================== +// Rate Limiting 및 Queue 시스템 +// ======================================== + +/** + * Rate Limited API 호출을 위한 Queue 처리 + */ +async function processRequestQueue() { + if (isProcessingQueue || requestQueue.length === 0) return; + + isProcessingQueue = true; + + while (requestQueue.length > 0 && activeRequests < RATE_LIMIT.maxConcurrent) { + const { resolve, reject, url, options, retryCount } = requestQueue.shift(); + activeRequests++; + + try { + const result = await makeRateLimitedRequest(url, options, retryCount); + resolve(result); + } catch (error) { + reject(error); + } finally { + activeRequests--; + updatePerformanceUI(); // UI 업데이트 + // 요청 간 딜레이 + if (requestQueue.length > 0) { + await new Promise(resolve => setTimeout(resolve, RATE_LIMIT.delayBetweenRequests)); + } + } + } + + isProcessingQueue = false; + + // 큐에 남은 요청이 있으면 다시 처리 + if (requestQueue.length > 0) { + setTimeout(processRequestQueue, RATE_LIMIT.delayBetweenRequests); + } +} + +/** + * Rate Limiting이 적용된 실제 API 호출 + */ +async function makeRateLimitedRequest(url, options = {}, retryCount = 0) { + const defaultOptions = { + headers: getAuthHeaders() + }; + + const finalOptions = { + ...defaultOptions, + ...options, + headers: { + ...defaultOptions.headers, + ...options.headers + } + }; + + try { + const response = await fetch(url, finalOptions); + + if (response.status === 401) { + showMessage('인증이 만료되었습니다. 다시 로그인해주세요.', 'error'); + localStorage.removeItem('token'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return; + } + + if (response.status === 429) { + // Rate Limit 에러 처리 + if (retryCount < RATE_LIMIT.maxRetries) { + console.log(`Rate limit 도달, ${RATE_LIMIT.retryDelay}ms 후 재시도 (${retryCount + 1}/${RATE_LIMIT.maxRetries})`); + await new Promise(resolve => setTimeout(resolve, RATE_LIMIT.retryDelay * (retryCount + 1))); + return makeRateLimitedRequest(url, options, retryCount + 1); + } else { + throw new Error('Rate limit exceeded - 요청이 너무 많습니다. 잠시 후 다시 시도해주세요.'); + } + } + + if (!response.ok) { + const errorData = await response.json().catch(() => ({})); + throw new Error(errorData.error || errorData.message || `HTTP ${response.status}`); + } + + return await response.json(); + } catch (error) { + console.error('API 호출 오류:', error); + throw error; + } +} + +/** + * API 호출 헬퍼 (Queue 시스템 사용) - 통합 apiCall 대신 사용 + */ +async function queuedApiCall(url, options = {}) { + return new Promise((resolve, reject) => { + requestQueue.push({ + resolve, + reject, + url, + options, + retryCount: 0 + }); + updatePerformanceUI(); // UI 업데이트 + processRequestQueue(); + }); +} + +// ======================================== +// 메시지 및 UI 헬퍼 함수들 +// ======================================== + +/** + * 메시지 표시 + */ +function showMessage(message, type = 'info') { + const container = document.getElementById('message-container'); + container.innerHTML = `
${message}
`; + + if (type === 'success') { + setTimeout(() => { + hideMessage(); + }, 5000); + } +} + +function hideMessage() { + document.getElementById('message-container').innerHTML = ''; +} + +/** + * 로딩 상태 표시 + */ +function showLoadingState() { + const workersList = document.getElementById('workersList'); + workersList.innerHTML = ` +
+
+
+ 작업자 데이터를 불러오는 중... +
+
+ `; +} + +/** + * 오류 상태 표시 + */ +function showErrorState(message = '데이터를 불러오는 중 오류가 발생했습니다.') { + const workersList = document.getElementById('workersList'); + workersList.innerHTML = ` +
+
⚠️
+

데이터 로딩 오류

+

${message}

+
+ `; +} + +// ======================================== +// API 호출 함수들 (통합 설정 사용) +// ======================================== + +/** + * 특정 날짜의 작업 보고서를 가져옵니다 + */ +async function fetchWorkReports(date) { + try { + return await queuedApiCall(`${API}/workreports/date/${date}`); + } catch (error) { + console.error('WorkReports API 호출 실패:', error); + return []; + } +} + +/** + * 특정 날짜의 일일 작업 보고서를 가져옵니다 + */ +async function fetchDailyWorkReports(date) { + try { + return await queuedApiCall(`${API}/daily-work-reports/date/${date}`); + } catch (error) { + console.error('DailyWorkReports API 호출 실패:', error); + return []; + } +} + +/** + * 특정 작업자의 근무시간을 수정합니다 + */ +async function updateWorkerHours(workerId, date, newHours, reason = '') { + try { + const data = { + worker_id: workerId, + report_date: date, + work_hours: parseFloat(newHours), + modification_reason: reason, + modified_by: getCurrentUser()?.user_id || getCurrentUser()?.id + }; + + return await queuedApiCall(`${API}/daily-work-reports/update-hours`, { + method: 'PUT', + body: JSON.stringify(data) + }); + } catch (error) { + console.error('작업자 시간 수정 실패:', error); + throw error; + } +} + +/** + * 특정 작업자의 작업 데이터를 삭제합니다 + */ +async function deleteWorkerReport(workerId, date) { + try { + return await queuedApiCall(`${API}/daily-work-reports/worker/${workerId}/date/${date}`, { + method: 'DELETE' + }); + } catch (error) { + console.error('작업자 데이터 삭제 실패:', error); + throw error; + } +} + +// ======================================== +// 계산 및 검증 함수들 +// ======================================== + +/** + * 상태에 따른 예상 근무시간을 계산합니다 + */ +function calculateExpectedHours(status, overtime_hours = 0) { + const baseHours = { + 'normal': 8, // 정상 출근 + 'half_day': 4, // 반차 + 'early_leave': 4, // 조퇴 + 'quarter_day': 2, // 1/4 휴가 + 'vacation': 0, // 휴가 + 'sick_leave': 0 // 병가 + }; + return (baseHours[status] || 8) + (overtime_hours || 0); +} + +/** + * 작업자의 검증 상태를 계산합니다 + */ +function getValidationStatus(worker) { + if (!worker.hasWorkReport || !worker.hasDailyReport) return 'missing'; + if (Math.abs(worker.difference) > 0) return 'needs-review'; + return 'normal'; +} + +/** + * 특정 날짜의 전체 상태를 계산합니다 (순차 호출) + */ +async function calculateDateStatus(dateStr) { + // 캐시 확인 + if (dateStatusCache.has(dateStr)) { + return dateStatusCache.get(dateStr); + } + + try { + console.log(`📊 ${dateStr} 상태 계산 시작 - 순차 호출`); + + // 1단계: WorkReports 먼저 가져오기 + console.log(`📝 1단계: WorkReports 조회 중...`); + const workReports = await fetchWorkReports(dateStr); + + // 2초 대기 (서버 부하 방지) + console.log(`⏳ 2초 대기 중... (서버 부하 방지)`); + await new Promise(resolve => setTimeout(resolve, 2000)); + + // 2단계: DailyWorkReports 가져오기 + console.log(`📊 2단계: DailyWorkReports 조회 중...`); + const dailyReports = await fetchDailyWorkReports(dateStr); + + let status; + if (workReports.length === 0 && dailyReports.length === 0) { + status = 'no-data'; + } else if (workReports.length === 0 || dailyReports.length === 0) { + status = 'missing'; + } else { + const hasDiscrepancy = workReports.some(wr => { + const dr = dailyReports.find(d => d.worker_id === wr.worker_id); + if (!dr) return true; + + const expected = calculateExpectedHours(wr.status, wr.overtime_hours); + return Math.abs(dr.work_hours - expected) > 0; + }); + status = hasDiscrepancy ? 'needs-review' : 'normal'; + } + + // 캐시에 저장 + dateStatusCache.set(dateStr, status); + console.log(`✅ ${dateStr} 상태 계산 완료: ${status}`); + return status; + } catch (error) { + console.error('날짜 상태 계산 오류:', error); + // 에러 시 캐시하지 않고 기본값 반환 + return 'no-data'; + } +} + +// ======================================== +// 캘린더 관련 함수들 +// ======================================== + +/** + * 현재 월의 캘린더 데이터를 생성합니다 (온디맨드 로딩) + */ +function generateCalendarStructure() { + const year = currentDate.getFullYear(); + const month = currentDate.getMonth(); + const firstDay = new Date(year, month, 1); + const startDate = new Date(firstDay); + startDate.setDate(startDate.getDate() - firstDay.getDay()); + + const calendar = []; + const current = new Date(startDate); + + for (let week = 0; week < 6; week++) { + const weekDays = []; + for (let day = 0; day < 7; day++) { + const dateStr = getKoreaDateString(current); + const isCurrentMonth = current.getMonth() === month; + + weekDays.push({ + date: new Date(current), + dateStr, + isCurrentMonth, + status: 'no-data' // 모든 날짜를 no-data로 시작 + }); + current.setDate(current.getDate() + 1); + } + calendar.push(weekDays); + } + + return calendar; +} + +/** + * 캘린더를 화면에 렌더링합니다 (자동 로딩 없음) + */ +async function renderCalendar() { + try { + showMessage('📅 캘린더를 표시합니다. 날짜를 클릭하면 순차적으로 상태를 확인할 수 있습니다.', 'success'); + + // 캘린더 구조만 렌더링 (API 호출 없음) + const calendar = generateCalendarStructure(); + const calendarGrid = document.getElementById('calendarGrid'); + calendarGrid.innerHTML = ''; + + // 캘린더 날짜들을 생성 (상태 로딩 없음) + calendar.flat().forEach((dateInfo) => { + const button = document.createElement('button'); + button.className = ` + calendar-day + ${dateInfo.isCurrentMonth ? 'text-gray-900 hover-enabled' : 'text-gray-400'} + ${selectedDate === dateInfo.dateStr ? 'selected' : ''} + no-data + `; + + button.innerHTML = ` +
+ ${dateInfo.date.getDate()} + ${dateInfo.isCurrentMonth ? + `
` : '' + } +
+ `; + + // 현재 월의 날짜만 클릭 가능 + if (dateInfo.isCurrentMonth) { + button.addEventListener('click', () => handleDateClick(dateInfo)); + button.title = `${dateInfo.dateStr} - 클릭하여 상태 확인`; + } else { + button.disabled = true; + button.style.cursor = 'not-allowed'; + } + + calendarGrid.appendChild(button); + }); + + // 월/년 표시 업데이트 + const monthNames = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']; + document.getElementById('currentMonthYear').textContent = + `${currentDate.getFullYear()}년 ${monthNames[currentDate.getMonth()]}`; + + // 월간 요약 정보 초기화 + document.getElementById('normalCount').textContent = '?'; + document.getElementById('reviewCount').textContent = '?'; + document.getElementById('missingCount').textContent = '?'; + + hideMessage(); + + } catch (error) { + console.error('캘린더 렌더링 오류:', error); + showMessage('캘린더 로딩 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 특정 날짜의 상태만 로드하고 업데이트합니다 (순차 호출) + */ +async function loadAndUpdateDateStatus(dateStr, buttonElement) { + try { + // 로딩 상태 표시 + buttonElement.classList.add('loading-state'); + const statusDot = buttonElement.querySelector('.status-dot'); + if (statusDot) { + statusDot.style.background = '#3b82f6'; + statusDot.style.opacity = '1'; + statusDot.classList.add('pulse'); + } + + // 진행 상황 표시 + buttonElement.title = '1단계: WorkReports 조회 중...'; + + const status = await calculateDateStatus(dateStr); + + // 버튼 스타일 업데이트 + buttonElement.classList.remove('loading-state', 'no-data'); + buttonElement.classList.add(status); + buttonElement.title = `${dateStr} - 상태: ${status}`; + + // 상태 점 업데이트 + if (statusDot && status !== 'no-data') { + statusDot.classList.remove('pulse'); + statusDot.className = `status-dot ${ + status === 'needs-review' ? 'warning' : + status === 'missing' ? 'error' : + status === 'normal' ? 'normal' : '' + }`; + } + + console.log(`✅ ${dateStr} 상태 로드 완료: ${status}`); + + } catch (error) { + console.error(`❌ ${dateStr} 상태 로드 실패:`, error); + buttonElement.classList.remove('loading-state'); + buttonElement.classList.add('error-state'); + buttonElement.title = `${dateStr} - 로드 실패: ${error.message}`; + + const statusDot = buttonElement.querySelector('.status-dot'); + if (statusDot) { + statusDot.style.background = '#ef4444'; + statusDot.classList.remove('pulse'); + } + } +} + +// ======================================== +// 작업자 데이터 관련 함수들 +// ======================================== + +/** + * 특정 날짜의 모든 작업자 데이터를 조합합니다 (순차 호출) + */ +async function getWorkersForDate(dateStr) { + try { + console.log(`👥 ${dateStr} 작업자 데이터 조합 시작 - 순차 호출`); + + // 1단계: WorkReports 먼저 가져오기 + console.log(`📝 1단계: WorkReports 조회 중...`); + const workReports = await fetchWorkReports(dateStr); + + // 2초 대기 (서버 부하 방지) + console.log(`⏳ 2초 대기 중... (서버 부하 방지)`); + await new Promise(resolve => setTimeout(resolve, 2000)); + + // 2단계: DailyWorkReports 가져오기 + console.log(`📊 2단계: DailyWorkReports 조회 중...`); + const dailyReports = await fetchDailyWorkReports(dateStr); + + const workerMap = new Map(); + + // WorkReports 데이터 추가 + workReports.forEach(wr => { + workerMap.set(wr.worker_id, { + worker_id: wr.worker_id, + worker_name: wr.worker_name, + overtime_hours: wr.overtime_hours || 0, + status: wr.status || 'normal', + expected_hours: calculateExpectedHours(wr.status || 'normal', wr.overtime_hours), + reported_hours: null, + hasWorkReport: true, + hasDailyReport: false + }); + }); + + // DailyReports 데이터 추가 + dailyReports.forEach(dr => { + if (workerMap.has(dr.worker_id)) { + const worker = workerMap.get(dr.worker_id); + worker.reported_hours = dr.work_hours; + worker.hasDailyReport = true; + } else { + workerMap.set(dr.worker_id, { + worker_id: dr.worker_id, + worker_name: dr.worker_name, + overtime_hours: 0, + status: 'normal', + expected_hours: 8, + reported_hours: dr.work_hours, + hasWorkReport: false, + hasDailyReport: true + }); + } + }); + + const result = Array.from(workerMap.values()).map(worker => ({ + ...worker, + difference: worker.reported_hours !== null ? worker.reported_hours - worker.expected_hours : -worker.expected_hours, + validationStatus: getValidationStatus(worker) + })); + + console.log(`✅ ${dateStr} 작업자 데이터 조합 완료: ${result.length}명`); + return result; + + } catch (error) { + console.error('데이터 조합 오류:', error); + return []; + } +} + +// ======================================== +// 이벤트 핸들러 함수들 +// ======================================== + +/** + * 캘린더 날짜 클릭 이벤트 핸들러 (순차 호출) + */ +async function handleDateClick(dateInfo) { + if (!dateInfo.isCurrentMonth) return; + + selectedDate = dateInfo.dateStr; + + // 선택된 날짜 표시 업데이트 + document.querySelectorAll('.calendar-day').forEach(btn => { + btn.classList.remove('selected'); + }); + + const clickedButton = event.target.closest('.calendar-day'); + if (clickedButton) { + clickedButton.classList.add('selected'); + + // 해당 날짜의 상태가 아직 로드되지 않았다면 로드 + if (clickedButton.classList.contains('no-data')) { + showMessage(`📊 ${dateInfo.dateStr} 날짜의 상태를 확인하는 중... (순차 호출로 약 5초 소요)`, 'loading'); + await loadAndUpdateDateStatus(dateInfo.dateStr, clickedButton); + } + } + + // 작업자 데이터 로드 (순차 호출) + showLoadingState(); + showMessage(`👥 ${dateInfo.dateStr} 작업자 데이터를 순차적으로 로드 중... (약 5초 소요)`, 'loading'); + + try { + const workers = await getWorkersForDate(dateInfo.dateStr); + selectedDateWorkers = workers; + renderWorkersList(workers); + + showMessage(`✅ ${dateInfo.dateStr} 날짜의 데이터를 성공적으로 로드했습니다! (${workers.length}명)`, 'success'); + + } catch (error) { + console.error('날짜별 데이터 로딩 오류:', error); + showErrorState('해당 날짜의 데이터를 불러올 수 없습니다. 잠시 후 다시 시도해주세요.'); + showMessage(`❌ ${dateInfo.dateStr} 데이터 로드 실패: ${error.message}`, 'error'); + } +} + +/** + * 작업자 근무시간 수정 모달 열기 + */ +function openEditModal(worker) { + editingWorker = worker; + + document.getElementById('editWorkerName').value = worker.worker_name; + document.getElementById('editWorkerStatus').value = getStatusText(worker.status); + document.getElementById('editWorkHours').value = worker.reported_hours || 0; + document.getElementById('editReason').value = ''; + + document.getElementById('editModal').classList.remove('hidden'); +} + +/** + * 수정 모달 닫기 + */ +function closeEditModal() { + editingWorker = null; + document.getElementById('editModal').classList.add('hidden'); +} + +/** + * 수정된 작업 저장 + */ +async function saveEditedWork() { + if (!editingWorker) return; + + try { + const newHours = document.getElementById('editWorkHours').value; + const reason = document.getElementById('editReason').value; + + if (!newHours || isNaN(newHours)) { + showMessage('올바른 시간을 입력해주세요.', 'error'); + return; + } + + showMessage('수정 중...', 'loading'); + + await updateWorkerHours(editingWorker.worker_id, selectedDate, newHours, reason); + + showMessage('✅ 근무시간이 성공적으로 수정되었습니다!', 'success'); + closeEditModal(); + + // 데이터 새로고침 + const workers = await getWorkersForDate(selectedDate); + selectedDateWorkers = workers; + renderWorkersList(workers); + renderCalendar(); + + } catch (error) { + console.error('수정 실패:', error); + showMessage('수정 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +/** + * 작업자 데이터 삭제 + */ +async function deleteWorker(worker) { + if (!confirm(`정말로 ${worker.worker_name}의 ${selectedDate} 작업 데이터를 삭제하시겠습니까?\n삭제된 데이터는 복구할 수 없습니다.`)) { + return; + } + + try { + showMessage('삭제 중...', 'loading'); + + await deleteWorkerReport(worker.worker_id, selectedDate); + + showMessage('✅ 작업 데이터가 성공적으로 삭제되었습니다!', 'success'); + + // 데이터 새로고침 + const workers = await getWorkersForDate(selectedDate); + selectedDateWorkers = workers; + renderWorkersList(workers); + renderCalendar(); + + } catch (error) { + console.error('삭제 실패:', error); + showMessage('삭제 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// ======================================== +// UI 렌더링 함수들 +// ======================================== + +/** + * 상태 텍스트 반환 + */ +function getStatusText(status) { + const statusMap = { + 'normal': '정상출근', + 'half_day': '반차', + 'vacation': '휴가', + 'early_leave': '조퇴', + 'quarter_day': '1/4 휴가', + 'sick_leave': '병가' + }; + return statusMap[status] || status; +} + +/** + * 상태 아이콘 반환 + */ +function getStatusIcon(status) { + switch (status) { + case 'normal': return '✅'; + case 'needs-review': return '⚠️'; + case 'missing': return '❌'; + default: return '❓'; + } +} + +/** + * 날짜 포맷팅 + */ +function formatDate(dateStr) { + const date = new Date(dateStr); + const month = date.getMonth() + 1; + const day = date.getDate(); + const weekdays = ['일', '월', '화', '수', '목', '금', '토']; + const weekday = weekdays[date.getDay()]; + return `${month}월 ${day}일 (${weekday})`; +} + +/** + * 작업자 리스트를 화면에 렌더링합니다 + */ +function renderWorkersList(workers) { + const workersList = document.getElementById('workersList'); + + if (!selectedDate || workers.length === 0) { + workersList.innerHTML = ` +
+
🔄
+

날짜를 클릭해주세요

+

+ 캘린더에서 날짜를 클릭하면 해당 날짜의 작업자 검증 내역을 확인할 수 있습니다.
+ 순차 호출 방식으로 안정적이지만 약 5초의 로딩 시간이 있습니다. +

+
+ `; + return; + } + + // 필터링 적용 + const filteredWorkers = workers.filter(worker => { + if (currentFilter === 'all') return true; + if (currentFilter === 'needsReview') return worker.validationStatus === 'needs-review'; + if (currentFilter === 'normal') return worker.validationStatus === 'normal'; + if (currentFilter === 'missing') return worker.validationStatus === 'missing'; + return true; + }); + + // HTML 생성 + workersList.innerHTML = ` +
+ +
+
+

📋 작업자 검증 현황

+

${formatDate(selectedDate)}

+
+ +
+ + +
+ ${filteredWorkers.map(worker => ` +
+ +
+
+
+ ${worker.worker_name.charAt(0)} +
+
+
${worker.worker_name}
+
작업자 ID: ${worker.worker_id}
+
+
+
${getStatusIcon(worker.validationStatus)}
+
+ + +
+
+ 그룹장 입력 + + ${worker.reported_hours !== null ? `${worker.reported_hours}시간` : '미입력'} + +
+ +
+ 시스템 계산 + ${worker.expected_hours}시간 +
+ +
+ 근무 상태 + + ${getStatusText(worker.status)} + ${worker.overtime_hours > 0 ? ` + 연장 ${worker.overtime_hours}시간` : ''} + +
+ + ${worker.difference !== 0 ? ` +
+ 시간 차이 + + ${worker.difference > 0 ? '+' : ''}${worker.difference}시간 + +
+ ` : ''} +
+ + +
+ + ${worker.hasDailyReport ? ` + + ` : ''} +
+
+ `).join('')} +
+ + + ${filteredWorkers.length === 0 ? ` +
+
🔍
+

해당 조건의 작업자가 없습니다

+

+ 다른 필터를 선택하거나 전체 보기를 확인해주세요.
+ 또는 해당 날짜에 등록된 작업자가 없을 수 있습니다. +

+
+ ` : ''} +
+ `; + + // 필터 이벤트 리스너 추가 + const filterSelect = document.getElementById('workerFilter'); + filterSelect.value = currentFilter; + filterSelect.addEventListener('change', (e) => { + currentFilter = e.target.value; + renderWorkersList(selectedDateWorkers); + }); +} + +// ======================================== +// 초기화 및 이벤트 리스너 등록 +// ======================================== + +/** + * 페이지 로드 시 초기화 함수 + */ +async function init() { + try { + // 인증 확인 (api-config.js의 ensureAuthenticated 대신 직접 확인) + const token = localStorage.getItem('token'); + if (!token || token === 'undefined') { + showMessage('로그인이 필요합니다.', 'error'); + localStorage.removeItem('token'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return; + } + + // 월 이동 버튼 이벤트 리스너 + document.getElementById('prevMonth').addEventListener('click', async () => { + currentDate.setMonth(currentDate.getMonth() - 1); + selectedDate = null; + dateStatusCache.clear(); // 캐시 클리어 + clearCache(); // 추가 캐시 클리어 + await renderCalendar(); + renderWorkersList([]); + showMessage('📅 이전 달로 이동했습니다. 날짜를 클릭하여 순차적으로 데이터를 확인하세요.', 'success'); + }); + + document.getElementById('nextMonth').addEventListener('click', async () => { + currentDate.setMonth(currentDate.getMonth() + 1); + selectedDate = null; + dateStatusCache.clear(); // 캐시 클리어 + clearCache(); // 추가 캐시 클리어 + await renderCalendar(); + renderWorkersList([]); + showMessage('📅 다음 달로 이동했습니다. 날짜를 클릭하여 순차적으로 데이터를 확인하세요.', 'success'); + }); + + // 모달 이벤트 리스너 + document.getElementById('editModal').addEventListener('click', (e) => { + if (e.target.id === 'editModal') { + closeEditModal(); + } + }); + + // 초기 렌더링 + await renderCalendar(); + + // 순차 호출 안내 메시지 + showMessage('🔄 API 통합 적용 완료! 순차 호출 시스템으로 안정성이 개선되었습니다.', 'success'); + + // 전역 함수로 등록 + window.openEditModal = openEditModal; + window.closeEditModal = closeEditModal; + window.saveEditedWork = saveEditedWork; + window.deleteWorker = deleteWorker; + + console.log('✅ 근태 검증 관리 시스템 초기화 완료 (API 통합)'); + console.log(`🔗 API 경로: ${API}`); + console.log(`📊 설정: 동시 최대 ${RATE_LIMIT.maxConcurrent}개 요청, ${RATE_LIMIT.delayBetweenRequests}ms 딜레이`); + console.log('🔄 API 호출 방식: 통합 설정 + 순차 호출'); + console.log('🚫 429 에러 방지: 각 날짜당 최소 5초 간격'); + + } catch (error) { + console.error('초기화 오류:', error); + showMessage('시스템 초기화 중 오류가 발생했습니다.', 'error'); + } +} + +// 페이지 로드 시 초기화 +document.addEventListener('DOMContentLoaded', init); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/attendance.js b/deploy/tkfb-package/fastapi-bridge/static/js/attendance.js new file mode 100644 index 0000000..e2db96d --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/attendance.js @@ -0,0 +1,170 @@ +import { API, getAuthHeaders } from '/js/api-config.js'; + +const yearSel = document.getElementById('year'); +const monthSel = document.getElementById('month'); +const container = document.getElementById('attendanceTableContainer'); + +const holidays = [ + '2025-01-01','2025-01-27','2025-01-28','2025-01-29','2025-01-30','2025-01-31', + '2025-03-01','2025-03-03','2025-05-01','2025-05-05','2025-05-06', + '2025-06-03','2025-06-06','2025-08-15','2025-10-03','2025-10-09','2025-12-25' +]; + +const leaveDefaults = { + '김두수':16,'임영규':16,'반치원':16,'황인용':16,'표영진':15, + '김윤섭':16,'이창호':16,'최광욱':16,'박현수':14,'조윤호':0 +}; + +let workers = []; + +// ✅ 셀렉트 박스 옵션 + 기본 선택 추가 +function fillSelectOptions() { + const currentY = new Date().getFullYear(); + const currentM = String(new Date().getMonth() + 1).padStart(2, '0'); + + for (let y = currentY; y <= currentY + 5; y++) { + const selected = y === currentY ? 'selected' : ''; + yearSel.insertAdjacentHTML('beforeend', ``); + } + + for (let m = 1; m <= 12; m++) { + const mm = String(m).padStart(2, '0'); + const selected = mm === currentM ? 'selected' : ''; + monthSel.insertAdjacentHTML('beforeend', ``); + } +} + +// ✅ 작업자 목록 불러오기 +async function fetchWorkers() { + try { + const res = await fetch(`${API}/workers`, { headers: getAuthHeaders() }); + workers = await res.json(); + workers.sort((a, b) => a.worker_id - b.worker_id); + } catch (err) { + alert('작업자 불러오기 실패'); + } +} + +// ✅ 출근부 불러오기 (해당 연도 전체) +async function loadAttendance() { + const year = yearSel.value; + const month = monthSel.value; + if (!year || !month) return alert('연도와 월을 선택하세요'); + + const lastDay = new Date(+year, +month, 0).getDate(); + const start = `${year}-01-01`; + const end = `${year}-12-31`; + + try { + const res = await fetch(`${API}/workreports?start=${start}&end=${end}`, { + headers: getAuthHeaders() + }); + const data = await res.json(); + renderTable(data, year, month, lastDay); + } catch (err) { + alert('출근부 로딩 실패'); + } +} + +// ✅ 테이블 렌더링 +function renderTable(data, year, month, lastDay) { + container.innerHTML = ''; + const weekdays = ['일','월','화','수','목','금','토']; + const tbl = document.createElement('table'); + + // ⬆️ 헤더 구성 + let thead = `작업자`; + for (let d = 1; d <= lastDay; d++) thead += `${d}`; + thead += `잔업합계사용연차잔여연차`; + for (let d = 1; d <= lastDay; d++) { + const dow = new Date(+year, +month - 1, d).getDay(); + thead += `${weekdays[dow]}`; + } + thead += ''; + tbl.innerHTML = thead; + + // ⬇️ 본문 + workers.forEach(w => { + // ✅ 월간 데이터 (표에 표시용) + const recsThisMonth = data.filter(r => + r.worker_id === w.worker_id && + new Date(r.date).getFullYear() === +year && + new Date(r.date).getMonth() + 1 === +month + ); + + // ✅ 연간 데이터 (연차 계산용) + const recsThisYear = data.filter(r => + r.worker_id === w.worker_id && + new Date(r.date).getFullYear() === +year + ); + + let otSum = 0; + let row = `${w.worker_name}`; + + for (let d = 1; d <= lastDay; d++) { + const dd = String(d).padStart(2, '0'); + const date = `${year}-${month}-${dd}`; + + const rec = recsThisMonth.find(r => { + const rDate = new Date(r.date); + const yyyy = rDate.getFullYear(); + const mm = String(rDate.getMonth() + 1).padStart(2, '0'); + const dd = String(rDate.getDate()).padStart(2, '0'); + return `${yyyy}-${mm}-${dd}` === date; + }); + + const dow = new Date(+year, +month - 1, d).getDay(); + const isWe = dow === 0 || dow === 6; + const isHo = holidays.includes(date); + + let txt = '', cls = ''; + if (rec) { + const ot = +rec.overtime_hours || 0; + if (ot > 0) { + txt = ot; cls = 'overtime-cell'; otSum += ot; + } else if (rec.work_details) { + const d = rec.work_details; + if (['연차','반차','반반차','조퇴'].includes(d)) { + txt = d; cls = 'leave'; + } else if (d === '유급') { + txt = d; cls = 'paid-leave'; + } else if (d === '휴무') { + txt = d; cls = 'holiday'; + } else { + txt = d; + } + } + } else { + txt = (isWe || isHo) ? '휴무' : ''; + cls = (isWe || isHo) ? 'holiday' : 'no-data'; + } + + row += `${txt}`; + } + + const usedTot = recsThisYear + .filter(r => ['연차','반차','반반차','조퇴'].includes(r.work_details)) + .reduce((s, r) => s + ( + r.work_details === '연차' ? 1 : + r.work_details === '반차' ? 0.5 : + r.work_details === '반반차' ? 0.25 : 0.75 + ), 0); + + const remain = (leaveDefaults[w.worker_name] || 0) - usedTot; + + row += `${otSum.toFixed(1)}`; + row += `${usedTot.toFixed(2)}${remain.toFixed(2)}`; + row += ``; + + tbl.insertAdjacentHTML('beforeend', row); + }); + + container.appendChild(tbl); +} + +// ✅ 초기 로딩 +fillSelectOptions(); +fetchWorkers().then(() => { + loadAttendance(); // 자동 조회 +}); +document.getElementById('loadAttendance').addEventListener('click', loadAttendance); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/auth-check.js b/deploy/tkfb-package/fastapi-bridge/static/js/auth-check.js new file mode 100644 index 0000000..d43e51a --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/auth-check.js @@ -0,0 +1,27 @@ +// /js/auth-check.js +import { isLoggedIn, getUser, clearAuthData } from './auth.js'; + +// 즉시 실행 함수로 스코프를 보호하고 로직을 실행 +(function() { + if (!isLoggedIn()) { + console.log('🚨 인증되지 않은 사용자. 로그인 페이지로 이동합니다.'); + clearAuthData(); // 만약을 위해 한번 더 정리 + window.location.href = '/index.html'; + return; // 이후 코드 실행 방지 + } + + const currentUser = getUser(); + + // 사용자 정보가 유효한지 확인 (토큰은 있지만 유저 정보가 깨졌을 경우) + if (!currentUser || !currentUser.username || !currentUser.role) { + console.error('🚨 사용자 정보가 유효하지 않습니다. 강제 로그아웃 처리합니다.'); + clearAuthData(); + window.location.href = '/index.html'; + return; + } + + console.log(`✅ ${currentUser.username}(${currentUser.role})님 인증 성공.`); + + // 역할 기반 메뉴 제어 로직은 각 컴포넌트 로더(load-navbar.js 등)로 이전함. + // 전역 변수 할당(window.currentUser) 제거. +})(); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/auth.js b/deploy/tkfb-package/fastapi-bridge/static/js/auth.js new file mode 100644 index 0000000..7a8e6e5 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/auth.js @@ -0,0 +1,76 @@ +// js/auth.js + +/** + * JWT 토큰을 디코딩하여 페이로드(내용)를 반환합니다. + * @param {string} token - JWT 토큰 + * @returns {object|null} - 디코딩된 페이로드 객체 또는 파싱 실패 시 null + */ +export function parseJwt(token) { + try { + // 토큰의 두 번째 부분(payload)을 base64 디코딩하고 JSON으로 파싱 + return JSON.parse(atob(token.split('.')[1])); + } catch (e) { + console.error("잘못된 토큰입니다.", e); + return null; + } +} + +/** + * localStorage에서 인증 토큰을 가져옵니다. + * @returns {string|null} - 저장된 토큰 또는 토큰이 없을 경우 null + */ +export function getToken() { + return localStorage.getItem('token'); +} + +/** + * localStorage에서 사용자 정보를 가져옵니다. + * @returns {object|null} - 저장된 사용자 객체 또는 정보가 없을 경우 null + */ +export function getUser() { + const user = localStorage.getItem('user'); + try { + return user ? JSON.parse(user) : null; + } catch(e) { + console.error("사용자 정보를 파싱하는 데 실패했습니다.", e); + return null; + } +} + +/** + * 로그인 성공 후 토큰과 사용자 정보를 localStorage에 저장합니다. + * @param {string} token - 서버에서 받은 JWT 토큰 + * @param {object} user - 서버에서 받은 사용자 정보 객체 + */ +export function saveAuthData(token, user) { + localStorage.setItem('token', token); + localStorage.setItem('user', JSON.stringify(user)); +} + +/** + * 로그아웃 시 localStorage에서 인증 정보를 제거합니다. + */ +export function clearAuthData() { + localStorage.removeItem('token'); + localStorage.removeItem('user'); +} + +/** + * 현재 사용자가 로그인 상태인지 확인합니다. + * @returns {boolean} - 로그인 상태이면 true, 아니면 false + */ +export function isLoggedIn() { + const token = getToken(); + if (!token) { + return false; + } + + // 선택 사항: 토큰 만료 여부 확인 로직 추가 가능 + // const payload = parseJwt(token); + // if (payload && payload.exp * 1000 > Date.now()) { + // return true; + // } + // return false; + + return !!token; +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/calendar.js b/deploy/tkfb-package/fastapi-bridge/static/js/calendar.js new file mode 100644 index 0000000..d5c591b --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/calendar.js @@ -0,0 +1,59 @@ +// ✅ /js/calendar.js +export function renderCalendar(containerId, onDateSelect) { + const container = document.getElementById(containerId); + if (!container) return; + + let currentDate = new Date(); + let selectedDateStr = ''; + + function drawCalendar(date) { + container.innerHTML = ''; + const year = date.getFullYear(); + const month = date.getMonth(); + const firstDay = new Date(year, month, 1).getDay(); + const lastDate = new Date(year, month + 1, 0).getDate(); + + const nav = document.createElement('div'); + nav.className = 'nav'; + const prev = document.createElement('button'); + prev.textContent = '◀'; + prev.addEventListener('click', () => { + currentDate = new Date(year, month - 1, 1); + drawCalendar(currentDate); + }); + const title = document.createElement('div'); + title.innerHTML = `${year}년 ${month + 1}월`; + const next = document.createElement('button'); + next.textContent = '▶'; + next.addEventListener('click', () => { + currentDate = new Date(year, month + 1, 1); + drawCalendar(currentDate); + }); + nav.append(prev, title, next); + container.appendChild(nav); + + ['일','월','화','수','목','금','토'].forEach(day => { + const el = document.createElement('div'); + el.innerHTML = `${day}`; + container.appendChild(el); + }); + + for (let i = 0; i < firstDay; i++) container.appendChild(document.createElement('div')); + + for (let i = 1; i <= lastDate; i++) { + const btn = document.createElement('button'); + const ymd = `${year}-${String(month + 1).padStart(2, '0')}-${String(i).padStart(2, '0')}`; + btn.textContent = i; + btn.className = (ymd === selectedDateStr) ? 'selected-date' : ''; + btn.addEventListener('click', () => { + selectedDateStr = ymd; + drawCalendar(currentDate); + onDateSelect(ymd); + }); + container.appendChild(btn); + } + } + + drawCalendar(currentDate); +} + diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/change-password.js b/deploy/tkfb-package/fastapi-bridge/static/js/change-password.js new file mode 100644 index 0000000..4858a9e --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/change-password.js @@ -0,0 +1,211 @@ +// js/change-password.js +// 개인 비밀번호 변경 페이지 JavaScript + +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +const token = ensureAuthenticated(); + +// DOM 요소 +const form = document.getElementById('changePasswordForm'); +const messageArea = document.getElementById('message-area'); +const submitBtn = document.getElementById('submitBtn'); +const resetBtn = document.getElementById('resetBtn'); + +// 비밀번호 토글 기능 +document.querySelectorAll('.password-toggle').forEach(button => { + button.addEventListener('click', function() { + const targetId = this.getAttribute('data-target'); + const input = document.getElementById(targetId); + + if (input) { + const isPassword = input.type === 'password'; + input.type = isPassword ? 'text' : 'password'; + this.textContent = isPassword ? '👁️‍🗨️' : '👁️'; + } + }); +}); + +// 초기화 버튼 +resetBtn?.addEventListener('click', () => { + form.reset(); + clearMessages(); + document.getElementById('passwordStrength').innerHTML = ''; +}); + +// 메시지 표시 함수 +function showMessage(type, message) { + messageArea.innerHTML = ` +
+ ${type === 'error' ? '❌' : '✅'} ${message} +
+ `; + + // 에러 메시지는 5초 후 자동 제거 + if (type === 'error') { + setTimeout(clearMessages, 5000); + } +} + +function clearMessages() { + messageArea.innerHTML = ''; +} + +// 비밀번호 강도 체크 +async function checkPasswordStrength(password) { + if (!password) { + document.getElementById('passwordStrength').innerHTML = ''; + return; + } + + try { + const res = await fetch(`${API}/auth/check-password-strength`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ password }) + }); + + const result = await res.json(); + updatePasswordStrengthUI(result); + } catch (error) { + console.error('Password strength check error:', error); + } +} + +// 비밀번호 강도 UI 업데이트 +function updatePasswordStrengthUI(strength) { + const container = document.getElementById('passwordStrength'); + if (!container) return; + + const colors = { + 0: '#f44336', + 1: '#ff9800', + 2: '#ffc107', + 3: '#4caf50', + 4: '#2196f3' + }; + + const strengthText = strength.strengthText || '비밀번호를 입력하세요'; + const color = colors[strength.strength] || '#ccc'; + const percentage = (strength.score / strength.maxScore) * 100; + + container.innerHTML = ` +
+
+ + ${strengthText} + + + ${strength.score}/${strength.maxScore} + +
+
+
+
+ ${strength.feedback && strength.feedback.length > 0 ? ` +
    + ${strength.feedback.map(f => `
  • ${f}
  • `).join('')} +
+ ` : ''} +
+ `; +} + +// 비밀번호 입력 이벤트 +let strengthCheckTimer; +document.getElementById('newPassword')?.addEventListener('input', (e) => { + clearTimeout(strengthCheckTimer); + strengthCheckTimer = setTimeout(() => { + checkPasswordStrength(e.target.value); + }, 300); +}); + +// 폼 제출 +form?.addEventListener('submit', async (e) => { + e.preventDefault(); + clearMessages(); + + const currentPassword = document.getElementById('currentPassword').value; + const newPassword = document.getElementById('newPassword').value; + const confirmPassword = document.getElementById('confirmPassword').value; + + // 유효성 검사 + if (!currentPassword || !newPassword || !confirmPassword) { + showMessage('error', '모든 필드를 입력해주세요.'); + return; + } + + if (newPassword !== confirmPassword) { + showMessage('error', '새 비밀번호가 일치하지 않습니다.'); + return; + } + + if (newPassword.length < 6) { + showMessage('error', '비밀번호는 최소 6자 이상이어야 합니다.'); + return; + } + + if (currentPassword === newPassword) { + showMessage('error', '새 비밀번호는 현재 비밀번호와 달라야 합니다.'); + return; + } + + // 버튼 상태 변경 + const originalText = submitBtn.innerHTML; + submitBtn.disabled = true; + submitBtn.innerHTML = '처리 중...'; + + try { + const res = await fetch(`${API}/auth/change-password`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify({ + currentPassword, + newPassword + }) + }); + + const result = await res.json(); + + if (res.ok && result.success) { + showMessage('success', '비밀번호가 성공적으로 변경되었습니다.'); + form.reset(); + document.getElementById('passwordStrength').innerHTML = ''; + + // 카운트다운 시작 + let countdown = 3; + const countdownInterval = setInterval(() => { + showMessage('success', + `비밀번호가 변경되었습니다. ${countdown}초 후 로그인 페이지로 이동합니다.` + ); + countdown--; + + if (countdown < 0) { + clearInterval(countdownInterval); + localStorage.removeItem('token'); + localStorage.removeItem('user'); + window.location.href = '/index.html'; + } + }, 1000); + + } else { + const errorMessage = result.error || '비밀번호 변경에 실패했습니다.'; + showMessage('error', errorMessage); + } + } catch (error) { + console.error('Password change error:', error); + showMessage('error', '서버와의 연결에 실패했습니다. 잠시 후 다시 시도해주세요.'); + } finally { + submitBtn.disabled = false; + submitBtn.innerHTML = originalText; + } +}); + +// 페이지 로드 시 현재 사용자 정보 표시 +document.addEventListener('DOMContentLoaded', () => { + const user = JSON.parse(localStorage.getItem('user') || '{}'); + console.log('🔐 비밀번호 변경 페이지 로드됨'); + console.log('👤 현재 사용자:', user.username || 'Unknown'); +}); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/daily-issue-api.js b/deploy/tkfb-package/fastapi-bridge/static/js/daily-issue-api.js new file mode 100644 index 0000000..ef9bcec --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/daily-issue-api.js @@ -0,0 +1,66 @@ +// /js/daily-issue-api.js +import { apiGet, apiPost } from './api-helper.js'; + +/** + * 이슈 보고서 작성을 위해 필요한 초기 데이터(프로젝트, 이슈 유형)를 가져옵니다. + * @returns {Promise<{projects: Array, issueTypes: Array}>} + */ +export async function getInitialData() { + try { + const [projects, issueTypes] = await Promise.all([ + apiGet('/projects'), + apiGet('/issue-types') + ]); + return { projects, issueTypes }; + } catch (error) { + console.error('이슈 보고서 초기 데이터 로딩 실패:', error); + throw error; + } +} + +/** + * 특정 날짜에 근무한 작업자 목록을 가져옵니다. + * @param {string} date - 조회할 날짜 (YYYY-MM-DD) + * @returns {Promise} - 작업자 목록 + */ +export async function getWorkersByDate(date) { + try { + // 백엔드에 해당 날짜의 작업자 목록을 요청하는 API가 있다고 가정합니다. + // (예: /api/workers?work_date=YYYY-MM-DD) + // 현재는 기존 로직을 최대한 활용하여 구현합니다. + let workers = []; + const reports = await apiGet(`/daily-work-reports?date=${date}`); + + if (reports && reports.length > 0) { + const workerMap = new Map(); + reports.forEach(r => { + if (!workerMap.has(r.worker_id)) { + workerMap.set(r.worker_id, { worker_id: r.worker_id, worker_name: r.worker_name }); + } + }); + workers = Array.from(workerMap.values()); + } else { + // 보고서가 없으면 전체 작업자 목록을 가져옵니다. + workers = await apiGet('/workers'); + } + return workers.sort((a, b) => a.worker_name.localeCompare(b.worker_name)); + } catch (error) { + console.error(`${date}의 작업자 목록 로딩 실패:`, error); + throw error; + } +} + +/** + * 작성된 이슈 보고서 데이터를 서버에 전송합니다. + * @param {object} issueData - 전송할 이슈 데이터 + * @returns {Promise} - 서버 응답 결과 + */ +export async function createIssueReport(issueData) { + try { + const result = await apiPost('/issue-reports', issueData); + return result; + } catch (error) { + console.error('이슈 보고서 생성 요청 실패:', error); + throw error; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/daily-issue-ui.js b/deploy/tkfb-package/fastapi-bridge/static/js/daily-issue-ui.js new file mode 100644 index 0000000..c125ea8 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/daily-issue-ui.js @@ -0,0 +1,103 @@ +// /js/daily-issue-ui.js + +const DOM = { + dateSelect: document.getElementById('dateSelect'), + projectSelect: document.getElementById('projectSelect'), + issueTypeSelect: document.getElementById('issueTypeSelect'), + timeStart: document.getElementById('timeStart'), + timeEnd: document.getElementById('timeEnd'), + workerList: document.getElementById('workerList'), + form: document.getElementById('issueForm'), + submitBtn: document.getElementById('submitBtn'), +}; + +function createOption(value, text) { + const option = document.createElement('option'); + option.value = value; + option.textContent = text; + return option; +} + +export function populateProjects(projects) { + DOM.projectSelect.innerHTML = ''; + if (Array.isArray(projects)) { + projects.forEach(p => DOM.projectSelect.appendChild(createOption(p.project_id, p.project_name))); + } +} + +export function populateIssueTypes(issueTypes) { + DOM.issueTypeSelect.innerHTML = ''; + if (Array.isArray(issueTypes)) { + issueTypes.forEach(t => DOM.issueTypeSelect.appendChild(createOption(t.issue_type_id, `${t.category}:${t.subcategory}`))); + } +} + +export function populateTimeOptions() { + for (let h = 0; h < 24; h++) { + for (let m of [0, 30]) { + const time = `${String(h).padStart(2, '0')}:${m === 0 ? '00' : '30'}`; + DOM.timeStart.appendChild(createOption(time, time)); + DOM.timeEnd.appendChild(createOption(time, time.replace('00:00', '24:00'))); + } + } + DOM.timeEnd.value = "24:00"; // 기본값 설정 +} + +export function renderWorkerList(workers) { + DOM.workerList.innerHTML = ''; + if (!Array.isArray(workers) || workers.length === 0) { + DOM.workerList.textContent = '선택 가능한 작업자가 없습니다.'; + return; + } + workers.forEach(worker => { + const btn = document.createElement('button'); + btn.type = 'button'; + btn.className = 'btn'; + btn.textContent = worker.worker_name; + btn.dataset.id = worker.worker_id; + btn.addEventListener('click', () => btn.classList.toggle('selected')); + DOM.workerList.appendChild(btn); + }); +} + +export function getFormData() { + const selectedWorkers = [...DOM.workerList.querySelectorAll('.btn.selected')].map(b => b.dataset.id); + + if (selectedWorkers.length === 0) { + alert('작업자를 한 명 이상 선택해주세요.'); + return null; + } + if (DOM.timeEnd.value <= DOM.timeStart.value) { + alert('종료 시간은 시작 시간보다 이후여야 합니다.'); + return null; + } + + const formData = new FormData(DOM.form); + const data = { + date: formData.get('dateSelect'), // input name 속성이 없어 직접 가져옴 + project_id: DOM.projectSelect.value, + issue_type_id: DOM.issueTypeSelect.value, + start_time: DOM.timeStart.value, + end_time: DOM.timeEnd.value, + worker_ids: selectedWorkers, // worker_id -> worker_ids 로 명확하게 변경 + }; + + for (const key in data) { + if (!data[key] || (Array.isArray(data[key]) && data[key].length === 0)) { + alert('모든 필수 항목을 입력해주세요.'); + return null; + } + } + + return data; +} + +export function setSubmitButtonState(isLoading) { + if (isLoading) { + DOM.submitBtn.disabled = true; + DOM.submitBtn.textContent = '등록 중...'; + } else { + DOM.submitBtn.disabled = false; + DOM.submitBtn.textContent = '등록'; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/daily-issue.js b/deploy/tkfb-package/fastapi-bridge/static/js/daily-issue.js new file mode 100644 index 0000000..f7f024b --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/daily-issue.js @@ -0,0 +1,89 @@ +// /js/daily-issue.js + +import { getInitialData, getWorkersByDate, createIssueReport } from './daily-issue-api.js'; +import { + populateProjects, + populateIssueTypes, + populateTimeOptions, + renderWorkerList, + getFormData, + setSubmitButtonState +} from './daily-issue-ui.js'; + +const dateSelect = document.getElementById('dateSelect'); +const form = document.getElementById('issueForm'); + +/** + * 날짜가 변경될 때마다 해당 날짜의 작업자 목록을 다시 불러옵니다. + */ +async function handleDateChange() { + const selectedDate = dateSelect.value; + if (!selectedDate) { + document.getElementById('workerList').textContent = '날짜를 먼저 선택하세요.'; + return; + } + + document.getElementById('workerList').textContent = '작업자 목록을 불러오는 중...'; + try { + const workers = await getWorkersByDate(selectedDate); + renderWorkerList(workers); + } catch (error) { + document.getElementById('workerList').textContent = '작업자 목록 로딩에 실패했습니다.'; + } +} + +/** + * 폼 제출 이벤트를 처리합니다. + */ +async function handleSubmit(event) { + event.preventDefault(); + const issueData = getFormData(); + + if (!issueData) return; // 유효성 검사 실패 + + setSubmitButtonState(true); + try { + const result = await createIssueReport(issueData); + if (result.success) { + alert('✅ 이슈가 성공적으로 등록되었습니다.'); + form.reset(); // 폼 초기화 + dateSelect.value = new Date().toISOString().split('T')[0]; // 날짜 오늘로 리셋 + handleDateChange(); // 작업자 목록 새로고침 + } else { + throw new Error(result.error || '알 수 없는 오류가 발생했습니다.'); + } + } catch (error) { + alert(`🚨 등록 실패: ${error.message}`); + } finally { + setSubmitButtonState(false); + } +} + +/** + * 페이지 초기화 함수 + */ +async function initializePage() { + // 오늘 날짜 기본 설정 + dateSelect.value = new Date().toISOString().split('T')[0]; + + populateTimeOptions(); + + // 프로젝트, 이슈유형, 작업자 목록을 병렬로 로드 + try { + const [initialData] = await Promise.all([ + getInitialData(), + handleDateChange() // 초기 작업자 목록 로드 + ]); + populateProjects(initialData.projects); + populateIssueTypes(initialData.issueTypes); + } catch (error) { + alert('페이지 초기화 중 오류가 발생했습니다. 새로고침 해주세요.'); + } + + // 이벤트 리스너 설정 + dateSelect.addEventListener('change', handleDateChange); + form.addEventListener('submit', handleSubmit); +} + +// DOM이 로드되면 페이지 초기화를 시작합니다. +document.addEventListener('DOMContentLoaded', initializePage); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/daily-report-viewer.js b/deploy/tkfb-package/fastapi-bridge/static/js/daily-report-viewer.js new file mode 100644 index 0000000..6710b93 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/daily-report-viewer.js @@ -0,0 +1,81 @@ +// /js/daily-report-viewer.js + +import { fetchReportData } from './report-viewer-api.js'; +import { renderReport, processReportData, showLoading, showError } from './report-viewer-ui.js'; +import { exportToExcel, printReport } from './report-viewer-export.js'; +import { getUser } from './auth.js'; + +// 전역 상태: 현재 화면에 표시된 데이터 +let currentProcessedData = null; + +/** + * 날짜를 기준으로 보고서를 검색하고 화면에 렌더링합니다. + */ +async function searchReports() { + const dateInput = document.getElementById('reportDate'); + const selectedDate = dateInput.value; + + if (!selectedDate) { + showError('날짜를 선택해주세요.'); + return; + } + + showLoading(true); + currentProcessedData = null; // 새 검색이 시작되면 이전 데이터 초기화 + + try { + const rawData = await fetchReportData(selectedDate); + currentProcessedData = processReportData(rawData, selectedDate); + renderReport(currentProcessedData); + } catch (error) { + showError(error.message); + renderReport(null); // 에러 발생 시 데이터 없는 화면 표시 + } finally { + showLoading(false); + } +} + +/** + * 페이지의 모든 이벤트 리스너를 설정합니다. + */ +function setupEventListeners() { + document.getElementById('searchBtn')?.addEventListener('click', searchReports); + document.getElementById('todayBtn')?.addEventListener('click', () => { + const today = new Date().toISOString().split('T')[0]; + document.getElementById('reportDate').value = today; + searchReports(); + }); + + document.getElementById('reportDate')?.addEventListener('keypress', (e) => { + if (e.key === 'Enter') searchReports(); + }); + + document.getElementById('exportExcelBtn')?.addEventListener('click', () => { + exportToExcel(currentProcessedData); + }); + + document.getElementById('printBtn')?.addEventListener('click', printReport); +} + +/** + * 페이지가 처음 로드될 때 실행되는 초기화 함수 + */ +function initializePage() { + // auth.js를 사용하여 인증 상태 확인 + const user = getUser(); + if (!user) { + showError('로그인이 필요합니다. 2초 후 로그인 페이지로 이동합니다.'); + setTimeout(() => window.location.href = '/index.html', 2000); + return; + } + + setupEventListeners(); + + // 페이지 로드 시 오늘 날짜로 자동 검색 + const dateInput = document.getElementById('reportDate'); + dateInput.value = new Date().toISOString().split('T')[0]; + searchReports(); +} + +// DOM이 로드되면 페이지 초기화를 시작합니다. +document.addEventListener('DOMContentLoaded', initializePage); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/daily-work-report.js b/deploy/tkfb-package/fastapi-bridge/static/js/daily-work-report.js new file mode 100644 index 0000000..defd805 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/daily-work-report.js @@ -0,0 +1,897 @@ +// daily-work-report.js - 통합 API 설정 적용 버전 + +// ================================================================= +// 🌐 통합 API 설정 import +// ================================================================= +import { API, getAuthHeaders, apiCall } from '/js/api-config.js'; + +// 전역 변수 +let workTypes = []; +let workStatusTypes = []; +let errorTypes = []; +let workers = []; +let projects = []; +let selectedWorkers = new Set(); +let workEntryCounter = 0; +let currentStep = 1; +let editingWorkId = null; // 수정 중인 작업 ID + +// 한국 시간 기준 오늘 날짜 가져오기 +function getKoreaToday() { + const today = new Date(); + const year = today.getFullYear(); + const month = String(today.getMonth() + 1).padStart(2, '0'); + const day = String(today.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +// 현재 로그인한 사용자 정보 가져오기 +function getCurrentUser() { + try { + const token = localStorage.getItem('token'); + if (!token) return null; + + const payloadBase64 = token.split('.')[1]; + if (payloadBase64) { + const payload = JSON.parse(atob(payloadBase64)); + console.log('토큰에서 추출한 사용자 정보:', payload); + return payload; + } + } catch (error) { + console.log('토큰에서 사용자 정보 추출 실패:', error); + } + + try { + const userInfo = localStorage.getItem('user') || localStorage.getItem('userInfo') || localStorage.getItem('currentUser'); + if (userInfo) { + const parsed = JSON.parse(userInfo); + console.log('localStorage에서 가져온 사용자 정보:', parsed); + return parsed; + } + } catch (error) { + console.log('localStorage에서 사용자 정보 가져오기 실패:', error); + } + + return null; +} + +// 메시지 표시 +function showMessage(message, type = 'info') { + const container = document.getElementById('message-container'); + container.innerHTML = `
${message}
`; + + if (type === 'success') { + setTimeout(() => { + hideMessage(); + }, 5000); + } +} + +function hideMessage() { + document.getElementById('message-container').innerHTML = ''; +} + +// 단계 이동 +function goToStep(stepNumber) { + for (let i = 1; i <= 3; i++) { + const step = document.getElementById(`step${i}`); + if (step) { + step.classList.remove('active', 'completed'); + if (i < stepNumber) { + step.classList.add('completed'); + const stepNum = step.querySelector('.step-number'); + if (stepNum) stepNum.classList.add('completed'); + } else if (i === stepNumber) { + step.classList.add('active'); + } + } + } + currentStep = stepNumber; +} + +// 초기 데이터 로드 (통합 API 사용) +async function loadData() { + try { + showMessage('데이터를 불러오는 중...', 'loading'); + + console.log('🔗 통합 API 설정을 사용한 기본 데이터 로딩 시작...'); + await loadWorkers(); + await loadProjects(); + await loadWorkTypes(); + await loadWorkStatusTypes(); + await loadErrorTypes(); + + console.log('로드된 작업자 수:', workers.length); + console.log('로드된 프로젝트 수:', projects.length); + console.log('작업 유형 수:', workTypes.length); + + populateWorkerGrid(); + hideMessage(); + + } catch (error) { + console.error('데이터 로드 실패:', error); + showMessage('데이터 로드 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +async function loadWorkers() { + try { + console.log('Workers API 호출 중... (통합 API 사용)'); + const data = await apiCall(`${API}/workers`); + workers = Array.isArray(data) ? data : (data.workers || []); + console.log('✅ Workers 로드 성공:', workers.length); + } catch (error) { + console.error('작업자 로딩 오류:', error); + throw error; + } +} + +async function loadProjects() { + try { + console.log('Projects API 호출 중... (통합 API 사용)'); + const data = await apiCall(`${API}/projects`); + projects = Array.isArray(data) ? data : (data.projects || []); + console.log('✅ Projects 로드 성공:', projects.length); + } catch (error) { + console.error('프로젝트 로딩 오류:', error); + throw error; + } +} + +async function loadWorkTypes() { + try { + const data = await apiCall(`${API}/daily-work-reports/work-types`); + if (Array.isArray(data) && data.length > 0) { + workTypes = data; + console.log('✅ 작업 유형 API 사용 (통합 설정)'); + return; + } + throw new Error('API 실패'); + } catch (error) { + console.log('⚠️ 작업 유형 API 사용 불가, 기본값 사용'); + workTypes = [ + {id: 1, name: 'Base'}, + {id: 2, name: 'Vessel'}, + {id: 3, name: 'Piping'} + ]; + } +} + +async function loadWorkStatusTypes() { + try { + const data = await apiCall(`${API}/daily-work-reports/work-status-types`); + if (Array.isArray(data) && data.length > 0) { + workStatusTypes = data; + console.log('✅ 업무 상태 유형 API 사용 (통합 설정)'); + return; + } + throw new Error('API 실패'); + } catch (error) { + console.log('⚠️ 업무 상태 유형 API 사용 불가, 기본값 사용'); + workStatusTypes = [ + {id: 1, name: '정규'}, + {id: 2, name: '에러'} + ]; + } +} + +async function loadErrorTypes() { + try { + const data = await apiCall(`${API}/daily-work-reports/error-types`); + if (Array.isArray(data) && data.length > 0) { + errorTypes = data; + console.log('✅ 에러 유형 API 사용 (통합 설정)'); + return; + } + throw new Error('API 실패'); + } catch (error) { + console.log('⚠️ 에러 유형 API 사용 불가, 기본값 사용'); + errorTypes = [ + {id: 1, name: '설계미스'}, + {id: 2, name: '외주작업 불량'}, + {id: 3, name: '입고지연'}, + {id: 4, name: '작업 불량'} + ]; + } +} + +// 작업자 그리드 생성 +function populateWorkerGrid() { + const grid = document.getElementById('workerGrid'); + grid.innerHTML = ''; + + workers.forEach(worker => { + const btn = document.createElement('button'); + btn.type = 'button'; + btn.className = 'worker-btn'; + btn.textContent = worker.worker_name; + btn.dataset.id = worker.worker_id; + + btn.addEventListener('click', () => { + toggleWorkerSelection(worker.worker_id, btn); + }); + + grid.appendChild(btn); + }); +} + +// 작업자 선택 토글 +function toggleWorkerSelection(workerId, btnElement) { + if (selectedWorkers.has(workerId)) { + selectedWorkers.delete(workerId); + btnElement.classList.remove('selected'); + } else { + selectedWorkers.add(workerId); + btnElement.classList.add('selected'); + } + + const nextBtn = document.getElementById('nextStep2'); + nextBtn.disabled = selectedWorkers.size === 0; +} + +// 작업 항목 추가 +function addWorkEntry() { + const container = document.getElementById('workEntriesList'); + workEntryCounter++; + + const entryDiv = document.createElement('div'); + entryDiv.className = 'work-entry'; + entryDiv.dataset.id = workEntryCounter; + + entryDiv.innerHTML = ` +
+
작업 ${workEntryCounter}
+ +
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+ +
+ + +
+
+ +
+
+ + +
+
1시간
+
2시간
+
4시간
+
8시간
+
+
+
+ `; + + container.appendChild(entryDiv); + setupWorkEntryEvents(entryDiv); +} + +// 작업 항목 이벤트 설정 +function setupWorkEntryEvents(entryDiv) { + const timeInput = entryDiv.querySelector('.time-input'); + timeInput.addEventListener('input', updateTotalHours); + + entryDiv.querySelectorAll('.quick-time-btn').forEach(btn => { + btn.addEventListener('click', () => { + timeInput.value = btn.dataset.hours; + updateTotalHours(); + }); + }); + + const workStatusSelect = entryDiv.querySelector('.work-status-select'); + const errorTypeSection = entryDiv.querySelector('.error-type-section'); + + workStatusSelect.addEventListener('change', (e) => { + if (e.target.value === '2') { + errorTypeSection.classList.add('visible'); + errorTypeSection.querySelector('.error-type-select').required = true; + } else { + errorTypeSection.classList.remove('visible'); + errorTypeSection.querySelector('.error-type-select').required = false; + errorTypeSection.querySelector('.error-type-select').value = ''; + } + }); +} + +// 작업 항목 제거 +function removeWorkEntry(id) { + const entry = document.querySelector(`[data-id="${id}"]`); + if (entry) { + entry.remove(); + updateTotalHours(); + } +} + +// 총 시간 업데이트 +function updateTotalHours() { + const timeInputs = document.querySelectorAll('.time-input'); + let total = 0; + + timeInputs.forEach(input => { + const value = parseFloat(input.value) || 0; + total += value; + }); + + const display = document.getElementById('totalHoursDisplay'); + display.textContent = `총 작업시간: ${total}시간`; + + if (total > 24) { + display.style.background = 'linear-gradient(135deg, #e74c3c 0%, #c0392b 100%)'; + display.textContent += ' ⚠️ 24시간 초과'; + } else { + display.style.background = 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)'; + } +} + +// 저장 함수 (통합 API 사용) +async function saveWorkReport() { + const reportDate = document.getElementById('reportDate').value; + + if (!reportDate || selectedWorkers.size === 0) { + showMessage('날짜와 작업자를 선택해주세요.', 'error'); + return; + } + + const entries = document.querySelectorAll('.work-entry'); + if (entries.length === 0) { + showMessage('최소 하나의 작업을 추가해주세요.', 'error'); + return; + } + + const newWorkEntries = []; + + for (const entry of entries) { + const projectId = entry.querySelector('.project-select').value; + const workTypeId = entry.querySelector('.work-type-select').value; + const workStatusId = entry.querySelector('.work-status-select').value; + const errorTypeId = entry.querySelector('.error-type-select').value; + const workHours = entry.querySelector('.time-input').value; + + if (!projectId || !workTypeId || !workStatusId || !workHours) { + showMessage('모든 작업 항목을 완성해주세요.', 'error'); + return; + } + + if (workStatusId === '2' && !errorTypeId) { + showMessage('에러 상태인 경우 에러 유형을 선택해주세요.', 'error'); + return; + } + + newWorkEntries.push({ + project_id: parseInt(projectId), + work_type_id: parseInt(workTypeId), + work_status_id: parseInt(workStatusId), + error_type_id: errorTypeId ? parseInt(errorTypeId) : null, + work_hours: parseFloat(workHours) + }); + } + + try { + const submitBtn = document.getElementById('submitBtn'); + submitBtn.disabled = true; + submitBtn.textContent = '💾 저장 중...'; + + const currentUser = getCurrentUser(); + let totalSaved = 0; + let totalFailed = 0; + const failureDetails = []; + + for (const workerId of selectedWorkers) { + const requestData = { + report_date: reportDate, + worker_id: parseInt(workerId), + work_entries: newWorkEntries, + created_by: currentUser?.user_id || currentUser?.id + }; + + console.log('전송 데이터 (통합 API 사용):', requestData); + + try { + const result = await apiCall(`${API}/daily-work-reports`, { + method: 'POST', + body: JSON.stringify(requestData) + }); + + console.log('✅ 저장 성공 (통합 API):', result); + totalSaved++; + } catch (error) { + console.error('❌ 저장 실패:', error); + totalFailed++; + + const workerName = workers.find(w => w.worker_id == workerId)?.worker_name || '알 수 없음'; + failureDetails.push(`${workerName}: ${error.message}`); + } + } + + if (totalSaved > 0 && totalFailed === 0) { + showMessage(`✅ ${totalSaved}명의 작업보고서가 성공적으로 저장되었습니다!`, 'success'); + } else if (totalSaved > 0 && totalFailed > 0) { + showMessage(`⚠️ ${totalSaved}명 성공, ${totalFailed}명 실패. 실패: ${failureDetails.join(', ')}`, 'warning'); + } else { + showMessage(`❌ 모든 저장이 실패했습니다. 상세: ${failureDetails.join(', ')}`, 'error'); + } + + if (totalSaved > 0) { + setTimeout(() => { + refreshTodayWorkers(); + resetForm(); + }, 2000); + } + + } catch (error) { + console.error('저장 오류:', error); + showMessage('저장 중 예기치 못한 오류가 발생했습니다: ' + error.message, 'error'); + } finally { + const submitBtn = document.getElementById('submitBtn'); + submitBtn.disabled = false; + submitBtn.textContent = '💾 작업보고서 저장'; + } +} + +// 폼 초기화 +function resetForm() { + goToStep(1); + + selectedWorkers.clear(); + document.querySelectorAll('.worker-btn.selected').forEach(btn => { + btn.classList.remove('selected'); + }); + + const container = document.getElementById('workEntriesList'); + container.innerHTML = ''; + + workEntryCounter = 0; + updateTotalHours(); + + document.getElementById('nextStep2').disabled = true; +} + +// 당일 작업자 현황 로드 (본인 입력분만) - 통합 API 사용 +async function loadTodayWorkers() { + const section = document.getElementById('dailyWorkersSection'); + const content = document.getElementById('dailyWorkersContent'); + + if (!section || !content) { + console.log('당일 현황 섹션이 HTML에 없습니다.'); + return; + } + + try { + const today = getKoreaToday(); + const currentUser = getCurrentUser(); + + content.innerHTML = '
📊 내가 입력한 오늘의 작업 현황을 불러오는 중... (통합 API)
'; + section.style.display = 'block'; + + // 본인이 입력한 데이터만 조회 (통합 API 사용) + let queryParams = `date=${today}`; + if (currentUser?.user_id) { + queryParams += `&created_by=${currentUser.user_id}`; + } else if (currentUser?.id) { + queryParams += `&created_by=${currentUser.id}`; + } + + console.log(`🔒 본인 입력분만 조회 (통합 API): ${API}/daily-work-reports?${queryParams}`); + + const rawData = await apiCall(`${API}/daily-work-reports?${queryParams}`); + console.log('📊 당일 작업 데이터 (통합 API):', rawData); + + let data = []; + if (Array.isArray(rawData)) { + data = rawData; + } else if (rawData?.data) { + data = rawData.data; + } + + displayMyDailyWorkers(data, today); + + } catch (error) { + console.error('당일 작업자 로드 오류:', error); + content.innerHTML = ` +
+ ❌ 오늘의 작업 현황을 불러올 수 없습니다.
+ ${error.message} +
+ `; + } +} + +// 본인 입력 작업자 현황 표시 (수정/삭제 기능 포함) +function displayMyDailyWorkers(data, date) { + const content = document.getElementById('dailyWorkersContent'); + + if (!Array.isArray(data) || data.length === 0) { + content.innerHTML = ` +
+ 📝 내가 오늘(${date}) 입력한 작업이 없습니다.
+ 새로운 작업을 추가해보세요! +
+ `; + return; + } + + // 작업자별로 데이터 그룹화 + const workerGroups = {}; + data.forEach(work => { + const workerName = work.worker_name || '미지정'; + if (!workerGroups[workerName]) { + workerGroups[workerName] = []; + } + workerGroups[workerName].push(work); + }); + + const totalWorkers = Object.keys(workerGroups).length; + const totalWorks = data.length; + + const headerHtml = ` +
+

📊 내가 입력한 오늘(${date}) 작업 현황 - 총 ${totalWorkers}명, ${totalWorks}개 작업

+ +
+ `; + + const workersHtml = Object.entries(workerGroups).map(([workerName, works]) => { + const totalHours = works.reduce((sum, work) => { + return sum + parseFloat(work.work_hours || 0); + }, 0); + + // 개별 작업 항목들 (수정/삭제 버튼 포함) + const individualWorksHtml = works.map((work) => { + const projectName = work.project_name || '미지정'; + const workTypeName = work.work_type_name || '미지정'; + const workStatusName = work.work_status_name || '미지정'; + const workHours = work.work_hours || 0; + const errorTypeName = work.error_type_name || null; + const workId = work.id; + + return ` +
+
+
+
🏗️ 프로젝트
+
${projectName}
+
+
+
⚙️ 작업종류
+
${workTypeName}
+
+
+
📊 작업상태
+
${workStatusName}
+
+
+
⏰ 작업시간
+
${workHours}시간
+
+ ${errorTypeName ? ` +
+
❌ 에러유형
+
${errorTypeName}
+
+ ` : ''} +
+
+ + +
+
+ `; + }).join(''); + + return ` +
+
+
👤 ${workerName}
+
총 ${totalHours}시간
+
+
+ ${individualWorksHtml} +
+
+ `; + }).join(''); + + content.innerHTML = headerHtml + '
' + workersHtml + '
'; +} + +// 작업 항목 수정 함수 (통합 API 사용) +async function editWorkItem(workId) { + try { + console.log('수정할 작업 ID:', workId); + + // 1. 기존 데이터 조회 (통합 API 사용) + showMessage('작업 정보를 불러오는 중... (통합 API)', 'loading'); + + const workData = await apiCall(`${API}/daily-work-reports/${workId}`); + console.log('수정할 작업 데이터 (통합 API):', workData); + + // 2. 수정 모달 표시 + showEditModal(workData); + hideMessage(); + + } catch (error) { + console.error('작업 정보 조회 오류:', error); + showMessage('작업 정보를 불러올 수 없습니다: ' + error.message, 'error'); + } +} + +// 수정 모달 표시 +function showEditModal(workData) { + editingWorkId = workData.id; + + const modalHtml = ` +
+
+
+

✏️ 작업 수정

+ +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+ `; + + document.body.insertAdjacentHTML('beforeend', modalHtml); + + // 업무 상태 변경 이벤트 + document.getElementById('editWorkStatus').addEventListener('change', (e) => { + const errorTypeGroup = document.getElementById('editErrorTypeGroup'); + if (e.target.value === '2') { + errorTypeGroup.style.display = 'block'; + } else { + errorTypeGroup.style.display = 'none'; + } + }); +} + +// 수정 모달 닫기 +function closeEditModal() { + const modal = document.getElementById('editModal'); + if (modal) { + modal.remove(); + } + editingWorkId = null; +} + +// 수정된 작업 저장 (통합 API 사용) +async function saveEditedWork() { + try { + const projectId = document.getElementById('editProject').value; + const workTypeId = document.getElementById('editWorkType').value; + const workStatusId = document.getElementById('editWorkStatus').value; + const errorTypeId = document.getElementById('editErrorType').value; + const workHours = document.getElementById('editWorkHours').value; + + if (!projectId || !workTypeId || !workStatusId || !workHours) { + showMessage('모든 필수 항목을 입력해주세요.', 'error'); + return; + } + + if (workStatusId === '2' && !errorTypeId) { + showMessage('에러 상태인 경우 에러 유형을 선택해주세요.', 'error'); + return; + } + + const updateData = { + project_id: parseInt(projectId), + work_type_id: parseInt(workTypeId), + work_status_id: parseInt(workStatusId), + error_type_id: errorTypeId ? parseInt(errorTypeId) : null, + work_hours: parseFloat(workHours) + }; + + showMessage('작업을 수정하는 중... (통합 API)', 'loading'); + + const result = await apiCall(`${API}/daily-work-reports/${editingWorkId}`, { + method: 'PUT', + body: JSON.stringify(updateData) + }); + + console.log('✅ 수정 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 수정되었습니다!', 'success'); + + closeEditModal(); + refreshTodayWorkers(); + + } catch (error) { + console.error('❌ 수정 실패:', error); + showMessage('수정 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 작업 항목 삭제 함수 (통합 API 사용) +async function deleteWorkItem(workId) { + if (!confirm('정말로 이 작업을 삭제하시겠습니까?\n삭제된 작업은 복구할 수 없습니다.')) { + return; + } + + try { + console.log('삭제할 작업 ID:', workId); + + showMessage('작업을 삭제하는 중... (통합 API)', 'loading'); + + // 개별 항목 삭제 API 호출 (본인 작성분만 삭제 가능) - 통합 API 사용 + const result = await apiCall(`${API}/daily-work-reports/my-entry/${workId}`, { + method: 'DELETE' + }); + + console.log('✅ 삭제 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 삭제되었습니다!', 'success'); + + // 화면 새로고침 + refreshTodayWorkers(); + + } catch (error) { + console.error('❌ 삭제 실패:', error); + showMessage('삭제 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 오늘 현황 새로고침 +function refreshTodayWorkers() { + loadTodayWorkers(); +} + +// 이벤트 리스너 설정 +function setupEventListeners() { + document.getElementById('nextStep1').addEventListener('click', () => { + const dateInput = document.getElementById('reportDate'); + if (dateInput && dateInput.value) { + goToStep(2); + } else { + showMessage('날짜를 선택해주세요.', 'error'); + } + }); + + document.getElementById('nextStep2').addEventListener('click', () => { + if (selectedWorkers.size > 0) { + goToStep(3); + addWorkEntry(); + } else { + showMessage('작업자를 선택해주세요.', 'error'); + } + }); + + document.getElementById('addWorkBtn').addEventListener('click', addWorkEntry); + document.getElementById('submitBtn').addEventListener('click', saveWorkReport); +} + +// 초기화 +async function init() { + try { + const token = localStorage.getItem('token'); + if (!token || token === 'undefined') { + showMessage('로그인이 필요합니다.', 'error'); + localStorage.removeItem('token'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return; + } + + document.getElementById('reportDate').value = getKoreaToday(); + + await loadData(); + setupEventListeners(); + loadTodayWorkers(); + + console.log('✅ 시스템 초기화 완료 (통합 API 설정 적용)'); + + } catch (error) { + console.error('초기화 오류:', error); + showMessage('초기화 중 오류가 발생했습니다.', 'error'); + } +} + +// 페이지 로드 시 초기화 +document.addEventListener('DOMContentLoaded', init); + +// 전역 함수로 노출 +window.removeWorkEntry = removeWorkEntry; +window.refreshTodayWorkers = refreshTodayWorkers; +window.editWorkItem = editWorkItem; +window.deleteWorkItem = deleteWorkItem; +window.closeEditModal = closeEditModal; +window.saveEditedWork = saveEditedWork; \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/factory-upload.js b/deploy/tkfb-package/fastapi-bridge/static/js/factory-upload.js new file mode 100644 index 0000000..e2288ce --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/factory-upload.js @@ -0,0 +1,49 @@ +import { API, getAuthHeaders } from '/js/api-config.js'; + +document.getElementById('uploadForm').addEventListener('submit', async (e) => { + e.preventDefault(); + const formData = new FormData(e.target); + + try { + // FormData를 사용할 때는 Content-Type을 설정하지 않음 (자동 설정됨) + const token = localStorage.getItem('token'); + const res = await fetch(`${API}/factoryinfo`, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${token}` + }, + body: formData + }); + + if (!res.ok) { + const error = await res.json(); + throw new Error(error.message || '등록 실패'); + } + + alert('등록 완료!'); + location.reload(); + } catch (err) { + console.error(err); + alert('등록 실패: ' + err.message); + } +}); + +// 파일 선택 시 미리보기 (선택사항) +const fileInput = document.querySelector('input[name="map_image"]'); +if (fileInput) { + fileInput.addEventListener('change', function(e) { + const file = e.target.files[0]; + + if (file && file.type.startsWith('image/')) { + // 미리보기 요소가 있을 경우에만 동작 + const preview = document.getElementById('file-preview'); + if (preview) { + const reader = new FileReader(); + reader.onload = function(e) { + preview.innerHTML = `미리보기`; + }; + reader.readAsDataURL(file); + } + } + }); +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/factory-view.js b/deploy/tkfb-package/fastapi-bridge/static/js/factory-view.js new file mode 100644 index 0000000..00a6b9c --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/factory-view.js @@ -0,0 +1,38 @@ +import { API, getAuthHeaders } from '/js/api-config.js'; + +(async () => { + const pathParts = location.pathname.split('/'); + const id = pathParts[pathParts.length - 1]; + + try { + const res = await fetch(`${API}/factoryinfo/${id}`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error('조회 실패'); + } + + const data = await res.json(); + + // DOM 요소가 존재하는지 확인 후 설정 + const nameEl = document.getElementById('factoryName'); + if (nameEl) nameEl.textContent = data.factory_name; + + const addressEl = document.getElementById('factoryAddress'); + if (addressEl) addressEl.textContent = '📍 ' + data.address; + + const imageEl = document.getElementById('factoryImage'); + if (imageEl) imageEl.src = data.map_image_url; + + const descEl = document.getElementById('factoryDescription'); + if (descEl) descEl.textContent = data.description; + + } catch (err) { + console.error(err); + const container = document.querySelector('.container'); + if (container) { + container.innerHTML = '

공장 정보를 불러올 수 없습니다.

'; + } + } +})(); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/group-leader-dashboard.js b/deploy/tkfb-package/fastapi-bridge/static/js/group-leader-dashboard.js new file mode 100644 index 0000000..1fa0292 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/group-leader-dashboard.js @@ -0,0 +1,103 @@ +// /js/group-leader-dashboard.js +// 그룹장 전용 대시보드 기능 + +console.log('📊 그룹장 대시보드 스크립트 로딩'); + +// 팀 현황 새로고침 +async function refreshTeamStatus() { + console.log('🔄 팀 현황 새로고침 시작'); + + try { + // 로딩 상태 표시 + const teamList = document.getElementById('team-list'); + if (teamList) { + teamList.innerHTML = '
⏳ 로딩 중...
'; + } + + // 실제로는 API 호출 + // const response = await fetch('/api/team-status', { headers: getAuthHeaders() }); + // const data = await response.json(); + + // 임시 데이터로 업데이트 (실제 API 연동 시 교체) + setTimeout(() => { + updateTeamStatusUI(); + }, 1000); + + } catch (error) { + console.error('❌ 팀 현황 로딩 실패:', error); + const teamList = document.getElementById('team-list'); + if (teamList) { + teamList.innerHTML = '
❌ 로딩 실패
'; + } + } +} + +// 팀 현황 UI 업데이트 (임시 데이터) +function updateTeamStatusUI() { + const teamData = [ + { name: '김작업', status: 'present', statusText: '출근' }, + { name: '이현장', status: 'present', statusText: '출근' }, + { name: '박휴가', status: 'absent', statusText: '휴가' }, + { name: '최작업', status: 'present', statusText: '출근' }, + { name: '정현장', status: 'present', statusText: '출근' } + ]; + + const teamList = document.getElementById('team-list'); + if (teamList) { + teamList.innerHTML = teamData.map(member => ` +
+ ${member.name} + ${member.statusText} +
+ `).join(''); + } + + // 통계 업데이트 + const presentCount = teamData.filter(m => m.status === 'present').length; + const absentCount = teamData.filter(m => m.status === 'absent').length; + + const totalEl = document.getElementById('team-total'); + const presentEl = document.getElementById('team-present'); + const absentEl = document.getElementById('team-absent'); + + if (totalEl) totalEl.textContent = teamData.length; + if (presentEl) presentEl.textContent = presentCount; + if (absentEl) absentEl.textContent = absentCount; + + console.log('✅ 팀 현황 업데이트 완료'); +} + +// 환영 메시지 개인화 +function personalizeWelcome() { + const user = JSON.parse(localStorage.getItem('user') || '{}'); + const welcomeMsg = document.getElementById('welcome-message'); + + if (user && user.name && welcomeMsg) { + welcomeMsg.textContent = `${user.name}님의 실시간 팀 현황 및 작업 모니터링`; + console.log('✅ 환영 메시지 개인화 완료'); + } +} + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', function() { + console.log('🚀 그룹장 대시보드 초기화 시작'); + + // 사용자 정보 확인 + const user = JSON.parse(localStorage.getItem('user') || '{}'); + console.log('👤 현재 사용자:', user); + + // 권한 확인 + if (user.access_level !== 'group_leader') { + console.warn('⚠️ 그룹장 권한 없음:', user.access_level); + // 필요시 다른 페이지로 리다이렉트 + } + + // 초기화 작업 + personalizeWelcome(); + updateTeamStatusUI(); + + console.log('✅ 그룹장 대시보드 초기화 완료'); +}); + +// 전역 함수로 내보내기 (HTML에서 사용) +window.refreshTeamStatus = refreshTeamStatus; \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/load-navbar.js b/deploy/tkfb-package/fastapi-bridge/static/js/load-navbar.js new file mode 100644 index 0000000..79e000f --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/load-navbar.js @@ -0,0 +1,144 @@ +// js/load-navbar.js +import { getUser, clearAuthData } from './auth.js'; + +// 역할 이름을 한글로 변환하는 맵 +const ROLE_NAMES = { + admin: '관리자', + system: '시스템 관리자', + leader: '그룹장', + user: '작업자', + support: '지원팀', + default: '사용자', +}; + +/** + * 사용자 역할에 따라 메뉴 항목을 필터링합니다. + * @param {Document} doc - 파싱된 HTML 문서 객체 + * @param {string} userRole - 현재 사용자의 역할 + */ +function filterMenuByRole(doc, userRole) { + const selectors = [ + { role: 'admin', selector: '.admin-only' }, + { role: 'system', selector: '.system-only' }, + { role: 'leader', selector: '.leader-only' }, + ]; + + selectors.forEach(({ role, selector }) => { + // 사용자가 해당 역할을 가지고 있지 않으면 메뉴 항목을 제거 + if (userRole !== role) { + doc.querySelectorAll(selector).forEach(el => el.remove()); + } + }); +} + +/** + * 네비게이션 바에 사용자 정보를 채웁니다. + * @param {Document} doc - 파싱된 HTML 문서 객체 + * @param {object} user - 현재 사용자 객체 + */ +function populateUserInfo(doc, user) { + const displayName = user.name || user.username; + const roleName = ROLE_NAMES[user.role] || ROLE_NAMES.default; + + // 상단 바 사용자 이름 + const userNameEl = doc.getElementById('user-name'); + if (userNameEl) userNameEl.textContent = displayName; + + // 상단 바 사용자 역할 + const userRoleEl = doc.getElementById('user-role'); + if (userRoleEl) userRoleEl.textContent = roleName; + + // 드롭다운 메뉴 사용자 이름 + const dropdownNameEl = doc.getElementById('dropdown-user-fullname'); + if (dropdownNameEl) dropdownNameEl.textContent = displayName; + + // 드롭다운 메뉴 사용자 아이디 + const dropdownIdEl = doc.getElementById('dropdown-user-id'); + if (dropdownIdEl) dropdownIdEl.textContent = `@${user.username}`; +} + +/** + * 네비게이션 바와 관련된 모든 이벤트를 설정합니다. + */ +function setupNavbarEvents() { + const userInfoDropdown = document.getElementById('user-info-dropdown'); + const profileDropdownMenu = document.getElementById('profile-dropdown-menu'); + + // 드롭다운 토글 + if (userInfoDropdown && profileDropdownMenu) { + userInfoDropdown.addEventListener('click', (e) => { + e.stopPropagation(); + profileDropdownMenu.classList.toggle('show'); + userInfoDropdown.classList.toggle('active'); + }); + } + + // 로그아웃 버튼 + const logoutButton = document.getElementById('dropdown-logout'); + if (logoutButton) { + logoutButton.addEventListener('click', () => { + if (confirm('로그아웃 하시겠습니까?')) { + clearAuthData(); + window.location.href = '/index.html'; + } + }); + } + + // 외부 클릭 시 드롭다운 닫기 + document.addEventListener('click', (e) => { + if (profileDropdownMenu && !userInfoDropdown.contains(e.target) && !profileDropdownMenu.contains(e.target)) { + profileDropdownMenu.classList.remove('show'); + userInfoDropdown.classList.remove('active'); + } + }); +} + +/** + * 현재 시간을 업데이트하는 함수 + */ +function updateTime() { + const timeElement = document.getElementById('current-time'); + if (timeElement) { + const now = new Date(); + timeElement.textContent = now.toLocaleTimeString('ko-KR', { hour12: false }); + } +} + + +// 메인 로직: DOMContentLoaded 시 실행 +document.addEventListener('DOMContentLoaded', async () => { + const navbarContainer = document.getElementById('navbar-container'); + if (!navbarContainer) return; + + const currentUser = getUser(); + if (!currentUser) return; // 사용자가 없으면 아무 작업도 하지 않음 + + try { + const response = await fetch('/components/navbar.html'); + const htmlText = await response.text(); + + // 1. 텍스트를 가상 DOM으로 파싱 + const parser = new DOMParser(); + const doc = parser.parseFromString(htmlText, 'text/html'); + + // 2. DOM에 삽입하기 *전*에 내용 수정 + filterMenuByRole(doc, currentUser.role); + populateUserInfo(doc, currentUser); + + // 3. 수정 완료된 HTML을 실제 DOM에 삽입 (깜빡임 방지) + navbarContainer.innerHTML = doc.body.innerHTML; + + // 4. DOM에 삽입된 후에 이벤트 리스너 설정 + setupNavbarEvents(); + + // 5. 실시간 시간 업데이트 시작 + updateTime(); + setInterval(updateTime, 1000); + + console.log('✅ 네비게이션 바 로딩 완료'); + + } catch (error) { + console.error('🔴 네비게이션 바 로딩 중 오류 발생:', error); + navbarContainer.innerHTML = '

네비게이션 바를 불러오는 데 실패했습니다.

'; + } +}); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/load-sections.js b/deploy/tkfb-package/fastapi-bridge/static/js/load-sections.js new file mode 100644 index 0000000..6b735ff --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/load-sections.js @@ -0,0 +1,104 @@ +// /js/load-sections.js +import { getUser } from './auth.js'; +import { apiGet } from './api-helper.js'; + +// 역할에 따라 불러올 섹션 HTML 파일을 매핑합니다. +const SECTION_MAP = { + admin: '/components/sections/admin-sections.html', + system: '/components/sections/admin-sections.html', // system도 admin과 동일한 섹션을 사용 + leader: '/components/sections/leader-sections.html', + user: '/components/sections/user-sections.html', + default: '/components/sections/user-sections.html', // 역할이 없는 경우 기본값 +}; + +/** + * API를 통해 대시보드 통계 데이터를 가져옵니다. + * @returns {Promise} 통계 데이터 또는 에러 시 null + */ +async function fetchDashboardStats() { + try { + const today = new Date().toISOString().split('T')[0]; + // 실제 백엔드 엔드포인트는 /api/dashboard/stats 와 같은 형태로 구현될 수 있습니다. + const stats = await apiGet(`/workreports?start=${today}&end=${today}`); + // 필요한 데이터 형태로 가공 (예시) + return { + today_reports_count: stats.length, + today_workers_count: new Set(stats.map(d => d.worker_id)).size, + }; + } catch (error) { + console.error('대시보드 통계 데이터 로드 실패:', error); + return null; + } +} + +/** + * 가상 DOM에 통계 데이터를 채워 넣습니다. + * @param {Document} doc - 파싱된 HTML 문서 객체 + * @param {object} stats - 통계 데이터 + */ +function populateStatsData(doc, stats) { + if (!stats) return; + + const todayStatsEl = doc.getElementById('today-stats'); + if (todayStatsEl) { + todayStatsEl.innerHTML = ` +

📝 오늘 등록된 작업: ${stats.today_reports_count}건

+

👥 참여 작업자: ${stats.today_workers_count}명

+ `; + } +} + +/** + * 메인 로직: 페이지에 역할별 섹션을 로드하고 내용을 채웁니다. + */ +async function initializeSections() { + const mainContainer = document.querySelector('main[id$="-sections"]'); + if (!mainContainer) { + console.error('섹션을 담을 메인 컨테이너를 찾을 수 없습니다.'); + return; + } + mainContainer.innerHTML = '
콘텐츠를 불러오는 중...
'; + + const currentUser = getUser(); + if (!currentUser) { + mainContainer.innerHTML = '
사용자 정보를 찾을 수 없습니다.
'; + return; + } + + const sectionFile = SECTION_MAP[currentUser.role] || SECTION_MAP.default; + + try { + // 1. 역할에 맞는 HTML 템플릿과 동적 데이터를 동시에 로드 (Promise.all 활용) + const [htmlResponse, statsData] = await Promise.all([ + fetch(sectionFile), + fetchDashboardStats() + ]); + + if (!htmlResponse.ok) { + throw new Error(`섹션 파일(${sectionFile})을 불러오는 데 실패했습니다.`); + } + const htmlText = await htmlResponse.text(); + + // 2. 텍스트를 가상 DOM으로 파싱 + const parser = new DOMParser(); + const doc = parser.parseFromString(htmlText, 'text/html'); + + // 3. (필요 시) 역할 기반으로 가상 DOM 필터링 - 현재는 파일 자체가 역할별로 나뉘어 불필요 + // filterByRole(doc, currentUser.role); + + // 4. 가상 DOM에 동적 데이터 채우기 + populateStatsData(doc, statsData); + + // 5. 모든 수정이 완료된 HTML을 실제 DOM에 한 번에 삽입 + mainContainer.innerHTML = doc.body.innerHTML; + + console.log(`✅ ${currentUser.role} 역할의 섹션 로딩 완료.`); + + } catch (error) { + console.error('섹션 로딩 중 오류 발생:', error); + mainContainer.innerHTML = `
콘텐츠 로딩에 실패했습니다: ${error.message}
`; + } +} + +// DOM이 로드되면 섹션 초기화를 시작합니다. +document.addEventListener('DOMContentLoaded', initializeSections); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/load-sidebar.js b/deploy/tkfb-package/fastapi-bridge/static/js/load-sidebar.js new file mode 100644 index 0000000..5f912a2 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/load-sidebar.js @@ -0,0 +1,67 @@ +// /js/load-sidebar.js +import { getUser } from './auth.js'; + +/** + * 사용자 역할에 따라 사이드바 메뉴 항목을 필터링합니다. + * @param {Document} doc - 파싱된 HTML 문서 객체 + * @param {string} userRole - 현재 사용자의 역할 + */ +function filterSidebarByRole(doc, userRole) { + // 'system' 역할은 모든 메뉴를 볼 수 있으므로 필터링하지 않음 + if (userRole === 'system') { + return; + } + + // 역할과 그에 해당하는 클래스 선택자 매핑 + const roleClassMap = { + admin: '.admin-only', + leader: '.leader-only', + user: '.user-only', // 또는 'worker-only' 등, sidebar.html에 정의된 클래스에 맞춰야 함 + support: '.support-only' + }; + + // 모든 역할 기반 선택자를 가져옴 + const allRoleSelectors = Object.values(roleClassMap).join(', '); + const allRoleElements = doc.querySelectorAll(allRoleSelectors); + + allRoleElements.forEach(el => { + // 요소가 현재 사용자 역할에 해당하는 클래스를 가지고 있는지 확인 + const userRoleSelector = roleClassMap[userRole]; + if (!userRoleSelector || !el.matches(userRoleSelector)) { + el.remove(); + } + }); +} + + +document.addEventListener('DOMContentLoaded', async () => { + const sidebarContainer = document.getElementById('sidebar-container'); + if (!sidebarContainer) return; + + const currentUser = getUser(); + if (!currentUser) return; // 비로그인 상태면 사이드바를 로드하지 않음 + + try { + const response = await fetch('/components/sidebar.html'); + if (!response.ok) { + throw new Error(`사이드바 파일을 불러올 수 없습니다: ${response.statusText}`); + } + const htmlText = await response.text(); + + // 1. 텍스트를 가상 DOM으로 파싱 + const parser = new DOMParser(); + const doc = parser.parseFromString(htmlText, 'text/html'); + + // 2. DOM에 삽입하기 *전*에 역할에 따라 메뉴 필터링 + filterSidebarByRole(doc, currentUser.role); + + // 3. 수정 완료된 HTML을 실제 DOM에 삽입 + sidebarContainer.innerHTML = doc.body.innerHTML; + + console.log('✅ 사이드바 로딩 및 필터링 완료'); + + } catch (error) { + console.error('🔴 사이드바 로딩 실패:', error); + sidebarContainer.innerHTML = '

메뉴 로딩 실패

'; + } +}); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/login.js b/deploy/tkfb-package/fastapi-bridge/static/js/login.js new file mode 100644 index 0000000..9e79b91 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/login.js @@ -0,0 +1,58 @@ +// /js/login.js + +import { login } from './api-helper.js'; +import { saveAuthData, clearAuthData } from './auth.js'; + +document.getElementById('loginForm').addEventListener('submit', async function (e) { + e.preventDefault(); + + const username = document.getElementById('username').value; + const password = document.getElementById('password').value; + const errorDiv = document.getElementById('error'); + + const submitBtn = e.target.querySelector('button[type="submit"]'); + const originalText = submitBtn.textContent; + + // 로딩 상태 시작 + submitBtn.disabled = true; + submitBtn.textContent = '로그인 중...'; + errorDiv.style.display = 'none'; + + try { + // API 헬퍼를 통해 로그인 요청 + const result = await login(username, password); + + if (result.success && result.token) { + // 인증 정보 저장 + saveAuthData(result.token, result.user); + + // 백엔드가 지정한 URL로 리디렉션 + const redirectUrl = result.redirectUrl || '/pages/dashboard/user.html'; // 혹시 모를 예외처리 + + // 부드러운 화면 전환 효과 + document.body.style.transition = 'opacity 0.3s ease-out'; + document.body.style.opacity = '0'; + + setTimeout(() => { + window.location.href = redirectUrl; + }, 300); + + } else { + // 이 케이스는 api-helper에서 throw new Error()로 처리되어 catch 블록으로 바로 이동합니다. + // 하지만, 만약의 경우를 대비해 방어 코드를 남겨둡니다. + clearAuthData(); + errorDiv.textContent = result.error || '로그인에 실패했습니다.'; + errorDiv.style.display = 'block'; + } + } catch (err) { + console.error('로그인 오류:', err); + clearAuthData(); + // api-helper에서 보낸 에러 메시지를 표시 + errorDiv.textContent = err.message || '서버 연결에 실패했습니다.'; + errorDiv.style.display = 'block'; + } finally { + // 로딩 상태 해제 + submitBtn.disabled = false; + submitBtn.textContent = originalText; + } +}); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/manage-issue.js b/deploy/tkfb-package/fastapi-bridge/static/js/manage-issue.js new file mode 100644 index 0000000..dba6317 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/manage-issue.js @@ -0,0 +1,86 @@ +import { API, getAuthHeaders } from '/js/api-config.js'; + +function createRow(item, cols, delHandler) { + const tr = document.createElement('tr'); + cols.forEach(key => { + const td = document.createElement('td'); + td.textContent = item[key]; + tr.appendChild(td); + }); + const delBtn = document.createElement('button'); + delBtn.textContent = '삭제'; + delBtn.className = 'btn-delete'; + delBtn.onclick = () => delHandler(item); + const td = document.createElement('td'); + td.appendChild(delBtn); + tr.appendChild(td); + return tr; +} + +const form = document.getElementById('issueTypeForm'); +form?.addEventListener('submit', async e => { + e.preventDefault(); + const body = { + category: document.getElementById('category').value, + subcategory: document.getElementById('subcategory').value + }; + try { + const res = await fetch(`${API}/issue-types`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify(body) + }); + const result = await res.json(); + if (res.ok && result.success) { + alert('✅ 등록 완료'); + form.reset(); + loadIssueTypes(); + } else { + alert('❌ 실패: ' + (result.error || '알 수 없는 오류')); + } + } catch (err) { + alert('🚨 서버 오류: ' + err.message); + } +}); + +async function loadIssueTypes() { + const tbody = document.getElementById('issueTypeTableBody'); + tbody.innerHTML = '불러오는 중...'; + try { + const res = await fetch(`${API}/issue-types`, { + headers: getAuthHeaders() + }); + const list = await res.json(); + tbody.innerHTML = ''; + + if (Array.isArray(list)) { + list.forEach(item => { + const row = createRow(item, ['issue_type_id', 'category', 'subcategory'], async t => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await fetch(`${API}/issue-types/${t.issue_type_id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + if (delRes.ok) { + loadIssueTypes(); + } else { + alert('삭제 실패'); + } + } catch (err) { + alert('삭제 중 오류: ' + err.message); + } + }); + tbody.appendChild(row); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (err) { + tbody.innerHTML = '로드 실패: ' + err.message + ''; + } +} + +document.addEventListener('DOMContentLoaded', () => { + loadIssueTypes(); +}); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/manage-pipespec.js b/deploy/tkfb-package/fastapi-bridge/static/js/manage-pipespec.js new file mode 100644 index 0000000..cceabb4 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/manage-pipespec.js @@ -0,0 +1,93 @@ +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +ensureAuthenticated(); + +// 행 생성 +function createRow(item, delHandler) { + const tr = document.createElement('tr'); + const label = `${item.material} / ${item.diameter_in} / ${item.schedule}`; + tr.innerHTML = ` + ${item.spec_id} + ${label} + + `; + tr.querySelector('.btn-delete').onclick = () => delHandler(item); + return tr; +} + +// 등록 +document.getElementById('specForm')?.addEventListener('submit', async e => { + e.preventDefault(); + const material = document.getElementById('material').value.trim(); + const diameter = document.getElementById('diameter_in').value.trim(); + const schedule = document.getElementById('schedule').value.trim(); + + if (!material || !diameter || !schedule) { + return alert('모든 항목을 입력하세요.'); + } + + try { + const res = await fetch(`${API}/pipespecs`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify({ material, diameter_in: diameter, schedule }) + }); + const result = await res.json(); + if (res.ok && result.success) { + alert('✅ 등록 완료'); + e.target.reset(); + loadSpecs(); + } else { + alert('❌ 실패: ' + (result.error || '등록 실패')); + } + } catch (err) { + alert('🚨 서버 오류: ' + err.message); + } +}); + +// 불러오기 +async function loadSpecs() { + const tbody = document.getElementById('specTableBody'); + tbody.innerHTML = '불러오는 중...'; + try { + const res = await fetch(`${API}/pipespecs`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const list = await res.json(); + tbody.innerHTML = ''; + + if (Array.isArray(list)) { + list.forEach(item => { + const row = createRow(item, async (spec) => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await fetch(`${API}/pipespecs/${spec.spec_id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + if (delRes.ok) { + loadSpecs(); + } else { + alert('삭제 실패'); + } + } catch (err) { + alert('삭제 중 오류: ' + err.message); + } + }); + tbody.appendChild(row); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (err) { + tbody.innerHTML = '로드 실패: ' + err.message + ''; + } +} + +window.addEventListener('DOMContentLoaded', loadSpecs); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/manage-project.js b/deploy/tkfb-package/fastapi-bridge/static/js/manage-project.js new file mode 100644 index 0000000..323b6ed --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/manage-project.js @@ -0,0 +1,108 @@ +// /js/manage-project.js + +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +ensureAuthenticated(); + +function createRow(item, cols, delHandler) { + const tr = document.createElement('tr'); + cols.forEach(key => { + const td = document.createElement('td'); + td.textContent = item[key]; + tr.appendChild(td); + }); + const delBtn = document.createElement('button'); + delBtn.textContent = '삭제'; + delBtn.className = 'btn-delete'; + delBtn.onclick = () => delHandler(item); + const td = document.createElement('td'); + td.appendChild(delBtn); + tr.appendChild(td); + return tr; +} + +const projectForm = document.getElementById('projectForm'); +projectForm?.addEventListener('submit', async e => { + e.preventDefault(); + const body = { + job_no: document.getElementById('job_no').value.trim(), + project_name: document.getElementById('project_name').value.trim(), + contract_date: document.getElementById('contract_date').value, + due_date: document.getElementById('due_date').value, + delivery_method: document.getElementById('delivery_method').value.trim(), + site: document.getElementById('site').value.trim(), + pm: document.getElementById('pm').value.trim() + }; + + if (!body.project_name || !body.job_no) { + return alert('필수 항목을 입력하세요.'); + } + + try { + const res = await fetch(`${API}/projects`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify(body) + }); + const result = await res.json(); + if (res.ok && result.success) { + alert('✅ 등록 완료'); + projectForm.reset(); + loadProjects(); + } else { + alert('❌ 실패: ' + (result.error || '알 수 없는 오류')); + } + } catch (err) { + alert('🚨 서버 오류: ' + err.message); + } +}); + +async function loadProjects() { + const tbody = document.getElementById('projectTableBody'); + tbody.innerHTML = '불러오는 중...'; + try { + const res = await fetch(`${API}/projects`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const list = await res.json(); + tbody.innerHTML = ''; + + if (Array.isArray(list)) { + list.forEach(item => { + const row = createRow(item, [ + 'project_id', 'job_no', 'project_name', 'contract_date', + 'due_date', 'delivery_method', 'site', 'pm' + ], async p => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await fetch(`${API}/projects/${p.project_id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + if (delRes.ok) { + alert('✅ 삭제 완료'); + loadProjects(); + } else { + alert('❌ 삭제 실패'); + } + } catch (err) { + alert('🚨 삭제 중 오류: ' + err.message); + } + }); + tbody.appendChild(row); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (err) { + tbody.innerHTML = '로드 실패: ' + err.message + ''; + } +} + +window.addEventListener('DOMContentLoaded', loadProjects); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/manage-task.js b/deploy/tkfb-package/fastapi-bridge/static/js/manage-task.js new file mode 100644 index 0000000..b6288bd --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/manage-task.js @@ -0,0 +1,104 @@ +// /js/manage-task.js + +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +ensureAuthenticated(); + +function createRow(item, cols, delHandler) { + const tr = document.createElement('tr'); + cols.forEach(key => { + const td = document.createElement('td'); + td.textContent = item[key]; + tr.appendChild(td); + }); + const delBtn = document.createElement('button'); + delBtn.textContent = '삭제'; + delBtn.className = 'btn-delete'; + delBtn.onclick = () => delHandler(item); + const td = document.createElement('td'); + td.appendChild(delBtn); + tr.appendChild(td); + return tr; +} + +const taskForm = document.getElementById('taskForm'); +taskForm?.addEventListener('submit', async e => { + e.preventDefault(); + const body = { + category: document.getElementById('category').value.trim(), + subcategory: document.getElementById('subcategory').value.trim(), + task_name: document.getElementById('task_name').value.trim(), + description: document.getElementById('description').value.trim() + }; + + if (!body.category || !body.task_name) { + return alert('필수 항목을 입력하세요'); + } + + try { + const res = await fetch(`${API}/tasks`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify(body) + }); + const result = await res.json(); + if (res.ok && result.success) { + alert('✅ 등록 완료'); + taskForm.reset(); + loadTasks(); + } else { + alert('❌ 실패: ' + (result.error || '알 수 없는 오류')); + } + } catch (err) { + alert('🚨 서버 오류: ' + err.message); + } +}); + +async function loadTasks() { + const tbody = document.getElementById('taskTableBody'); + tbody.innerHTML = '불러오는 중...'; + try { + const res = await fetch(`${API}/tasks`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const list = await res.json(); + tbody.innerHTML = ''; + + if (Array.isArray(list)) { + list.forEach(item => { + const row = createRow(item, [ + 'task_id', 'category', 'subcategory', 'task_name', 'description' + ], async t => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await fetch(`${API}/tasks/${t.task_id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + if (delRes.ok) { + alert('✅ 삭제 완료'); + loadTasks(); + } else { + alert('❌ 삭제 실패'); + } + } catch (err) { + alert('🚨 삭제 중 오류: ' + err.message); + } + }); + tbody.appendChild(row); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (err) { + tbody.innerHTML = '로드 실패: ' + err.message + ''; + } +} + +window.addEventListener('DOMContentLoaded', loadTasks); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/manage-user.js b/deploy/tkfb-package/fastapi-bridge/static/js/manage-user.js new file mode 100644 index 0000000..4f07386 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/manage-user.js @@ -0,0 +1,288 @@ +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +const token = ensureAuthenticated(); + +const accessLabels = { + worker: '작업자', + group_leader: '그룹장', + support_team: '지원팀', + admin: '관리자', + system: '시스템' +}; + +// 현재 사용자 정보 가져오기 +const currentUser = JSON.parse(localStorage.getItem('user') || '{}'); +const isSystemUser = currentUser.access_level === 'system'; + +function createRow(item, cols, delHandler) { + const tr = document.createElement('tr'); + cols.forEach(key => { + const td = document.createElement('td'); + td.textContent = item[key] || '-'; + tr.appendChild(td); + }); + const delBtn = document.createElement('button'); + delBtn.textContent = '삭제'; + delBtn.className = 'btn-delete'; + delBtn.onclick = () => delHandler(item); + const td = document.createElement('td'); + td.appendChild(delBtn); + tr.appendChild(td); + return tr; +} + +// 내 비밀번호 변경 +const myPasswordForm = document.getElementById('myPasswordForm'); +myPasswordForm?.addEventListener('submit', async e => { + e.preventDefault(); + + const currentPassword = document.getElementById('currentPassword').value; + const newPassword = document.getElementById('newPassword').value; + const confirmPassword = document.getElementById('confirmPassword').value; + + // 새 비밀번호 확인 + if (newPassword !== confirmPassword) { + alert('❌ 새 비밀번호가 일치하지 않습니다.'); + return; + } + + // 비밀번호 강도 검사 + if (newPassword.length < 6) { + alert('❌ 비밀번호는 최소 6자 이상이어야 합니다.'); + return; + } + + try { + const res = await fetch(`${API}/auth/change-password`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify({ + currentPassword, + newPassword + }) + }); + + const result = await res.json(); + + if (res.ok && result.success) { + showToast('✅ 비밀번호가 변경되었습니다.'); + myPasswordForm.reset(); + + // 3초 후 로그인 페이지로 이동 + setTimeout(() => { + alert('비밀번호가 변경되어 다시 로그인해주세요.'); + localStorage.removeItem('token'); + localStorage.removeItem('user'); + window.location.href = '/index.html'; + }, 2000); + } else { + alert('❌ 비밀번호 변경 실패: ' + (result.error || '현재 비밀번호가 올바르지 않습니다.')); + } + } catch (error) { + console.error('Password change error:', error); + alert('🚨 서버 오류: ' + error.message); + } +}); + +// 시스템 권한자만 볼 수 있는 사용자 비밀번호 변경 섹션 +if (isSystemUser) { + const systemCard = document.getElementById('systemPasswordChangeCard'); + if (systemCard) { + systemCard.style.display = 'block'; + } + + // 사용자 비밀번호 변경 (시스템 권한자) + const userPasswordForm = document.getElementById('userPasswordForm'); + userPasswordForm?.addEventListener('submit', async e => { + e.preventDefault(); + + const targetUserId = document.getElementById('targetUserId').value; + const newPassword = document.getElementById('targetNewPassword').value; + + if (!targetUserId) { + alert('❌ 사용자를 선택해주세요.'); + return; + } + + if (newPassword.length < 6) { + alert('❌ 비밀번호는 최소 6자 이상이어야 합니다.'); + return; + } + + if (!confirm('정말로 이 사용자의 비밀번호를 변경하시겠습니까?')) { + return; + } + + try { + const res = await fetch(`${API}/auth/admin/change-password`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify({ + userId: targetUserId, + newPassword + }) + }); + + const result = await res.json(); + + if (res.ok && result.success) { + showToast('✅ 사용자 비밀번호가 변경되었습니다.'); + userPasswordForm.reset(); + } else { + alert('❌ 비밀번호 변경 실패: ' + (result.error || '권한이 없습니다.')); + } + } catch (error) { + console.error('Admin password change error:', error); + alert('🚨 서버 오류: ' + error.message); + } + }); +} + +// 사용자 등록 +const userForm = document.getElementById('userForm'); +userForm?.addEventListener('submit', async e => { + e.preventDefault(); + const body = { + username: document.getElementById('username').value.trim(), + password: document.getElementById('password').value.trim(), + name: document.getElementById('name').value.trim(), + access_level: document.getElementById('access_level').value, + worker_id: document.getElementById('worker_id').value || null + }; + + try { + const res = await fetch(`${API}/auth/register`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify(body) + }); + const result = await res.json(); + if (res.ok && result.success) { + showToast('✅ 등록 완료'); + userForm.reset(); + loadUsers(); + } else { + alert('❌ 실패: ' + (result.error || '알 수 없는 오류')); + } + } catch (error) { + console.error('Registration error:', error); + alert('🚨 서버 오류: ' + error.message); + } +}); + +async function loadUsers() { + const tbody = document.getElementById('userTableBody'); + tbody.innerHTML = '불러오는 중...'; + + try { + const res = await fetch(`${API}/auth/users`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const list = await res.json(); + tbody.innerHTML = ''; + + if (Array.isArray(list)) { + // 시스템 권한자용 사용자 선택 옵션도 업데이트 + if (isSystemUser) { + const targetUserSelect = document.getElementById('targetUserId'); + if (targetUserSelect) { + targetUserSelect.innerHTML = ''; + list.forEach(user => { + // 본인은 제외 + if (user.user_id !== currentUser.user_id) { + const opt = document.createElement('option'); + opt.value = user.user_id; + opt.textContent = `${user.name} (${user.username})`; + targetUserSelect.appendChild(opt); + } + }); + } + } + + list.forEach(item => { + item.access_level = accessLabels[item.access_level] || item.access_level; + item.worker_id = item.worker_id || '-'; + const row = createRow(item, [ + 'user_id', 'username', 'name', 'access_level', 'worker_id' + ], async u => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await fetch(`${API}/auth/users/${u.user_id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + if (delRes.ok) { + showToast('✅ 삭제 완료'); + loadUsers(); + } else { + alert('❌ 삭제 실패'); + } + } catch (error) { + alert('🚨 삭제 중 오류 발생'); + } + }); + tbody.appendChild(row); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (error) { + console.error('Load users error:', error); + tbody.innerHTML = '로드 실패: ' + error.message + ''; + } +} + +async function loadWorkerOptions() { + const select = document.getElementById('worker_id'); + if (!select) return; + + try { + const res = await fetch(`${API}/workers`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const workers = await res.json(); + if (Array.isArray(workers)) { + workers.forEach(w => { + const opt = document.createElement('option'); + opt.value = w.worker_id; + opt.textContent = `${w.worker_name} (${w.worker_id})`; + select.appendChild(opt); + }); + } + } catch (error) { + console.warn('작업자 목록 불러오기 실패:', error); + } +} + +function showToast(message) { + const toast = document.createElement('div'); + toast.textContent = message; + toast.style.position = 'fixed'; + toast.style.bottom = '30px'; + toast.style.left = '50%'; + toast.style.transform = 'translateX(-50%)'; + toast.style.background = '#323232'; + toast.style.color = '#fff'; + toast.style.padding = '10px 20px'; + toast.style.borderRadius = '6px'; + toast.style.fontSize = '14px'; + toast.style.zIndex = 9999; + document.body.appendChild(toast); + setTimeout(() => toast.remove(), 2000); +} + +window.addEventListener('DOMContentLoaded', () => { + loadUsers(); + loadWorkerOptions(); +}); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/manage-worker.js b/deploy/tkfb-package/fastapi-bridge/static/js/manage-worker.js new file mode 100644 index 0000000..93202e4 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/manage-worker.js @@ -0,0 +1,110 @@ +// /js/manage-worker.js + +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +ensureAuthenticated(); + +// ✅ 테이블 행 생성 +function createRow(item, cols, delHandler) { + const tr = document.createElement('tr'); + cols.forEach(key => { + const td = document.createElement('td'); + td.textContent = item[key] || '-'; + tr.appendChild(td); + }); + + const delBtn = document.createElement('button'); + delBtn.textContent = '삭제'; + delBtn.className = 'btn-delete'; + delBtn.onclick = () => delHandler(item); + + const td = document.createElement('td'); + td.appendChild(delBtn); + tr.appendChild(td); + + return tr; +} + +// ✅ 작업자 등록 +const workerForm = document.getElementById('workerForm'); +workerForm?.addEventListener('submit', async e => { + e.preventDefault(); + + const body = { + worker_name: document.getElementById('workerName').value.trim(), + position: document.getElementById('position').value.trim() + }; + + if (!body.worker_name || !body.position) { + return alert('모든 필드를 입력해주세요.'); + } + + try { + const res = await fetch(`${API}/workers`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify(body) + }); + const result = await res.json(); + + if (res.ok && result.success) { + alert('✅ 등록 완료'); + workerForm.reset(); + loadWorkers(); + } else { + alert('❌ 실패: ' + (result.error || '알 수 없는 오류')); + } + } catch (err) { + alert('🚨 서버 오류: ' + err.message); + } +}); + +// ✅ 작업자 목록 불러오기 +async function loadWorkers() { + const tbody = document.getElementById('workerTableBody'); + tbody.innerHTML = '불러오는 중...'; + + try { + const res = await fetch(`${API}/workers`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const list = await res.json(); + tbody.innerHTML = ''; + + if (Array.isArray(list)) { + list.forEach(item => { + const row = createRow(item, ['worker_id', 'worker_name', 'position'], async w => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await fetch(`${API}/workers/${w.worker_id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + if (delRes.ok) { + alert('✅ 삭제 완료'); + loadWorkers(); + } else { + alert('❌ 삭제 실패'); + } + } catch (err) { + alert('🚨 삭제 중 오류: ' + err.message); + } + }); + tbody.appendChild(row); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (err) { + tbody.innerHTML = '로드 실패: ' + err.message + ''; + } +} + +// ✅ 초기 로딩 +window.addEventListener('DOMContentLoaded', loadWorkers); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/management-dashboard.js b/deploy/tkfb-package/fastapi-bridge/static/js/management-dashboard.js new file mode 100644 index 0000000..e43cb7e --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/management-dashboard.js @@ -0,0 +1,954 @@ +// management-dashboard.js - 관리자 대시보드 전용 스크립트 + +// ================================================================= +// 🌐 통합 API 설정 import +// ================================================================= +import { API, getAuthHeaders, apiCall } from '/js/api-config.js'; + +// 전역 변수 +let workers = []; +let workData = []; +let filteredWorkData = []; +let currentDate = ''; +let currentUser = null; + +// 권한 레벨 매핑 +const ACCESS_LEVELS = { + worker: 1, + group_leader: 2, + support_team: 3, + admin: 4, + system: 5 +}; + +// 한국 시간 기준 오늘 날짜 가져오기 +function getKoreaToday() { + const today = new Date(); + const year = today.getFullYear(); + const month = String(today.getMonth() + 1).padStart(2, '0'); + const day = String(today.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +// 현재 로그인한 사용자 정보 가져오기 +function getCurrentUser() { + try { + const token = localStorage.getItem('token'); + if (!token) return null; + + const payloadBase64 = token.split('.')[1]; + if (payloadBase64) { + const payload = JSON.parse(atob(payloadBase64)); + console.log('토큰에서 추출한 사용자 정보:', payload); + return payload; + } + } catch (error) { + console.log('토큰에서 사용자 정보 추출 실패:', error); + } + + try { + const userInfo = localStorage.getItem('user') || localStorage.getItem('userInfo') || localStorage.getItem('currentUser'); + if (userInfo) { + const parsed = JSON.parse(userInfo); + console.log('localStorage에서 가져온 사용자 정보:', parsed); + return parsed; + } + } catch (error) { + console.log('localStorage에서 사용자 정보 가져오기 실패:', error); + } + + return null; +} + +// 권한 체크 함수 +function checkPermission() { + currentUser = getCurrentUser(); + + if (!currentUser) { + showMessage('로그인이 필요합니다.', 'error'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return false; + } + + const userAccessLevel = currentUser.access_level; + const accessLevelValue = ACCESS_LEVELS[userAccessLevel] || 0; + + console.log('사용자 권한 체크:', { + username: currentUser.username || currentUser.name, + access_level: userAccessLevel, + level_value: accessLevelValue, + required_level: ACCESS_LEVELS.group_leader + }); + + if (accessLevelValue < ACCESS_LEVELS.group_leader) { + showMessage('그룹장 이상의 권한이 필요합니다. 현재 권한: ' + userAccessLevel, 'error'); + setTimeout(() => { + window.location.href = '/'; + }, 3000); + return false; + } + + return true; +} + +// 메시지 표시 +function showMessage(message, type = 'info') { + const container = document.getElementById('message-container'); + container.innerHTML = `
${message}
`; + + if (type === 'success') { + setTimeout(() => { + hideMessage(); + }, 5000); + } +} + +function hideMessage() { + document.getElementById('message-container').innerHTML = ''; +} + +// 로딩 표시 +function showLoading() { + document.getElementById('loadingSpinner').style.display = 'flex'; + document.getElementById('summarySection').style.display = 'none'; + document.getElementById('actionBar').style.display = 'none'; + document.getElementById('workersSection').style.display = 'none'; + document.getElementById('noDataMessage').style.display = 'none'; +} + +function hideLoading() { + document.getElementById('loadingSpinner').style.display = 'none'; +} + +// 작업자 데이터 로드 +async function loadWorkers() { + try { + console.log('작업자 데이터 로딩 중... (통합 API)'); + const data = await apiCall(`${API}/workers`); + workers = Array.isArray(data) ? data : (data.workers || []); + console.log('✅ 작업자 로드 성공:', workers.length); + } catch (error) { + console.error('작업자 로딩 오류:', error); + throw error; + } +} + +// 특정 날짜의 작업 데이터 로드 (개선된 버전) +async function loadWorkData(date) { + try { + console.log(`${date} 날짜의 작업 데이터 로딩 중... (통합 API)`); + + // 1차: view_all=true로 전체 데이터 시도 + let queryParams = `date=${date}&view_all=true`; + console.log(`🔍 1차 시도: ${API}/daily-work-reports?${queryParams}`); + + let data = await apiCall(`${API}/daily-work-reports?${queryParams}`); + workData = Array.isArray(data) ? data : (data.data || []); + + // 데이터가 없으면 다른 방법들 시도 + if (workData.length === 0) { + console.log('⚠️ view_all로 데이터 없음, 다른 방법 시도...'); + + // 2차: admin=true로 시도 + queryParams = `date=${date}&admin=true`; + console.log(`🔍 2차 시도: ${API}/daily-work-reports?${queryParams}`); + + data = await apiCall(`${API}/daily-work-reports?${queryParams}`); + workData = Array.isArray(data) ? data : (data.data || []); + + if (workData.length === 0) { + // 3차: 날짜 경로 파라미터로 시도 + console.log(`🔍 3차 시도: ${API}/daily-work-reports/date/${date}`); + + data = await apiCall(`${API}/daily-work-reports/date/${date}`); + workData = Array.isArray(data) ? data : (data.data || []); + + if (workData.length === 0) { + // 4차: 기본 파라미터만으로 시도 + console.log(`🔍 4차 시도: ${API}/daily-work-reports?date=${date}`); + + data = await apiCall(`${API}/daily-work-reports?date=${date}`); + workData = Array.isArray(data) ? data : (data.data || []); + } + } + } + + console.log(`✅ 최종 작업 데이터 로드 결과: ${workData.length}개`); + + // 디버깅을 위한 상세 로그 + if (workData.length > 0) { + console.log('📊 로드된 데이터 샘플:', workData.slice(0, 3)); + const uniqueWorkers = [...new Set(workData.map(w => w.worker_name))]; + console.log('👥 데이터에 포함된 작업자들:', uniqueWorkers); + } else { + console.log('❌ 해당 날짜에 작업 데이터가 없거나 접근 권한이 없습니다.'); + } + + return workData; + } catch (error) { + console.error('작업 데이터 로딩 오류:', error); + + // 에러 시에도 빈 배열 반환하여 앱이 중단되지 않도록 + workData = []; + + // 구체적인 에러 정보 표시 + if (error.message.includes('403')) { + console.log('🔒 권한 부족으로 인한 접근 제한'); + throw new Error('해당 날짜의 데이터에 접근할 권한이 없습니다.'); + } else if (error.message.includes('404')) { + console.log('📭 해당 날짜에 데이터 없음'); + throw new Error('해당 날짜에 입력된 작업 데이터가 없습니다.'); + } else { + throw error; + } + } +} + +// 대시보드 데이터 로드 +async function loadDashboardData() { + const selectedDate = document.getElementById('selectedDate').value; + + if (!selectedDate) { + showMessage('날짜를 선택해주세요.', 'error'); + return; + } + + currentDate = selectedDate; + showLoading(); + hideMessage(); + + try { + // 병렬로 데이터 로드 + await Promise.all([ + loadWorkers(), + loadWorkData(selectedDate) + ]); + + // 데이터 분석 및 표시 + const dashboardData = analyzeDashboardData(); + displayDashboard(dashboardData); + + hideLoading(); + + } catch (error) { + console.error('대시보드 데이터 로드 실패:', error); + hideLoading(); + showMessage('데이터를 불러오는 중 오류가 발생했습니다: ' + error.message, 'error'); + + // 에러 시 데이터 없음 메시지 표시 + document.getElementById('noDataMessage').style.display = 'block'; + } +} + +// 대시보드 데이터 분석 (개선된 버전) +function analyzeDashboardData() { + console.log('대시보드 데이터 분석 시작'); + + // 작업자별 데이터 그룹화 + const workerWorkData = {}; + workData.forEach(work => { + const workerId = work.worker_id; + if (!workerWorkData[workerId]) { + workerWorkData[workerId] = []; + } + workerWorkData[workerId].push(work); + }); + + // 전체 통계 계산 + const totalWorkers = workers.length; + const workersWithData = Object.keys(workerWorkData).length; + const workersWithoutData = totalWorkers - workersWithData; + const totalHours = workData.reduce((sum, work) => sum + parseFloat(work.work_hours || 0), 0); + const totalEntries = workData.length; + const errorCount = workData.filter(work => work.work_status_id === 2).length; + + // 작업자별 상세 분석 (개선된 버전) + const workerAnalysis = workers.map(worker => { + const workerWorks = workerWorkData[worker.worker_id] || []; + const workerHours = workerWorks.reduce((sum, work) => sum + parseFloat(work.work_hours || 0), 0); + + // 작업 유형 분석 (실제 이름으로) + const workTypes = [...new Set(workerWorks.map(work => work.work_type_name).filter(Boolean))]; + + // 프로젝트 분석 + const workerProjects = [...new Set(workerWorks.map(work => work.project_name).filter(Boolean))]; + + // 기여자 분석 + const workerContributors = [...new Set(workerWorks.map(work => work.created_by_name).filter(Boolean))]; + + // 상태 결정 (더 세밀한 기준) + let status = 'missing'; + if (workerWorks.length > 0) { + if (workerHours >= 6) { + status = 'completed'; // 6시간 이상을 완료로 간주 + } else { + status = 'partial'; // 1시간 이상이지만 6시간 미만은 부분입력 + } + } + + // 최근 업데이트 시간 + const lastUpdate = workerWorks.length > 0 + ? new Date(Math.max(...workerWorks.map(work => new Date(work.created_at)))) + : null; + + return { + ...worker, + status, + totalHours: Math.round(workerHours * 10) / 10, // 소수점 1자리로 반올림 + entryCount: workerWorks.length, + workTypes, // 작업 유형 배열 (실제 이름) + projects: workerProjects, + contributors: workerContributors, + lastUpdate, + works: workerWorks + }; + }); + + const summary = { + totalWorkers, + completedWorkers: workerAnalysis.filter(w => w.status === 'completed').length, + missingWorkers: workerAnalysis.filter(w => w.status === 'missing').length, + partialWorkers: workerAnalysis.filter(w => w.status === 'partial').length, + totalHours: Math.round(totalHours * 10) / 10, + totalEntries, + errorCount + }; + + console.log('대시보드 분석 결과:', { summary, workerAnalysis }); + + return { + summary, + workers: workerAnalysis, + date: currentDate + }; +} + +// 대시보드 표시 +function displayDashboard(data) { + displaySummary(data.summary); + displayWorkers(data.workers); + + // 섹션 표시 + document.getElementById('summarySection').style.display = 'block'; + document.getElementById('actionBar').style.display = 'flex'; + document.getElementById('workersSection').style.display = 'block'; + + // 필터링 설정 + filteredWorkData = data.workers; + setupFiltering(); + + console.log('✅ 대시보드 표시 완료'); +} + +// 요약 섹션 표시 +function displaySummary(summary) { + document.getElementById('totalWorkers').textContent = summary.totalWorkers; + document.getElementById('completedWorkers').textContent = summary.completedWorkers; + document.getElementById('missingWorkers').textContent = summary.missingWorkers; + document.getElementById('totalHours').textContent = summary.totalHours + 'h'; + document.getElementById('totalEntries').textContent = summary.totalEntries; + document.getElementById('errorCount').textContent = summary.errorCount; +} + +// 작업자 목록 표시 (테이블 형태로 개선) +function displayWorkers(workersData) { + const tableBody = document.getElementById('workersTableBody'); + tableBody.innerHTML = ''; + + if (workersData.length === 0) { + tableBody.innerHTML = ` + + 표시할 작업자가 없습니다. + + `; + return; + } + + workersData.forEach(worker => { + const row = createWorkerRow(worker); + tableBody.appendChild(row); + }); +} + +// 작업자 테이블 행 생성 (개선된 버전) +function createWorkerRow(worker) { + const row = document.createElement('tr'); + + const statusText = { + completed: '✅ 완료', + missing: '❌ 미입력', + partial: '⚠️ 부분입력' + }; + + const statusClass = { + completed: 'completed', + missing: 'missing', + partial: 'partial' + }; + + // 작업 유형 태그 생성 (실제 이름으로) + const workTypeTags = worker.workTypes && worker.workTypes.length > 0 + ? worker.workTypes.map(type => `${type}`).join('') + : '없음'; + + // 프로젝트 태그 생성 + const projectTags = worker.projects && worker.projects.length > 0 + ? worker.projects.map(project => `${project}`).join('') + : '없음'; + + // 기여자 태그 생성 + const contributorTags = worker.contributors && worker.contributors.length > 0 + ? worker.contributors.map(contributor => `${contributor}`).join('') + : '없음'; + + // 시간에 따른 스타일 클래스 + let hoursClass = 'zero'; + if (worker.totalHours > 0) { + hoursClass = worker.totalHours >= 6 ? 'full' : 'partial'; + } + + // 업데이트 시간 포맷팅 및 스타일 + let updateTimeText = '없음'; + let updateClass = ''; + if (worker.lastUpdate) { + const now = new Date(); + const diff = now - worker.lastUpdate; + const hours = diff / (1000 * 60 * 60); + + updateTimeText = formatDateTime(worker.lastUpdate); + updateClass = hours < 1 ? 'recent' : hours > 24 ? 'old' : ''; + } + + row.innerHTML = ` + +
+ 👤 ${worker.worker_name} +
+ + + ${statusText[worker.status]} + + +
${worker.totalHours}h
+ + + ${worker.entryCount}개 + + +
${workTypeTags}
+ + +
${projectTags}
+ + +
${contributorTags}
+ + +
${updateTimeText}
+ + + + + `; + + return row; +} + +// 날짜/시간 포맷팅 +function formatDateTime(date) { + const d = new Date(date); + const year = d.getFullYear(); + const month = String(d.getMonth() + 1).padStart(2, '0'); + const day = String(d.getDate()).padStart(2, '0'); + const hours = String(d.getHours()).padStart(2, '0'); + const minutes = String(d.getMinutes()).padStart(2, '0'); + + return `${year}-${month}-${day} ${hours}:${minutes}`; +} + +// 작업자 상세 모달 표시 (안전한 버전) +function showWorkerDetailSafe(workerId) { + // 현재 분석된 데이터에서 해당 작업자 찾기 + const worker = filteredWorkData.find(w => w.worker_id == workerId); + if (!worker) { + showMessage('작업자 정보를 찾을 수 없습니다.', 'error'); + return; + } + + showWorkerDetail(worker); +} + +// 작업자 상세 모달 표시 (개선된 버전) +function showWorkerDetail(worker) { + const modal = document.getElementById('workerDetailModal'); + const modalTitle = document.getElementById('modalWorkerName'); + const modalBody = document.getElementById('modalWorkerDetails'); + + modalTitle.textContent = `👤 ${worker.worker_name} 상세 현황`; + + let detailHtml = ` +
+

📊 기본 정보

+

작업자명: ${worker.worker_name}

+

총 작업시간: ${worker.totalHours}시간

+

작업 항목 수: ${worker.entryCount}개

+

상태: ${worker.status === 'completed' ? '✅ 완료' : worker.status === 'missing' ? '❌ 미입력' : '⚠️ 부분입력'}

+

작업 유형: ${worker.workTypes && worker.workTypes.length > 0 ? worker.workTypes.join(', ') : '없음'}

+
+ `; + + if (worker.works && worker.works.length > 0) { + detailHtml += ` +
+

🔧 작업 내역

+
+ `; + + worker.works.forEach((work, index) => { + detailHtml += ` +
+
+

작업 ${index + 1}

+
+ + +
+
+

프로젝트: ${work.project_name || '미지정'}

+

작업 유형: ${work.work_type_name || '미지정'}

+

작업 시간: ${work.work_hours}시간

+

상태: ${work.work_status_name || '미지정'}

+ ${work.error_type_name ? `

에러 유형: ${work.error_type_name}

` : ''} +

입력자: ${work.created_by_name || '미지정'}

+

입력 시간: ${formatDateTime(work.created_at)}

+
+ `; + }); + + detailHtml += ` +
+
+ `; + } else { + detailHtml += ` +
+

📭 작업 내역

+

입력된 작업이 없습니다.

+
+ `; + } + + if (worker.contributors && worker.contributors.length > 0) { + detailHtml += ` +
+

👥 기여자

+

${worker.contributors.join(', ')}

+
+ `; + } + + modalBody.innerHTML = detailHtml; + modal.style.display = 'flex'; +} + +// 작업 항목 수정 함수 (통합 API 사용) +async function editWorkItem(workId) { + try { + console.log('수정할 작업 ID:', workId); + + // 현재 작업 데이터에서 해당 작업 찾기 + let workData = null; + for (const worker of filteredWorkData) { + if (worker.works) { + workData = worker.works.find(work => work.id == workId); + if (workData) break; + } + } + + if (!workData) { + showMessage('수정할 작업을 찾을 수 없습니다.', 'error'); + return; + } + + // 필요한 마스터 데이터 로드 + await loadMasterDataForEdit(); + + // 수정 모달 표시 + showEditModal(workData); + + } catch (error) { + console.error('작업 정보 조회 오류:', error); + showMessage('작업 정보를 불러올 수 없습니다: ' + error.message, 'error'); + } +} + +// 수정용 마스터 데이터 로드 +async function loadMasterDataForEdit() { + try { + if (!window.projects || window.projects.length === 0) { + const projectData = await apiCall(`${API}/projects`); + window.projects = Array.isArray(projectData) ? projectData : (projectData.projects || []); + } + + if (!window.workTypes || window.workTypes.length === 0) { + const workTypeData = await apiCall(`${API}/daily-work-reports/work-types`); + window.workTypes = Array.isArray(workTypeData) ? workTypeData : []; + } + + if (!window.workStatusTypes || window.workStatusTypes.length === 0) { + const statusData = await apiCall(`${API}/daily-work-reports/work-status-types`); + window.workStatusTypes = Array.isArray(statusData) ? statusData : []; + } + + if (!window.errorTypes || window.errorTypes.length === 0) { + const errorData = await apiCall(`${API}/daily-work-reports/error-types`); + window.errorTypes = Array.isArray(errorData) ? errorData : []; + } + + } catch (error) { + console.error('마스터 데이터 로드 오류:', error); + + // 기본값 설정 + window.projects = window.projects || []; + window.workTypes = window.workTypes || [ + {id: 1, name: 'Base'}, + {id: 2, name: 'Vessel'}, + {id: 3, name: 'Piping'} + ]; + window.workStatusTypes = window.workStatusTypes || [ + {id: 1, name: '정규'}, + {id: 2, name: '에러'} + ]; + window.errorTypes = window.errorTypes || [ + {id: 1, name: '설계미스'}, + {id: 2, name: '외주작업 불량'}, + {id: 3, name: '입고지연'}, + {id: 4, name: '작업 불량'} + ]; + } +} + +// 수정 모달 표시 +function showEditModal(workData) { + // 기존 상세 모달 닫기 + closeWorkerDetailModal(); + + const modalHtml = ` +
+
+
+

✏️ 작업 수정

+ +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+ `; + + document.body.insertAdjacentHTML('beforeend', modalHtml); + + // 업무 상태 변경 이벤트 + document.getElementById('editWorkStatus').addEventListener('change', (e) => { + const errorTypeGroup = document.getElementById('editErrorTypeGroup'); + if (e.target.value === '2') { + errorTypeGroup.style.display = 'block'; + } else { + errorTypeGroup.style.display = 'none'; + } + }); +} + +// 수정 모달 닫기 +function closeEditModal() { + const modal = document.getElementById('editModal'); + if (modal) { + modal.remove(); + } +} + +// 수정된 작업 저장 (통합 API 사용) +async function saveEditedWork(workId) { + try { + const projectId = document.getElementById('editProject').value; + const workTypeId = document.getElementById('editWorkType').value; + const workStatusId = document.getElementById('editWorkStatus').value; + const errorTypeId = document.getElementById('editErrorType').value; + const workHours = document.getElementById('editWorkHours').value; + + if (!projectId || !workTypeId || !workStatusId || !workHours) { + showMessage('모든 필수 항목을 입력해주세요.', 'error'); + return; + } + + if (workStatusId === '2' && !errorTypeId) { + showMessage('에러 상태인 경우 에러 유형을 선택해주세요.', 'error'); + return; + } + + const updateData = { + project_id: parseInt(projectId), + work_type_id: parseInt(workTypeId), + work_status_id: parseInt(workStatusId), + error_type_id: errorTypeId ? parseInt(errorTypeId) : null, + work_hours: parseFloat(workHours) + }; + + showMessage('작업을 수정하는 중... (통합 API)', 'loading'); + + const result = await apiCall(`${API}/daily-work-reports/${workId}`, { + method: 'PUT', + body: JSON.stringify(updateData) + }); + + console.log('✅ 수정 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 수정되었습니다!', 'success'); + + closeEditModal(); + closeWorkerDetailModal(); + + // 데이터 새로고침 + await loadDashboardData(); + + } catch (error) { + console.error('❌ 수정 실패:', error); + showMessage('수정 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 작업 항목 삭제 함수 (통합 API 사용) +async function deleteWorkItem(workId) { + if (!confirm('정말로 이 작업을 삭제하시겠습니까?\n삭제된 작업은 복구할 수 없습니다.')) { + return; + } + + try { + console.log('삭제할 작업 ID:', workId); + + showMessage('작업을 삭제하는 중... (통합 API)', 'loading'); + + // 개별 항목 삭제 API 호출 - 통합 API 사용 + const result = await apiCall(`${API}/daily-work-reports/${workId}`, { + method: 'DELETE' + }); + + console.log('✅ 삭제 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 삭제되었습니다!', 'success'); + + closeWorkerDetailModal(); + + // 데이터 새로고침 + await loadDashboardData(); + + } catch (error) { + console.error('❌ 삭제 실패:', error); + showMessage('삭제 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 작업자 상세 모달 닫기 +function closeWorkerDetailModal() { + document.getElementById('workerDetailModal').style.display = 'none'; +} + +// 필터링 설정 +function setupFiltering() { + const showOnlyMissingCheckbox = document.getElementById('showOnlyMissing'); + + showOnlyMissingCheckbox.addEventListener('change', (e) => { + if (e.target.checked) { + // 미입력자만 필터링 + const missingWorkers = filteredWorkData.filter(worker => worker.status === 'missing'); + displayWorkers(missingWorkers); + } else { + // 전체 표시 + displayWorkers(filteredWorkData); + } + }); +} + +// 엑셀 다운로드 (개선된 버전) +function exportToExcel() { + try { + // CSV 형태로 데이터 구성 (개선된 버전) + let csvContent = "작업자명,상태,총시간,작업항목수,작업유형,프로젝트,기여자,최근업데이트\n"; + + filteredWorkData.forEach(worker => { + const statusText = { + completed: '완료', + missing: '미입력', + partial: '부분입력' + }; + + const workTypes = worker.workTypes && worker.workTypes.length > 0 ? worker.workTypes.join('; ') : '없음'; + const projects = worker.projects && worker.projects.length > 0 ? worker.projects.join('; ') : '없음'; + const contributors = worker.contributors && worker.contributors.length > 0 ? worker.contributors.join('; ') : '없음'; + const lastUpdate = worker.lastUpdate ? formatDateTime(worker.lastUpdate) : '없음'; + + csvContent += `"${worker.worker_name}","${statusText[worker.status]}","${worker.totalHours}","${worker.entryCount}","${workTypes}","${projects}","${contributors}","${lastUpdate}"\n`; + }); + + // UTF-8 BOM 추가 (한글 깨짐 방지) + const BOM = '\uFEFF'; + const blob = new Blob([BOM + csvContent], { type: 'text/csv;charset=utf-8;' }); + const link = document.createElement('a'); + const url = URL.createObjectURL(blob); + + link.setAttribute('href', url); + link.setAttribute('download', `작업현황_${currentDate}.csv`); + link.style.visibility = 'hidden'; + + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + + showMessage('✅ 엑셀 파일이 다운로드되었습니다!', 'success'); + + } catch (error) { + console.error('엑셀 다운로드 오류:', error); + showMessage('엑셀 다운로드 중 오류가 발생했습니다.', 'error'); + } +} + +// 새로고침 +function refreshData() { + loadDashboardData(); +} + +// 이벤트 리스너 설정 +function setupEventListeners() { + document.getElementById('loadDataBtn').addEventListener('click', loadDashboardData); + document.getElementById('refreshBtn').addEventListener('click', refreshData); + document.getElementById('exportBtn').addEventListener('click', exportToExcel); + + // 엔터키로 조회 + document.getElementById('selectedDate').addEventListener('keypress', (e) => { + if (e.key === 'Enter') { + loadDashboardData(); + } + }); +} + +// 초기화 +async function init() { + try { + // 권한 체크 + if (!checkPermission()) { + return; + } + + // 권한 체크 메시지 숨기기 + document.getElementById('permission-check-message').style.display = 'none'; + + // 오늘 날짜 설정 + document.getElementById('selectedDate').value = getKoreaToday(); + + // 이벤트 리스너 설정 + setupEventListeners(); + + console.log('✅ 관리자 대시보드 초기화 완료 (통합 API 설정 적용)'); + + // 자동으로 오늘 데이터 로드 + loadDashboardData(); + + } catch (error) { + console.error('초기화 오류:', error); + showMessage('초기화 중 오류가 발생했습니다.', 'error'); + } +} + +// 페이지 로드 시 초기화 +document.addEventListener('DOMContentLoaded', () => { + // 권한 체크 메시지 표시 + document.getElementById('permission-check-message').style.display = 'block'; + + // 토큰 확인 + const token = localStorage.getItem('token'); + if (!token || token === 'undefined') { + showMessage('로그인이 필요합니다.', 'error'); + localStorage.removeItem('token'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return; + } + + // 초기화 실행 + init(); +}); + +// 전역 함수로 노출 +window.closeWorkerDetailModal = closeWorkerDetailModal; +window.refreshData = refreshData; +window.showWorkerDetailSafe = showWorkerDetailSafe; +window.showWorkerDetail = showWorkerDetail; +window.editWorkItem = editWorkItem; +window.deleteWorkItem = deleteWorkItem; +window.closeEditModal = closeEditModal; +window.saveEditedWork = saveEditedWork; \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/my-profile.js b/deploy/tkfb-package/fastapi-bridge/static/js/my-profile.js new file mode 100644 index 0000000..222ab99 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/my-profile.js @@ -0,0 +1,122 @@ +// js/my-profile.js +// 내 프로필 페이지 JavaScript + +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +const token = ensureAuthenticated(); + +// 권한 레벨 한글 매핑 +const accessLevelMap = { + worker: '작업자', + group_leader: '그룹장', + support_team: '지원팀', + admin: '관리자', + system: '시스템 관리자' +}; + +// 프로필 데이터 로드 +async function loadProfile() { + try { + // 먼저 로컬 스토리지에서 기본 정보 표시 + const storedUser = JSON.parse(localStorage.getItem('user') || '{}'); + if (storedUser) { + updateProfileUI(storedUser); + } + + // API에서 최신 정보 가져오기 + const res = await fetch(`${API}/auth/me`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const userData = await res.json(); + + // 로컬 스토리지 업데이트 + const updatedUser = { + ...storedUser, + ...userData + }; + localStorage.setItem('user', JSON.stringify(updatedUser)); + + // UI 업데이트 + updateProfileUI(userData); + + } catch (error) { + console.error('프로필 로딩 실패:', error); + showError('프로필 정보를 불러오는데 실패했습니다.'); + } +} + +// 프로필 UI 업데이트 +function updateProfileUI(user) { + // 헤더 정보 + const avatar = document.getElementById('profileAvatar'); + if (avatar && user.name) { + // 이름의 첫 글자를 아바타로 사용 + const initial = user.name.charAt(0).toUpperCase(); + if (initial.match(/[A-Z가-힣]/)) { + avatar.textContent = initial; + } + } + + document.getElementById('profileName').textContent = user.name || user.username || '사용자'; + document.getElementById('profileRole').textContent = accessLevelMap[user.access_level] || user.access_level || '역할 미지정'; + + // 기본 정보 + document.getElementById('userId').textContent = user.user_id || '-'; + document.getElementById('username').textContent = user.username || '-'; + document.getElementById('fullName').textContent = user.name || '-'; + document.getElementById('accessLevel').textContent = accessLevelMap[user.access_level] || user.access_level || '-'; + document.getElementById('workerId').textContent = user.worker_id || '연결되지 않음'; + + // 날짜 포맷팅 + if (user.created_at) { + const createdDate = new Date(user.created_at); + document.getElementById('createdAt').textContent = formatDate(createdDate); + } + + if (user.last_login_at) { + const lastLoginDate = new Date(user.last_login_at); + document.getElementById('lastLogin').textContent = formatDateTime(lastLoginDate); + } else { + document.getElementById('lastLogin').textContent = '첫 로그인'; + } + + // 이메일 + document.getElementById('email').textContent = user.email || '등록되지 않음'; +} + +// 날짜 포맷팅 함수 +function formatDate(date) { + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: 'long', + day: 'numeric' + }); +} + +function formatDateTime(date) { + return date.toLocaleString('ko-KR', { + year: 'numeric', + month: 'long', + day: 'numeric', + hour: '2-digit', + minute: '2-digit' + }); +} + +// 에러 표시 +function showError(message) { + // 간단한 알림으로 처리 + alert('❌ ' + message); +} + +// 페이지 로드 시 실행 +document.addEventListener('DOMContentLoaded', () => { + console.log('👤 프로필 페이지 로드됨'); + loadProfile(); +}); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/project-analysis-api.js b/deploy/tkfb-package/fastapi-bridge/static/js/project-analysis-api.js new file mode 100644 index 0000000..2518597 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/project-analysis-api.js @@ -0,0 +1,37 @@ +// /js/project-analysis-api.js +import { apiGet } from './api-helper.js'; + +/** + * 분석 페이지에 필요한 모든 초기 데이터(마스터 데이터)를 병렬로 가져옵니다. + * 이 데이터는 필터 옵션을 채우는 데 사용됩니다. + * @returns {Promise<{workers: Array, projects: Array, tasks: Array}>} + */ +export async function getMasterData() { + try { + const [workers, projects, tasks] = await Promise.all([ + apiGet('/workers'), + apiGet('/projects'), + apiGet('/tasks') + ]); + return { workers, projects, tasks }; + } catch (error) { + console.error('마스터 데이터 로딩 실패:', error); + throw new Error('필터링에 필요한 데이터를 불러오는 데 실패했습니다.'); + } +} + +/** + * 지정된 기간의 모든 분석 데이터를 백엔드에서 직접 가져옵니다. + * @param {string} startDate - 시작일 (YYYY-MM-DD) + * @param {string} endDate - 종료일 (YYYY-MM-DD) + * @returns {Promise} - 요약, 집계, 상세 데이터가 모두 포함된 분석 결과 객체 + */ +export async function getAnalysisReport(startDate, endDate) { + try { + const analysisData = await apiGet(`/analysis?startDate=${startDate}&endDate=${endDate}`); + return analysisData; + } catch (error) { + console.error('분석 보고서 데이터 로딩 실패:', error); + throw new Error(`분석 데이터를 불러오는 데 실패했습니다: ${error.message}`); + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/project-analysis-ui.js b/deploy/tkfb-package/fastapi-bridge/static/js/project-analysis-ui.js new file mode 100644 index 0000000..75c49e6 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/project-analysis-ui.js @@ -0,0 +1,170 @@ +// /js/project-analysis-ui.js + +const DOM = { + // 기간 설정 + startDate: document.getElementById('startDate'), + endDate: document.getElementById('endDate'), + // 카드 및 필터 + analysisCard: document.getElementById('analysisCard'), + summaryCards: document.getElementById('summaryCards'), + projectFilter: document.getElementById('projectFilter'), + workerFilter: document.getElementById('workerFilter'), + taskFilter: document.getElementById('taskFilter'), + // 탭 + tabButtons: document.querySelectorAll('.tab-button'), + tabContents: document.querySelectorAll('.analysis-content'), + // 테이블 본문 + projectTableBody: document.getElementById('projectTableBody'), + workerTableBody: document.getElementById('workerTableBody'), + taskTableBody: document.getElementById('taskTableBody'), + detailTableBody: document.getElementById('detailTableBody'), +}; + +/** + * 날짜 input 값을 YYYY-MM-DD 형식의 문자열로 반환 + * @param {Date} date - 날짜 객체 + * @returns {string} - 포맷된 날짜 문자열 + */ +const formatDate = (date) => date.toISOString().split('T')[0]; + +/** + * UI상의 날짜 선택기를 기본값(이번 달)으로 설정합니다. + */ +export function setDefaultDates() { + const now = new Date(); + const firstDay = new Date(now.getFullYear(), now.getMonth(), 1); + const lastDay = new Date(now.getFullYear(), now.getMonth() + 1, 0); + DOM.startDate.value = formatDate(firstDay); + DOM.endDate.value = formatDate(lastDay); +} + +/** + * 분석 실행 전후의 UI 상태를 관리합니다 (로딩 표시 등) + * @param {'loading' | 'data' | 'no-data' | 'error'} state - UI 상태 + */ +export function setUIState(state) { + const projectCols = 5; + const detailCols = 8; + const messages = { + loading: '📊 데이터 분석 중...', + 'no-data': '해당 기간에 분석할 데이터가 없습니다.', + error: '오류가 발생했습니다. 다시 시도해주세요.', + }; + + if (state === 'data') { + DOM.analysisCard.style.display = 'block'; + } else { + const message = messages[state]; + const html = `${message}`; + const detailHtml = `${message}`; + DOM.projectTableBody.innerHTML = html; + DOM.workerTableBody.innerHTML = html; + DOM.taskTableBody.innerHTML = html; + DOM.detailTableBody.innerHTML = detailHtml; + DOM.summaryCards.innerHTML = ''; + DOM.analysisCard.style.display = 'block'; + } +} + + +/** + * 마스터 데이터를 기반으로 필터 옵션을 채웁니다. + * @param {{workers: Array, projects: Array, tasks: Array}} masterData - 마스터 데이터 + */ +export function updateFilterOptions(masterData) { + const createOptions = (items, key, value) => { + let html = ''; + items.forEach(item => { + html += ``; + }); + return html; + }; + DOM.projectFilter.innerHTML = createOptions(masterData.projects, 'project_id', 'project_name'); + DOM.workerFilter.innerHTML = createOptions(masterData.workers, 'worker_id', 'worker_name'); + DOM.taskFilter.innerHTML = createOptions(masterData.tasks, 'task_id', 'category'); +} + +/** + * 요약 카드 데이터를 렌더링합니다. + * @param {object} summary - 요약 데이터 + */ +export function renderSummary(summary) { + DOM.summaryCards.innerHTML = ` +

총 투입 시간

${(summary.totalHours || 0).toFixed(1)}h
+

참여 프로젝트

${summary.totalProjects || 0}개
+

참여 인원

${summary.totalWorkers || 0}명
+

작업 분류

${summary.totalTasks || 0}개
+ `; +} + +/** + * 집계된 데이터를 받아 테이블을 렌더링하는 범용 함수 + * @param {HTMLElement} tableBodyEl - 렌더링할 테이블의 tbody 요소 + * @param {Array} data - 집계된 데이터 배열 + * @param {function} rowRenderer - 각 행을 렌더링하는 함수 + */ +function renderTable(tableBodyEl, data, rowRenderer) { + if (!data || data.length === 0) { + tableBodyEl.innerHTML = '데이터가 없습니다'; + return; + } + tableBodyEl.innerHTML = data.map(rowRenderer).join(''); +} + +/** + * 집계된 데이터를 기반으로 모든 분석 테이블을 렌더링합니다. + * @param {object} analysis - 프로젝트/작업자/작업별 집계 데이터 + */ +export function renderAnalysisTables(analysis) { + renderTable(DOM.projectTableBody, analysis.byProject, (p, i) => ` + ${i + 1}${p.name}${p.hours}h + ${p.percentage}%${p.participants}명`); + + renderTable(DOM.workerTableBody, analysis.byWorker, (w, i) => ` + ${i + 1}${w.name}${w.hours}h + ${w.percentage}%${w.participants}개`); + + renderTable(DOM.taskTableBody, analysis.byTask, (t, i) => ` + ${i + 1}${t.name}${t.hours}h + ${t.percentage}%${t.participants}명`); +} + +/** + * 상세 내역 테이블을 렌더링합니다. + * @param {Array} detailData - 필터링된 상세 데이터 + */ +export function renderDetailTable(detailData) { + if (!detailData || detailData.length === 0) { + DOM.detailTableBody.innerHTML = '데이터가 없습니다'; + return; + } + DOM.detailTableBody.innerHTML = detailData.map((item, index) => ` + ${index + 1}${formatDate(new Date(item.date))} + ${item.project_name} + ${item.worker_name}${item.task_category} + ${item.work_details || '정상근무'} + ${item.work_hours}h + ${(item.memo || '-').substring(0, 20)}` + ).join(''); +} + +/** + * 탭 UI를 제어합니다. + * @param {string} tabName - 활성화할 탭의 이름 + */ +export function switchTab(tabName) { + DOM.tabButtons.forEach(btn => btn.classList.toggle('active', btn.dataset.tab === tabName)); + DOM.tabContents.forEach(content => content.classList.toggle('active', content.id === `${tabName}Tab`)); +} + +/** + * 사용자로부터 현재 필터 값을 가져옵니다. + * @returns {{project: string, worker: string, task: string}} + */ +export function getCurrentFilters() { + return { + project: DOM.projectFilter.value, + worker: DOM.workerFilter.value, + task: DOM.taskFilter.value, + }; +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/project-analysis.js b/deploy/tkfb-package/fastapi-bridge/static/js/project-analysis.js new file mode 100644 index 0000000..fcad431 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/project-analysis.js @@ -0,0 +1,106 @@ +// /js/project-analysis.js +import { getMasterData, getAnalysisReport } from './project-analysis-api.js'; +import { + setDefaultDates, + setUIState, + updateFilterOptions, + renderSummary, + renderAnalysisTables, + renderDetailTable, + switchTab, +} from './project-analysis-ui.js'; + +// DOM 요소 참조 (이벤트 리스너 설정용) +const DOM = { + startDate: document.getElementById('startDate'), + endDate: document.getElementById('endDate'), + analyzeBtn: document.getElementById('analyzeBtn'), + quickMonthBtn: document.getElementById('quickMonth'), + quickLastMonthBtn: document.getElementById('quickLastMonth'), + // 필터 버튼은 현재 아무 기능도 하지 않으므로 주석 처리 또는 제거 가능 + // applyFilterBtn: document.getElementById('applyFilter'), + tabButtons: document.querySelectorAll('.tab-button'), +}; + +/** + * 분석 실행 버튼 클릭 이벤트 핸들러 + */ +async function handleAnalysis() { + const startDate = DOM.startDate.value; + const endDate = DOM.endDate.value; + + if (!startDate || !endDate || startDate > endDate) { + alert('올바른 분석 기간을 설정해주세요.'); + return; + } + + setUIState('loading'); + try { + const analysisResult = await getAnalysisReport(startDate, endDate); + + if (!analysisResult.summary.totalHours) { + setUIState('no-data'); + return; + } + + renderSummary(analysisResult.summary); + renderAnalysisTables(analysisResult); + renderDetailTable(analysisResult.details); + setUIState('data'); + + } catch (error) { + console.error('분석 처리 중 오류:', error); + setUIState('error'); + alert(error.message); + } +} + +/** + * 빠른 날짜 설정 버튼 핸들러 + */ +function handleQuickDate(monthType) { + const now = new Date(); + const year = now.getFullYear(); + const month = now.getMonth(); + const firstDay = monthType === 'this' ? new Date(year, month, 1) : new Date(year, month - 1, 1); + const lastDay = monthType === 'this' ? new Date(year, month + 1, 0) : new Date(year, month, 0); + + DOM.startDate.value = firstDay.toISOString().split('T')[0]; + DOM.endDate.value = lastDay.toISOString().split('T')[0]; +} + +/** + * 이벤트 리스너 설정 + */ +function setupEventListeners() { + DOM.analyzeBtn.addEventListener('click', handleAnalysis); + DOM.quickMonthBtn.addEventListener('click', () => handleQuickDate('this')); + DOM.quickLastMonthBtn.addEventListener('click', () => handleQuickDate('last')); + + DOM.tabButtons.forEach(btn => { + btn.addEventListener('click', () => switchTab(btn.dataset.tab)); + }); + + // 프론트엔드 필터링은 제거되었으므로 관련 이벤트 리스너는 주석 처리합니다. + // DOM.applyFilterBtn.addEventListener('click', ...); +} + +/** + * 페이지 초기화 함수 + */ +async function initialize() { + setDefaultDates(); + setupEventListeners(); + + try { + const masterData = await getMasterData(); + updateFilterOptions(masterData); + await handleAnalysis(); + } catch (error) { + alert(error.message); + setUIState('error'); + } +} + +// 초기화 실행 +document.addEventListener('DOMContentLoaded', initialize); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-api.js b/deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-api.js new file mode 100644 index 0000000..fe3963c --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-api.js @@ -0,0 +1,91 @@ +// /js/report-viewer-api.js +import { apiGet } from './api-helper.js'; +import { getUser } from './auth.js'; + +/** + * 보고서 조회를 위한 마스터 데이터를 로드합니다. (작업 유형, 상태 등) + * 실패 시 기본값을 반환할 수 있도록 개별적으로 처리합니다. + * @returns {Promise} - 각 마스터 데이터 배열을 포함하는 객체 + */ +export async function loadMasterData() { + const masterData = { + workTypes: [], + workStatusTypes: [], + errorTypes: [] + }; + try { + // Promise.allSettled를 사용해 일부 API가 실패해도 전체가 중단되지 않도록 함 + const results = await Promise.allSettled([ + apiGet('/daily-work-reports/work-types'), + apiGet('/daily-work-reports/work-status-types'), + apiGet('/daily-work-reports/error-types') + ]); + + if (results[0].status === 'fulfilled') masterData.workTypes = results[0].value; + if (results[1].status === 'fulfilled') masterData.workStatusTypes = results[1].value; + if (results[2].status === 'fulfilled') masterData.errorTypes = results[2].value; + + return masterData; + } catch (error) { + console.error('마스터 데이터 로딩 중 심각한 오류 발생:', error); + // 최소한의 기본값이라도 반환 + return masterData; + } +} + + +/** + * 사용자의 권한을 확인하여 적절한 API 엔드포인트와 파라미터를 결정합니다. + * @param {string} selectedDate - 조회할 날짜 + * @returns {string} - 호출할 API URL + */ +function getReportApiUrl(selectedDate) { + const user = getUser(); + + // 관리자(admin, system)는 모든 데이터를 조회 + if (user && (user.role === 'admin' || user.role === 'system')) { + // 백엔드에서 GET /daily-work-reports?date=YYYY-MM-DD 요청 시 + // 권한을 확인하고 모든 데이터를 내려준다고 가정 + return `/daily-work-reports?date=${selectedDate}`; + } + + // 그 외 사용자(leader, user)는 본인이 생성한 데이터만 조회 + // 백엔드에서 동일한 엔드포인트로 요청 시, 권한을 확인하고 + // 본인 데이터만 필터링해서 내려준다고 가정 + // (만약 엔드포인트가 다르다면 이 부분을 수정해야 함) + return `/daily-work-reports?date=${selectedDate}`; +} + + +/** + * 특정 날짜의 작업 보고서 데이터를 서버에서 가져옵니다. + * @param {string} selectedDate - 조회할 날짜 (YYYY-MM-DD) + * @returns {Promise} - 작업 보고서 데이터 배열 + */ +export async function fetchReportData(selectedDate) { + if (!selectedDate) { + throw new Error('조회할 날짜가 선택되지 않았습니다.'); + } + + const apiUrl = getReportApiUrl(selectedDate); + + try { + const rawData = await apiGet(apiUrl); + + // 서버 응답이 { success: true, data: [...] } 형태일 경우와 [...] 형태일 경우 모두 처리 + if (rawData && rawData.success && Array.isArray(rawData.data)) { + return rawData.data; + } + if (Array.isArray(rawData)) { + return rawData; + } + + // 예상치 못한 형식의 응답 + console.warn('예상치 못한 형식의 API 응답:', rawData); + return []; + + } catch (error) { + console.error(`${selectedDate}의 작업 보고서 조회 실패:`, error); + throw new Error('서버에서 데이터를 가져오는 데 실패했습니다.'); + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-export.js b/deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-export.js new file mode 100644 index 0000000..d6f8d67 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-export.js @@ -0,0 +1,72 @@ +// /js/report-viewer-export.js + +/** + * 주어진 데이터를 CSV 형식의 문자열로 변환합니다. + * @param {object} reportData - 요약 및 작업자별 데이터 + * @returns {string} - CSV 형식의 문자열 + */ +function convertToCsv(reportData) { + let csvContent = "\uFEFF"; // UTF-8 BOM + csvContent += "작업자명,프로젝트명,작업유형,작업상태,에러유형,작업시간,입력자\n"; + + reportData.workers.forEach(worker => { + worker.entries.forEach(entry => { + const row = [ + worker.worker_name, + entry.project_name, + entry.work_type_name, + entry.work_status_name, + entry.error_type_name, + entry.work_hours, + entry.created_by_name + ].map(field => `"${String(field || '').replace(/"/g, '""')}"`).join(','); + csvContent += row + "\n"; + }); + }); + return csvContent; +} + +/** + * 가공된 보고서 데이터를 CSV 파일로 다운로드합니다. + * @param {object|null} reportData - UI에 표시된 가공된 데이터 + */ +export function exportToExcel(reportData) { + if (!reportData || !reportData.workers || reportData.workers.length === 0) { + alert('내보낼 데이터가 없습니다.'); + return; + } + + try { + const csv = convertToCsv(reportData); + const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' }); + const link = document.createElement('a'); + const url = URL.createObjectURL(blob); + + const fileName = `작업보고서_${reportData.summary.date}.csv`; + + link.setAttribute('href', url); + link.setAttribute('download', fileName); + link.style.visibility = 'hidden'; + + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + URL.revokeObjectURL(url); + + } catch (error) { + console.error('Excel 내보내기 실패:', error); + alert('Excel 파일을 생성하는 중 오류가 발생했습니다.'); + } +} + +/** + * 현재 페이지의 인쇄 기능을 호출합니다. + */ +export function printReport() { + try { + window.print(); + } catch (error) { + console.error('인쇄 실패:', error); + alert('인쇄 중 오류가 발생했습니다.'); + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-ui.js b/deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-ui.js new file mode 100644 index 0000000..3669196 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/report-viewer-ui.js @@ -0,0 +1,144 @@ +// /js/report-viewer-ui.js + +/** + * 데이터를 가공하여 UI에 표시하기 좋은 요약 형태로 변환합니다. + * @param {Array} rawData - 서버에서 받은 원시 데이터 배열 + * @param {string} selectedDate - 선택된 날짜 + * @returns {object} - 요약 정보와 작업자별로 그룹화된 데이터를 포함하는 객체 + */ +export function processReportData(rawData, selectedDate) { + if (!Array.isArray(rawData) || rawData.length === 0) { + return null; + } + + const workerGroups = {}; + let totalHours = 0; + let errorCount = 0; + + rawData.forEach(item => { + const workerName = item.worker_name || '미지정'; + const workHours = parseFloat(item.work_hours || 0); + totalHours += workHours; + if (item.work_status_id === 2) errorCount++; // '에러' 상태 ID가 2라고 가정 + + if (!workerGroups[workerName]) { + workerGroups[workerName] = { + worker_name: workerName, + total_hours: 0, + entries: [] + }; + } + workerGroups[workerName].total_hours += workHours; + workerGroups[workerName].entries.push(item); + }); + + return { + summary: { + date: selectedDate, + total_workers: Object.keys(workerGroups).length, + total_hours: totalHours, + total_entries: rawData.length, + error_count: errorCount + }, + workers: Object.values(workerGroups) + }; +} + +function displaySummary(summary) { + const elements = { + totalWorkers: summary.total_workers, + totalHours: `${summary.total_hours}시간`, + totalEntries: `${summary.total_entries}개`, + errorCount: `${summary.error_count}개` + }; + Object.entries(elements).forEach(([id, value]) => { + const el = document.getElementById(id); + if (el) el.textContent = value; + }); + document.getElementById('reportSummary').style.display = 'block'; +} + +function createWorkEntryElement(entry) { + const entryDiv = document.createElement('div'); + entryDiv.className = `work-entry ${entry.work_status_id === 2 ? 'error-entry' : ''}`; + entryDiv.innerHTML = ` +
+
${entry.project_name || '프로젝트 미지정'}
+
${entry.work_hours || 0}시간
+
+
+
+ 작업 유형: + ${entry.work_type_name || '-'} +
+ ${entry.work_status_id === 2 ? ` +
+ 에러 유형: + ${entry.error_type_name || '에러'} +
` : ''} +
+ `; + return entryDiv; +} + +function displayWorkersDetails(workers) { + const workersListEl = document.getElementById('workersList'); + workersListEl.innerHTML = ''; + workers.forEach(worker => { + const workerCard = document.createElement('div'); + workerCard.className = 'worker-card'; + workerCard.innerHTML = ` +
+
👤 ${worker.worker_name}
+
총 ${worker.total_hours}시간
+
+ `; + const entriesContainer = document.createElement('div'); + entriesContainer.className = 'work-entries'; + worker.entries.forEach(entry => entriesContainer.appendChild(createWorkEntryElement(entry))); + workerCard.appendChild(entriesContainer); + workersListEl.appendChild(workerCard); + }); + document.getElementById('workersReport').style.display = 'block'; +} + +const hideElement = (id) => { + const el = document.getElementById(id); + if (el) el.style.display = 'none'; +}; + +/** + * 가공된 데이터를 받아 화면 전체를 렌더링합니다. + * @param {object|null} processedData - 가공된 데이터 또는 데이터가 없을 경우 null + */ +export function renderReport(processedData) { + hideElement('loadingSpinner'); + hideElement('errorMessage'); + hideElement('noDataMessage'); + hideElement('reportSummary'); + hideElement('workersReport'); + hideElement('exportSection'); + + if (!processedData) { + document.getElementById('noDataMessage').style.display = 'block'; + return; + } + displaySummary(processedData.summary); + displayWorkersDetails(processedData.workers); + document.getElementById('exportSection').style.display = 'block'; +} + +export function showLoading(isLoading) { + document.getElementById('loadingSpinner').style.display = isLoading ? 'flex' : 'none'; + if(isLoading) { + hideElement('errorMessage'); + hideElement('noDataMessage'); + } +} + +export function showError(message) { + const errorEl = document.getElementById('errorMessage'); + errorEl.querySelector('.error-text').textContent = message; + errorEl.style.display = 'block'; + hideElement('loadingSpinner'); +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/user-dashboard.js b/deploy/tkfb-package/fastapi-bridge/static/js/user-dashboard.js new file mode 100644 index 0000000..fee8d7a --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/user-dashboard.js @@ -0,0 +1,93 @@ +// /js/user-dashboard.js +import { getUser } from './auth.js'; +import { apiGet } from './api-helper.js'; // 개선된 api-helper를 사용합니다. + +/** + * API를 호출하여 오늘의 작업 일정을 불러와 화면에 표시합니다. + */ +async function loadTodaySchedule() { + const scheduleContainer = document.getElementById('today-schedule'); + scheduleContainer.innerHTML = '

📅 오늘의 작업 일정을 불러오는 중...

'; + + try { + // 예시: /api/dashboard/today-schedule 엔드포인트에서 데이터를 가져옵니다. + // 실제 엔드포인트는 백엔드 구현에 따라 달라질 수 있습니다. + const scheduleData = await apiGet('/dashboard/today-schedule'); + + if (scheduleData && scheduleData.length > 0) { + const scheduleHtml = scheduleData.map(item => ` +
+ ${item.time} + ${item.task_name} + ${item.status_kor} +
+ `).join(''); + scheduleContainer.innerHTML = scheduleHtml; + } else { + scheduleContainer.innerHTML = '

오늘 예정된 작업이 없습니다.

'; + } + } catch (error) { + console.error('오늘의 작업 일정 로드 실패:', error); + scheduleContainer.innerHTML = '

일정 정보를 불러오는 데 실패했습니다.

'; + } +} + +/** + * API를 호출하여 현재 사용자의 작업 통계를 불러와 화면에 표시합니다. + */ +async function loadWorkStats() { + const statsContainer = document.getElementById('work-stats'); + statsContainer.innerHTML = '

📈 내 작업 현황을 불러오는 중...

'; + + try { + // 예시: /api/dashboard/my-stats 엔드포인트에서 데이터를 가져옵니다. + const statsData = await apiGet('/dashboard/my-stats'); + + if (statsData) { + const statsHtml = ` +
+ 이번 주 작업 시간: + ${statsData.weekly_hours || 0} 시간 +
+
+ 이번 달 작업 시간: + ${statsData.monthly_hours || 0} 시간 +
+
+ 완료한 작업 수: + ${statsData.completed_tasks || 0} 건 +
+ `; + statsContainer.innerHTML = statsHtml; + } else { + statsContainer.innerHTML = '

표시할 통계 정보가 없습니다.

'; + } + } catch (error) { + console.error('작업 통계 로드 실패:', error); + statsContainer.innerHTML = '

통계 정보를 불러오는 데 실패했습니다.

'; + } +} + +/** + * 환영 메시지를 사용자 이름으로 개인화합니다. + */ +function personalizeWelcome() { + // 전역 변수 대신 auth.js 모듈을 통해 사용자 정보를 가져옵니다. + const user = getUser(); + if (user) { + const welcomeEl = document.getElementById('welcome-message'); + if (welcomeEl) { + welcomeEl.textContent = `${user.name || user.username}님, 환영합니다! 오늘 하루도 안전하게 작업하세요.`; + } + } +} + +// 페이지 초기화 함수 +function initializeDashboard() { + personalizeWelcome(); + loadTodaySchedule(); + loadWorkStats(); +} + +// DOM이 로드되면 대시보드 초기화를 시작합니다. +document.addEventListener('DOMContentLoaded', initializeDashboard); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/work-report-api.js b/deploy/tkfb-package/fastapi-bridge/static/js/work-report-api.js new file mode 100644 index 0000000..bb206ae --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/work-report-api.js @@ -0,0 +1,46 @@ +// /js/work-report-api.js +import { apiGet, apiPost } from './api-helper.js'; + +/** + * 작업 보고서 작성을 위해 필요한 초기 데이터(작업자, 프로젝트, 태스크)를 가져옵니다. + * Promise.all을 사용하여 병렬로 API를 호출합니다. + * @returns {Promise<{workers: Array, projects: Array, tasks: Array}>} + */ +export async function getInitialData() { + try { + const [workers, projects, tasks] = await Promise.all([ + apiGet('/workers'), + apiGet('/projects'), + apiGet('/tasks') + ]); + + // 데이터 형식 검증 + if (!Array.isArray(workers) || !Array.isArray(projects) || !Array.isArray(tasks)) { + throw new Error('서버에서 받은 데이터 형식이 올바르지 않습니다.'); + } + + // 작업자 목록은 ID 기준으로 정렬 + workers.sort((a, b) => a.worker_id - b.worker_id); + + return { workers, projects, tasks }; + } catch (error) { + console.error('초기 데이터 로딩 중 오류 발생:', error); + // 에러를 다시 던져서 호출한 쪽에서 처리할 수 있도록 함 + throw error; + } +} + +/** + * 작성된 작업 보고서 데이터를 서버에 전송합니다. + * @param {Array} reportData - 전송할 작업 보고서 데이터 배열 + * @returns {Promise} - 서버의 응답 결과 + */ +export async function createWorkReport(reportData) { + try { + const result = await apiPost('/workreports', reportData); + return result; + } catch (error) { + console.error('작업 보고서 생성 요청 실패:', error); + throw error; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/work-report-create.js b/deploy/tkfb-package/fastapi-bridge/static/js/work-report-create.js new file mode 100644 index 0000000..d61ed79 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/work-report-create.js @@ -0,0 +1,79 @@ +// /js/work-report-create.js +import { renderCalendar } from './calendar.js'; +import { getInitialData, createWorkReport } from './work-report-api.js'; +import { initializeReportTable, getReportData } from './work-report-ui.js'; + +// 전역 상태 변수 +let selectedDate = ''; + +/** + * 날짜가 선택되었을 때 실행되는 콜백 함수. + * 초기 데이터를 로드하고 테이블을 렌더링합니다. + * @param {string} date - 선택된 날짜 (YYYY-MM-DD 형식) + */ +async function onDateSelect(date) { + selectedDate = date; + const tableBody = document.getElementById('reportBody'); + tableBody.innerHTML = '데이터를 불러오는 중...'; + + try { + const initialData = await getInitialData(); + initializeReportTable(initialData); + } catch (error) { + alert('데이터를 불러오는 데 실패했습니다: ' + error.message); + tableBody.innerHTML = '오류 발생! 데이터를 불러올 수 없습니다.'; + } +} + +/** + * '전체 등록' 버튼 클릭 시 실행되는 이벤트 핸들러. + * 폼 데이터를 서버에 전송합니다. + */ +async function handleSubmit() { + if (!selectedDate) { + alert('먼저 달력에서 날짜를 선택해주세요.'); + return; + } + + const reportData = getReportData(); + if (!reportData) { + // getReportData 내부에서 이미 alert으로 사용자에게 알림 + return; + } + + // 각 항목에 선택된 날짜 추가 + const payload = reportData.map(item => ({ ...item, date: selectedDate })); + + const submitBtn = document.getElementById('submitBtn'); + submitBtn.disabled = true; + submitBtn.textContent = '등록 중...'; + + try { + const result = await createWorkReport(payload); + if (result.success) { + alert('✅ 작업 보고서가 성공적으로 등록되었습니다!'); + // 성공 후 폼을 다시 로드하거나, 다른 페이지로 이동 등의 로직 추가 가능 + onDateSelect(selectedDate); // 현재 날짜의 폼을 다시 로드 + } else { + throw new Error(result.error || '알 수 없는 오류로 등록에 실패했습니다.'); + } + } catch (error) { + alert('❌ 등록 실패: ' + error.message); + } finally { + submitBtn.disabled = false; + submitBtn.textContent = '전체 등록'; + } +} + +/** + * 페이지 초기화 함수 + */ +function initializePage() { + renderCalendar('calendar', onDateSelect); + + const submitBtn = document.getElementById('submitBtn'); + submitBtn.addEventListener('click', handleSubmit); +} + +// DOM이 로드되면 페이지 초기화를 시작합니다. +document.addEventListener('DOMContentLoaded', initializePage); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/work-report-manage.js b/deploy/tkfb-package/fastapi-bridge/static/js/work-report-manage.js new file mode 100644 index 0000000..fd73ca2 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/work-report-manage.js @@ -0,0 +1,210 @@ +import { renderCalendar } from '/js/calendar.js'; +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +ensureAuthenticated(); + +const calendarEl = document.getElementById('calendar'); +const reportBody = document.getElementById('reportBody'); +let selectedDate = ''; + +// 캘린더 렌더링 +renderCalendar('calendar', (dateStr) => { + selectedDate = dateStr; + loadReports(); +}); + +// 보고서 로딩 +async function loadReports() { + if (!selectedDate) return; + reportBody.innerHTML = '불러오는 중...'; + + try { + const [wRes, pRes, tRes, rRes] = await Promise.all([ + fetch(`${API}/workers`, { headers: getAuthHeaders() }), + fetch(`${API}/projects`, { headers: getAuthHeaders() }), + fetch(`${API}/tasks`, { headers: getAuthHeaders() }), + fetch(`${API}/workreports?start=${selectedDate}&end=${selectedDate}`, { headers: getAuthHeaders() }) + ]); + + if (![wRes, pRes, tRes, rRes].every(res => res.ok)) throw new Error('불러오기 실패'); + + const [workers, projects, tasks, reports] = await Promise.all([ + wRes.json(), pRes.json(), tRes.json(), rRes.json() + ]); + + // 배열 체크 + if (!Array.isArray(workers) || !Array.isArray(projects) || !Array.isArray(tasks) || !Array.isArray(reports)) { + throw new Error('잘못된 데이터 형식'); + } + + if (!reports.length) { + reportBody.innerHTML = '등록된 보고서가 없습니다.'; + return; + } + + const nameMap = Object.fromEntries(workers.map(w => [w.worker_id, w.worker_name])); + const projMap = Object.fromEntries(projects.map(p => [p.project_id, p.project_name])); + const taskMap = Object.fromEntries(tasks.map(t => [t.task_id, `${t.category}:${t.subcategory}`])); + + reportBody.innerHTML = ''; + reports.forEach((r, i) => { + const tr = document.createElement('tr'); + tr.innerHTML = ` + ${i + 1} + ${nameMap[r.worker_id] || r.worker_id} + + + + + + + + + `; + + // 저장 버튼 + tr.querySelector('.save-btn').onclick = async () => { + // 입력값 검증 + const projectId = tr.querySelector('[data-id="project"]').value; + const taskId = tr.querySelector('[data-id="task"]').value; + const overtimeHours = tr.querySelector('[data-id="overtime"]').value; + + if (!projectId || !taskId) { + alert('❌ 프로젝트와 작업을 선택해주세요.'); + return; + } + + // 날짜 형식 처리 - MySQL DATE 형식으로 변환 + const formatDate = (dateStr) => { + if (!dateStr) return selectedDate; + + // 이미 YYYY-MM-DD 형식인지 확인 + if (/^\d{4}-\d{2}-\d{2}$/.test(dateStr)) { + return dateStr; + } + + // ISO 형식이나 다른 형식을 YYYY-MM-DD로 변환 + const date = new Date(dateStr); + if (isNaN(date.getTime())) { + return selectedDate; // 잘못된 날짜면 선택된 날짜 사용 + } + + return date.toISOString().split('T')[0]; // YYYY-MM-DD 형식으로 변환 + }; + + const payload = { + date: formatDate(r.date), // 날짜 형식 변환 + worker_id: r.worker_id, // 기존 작업자 ID 유지 + project_id: Number(projectId), + task_id: Number(taskId), + overtime_hours: overtimeHours ? Number(overtimeHours) : null, + work_details: tr.querySelector('[data-id="work_details"]').value, + memo: tr.querySelector('[data-id="memo"]').value.trim() || null + }; + + // 저장 버튼 상태 변경 (로딩 중) + const saveBtn = tr.querySelector('.save-btn'); + const originalText = saveBtn.textContent; + const originalColor = saveBtn.style.backgroundColor; + + saveBtn.textContent = '저장 중...'; + saveBtn.style.backgroundColor = '#ffc107'; + saveBtn.disabled = true; + + try { + const res = await fetch(`${API}/workreports/${r.id}`, { + method: 'PUT', + headers: { + ...getAuthHeaders(), + 'Content-Type': 'application/json' + }, + body: JSON.stringify(payload) + }); + + const result = await res.json(); + + if (res.ok && result.success) { + // 성공 상태 표시 + saveBtn.textContent = '✅ 완료'; + saveBtn.style.backgroundColor = '#28a745'; + saveBtn.style.color = 'white'; + + setTimeout(() => { + saveBtn.textContent = originalText; + saveBtn.style.backgroundColor = originalColor; + saveBtn.style.color = ''; + saveBtn.disabled = false; + }, 2000); + + // alert 대신 조용한 알림 + console.log('저장 완료:', result); + } else { + console.error('저장 실패:', result); + alert(`❌ 저장 실패: ${result.error || result.message || '알 수 없는 오류'}`); + + // 실패 시 버튼 복원 + saveBtn.textContent = originalText; + saveBtn.style.backgroundColor = originalColor; + saveBtn.disabled = false; + } + } catch (err) { + console.error('저장 요청 에러:', err); + alert('❌ 저장 요청 실패: ' + err.message); + + // 에러 시 버튼 복원 + saveBtn.textContent = originalText; + saveBtn.style.backgroundColor = originalColor; + saveBtn.disabled = false; + } + }; + + // 삭제 버튼 + tr.querySelector('.delete-btn').onclick = async () => { + if (!confirm('정말 삭제하시겠습니까?')) return; + + try { + const res = await fetch(`${API}/workreports/${r.id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + + if (res.ok) { + tr.remove(); + // 행 번호 다시 매기기 + updateRowNumbers(); + alert('✅ 삭제 완료'); + } else { + const result = await res.json(); + alert(`❌ 삭제 실패: ${result.error || result.message || '알 수 없는 오류'}`); + } + } catch (err) { + console.error('삭제 요청 에러:', err); + alert('❌ 삭제 요청 실패: ' + err.message); + } + }; + + reportBody.appendChild(tr); + }); + } catch (err) { + console.error('데이터 로딩 에러:', err); + reportBody.innerHTML = '❌ 불러오기 실패: ' + err.message + ''; + } +} + +// 행 번호 다시 매기기 +function updateRowNumbers() { + reportBody.querySelectorAll('tr').forEach((tr, i) => { + const firstTd = tr.querySelector('td:first-child'); + if (firstTd) firstTd.textContent = i + 1; + }); +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/work-report-review.js b/deploy/tkfb-package/fastapi-bridge/static/js/work-report-review.js new file mode 100644 index 0000000..702cf3d --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/work-report-review.js @@ -0,0 +1,1055 @@ +// js/work-report-review.js - 휴가 연동 완전판 +import { API, getAuthHeaders } from '/js/api-config.js'; + +class WorkReportReviewManager { + constructor() { + this.workers = []; + this.projects = []; + this.workTypes = []; + this.workStatusTypes = []; + this.errorTypes = []; + this.reports = []; + this.filteredReports = []; + this.attendanceData = []; // 휴가 정보 + this.reviewedReports = new Set(); // 검토완료된 보고서 ID + this.selectedReport = null; + this.init(); + } + + async init() { + try { + // 필수 DOM 요소 확인 + const requiredElements = ['reportsTableBody', 'editPanelContent', 'totalReports']; + const missingElements = requiredElements.filter(id => !document.getElementById(id)); + + if (missingElements.length > 0) { + console.error('필수 DOM 요소가 없습니다:', missingElements); + return; + } + + this.showLoading(true); + await this.loadData(); + this.setupEventListeners(); + this.setDefaultDates(); + await this.loadReports(); + this.showLoading(false); + } catch (error) { + this.showMessage('데이터 로드 중 오류가 발생했습니다.', 'error'); + console.error('초기화 오류:', error); + this.showLoading(false); + } + } + + async loadData() { + try { + // 기본 데이터 로딩 + const [workersRes, projectsRes, workTypesRes, workStatusRes, errorTypesRes] = await Promise.all([ + fetch(`${API}/workers`, { headers: getAuthHeaders() }), + fetch(`${API}/projects`, { headers: getAuthHeaders() }), + fetch(`${API}/daily-work-reports/work-types`, { headers: getAuthHeaders() }), + fetch(`${API}/daily-work-reports/work-status-types`, { headers: getAuthHeaders() }), + fetch(`${API}/daily-work-reports/error-types`, { headers: getAuthHeaders() }) + ]); + + if (!workersRes.ok || !projectsRes.ok) { + throw new Error(`API 응답 오류: Workers(${workersRes.status}), Projects(${projectsRes.status})`); + } + + this.workers = await workersRes.json(); + this.projects = await projectsRes.json(); + + // 새로운 API들 로드 (실패해도 기본값 사용) + try { + this.workTypes = workTypesRes.ok ? await workTypesRes.json() : [ + {id: 1, name: 'Base'}, {id: 2, name: 'Vessel'}, {id: 3, name: 'Piping'} + ]; + this.workStatusTypes = workStatusRes.ok ? await workStatusRes.json() : [ + {id: 1, name: '정규'}, {id: 2, name: '에러'} + ]; + this.errorTypes = errorTypesRes.ok ? await errorTypesRes.json() : [ + {id: 1, name: '설계미스'}, {id: 2, name: '외주작업 불량'}, + {id: 3, name: '입고지연'}, {id: 4, name: '작업 불량'} + ]; + } catch (error) { + console.log('⚠️ 일부 API 사용 불가, 기본값 사용'); + } + + // 휴가 정보 로드 + await this.loadAttendanceData(); + + this.populateFilters(); + console.log('기본 데이터 로드 완료'); + } catch (error) { + console.error('기본 데이터 로드 오류:', error); + throw error; + } + } + + async loadAttendanceData() { + try { + const startDate = document.getElementById('startDate').value; + const endDate = document.getElementById('endDate').value; + + if (!startDate || !endDate) return; + + // 휴가 정보 API 호출 (예상 엔드포인트) + const response = await fetch(`${API}/attendance?start_date=${startDate}&end_date=${endDate}`, { + headers: getAuthHeaders() + }); + + if (response.ok) { + this.attendanceData = await response.json(); + console.log('휴가 정보 로드 완료:', this.attendanceData.length); + } else if (response.status === 404) { + console.log('⚠️ 휴가 API 없음, 더미 데이터 생성'); + this.attendanceData = this.generateDummyAttendance(); + } else { + throw new Error(`휴가 정보 로드 실패: ${response.status}`); + } + } catch (error) { + console.log('⚠️ 휴가 정보 로드 오류, 더미 데이터 사용:', error.message); + this.attendanceData = this.generateDummyAttendance(); + } + } + + generateDummyAttendance() { + const startDate = document.getElementById('startDate').value; + const endDate = document.getElementById('endDate').value; + if (!startDate || !endDate) return []; + + const dummyAttendance = []; + const start = new Date(startDate); + const end = new Date(endDate); + + // 날짜별로 작업자들의 출근 상태 생성 + for (let d = new Date(start); d <= end; d.setDate(d.getDate() + 1)) { + const dateStr = d.toISOString().split('T')[0]; + + this.workers.forEach(worker => { + const rand = Math.random(); + let attendanceType = 'NORMAL'; // 기본값 + + // 5% 확률로 휴가 + if (rand < 0.05) { + const types = ['HALF_DAY', 'HALF_HALF_DAY', 'EARLY_LEAVE']; + attendanceType = types[Math.floor(Math.random() * types.length)]; + } + + dummyAttendance.push({ + id: `att_${worker.worker_id}_${dateStr}`, + worker_id: worker.worker_id, + worker_name: worker.worker_name, + date: dateStr, + attendance_type: attendanceType, + expected_hours: this.getExpectedHours(attendanceType) + }); + }); + } + + return dummyAttendance; + } + + getExpectedHours(attendanceType) { + switch (attendanceType) { + case 'HALF_DAY': return 4; // 반차 + case 'HALF_HALF_DAY': return 6; // 반반차 + case 'EARLY_LEAVE': return 2; // 조퇴 + case 'NORMAL': + default: return 8; // 일반근무 + } + } + + getAttendanceTypeName(attendanceType) { + switch (attendanceType) { + case 'HALF_DAY': return '반차'; + case 'HALF_HALF_DAY': return '반반차'; + case 'EARLY_LEAVE': return '조퇴'; + case 'NORMAL': + default: return '정상근무'; + } + } + + async loadReports() { + try { + const startDate = document.getElementById('startDate').value; + const endDate = document.getElementById('endDate').value; + const workerId = document.getElementById('workerFilter').value; + const projectId = document.getElementById('projectFilter').value; + + // 필수 조건 체크 + if (!startDate || !endDate) { + this.showMessage('시작 날짜와 종료 날짜는 필수입니다.', 'error'); + return; + } + + // 휴가 정보 먼저 로드 + await this.loadAttendanceData(); + + let url = `${API}/daily-work-reports/search?`; + const params = new URLSearchParams(); + + if (startDate) params.append('start_date', startDate); + if (endDate) params.append('end_date', endDate); + if (workerId) params.append('worker_id', workerId); + if (projectId) params.append('project_id', projectId); + + // 페이지네이션 (일단 많이 가져오기) + params.append('page', '1'); + params.append('limit', '1000'); + + url += params.toString(); + + const response = await fetch(url, { headers: getAuthHeaders() }); + + if (response.status === 404 || response.status === 500) { + // API가 아직 준비되지 않은 경우 더미 데이터 사용 + this.reports = this.generateDummyData(); + console.log('⚠️ API 응답 오류, 더미 데이터 사용:', response.status); + if (response.status === 404) { + this.showMessage('⚠️ 검토 API가 준비되지 않아 더미 데이터를 표시합니다.', 'warning'); + } else { + this.showMessage('⚠️ 서버 오류로 더미 데이터를 표시합니다.', 'warning'); + } + } else if (response.ok) { + const result = await response.json(); + this.reports = result.reports || []; + console.log('검색 결과:', result.summary); + } else { + throw new Error(`보고서 로드 실패: ${response.status}`); + } + + // 근무시간 검증 추가 + this.validateWorkHours(); + + this.filteredReports = [...this.reports]; + this.updateDashboard(); + this.updateAlertsSection(); + this.updateTable(); + + } catch (error) { + console.log('⚠️ 네트워크 오류로 더미 데이터 사용:', error.message); + // 더미 데이터로 대체 + this.reports = this.generateDummyData(); + this.validateWorkHours(); + this.filteredReports = [...this.reports]; + this.updateDashboard(); + this.updateAlertsSection(); + this.updateTable(); + // 사용자에게는 부드러운 메시지 표시 + this.showMessage('💡 데모 데이터로 화면을 구성했습니다.', 'info'); + } + } + + validateWorkHours() { + // 각 보고서에 대해 근무시간 검증 + this.reports.forEach(report => { + const attendance = this.attendanceData.find(att => + att.worker_id === report.worker_id && att.date === report.report_date + ); + + if (attendance) { + const expectedHours = attendance.expected_hours; + const actualHours = this.getWorkerDailyHours(report.worker_id, report.report_date); + + report.expected_hours = expectedHours; + report.actual_hours = actualHours; + report.attendance_type = attendance.attendance_type; + report.hours_status = this.getHoursStatus(actualHours, expectedHours); + report.is_reviewed = this.reviewedReports.has(`${report.worker_id}_${report.report_date}`); + } else { + // 휴가 정보가 없으면 기본 8시간으로 가정 + const actualHours = this.getWorkerDailyHours(report.worker_id, report.report_date); + report.expected_hours = 8; + report.actual_hours = actualHours; + report.attendance_type = 'NORMAL'; + report.hours_status = this.getHoursStatus(actualHours, 8); + report.is_reviewed = this.reviewedReports.has(`${report.worker_id}_${report.report_date}`); + } + }); + } + + getWorkerDailyHours(workerId, date) { + // 해당 작업자의 특정 날짜 총 작업시간 계산 + return this.reports + .filter(r => r.worker_id === workerId && r.report_date === date) + .reduce((sum, r) => sum + (r.work_hours || 0), 0); + } + + getHoursStatus(actualHours, expectedHours) { + const tolerance = 0.5; // 30분 허용 오차 + + if (Math.abs(actualHours - expectedHours) <= tolerance) { + return 'NORMAL'; // 정상 + } else if (actualHours < expectedHours) { + return 'UNDER'; // 부족 + } else { + return 'OVER'; // 초과 + } + } + + generateDummyData() { + const today = new Date(); + const dummyData = []; + + // 더미 데이터 생성 (최근 7일) + for (let i = 0; i < 7; i++) { + const date = new Date(today); + date.setDate(date.getDate() - i); + const dateStr = date.toISOString().split('T')[0]; + + this.workers.forEach(worker => { + // 80% 확률로 보고서 생성 + if (Math.random() > 0.2) { + const numEntries = Math.floor(Math.random() * 3) + 1; // 1-3개 작업 + + for (let j = 0; j < numEntries; j++) { + const workStatus = Math.random() > 0.9 ? 2 : 1; // 10% 확률로 에러 + const workHours = Math.random() > 0.95 ? + (Math.random() * 4 + 10) : // 5% 확률로 이상 시간 (10-14시간) + (Math.random() * 6 + 2); // 정상 시간 (2-8시간) + + dummyData.push({ + id: 1000000 + i * 100 + worker.worker_id * 10 + j, // 고유 정수 ID + report_date: dateStr, + worker_id: worker.worker_id, + worker_name: worker.worker_name, + project_id: this.projects[Math.floor(Math.random() * this.projects.length)]?.project_id || 1, + project_name: this.projects[Math.floor(Math.random() * this.projects.length)]?.project_name || 'Unknown', + work_type_id: Math.floor(Math.random() * 3) + 1, + work_type_name: this.workTypes[Math.floor(Math.random() * 3)]?.name || 'Base', + work_status_id: workStatus, + work_status_name: workStatus === 2 ? '에러' : '정규', + error_type_id: workStatus === 2 ? Math.floor(Math.random() * 4) + 1 : null, + error_type_name: workStatus === 2 ? this.errorTypes[Math.floor(Math.random() * 4)]?.name : null, + work_hours: Math.round(workHours * 2) / 2, // 0.5시간 단위 + created_at: `${dateStr}T${String(Math.floor(Math.random() * 24)).padStart(2, '0')}:${String(Math.floor(Math.random() * 60)).padStart(2, '0')}:00` + }); + } + } + }); + } + + return dummyData.sort((a, b) => new Date(b.created_at) - new Date(a.created_at)); + } + + populateFilters() { + // 작업자 필터 + const workerSelect = document.getElementById('workerFilter'); + if (workerSelect) { + workerSelect.innerHTML = ''; + this.workers.forEach(worker => { + workerSelect.innerHTML += ``; + }); + } + + // 프로젝트 필터 + const projectSelect = document.getElementById('projectFilter'); + if (projectSelect) { + projectSelect.innerHTML = ''; + this.projects.forEach(project => { + projectSelect.innerHTML += ``; + }); + } + } + + setDefaultDates() { + const today = new Date(); + const weekAgo = new Date(today); + weekAgo.setDate(weekAgo.getDate() - 7); + + const startDateInput = document.getElementById('startDate'); + const endDateInput = document.getElementById('endDate'); + + if (startDateInput) startDateInput.value = weekAgo.toISOString().split('T')[0]; + if (endDateInput) endDateInput.value = today.toISOString().split('T')[0]; + } + + updateDashboard() { + // 날짜별, 작업자별로 그룹화하여 계산 + const groupedReports = this.groupReportsByWorkerAndDate(); + const groups = Object.values(groupedReports); + + const total = groups.length; + const errors = groups.filter(group => group.some(r => r.work_status_id === 2)).length; + const warnings = groups.filter(group => { + const firstReport = group[0]; + return firstReport.hours_status === 'UNDER' || firstReport.hours_status === 'OVER'; + }).length; + const reviewed = groups.filter(group => group[0].is_reviewed).length; + + document.getElementById('totalReports').textContent = total; + document.getElementById('errorReports').textContent = errors; + document.getElementById('warningReports').textContent = warnings; + document.getElementById('missingReports').textContent = total - reviewed; // 미검토 건수 + } + + updateAlertsSection() { + const alertsList = document.getElementById('alertsList'); + if (!alertsList) return; + + const alerts = []; + const groupedReports = this.groupReportsByWorkerAndDate(); + + // 각 그룹별로 알림 체크 + Object.values(groupedReports).forEach(group => { + const firstReport = group[0]; + const hasError = group.some(r => r.work_status_id === 2); + const workerName = firstReport.worker_name; + const date = firstReport.report_date; + + // 에러 발생 건 + if (hasError) { + const errorReports = group.filter(r => r.work_status_id === 2); + alerts.push({ + type: 'error', + text: `${workerName} (${date}) - 에러 ${errorReports.length}건`, + time: this.formatDate(date), + priority: 1 + }); + } + + // 시간 불일치 + if (firstReport.hours_status === 'UNDER' || firstReport.hours_status === 'OVER') { + const statusText = firstReport.hours_status === 'UNDER' ? '부족' : '초과'; + alerts.push({ + type: 'warning', + text: `${workerName} (${date}) - 시간 ${statusText} (${firstReport.actual_hours}h/${firstReport.expected_hours}h)`, + time: this.formatDate(date), + priority: 2 + }); + } + + // 검토 대기 (정상이지만 아직 검토되지 않음) + if (!firstReport.is_reviewed && firstReport.hours_status === 'NORMAL' && !hasError) { + alerts.push({ + type: 'pending', + text: `${workerName} (${date}) - 검토 대기`, + time: this.formatDate(date), + priority: 3 + }); + } + }); + + // 우선순위별 정렬 + alerts.sort((a, b) => a.priority - b.priority); + + // 알림 표시 + if (alerts.length === 0) { + alertsList.innerHTML = ` +
+
+ ✅ 모든 항목이 정상이거나 검토 완료되었습니다 +
+
+ `; + } else { + alertsList.innerHTML = alerts.map(alert => ` +
+
+
+ ${this.getAlertTypeLabel(alert.type)} + ${alert.text} +
+
${alert.time}
+
+
+ `).join(''); + } + } + + getAlertTypeLabel(type) { + switch (type) { + case 'error': return '에러'; + case 'warning': return '주의'; + case 'pending': return '대기'; + case 'missing': return '미입력'; + default: return '알림'; + } + } + + updateTable() { + const tbody = document.getElementById('reportsTableBody'); + if (!tbody) return; + + if (this.filteredReports.length === 0) { + tbody.innerHTML = ` + + + 조회된 데이터가 없습니다 + + + `; + return; + } + + // 날짜별, 작업자별로 그룹화 + const groupedReports = this.groupReportsByWorkerAndDate(); + + tbody.innerHTML = Object.entries(groupedReports).map(([key, group]) => { + const [workerId, date] = key.split('_'); + const firstReport = group[0]; + const totalHours = group.reduce((sum, r) => sum + (r.work_hours || 0), 0); + const hasError = group.some(r => r.work_status_id === 2); + const rowClass = this.getGroupRowClass(firstReport, hasError); + + return ` + + ${this.formatDate(firstReport.report_date)} + ${firstReport.worker_name} + + + ${this.getAttendanceTypeName(firstReport.attendance_type)} + + + ${firstReport.expected_hours}h + ${totalHours}h + + + ${this.getHoursStatusName(firstReport.hours_status)} + + + ${group.map(r => r.project_name).join(', ')} + ${group.map(r => r.work_type_name).join(', ')} + + ${hasError ? '에러 포함' : '정상'} + + + ${firstReport.is_reviewed ? + '검토완료' : + '검토대기' + } + + + ${!firstReport.is_reviewed && firstReport.hours_status === 'NORMAL' && !hasError ? + `` : + '-' + } + + + `; + }).join(''); + } + + groupReportsByWorkerAndDate() { + const grouped = {}; + + this.filteredReports.forEach(report => { + const key = `${report.worker_id}_${report.report_date}`; + if (!grouped[key]) { + grouped[key] = []; + } + grouped[key].push(report); + }); + + return grouped; + } + + getGroupRowClass(report, hasError) { + if (report.is_reviewed) return 'row-reviewed'; + if (hasError || report.work_status_id === 2) return 'row-error'; + if (report.hours_status === 'UNDER' || report.hours_status === 'OVER') return 'row-warning'; + return 'row-normal'; + } + + getHoursStatusName(status) { + switch (status) { + case 'NORMAL': return '정상'; + case 'UNDER': return '부족'; + case 'OVER': return '초과'; + default: return '확인필요'; + } + } + + selectWorkerDate(workerId, date) { + // 해당 작업자의 특정 날짜 보고서들을 선택 + const reports = this.filteredReports.filter(r => + r.worker_id == workerId && r.report_date === date + ); + + if (reports.length > 0) { + this.selectedReport = reports[0]; // 첫 번째 보고서를 대표로 선택 + this.selectedReport.allReports = reports; // 전체 보고서 목록 추가 + this.updateEditPanel(); + + // 테이블에서 선택 표시 + document.querySelectorAll('.data-table tr.selected').forEach(tr => { + tr.classList.remove('selected'); + }); + + // 해당 행 선택 표시 + const rows = document.querySelectorAll('.data-table tr'); + rows.forEach(row => { + if (row.onclick && row.onclick.toString().includes(`'${workerId}', '${date}'`)) { + row.classList.add('selected'); + } + }); + } + } + + async markAsReviewed(workerId, date) { + try { + const key = `${workerId}_${date}`; + + // API 호출 (준비되면) + // const response = await fetch(`${API}/daily-work-reports/review`, { + // method: 'POST', + // headers: { ...getAuthHeaders(), 'Content-Type': 'application/json' }, + // body: JSON.stringify({ worker_id: workerId, report_date: date, reviewed: true }) + // }); + + // 현재는 로컬 상태만 업데이트 + this.reviewedReports.add(key); + + // 해당 보고서들의 검토 상태 업데이트 + this.reports.forEach(report => { + if (report.worker_id == workerId && report.report_date === date) { + report.is_reviewed = true; + } + }); + + this.filteredReports = [...this.reports]; + this.updateDashboard(); + this.updateAlertsSection(); + this.updateTable(); + + this.showMessage(`✅ ${this.getWorkerName(workerId)}의 ${date} 보고서가 검토완료 처리되었습니다.`, 'success'); + + } catch (error) { + this.showMessage('❌ 검토완료 처리 중 오류가 발생했습니다.', 'error'); + console.error('검토완료 오류:', error); + } + } + + getWorkerName(workerId) { + const worker = this.workers.find(w => w.worker_id == workerId); + return worker ? worker.worker_name : `작업자${workerId}`; + } + + updateEditPanel() { + const panelContent = document.getElementById('editPanelContent'); + if (!panelContent || !this.selectedReport) return; + + const report = this.selectedReport; + const allReports = report.allReports || [report]; + + panelContent.innerHTML = ` +
+

${report.worker_name} - ${this.formatDate(report.report_date)}

+
+
+ 출근형태:
+ + ${this.getAttendanceTypeName(report.attendance_type)} + +
+
+ 시간상태:
+ + ${this.getHoursStatusName(report.hours_status)} + +
+
기대시간: ${report.expected_hours}시간
+
실제시간: ${report.actual_hours}시간
+
+
+ +
+
작업 상세 (${allReports.length}건)
+ ${allReports.map((r, index) => ` +
+
+
프로젝트: ${r.project_name}
+
작업유형: ${r.work_type_name}
+
작업시간: ${r.work_hours}시간
+
상태: ${r.work_status_name}
+ ${r.error_type_name ? `
에러유형: ${r.error_type_name}
` : ''} +
+ +
+ `).join('')} +
+ +
+ ${!report.is_reviewed && report.hours_status === 'NORMAL' && !allReports.some(r => r.work_status_id === 2) ? + `` : '' + } + +
+ `; + } + + editSingleReport(reportId) { + // 개별 보고서 수정을 위해 기존 로직 사용 + this.selectedReport = this.filteredReports.find(r => r.id == reportId); + if (this.selectedReport) { + // 기존 수정 폼 표시 + this.showEditForm(); + } + } + + showEditForm() { + const panelContent = document.getElementById('editPanelContent'); + if (!panelContent || !this.selectedReport) return; + + const report = this.selectedReport; + + panelContent.innerHTML = ` +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ + + +
+ `; + + // 업무 상태 변경 시 에러 유형 표시/숨김 + const workStatusSelect = document.getElementById('editWorkStatus'); + const errorTypeGroup = document.getElementById('editErrorTypeGroup'); + + if (workStatusSelect && errorTypeGroup) { + workStatusSelect.addEventListener('change', (e) => { + if (e.target.value === '2') { + errorTypeGroup.style.display = 'block'; + } else { + errorTypeGroup.style.display = 'none'; + document.getElementById('editErrorType').value = ''; + } + }); + } + } + + async saveReport() { + if (!this.selectedReport) return; + + try { + this.showLoading(true); + + const formData = { + report_date: document.getElementById('editReportDate').value, + project_id: parseInt(document.getElementById('editProject').value), + work_type_id: parseInt(document.getElementById('editWorkType').value), + work_status_id: parseInt(document.getElementById('editWorkStatus').value), + error_type_id: document.getElementById('editErrorType').value ? + parseInt(document.getElementById('editErrorType').value) : null, + work_hours: parseFloat(document.getElementById('editWorkHours').value) + }; + + const response = await fetch(`${API}/daily-work-reports/${this.selectedReport.id}`, { + method: 'PUT', + headers: { + ...getAuthHeaders(), + 'Content-Type': 'application/json' + }, + body: JSON.stringify(formData) + }); + + if (response.status === 404 || response.status === 500) { + if (response.status === 404) { + this.showMessage('⚠️ 수정 API가 아직 준비되지 않았습니다.', 'warning'); + } else { + this.showMessage('⚠️ 서버 오류가 발생했습니다. 더미 데이터를 수정합니다.', 'warning'); + } + // 더미 데이터 업데이트 + this.updateDummyData(formData); + } else if (response.ok) { + this.showMessage('✅ 성공적으로 수정되었습니다.', 'success'); + await this.loadReports(); + } else { + const result = await response.json(); + throw new Error(result.error || '수정 중 오류가 발생했습니다.'); + } + + this.clearSelection(); + + } catch (error) { + this.showMessage(`❌ ${error.message}`, 'error'); + console.error('수정 오류:', error); + } finally { + this.showLoading(false); + } + } + + updateDummyData(formData) { + // 더미 데이터에서 수정 + const reportIndex = this.reports.findIndex(r => r.id === this.selectedReport.id); + if (reportIndex !== -1) { + this.reports[reportIndex] = { + ...this.reports[reportIndex], + ...formData, + project_name: this.projects.find(p => p.project_id === formData.project_id)?.project_name, + work_type_name: this.workTypes.find(wt => wt.id === formData.work_type_id)?.name, + work_status_name: this.workStatusTypes.find(ws => ws.id === formData.work_status_id)?.name, + error_type_name: formData.error_type_id ? + this.errorTypes.find(et => et.id === formData.error_type_id)?.name : null + }; + + // 시간 검증 다시 실행 + this.validateWorkHours(); + + this.filteredReports = [...this.reports]; + this.updateDashboard(); + this.updateAlertsSection(); + this.updateTable(); + } + } + + async deleteReport() { + if (!this.selectedReport) return; + + if (!confirm('정말로 이 보고서를 삭제하시겠습니까?')) return; + + try { + this.showLoading(true); + + const response = await fetch(`${API}/daily-work-reports/${this.selectedReport.id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + + if (response.status === 404 || response.status === 500) { + if (response.status === 404) { + this.showMessage('⚠️ 삭제 API가 아직 준비되지 않았습니다.', 'warning'); + } else { + this.showMessage('⚠️ 서버 오류가 발생했습니다. 더미 데이터를 삭제합니다.', 'warning'); + } + // 더미 데이터에서 삭제 + this.reports = this.reports.filter(r => r.id !== this.selectedReport.id); + this.filteredReports = [...this.reports]; + this.updateDashboard(); + this.updateAlertsSection(); + this.updateTable(); + } else if (response.ok) { + this.showMessage('✅ 성공적으로 삭제되었습니다.', 'success'); + await this.loadReports(); + } else { + const result = await response.json(); + throw new Error(result.error || '삭제 중 오류가 발생했습니다.'); + } + + this.clearSelection(); + + } catch (error) { + this.showMessage(`❌ ${error.message}`, 'error'); + console.error('삭제 오류:', error); + } finally { + this.showLoading(false); + } + } + + clearSelection() { + this.selectedReport = null; + + // 테이블 선택 해제 + document.querySelectorAll('.data-table tr.selected').forEach(tr => { + tr.classList.remove('selected'); + }); + + // 패널 초기화 + const panelContent = document.getElementById('editPanelContent'); + if (panelContent) { + panelContent.innerHTML = ` +
+
📝
+
수정할 항목을 선택해주세요
+
+ `; + } + } + + setupEventListeners() { + // 필터 적용 버튼 + const applyFilterBtn = document.getElementById('applyFilter'); + if (applyFilterBtn) { + applyFilterBtn.addEventListener('click', () => { + this.loadReports(); + }); + } + + // 새로고침 버튼 + const refreshBtn = document.getElementById('refreshBtn'); + if (refreshBtn) { + refreshBtn.addEventListener('click', () => { + this.loadReports(); + }); + } + + // 내보내기 버튼 + const exportBtn = document.getElementById('exportBtn'); + if (exportBtn) { + exportBtn.addEventListener('click', () => { + this.exportData(); + }); + } + + // 엔터키로 필터 적용 + ['startDate', 'endDate', 'workerFilter', 'projectFilter'].forEach(id => { + const element = document.getElementById(id); + if (element) { + element.addEventListener('change', () => { + this.loadReports(); + }); + } + }); + } + + exportData() { + if (this.filteredReports.length === 0) { + this.showMessage('내보낼 데이터가 없습니다.', 'warning'); + return; + } + + // CSV 생성 + const headers = ['날짜', '작업자', '출근형태', '기대시간', '실제시간', '시간상태', '프로젝트', '작업유형', '상태', '검토상태']; + + // 그룹화된 데이터로 CSV 생성 + const groupedReports = this.groupReportsByWorkerAndDate(); + const csvContent = [ + headers.join(','), + ...Object.entries(groupedReports).map(([key, group]) => { + const firstReport = group[0]; + const totalHours = group.reduce((sum, r) => sum + (r.work_hours || 0), 0); + const hasError = group.some(r => r.work_status_id === 2); + + return [ + firstReport.report_date, + firstReport.worker_name, + this.getAttendanceTypeName(firstReport.attendance_type), + firstReport.expected_hours, + totalHours, + this.getHoursStatusName(firstReport.hours_status), + group.map(r => r.project_name).join('; '), + group.map(r => r.work_type_name).join('; '), + hasError ? '에러 포함' : '정상', + firstReport.is_reviewed ? '검토완료' : '검토대기' + ].join(','); + }) + ].join('\n'); + + // 파일 다운로드 + const blob = new Blob(['\uFEFF' + csvContent], { type: 'text/csv;charset=utf-8;' }); + const link = document.createElement('a'); + link.href = URL.createObjectURL(blob); + link.download = `작업보고서_검토_${new Date().toISOString().split('T')[0]}.csv`; + link.click(); + + this.showMessage('✅ 데이터가 내보내졌습니다.', 'success'); + } + + formatDate(dateStr) { + return new Date(dateStr).toLocaleDateString('ko-KR'); + } + + formatTime(dateTimeStr) { + return new Date(dateTimeStr).toLocaleString('ko-KR', { + month: 'short', + day: 'numeric', + hour: '2-digit', + minute: '2-digit' + }); + } + + showLoading(show) { + const overlay = document.getElementById('loadingOverlay'); + if (overlay) { + overlay.style.display = show ? 'flex' : 'none'; + } + } + + showMessage(message, type) { + const container = document.getElementById('message-container'); + if (container) { + container.innerHTML = `
${message}
`; + + if (type === 'success') { + setTimeout(() => { + container.innerHTML = ''; + }, 5000); + } + } + } +} + +// 전역 인스턴스 생성 +let workReportReview; + +// DOM 준비 후 초기화 +document.addEventListener('DOMContentLoaded', () => { + workReportReview = new WorkReportReviewManager(); + // 전역 접근을 위해 window에 할당 + window.workReportReview = workReportReview; +}); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/work-report-ui.js b/deploy/tkfb-package/fastapi-bridge/static/js/work-report-ui.js new file mode 100644 index 0000000..bdc6042 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/work-report-ui.js @@ -0,0 +1,141 @@ +// /js/work-report-ui.js + +const DEFAULT_PROJECT_ID = '13'; // 나중에는 API나 설정에서 받아오는 것이 좋음 +const DEFAULT_TASK_ID = '15'; + +/** + * 주어진 데이터를 바탕으로 + ${worker.worker_name} + + + + + + + + + + + + `; + + // 이벤트 리스너 설정 + const workTypeSelect = tr.querySelector('[name="work_type"]'); + const projectSelect = tr.querySelector('[name="project_id"]'); + const taskSelect = tr.querySelector('[name="task_id"]'); + + workTypeSelect.addEventListener('change', () => { + const isDisabled = ['연차', '휴무', '유급'].includes(workTypeSelect.value); + projectSelect.disabled = isDisabled; + taskSelect.disabled = isDisabled; + if (isDisabled) { + projectSelect.value = DEFAULT_PROJECT_ID; + taskSelect.value = DEFAULT_TASK_ID; + } + }); + + tr.querySelector('.remove-btn').addEventListener('click', () => { + tr.remove(); + updateRowNumbers(tr.parentElement); + }); + + return tr; +} + +/** + * 작업 보고서 테이블을 초기화하고 데이터를 채웁니다. + * @param {{workers: Array, projects: Array, tasks: Array}} initialData - 초기 데이터 + */ +export function initializeReportTable(initialData) { + const tableBody = document.getElementById('reportBody'); + if (!tableBody) return; + + tableBody.innerHTML = ''; // 기존 내용 초기화 + const { workers, projects, tasks } = initialData; + + if (!workers || workers.length === 0) { + tableBody.innerHTML = '등록할 작업자 정보가 없습니다.'; + return; + } + + workers.forEach((worker, index) => { + const row = createReportRow(worker, projects, tasks, index); + tableBody.appendChild(row); + }); +} + +/** + * 테이블에서 폼 데이터를 추출하여 배열로 반환합니다. + * @returns {Array|null} - 추출된 데이터 배열 또는 유효성 검사 실패 시 null + */ +export function getReportData() { + const tableBody = document.getElementById('reportBody'); + const rows = tableBody.querySelectorAll('tr'); + + if (rows.length === 0 || (rows.length === 1 && rows[0].cells.length < 2)) { + alert('등록할 내용이 없습니다.'); + return null; + } + + const reportData = []; + const workerIds = new Set(); + + for (const tr of rows) { + const workerId = tr.querySelector('[name="worker_id"]').value; + if (workerIds.has(workerId)) { + alert(`오류: 작업자 '${tr.cells[1].textContent.trim()}'가 중복 등록되었습니다.`); + return null; + } + workerIds.add(workerId); + + reportData.push({ + worker_id: workerId, + project_id: tr.querySelector('[name="project_id"]').value, + task_id: tr.querySelector('[name="task_id"]').value, + overtime_hours: tr.querySelector('[name="overtime"]').value || 0, + work_details: tr.querySelector('[name="work_type"]').value, + memo: tr.querySelector('[name="memo"]').value + }); + } + + return reportData; +} \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/js/work-review.js b/deploy/tkfb-package/fastapi-bridge/static/js/work-review.js new file mode 100644 index 0000000..a656b3c --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/js/work-review.js @@ -0,0 +1,776 @@ +// work-review.js - 통합 API 설정 적용 버전 + +// ================================================================= +// 🌐 통합 API 설정 import +// ================================================================= +import { API, getAuthHeaders, apiCall } from '/js/api-config.js'; + +// 전역 변수 +let currentDate = new Date(); +let selectedDate = null; +let selectedDateData = null; +let basicData = { + workTypes: [], + workStatusTypes: [], + errorTypes: [], + projects: [] +}; + +// 현재 사용자 정보 가져오기 +function getCurrentUser() { + try { + const token = localStorage.getItem('token'); + if (!token) return null; + + const payloadBase64 = token.split('.')[1]; + if (payloadBase64) { + const payload = JSON.parse(atob(payloadBase64)); + return payload; + } + } catch (error) { + console.log('토큰에서 사용자 정보 추출 실패:', error); + } + return null; +} + +// 메시지 표시 +function showMessage(message, type = 'info') { + const container = document.getElementById('message-container'); + container.innerHTML = `
${message}
`; + + if (type !== 'loading') { + setTimeout(() => { + container.innerHTML = ''; + }, 5000); + } +} + +// 날짜 포맷팅 +function formatDate(date) { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +// 월 표시 업데이트 +function updateMonthDisplay() { + const monthElement = document.getElementById('currentMonth'); + const year = currentDate.getFullYear(); + const month = currentDate.getMonth() + 1; + monthElement.textContent = `${year}년 ${month}월`; +} + +// 근무 유형 분류 +function classifyWorkType(totalHours) { + if (totalHours === 0) return { type: 'vacation', label: '휴무' }; + if (totalHours === 2) return { type: 'vacation', label: '조퇴' }; + if (totalHours === 4) return { type: 'vacation', label: '반차' }; + if (totalHours === 6) return { type: 'vacation', label: '반반차' }; + if (totalHours === 8) return { type: 'normal-work', label: '정시근무' }; + if (totalHours > 8) return { type: 'overtime', label: '잔업' }; + return { type: 'vacation', label: '기타' }; +} + +// 캘린더 렌더링 (데이터 로드 없이) +function renderCalendar() { + const calendar = document.getElementById('calendar'); + + // 기존 날짜 셀들 제거 (헤더는 유지) + const dayHeaders = calendar.querySelectorAll('.day-header'); + calendar.innerHTML = ''; + dayHeaders.forEach(header => calendar.appendChild(header)); + + const year = currentDate.getFullYear(); + const month = currentDate.getMonth(); + + // 해당 월의 첫째 날과 마지막 날 + const firstDay = new Date(year, month, 1); + const lastDay = new Date(year, month + 1, 0); + + // 첫째 주의 시작 (일요일부터 시작) + const startDate = new Date(firstDay); + startDate.setDate(startDate.getDate() - firstDay.getDay()); + + // 마지막 주의 끝 + const endDate = new Date(lastDay); + endDate.setDate(endDate.getDate() + (6 - lastDay.getDay())); + + // 오늘 날짜 + const today = new Date(); + const todayStr = formatDate(today); + + // 날짜 셀 생성 + let currentCalendarDate = new Date(startDate); + + while (currentCalendarDate <= endDate) { + const dateStr = formatDate(currentCalendarDate); + const isCurrentMonth = currentCalendarDate.getMonth() === month; + const isToday = dateStr === todayStr; + const isSelected = selectedDate === dateStr; + + const dayCell = document.createElement('div'); + dayCell.className = 'day-cell'; + + if (!isCurrentMonth) { + dayCell.classList.add('other-month'); + } + + if (isToday) { + dayCell.classList.add('today'); + } + + if (isSelected) { + dayCell.classList.add('selected'); + } + + // 날짜 번호 + const dayNumber = document.createElement('div'); + dayNumber.className = 'day-number'; + dayNumber.textContent = currentCalendarDate.getDate(); + dayCell.appendChild(dayNumber); + + // 클릭 이벤트 - 현재 월의 날짜만 클릭 가능 + if (isCurrentMonth) { + dayCell.style.cursor = 'pointer'; + dayCell.addEventListener('click', () => { + selectedDate = dateStr; + loadDayData(dateStr); + renderCalendar(); // 선택 상태 업데이트를 위해 재렌더링 + }); + } + + calendar.appendChild(dayCell); + currentCalendarDate.setDate(currentCalendarDate.getDate() + 1); + } +} + +// 특정 날짜 데이터 로드 (통합 API 사용) +async function loadDayData(dateStr) { + try { + showMessage(`${dateStr} 데이터를 불러오는 중... (통합 API)`, 'loading'); + + const data = await apiCall(`${API}/daily-work-reports?date=${dateStr}`); + const dataArray = Array.isArray(data) ? data : (data.data || []); + + // 데이터 처리 + processDayData(dateStr, dataArray); + renderDayInfo(); + + document.getElementById('message-container').innerHTML = ''; + + } catch (error) { + console.error('날짜 데이터 로드 실패:', error); + showMessage('데이터를 불러올 수 없습니다: ' + error.message, 'error'); + selectedDateData = null; + renderDayInfo(); + } +} + +// 일별 데이터 처리 +function processDayData(dateStr, works) { + const dayData = { + date: dateStr, + totalHours: 0, + workers: new Set(), + reviewed: Math.random() > 0.3, // 임시: 70% 확률로 검토 완료 + details: works + }; + + works.forEach(work => { + dayData.totalHours += parseFloat(work.work_hours || 0); + dayData.workers.add(work.worker_name || work.worker_id); + }); + + const workType = classifyWorkType(dayData.totalHours); + dayData.workType = workType.type; + dayData.workLabel = workType.label; + + selectedDateData = dayData; +} + +// 선택된 날짜 정보 렌더링 +function renderDayInfo() { + const dayInfoContainer = document.getElementById('day-info-container'); + + if (!selectedDate) { + dayInfoContainer.innerHTML = ` +
+

📅 날짜를 선택하세요

+

캘린더에서 날짜를 클릭하면 해당 날짜의 작업 정보를 확인할 수 있습니다.

+
+ `; + return; + } + + if (!selectedDateData) { + dayInfoContainer.innerHTML = ` +
+

📅 ${selectedDate}

+

해당 날짜에 등록된 작업이 없습니다.

+
+ `; + return; + } + + const data = selectedDateData; + + // 작업자별 상세 정보 생성 + const workerDetailsHtml = Array.from(data.workers).map(worker => { + const workerWorks = data.details.filter(w => (w.worker_name || w.worker_id) === worker); + const workerHours = workerWorks.reduce((sum, w) => sum + parseFloat(w.work_hours || 0), 0); + + const workerWorkItemsHtml = workerWorks.map(work => ` +
+
+ ${work.project_name || '프로젝트'} - ${work.work_hours}시간
+ 작업: ${work.work_type_name || '미지정'} | 상태: ${work.work_status_name || '미지정'} + ${work.error_type_name ? `
에러: ${work.error_type_name}` : ''} +
+
+ + +
+
+ `).join(''); + + return ` +
+
+ 👤 ${worker} - 총 ${workerHours}시간 + +
+
+ ${workerWorkItemsHtml} +
+
+ `; + }).join(''); + + dayInfoContainer.innerHTML = ` +
+
+

📅 ${selectedDate} 작업 정보

+
+ + +
+
+ +
+
+ 총 작업시간: + ${data.totalHours}시간 +
+
+ 근무 유형: + ${data.workLabel} +
+
+ 작업자 수: + ${data.workers.size}명 +
+
+ 검토 상태: + + ${data.reviewed ? '✅ 검토완료' : '⏳ 미검토'} + +
+
+ +
+

👥 작업자별 상세

+ ${workerDetailsHtml} +
+
+ `; +} + +// 검토 상태 토글 +function toggleReview() { + if (selectedDateData) { + selectedDateData.reviewed = !selectedDateData.reviewed; + renderDayInfo(); + + // TODO: 실제로는 여기서 API 호출해서 DB에 저장해야 함 + console.log(`검토 상태 변경: ${selectedDate} - ${selectedDateData.reviewed ? '검토완료' : '미검토'}`); + + showMessage(`검토 상태가 ${selectedDateData.reviewed ? '완료' : '미완료'}로 변경되었습니다.`, 'success'); + } +} + +// 현재 날짜 새로고침 +function refreshCurrentDay() { + if (selectedDate) { + loadDayData(selectedDate); + } +} + +// 🛠️ 작업 항목 수정 함수 (통합 API 사용) +async function editWorkItem(workId) { + try { + console.log('수정할 작업 ID:', workId); + + if (!selectedDateData) { + showMessage('작업 데이터를 찾을 수 없습니다.', 'error'); + return; + } + + const workData = selectedDateData.details.find(work => work.id == workId); + if (!workData) { + showMessage('수정할 작업 데이터를 찾을 수 없습니다.', 'error'); + return; + } + + // 기본 데이터가 없으면 로드 + if (basicData.workTypes.length === 0) { + showMessage('기본 데이터를 불러오는 중... (통합 API)', 'loading'); + await loadBasicData(); + } + + showEditModal(workData); + document.getElementById('message-container').innerHTML = ''; + + } catch (error) { + console.error('작업 정보 조회 오류:', error); + showMessage('작업 정보를 불러올 수 없습니다: ' + error.message, 'error'); + } +} + +// 🛠️ 수정 모달 표시 (개선된 버전) +function showEditModal(workData) { + const modalHtml = ` +
+
+
+

✏️ 작업 수정

+ +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+ `; + + document.body.insertAdjacentHTML('beforeend', modalHtml); + + // 업무 상태 변경 이벤트 + document.getElementById('editWorkStatus').addEventListener('change', (e) => { + const errorTypeGroup = document.getElementById('editErrorTypeGroup'); + if (e.target.value === '2') { + errorTypeGroup.style.display = 'block'; + } else { + errorTypeGroup.style.display = 'none'; + } + }); +} + +// 🛠️ 수정 모달 닫기 +function closeEditModal() { + const modal = document.getElementById('editModal'); + if (modal) { + modal.remove(); + } +} + +// 🛠️ 수정된 작업 저장 (통합 API 사용) +async function saveEditedWork(workId) { + try { + // 입력값 검증 + const projectId = document.getElementById('editProject').value; + const workTypeId = document.getElementById('editWorkType').value; + const workStatusId = document.getElementById('editWorkStatus').value; + const errorTypeId = document.getElementById('editErrorType').value; + const workHours = document.getElementById('editWorkHours').value; + + // 필수값 체크 + if (!projectId) { + showMessage('프로젝트를 선택해주세요.', 'error'); + document.getElementById('editProject').focus(); + return; + } + + if (!workTypeId) { + showMessage('작업 유형을 선택해주세요.', 'error'); + document.getElementById('editWorkType').focus(); + return; + } + + if (!workStatusId) { + showMessage('업무 상태를 선택해주세요.', 'error'); + document.getElementById('editWorkStatus').focus(); + return; + } + + if (!workHours || workHours <= 0) { + showMessage('작업 시간을 올바르게 입력해주세요.', 'error'); + document.getElementById('editWorkHours').focus(); + return; + } + + if (workStatusId === '2' && !errorTypeId) { + showMessage('에러 상태인 경우 에러 유형을 선택해주세요.', 'error'); + document.getElementById('editErrorType').focus(); + return; + } + + const updateData = { + project_id: parseInt(projectId), + work_type_id: parseInt(workTypeId), + work_status_id: parseInt(workStatusId), + error_type_id: errorTypeId ? parseInt(errorTypeId) : null, + work_hours: parseFloat(workHours) + }; + + showMessage('작업을 수정하는 중... (통합 API)', 'loading'); + + // 저장 버튼 비활성화 + const saveBtn = document.querySelector('.btn-success'); + const originalText = saveBtn.textContent; + saveBtn.textContent = '저장 중...'; + saveBtn.disabled = true; + + const result = await apiCall(`${API}/daily-work-reports/my-entry/${workId}`, { + method: 'PUT', + body: JSON.stringify(updateData) + }); + + console.log('✅ 수정 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 수정되었습니다!', 'success'); + + closeEditModal(); + refreshCurrentDay(); // 현재 날짜 데이터 새로고침 + + } catch (error) { + console.error('❌ 수정 실패:', error); + showMessage('수정 중 오류가 발생했습니다: ' + error.message, 'error'); + + // 버튼 복원 + const saveBtn = document.querySelector('.btn-success'); + if (saveBtn) { + saveBtn.textContent = '💾 저장'; + saveBtn.disabled = false; + } + } +} + +// 🗑️ 작업 항목 삭제 (통합 API 사용) +async function deleteWorkItem(workId) { + // 확인 대화상자 + const confirmDelete = await showConfirmDialog( + '작업 삭제 확인', + '정말로 이 작업을 삭제하시겠습니까?', + '삭제된 작업은 복구할 수 없습니다.' + ); + + if (!confirmDelete) return; + + try { + console.log('삭제할 작업 ID:', workId); + + showMessage('작업을 삭제하는 중... (통합 API)', 'loading'); + + const result = await apiCall(`${API}/daily-work-reports/my-entry/${workId}`, { + method: 'DELETE' + }); + + console.log('✅ 삭제 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 삭제되었습니다!', 'success'); + + refreshCurrentDay(); // 현재 날짜 데이터 새로고침 + + } catch (error) { + console.error('❌ 삭제 실패:', error); + showMessage('삭제 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 🗑️ 작업자의 모든 작업 삭제 (통합 API 사용) +async function deleteWorkerAllWorks(date, workerName) { + // 확인 대화상자 + const confirmDelete = await showConfirmDialog( + '전체 작업 삭제 확인', + `정말로 ${workerName}님의 ${date} 모든 작업을 삭제하시겠습니까?`, + '삭제된 작업들은 복구할 수 없습니다.' + ); + + if (!confirmDelete) return; + + try { + if (!selectedDateData) return; + + const workerWorks = selectedDateData.details.filter(w => (w.worker_name || w.worker_id) === workerName); + + if (workerWorks.length === 0) { + showMessage('삭제할 작업이 없습니다.', 'error'); + return; + } + + showMessage(`${workerName}님의 작업들을 삭제하는 중... (통합 API)`, 'loading'); + + // 순차적으로 삭제 (병렬 처리하면 서버 부하 발생 가능) + let successCount = 0; + let failCount = 0; + + for (const work of workerWorks) { + try { + await apiCall(`${API}/daily-work-reports/my-entry/${work.id}`, { + method: 'DELETE' + }); + successCount++; + } catch (error) { + console.error(`작업 ${work.id} 삭제 실패:`, error); + failCount++; + } + } + + if (failCount === 0) { + showMessage(`✅ ${workerName}님의 모든 작업(${successCount}개)이 삭제되었습니다!`, 'success'); + } else { + showMessage(`⚠️ ${successCount}개 삭제 완료, ${failCount}개 삭제 실패`, 'warning'); + } + + refreshCurrentDay(); // 현재 날짜 데이터 새로고침 + + } catch (error) { + console.error('❌ 전체 삭제 실패:', error); + showMessage('작업 삭제 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 확인 대화상자 표시 +function showConfirmDialog(title, message, warning) { + return new Promise((resolve) => { + const modalHtml = ` +
+
+
+

⚠️ ${title}

+
+
+

${message}

+

${warning}

+
+ +
+
+ `; + + document.body.insertAdjacentHTML('beforeend', modalHtml); + + // 전역 함수로 resolve 함수 노출 + window.resolveConfirm = (result) => { + const modal = document.getElementById('confirmModal'); + if (modal) modal.remove(); + delete window.resolveConfirm; + resolve(result); + }; + }); +} + +// 기본 데이터 로드 (통합 API 사용) +async function loadBasicData() { + try { + console.log('🔗 통합 API 설정을 사용한 기본 데이터 로딩...'); + + const promises = [ + // 프로젝트 로드 + apiCall(`${API}/projects`) + .then(data => Array.isArray(data) ? data : (data.projects || [])) + .catch(() => []), + + // 작업 유형 로드 + apiCall(`${API}/daily-work-reports/work-types`) + .then(data => Array.isArray(data) ? data : [ + {id: 1, name: 'Base'}, + {id: 2, name: 'Vessel'}, + {id: 3, name: 'Piping'} + ]) + .catch(() => [ + {id: 1, name: 'Base'}, + {id: 2, name: 'Vessel'}, + {id: 3, name: 'Piping'} + ]), + + // 업무 상태 유형 로드 + apiCall(`${API}/daily-work-reports/work-status-types`) + .then(data => Array.isArray(data) ? data : [ + {id: 1, name: '정규'}, + {id: 2, name: '에러'} + ]) + .catch(() => [ + {id: 1, name: '정규'}, + {id: 2, name: '에러'} + ]), + + // 에러 유형 로드 + apiCall(`${API}/daily-work-reports/error-types`) + .then(data => Array.isArray(data) ? data : [ + {id: 1, name: '설계미스'}, + {id: 2, name: '외주작업 불량'}, + {id: 3, name: '입고지연'}, + {id: 4, name: '작업 불량'} + ]) + .catch(() => [ + {id: 1, name: '설계미스'}, + {id: 2, name: '외주작업 불량'}, + {id: 3, name: '입고지연'}, + {id: 4, name: '작업 불량'} + ]) + ]; + + const [projects, workTypes, workStatusTypes, errorTypes] = await Promise.all(promises); + + basicData = { + projects, + workTypes, + workStatusTypes, + errorTypes + }; + + console.log('✅ 기본 데이터 로드 완료 (통합 API):', basicData); + } catch (error) { + console.error('기본 데이터 로드 실패:', error); + } +} + +// 이벤트 리스너 설정 +function setupEventListeners() { + document.getElementById('prevMonth').addEventListener('click', () => { + currentDate.setMonth(currentDate.getMonth() - 1); + updateMonthDisplay(); + selectedDate = null; + selectedDateData = null; + renderCalendar(); + renderDayInfo(); + }); + + document.getElementById('nextMonth').addEventListener('click', () => { + currentDate.setMonth(currentDate.getMonth() + 1); + updateMonthDisplay(); + selectedDate = null; + selectedDateData = null; + renderCalendar(); + renderDayInfo(); + }); + + // 오늘 날짜로 이동 버튼 추가 + document.getElementById('goToday')?.addEventListener('click', () => { + const today = new Date(); + currentDate = new Date(today); + updateMonthDisplay(); + renderCalendar(); + + // 오늘 날짜 자동 선택 + const todayStr = formatDate(today); + selectedDate = todayStr; + loadDayData(todayStr); + }); +} + +// 전역 함수로 노출 +window.toggleReview = toggleReview; +window.refreshCurrentDay = refreshCurrentDay; +window.editWorkItem = editWorkItem; +window.deleteWorkItem = deleteWorkItem; +window.deleteWorkerAllWorks = deleteWorkerAllWorks; +window.closeEditModal = closeEditModal; +window.saveEditedWork = saveEditedWork; + +// 초기화 +async function init() { + try { + const token = localStorage.getItem('token'); + if (!token || token === 'undefined') { + showMessage('로그인이 필요합니다.', 'error'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return; + } + + updateMonthDisplay(); + setupEventListeners(); + renderCalendar(); + renderDayInfo(); + + // 기본 데이터 미리 로드 + await loadBasicData(); + + console.log('✅ 검토 페이지 초기화 완료 (통합 API 설정 적용)'); + + } catch (error) { + console.error('초기화 오류:', error); + showMessage('초기화 중 오류가 발생했습니다.', 'error'); + } +} + +// 페이지 로드 시 초기화 +document.addEventListener('DOMContentLoaded', init); \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/logo 2.png b/deploy/tkfb-package/fastapi-bridge/static/logo 2.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbd962e3dedce356d28528ee4d3414d2279fdb0 GIT binary patch literal 14999 zcmb_@byOVB^6xIX_%04X7T4hJ8eBtgclQJc&SDz~uEAY{dkF3XPY47E?(Pnc@4Y{{ z=e>X5oYONkRrRTwuIia{db$g)t}2IxPKpiy0I(F~Wi$Z*AmR(H2|{@}t9#bIeqm_Z zNlU9MNJ~T2-CeBh9IXHV;^g;nok~(>_~DdFkdaa0&YQG7gE`*o53sc#(vchz9Qu^wF==1RB-yWPF)XB_iRKi*519mmfJPO0M znR2-m)dl*}eunxlFMBzB+#@dD%B`Qg;8V->1b&xOVRuC}rd*Uswzd`j?WvX3|JAj$ zd&$Z*OK*08xg{d+%2MyxYP8&FbvZw-kt&i}>F(;3aJUfaF_g1%;RETMKt9D`yW| z7ta_>p63@+zwEShJ#|%-g)Cg0*vu?l%&pkGom~Hc07SfnUPvb^Pcx{ulcTeTkhduH zzchqi=zrMk)X;yacshtu>#C?jrCr>upnPl`Y#h{L=ujwB#NEnZAZq+!@}Lp z)zi+!8TyZ1Gjo^so}$#$|2X=ei>`6e;xh@Q1^dk zRl2^cvOGQkS_lZ27DKBTLA`aa`1bkzQ8Akp@SW}?{(HVfq3i7W32cYz?^lYxPIANw z2bR)Z;S$vmLG{0-yHJ9#fUgkHff>Yek)|*FAQenUvKlH=>0B%XKATAtjQb3%U}LNo z`NiI9v#`s*_?)(|u*b0%8~><(ygXURYNnb*dC_U;?s>A7&ef6bqDT4u@#foKp9Q(E z`yBgBE-k)_(uW_ijX*MLA0v9H9>!S2r{LEH1_nh%MY7@nohAsuK>EIzCsxV6@}yeEX4|C8(oiK!#Ed6_kt8^++(PjYfgbH#go)L+o*G>jT4SwH8)G zHF;dFD-sHdigkkF^}HwXA05qIQ-FVG%4r~_6%~p8-@Hb{C&W`@#qV_a0$cU$9riu5 z@6G)aGBc^|%E}Vr(t?u3Wi@A}Inop9P^bacJTlR7?r3r`WXXGb_U*n}F%*qrFL&|9 z#q>e_RA^|YT-F!F>0;Wr_!LMz)z?k4{Wn?D}@x!Q#^K6kavw9BXiQ zeawzGpcconW!{Ja$*pv$#5{Q4Qmgl%dumWoURc&(7{Z&38^lI+fFnN#RFZPc^oB}# zbItUpX3!m7V7e6*M{@Vb5@+>&`Bl*!<_9(LtJV1Q=~G@5NWodPYSDfFHP>}HOY%K* z+spvkM)~_CD32V6wRG;6%k6fF?Pt@Yb>73c@2)iN#ho7nS_A%Gaye~bzB?fQEjgFp zvzmKTVP9x=EoR5Y)bD;wB*%zJK$R4_fk8HV4VFRrLTrJX(9g}NmVkani|GtAlm&l8 zW~dq}7y5)F{-FNXxJ7-z%KF=(zY*LQW^LWzb- z_uGfBB9A}c)={iUf=Hj+A4Jj-TOXTln-!d&1JX)Qm`Vo<#noBOD({jo4b=(hH!ktE z(Hfr{49_hd7Hk!A<-23$OIsE6KZHb@_VhkLIXSpL>ZL9e6_4l`2k51+8e=+J<=inT zX9>w3eZLkk-&+WizkkK(>n!O>Oikr|FePU-Lu9gpE^2>3+`3=&&GKlm zl^Hj5RrzO&MXFZSgFLo>i(&{EV=YfYIomz>W?Hj9G3^FxHj6eW(YO_6vBD|S-3D>A zO*oTPDssG)%f*ybAQhLo3r39WG$q4NYCY?ve3bu+&i?dxT<5f}y~92$Pg99wHi^3j z*=eyXISLNi=a*l4n`ES@77BQclGAH>vt#mP4nZhUqF2eL75BLr zSGKc^^#Q&3yZGaF;7GZenB)Yx`)U%#W{LQHdNhUT7sGE2+Fgq}dNkM%C+5?>_0y;1 zc!Wyayg=owtVmjBh7qOlg4Pz@kP|x)a;dnh;^ZzEhZUXk(VZ44zt(D$&}Ty}cBrk< zAxR>h`{s5ckcvhwwhk>Mrmy+l!UJU)J3#cxN%er% zo3dzfZbiC>fv+YCr%Kfd{k~ECoi3eyUCmvHNb$y`Y~e6Ut+Cl(59!XEf(yLnxKM=(*~Rvkwt{lt{r(4SLI%Z0*WN^Cmh@ zCX#8uaNYuSGiUK+9l1r7CtSWSHtQoF($2dU$9b;Xl}FjODch6W?z1i!P6#*}#^M$o zYM@{AVN_?@b0ycii{NG;I;mxgybwokayaS%ai^Iv>!&L9Lo1veyg(^v%e$i)p@vhK*$-~WEybb z=`0<@!aWE->NJtixcRpHsCw0dSA(PdKq>M-(|S7aiVhpSmE#I}6FV!VHc1=P=j|r_ z!K+_7J5~Ta3vN73*=?dhMa9Ss1C#XBSgT{^QHEg11R+V8OEPLE7D5)gdXOJMHkNYA0oLd4}X&Az%J6S2b!64b3v&Z}EeYQsZoAi6C zK#Jc%F@myAXsC+3KeCJ@R2Kv86>O*^oMRsN*yLg;;?;6#=3i^TjzscqcmarZE;eU;BIZ4{EK_M*81S~ z@YR&ls=}(xH^WJO!K2IGvrc`5k&BL=y6pcnxk=Es!g|NdZ6f)5IAg})9I zxWfO@`MyI4&rR0(PpjORA9l3IS)|#Jj6wq5*$<5)fFG89-Ydpi?;<2@%6EY%Y=kn- z1k}2Xy>v$cEt~~okEle7LVRzQKHU4Iz3NPQ%^_G7!on@yHkn)hJ)YP#y2b1u@bQX2 zAw9h;fW)Y~UKI}!apQ2IdGxKC7}ID9YqGVYT+uqJ{{TrtkE$pt0xdQZ2V^>rvARYA zGDvw5^-5mrq~I8iipNgzNzmp8$<;+~Xo(RuA$^Y|&Y}xrN&=-+;>6Bd3F;O1g4Z3y zXszUJqC(=G>dqaPe37E;j3u9b5H9W6602TS7CeaVQrs0UA&#jAr}K%eUdXh)Jk2Kn zE$9Mt?|O@#7Gglh&Q6J*1!=2bg&3$DdLBu2_0Ll#_uOQm9CzEz6z|Ti0{S`%9A={s z>wJ3(-PVp~hNm`2qLN2YT{}#b;SkY?AZDU?9VMs(hV(b)h8b6(!&| zm!bLj`NkKADh(wB#Bv!A#HnQ!lI{Csk0e#y#Z4cfD320&FmPiUBsa-WA1i`cG-EjA zTss#LklE2?*;FlxfB$QdqS2quIF`TbCmQ<8 zkORX#1rGt}zmEst!fH$n5|B=7K?ngbhvC*e_u;^k0EI3^@3F?;Z?dz<7Hz&rG(_m= zfOebh4DLUwVTa*~A98V)mX~X#Bp92$t^Lk}{l!}N(hoF=SM&VfGp8}9<0p;M4KKms zZ43FC6&6Yz$OzbfBQb4bM6FN|J{lzaidNU8LRMX8rEmaHVMLr1{3x4gVEz^Ebr{HQ) zonuyAds}qwpPy6y?Dv<>d@>#3P-F=snEP{K43wUn50UOOC5r-0cqHXFNQTz|9%V@S zB&sCQX4MC@C*WAz2+p= z1y@aws`_`47ZyjHiX7+ZXE#ewy7RQB`tLsv5(tL=Fxk!NjWR+PlLOhv*j`$ZY&=I3 z!a!6g%1zWL-Qu6hR_XVR)1fOR%En!M_iYuPTpmK)lW2JNRw^I#afGU1`N3h*w74rm zCwZEj(Y0sL5L_jWlQlMFp*{#os9gg;#i;3nEH^fp!CG{;Nso|_?E33b1`6C*0b{>` z>-^F6Z(HPBHs+6&u=l6gWl_et+Sp^^6y(or3lp`)c#u&J_$HnW++oU}XQFegakMXp z++6%CRYN&F`1eoj9#u8!u z6H8T`#);f=%c_Uo=OufBv=yXM1$6qPQKR>Z<3b)=%IO?tAqe}8zl~?md^z#6>TM>T z2531KymYDz%V6)HAFubjIIor&DE&iKIFa4wH&c~51LCZvtgnV?RXaMxpW7P%w-kOm zRCKi8R)B*-OToiUzQ^B7s0IuG4BR_}WUm?NLv*LMv*Y~)R#il!xlfov z;-^axgW{FIyxy~{4hFTu(tTTm8}BFsS%*(vwcHCYYdizb7aN)jSgfvkIq*_n8&R1J zozinE>w)SdSw(O>oWJX7Lh1pIAwHElR|Qz4H^BU9gx2S-0ySy?I$FN0nCG-dgs;--k(p*Dq-;{ z>0Ro1%M+9OT}WWA=5sl(A*GA>)ZwD6bt$obr}4nrAT$Xv7Q3sCC%|Mu8jX5;uU>h+U;SjLub+>Xs;ZzM!HT*lgLViAv2<^wsY^6> zw<@|Ktr1QUV9cb=oHKOF2`!i@9?MA5^J1hEhc7ra>CX0Bf|0GzyguuXO(z0bGxM<59il9W0NF zSrh!sTIU4O+}d>cSv>OvalAulCXvo*pkEVBJfe77(J`S1uDnXvPf*g$yTPj@ClGQ? zrB4!LKFWO(dARC5&2+T+e8(=(+duS~n8@8rWG8IB3vLkYG~Eyy--V~TK~3>^ZX%)1 zZ`zJa2gHcegD2zXJ%I_is`@Z-#6SM9y`7Tt|tqHWEgkh5QviQ3(L)rR+ z;_95dmi?QLF!HvK)^G?5C?YI@42G_yYwa9`vALGtP;p4|g}GE@7*e`rPlr3js0eo6 zvI=0w%!^(xRS1k)a;})_5A~P*Ng2u>Z*fe)MDSIhmN2F0DNcMozhB-D?Zm`C znzozyh0xthJad$8lO6v!x4_~2;Ozroao4nzZ5U}Dq3=m_Pee#95Md}iFG^KSWZC*L zOOV+b8Tr{YA^-;{BHptn4~4V}ra#R2*vx5E^sPVFu~9>+KY6xro$`0OpFE$&1`g$o zNV_xSKe^^NF)+#`f$8^Z(emhY52+=o&yXb_rn$K`f+HxBGBe2z5c(_!3ky(fG&JHx zp61p`sTU)8Goc4FpR7i$2FJ-0vXa00kd$6LUN4J>4-NhqVUM4m*AS*wxf=+}h;^^d zeyulCk}JByfe;;6zYb)?W?gRJ@WxA^1xc+S`1Dg+X(!`1K3I~`Wd~i7A#yNTW$y<5z+32byXDniq&%1mVwunYm5oR zWQ;-}>Otlg@EefPait*iSoXhG_^97@RI=iaaow{wpOKSOouAXH z_TasK`MZ1b=jddfwAFL)BgpVR#xU|@D`l|vxsztt7SI011 zX6k*SAY8Rx=!{ANe9-kf9E;xaecA)Dx29;yM6w4U$kLJ(p@gD>L+yYHfPq2~0yQj8 zio3mS$8OsF(#zX6az!a1(O#NrU;=NKDOLnWvP)ErNl5;WW3?=7o6h2)C+Zy>z$tEC`e-63%R1Ekt;I6QgF28!40g^;Ar7kJ~^)mL- zpITD&m?Ek&fZjfX02o~R-Z!5h92eB+rXPQW`MZhKqU`~9llkW4i zAK*@c&Ic!k3#cvHY{qQBnoDR-TGMR8sB@e^k0sLctc(IPYg`I*&15ON(}30~eUnPZ zdbyN=$S}MG+33d|`%goVVyUSc;0>et!f1Xk6q{J|fL}f?NpDh5OIv}C71InX2~ZuB z^T#`!)VK1rwCXX#1+2My#u_KDKthWyH@(<{yu17uy0BPLh3g*Z zzhgv_oou`{zRH<(U{7ZGR?c^|~yYPn{2-^W*JP_Hf9!^+CIXm$7C zF)=(&E^M`G;IjKb^ORP%(7BwxY($M>d4|G3y~tZ?Dlw`sv^aP@ozo)x>bT|96qu#_ zlJkSd$6=D4G#yPmx6G8$v*%9~2TdOrf<|1d5l&ixkz4(vhGDIcuua!X2Cg?HI}hPt znPr-CH)Q(Dmr0X)dNeyyKL$do%nw@o2|bkS(Q|t-zp5^o^bJ+#_FH*#kkML-=q{D?!cEadotp$+=x@dizj3z2S@Sg*khk^H*S8?vfT zgAp8?ycBi3Zm^GZRUL+`m8bU0AHEjO1pc_ubm^@*ipphQ^U7uzmSI6qi^wk(_T1qR z4GnLj*%t*Hx(aV7dOiTaYc+Zjw;gsgrxr{XZx@xn zKOHtVH zci+3DTOmdA%g-!Xl!>&9Js#M(2T`7qa0G2WSOC=Oyc*hns4CQ!s^xUa!+sGR4)o$S(ccg#~YlVcu84kPoy2d zeM2I^pIsBXZiR#**mUO%vfI?(7R8Lr`%%JuqnsGc#NWo4|7;|y$DNBLKm=TXXtyH^K7d-O@jJU?N zdA}-07<6xt=uY|}E0n>Xhpw(eq# zhHvku(u#!1d$3UBuIVw_XLEt3Tfg^Kug()KiOUDwJEb44NcUEV=MsjBBdJF?X!=Jh z!d46uqIv{Snd&?H!$6Jwm9+EW_*v!Y>Vmt@@77%p`;h07csK4gvs5}B<-NURJhitP zoYa}$V)}5gR$7PQF9VgSkrsLa#)=Cw(fsy%TfAi5`S};yFa@djkbX^e>7tDk_U6*? z%)B3hcDI!Tw;zrdi{955&szMEkXc9X|25*O6HJQq^7h%;vF0m}8XN5U72bNMUaO;6 z6YFERNV1~PM2xNkJcqd2T1|!s)7niV&n+SqQ72qdJgtd~VpZt)vC?4>QDu@mU|;Z| zwL%<%lo)eV->`vaTEylWb&>JN0}Bp;jDf@Cai;MYP%rb561%Cq6WFtqeci?quL+mS z@PG#fwjb>1tf6v}=fR8dbheB2D;FO<;Ux+W4n^Xa2IT}Cs?Njz)xs&G>r9& zGru&^BN(u#>FPWPdRUJ(g5N3BUYLOB2%`##rQSCO@6nV712b%XT5#-|Jiw3GN0~yYFJ4v) zS}lA0Q%LRg5pIrZ{YqyPB^0T7QD_kn74wI>*IJR>JQG&SquL)PpOygTDWDmauapg+ zPEItg?!#X>Cn43G{jf3Z{o2OEUuD#+{kLZY2i1`=F=4Z^lrdF~GEmvPdxX0z1cDdw zSy@J~Arj2#lQWFgN9sMJGF=$}v@WbtFEmG+6Lb74*8OBV( zWy7xQRYU^CkyMy&S#kG$_D40V8Kc!zeMg$m(!~N)`15^FSMTZ((srP z5;Id!V+v<2PQVt?@K=G|-mZSmcF1CoqlOcXsS#OO7Wl!-${V$k>9_&b;}mdc?_3gW z9ik4_;o_RM@=|GJz8_L3^|ot+G0%UnKig%HLe3$1S@1&ws14tuc3Yg@QM*<`k_$#fe_gXdU~dUNV9E~-p?DC`yyML_-SQXP$N2j3 z9bJ#Bv{)rV1?D|@!~=0IJmEqmcQ>NzOMfsTuE&{{BvT;^N|4$L?!CN^2j>pA^|<MT43nO;*%Rhb+lOD~N?mH_nOrA*9>_n2c-y~D(0Jhobm19Q81a;+GpTmn!sD#`mX zQXE1QPHfL4!{$y=zoY691<;2S%z+-I1o7=JWC|A*wXE*bbtzj3^-26N7lE9S=!FZ; zoknjYF*y#k^TRtds|riiW8p*4eBY~su=g|y=s<@m8J-1m|6f*Gr-C6rnRY0@a%m-{ z_YFxZq;?si7m@1(z@85U#Z;9$Hcto2>tc#EKXe^>D9sdqoyP3@Oev&$O~P{^&IpWV zupl=7pyVgnfr~nB@x!LQxF9;0Ng$M$MH+z@l#WVAQ^?R1o=ZV7$TLUkY_aSfgZC^6{0=?(lco-Eb7NMq3(gkswsHcC6$LYLgoG+XRapzl12p^O-s||g z98t}++2d+=-GxW43nEdAA>-$lnRcbcu#liLVO-4nw|-!TIYM`IT5BG z$~+opv<~_zSFkSPc}{vM!^)>#$qjUwt7O=OSbF=`$V2F%wr#afojUqoI!<%) zgL63UsCoKS=seDv*40{t=4m$SVc zXr$AtT{J%4ALg8TdFpN5!_R8lui(dN_gntw89rm8BbRbIl?l?LD-J=)Lkat*WIl{r z@zRsYoM$l%Op@+LEh=L{{p_825tZc%<55`=z2QnDX=a*eqLNC22uZ})NKP86h=D`? zx$dssC#RI6WWL1uMP}Q^JE*w=NC|`HTs{(uB56o=sYc9lVhfDCu7lWoZ{fC$N}V!K z0yo%^5}l~Wy}~JCLl;XIwW95}3ya)7%IPR?4v)`UeFispf8#CjAD{f`5P7R6H{l&S zykYlTwLx?l2RrcObxo2aD&UI35LahmYuel`&tKb)RvDkG;k`HTeXFZFOFQ?{WJGSh2V(BF zEemG607>vp!gv?Hcg)pqXKf;?E;NcRt>6Gc!yP62uu9CE<&sDO)cR}o>& z!iw{nBQ@T%WyL!ss#L!A7O`mS`=(~SM}}3l<6zMV!&fM4>>7efc(&&abWudj&_^+?P>$!e<_NlKp;4N4PvnU8JJ-TyhKnrxaD&O`hp2S~_8 zp>i`#pJmz(ZKNM#V8Rg$Z(*-9S$_HWg2zK2M|j!=vgc z6I1ry^b+hKy$Lp)fVI%~FmLqRQ>dOO^sGo~e#iX=qRJ0K?`8%Pxk1nKaCD+@M*6q* zdQU`ya3P^cbS!3O1RIbLPi;kDutJx0mMZP0_PEy(PzV(0R+hx(ZK64dnJU95QdU?b z@GJc%9cM7WU)&2Rj^T~FjasVN^OH;NMoO=Y4Rif@CJfw_))ev%C&fGvffe7dyNrD$ z6Qh@TEx2bC5vv7Nah=|g9h*E%5TYvMj6`^fJrst3X>AA&*-Fq{GL-qSWP3kmj~{Bg z8XPi-RI*YrzEZ$sO)%?bq;}oG5wjPM^|`4i!TB?Qmn#fE z&>r4CUgltBm-`*aW)OHK-t}3K&TAZVxCL{TH#2ax$b+=6Cb4MT1BDFi*N!HTzkm~g z=IFE;Ohm!x-&K%RiG4rciV6I|MbxnO`ed_OuM@(;iQOmZO9F(OBg)Nw{zZ3QmyVl} zfras={^v9e*CZ=Ry*1U1Le+qjz$X=+0HI#6+DWX{i6xDfUnVVfuUKNHlv{AkqyvN{ z?xupJ(0*7EjFeeDba%qp7i1V!6j*aqfq;9h8Qy=~htmaXnS@n@5gT z`(;d_sZuS`UkkQ0*AB^!PK_-8^&B){Z(RnTtL&wvsnzDs3WtO`0v0-T?8MZmDYGBL zOedAH4EOAlG9KRR+L@hcv?Myl!DF%!g?^h10@Pm(RX+D2>R|R^MpB}I zzGd@#z#oyXWW;VbL-`sHi<+ zWyX~c48MDaw1jZ34aO+Sb=3)^bzC;FBv)QMpY#^QcQ7l9Y(1UKE@?KG=uZC*pr8Le zo}9##NLLJ1^QZmOTRLhk)&I(6`0rp&>K`NDU;8X(-odnlJx#G$FusUMiuUbsmnzaU zlR;b^3oogBOCw)8zB^1pBJD)`nl#{hWI1DHk*cAj*(}rH?35%zQZ;r z6RMRmH4BD>d&jxZE{i7(=V4ZzW9BLfgdgIpnjXmJO7A}3O;_A+hp#&Iz z-$le(t9xrYWd~Royvm3ArgW0twinn7vJrB2*^erWza!!*dPTk5m9eGJ-HTIJ#u1%d z1d*%ZKV}J0b`j(-bII*Mj4_GTKQ}kO50Z%??gNJ2d*Ts>S>F+u66BL4NU|LP7Vpp0W3u1QmA_O8Q1;baKS?RW{s3c}oU*FH)+ z0x>GHM_G-PW=+AqXT5dbUZ^Bu;Ys#4+U+9)U^$xxRqrWoo;EH+#S= ztdkau+1@b%mZ%WYIB^nl`~3rP8*&68S$U)z9Q|#2#v^?t2acEh_IsgI2|iyHfg$;(nWtGt0GEFS-5;xv8s;nCmBr_;PU!nIoqE@RC2fW%L4 zkB$9i_&GI4YIyKFN#-92wM!cq{c(hgr#7rg~nqRv0$R6$aD@o_l z`W0!0mF+1-xbJ_o$os9xd{z1i-{q9pUceBskuKHvlL?1%{l{m(Z(fMpt>unV)H;GJGX+t3AGLXDjS4ME@ zh&rMED6Tyn1S&Zh=t?-UL-UePP23VdY|T8g)s?aU)jNe>ujWdTHNtLNOI>Fmlez?9 z*#UwHqBbe+xR;=B9nbx#MIGh(e*T(t$A5)so$lyJhi_#xQq-{D?{R%}MW}2kYPCD( zo4@OPW@iyj^+!BopGZg z(uens2}Qbp5aOo_@+TvvWB=j)KJrngZUwPyzE0^AXDv#xNMVeOV6$N?SmX0Fz>Ny2 zHtr5FhDBVN2Lq)75<_;ciEGLf8IdCNQyujbfd#h`Yw^!mF74&F4;2}lg2=CdYtopm zMZ2Ii38=Ff`X6vcYKc`sTnh)~TefUW{>>qZDA46vE4G*}w&A3k>!rgR{H=sQ)847# zujQb9{(G+BwoR0@3ETO-q88MaI0@8MvN!b=3I1Kw^t>7gl8*O3vVq7ahN7JNGK6U} z^eBV0pV#R-6vJm%{sc}4f?SbJ*O-sP&%Qo8@hd(4MlJk!NYA7fZR9r>n&`Xz6^ftk zs&+LRuQsbNA0coH$|xz#oPJO4m~*6&1|!(2GN@IQcEj}VhRE=V-Ta7}j>HmZkl;A2 zM$9zFlu@dZ5;0;T>{feqMQEp8yr7{EEzh=@5xzq z0#-@qd*{AwL{lq`TGo+U5cX$L*vY)>?(nAv)Kph;#vC_Pw{qt;?im*O#?$g%Oz>oS z-}L3L;Qn33uk?tIp@0XRn1Dvam^U1Ut5!x{5W)28-bgx0La|8cw-3p@ZE{cwR;En| zGwx;APx-Jriby2sJmD3;4H#Y`UIk%@26T?OsSu`qg3rMIq163Y+9B#ak1uPac1}9? z%0%4juch^SOV?J<7}fC3Cg2kWGS|t=COGAQY<&^s<&XQx*bAzTq)KE-47GD#as-d< z6~3P!(DhjNJ2hCr_B%Vj~2E?{fOga zM}yzO+{vJ-BOOvhMOEF&Uyx1{gLS%LA*K!H-#jnxqpT*l)tw1-6s0Jz)g*=Mo!e1- z>8Q5}E<{eeT%sgH6_WOwj}t=Odb=CV7`ELq?}sbu;oZZl9>!u$6Lji8!>hHZvr86? z!Y3&9_KGj1_ zekAx2rq4?!klY3d9GN!u-`x>;&P&^xFWZ}!tReY|S(Zr_>Wr`ksO~2s=W(>&aQQz) zM3Nn2$lV~t(QaI(K;QU-=lhB_6RJFuCd~Fn?cIpn3T&hgW`X(5LpiCi*?HCYxpE7l zNLwNhFsivfbR6MUWK=GR6K@KwReb+QxDQ9K{vbK*gpw)2NKFLwvuBv4&>g{D_BJvchS^f!1n zkj|jc&`%2X)TM#u4bto)7-cjk1lWCi);q7E0X$AiRCKPMECb_;fkp+iTi1!ebC;yW zZxSF=d)gk4=7KD0u(~c_Qr<}@f4qBe3zM3ofjuoP+V5iao94rwf#x@-W_{!thUhp$ zM$#F!OjhRu6(}-V7wJlAvsA#$!BCB*rv&=i16p>Nq!mr#tG}O&y}=(>Qj{GK_@x@V z9(9`)3&`AYE}{#F*Ic3Auh(!V8?*2-31M%L_;2qn`HQTVQd`1SDg;{7Q(`JJs^4OV zy!U)VXe}n3MT)@3DZm^3Q7#5l0S?V@9h0jl+$s89c<0e4U~3z$2FUzuJrO6Cx<2`P z6~v8g6cQzd6yJAFVqgY5>8*&PmK)V@6dl;33}=+!Ga-+x!RbNnr{akaiZ_b1-hgSw z-D8%rtS}Gk$X_r!&UHvLr?90?_fvj)o`l?R_bL3j(MUkFY5p-LEcsHP zvV<~nUJ7lY=0BLD>1TgL{PtH{Y3T`f2jof!R23QTAcOdp7=sw-G7%$#YE^ZSTZCrT zzuE=HHyqsSKj{8?WonK&1;H8-X9gJwIP^xf_|<}mL>}+g3r|s^77l`BWKk*1MdZLfYo*uQl=VxDMrnUo zd84ywUZHZe90Pr+j)=*fRyyA8>#_WNrEWoMFa80GLcf7{t(R1=&8u^u?u2G7zV|S+ zhr>Yg&5B{v>WNI~W^jy*7GGOUJqO4H(f&58MgU0?(2@?nCwUN9t|Ng&@8)@X4my`1 z6G<>IcvTWzonjt@yzY9sSAydH=qoPmP{)*klo<>0*%U0ijF4CAM`rKi7-d+tT8Mk6 z0IxDe3hg(UBe6m6K7jN3yZGPGq@$CtY?q@b6p_`XK;*L;w;MTGs|~51Z5xZDB`H3fm+h z9sWg(hx=LYbypTKJEt9!tJX-u#%izW*ECu;byXpsHGC^b`_Q#AS6|mdQ}q(gKQ6?T zeJ$ZrELEQ{;*C9d&X5oYONkRrRTwuIia{db$g)t}2IxPKpiy0I(F~Wi$Z*AmR(H2|{@}t9#bIeqm_Z zNlU9MNJ~T2-CeBh9IXHV;^g;nok~(>_~DdFkdaa0&YQG7gE`*o53sc#(vchz9Qu^wF==1RB-yWPF)XB_iRKi*519mmfJPO0M znR2-m)dl*}eunxlFMBzB+#@dD%B`Qg;8V->1b&xOVRuC}rd*Uswzd`j?WvX3|JAj$ zd&$Z*OK*08xg{d+%2MyxYP8&FbvZw-kt&i}>F(;3aJUfaF_g1%;RETMKt9D`yW| z7ta_>p63@+zwEShJ#|%-g)Cg0*vu?l%&pkGom~Hc07SfnUPvb^Pcx{ulcTeTkhduH zzchqi=zrMk)X;yacshtu>#C?jrCr>upnPl`Y#h{L=ujwB#NEnZAZq+!@}Lp z)zi+!8TyZ1Gjo^so}$#$|2X=ei>`6e;xh@Q1^dk zRl2^cvOGQkS_lZ27DKBTLA`aa`1bkzQ8Akp@SW}?{(HVfq3i7W32cYz?^lYxPIANw z2bR)Z;S$vmLG{0-yHJ9#fUgkHff>Yek)|*FAQenUvKlH=>0B%XKATAtjQb3%U}LNo z`NiI9v#`s*_?)(|u*b0%8~><(ygXURYNnb*dC_U;?s>A7&ef6bqDT4u@#foKp9Q(E z`yBgBE-k)_(uW_ijX*MLA0v9H9>!S2r{LEH1_nh%MY7@nohAsuK>EIzCsxV6@}yeEX4|C8(oiK!#Ed6_kt8^++(PjYfgbH#go)L+o*G>jT4SwH8)G zHF;dFD-sHdigkkF^}HwXA05qIQ-FVG%4r~_6%~p8-@Hb{C&W`@#qV_a0$cU$9riu5 z@6G)aGBc^|%E}Vr(t?u3Wi@A}Inop9P^bacJTlR7?r3r`WXXGb_U*n}F%*qrFL&|9 z#q>e_RA^|YT-F!F>0;Wr_!LMz)z?k4{Wn?D}@x!Q#^K6kavw9BXiQ zeawzGpcconW!{Ja$*pv$#5{Q4Qmgl%dumWoURc&(7{Z&38^lI+fFnN#RFZPc^oB}# zbItUpX3!m7V7e6*M{@Vb5@+>&`Bl*!<_9(LtJV1Q=~G@5NWodPYSDfFHP>}HOY%K* z+spvkM)~_CD32V6wRG;6%k6fF?Pt@Yb>73c@2)iN#ho7nS_A%Gaye~bzB?fQEjgFp zvzmKTVP9x=EoR5Y)bD;wB*%zJK$R4_fk8HV4VFRrLTrJX(9g}NmVkani|GtAlm&l8 zW~dq}7y5)F{-FNXxJ7-z%KF=(zY*LQW^LWzb- z_uGfBB9A}c)={iUf=Hj+A4Jj-TOXTln-!d&1JX)Qm`Vo<#noBOD({jo4b=(hH!ktE z(Hfr{49_hd7Hk!A<-23$OIsE6KZHb@_VhkLIXSpL>ZL9e6_4l`2k51+8e=+J<=inT zX9>w3eZLkk-&+WizkkK(>n!O>Oikr|FePU-Lu9gpE^2>3+`3=&&GKlm zl^Hj5RrzO&MXFZSgFLo>i(&{EV=YfYIomz>W?Hj9G3^FxHj6eW(YO_6vBD|S-3D>A zO*oTPDssG)%f*ybAQhLo3r39WG$q4NYCY?ve3bu+&i?dxT<5f}y~92$Pg99wHi^3j z*=eyXISLNi=a*l4n`ES@77BQclGAH>vt#mP4nZhUqF2eL75BLr zSGKc^^#Q&3yZGaF;7GZenB)Yx`)U%#W{LQHdNhUT7sGE2+Fgq}dNkM%C+5?>_0y;1 zc!Wyayg=owtVmjBh7qOlg4Pz@kP|x)a;dnh;^ZzEhZUXk(VZ44zt(D$&}Ty}cBrk< zAxR>h`{s5ckcvhwwhk>Mrmy+l!UJU)J3#cxN%er% zo3dzfZbiC>fv+YCr%Kfd{k~ECoi3eyUCmvHNb$y`Y~e6Ut+Cl(59!XEf(yLnxKM=(*~Rvkwt{lt{r(4SLI%Z0*WN^Cmh@ zCX#8uaNYuSGiUK+9l1r7CtSWSHtQoF($2dU$9b;Xl}FjODch6W?z1i!P6#*}#^M$o zYM@{AVN_?@b0ycii{NG;I;mxgybwokayaS%ai^Iv>!&L9Lo1veyg(^v%e$i)p@vhK*$-~WEybb z=`0<@!aWE->NJtixcRpHsCw0dSA(PdKq>M-(|S7aiVhpSmE#I}6FV!VHc1=P=j|r_ z!K+_7J5~Ta3vN73*=?dhMa9Ss1C#XBSgT{^QHEg11R+V8OEPLE7D5)gdXOJMHkNYA0oLd4}X&Az%J6S2b!64b3v&Z}EeYQsZoAi6C zK#Jc%F@myAXsC+3KeCJ@R2Kv86>O*^oMRsN*yLg;;?;6#=3i^TjzscqcmarZE;eU;BIZ4{EK_M*81S~ z@YR&ls=}(xH^WJO!K2IGvrc`5k&BL=y6pcnxk=Es!g|NdZ6f)5IAg})9I zxWfO@`MyI4&rR0(PpjORA9l3IS)|#Jj6wq5*$<5)fFG89-Ydpi?;<2@%6EY%Y=kn- z1k}2Xy>v$cEt~~okEle7LVRzQKHU4Iz3NPQ%^_G7!on@yHkn)hJ)YP#y2b1u@bQX2 zAw9h;fW)Y~UKI}!apQ2IdGxKC7}ID9YqGVYT+uqJ{{TrtkE$pt0xdQZ2V^>rvARYA zGDvw5^-5mrq~I8iipNgzNzmp8$<;+~Xo(RuA$^Y|&Y}xrN&=-+;>6Bd3F;O1g4Z3y zXszUJqC(=G>dqaPe37E;j3u9b5H9W6602TS7CeaVQrs0UA&#jAr}K%eUdXh)Jk2Kn zE$9Mt?|O@#7Gglh&Q6J*1!=2bg&3$DdLBu2_0Ll#_uOQm9CzEz6z|Ti0{S`%9A={s z>wJ3(-PVp~hNm`2qLN2YT{}#b;SkY?AZDU?9VMs(hV(b)h8b6(!&| zm!bLj`NkKADh(wB#Bv!A#HnQ!lI{Csk0e#y#Z4cfD320&FmPiUBsa-WA1i`cG-EjA zTss#LklE2?*;FlxfB$QdqS2quIF`TbCmQ<8 zkORX#1rGt}zmEst!fH$n5|B=7K?ngbhvC*e_u;^k0EI3^@3F?;Z?dz<7Hz&rG(_m= zfOebh4DLUwVTa*~A98V)mX~X#Bp92$t^Lk}{l!}N(hoF=SM&VfGp8}9<0p;M4KKms zZ43FC6&6Yz$OzbfBQb4bM6FN|J{lzaidNU8LRMX8rEmaHVMLr1{3x4gVEz^Ebr{HQ) zonuyAds}qwpPy6y?Dv<>d@>#3P-F=snEP{K43wUn50UOOC5r-0cqHXFNQTz|9%V@S zB&sCQX4MC@C*WAz2+p= z1y@aws`_`47ZyjHiX7+ZXE#ewy7RQB`tLsv5(tL=Fxk!NjWR+PlLOhv*j`$ZY&=I3 z!a!6g%1zWL-Qu6hR_XVR)1fOR%En!M_iYuPTpmK)lW2JNRw^I#afGU1`N3h*w74rm zCwZEj(Y0sL5L_jWlQlMFp*{#os9gg;#i;3nEH^fp!CG{;Nso|_?E33b1`6C*0b{>` z>-^F6Z(HPBHs+6&u=l6gWl_et+Sp^^6y(or3lp`)c#u&J_$HnW++oU}XQFegakMXp z++6%CRYN&F`1eoj9#u8!u z6H8T`#);f=%c_Uo=OufBv=yXM1$6qPQKR>Z<3b)=%IO?tAqe}8zl~?md^z#6>TM>T z2531KymYDz%V6)HAFubjIIor&DE&iKIFa4wH&c~51LCZvtgnV?RXaMxpW7P%w-kOm zRCKi8R)B*-OToiUzQ^B7s0IuG4BR_}WUm?NLv*LMv*Y~)R#il!xlfov z;-^axgW{FIyxy~{4hFTu(tTTm8}BFsS%*(vwcHCYYdizb7aN)jSgfvkIq*_n8&R1J zozinE>w)SdSw(O>oWJX7Lh1pIAwHElR|Qz4H^BU9gx2S-0ySy?I$FN0nCG-dgs;--k(p*Dq-;{ z>0Ro1%M+9OT}WWA=5sl(A*GA>)ZwD6bt$obr}4nrAT$Xv7Q3sCC%|Mu8jX5;uU>h+U;SjLub+>Xs;ZzM!HT*lgLViAv2<^wsY^6> zw<@|Ktr1QUV9cb=oHKOF2`!i@9?MA5^J1hEhc7ra>CX0Bf|0GzyguuXO(z0bGxM<59il9W0NF zSrh!sTIU4O+}d>cSv>OvalAulCXvo*pkEVBJfe77(J`S1uDnXvPf*g$yTPj@ClGQ? zrB4!LKFWO(dARC5&2+T+e8(=(+duS~n8@8rWG8IB3vLkYG~Eyy--V~TK~3>^ZX%)1 zZ`zJa2gHcegD2zXJ%I_is`@Z-#6SM9y`7Tt|tqHWEgkh5QviQ3(L)rR+ z;_95dmi?QLF!HvK)^G?5C?YI@42G_yYwa9`vALGtP;p4|g}GE@7*e`rPlr3js0eo6 zvI=0w%!^(xRS1k)a;})_5A~P*Ng2u>Z*fe)MDSIhmN2F0DNcMozhB-D?Zm`C znzozyh0xthJad$8lO6v!x4_~2;Ozroao4nzZ5U}Dq3=m_Pee#95Md}iFG^KSWZC*L zOOV+b8Tr{YA^-;{BHptn4~4V}ra#R2*vx5E^sPVFu~9>+KY6xro$`0OpFE$&1`g$o zNV_xSKe^^NF)+#`f$8^Z(emhY52+=o&yXb_rn$K`f+HxBGBe2z5c(_!3ky(fG&JHx zp61p`sTU)8Goc4FpR7i$2FJ-0vXa00kd$6LUN4J>4-NhqVUM4m*AS*wxf=+}h;^^d zeyulCk}JByfe;;6zYb)?W?gRJ@WxA^1xc+S`1Dg+X(!`1K3I~`Wd~i7A#yNTW$y<5z+32byXDniq&%1mVwunYm5oR zWQ;-}>Otlg@EefPait*iSoXhG_^97@RI=iaaow{wpOKSOouAXH z_TasK`MZ1b=jddfwAFL)BgpVR#xU|@D`l|vxsztt7SI011 zX6k*SAY8Rx=!{ANe9-kf9E;xaecA)Dx29;yM6w4U$kLJ(p@gD>L+yYHfPq2~0yQj8 zio3mS$8OsF(#zX6az!a1(O#NrU;=NKDOLnWvP)ErNl5;WW3?=7o6h2)C+Zy>z$tEC`e-63%R1Ekt;I6QgF28!40g^;Ar7kJ~^)mL- zpITD&m?Ek&fZjfX02o~R-Z!5h92eB+rXPQW`MZhKqU`~9llkW4i zAK*@c&Ic!k3#cvHY{qQBnoDR-TGMR8sB@e^k0sLctc(IPYg`I*&15ON(}30~eUnPZ zdbyN=$S}MG+33d|`%goVVyUSc;0>et!f1Xk6q{J|fL}f?NpDh5OIv}C71InX2~ZuB z^T#`!)VK1rwCXX#1+2My#u_KDKthWyH@(<{yu17uy0BPLh3g*Z zzhgv_oou`{zRH<(U{7ZGR?c^|~yYPn{2-^W*JP_Hf9!^+CIXm$7C zF)=(&E^M`G;IjKb^ORP%(7BwxY($M>d4|G3y~tZ?Dlw`sv^aP@ozo)x>bT|96qu#_ zlJkSd$6=D4G#yPmx6G8$v*%9~2TdOrf<|1d5l&ixkz4(vhGDIcuua!X2Cg?HI}hPt znPr-CH)Q(Dmr0X)dNeyyKL$do%nw@o2|bkS(Q|t-zp5^o^bJ+#_FH*#kkML-=q{D?!cEadotp$+=x@dizj3z2S@Sg*khk^H*S8?vfT zgAp8?ycBi3Zm^GZRUL+`m8bU0AHEjO1pc_ubm^@*ipphQ^U7uzmSI6qi^wk(_T1qR z4GnLj*%t*Hx(aV7dOiTaYc+Zjw;gsgrxr{XZx@xn zKOHtVH zci+3DTOmdA%g-!Xl!>&9Js#M(2T`7qa0G2WSOC=Oyc*hns4CQ!s^xUa!+sGR4)o$S(ccg#~YlVcu84kPoy2d zeM2I^pIsBXZiR#**mUO%vfI?(7R8Lr`%%JuqnsGc#NWo4|7;|y$DNBLKm=TXXtyH^K7d-O@jJU?N zdA}-07<6xt=uY|}E0n>Xhpw(eq# zhHvku(u#!1d$3UBuIVw_XLEt3Tfg^Kug()KiOUDwJEb44NcUEV=MsjBBdJF?X!=Jh z!d46uqIv{Snd&?H!$6Jwm9+EW_*v!Y>Vmt@@77%p`;h07csK4gvs5}B<-NURJhitP zoYa}$V)}5gR$7PQF9VgSkrsLa#)=Cw(fsy%TfAi5`S};yFa@djkbX^e>7tDk_U6*? z%)B3hcDI!Tw;zrdi{955&szMEkXc9X|25*O6HJQq^7h%;vF0m}8XN5U72bNMUaO;6 z6YFERNV1~PM2xNkJcqd2T1|!s)7niV&n+SqQ72qdJgtd~VpZt)vC?4>QDu@mU|;Z| zwL%<%lo)eV->`vaTEylWb&>JN0}Bp;jDf@Cai;MYP%rb561%Cq6WFtqeci?quL+mS z@PG#fwjb>1tf6v}=fR8dbheB2D;FO<;Ux+W4n^Xa2IT}Cs?Njz)xs&G>r9& zGru&^BN(u#>FPWPdRUJ(g5N3BUYLOB2%`##rQSCO@6nV712b%XT5#-|Jiw3GN0~yYFJ4v) zS}lA0Q%LRg5pIrZ{YqyPB^0T7QD_kn74wI>*IJR>JQG&SquL)PpOygTDWDmauapg+ zPEItg?!#X>Cn43G{jf3Z{o2OEUuD#+{kLZY2i1`=F=4Z^lrdF~GEmvPdxX0z1cDdw zSy@J~Arj2#lQWFgN9sMJGF=$}v@WbtFEmG+6Lb74*8OBV( zWy7xQRYU^CkyMy&S#kG$_D40V8Kc!zeMg$m(!~N)`15^FSMTZ((srP z5;Id!V+v<2PQVt?@K=G|-mZSmcF1CoqlOcXsS#OO7Wl!-${V$k>9_&b;}mdc?_3gW z9ik4_;o_RM@=|GJz8_L3^|ot+G0%UnKig%HLe3$1S@1&ws14tuc3Yg@QM*<`k_$#fe_gXdU~dUNV9E~-p?DC`yyML_-SQXP$N2j3 z9bJ#Bv{)rV1?D|@!~=0IJmEqmcQ>NzOMfsTuE&{{BvT;^N|4$L?!CN^2j>pA^|<MT43nO;*%Rhb+lOD~N?mH_nOrA*9>_n2c-y~D(0Jhobm19Q81a;+GpTmn!sD#`mX zQXE1QPHfL4!{$y=zoY691<;2S%z+-I1o7=JWC|A*wXE*bbtzj3^-26N7lE9S=!FZ; zoknjYF*y#k^TRtds|riiW8p*4eBY~su=g|y=s<@m8J-1m|6f*Gr-C6rnRY0@a%m-{ z_YFxZq;?si7m@1(z@85U#Z;9$Hcto2>tc#EKXe^>D9sdqoyP3@Oev&$O~P{^&IpWV zupl=7pyVgnfr~nB@x!LQxF9;0Ng$M$MH+z@l#WVAQ^?R1o=ZV7$TLUkY_aSfgZC^6{0=?(lco-Eb7NMq3(gkswsHcC6$LYLgoG+XRapzl12p^O-s||g z98t}++2d+=-GxW43nEdAA>-$lnRcbcu#liLVO-4nw|-!TIYM`IT5BG z$~+opv<~_zSFkSPc}{vM!^)>#$qjUwt7O=OSbF=`$V2F%wr#afojUqoI!<%) zgL63UsCoKS=seDv*40{t=4m$SVc zXr$AtT{J%4ALg8TdFpN5!_R8lui(dN_gntw89rm8BbRbIl?l?LD-J=)Lkat*WIl{r z@zRsYoM$l%Op@+LEh=L{{p_825tZc%<55`=z2QnDX=a*eqLNC22uZ})NKP86h=D`? zx$dssC#RI6WWL1uMP}Q^JE*w=NC|`HTs{(uB56o=sYc9lVhfDCu7lWoZ{fC$N}V!K z0yo%^5}l~Wy}~JCLl;XIwW95}3ya)7%IPR?4v)`UeFispf8#CjAD{f`5P7R6H{l&S zykYlTwLx?l2RrcObxo2aD&UI35LahmYuel`&tKb)RvDkG;k`HTeXFZFOFQ?{WJGSh2V(BF zEemG607>vp!gv?Hcg)pqXKf;?E;NcRt>6Gc!yP62uu9CE<&sDO)cR}o>& z!iw{nBQ@T%WyL!ss#L!A7O`mS`=(~SM}}3l<6zMV!&fM4>>7efc(&&abWudj&_^+?P>$!e<_NlKp;4N4PvnU8JJ-TyhKnrxaD&O`hp2S~_8 zp>i`#pJmz(ZKNM#V8Rg$Z(*-9S$_HWg2zK2M|j!=vgc z6I1ry^b+hKy$Lp)fVI%~FmLqRQ>dOO^sGo~e#iX=qRJ0K?`8%Pxk1nKaCD+@M*6q* zdQU`ya3P^cbS!3O1RIbLPi;kDutJx0mMZP0_PEy(PzV(0R+hx(ZK64dnJU95QdU?b z@GJc%9cM7WU)&2Rj^T~FjasVN^OH;NMoO=Y4Rif@CJfw_))ev%C&fGvffe7dyNrD$ z6Qh@TEx2bC5vv7Nah=|g9h*E%5TYvMj6`^fJrst3X>AA&*-Fq{GL-qSWP3kmj~{Bg z8XPi-RI*YrzEZ$sO)%?bq;}oG5wjPM^|`4i!TB?Qmn#fE z&>r4CUgltBm-`*aW)OHK-t}3K&TAZVxCL{TH#2ax$b+=6Cb4MT1BDFi*N!HTzkm~g z=IFE;Ohm!x-&K%RiG4rciV6I|MbxnO`ed_OuM@(;iQOmZO9F(OBg)Nw{zZ3QmyVl} zfras={^v9e*CZ=Ry*1U1Le+qjz$X=+0HI#6+DWX{i6xDfUnVVfuUKNHlv{AkqyvN{ z?xupJ(0*7EjFeeDba%qp7i1V!6j*aqfq;9h8Qy=~htmaXnS@n@5gT z`(;d_sZuS`UkkQ0*AB^!PK_-8^&B){Z(RnTtL&wvsnzDs3WtO`0v0-T?8MZmDYGBL zOedAH4EOAlG9KRR+L@hcv?Myl!DF%!g?^h10@Pm(RX+D2>R|R^MpB}I zzGd@#z#oyXWW;VbL-`sHi<+ zWyX~c48MDaw1jZ34aO+Sb=3)^bzC;FBv)QMpY#^QcQ7l9Y(1UKE@?KG=uZC*pr8Le zo}9##NLLJ1^QZmOTRLhk)&I(6`0rp&>K`NDU;8X(-odnlJx#G$FusUMiuUbsmnzaU zlR;b^3oogBOCw)8zB^1pBJD)`nl#{hWI1DHk*cAj*(}rH?35%zQZ;r z6RMRmH4BD>d&jxZE{i7(=V4ZzW9BLfgdgIpnjXmJO7A}3O;_A+hp#&Iz z-$le(t9xrYWd~Royvm3ArgW0twinn7vJrB2*^erWza!!*dPTk5m9eGJ-HTIJ#u1%d z1d*%ZKV}J0b`j(-bII*Mj4_GTKQ}kO50Z%??gNJ2d*Ts>S>F+u66BL4NU|LP7Vpp0W3u1QmA_O8Q1;baKS?RW{s3c}oU*FH)+ z0x>GHM_G-PW=+AqXT5dbUZ^Bu;Ys#4+U+9)U^$xxRqrWoo;EH+#S= ztdkau+1@b%mZ%WYIB^nl`~3rP8*&68S$U)z9Q|#2#v^?t2acEh_IsgI2|iyHfg$;(nWtGt0GEFS-5;xv8s;nCmBr_;PU!nIoqE@RC2fW%L4 zkB$9i_&GI4YIyKFN#-92wM!cq{c(hgr#7rg~nqRv0$R6$aD@o_l z`W0!0mF+1-xbJ_o$os9xd{z1i-{q9pUceBskuKHvlL?1%{l{m(Z(fMpt>unV)H;GJGX+t3AGLXDjS4ME@ zh&rMED6Tyn1S&Zh=t?-UL-UePP23VdY|T8g)s?aU)jNe>ujWdTHNtLNOI>Fmlez?9 z*#UwHqBbe+xR;=B9nbx#MIGh(e*T(t$A5)so$lyJhi_#xQq-{D?{R%}MW}2kYPCD( zo4@OPW@iyj^+!BopGZg z(uens2}Qbp5aOo_@+TvvWB=j)KJrngZUwPyzE0^AXDv#xNMVeOV6$N?SmX0Fz>Ny2 zHtr5FhDBVN2Lq)75<_;ciEGLf8IdCNQyujbfd#h`Yw^!mF74&F4;2}lg2=CdYtopm zMZ2Ii38=Ff`X6vcYKc`sTnh)~TefUW{>>qZDA46vE4G*}w&A3k>!rgR{H=sQ)847# zujQb9{(G+BwoR0@3ETO-q88MaI0@8MvN!b=3I1Kw^t>7gl8*O3vVq7ahN7JNGK6U} z^eBV0pV#R-6vJm%{sc}4f?SbJ*O-sP&%Qo8@hd(4MlJk!NYA7fZR9r>n&`Xz6^ftk zs&+LRuQsbNA0coH$|xz#oPJO4m~*6&1|!(2GN@IQcEj}VhRE=V-Ta7}j>HmZkl;A2 zM$9zFlu@dZ5;0;T>{feqMQEp8yr7{EEzh=@5xzq z0#-@qd*{AwL{lq`TGo+U5cX$L*vY)>?(nAv)Kph;#vC_Pw{qt;?im*O#?$g%Oz>oS z-}L3L;Qn33uk?tIp@0XRn1Dvam^U1Ut5!x{5W)28-bgx0La|8cw-3p@ZE{cwR;En| zGwx;APx-Jriby2sJmD3;4H#Y`UIk%@26T?OsSu`qg3rMIq163Y+9B#ak1uPac1}9? z%0%4juch^SOV?J<7}fC3Cg2kWGS|t=COGAQY<&^s<&XQx*bAzTq)KE-47GD#as-d< z6~3P!(DhjNJ2hCr_B%Vj~2E?{fOga zM}yzO+{vJ-BOOvhMOEF&Uyx1{gLS%LA*K!H-#jnxqpT*l)tw1-6s0Jz)g*=Mo!e1- z>8Q5}E<{eeT%sgH6_WOwj}t=Odb=CV7`ELq?}sbu;oZZl9>!u$6Lji8!>hHZvr86? z!Y3&9_KGj1_ zekAx2rq4?!klY3d9GN!u-`x>;&P&^xFWZ}!tReY|S(Zr_>Wr`ksO~2s=W(>&aQQz) zM3Nn2$lV~t(QaI(K;QU-=lhB_6RJFuCd~Fn?cIpn3T&hgW`X(5LpiCi*?HCYxpE7l zNLwNhFsivfbR6MUWK=GR6K@KwReb+QxDQ9K{vbK*gpw)2NKFLwvuBv4&>g{D_BJvchS^f!1n zkj|jc&`%2X)TM#u4bto)7-cjk1lWCi);q7E0X$AiRCKPMECb_;fkp+iTi1!ebC;yW zZxSF=d)gk4=7KD0u(~c_Qr<}@f4qBe3zM3ofjuoP+V5iao94rwf#x@-W_{!thUhp$ zM$#F!OjhRu6(}-V7wJlAvsA#$!BCB*rv&=i16p>Nq!mr#tG}O&y}=(>Qj{GK_@x@V z9(9`)3&`AYE}{#F*Ic3Auh(!V8?*2-31M%L_;2qn`HQTVQd`1SDg;{7Q(`JJs^4OV zy!U)VXe}n3MT)@3DZm^3Q7#5l0S?V@9h0jl+$s89c<0e4U~3z$2FUzuJrO6Cx<2`P z6~v8g6cQzd6yJAFVqgY5>8*&PmK)V@6dl;33}=+!Ga-+x!RbNnr{akaiZ_b1-hgSw z-D8%rtS}Gk$X_r!&UHvLr?90?_fvj)o`l?R_bL3j(MUkFY5p-LEcsHP zvV<~nUJ7lY=0BLD>1TgL{PtH{Y3T`f2jof!R23QTAcOdp7=sw-G7%$#YE^ZSTZCrT zzuE=HHyqsSKj{8?WonK&1;H8-X9gJwIP^xf_|<}mL>}+g3r|s^77l`BWKk*1MdZLfYo*uQl=VxDMrnUo zd84ywUZHZe90Pr+j)=*fRyyA8>#_WNrEWoMFa80GLcf7{t(R1=&8u^u?u2G7zV|S+ zhr>Yg&5B{v>WNI~W^jy*7GGOUJqO4H(f&58MgU0?(2@?nCwUN9t|Ng&@8)@X4my`1 z6G<>IcvTWzonjt@yzY9sSAydH=qoPmP{)*klo<>0*%U0ijF4CAM`rKi7-d+tT8Mk6 z0IxDe3hg(UBe6m6K7jN3yZGPGq@$CtY?q@b6p_`XK;*L;w;MTGs|~51Z5xZDB`H3fm+h z9sWg(hx=LYbypTKJEt9!tJX-u#%izW*ECu;byXpsHGC^b`_Q#AS6|mdQ}q(gKQ6?T zeJ$ZrELEQ{;*C9d& +

📄 작업 보고서

+ + + +
+

📊 출근/공수 관리

+ +
+ +
+

🔧 관리콘솔

+ +
+ +
+

🏭 공장 정보

+ +
+ +
+

📊 이슈 리포트

+ +
\ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/attendance-validation.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/attendance-validation.html new file mode 100644 index 0000000..d80b4db --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/attendance-validation.html @@ -0,0 +1,181 @@ + + + + + + 근태 검증 관리 시스템 | (주)테크니컬코리아 + + + + + + + + + +
+ + + ← 뒤로가기 + + + + + + +
+ + + + + +
+ +
+ +
+ +

+ 2025년 6월 +

+ +
+ + +
+

이번 달 요약

+
+
+
0
+
✅ 정상
+
+
+
0
+
⚠️ 검토필요
+
+
+
0
+
❌ 미입력
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+ +
+ + +
+
+
+ 정상 +
+
+
+ 검토필요 +
+
+
+ 미입력 +
+
+ + + +
+ + +
+
+
🔄
+

날짜를 클릭해주세요

+

+ 캘린더에서 날짜를 클릭하면 해당 날짜의 작업자 검증 내역을 확인할 수 있습니다.
+ 순차 호출 방식으로 안정적이지만 약 5초의 로딩 시간이 있습니다. +

+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/dashboard.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/dashboard.html new file mode 100644 index 0000000..eb00cad --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/dashboard.html @@ -0,0 +1,35 @@ +
+

📄 작업 보고서

+ +
+ +
+

📊 출근/공수 관리

+ +
+ +
+

관리콘솔

+ +
+ +
+

🏭 공장 정보

+ +
+ +
+

🗂 기타 관리

+

프로젝트 및 작업자 관련 기능은 추후 확장 예정

+
\ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/factory-upload.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/factory-upload.html new file mode 100644 index 0000000..d35bea0 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/factory-upload.html @@ -0,0 +1,23 @@ + + + + + 공장 지도 등록 + + + + +
+

공장 지도 등록

+
+ + + + + +
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-daily-work.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-daily-work.html new file mode 100644 index 0000000..1279963 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-daily-work.html @@ -0,0 +1,667 @@ +import React, { useState, useEffect } from 'react'; +import { Calendar, Clock, Users, AlertTriangle, CheckCircle, Edit3, Filter } from 'lucide-react'; + +const AttendanceValidationPage = () => { + const [currentDate, setCurrentDate] = useState(new Date()); + const [selectedDate, setSelectedDate] = useState(null); + const [attendanceData, setAttendanceData] = useState({}); + const [selectedDateWorkers, setSelectedDateWorkers] = useState([]); + const [filter, setFilter] = useState('all'); // all, needsReview, normal, missing + const [monthlyData, setMonthlyData] = useState({ workReports: [], dailyReports: [] }); + const [loading, setLoading] = useState(false); + const [isAuthorized, setIsAuthorized] = useState(true); // TODO: 실제 권한 체크 + + // 월이 변경될 때마다 해당 월의 전체 데이터 로드 + useEffect(() => { + loadMonthlyData(); + }, [currentDate]); + + const loadMonthlyData = async () => { + setLoading(true); + try { + const year = currentDate.getFullYear(); + const month = currentDate.getMonth() + 1; + + console.log(`${year}년 ${month}월 데이터 로딩 중...`); + const data = await fetchMonthlyData(year, month); + setMonthlyData(data); + + } catch (error) { + console.error('월간 데이터 로딩 실패:', error); + // 실패 시 빈 데이터로 설정 + setMonthlyData({ workReports: [], dailyReports: [] }); + } finally { + setLoading(false); + } + }; + + // 실제 API 호출 함수들 + const fetchWorkReports = async (date) => { + try { + const response = await fetch(`/api/workreports/date/${date}`, { + headers: { + 'Authorization': `Bearer ${localStorage.getItem('token')}` + } + }); + return await response.json(); + } catch (error) { + console.error('WorkReports API 호출 오류:', error); + return []; + } + }; + + const fetchDailyWorkReports = async (date) => { + try { + const response = await fetch(`/api/daily-work-reports/date/${date}`, { + headers: { + 'Authorization': `Bearer ${localStorage.getItem('token')}` + } + }); + return await response.json(); + } catch (error) { + console.error('DailyWorkReports API 호출 오류:', error); + return []; + } + }; + + // 월간 데이터 가져오기 (캘린더용) + const fetchMonthlyData = async (year, month) => { + const start = `${year}-${month.toString().padStart(2, '0')}-01`; + const end = `${year}-${month.toString().padStart(2, '0')}-31`; + + try { + const [workReports, dailyReports] = await Promise.all([ + fetch(`/api/workreports?start=${start}&end=${end}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }).then(res => res.json()), + fetch(`/api/daily-work-reports/search?start_date=${start}&end_date=${end}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }).then(res => res.json()) + ]); + + return { workReports, dailyReports: dailyReports.reports || [] }; + } catch (error) { + console.error('월간 데이터 가져오기 오류:', error); + return { workReports: [], dailyReports: [] }; + } + }; + + // 목업 데이터 (개발/테스트용) + const mockWorkReports = { + '2025-06-16': [ + { worker_id: 1, worker_name: '김철수', overtime_hours: 1, status: 'normal' }, + { worker_id: 2, worker_name: '이영희', overtime_hours: 0, status: 'half_day' }, + { worker_id: 3, worker_name: '박민수', overtime_hours: 0, status: 'vacation' }, + ], + '2025-06-17': [ + { worker_id: 1, worker_name: '김철수', overtime_hours: 2, status: 'normal' }, + { worker_id: 2, worker_name: '이영희', overtime_hours: 0, status: 'normal' }, + { worker_id: 4, worker_name: '정수현', overtime_hours: 0, status: 'early_leave' }, + ], + '2025-06-19': [ + { worker_id: 1, worker_name: '김철수', overtime_hours: 1, status: 'normal' }, + { worker_id: 2, worker_name: '이영희', overtime_hours: 0, status: 'half_day' }, + { worker_id: 3, worker_name: '박민수', overtime_hours: 0, status: 'vacation' }, + { worker_id: 4, worker_name: '정수현', overtime_hours: 0, status: 'normal' }, + ] + }; + + const mockDailyReports = { + '2025-06-16': [ + { worker_id: 1, worker_name: '김철수', work_hours: 9 }, + { worker_id: 2, worker_name: '이영희', work_hours: 4 }, + { worker_id: 3, worker_name: '박민수', work_hours: 0 }, + ], + '2025-06-17': [ + { worker_id: 1, worker_name: '김철수', work_hours: 10 }, + { worker_id: 2, worker_name: '이영희', work_hours: 8 }, + { worker_id: 4, worker_name: '정수현', work_hours: 6 }, + ], + '2025-06-19': [ + { worker_id: 1, worker_name: '김철수', work_hours: 9 }, + { worker_id: 2, worker_name: '이영희', work_hours: 4 }, + { worker_id: 3, worker_name: '박민수', work_hours: 0 }, + // 정수현 데이터 누락 - 미입력 상태 + ] + }; + + // 시간 계산 함수 + const calculateExpectedHours = (status, overtime_hours = 0) => { + const baseHours = { + 'normal': 8, + 'half_day': 4, + 'early_leave': 6, + 'quarter_day': 2, + 'vacation': 0, + 'sick_leave': 0 + }; + return (baseHours[status] || 8) + (overtime_hours || 0); + }; + + // 날짜별 상태 계산 (월간 데이터 기반) + const calculateDateStatus = (dateStr) => { + const workReports = monthlyData.workReports.filter(wr => wr.date === dateStr); + const dailyReports = monthlyData.dailyReports.filter(dr => dr.report_date === dateStr); + + if (workReports.length === 0 && dailyReports.length === 0) { + return 'no-data'; + } + + if (workReports.length === 0 || dailyReports.length === 0) { + return 'missing'; + } + + // 작업자별 시간 집계 + const dailyGrouped = dailyReports.reduce((acc, dr) => { + if (!acc[dr.worker_id]) { + acc[dr.worker_id] = 0; + } + acc[dr.worker_id] += parseFloat(dr.work_hours || 0); + return acc; + }, {}); + + // 불일치 검사 + const hasDiscrepancy = workReports.some(wr => { + const reportedHours = dailyGrouped[wr.worker_id] || 0; + const expectedHours = calculateExpectedHours('normal', wr.overtime_hours || 0); + return Math.abs(reportedHours - expectedHours) > 0; + }); + + return hasDiscrepancy ? 'needs-review' : 'normal'; + }; + + // 권한 체크 (실제 구현 시) + const checkPermission = () => { + // TODO: 실제 권한 체크 로직 + const userRole = localStorage.getItem('userRole') || 'user'; + return userRole === 'admin' || userRole === 'manager'; + }; + + // 권한 없음 UI + if (!isAuthorized) { + return ( +
+
+
🔒
+

접근 권한이 없습니다

+

이 페이지는 관리자(Admin) 이상만 접근 가능합니다.

+
+
+ ); + } + + // 로딩 중 UI + if (loading) { + return ( +
+
+
+
+ 데이터를 불러오는 중... +
+
+
+ ); + } + + // 캘린더 생성 + const generateCalendar = () => { + const year = currentDate.getFullYear(); + const month = currentDate.getMonth(); + const firstDay = new Date(year, month, 1); + const lastDay = new Date(year, month + 1, 0); + const startDate = new Date(firstDay); + startDate.setDate(startDate.getDate() - firstDay.getDay()); + + const calendar = []; + const current = new Date(startDate); + + for (let week = 0; week < 6; week++) { + const weekDays = []; + for (let day = 0; day < 7; day++) { + const dateStr = current.toISOString().split('T')[0]; + const isCurrentMonth = current.getMonth() === month; + const status = isCurrentMonth ? calculateDateStatus(dateStr) : 'no-data'; + + weekDays.push({ + date: new Date(current), + dateStr, + isCurrentMonth, + status + }); + current.setDate(current.getDate() + 1); + } + calendar.push(weekDays); + } + return calendar; + }; + + // 실제 API를 사용한 작업자 데이터 조합 + const getWorkersForDate = async (dateStr) => { + try { + // 실제 API 호출 + const [workReports, dailyReports] = await Promise.all([ + fetchWorkReports(dateStr), + fetchDailyWorkReports(dateStr) + ]); + + console.log('API 응답:', { workReports, dailyReports }); + + const workerMap = new Map(); + + // WorkReports 데이터 추가 (생산지원팀 입력) + workReports.forEach(wr => { + workerMap.set(wr.worker_id, { + worker_id: wr.worker_id, + worker_name: wr.worker_name, + overtime_hours: wr.overtime_hours || 0, + status: 'normal', // 실제 테이블 구조에 맞게 수정 필요 + expected_hours: calculateExpectedHours('normal', wr.overtime_hours), + reported_hours: null, + hasWorkReport: true, + hasDailyReport: false + }); + }); + + // DailyReports 데이터 추가 (그룹장 입력) - 작업자별 총 시간 집계 + const dailyGrouped = dailyReports.reduce((acc, dr) => { + if (!acc[dr.worker_id]) { + acc[dr.worker_id] = { + worker_id: dr.worker_id, + worker_name: dr.worker_name, + total_work_hours: 0 + }; + } + acc[dr.worker_id].total_work_hours += parseFloat(dr.work_hours || 0); + return acc; + }, {}); + + Object.values(dailyGrouped).forEach(dr => { + if (workerMap.has(dr.worker_id)) { + const worker = workerMap.get(dr.worker_id); + worker.reported_hours = dr.total_work_hours; + worker.hasDailyReport = true; + } else { + workerMap.set(dr.worker_id, { + worker_id: dr.worker_id, + worker_name: dr.worker_name, + overtime_hours: 0, + status: 'normal', + expected_hours: 8, + reported_hours: dr.total_work_hours, + hasWorkReport: false, + hasDailyReport: true + }); + } + }); + + return Array.from(workerMap.values()).map(worker => ({ + ...worker, + difference: worker.reported_hours !== null ? worker.reported_hours - worker.expected_hours : -worker.expected_hours, + validationStatus: getValidationStatus(worker) + })); + + } catch (error) { + console.error('데이터 조합 오류:', error); + // 오류 시 목업 데이터 사용 + return getWorkersForDateMock(dateStr); + } + }; + + // 목업 데이터용 함수 (개발/테스트) + const getWorkersForDateMock = (dateStr) => { + const workReports = mockWorkReports[dateStr] || []; + const dailyReports = mockDailyReports[dateStr] || []; + + const workerMap = new Map(); + + // WorkReports 데이터 추가 + workReports.forEach(wr => { + workerMap.set(wr.worker_id, { + worker_id: wr.worker_id, + worker_name: wr.worker_name, + overtime_hours: wr.overtime_hours, + status: wr.status, + expected_hours: calculateExpectedHours(wr.status, wr.overtime_hours), + reported_hours: null, + hasWorkReport: true, + hasDailyReport: false + }); + }); + + // DailyReports 데이터 추가 + dailyReports.forEach(dr => { + if (workerMap.has(dr.worker_id)) { + const worker = workerMap.get(dr.worker_id); + worker.reported_hours = dr.work_hours; + worker.hasDailyReport = true; + } else { + workerMap.set(dr.worker_id, { + worker_id: dr.worker_id, + worker_name: dr.worker_name, + overtime_hours: 0, + status: 'normal', + expected_hours: 8, + reported_hours: dr.work_hours, + hasWorkReport: false, + hasDailyReport: true + }); + } + }); + + return Array.from(workerMap.values()).map(worker => ({ + ...worker, + difference: worker.reported_hours !== null ? worker.reported_hours - worker.expected_hours : -worker.expected_hours, + validationStatus: getValidationStatus(worker) + })); + }; + + const getValidationStatus = (worker) => { + if (!worker.hasWorkReport || !worker.hasDailyReport) return 'missing'; + if (Math.abs(worker.difference) > 0) return 'needs-review'; + return 'normal'; + }; + + // 작업자 수정 핸들러 + const handleEditWorker = (worker) => { + // TODO: 수정 모달 또는 인라인 편집 구현 + const newHours = prompt( + `${worker.worker_name}의 근무시간을 수정하세요.\n현재: ${worker.reported_hours || 0}시간`, + worker.reported_hours || 0 + ); + + if (newHours !== null && !isNaN(newHours)) { + updateWorkerHours(worker.worker_id, parseFloat(newHours)); + } + }; + + // 작업자 시간 업데이트 (실제 API 호출) + const updateWorkerHours = async (workerId, newHours) => { + try { + // TODO: 실제 수정 API 호출 + console.log(`작업자 ${workerId}의 시간을 ${newHours}시간으로 수정`); + + // 임시: 로컬 상태 업데이트 + setSelectedDateWorkers(prev => + prev.map(worker => + worker.worker_id === workerId + ? { + ...worker, + reported_hours: newHours, + difference: newHours - worker.expected_hours, + validationStatus: Math.abs(newHours - worker.expected_hours) > 0 ? 'needs-review' : 'normal' + } + : worker + ) + ); + + alert('수정이 완료되었습니다.'); + + } catch (error) { + console.error('수정 실패:', error); + alert('수정 중 오류가 발생했습니다.'); + } + }; + + // 날짜 클릭 핸들러 (실제 API 호출) + const handleDateClick = async (dateInfo) => { + if (!dateInfo.isCurrentMonth) return; + + setSelectedDate(dateInfo.dateStr); + + try { + // 로딩 상태 표시 + setSelectedDateWorkers([]); + + // 실제 API에서 데이터 가져오기 + const workers = await getWorkersForDate(dateInfo.dateStr); + setSelectedDateWorkers(workers); + + } catch (error) { + console.error('날짜별 데이터 로딩 오류:', error); + // 오류 시 목업 데이터 사용 + const workers = getWorkersForDateMock(dateInfo.dateStr); + setSelectedDateWorkers(workers); + } + }; + + // 필터링된 작업자 목록 + const filteredWorkers = selectedDateWorkers.filter(worker => { + if (filter === 'all') return true; + if (filter === 'needsReview') return worker.validationStatus === 'needs-review'; + if (filter === 'normal') return worker.validationStatus === 'normal'; + if (filter === 'missing') return worker.validationStatus === 'missing'; + return true; + }); + + // 상태별 아이콘 및 색상 + const getStatusIcon = (status) => { + switch (status) { + case 'normal': return ; + case 'needs-review': return ; + case 'missing': return ; + default: return null; + } + }; + + const getStatusColor = (status) => { + switch (status) { + case 'normal': return 'bg-green-100 text-green-800'; + case 'needs-review': return 'bg-yellow-100 text-yellow-800'; + case 'missing': return 'bg-red-100 text-red-800'; + default: return 'bg-gray-100 text-gray-800'; + } + }; + + const calendar = generateCalendar(); + const monthNames = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']; + const dayNames = ['일', '월', '화', '수', '목', '금', '토']; + + return ( +
+
+ {/* 헤더 */} +
+
+ +

근태 검증 관리

+
+
+ Admin 전용 페이지 +
+
+ +
+ {/* 캘린더 섹션 */} +
+
+ {/* 캘린더 헤더 */} +
+ +

+ {currentDate.getFullYear()}년 {monthNames[currentDate.getMonth()]} +

+ +
+ + {/* 월간 요약 정보 */} +
+
+
+
+ {calendar.flat().filter(d => d.isCurrentMonth && d.status === 'normal').length} +
+
정상
+
+
+
+ {calendar.flat().filter(d => d.isCurrentMonth && d.status === 'needs-review').length} +
+
검토필요
+
+
+
+ {calendar.flat().filter(d => d.isCurrentMonth && d.status === 'missing').length} +
+
미입력
+
+
+
+ + {/* 요일 헤더 */} +
+ {dayNames.map(day => ( +
+ {day} +
+ ))} +
+ + {/* 캘린더 본체 */} +
+ {calendar.flat().map((dateInfo, index) => ( + + ))} +
+ + {/* 범례 */} +
+
+
+ 정상 +
+
+
+ 검토필요 +
+
+
+ 미입력 +
+
+
+
+ + {/* 작업자 리스트 섹션 */} +
+ {selectedDate ? ( +
+
+

+ 📅 {selectedDate} +

+ +
+ +
+ {filteredWorkers.map(worker => ( +
+
+ {worker.worker_name} + {getStatusIcon(worker.validationStatus)} +
+ +
+
+ 그룹장 입력: + + {worker.reported_hours !== null ? `${worker.reported_hours}시간` : '미입력'} + +
+
+ 시스템 계산: + {worker.expected_hours}시간 +
+ {worker.difference !== 0 && ( +
+ 차이: + 0 ? 'text-red-600' : 'text-blue-600'}`}> + {worker.difference > 0 ? '+' : ''}{worker.difference}시간 + +
+ )} +
+ + {worker.validationStatus === 'needs-review' && ( + + )} +
+ ))} +
+ + {filteredWorkers.length === 0 && ( +
+ 해당 조건의 작업자가 없습니다. +
+ )} +
+ ) : ( +
+ +

날짜를 선택하면

+

작업자 검증 내역을 확인할 수 있습니다.

+
+ )} +
+
+
+
+ ); +}; + +export default AttendanceValidationPage; \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-issue.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-issue.html new file mode 100644 index 0000000..5fe1e95 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-issue.html @@ -0,0 +1,62 @@ + + + + + + 이슈 유형 관리 | (주)테크니컬코리아 + + + + + + +
+ + +
+ + +
+ + +
+

새 이슈 유형 등록

+
+
+ + + +
+
+
+ +
+

등록된 이슈 유형

+
+ + + + + + + + + + + + +
ID카테고리서브카테고리작업
불러오는 중...
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-pipespec.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-pipespec.html new file mode 100644 index 0000000..09c763d --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-pipespec.html @@ -0,0 +1,62 @@ + + + + + + 파이프 스펙 관리 | (주)테크니컬코리아 + + + + + + +
+ + +
+ + +
+ + +
+

새 파이프 스펙 등록

+
+
+ + + + +
+
+
+ +
+

등록된 파이프 스펙

+
+ + + + + + + + + + + +
ID스펙작업
불러오는 중...
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-project.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-project.html new file mode 100644 index 0000000..751424d --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-project.html @@ -0,0 +1,76 @@ + + + + + + 프로젝트 관리 | (주)테크니컬코리아 + + + + + + +
+ + +
+ + +
+ + +
+

새 프로젝트 등록

+
+
+ + +
+
+ + +
+
+ + + + +
+
+
+ +
+

등록된 프로젝트

+
+ + + + + + + + + + + + + + + + + +
ID공사번호프로젝트명계약일납기일납품방식현장PM작업
불러오는 중...
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-task.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-task.html new file mode 100644 index 0000000..f69d19f --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-task.html @@ -0,0 +1,68 @@ + + + + + + 작업 항목 관리 | (주)테크니컬코리아 + + + + + + +
+ + +
+ + +
+ + +
+

새 작업 항목 등록

+
+
+ + +
+
+ + + +
+
+
+ +
+

등록된 작업 항목

+
+ + + + + + + + + + + + + + +
ID카테고리서브카테고리작업명설명작업
불러오는 중...
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-user.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-user.html new file mode 100644 index 0000000..54c9998 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-user.html @@ -0,0 +1,106 @@ + + + + + + 👤 사용자 관리 | (주)테크니컬코리아 + + + + + +
+ + +
+ + +
+ + + +
+

🔐 내 비밀번호 변경

+
+
+ + + + +
+
+
+ + +
+

새 사용자 등록

+
+
+ + + +
+
+ + + +
+
+
+ + + + + +
+

등록된 사용자

+
+ + + + + + + + + + + + + + +
ID아이디이름권한연결 작업자작업
불러오는 중...
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-worker.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-worker.html new file mode 100644 index 0000000..b57e65a --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/manage-worker.html @@ -0,0 +1,62 @@ + + + + + + 작업자 관리 | (주)테크니컬코리아 + + + + + + +
+ + +
+ + +
+ + +
+

새 작업자 등록

+
+
+ + + +
+
+
+ +
+

등록된 작업자

+
+ + + + + + + + + + + + +
ID이름직책작업
불러오는 중...
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/admin/work-review.html b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/work-review.html new file mode 100644 index 0000000..bc12a16 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/admin/work-review.html @@ -0,0 +1,109 @@ + + + + + + 작업 검토 | (주)테크니컬코리아 + + + + + +
+ + + +
+
+ + + ← 뒤로가기 + + + + + + +
+ + +
+
+ +
2025년 6월
+ +
+
+ +
+
+ + +
+

📖 사용법

+
+
+
👆
+
+ 날짜 클릭
+ 캘린더에서 날짜를 클릭하면 해당 날짜의 작업 정보를 확인할 수 있습니다. +
+
+
+
✏️
+
+ 작업 수정
+ 각 작업 항목의 수정 버튼을 클릭하여 프로젝트, 작업 유형, 시간 등을 수정할 수 있습니다. +
+
+
+
🗑️
+
+ 작업 삭제
+ 개별 작업 또는 작업자의 모든 작업을 삭제할 수 있습니다. +
+
+
+
+
+ 검토 완료
+ 작업 검토가 완료되면 검토 완료 버튼을 클릭하여 상태를 변경할 수 있습니다. +
+
+
+
+ + +
+

📅 캘린더

+
+ +
+
+
+
+
+
+
+ +
+
+ + +
+
+ +
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/analysis/daily_work_analysis.html b/deploy/tkfb-package/fastapi-bridge/static/pages/analysis/daily_work_analysis.html new file mode 100644 index 0000000..91471be --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/analysis/daily_work_analysis.html @@ -0,0 +1,890 @@ + + + + + + 작업 현황 분석 + + + + +
+
+

📊 일일 작업 현황 분석

+

실시간 작업 현황과 주요 지표를 확인하세요

+
+ + + ~ + + + + + + +
+
+ +
+
+ +
+
+
0
+
총 작업시간
+
+0%
+
+
+
0
+
보고서 건수
+
+0%
+
+
+
0
+
진행 프로젝트
+
+0%
+
+
+
0%
+
에러율
+
+0%
+
+
+ +
+
+
📈 일별 작업시간 추이
+
+ +
+
+
+
👥 작업자별 작업량
+
+ +
+
+
+ +
+
+
🏗️ 프로젝트별 투입시간
+
+ +
+
+
+
⚙️ 작업 유형별 분포
+
+ +
+
+
+ +
+
🔍 최근 작업 현황
+ + + + + + + + + + + + + + + + +
날짜작업자프로젝트작업유형작업시간상태
데이터를 불러오는 중...
+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/12.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/12.html new file mode 100644 index 0000000..3c6fe96 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/12.html @@ -0,0 +1,497 @@ + + + + + + Rate Limit 관리 + + + +
+
+

+ + + + Rate Limit 관리 +

+
권한 레벨: -
+
+ +
+ + + + +
+

+ + + + 현재 상태 +

+ +
+
+
클라이언트 IP
+
로딩 중...
+
+
+
API 제한
+
로딩 중...
+
+
+
로그인 제한
+
로딩 중...
+
+
+
시간 윈도우
+
15분
+
+
+
+ + +
+
+ + + + + + + +
+
+ + +
+ + +
+

💡 사용 가이드

+
    +
  • 초기화: 현재 IP의 요청 카운터를 0으로 리셋
  • +
  • 제한 해제: 지정된 시간 동안 Rate Limit 완전 비활성화
  • +
  • 권한 요구사항: 레벨 4-5 사용자만 접근 가능
  • +
  • 자동 해제: 임시 해제는 설정된 시간 후 자동으로 복구됨
  • +
+
+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/123.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/123.html new file mode 100644 index 0000000..9820306 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/123.html @@ -0,0 +1,1044 @@ + + + + + + 📊 작업 분석 대시보드 | 개선된 버전 + + + + + + +
+ + + +
+
+ + + ← 뒤로가기 + + +
+

📊 작업 분석 대시보드

+

총 시간 분류 & 프로젝트별 상세 분석

+
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ + +
+

⏱️ 총 시간 분류

+
+
데이터를 불러오는 중...
+
+
+ + +
+

📋 프로젝트 분류

+
+
데이터를 불러오는 중...
+
+
+ + +
+

📈 일별 작업시간 추이

+
+
데이터를 불러오는 중...
+
+
+ + +
+

🔍 프로젝트별 작업 유형 & 에러 분석

+
+
데이터를 불러오는 중...
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/123456.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/123456.html new file mode 100644 index 0000000..7e194a8 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/123456.html @@ -0,0 +1,1019 @@ + + + + + + 📊 작업 분석 대시보드 | 개선된 버전 + + + + + + +
+ + + +
+
+ + + ← 뒤로가기 + + +
+

📊 작업 분석 대시보드

+

총 시간 분류 & 프로젝트별 상세 분석

+
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ + +
+

⏱️ 총 시간 분류

+
+
데이터를 불러오는 중...
+
+
+ + +
+

📋 프로젝트 분류

+
+
데이터를 불러오는 중...
+
+
+ + +
+

📈 일별 작업시간 추이

+
+
데이터를 불러오는 중...
+
+
+ + +
+

🔍 프로젝트별 작업 유형 & 에러 분석

+
+
데이터를 불러오는 중...
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/attendance.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/attendance.html new file mode 100644 index 0000000..e906977 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/attendance.html @@ -0,0 +1,87 @@ + + + + + + 출근부 조회 | (주)테크니컬코리아 + + + + + + + +
+ + +
+ + +
+ + +
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+

조회할 연도와 월을 선택하세요.

+
+
+
+
+ + +
+

범례

+
+ + 잔업 + + + 연차/반차 + + + 유급 + + + 휴무 + +
+
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/daily-work-report-viewer.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/daily-work-report-viewer.html new file mode 100644 index 0000000..c125528 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/daily-work-report-viewer.html @@ -0,0 +1,100 @@ + + + + + + 일일 작업보고서 조회 + + + +
+ + +
+
+ + + + +
+
+ + + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/daily-work-report.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/daily-work-report.html new file mode 100644 index 0000000..a8e0156 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/daily-work-report.html @@ -0,0 +1,1062 @@ + + + + + + 일일 작업보고서 작성 | (주)테크니컬코리아 + + + + + + +
+ + + +
+
+ + + ← 뒤로가기 + + + + + +
+ + +
+
+
1
+
작업 날짜 선택
+
+
+ +
+ +
+ + +
+
+
2
+
작업자 선택
+
+
+ +
+ +
+ + +
+
+
3
+
작업 내역 입력
+
+ + +
+ 총 작업시간: 0시간 +
+ + +
+ +
+ + + + + + +
+ + + + + +
+

📖 사용 가이드

+
+
+
📅
+ 1단계
+ 작업 날짜 선택 +
+
+
👤
+ 2단계
+ 작업자 선택 (터치) +
+
+
🔧
+ 3단계
+ 작업 내역 입력 +
+
+
💾
+ 완료
+ 저장하여 마무리 +
+
+
✏️
+ 관리
+ 입력한 작업 수정/삭제 +
+
+
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/factory-upload.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/factory-upload.html new file mode 100644 index 0000000..66a27fb --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/factory-upload.html @@ -0,0 +1,47 @@ + + + + + + 공장 정보 등록 | (주)테크니컬코리아 + + + + + + +
+ + +
+ + +
+
+

공장 정보 등록

+
+ + + + + + + + + + + +
+ + +
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/factory-view.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/factory-view.html new file mode 100644 index 0000000..cdbbae0 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/factory-view.html @@ -0,0 +1,59 @@ + + + + + + 공장 정보 | (주)테크니컬코리아 + + + + + +
+ + +
+ + +
+
+ +
+ 공장 정보를 불러오는 중... +
+ + + + + + +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/management-dashboard.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/management-dashboard.html new file mode 100644 index 0000000..a85de2f --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/management-dashboard.html @@ -0,0 +1,215 @@ + + + + + + 관리자 대시보드 - 일일 작업 입력 현황 | (주)테크니컬코리아 + + + + + + +
+ + + +
+
+ + + ← 뒤로가기 + + + + + + + + + +
+ + +
+
+

📅 조회 날짜 선택

+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
+

📖 사용 가이드

+
+
+
📅
+ 날짜 선택
+ 확인하고 싶은 날짜를 선택하세요 +
+
+
📊
+ 현황 확인
+ 팀 전체의 입력 현황을 확인하세요 +
+
+
🔍
+ 필터링
+ 미입력자만 따로 확인할 수 있습니다 +
+
+
📥
+ 내보내기
+ 엑셀로 데이터를 다운로드하세요 +
+
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/project-analysis.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/project-analysis.html new file mode 100644 index 0000000..93272af --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/project-analysis.html @@ -0,0 +1,304 @@ + + + + + + 프로젝트 투입 분석 | (주)테크니컬코리아 + + + + + + + + +
+ + +
+ + +
+ + +
+

📅 분석 기간 설정

+
+ + + + + + + + + +
+
+ + +
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/work-report-review.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/work-report-review.html new file mode 100644 index 0000000..9b2b824 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/work-report-review.html @@ -0,0 +1,723 @@ + + + + + + 작업보고서 검토 | (주)테크니컬코리아 + + + + + + + + +
+ + +
+ + +
+ + + +
+ +
+ +
+ +
+
+
-
+
총 보고서
+
+
+
-
+
에러 발생
+
+
+
-
+
주의 필요
+
+
+
-
+
미검토
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+ + +
+
+ 🚨 주의 필요 항목 +
+
+ +
+
+ + +
+
+
작업보고서 목록
+
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + +
날짜작업자출근형태기대시간실제시간시간상태프로젝트작업유형상태검토상태액션
+
+
+
+ + +
+
+
빠른 수정
+
항목을 선택하여 수정하세요
+
+
+
+
📝
+
수정할 항목을 선택해주세요
+
+
+
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/common/work-report-validation.html b/deploy/tkfb-package/fastapi-bridge/static/pages/common/work-report-validation.html new file mode 100644 index 0000000..9ee59c7 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/common/work-report-validation.html @@ -0,0 +1,733 @@ + + + + + + 작업 보고서 입력 검증 + + + +
+
+

📊 작업 보고서 입력 검증

+

일일 작업 보고서의 데이터 품질을 확인하고 누락된 정보를 찾아보세요

+
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+ + + + + +
+ +
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/admin.html b/deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/admin.html new file mode 100644 index 0000000..fb4e61f --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/admin.html @@ -0,0 +1,34 @@ + + + + + + 관리자 포털 | (주)테크니컬코리아 + + + + + + + +
+ + + +
+ + +
+
페이지를 불러오는 중...
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/group-leader.html b/deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/group-leader.html new file mode 100644 index 0000000..5e5c9b7 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/group-leader.html @@ -0,0 +1,564 @@ + + + + + + 작업 현황판 | (주)테크니컬코리아 + + + + + +
+ + + + +
+
+
+
+
+

📊 작업 현황판

+

실시간 팀 현황 및 작업 모니터링

+
+
+
+ + 활성 상태 +
+
+
+
+ +
+ +
+

⚡ 빠른 메뉴

+
+
+
👥
+
+

팀 작업 관리

+

팀원 작업 현황 확인 및 관리

+
+
+
+ +
+
📊
+
+

관리 대시보드

+

종합 관리 및 모니터링 시스템

+
+
+
+ +
+
+
+ + +
+ +
+
+

👥 팀 현황

+
🔄
+
+
+
+
8
+
총 팀원
+
+
+
7
+
출근
+
+
+
1
+
결근
+
+
+
+
+ 김작업 + 출근 +
+
+ 이현장 + 출근 +
+
+ 박휴가 + 휴가 +
+
+
+ + +
+
+

📢 공지사항

+
+
+
+
안전 교육 실시 안내
+
2025.06.10
+
+
+
하절기 근무시간 변경
+
2025.06.05
+
+
+
+ + +
+
+

📅 근무 일지

+
준비중
+
+
+
🚧
+

근무 일지 기능을 준비중입니다.

+
+
+ + +
+
+

📈 통계

+
준비중
+
+
+
📊
+

통계 기능을 준비중입니다.

+
+
+
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/user.html b/deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/user.html new file mode 100644 index 0000000..0c14efd --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/dashboard/user.html @@ -0,0 +1,70 @@ + + + + + + 개인 페이지 | (주)테크니컬코리아 + + + + + + + +
+ + + +
+ + +
+
+

👷 내 작업 정보

+

환영합니다. 개인 작업 포털입니다.

+
+ +
+
+

📅 오늘의 작업 일정

+
+

작업 일정을 불러오는 중...

+
+
+ +
+

🔧 빠른 메뉴

+ +
+ +
+

📈 내 작업 현황

+
+

통계를 불러오는 중...

+
+
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/issue-reports/daily-issue-report.html b/deploy/tkfb-package/fastapi-bridge/static/pages/issue-reports/daily-issue-report.html new file mode 100644 index 0000000..8d54856 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/issue-reports/daily-issue-report.html @@ -0,0 +1,76 @@ + + + + + + 일일 이슈 보고 | (주)테크니컬코리아 + + + + + + +
+ + +
+ + +
+ + +
+
+
+ + +
+ +
+ + +
+ +
+ +
+ 날짜를 먼저 선택하세요. +
+
+ +
+ + +
+ +
+ +
+ + ~ + +
+
+ +
+ + +
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/profile/change-password.html b/deploy/tkfb-package/fastapi-bridge/static/pages/profile/change-password.html new file mode 100644 index 0000000..6fbd273 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/profile/change-password.html @@ -0,0 +1,391 @@ + + + + + + 🔐 비밀번호 변경 | (주)테크니컬코리아 + + + + + + +
+ + +
+
+

🔐 비밀번호 변경

+

계정 보안을 위해 정기적으로 비밀번호를 변경해주세요

+
+ +
+
+

+ 🔑 + 새 비밀번호 설정 +

+
+ +
+ +
+ + +
+

+ ℹ️ + 비밀번호 요구사항 +

+
    +
  • 최소 6자 이상 입력해주세요
  • +
  • 영문 대/소문자, 숫자, 특수문자를 조합하면 더 안전합니다
  • +
  • 개인정보나 쉬운 단어는 피해주세요
  • +
  • 이전 비밀번호와 다르게 설정해주세요
  • +
+
+ + +
+
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ +
+ +
+ + +
+
+ +
+ + +
+
+ + +
+
+
+
+ + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/profile/my-profile.html b/deploy/tkfb-package/fastapi-bridge/static/pages/profile/my-profile.html new file mode 100644 index 0000000..dc7e6fd --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/profile/my-profile.html @@ -0,0 +1,317 @@ + + + + + + 👤 내 프로필 | (주)테크니컬코리아 + + + + + + +
+ + +
+
+
👤
+

사용자

+

역할

+
+ +
+ +
+

+ 📋 + 기본 정보 +

+
+
+ 사용자 ID + - +
+
+ 사용자명 + - +
+
+ 이름 + - +
+
+ 권한 레벨 + - +
+
+ 작업자 ID + - +
+
+ 가입일 + - +
+
+
+ + +
+

+ 📊 + 활동 정보 +

+
+
+ 마지막 로그인 + - +
+
+ 이메일 + - +
+
+ + +
+
+ - + 작업 보고서 +
+
+ - + 이번 달 활동 +
+
+ - + 팀 기여도 +
+
+
+ + +
+

+ + 빠른 작업 +

+
+ + 🔐 + 비밀번호 변경 + + + + + + 돌아가기 + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/work-reports/work-report-create.html b/deploy/tkfb-package/fastapi-bridge/static/pages/work-reports/work-report-create.html new file mode 100644 index 0000000..35db0d3 --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/work-reports/work-report-create.html @@ -0,0 +1,65 @@ + + + + + + 작업보고서 입력 | (주)테크니컬코리아 + + + + + + + +
+ + +
+ + +
+ + +
+

📅 날짜 선택

+
+
+ +
+

📋 작업 내용

+
+ + + + + + + + + + + + + + + + +
No작업자프로젝트작업잔업근무형태메모삭제
날짜를 먼저 선택하세요
+
+ +
+ +
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/fastapi-bridge/static/pages/work-reports/work-report-manage.html b/deploy/tkfb-package/fastapi-bridge/static/pages/work-reports/work-report-manage.html new file mode 100644 index 0000000..0ec6f6a --- /dev/null +++ b/deploy/tkfb-package/fastapi-bridge/static/pages/work-reports/work-report-manage.html @@ -0,0 +1,61 @@ + + + + + + 작업보고서 관리 | (주)테크니컬코리아 + + + + + + + +
+ + +
+ + +
+ + +
+

📅 날짜 선택

+
+
+ +
+

📋 선택된 날짜 보고서

+
+ + + + + + + + + + + + + + + + +
No작업자프로젝트작업잔업근무형태메모작업
날짜를 선택하면 보고서가 나타납니다.
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/init-db/README.txt b/deploy/tkfb-package/init-db/README.txt new file mode 100644 index 0000000..3ea87b7 --- /dev/null +++ b/deploy/tkfb-package/init-db/README.txt @@ -0,0 +1 @@ +-- 초기 데이터베이스 생성 완료 시 실행됨 diff --git a/deploy/tkfb-package/web-ui/Dockerfile b/deploy/tkfb-package/web-ui/Dockerfile new file mode 100644 index 0000000..d5f93d7 --- /dev/null +++ b/deploy/tkfb-package/web-ui/Dockerfile @@ -0,0 +1,11 @@ +FROM nginx:alpine + +# 정적 파일 복사 +COPY . /usr/share/nginx/html/ + +# Nginx 설정 파일 복사 (선택사항) +# COPY nginx.conf /etc/nginx/conf.d/default.conf + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/Minutes/safety.html b/deploy/tkfb-package/web-ui/Minutes/safety.html new file mode 100644 index 0000000..677861e --- /dev/null +++ b/deploy/tkfb-package/web-ui/Minutes/safety.html @@ -0,0 +1,1635 @@ + + + + + + 안전회의록 작성 + + + +
+
+

🏭 월간 안전회의록

+

테크니컬코리아 안전회의록 작성 및 관리 시스템

+
+ +
+ +
+ + + + +
+ + +
+
+
+ 하주현 선임 → 업무 인수인계 + 출산/육아휴직 대비 +
+
+
+ + + + +
+
+ +
+
+
+
+ + +
+
+
기존 회의록 참조 (미완료 항목)
+
+
+ + + + + +
+ +
+ 미완료 항목 0 | + 0개 표시됨 | + 완료된 항목 0 +
+ +
+ + +
+ +
+ +
+
+
+
+ + +
+
+
정기점검 사항
+
+
+ + + + +
+
+ 정기점검 사항 | + 0개 긴급, + 0개 예정 +
+
+ + +
+
+ +
+
+
+
+ + +
+ +
+
회의 기본정보
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ 논의사항 + +
+
+
+ +
+
+
+ +
+ + + +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/Minutes/인수인계관련/안전회의록 2025년 5월.xlsx b/deploy/tkfb-package/web-ui/Minutes/인수인계관련/안전회의록 2025년 5월.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7aac17c38dda86cbdd75cf5555e200a0143547db GIT binary patch literal 88883 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 literal 0 HcmV?d00001 diff --git a/deploy/tkfb-package/web-ui/components/navbar.html b/deploy/tkfb-package/web-ui/components/navbar.html new file mode 100644 index 0000000..28d8e85 --- /dev/null +++ b/deploy/tkfb-package/web-ui/components/navbar.html @@ -0,0 +1,638 @@ + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/components/sections/admin-sections.html b/deploy/tkfb-package/web-ui/components/sections/admin-sections.html new file mode 100644 index 0000000..7f7085b --- /dev/null +++ b/deploy/tkfb-package/web-ui/components/sections/admin-sections.html @@ -0,0 +1,49 @@ + + + +
+

📄 작업 보고서

+ +
+ +
+

📊 출근/공수 관리

+ +
+ +
+

🔧 시스템 관리

+ +
+ +
+

🏭 공장 정보

+ +
+ +
+

📊 이슈 리포트

+ +
\ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/components/sidebar-nav.html b/deploy/tkfb-package/web-ui/components/sidebar-nav.html new file mode 100644 index 0000000..39b5e99 --- /dev/null +++ b/deploy/tkfb-package/web-ui/components/sidebar-nav.html @@ -0,0 +1,379 @@ + + + + + diff --git a/deploy/tkfb-package/web-ui/components/sidebar.html b/deploy/tkfb-package/web-ui/components/sidebar.html new file mode 100644 index 0000000..532fd6a --- /dev/null +++ b/deploy/tkfb-package/web-ui/components/sidebar.html @@ -0,0 +1,136 @@ + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/css/admin-pages.css b/deploy/tkfb-package/web-ui/css/admin-pages.css new file mode 100644 index 0000000..fb42bc8 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/admin-pages.css @@ -0,0 +1,1555 @@ +/** + * 관리자 페이지 공통 스타일 + * 사무적이고 전문적인 디자인 시스템 + * + * 적용 페이지: + * - projects.html (프로젝트 관리) + * - workers.html (작업자 관리) + * - codes.html (코드 관리) + */ + +/* ============================================ + 1. 전역 변수 및 기본 설정 + ============================================ */ +:root { + /* 색상 시스템 - 사무적 느낌의 중성 색상 */ + --color-primary: #2563eb; + --color-primary-dark: #1e40af; + --color-primary-light: #dbeafe; + + --color-secondary: #64748b; + --color-secondary-dark: #475569; + --color-secondary-light: #f1f5f9; + + --color-success: #10b981; + --color-warning: #f59e0b; + --color-error: #ef4444; + --color-info: #3b82f6; + + /* 배경 색상 */ + --bg-body: #f8fafc; + --bg-card: #ffffff; + --bg-hover: #f1f5f9; + + /* 텍스트 색상 */ + --text-primary: #0f172a; + --text-secondary: #64748b; + --text-muted: #94a3b8; + + /* 테두리 색상 */ + --border-color: #e2e8f0; + --border-focus: #2563eb; + + /* 그림자 */ + --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); + --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1); + --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1); + + /* 간격 */ + --space-xs: 0.25rem; + --space-sm: 0.5rem; + --space-md: 1rem; + --space-lg: 1.5rem; + --space-xl: 2rem; + --space-2xl: 3rem; + + /* 폰트 크기 */ + --font-xs: 0.75rem; + --font-sm: 0.875rem; + --font-base: 1rem; + --font-lg: 1.125rem; + --font-xl: 1.25rem; + --font-2xl: 1.5rem; + --font-3xl: 1.875rem; + + /* Border Radius */ + --radius-sm: 0.25rem; + --radius-md: 0.5rem; + --radius-lg: 0.75rem; + --radius-xl: 1rem; +} + +/* ============================================ + 2. 레이아웃 구조 (2단 레이아웃: 사이드바 + 메인) + ============================================ */ +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans KR', Roboto, sans-serif; + background: var(--bg-body); + color: var(--text-primary); + line-height: 1.6; + margin: 0; + padding: 0; +} + +/* 페이지 컨테이너: 사이드바 + 메인 콘텐츠 */ +.page-container { + display: flex; + min-height: calc(100vh - 80px); /* 네비바 높이 제외 */ + background: var(--bg-body); +} + +/* 사이드바 */ +.sidebar { + width: 240px; + min-width: 240px; + flex-shrink: 0; + background: #ffffff; + border-right: 1px solid var(--border-color); + box-shadow: 2px 0 4px rgba(0, 0, 0, 0.05); + overflow-y: auto; +} + +.sidebar-nav { + padding: var(--space-lg) 0; +} + +.sidebar-header { + padding: 0 var(--space-lg) var(--space-md); + border-bottom: 1px solid var(--border-color); + margin-bottom: var(--space-md); +} + +.sidebar-title { + font-size: var(--font-base); + font-weight: 700; + color: var(--text-primary); + margin: 0; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.sidebar-menu { + list-style: none; + padding: 0; + margin: 0; +} + +.menu-item a { + display: flex; + align-items: center; + gap: var(--space-sm); + padding: var(--space-sm) var(--space-lg); + color: var(--text-secondary); + text-decoration: none; + transition: all 0.2s ease; + white-space: nowrap; +} + +.menu-item a:hover { + background: var(--bg-hover); + color: var(--text-primary); +} + +.menu-item.active a { + background: var(--color-primary-light); + color: var(--color-primary); + font-weight: 600; + border-right: 3px solid var(--color-primary); +} + +.menu-icon { + font-size: var(--font-lg); + flex-shrink: 0; +} + +.menu-text { + font-size: var(--font-sm); +} + +.menu-divider { + height: 1px; + background: var(--border-color); + margin: var(--space-md) var(--space-lg); +} + +/* 메인 콘텐츠 영역 */ +.main-content { + flex: 1; + padding: var(--space-lg); + padding-left: var(--space-md); + overflow-x: hidden; + max-width: 100%; + box-sizing: border-box; +} + +.dashboard-main { + width: 100%; + max-width: 1400px; + margin: 0 auto; +} + +/* 뒤로가기 버튼 - 사이드바로 대체되어 숨김 */ +.back-button { + display: none; +} + +/* ============================================ + 3. 페이지 헤더 + ============================================ */ +.page-header { + display: flex; + justify-content: space-between; + align-items: flex-start; + margin-bottom: var(--space-xl); + padding: var(--space-lg); + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: var(--radius-lg); + box-shadow: var(--shadow-sm); +} + +.page-title-section { + flex: 1; +} + +.page-title { + display: flex; + align-items: center; + gap: var(--space-md); + font-size: var(--font-3xl); + font-weight: 700; + color: var(--text-primary); + margin: 0 0 var(--space-sm) 0; + white-space: nowrap; /* 텍스트 줄바꿈 방지 */ +} + +.title-icon { + font-size: var(--font-2xl); + filter: grayscale(30%); +} + +.page-description { + font-size: var(--font-sm); + color: var(--text-secondary); + margin: 0; + line-height: 1.5; + max-width: 100%; + word-wrap: break-word; +} + +.page-actions { + display: flex; + gap: var(--space-sm); + flex-shrink: 0; +} + +/* ============================================ + 4. 버튼 스타일 + ============================================ */ +.btn { + display: inline-flex; + align-items: center; + gap: var(--space-sm); + padding: 0.625rem 1.25rem; + font-size: var(--font-sm); + font-weight: 600; + border: none; + border-radius: var(--radius-md); + cursor: pointer; + transition: all 0.2s ease; + white-space: nowrap; +} + +.btn-primary { + background: var(--color-primary); + color: white; + box-shadow: var(--shadow-sm); +} + +.btn-primary:hover { + background: var(--color-primary-dark); + box-shadow: var(--shadow-md); + transform: translateY(-1px); +} + +.btn-secondary { + background: var(--bg-card); + color: var(--text-secondary); + border: 1px solid var(--border-color); +} + +.btn-secondary:hover { + background: var(--bg-hover); + color: var(--text-primary); + border-color: var(--color-secondary); +} + +.btn-icon { + font-size: var(--font-base); + filter: grayscale(20%); +} + +/* ============================================ + 5. 검색 섹션 + ============================================ */ +.search-section { + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: var(--radius-lg); + padding: var(--space-lg); + margin-bottom: var(--space-xl); + box-shadow: var(--shadow-sm); +} + +.search-bar { + display: flex; + gap: var(--space-md); + margin-bottom: var(--space-md); +} + +.search-input { + flex: 1; + padding: 0.625rem 1rem; + font-size: var(--font-sm); + border: 1px solid var(--border-color); + border-radius: var(--radius-md); + background: var(--bg-body); + transition: all 0.2s ease; +} + +.search-input:focus { + outline: none; + border-color: var(--border-focus); + background: white; + box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); +} + +.search-btn { + padding: 0.625rem 1.25rem; + background: var(--color-primary); + color: white; + border: none; + border-radius: var(--radius-md); + font-size: var(--font-sm); + font-weight: 600; + cursor: pointer; + white-space: nowrap; + transition: all 0.2s ease; +} + +.search-btn:hover { + background: var(--color-primary-dark); + transform: translateY(-1px); +} + +/* 필터 영역 */ +.filter-group { + display: flex; + flex-wrap: wrap; + gap: var(--space-md); + align-items: center; +} + +.filter-label { + font-size: var(--font-sm); + font-weight: 600; + color: var(--text-secondary); + margin-right: var(--space-sm); +} + +.filter-btn { + padding: 0.5rem 1rem; + font-size: var(--font-sm); + background: var(--bg-body); + color: var(--text-secondary); + border: 1px solid var(--border-color); + border-radius: var(--radius-md); + cursor: pointer; + transition: all 0.2s ease; +} + +.filter-btn:hover { + background: var(--bg-hover); + color: var(--text-primary); +} + +.filter-btn.active { + background: var(--color-primary); + color: white; + border-color: var(--color-primary); +} + +/* ============================================ + 6. 프로젝트 섹션 + ============================================ */ +.projects-section { + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: var(--radius-lg); + padding: var(--space-lg); + box-shadow: var(--shadow-sm); + width: 100%; + max-width: 100%; + overflow: hidden; + box-sizing: border-box; +} + +.section-header { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: var(--space-md); + margin-bottom: var(--space-lg); + padding-bottom: var(--space-md); + border-bottom: 1px solid var(--border-color); +} + +.section-title { + font-size: var(--font-xl); + font-weight: 700; + color: var(--text-primary); + margin: 0; +} + +/* 통계 카드 */ +.project-stats { + display: flex; + gap: var(--space-sm); + flex-wrap: wrap; +} + +.stat-item { + display: flex; + align-items: center; + gap: var(--space-sm); + padding: 0.625rem 1rem; + background: var(--bg-card); + border: 2px solid var(--border-color); + border-radius: var(--radius-md); + font-size: var(--font-sm); + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + white-space: nowrap; +} + +.stat-item:hover { + transform: translateY(-2px); + box-shadow: var(--shadow-md); +} + +.stat-item.active { + border-width: 2px; + box-shadow: var(--shadow-md); + transform: scale(1.02); +} + +.stat-icon { + font-size: var(--font-lg); +} + +/* 상태별 통계 색상 */ +.active-stat { + background: rgba(16, 185, 129, 0.05); + color: var(--color-success); + border-color: var(--color-success); +} + +.inactive-stat { + background: rgba(239, 68, 68, 0.05); + color: var(--color-error); + border-color: var(--color-error); +} + +.total-stat { + background: rgba(37, 99, 235, 0.05); + color: var(--color-primary); + border-color: var(--color-primary); +} + +/* ============================================ + 7. 그리드 레이아웃 (중앙 정렬) + ============================================ */ +.projects-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: var(--space-lg); + width: 100%; + max-width: 100%; +} + +/* ============================================ + 8. 카드 스타일 + ============================================ */ +.project-card, +.worker-card { + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: var(--radius-lg); + padding: var(--space-lg); + transition: all 0.2s ease; + cursor: pointer; + position: relative; + display: flex; + flex-direction: column; + height: 420px; + min-height: 420px; + max-height: 420px; + max-width: 100%; + overflow: hidden; + box-sizing: border-box; + word-wrap: break-word; +} + +.project-card:hover, +.worker-card:hover { + border-color: var(--color-primary); + box-shadow: var(--shadow-lg); + transform: translateY(-4px); +} + +.project-card.inactive, +.worker-card.inactive { + opacity: 0.75; + background: var(--bg-body); +} + +/* 카드 헤더 */ +.project-header { + display: flex; + flex-direction: column; + flex: 1; + min-height: 0; +} + +.project-info { + flex: 1; + display: flex; + flex-direction: column; + gap: var(--space-sm); + margin-bottom: var(--space-md); +} + +.project-job-no { + font-size: var(--font-xs); + font-weight: 600; + color: var(--text-muted); + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.project-name { + font-size: var(--font-lg); + font-weight: 700; + color: var(--text-primary); + margin: 0; + line-height: 1.3; +} + +.project-badge { + padding: 0.25rem 0.75rem; + font-size: var(--font-xs); + font-weight: 600; + border-radius: var(--radius-sm); + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.badge-active { + background: rgba(16, 185, 129, 0.1); + color: var(--color-success); +} + +.badge-inactive { + background: rgba(239, 68, 68, 0.1); + color: var(--color-error); +} + +/* 카드 메타 정보 */ +.project-meta { + display: grid; + grid-template-columns: 1fr; + gap: var(--space-xs); + font-size: var(--font-sm); + color: var(--text-secondary); + padding: var(--space-md); + background: var(--bg-body); + border-radius: var(--radius-md); + margin-bottom: var(--space-md); +} + +.project-meta > span { + display: flex; + align-items: center; + gap: var(--space-xs); + padding: var(--space-xs) 0; + line-height: 1.5; +} + +.project-meta > span:empty::after { + content: '정보 없음'; + color: var(--text-muted); + font-style: italic; +} + +.meta-row { + display: grid; + grid-template-columns: 100px 1fr; + align-items: center; + gap: var(--space-sm); + font-size: var(--font-sm); + padding: var(--space-xs) 0; +} + +.meta-label { + font-weight: 600; + color: var(--text-muted); + font-size: var(--font-xs); + text-transform: uppercase; + letter-spacing: 0.3px; +} + +.meta-value { + color: var(--text-primary); + font-weight: 500; +} + +.meta-value:empty::after { + content: '-'; + color: var(--text-muted); +} + +/* 카드 액션 */ +.project-actions, +.worker-actions { + display: flex; + gap: var(--space-sm); + margin-top: auto; + padding-top: var(--space-md); + border-top: 1px solid var(--border-color); +} + +.btn-edit, +.btn-delete, +.action-btn { + flex: 1; + padding: 0.5rem 1rem; + font-size: var(--font-sm); + font-weight: 600; + border: 1px solid var(--border-color); + border-radius: var(--radius-md); + background: white; + color: var(--text-secondary); + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + justify-content: center; + gap: var(--space-xs); +} + +.btn-edit:hover { + background: var(--color-primary); + color: white; + border-color: var(--color-primary); + transform: translateY(-1px); +} + +.btn-delete:hover, +.action-btn.danger:hover { + background: var(--color-error); + color: white; + border-color: var(--color-error); + transform: translateY(-1px); +} + +/* 작업자 카드 특별 스타일 */ +.worker-card .project-info { + display: flex; + align-items: flex-start; + gap: var(--space-md); + margin-bottom: var(--space-md); +} + +.worker-avatar { + width: 60px; + height: 60px; + border-radius: 50%; + background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark)); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + box-shadow: var(--shadow-md); +} + +.avatar-initial { + color: white; + font-size: var(--font-xl); + font-weight: 700; +} + +.worker-card.inactive .worker-avatar { + background: linear-gradient(135deg, var(--color-secondary), var(--color-secondary-dark)); + opacity: 0.7; +} + +.worker-details { + flex: 1; + min-width: 0; +} + +/* 비활성화 오버레이 및 라벨 */ +.inactive-overlay { + position: absolute; + top: var(--space-md); + right: var(--space-md); + z-index: 10; +} + +.inactive-badge { + display: inline-flex; + align-items: center; + gap: var(--space-xs); + padding: 0.375rem 0.75rem; + background: rgba(239, 68, 68, 0.9); + color: white; + border-radius: var(--radius-md); + font-size: var(--font-xs); + font-weight: 700; + box-shadow: var(--shadow-md); +} + +.inactive-label { + color: var(--color-error); + font-size: var(--font-sm); + font-weight: 600; + margin-left: var(--space-xs); +} + +.inactive-notice { + color: var(--color-warning) !important; + font-weight: 600 !important; +} + +/* ============================================ + 9. 코드 관리 탭 + ============================================ */ +.code-tabs { + display: flex; + gap: var(--space-sm); + margin-bottom: var(--space-xl); + padding: var(--space-sm); + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: var(--radius-lg); + overflow-x: auto; +} + +.tab-btn { + display: flex; + align-items: center; + gap: var(--space-sm); + padding: 0.75rem 1.25rem; + font-size: var(--font-sm); + font-weight: 600; + color: var(--text-secondary); + background: transparent; + border: none; + border-radius: var(--radius-md); + cursor: pointer; + transition: all 0.2s ease; + white-space: nowrap; +} + +.tab-btn:hover { + background: var(--bg-hover); + color: var(--text-primary); +} + +.tab-btn.active { + color: var(--color-primary); + background: var(--color-primary-light); + border-bottom: 3px solid var(--color-primary); + font-weight: 600; +} + +.tab-icon { + font-size: var(--font-base); +} + +/* ============================================ + 10. 테이블 스타일 + ============================================ */ +.table-container { + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: var(--radius-lg); + overflow: hidden; +} + +table { + width: 100%; + border-collapse: collapse; +} + +thead { + background: var(--bg-body); + border-bottom: 2px solid var(--border-color); +} + +th { + padding: 1rem; + font-size: var(--font-sm); + font-weight: 700; + color: var(--text-secondary); + text-align: left; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +td { + padding: 1rem; + font-size: var(--font-sm); + color: var(--text-primary); + border-bottom: 1px solid var(--border-color); +} + +tr:hover { + background: var(--bg-hover); +} + +tr:last-child td { + border-bottom: none; +} + +/* 테이블 내 버튼 스타일 */ +.data-table .btn-icon { + padding: 0.375rem 0.5rem; + background: transparent; + border: none; + cursor: pointer; + font-size: 1rem; + transition: all 0.2s ease; + border-radius: var(--radius-sm); +} + +.data-table .btn-icon:hover { + background: var(--bg-hover); + transform: scale(1.1); +} + +/* ============================================ + 11. 모달 + ============================================ */ +.modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; + backdrop-filter: blur(4px); +} + +.modal-container { + background: var(--bg-card); + border-radius: var(--radius-xl); + width: 90%; + max-width: 600px; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); +} + +.modal-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: var(--space-lg); + border-bottom: 1px solid var(--border-color); +} + +.modal-title { + font-size: var(--font-xl); + font-weight: 700; + color: var(--text-primary); + margin: 0; +} + +.modal-close { + padding: 0.5rem; + background: none; + border: none; + font-size: var(--font-xl); + color: var(--text-secondary); + cursor: pointer; + border-radius: var(--radius-md); + transition: all 0.2s ease; +} + +.modal-close:hover { + background: var(--bg-hover); + color: var(--text-primary); +} + +.modal-body { + padding: var(--space-lg); +} + +.modal-footer { + display: flex; + gap: var(--space-md); + justify-content: flex-end; + padding: var(--space-lg); + border-top: 1px solid var(--border-color); +} + +/* ============================================ + 12. 폼 요소 + ============================================ */ +.form-group { + margin-bottom: var(--space-lg); +} + +.form-label { + display: block; + margin-bottom: var(--space-sm); + font-size: var(--font-sm); + font-weight: 600; + color: var(--text-primary); +} + +.form-label.required::after { + content: '*'; + color: var(--color-error); + margin-left: var(--space-xs); +} + +.form-input, +.form-select, +.form-textarea { + width: 100%; + padding: 0.625rem 1rem; + font-size: var(--font-sm); + border: 1px solid var(--border-color); + border-radius: var(--radius-md); + background: white; + transition: all 0.2s ease; + box-sizing: border-box; +} + +.form-input:focus, +.form-select:focus, +.form-textarea:focus { + outline: none; + border-color: var(--border-focus); + box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); +} + +.form-textarea { + resize: vertical; + min-height: 100px; +} + +.form-help { + margin-top: var(--space-xs); + font-size: var(--font-xs); + color: var(--text-muted); +} + +/* ============================================ + 13. 반응형 디자인 + ============================================ */ + +/* 대형 데스크탑 (1400px 이상) */ +@media (min-width: 1400px) { + .projects-grid { + grid-template-columns: repeat(3, 1fr); + } +} + +/* 일반 데스크탑 (1200px ~ 1399px) */ +@media (max-width: 1399px) and (min-width: 1200px) { + .projects-grid { + grid-template-columns: repeat(3, 1fr); + } +} + +/* 중간 화면 (1024px ~ 1199px) - 2열 */ +@media (max-width: 1199px) and (min-width: 1024px) { + .projects-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +/* 태블릿 (768px ~ 1023px) */ +@media (max-width: 1023px) and (min-width: 768px) { + .sidebar { + width: 200px; + min-width: 200px; + } + + .main-content { + padding: var(--space-md); + } + + .page-header { + flex-direction: column; + align-items: flex-start; + gap: var(--space-md); + } + + .page-actions { + width: 100%; + justify-content: flex-start; + } + + .projects-grid { + grid-template-columns: repeat(2, 1fr); + } + + .search-bar { + flex-direction: column; + } + + .project-stats { + flex-wrap: wrap; + gap: var(--space-sm); + } + + .stat-item { + font-size: var(--font-xs); + padding: 0.375rem 0.625rem; + } +} + +/* 모바일 (767px 이하) */ +@media (max-width: 767px) { + .page-container { + flex-direction: column; + } + + .sidebar { + display: none; /* 모바일에서는 사이드바 숨김 */ + } + + .main-content { + padding: var(--space-sm); + } + + .page-title { + font-size: var(--font-xl); + flex-direction: column; + align-items: flex-start; + gap: var(--space-xs); + } + + .title-icon { + font-size: var(--font-xl); + } + + .page-actions { + width: 100%; + flex-direction: column; + } + + .btn { + width: 100%; + justify-content: center; + } + + .search-section, + .projects-section { + padding: var(--space-md); + } + + .search-bar { + flex-direction: column; + } + + .projects-grid { + grid-template-columns: 1fr; + gap: var(--space-md); + } + + .project-card { + min-height: auto; + } + + .project-stats { + flex-direction: column; + width: 100%; + } + + .stat-item { + width: 100%; + justify-content: space-between; + } + + .code-tabs { + flex-direction: column; + } + + .tab-btn { + justify-content: center; + } + + .meta-row { + grid-template-columns: 80px 1fr; + gap: var(--space-xs); + } + + .meta-label { + font-size: 0.625rem; + } + + .modal-container { + width: 95%; + margin: var(--space-sm); + max-height: 95vh; + } +} + +/* 초소형 모바일 (480px 이하) */ +@media (max-width: 480px) { + .work-report-main { + padding: var(--space-xs); + } + + .page-title { + font-size: var(--font-lg); + } + + .page-description { + font-size: var(--font-xs); + } + + .search-section, + .projects-section { + padding: var(--space-sm); + } + + .project-card { + padding: var(--space-md); + } + + .btn { + padding: 0.5rem 0.875rem; + font-size: var(--font-xs); + } +} + +/* ============================================ + 14. Empty State + ============================================ */ +.empty-state { + text-align: center; + padding: var(--space-2xl) var(--space-lg); + color: var(--text-secondary); +} + +.empty-icon { + font-size: 4rem; + margin-bottom: var(--space-lg); + opacity: 0.5; +} + +.empty-state h3 { + font-size: var(--font-xl); + font-weight: 600; + color: var(--text-primary); + margin: 0 0 var(--space-sm) 0; +} + +.empty-state p { + font-size: var(--font-sm); + color: var(--text-secondary); + margin-bottom: var(--space-lg); +} + +/* ============================================ + 15. 로딩 및 스켈레톤 + ============================================ */ +.skeleton { + background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); + background-size: 200% 100%; + animation: skeleton-loading 1.5s ease-in-out infinite; + border-radius: var(--radius-md); +} + +@keyframes skeleton-loading { + 0% { + background-position: 200% 0; + } + 100% { + background-position: -200% 0; + } +} + +.skeleton-card { + height: 280px; +} + +.skeleton-text { + height: 1rem; + margin-bottom: var(--space-sm); +} + +/* ============================================ + 16. 유틸리티 클래스 + ============================================ */ +.text-center { + text-align: center; +} + +.text-muted { + color: var(--text-muted); +} + +.text-success { + color: var(--color-success); +} + +.text-error { + color: var(--color-error); +} + +.mt-0 { margin-top: 0; } +.mt-1 { margin-top: var(--space-sm); } +.mt-2 { margin-top: var(--space-md); } +.mt-3 { margin-top: var(--space-lg); } + +.mb-0 { margin-bottom: 0; } +.mb-1 { margin-bottom: var(--space-sm); } +.mb-2 { margin-bottom: var(--space-md); } +.mb-3 { margin-bottom: var(--space-lg); } + +.hidden { + display: none !important; +} + +.loading { + opacity: 0.6; + pointer-events: none; +} + +/* 코드 상세 정보 */ +.code-detail { + display: flex; + flex-direction: column; + gap: var(--space-xs); +} + +.code-name { + font-size: var(--font-base); + font-weight: 600; + color: var(--text-primary); +} + +.code-description { + font-size: var(--font-sm); + color: var(--text-secondary); + line-height: 1.5; +} + +/* ============================================ + 17. 코드 관리 페이지 전용 스타일 + ============================================ */ + +/* 코드 탭 스타일 */ +.code-tabs { + display: flex; + gap: var(--space-sm); + margin-bottom: var(--space-xl); + border-bottom: 2px solid var(--border-color); + padding-bottom: 0; +} + +.tab-btn { + display: flex; + align-items: center; + gap: var(--space-sm); + padding: var(--space-md) var(--space-lg); + background: transparent; + border: none; + border-bottom: 3px solid transparent; + color: var(--text-secondary); + font-size: var(--font-base); + font-weight: 600; + cursor: pointer; + transition: all 0.2s ease; + position: relative; + margin-bottom: -2px; +} + +.tab-btn:hover { + color: var(--color-primary); + background: var(--color-primary-light); +} + +.tab-btn.active { + color: var(--color-primary); + border-bottom-color: var(--color-primary); +} + +.tab-icon { + font-size: var(--font-lg); +} + +/* 탭 콘텐츠 */ +.code-tab-content { + display: none; +} + +.code-tab-content.active { + display: block; + animation: fadeIn 0.3s ease; +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* 코드 섹션 */ +.code-section { + margin-bottom: var(--space-xl); +} + +/* 코드 통계 */ +.code-stats { + display: flex; + gap: var(--space-sm); + flex-wrap: wrap; + margin-bottom: var(--space-lg); +} + +.code-stats .stat-item { + padding: 0.5rem 1rem; + font-size: var(--font-sm); +} + +/* 코드 그리드 */ +.code-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: var(--space-lg); + width: 100%; +} + +/* 코드 카드 */ +.code-card { + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: var(--radius-lg); + padding: var(--space-lg); + transition: all 0.2s ease; + cursor: pointer; + position: relative; + display: flex; + flex-direction: column; + min-height: 200px; +} + +.code-card:hover { + border-color: var(--color-primary); + box-shadow: var(--shadow-lg); + transform: translateY(-2px); +} + +/* 코드 카드 헤더 */ +.code-header { + display: flex; + align-items: flex-start; + gap: var(--space-md); + margin-bottom: var(--space-md); +} + +.code-icon { + font-size: 2rem; + flex-shrink: 0; + width: 48px; + height: 48px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-body); + border-radius: var(--radius-md); +} + +.code-info { + flex: 1; + min-width: 0; +} + +.code-name { + font-size: var(--font-lg); + font-weight: 700; + color: var(--text-primary); + margin: 0 0 var(--space-xs) 0; + word-break: break-word; +} + +.code-label { + display: inline-block; + padding: 0.25rem 0.75rem; + background: var(--bg-body); + border: 1px solid var(--border-color); + border-radius: var(--radius-sm); + font-size: var(--font-xs); + font-weight: 600; + color: var(--text-secondary); +} + +.code-actions { + display: flex; + gap: var(--space-xs); + flex-shrink: 0; +} + +.btn-small { + padding: 0.375rem 0.625rem; + font-size: var(--font-sm); + background: white; + border: 1px solid var(--border-color); + border-radius: var(--radius-sm); + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + justify-content: center; +} + +.btn-small:hover { + transform: scale(1.1); +} + +.btn-small.btn-edit:hover { + background: var(--color-primary); + border-color: var(--color-primary); + color: white; +} + +.btn-small.btn-delete:hover { + background: var(--color-error); + border-color: var(--color-error); + color: white; +} + +/* 코드 설명 */ +.code-description { + font-size: var(--font-sm); + color: var(--text-secondary); + line-height: 1.6; + margin-bottom: var(--space-md); + flex: 1; +} + +/* 해결 가이드 */ +.solution-guide { + background: #fef3c7; + border-left: 3px solid #f59e0b; + padding: var(--space-md); + border-radius: var(--radius-sm); + font-size: var(--font-sm); + margin-bottom: var(--space-md); + line-height: 1.6; +} + +.solution-guide strong { + color: #92400e; + display: block; + margin-bottom: var(--space-xs); +} + +/* 코드 메타 정보 */ +.code-meta { + display: flex; + flex-wrap: wrap; + gap: var(--space-md); + padding-top: var(--space-md); + border-top: 1px solid var(--border-color); + margin-top: auto; +} + +.code-date { + font-size: var(--font-xs); + color: var(--text-muted); +} + +/* 상태별 카드 스타일 */ +.normal-status { + border-left: 4px solid #10b981; +} + +.error-status { + border-left: 4px solid #ef4444; +} + +/* 심각도별 카드 스타일 */ +.severity-low { + border-left: 4px solid #10b981; +} + +.severity-low .code-icon { + background: #d1fae5; +} + +.severity-medium { + border-left: 4px solid #f59e0b; +} + +.severity-medium .code-icon { + background: #fef3c7; +} + +.severity-high { + border-left: 4px solid #f97316; +} + +.severity-high .code-icon { + background: #ffedd5; +} + +.severity-critical { + border-left: 4px solid #ef4444; +} + +.severity-critical .code-icon { + background: #fee2e2; +} + +/* 작업 유형 카드 */ +.work-type-card { + border-left: 4px solid #3b82f6; +} + +.work-type-card .code-icon { + background: #dbeafe; +} + +/* 반응형 - 코드 그리드 */ +@media (max-width: 1199px) { + .code-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (max-width: 767px) { + .code-grid { + grid-template-columns: 1fr; + } + + .code-tabs { + overflow-x: auto; + flex-wrap: nowrap; + } + + .tab-btn { + white-space: nowrap; + padding: var(--space-sm) var(--space-md); + font-size: var(--font-sm); + } +} diff --git a/deploy/tkfb-package/web-ui/css/admin-settings.css b/deploy/tkfb-package/web-ui/css/admin-settings.css new file mode 100644 index 0000000..8013870 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/admin-settings.css @@ -0,0 +1,1320 @@ +/* admin-settings.css */ + +/* 기본 레이아웃 */ +.work-report-container { + min-height: 100vh; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; +} + +.work-report-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + text-align: center; + padding: 3rem 2rem; + margin-bottom: 0; +} + +.work-report-header h1 { + font-size: 2.5rem; + font-weight: 700; + margin: 0 0 1rem 0; + text-shadow: 0 2px 4px rgba(0,0,0,0.3); +} + +.work-report-header .subtitle { + font-size: 1.1rem; + opacity: 0.9; + margin: 0; + font-weight: 300; +} + +.work-report-main { + background: #f8f9fa; + min-height: calc(100vh - 200px); + padding-top: 2rem; +} + +.back-button { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.75rem 1.5rem; + background: rgba(255, 255, 255, 0.9); + color: #495057; + text-decoration: none; + border-radius: 8px; + font-weight: 500; + margin: 0 2rem 2rem 2rem; + transition: all 0.3s ease; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); +} + +.back-button:hover { + background: white; + color: #007bff; + transform: translateY(-1px); + box-shadow: 0 4px 8px rgba(0,0,0,0.15); +} + +.dashboard-main { + padding: 0 2rem 2rem 2rem; + max-width: 1400px; + margin: 0 auto; +} + +.page-header { + margin-bottom: 2rem; +} + +.page-title-section { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.page-title { + display: flex; + align-items: center; + gap: 0.75rem; + font-size: 2rem; + font-weight: 700; + color: #1a1a1a; + margin: 0; +} + +.title-icon { + font-size: 2.25rem; +} + +.page-description { + font-size: 1rem; + color: #666; + margin: 0; +} + +/* 설정 섹션 */ +.settings-section { + background: white; + border-radius: 12px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); + overflow: hidden; +} + +.section-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1.5rem 2rem; + background: #f8f9fa; + border-bottom: 1px solid #e9ecef; +} + +.section-title { + display: flex; + align-items: center; + gap: 0.75rem; + font-size: 1.25rem; + font-weight: 600; + color: #1a1a1a; + margin: 0; +} + +.section-icon { + font-size: 1.5rem; +} + +/* 사용자 컨테이너 */ +.users-container { + padding: 2rem; +} + +.users-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; + gap: 1rem; +} + +/* 검색 박스 */ +.search-box { + position: relative; + flex: 1; + max-width: 300px; +} + +.search-input { + width: 100%; + padding: 0.75rem 1rem 0.75rem 2.5rem; + border: 2px solid #e9ecef; + border-radius: 8px; + font-size: 0.9rem; + transition: all 0.2s ease; +} + +.search-input:focus { + outline: none; + border-color: #007bff; + box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1); +} + +.search-icon { + position: absolute; + left: 0.75rem; + top: 50%; + transform: translateY(-50%); + font-size: 1rem; + color: #666; +} + +/* 필터 버튼 */ +.filter-buttons { + display: flex; + gap: 0.5rem; +} + +.filter-btn { + padding: 0.5rem 1rem; + border: 2px solid #e9ecef; + background: white; + border-radius: 6px; + font-size: 0.85rem; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; +} + +.filter-btn:hover { + border-color: #007bff; + color: #007bff; +} + +.filter-btn.active { + background: #007bff; + border-color: #007bff; + color: white; +} + +/* 사용자 테이블 */ +.users-table-container { + border: 1px solid #e9ecef; + border-radius: 8px; + overflow: hidden; +} + +.users-table { + width: 100%; + border-collapse: collapse; + font-size: 0.9rem; +} + +.users-table th { + background: #f8f9fa; + padding: 1rem; + text-align: left; + font-weight: 600; + color: #495057; + border-bottom: 2px solid #e9ecef; +} + +.users-table td { + padding: 1rem; + border-bottom: 1px solid #e9ecef; + vertical-align: middle; +} + +.users-table tbody tr:hover { + background: #f8f9fa; +} + +/* 사용자 정보 */ +.user-info { + display: flex; + align-items: center; + gap: 0.75rem; +} + +.user-avatar-small { + width: 36px; + height: 36px; + background: #007bff; + color: white; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 600; + font-size: 0.9rem; +} + +.user-details h4 { + margin: 0; + font-size: 0.9rem; + font-weight: 600; + color: #1a1a1a; +} + +.user-details p { + margin: 0; + font-size: 0.8rem; + color: #666; +} + +/* 역할 배지 */ +.role-badge { + display: inline-flex; + align-items: center; + gap: 0.25rem; + padding: 0.25rem 0.75rem; + border-radius: 12px; + font-size: 0.75rem; + font-weight: 600; +} + +.role-badge.admin { + background: #dc3545; + color: white; +} + +.role-badge.leader { + background: #fd7e14; + color: white; +} + +.role-badge.user { + background: #28a745; + color: white; +} + +/* 상태 배지 */ +.status-badge { + display: inline-flex; + align-items: center; + gap: 0.25rem; + padding: 0.25rem 0.75rem; + border-radius: 12px; + font-size: 0.75rem; + font-weight: 600; +} + +.status-badge.active { + background: #d4edda; + color: #155724; +} + +.status-badge.inactive { + background: #f8d7da; + color: #721c24; +} + +/* 액션 버튼 */ +.action-buttons { + display: flex; + gap: 0.5rem; +} + +.action-btn { + padding: 0.4rem 0.8rem; + border: none; + border-radius: 4px; + font-size: 0.8rem; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; +} + +.action-btn.edit { + background: #007bff; + color: white; +} + +.action-btn.edit:hover { + background: #0056b3; +} + +.action-btn.delete { + background: #dc3545; + color: white; +} + +.action-btn.delete:hover { + background: #c82333; +} + +.action-btn.toggle { + background: #6c757d; + color: white; +} + +.action-btn.toggle:hover { + background: #545b62; +} + +/* 빈 상태 */ +.empty-state { + text-align: center; + padding: 3rem 2rem; + color: #666; +} + +.empty-icon { + font-size: 4rem; + margin-bottom: 1rem; +} + +.empty-state h3 { + font-size: 1.25rem; + font-weight: 600; + margin-bottom: 0.5rem; + color: #1a1a1a; +} + +.empty-state p { + font-size: 0.9rem; + margin: 0; +} + +/* 모달 스타일 */ +.modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; +} + +.modal-container { + background: white; + border-radius: 12px; + box-shadow: 0 20px 25px rgba(0, 0, 0, 0.1); + width: 90%; + max-width: 500px; + max-height: 90vh; + overflow-y: auto; +} + +.modal-container.small { + max-width: 400px; +} + +.modal-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1.5rem 2rem; + border-bottom: 1px solid #e9ecef; +} + +.modal-header h2 { + margin: 0; + font-size: 1.25rem; + font-weight: 600; + color: #1a1a1a; +} + +.modal-close-btn { + background: none; + border: none; + font-size: 1.5rem; + color: #666; + cursor: pointer; + padding: 0; + width: 32px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; + transition: all 0.2s ease; +} + +.modal-close-btn:hover { + background: #f8f9fa; + color: #1a1a1a; +} + +.modal-body { + padding: 2rem; +} + +.modal-footer { + display: flex; + justify-content: flex-end; + gap: 1rem; + padding: 1.5rem 2rem; + border-top: 1px solid #e9ecef; + background: #f8f9fa; +} + +/* 폼 스타일 */ +.form-group { + margin-bottom: 1.5rem; +} + +.form-label { + display: block; + margin-bottom: 0.5rem; + font-weight: 600; + color: #1a1a1a; + font-size: 0.9rem; +} + +.form-control { + width: 100%; + padding: 0.75rem; + border: 2px solid #e9ecef; + border-radius: 6px; + font-size: 0.9rem; + transition: all 0.2s ease; +} + +.form-control:focus { + outline: none; + border-color: #007bff; + box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1); +} + +.form-help { + display: block; + margin-top: 0.25rem; + font-size: 0.8rem; + color: #666; +} + +/* 삭제 경고 */ +.delete-warning { + text-align: center; + padding: 1rem 0; +} + +.warning-icon { + font-size: 3rem; + margin-bottom: 1rem; +} + +.delete-warning p { + margin-bottom: 0.5rem; + font-size: 1rem; + color: #1a1a1a; +} + +.warning-text { + font-size: 0.9rem; + color: #dc3545; + font-weight: 500; +} + +/* 버튼 스타일 */ +.btn { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.75rem 1.5rem; + border: none; + border-radius: 6px; + font-size: 0.9rem; + font-weight: 500; + text-decoration: none; + cursor: pointer; + transition: all 0.2s ease; +} + +.btn-primary { + background: #007bff; + color: white; +} + +.btn-primary:hover { + background: #0056b3; + transform: translateY(-1px); +} + +.btn-secondary { + background: #6c757d; + color: white; +} + +.btn-secondary:hover { + background: #545b62; +} + +.btn-danger { + background: #dc3545; + color: white; +} + +.btn-danger:hover { + background: #c82333; +} + +.btn-icon { + font-size: 1rem; +} + +/* 토스트 알림 */ +.toast-container { + position: fixed; + top: 20px; + right: 20px; + z-index: 1100; +} + +.toast { + background: white; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + padding: 1rem 1.5rem; + margin-bottom: 0.5rem; + display: flex; + align-items: center; + gap: 0.75rem; + min-width: 300px; + animation: slideIn 0.3s ease; +} + +.toast.success { + border-left: 4px solid #28a745; +} + +.toast.error { + border-left: 4px solid #dc3545; +} + +.toast.warning { + border-left: 4px solid #ffc107; +} + +.toast-icon { + font-size: 1.25rem; +} + +.toast-message { + flex: 1; + font-size: 0.9rem; + color: #1a1a1a; +} + +.toast-close { + background: none; + border: none; + font-size: 1.25rem; + color: #666; + cursor: pointer; + padding: 0; +} + +@keyframes slideIn { + from { + transform: translateX(100%); + opacity: 0; + } + to { + transform: translateX(0); + opacity: 1; + } +} + +/* 반응형 */ +@media (max-width: 1024px) { + .dashboard-main { + padding: 1.5rem; + } + + .users-header { + flex-direction: column; + align-items: stretch; + gap: 1rem; + } + + .search-box { + max-width: none; + } +} + +@media (max-width: 768px) { + .dashboard-main { + padding: 1rem; + } + + .section-header { + flex-direction: column; + align-items: stretch; + gap: 1rem; + } + + .users-table-container { + overflow-x: auto; + } + + .users-table { + min-width: 600px; + } + + .modal-container { + width: 95%; + margin: 1rem; + } + + .modal-body { + padding: 1.5rem; + } +} + +@media (max-width: 480px) { + .filter-buttons { + flex-wrap: wrap; + } + + .action-buttons { + flex-direction: column; + } +} + +/* 페이지 권한 관리 스타일 */ +.page-access-list { + max-height: 300px; + overflow-y: auto; + border: 1px solid var(--border-light); + border-radius: var(--radius-md); + padding: var(--space-3); + background: var(--bg-secondary); +} + +.page-access-category { + margin-bottom: var(--space-4); +} + +.page-access-category:last-child { + margin-bottom: 0; +} + +.page-access-category-title { + font-size: var(--text-sm); + font-weight: var(--font-semibold); + color: var(--text-secondary); + margin-bottom: var(--space-2); + padding-bottom: var(--space-2); + border-bottom: 1px solid var(--border-light); + text-transform: uppercase; +} + +.page-access-item { + display: flex; + align-items: center; + padding: var(--space-2); + border-radius: var(--radius-sm); + transition: var(--transition-normal); +} + +.page-access-item:hover { + background: var(--bg-hover); +} + +.page-access-item label { + display: flex; + align-items: center; + cursor: pointer; + flex: 1; + margin: 0; +} + +.page-access-item input[type="checkbox"] { + margin-right: var(--space-2); + width: 18px; + height: 18px; + cursor: pointer; +} + +.page-access-item .page-name { + font-size: var(--text-sm); + color: var(--text-primary); + font-weight: var(--font-medium); +} + +/* 권한 관리 버튼 스타일 */ +.action-btn.permissions { + background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%); + color: white; +} + +.action-btn.permissions:hover { + background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(139, 92, 246, 0.3); +} + +/* 비밀번호 초기화 버튼 스타일 */ +.action-btn.reset-pw { + background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); + color: white; +} + +.action-btn.reset-pw:hover { + background: linear-gradient(135deg, #d97706 0%, #b45309 100%); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3); +} + +/* 페이지 권한 모달 사용자 정보 */ +.page-access-user-info { + display: flex; + align-items: center; + gap: var(--space-3); + padding: var(--space-4); + background: var(--bg-secondary); + border-radius: var(--radius-lg); + margin-bottom: var(--space-4); +} + +.page-access-user-info h3 { + margin: 0; + font-size: var(--text-lg); + font-weight: var(--font-semibold); + color: var(--text-primary); +} + +.page-access-user-info p { + margin: 0; + font-size: var(--text-sm); + color: var(--text-secondary); +} + +/* 폴더 트리 스타일 */ +.folder-tree { + padding: 0; +} + +.folder-group { + margin-bottom: 0.5rem; + border: 1px solid #e9ecef; + border-radius: 8px; + overflow: hidden; +} + +.folder-header { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.75rem 1rem; + background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); + cursor: pointer; + transition: all 0.2s ease; + user-select: none; +} + +.folder-header:hover { + background: linear-gradient(135deg, #e9ecef 0%, #dee2e6 100%); +} + +.folder-icon { + font-size: 1.25rem; +} + +.folder-name { + font-weight: 600; + color: #1a1a1a; + flex: 1; +} + +.folder-count { + font-size: 0.75rem; + color: #6c757d; + background: white; + padding: 0.125rem 0.5rem; + border-radius: 10px; +} + +.folder-toggle { + font-size: 0.75rem; + color: #6c757d; + transition: transform 0.2s ease; +} + +.folder-content { + padding: 0.5rem; + background: white; +} + +.page-item { + padding: 0.5rem 0.75rem; + margin-left: 1rem; + border-radius: 6px; + transition: all 0.2s ease; +} + +.page-item:hover { + background: #f8f9fa; +} + +.page-label { + display: flex; + align-items: center; + gap: 0.5rem; + cursor: pointer; + margin: 0; + width: 100%; +} + +.page-label input[type="checkbox"] { + width: 18px; + height: 18px; + cursor: pointer; + accent-color: #007bff; +} + +.page-label input[type="checkbox"]:disabled { + cursor: not-allowed; + opacity: 0.6; +} + +.file-icon { + font-size: 1rem; + opacity: 0.7; +} + +.page-label .page-name { + flex: 1; + font-size: 0.875rem; + color: #495057; +} + +.always-access-badge { + font-size: 0.65rem; + background: linear-gradient(135deg, #28a745 0%, #20c997 100%); + color: white; + padding: 0.125rem 0.5rem; + border-radius: 10px; + font-weight: 500; +} + +/* 활성화/비활성화 버튼 스타일 */ +.action-btn.activate { + background: linear-gradient(135deg, #28a745 0%, #20c997 100%); + color: white; +} + +.action-btn.activate:hover { + background: linear-gradient(135deg, #20c997 0%, #17a2b8 100%); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(40, 167, 69, 0.3); +} + +.action-btn.deactivate { + background: linear-gradient(135deg, #6c757d 0%, #495057 100%); + color: white; +} + +.action-btn.deactivate:hover { + background: linear-gradient(135deg, #495057 0%, #343a40 100%); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(108, 117, 125, 0.3); +} + +.action-btn.danger { + background: linear-gradient(135deg, #dc3545 0%, #c82333 100%); + color: white; +} + +.action-btn.danger:hover { + background: linear-gradient(135deg, #c82333 0%, #a71d2a 100%); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(220, 53, 69, 0.3); +} + +/* 작업자 연결 스타일 */ +.worker-link-container { + display: flex; + align-items: center; + gap: 1rem; + padding: 0.75rem; + background: #f8f9fa; + border-radius: 8px; + border: 1px solid #e9ecef; +} + +.linked-worker-info { + flex: 1; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.linked-worker-info .no-worker { + color: #6c757d; + font-style: italic; +} + +.linked-worker-info .worker-badge { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.375rem 0.75rem; + background: linear-gradient(135deg, #28a745 0%, #20c997 100%); + color: white; + border-radius: 20px; + font-size: 0.875rem; + font-weight: 500; +} + +.linked-worker-info .worker-badge .dept-name { + opacity: 0.9; + font-size: 0.75rem; +} + +/* 작업자 선택 모달 */ +.worker-select-layout { + display: grid; + grid-template-columns: 200px 1fr; + gap: 1rem; + min-height: 400px; +} + +.department-list-panel, +.worker-list-panel { + border: 1px solid #e9ecef; + border-radius: 8px; + overflow: hidden; +} + +.panel-title { + margin: 0; + padding: 0.75rem 1rem; + background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); + font-size: 0.875rem; + font-weight: 600; + color: #495057; + border-bottom: 1px solid #e9ecef; +} + +.department-list { + max-height: 350px; + overflow-y: auto; +} + +.department-item { + padding: 0.75rem 1rem; + cursor: pointer; + border-bottom: 1px solid #f0f0f0; + transition: all 0.2s ease; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.department-item:hover { + background: #f8f9fa; +} + +.department-item.active { + background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); + color: white; +} + +.department-item .dept-icon { + font-size: 1rem; +} + +.department-item .dept-name { + flex: 1; + font-size: 0.875rem; +} + +.department-item .dept-count { + font-size: 0.75rem; + background: rgba(0,0,0,0.1); + padding: 0.125rem 0.5rem; + border-radius: 10px; +} + +.department-item.active .dept-count { + background: rgba(255,255,255,0.2); +} + +.worker-list { + max-height: 350px; + overflow-y: auto; + padding: 0.5rem; +} + +.worker-list .empty-message { + text-align: center; + padding: 2rem; + color: #6c757d; + font-style: italic; +} + +.worker-select-item { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.75rem; + border-radius: 8px; + cursor: pointer; + transition: all 0.2s ease; + border: 2px solid transparent; +} + +.worker-select-item:hover { + background: #f8f9fa; + border-color: #e9ecef; +} + +.worker-select-item.selected { + background: #e7f3ff; + border-color: #007bff; +} + +.worker-select-item .worker-avatar { + width: 40px; + height: 40px; + background: linear-gradient(135deg, #007bff 0%, #6610f2 100%); + color: white; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 600; + font-size: 1rem; +} + +.worker-select-item .worker-info { + flex: 1; +} + +.worker-select-item .worker-name { + font-weight: 600; + color: #1a1a1a; + font-size: 0.9rem; +} + +.worker-select-item .worker-role { + font-size: 0.75rem; + color: #6c757d; +} + +.worker-select-item .select-indicator { + width: 24px; + height: 24px; + border: 2px solid #dee2e6; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; +} + +.worker-select-item.selected .select-indicator { + background: #007bff; + border-color: #007bff; + color: white; +} + +.worker-select-item .already-linked { + font-size: 0.7rem; + background: #ffc107; + color: #000; + padding: 0.125rem 0.5rem; + border-radius: 10px; +} + +/* 버튼 크기 조정 */ +.btn-sm { + padding: 0.375rem 0.75rem; + font-size: 0.8rem; +} + +/* ======================================== + 알림 수신자 설정 섹션 + ======================================== */ +#notificationRecipientsSection { + margin-top: 2rem; +} + +#notificationRecipientsSection .section-header { + flex-direction: column; + align-items: flex-start; + gap: 0.5rem; +} + +.section-description { + font-size: 0.875rem; + color: #6c757d; + margin: 0; +} + +.notification-recipients-container { + padding: 1.5rem 2rem; +} + +.notification-type-cards { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 1rem; +} + +.notification-type-card { + background: #f8f9fa; + border: 2px solid #e9ecef; + border-radius: 12px; + padding: 1.25rem; + transition: all 0.2s ease; +} + +.notification-type-card:hover { + border-color: #007bff; + box-shadow: 0 4px 12px rgba(0, 123, 255, 0.1); +} + +.notification-type-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; +} + +.notification-type-title { + display: flex; + align-items: center; + gap: 0.5rem; + font-weight: 600; + font-size: 1rem; + color: #1a1a1a; +} + +.notification-type-icon { + font-size: 1.25rem; +} + +.notification-type-card.repair .notification-type-icon { color: #fd7e14; } +.notification-type-card.safety .notification-type-icon { color: #dc3545; } +.notification-type-card.nonconformity .notification-type-icon { color: #6f42c1; } +.notification-type-card.equipment .notification-type-icon { color: #17a2b8; } +.notification-type-card.maintenance .notification-type-icon { color: #28a745; } +.notification-type-card.system .notification-type-icon { color: #6c757d; } + +.edit-recipients-btn { + padding: 0.375rem 0.75rem; + background: white; + border: 1px solid #dee2e6; + border-radius: 6px; + font-size: 0.75rem; + color: #495057; + cursor: pointer; + transition: all 0.2s ease; +} + +.edit-recipients-btn:hover { + background: #007bff; + border-color: #007bff; + color: white; +} + +.recipient-list { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + min-height: 32px; +} + +.recipient-tag { + display: inline-flex; + align-items: center; + gap: 0.25rem; + padding: 0.25rem 0.625rem; + background: white; + border: 1px solid #dee2e6; + border-radius: 16px; + font-size: 0.75rem; + color: #495057; +} + +.recipient-tag .tag-icon { + font-size: 0.875rem; +} + +.no-recipients { + font-size: 0.8rem; + color: #adb5bd; + font-style: italic; +} + +/* 알림 수신자 편집 모달 */ +.modal-description { + font-size: 0.875rem; + color: #6c757d; + margin-bottom: 1rem; +} + +.recipient-search-box { + margin-bottom: 1rem; +} + +.recipient-user-list { + max-height: 350px; + overflow-y: auto; + border: 1px solid #e9ecef; + border-radius: 8px; + background: #f8f9fa; +} + +.recipient-user-item { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.75rem 1rem; + border-bottom: 1px solid #e9ecef; + cursor: pointer; + transition: all 0.15s ease; +} + +.recipient-user-item:last-child { + border-bottom: none; +} + +.recipient-user-item:hover { + background: #e9ecef; +} + +.recipient-user-item.selected { + background: #e7f3ff; +} + +.recipient-user-item input[type="checkbox"] { + width: 18px; + height: 18px; + cursor: pointer; + accent-color: #007bff; +} + +.recipient-user-item .user-avatar-small { + width: 32px; + height: 32px; + font-size: 0.8rem; +} + +.recipient-user-info { + flex: 1; +} + +.recipient-user-name { + font-weight: 500; + font-size: 0.875rem; + color: #1a1a1a; +} + +.recipient-user-role { + font-size: 0.75rem; + color: #6c757d; +} + +@media (max-width: 768px) { + .notification-type-cards { + grid-template-columns: 1fr; + } +} diff --git a/deploy/tkfb-package/web-ui/css/admin.css b/deploy/tkfb-package/web-ui/css/admin.css new file mode 100644 index 0000000..145f0a6 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/admin.css @@ -0,0 +1,50 @@ +body { + font-family: 'Malgun Gothic', sans-serif; + margin: 0; + background: #f0f2f5; +} +.main-layout { + display: flex; +} +#sidebar-container { + width: 250px; + background: #1a237e; + color: white; + min-height: 100vh; +} +#content-container { + flex: 1; + padding: 30px; +} +h1, h2 { + color: #1976d2; +} +a { + color: #1976d2; + text-decoration: none; +} + +/* Admin 권한 배지 스타일 */ +.admin-badge { + background: linear-gradient(135deg, #ff6b35 0%, #f7931e 100%); + color: white; + font-size: 0.7rem; + font-weight: bold; + padding: 2px 6px; + border-radius: 10px; + margin-left: 8px; + text-transform: uppercase; + letter-spacing: 0.5px; + box-shadow: 0 2px 4px rgba(255,107,53,0.3); + display: inline-block; + vertical-align: middle; +} + +.admin-only-link { + position: relative; +} + +.admin-only-link:hover .admin-badge { + background: linear-gradient(135deg, #ff5722 0%, #ff9800 100%); + box-shadow: 0 3px 6px rgba(255,107,53,0.4); +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/css/annual-vacation-overview.css b/deploy/tkfb-package/web-ui/css/annual-vacation-overview.css new file mode 100644 index 0000000..3d1730f --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/annual-vacation-overview.css @@ -0,0 +1,348 @@ +/** + * annual-vacation-overview.css + * 연간 연차 현황 페이지 스타일 + */ + +.page-container { + min-height: 100vh; + background: var(--color-bg-primary); +} + +.main-content { + padding: 2rem 0; +} + +.content-wrapper { + max-width: 1400px; + margin: 0 auto; + padding: 0 2rem; +} + +/* 페이지 헤더 */ +.page-header { + margin-bottom: 2rem; +} + +.page-title { + font-size: 2rem; + font-weight: 700; + color: var(--color-text-primary); + margin-bottom: 0.5rem; +} + +.page-description { + font-size: 1rem; + color: var(--color-text-secondary); + margin: 0; +} + +/* 필터 섹션 */ +.filter-section { + margin-bottom: 2rem; +} + +.filter-controls { + display: flex; + gap: 1rem; + align-items: flex-end; + flex-wrap: wrap; +} + +.form-group { + display: flex; + flex-direction: column; + gap: 0.5rem; + min-width: 200px; +} + +.form-group label { + font-size: 0.875rem; + font-weight: 600; + color: var(--color-text-primary); +} + +.form-select { + padding: 0.625rem 1rem; + border: 1px solid var(--color-border); + border-radius: 8px; + background: white; + font-size: 0.875rem; + color: var(--color-text-primary); + transition: all 0.2s; +} + +.form-select:focus { + outline: none; + border-color: var(--color-primary); + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +/* 탭 네비게이션 */ +.tabs-section { + margin-bottom: 2rem; +} + +.tabs-nav { + display: flex; + gap: 0.5rem; + border-bottom: 2px solid var(--color-border); + padding: 0; + margin: 0; +} + +.tab-btn { + padding: 1rem 2rem; + border: none; + background: none; + color: var(--color-text-secondary); + font-size: 1rem; + font-weight: 600; + cursor: pointer; + position: relative; + transition: all 0.2s; + border-radius: 8px 8px 0 0; +} + +.tab-btn:hover { + color: var(--color-primary); + background: rgba(59, 130, 246, 0.05); +} + +.tab-btn.active { + color: var(--color-primary); + background: white; +} + +.tab-btn.active::after { + content: ''; + position: absolute; + bottom: -2px; + left: 0; + right: 0; + height: 2px; + background: var(--color-primary); +} + +/* 탭 컨텐츠 */ +.tab-content { + display: none; +} + +.tab-content.active { + display: block; +} + +/* 월 선택 컨트롤 */ +.month-controls { + display: flex; + gap: 1rem; + align-items: center; +} + +.month-controls .form-select { + min-width: 120px; +} + +/* 차트 섹션 */ +.chart-section { + margin-bottom: 2rem; +} + +.card-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1.5rem; + border-bottom: 1px solid var(--color-border); +} + +.card-title { + font-size: 1.25rem; + font-weight: 600; + color: var(--color-text-primary); + margin: 0; +} + +.chart-controls { + display: flex; + gap: 0.5rem; +} + +.btn-outline { + background: white; + border: 1px solid var(--color-border); + color: var(--color-text-secondary); +} + +.btn-outline:hover { + background: var(--color-bg-secondary); + border-color: var(--color-primary); + color: var(--color-primary); +} + +.btn-outline.active { + background: var(--color-primary); + border-color: var(--color-primary); + color: white; +} + +.chart-container { + position: relative; + height: 500px; + padding: 1.5rem; +} + +/* 테이블 섹션 */ +.table-section { + margin-bottom: 2rem; +} + +.table-responsive { + overflow-x: auto; +} + +.data-table { + width: 100%; + border-collapse: collapse; + font-size: 0.875rem; +} + +.data-table thead { + background: var(--color-bg-secondary); +} + +.data-table th { + padding: 1rem; + text-align: left; + font-weight: 600; + color: var(--color-text-primary); + border-bottom: 2px solid var(--color-border); + white-space: nowrap; +} + +.data-table tbody tr { + border-bottom: 1px solid var(--color-border); + transition: background 0.2s; +} + +.data-table tbody tr:hover { + background: var(--color-bg-secondary); +} + +.data-table td { + padding: 1rem; + color: var(--color-text-primary); +} + +.loading-state { + padding: 3rem 1rem !important; + text-align: center; +} + +.loading-state .spinner { + margin: 0 auto 1rem; + width: 40px; + height: 40px; + border: 4px solid var(--color-border); + border-top-color: var(--color-primary); + border-radius: 50%; + animation: spin 1s linear infinite; +} + +.loading-state p { + margin: 0; + color: var(--color-text-secondary); +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} + +/* 사용률 프로그레스 바 */ +.usage-rate-cell { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.progress-bar { + flex: 1; + height: 8px; + background: var(--color-bg-secondary); + border-radius: 4px; + overflow: hidden; +} + +.progress-fill { + height: 100%; + border-radius: 4px; + transition: width 0.3s ease; +} + +.progress-fill.low { + background: linear-gradient(90deg, #10b981 0%, #059669 100%); +} + +.progress-fill.medium { + background: linear-gradient(90deg, #f59e0b 0%, #d97706 100%); +} + +.progress-fill.high { + background: linear-gradient(90deg, #ef4444 0%, #dc2626 100%); +} + +.usage-rate-text { + font-weight: 600; + min-width: 45px; + text-align: right; +} + +/* 반응형 */ +@media (max-width: 768px) { + .content-wrapper { + padding: 0 1rem; + } + + .page-title { + font-size: 1.5rem; + } + + .tabs-nav { + flex-direction: column; + gap: 0; + } + + .tab-btn { + border-radius: 0; + } + + .filter-controls { + flex-direction: column; + align-items: stretch; + } + + .form-group { + width: 100%; + min-width: auto; + } + + .chart-container { + height: 400px; + } + + .card-header { + flex-direction: column; + gap: 1rem; + align-items: flex-start; + } + + .chart-controls { + width: 100%; + } + + .chart-controls button { + flex: 1; + } +} diff --git a/deploy/tkfb-package/web-ui/css/attendance-validation.css b/deploy/tkfb-package/web-ui/css/attendance-validation.css new file mode 100644 index 0000000..15184a3 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/attendance-validation.css @@ -0,0 +1,883 @@ +/* 근태 검증 관리 시스템 - 개선된 스타일 */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); + color: #333; + line-height: 1.6; + min-height: 100vh; +} + +/* 뒤로가기 버튼 */ +.back-btn { + background: rgba(255,255,255,0.95); + color: #667eea; + border: 3px solid #667eea; + padding: 12px 24px; + border-radius: 12px; + text-decoration: none; + font-weight: 700; + font-size: 16px; + display: inline-flex; + align-items: center; + gap: 8px; + margin-bottom: 24px; + transition: all 0.3s ease; + box-shadow: 0 3px 12px rgba(102, 126, 234, 0.2); +} + +.back-btn:hover { + background: #667eea; + color: white; + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(102, 126, 234, 0.3); +} + +/* 페이지 헤더 */ +.page-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + border-radius: 16px; + padding: 2.5rem; + margin-bottom: 2rem; + box-shadow: 0 8px 32px rgba(102, 126, 234, 0.3); + border: 1px solid rgba(255, 255, 255, 0.1); +} + +/* 메인 카드 */ +.main-card { + background: white; + border-radius: 16px; + padding: 2rem; + margin-bottom: 2rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); + border: 1px solid rgba(255, 255, 255, 0.8); + backdrop-filter: blur(10px); + transition: all 0.3s ease; +} + +.main-card:hover { + transform: translateY(-2px); + box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15); +} + +.loading-card { + background: white; + border-radius: 16px; + padding: 3rem; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); + text-align: center; +} + +/* 캘린더 헤더 */ +.calendar-header { + display: flex; + align-items: center; + justify-content: between; + margin-bottom: 2rem; + padding-bottom: 1rem; + border-bottom: 2px solid #f0f0f0; +} + +.nav-btn { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border: none; + border-radius: 12px; + width: 48px; + height: 48px; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 16px rgba(102, 126, 234, 0.3); +} + +.nav-btn:hover { + transform: translateY(-2px) scale(1.05); + box-shadow: 0 6px 24px rgba(102, 126, 234, 0.4); +} + +/* 월간 요약 */ +.summary-section { + margin-bottom: 2rem; + padding: 1.5rem; + background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 100%); + border-radius: 16px; + border: 1px solid rgba(102, 126, 234, 0.2); +} + +.summary-title { + text-align: center; + font-size: 1.25rem; + font-weight: 700; + color: #333; + margin-bottom: 1rem; +} + +.summary-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; +} + +.summary-card { + background: white; + border-radius: 12px; + padding: 1.5rem; + text-align: center; + transition: all 0.3s ease; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); + border: 2px solid transparent; +} + +.summary-card:hover { + transform: translateY(-4px); + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15); +} + +.summary-card.normal { + border-color: #10b981; +} + +.summary-card.warning { + border-color: #f59e0b; +} + +.summary-card.error { + border-color: #ef4444; +} + +.summary-number { + font-size: 2rem; + font-weight: 800; + margin-bottom: 0.5rem; +} + +.summary-card.normal .summary-number { + color: #10b981; +} + +.summary-card.warning .summary-number { + color: #f59e0b; +} + +.summary-card.error .summary-number { + color: #ef4444; +} + +.summary-label { + font-size: 0.875rem; + font-weight: 600; + color: #666; +} + +/* 요일 헤더 */ +.weekday-header { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 0.5rem; + margin-bottom: 1rem; +} + +.weekday { + padding: 1rem; + text-align: center; + font-size: 0.875rem; + font-weight: 700; + color: #64748b; + background: #f8fafc; + border-radius: 8px; +} + +.weekday.sunday { + color: #ef4444; +} + +.weekday.saturday { + color: #3b82f6; +} + +/* 캘린더 그리드 */ +.calendar-grid { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 0.5rem; + margin-bottom: 2rem; +} + +.calendar-day { + position: relative; + min-height: 80px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 12px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + background: white; + border: 2px solid #e2e8f0; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); +} + +.calendar-day.hover-enabled:hover { + transform: translateY(-3px); + box-shadow: 0 6px 24px rgba(0, 0, 0, 0.15); + border-color: #3b82f6; +} + +.calendar-day.selected { + transform: scale(1.05); + z-index: 10; + border-color: #3b82f6; + box-shadow: 0 8px 32px rgba(59, 130, 246, 0.3); +} + +.calendar-day.loading-state { + background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%); + border-color: #3b82f6; + animation: loading-pulse 1.5s infinite; +} + +@keyframes loading-pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.7; } +} + +.calendar-day.error-state { + background: linear-gradient(135deg, #fecaca 0%, #fca5a5 100%); + border-color: #ef4444; + color: #991b1b; +} + +.calendar-day.normal { + background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%); + border-color: #10b981; + color: #064e3b; +} + +.calendar-day.needs-review { + background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); + border-color: #f59e0b; + color: #92400e; +} + +.calendar-day.missing { + background: linear-gradient(135deg, #fecaca 0%, #fca5a5 100%); + border-color: #ef4444; + color: #991b1b; +} + +.calendar-day.no-data { + background: #f9fafb; + border-color: #e5e7eb; + color: #9ca3af; + position: relative; +} + +.calendar-day.no-data::after { + content: "클릭하여 확인"; + position: absolute; + bottom: 4px; + font-size: 10px; + color: #6b7280; + opacity: 0; + transition: opacity 0.3s; +} + +.calendar-day.no-data.hover-enabled:hover::after { + opacity: 1; +} + +.status-dot { + position: absolute; + top: 8px; + right: 8px; + width: 12px; + height: 12px; + border-radius: 50%; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3); + transition: all 0.3s ease; +} + +.status-dot.pulse { + animation: pulse 1s infinite; +} + +@keyframes pulse { + 0%, 100% { transform: scale(1); } + 50% { transform: scale(1.2); } +} + +.status-dot.normal { + background: #10b981; +} + +.status-dot.warning { + background: #f59e0b; +} + +.status-dot.error { + background: #ef4444; +} + +/* 범례 */ +.legend { + display: flex; + justify-content: center; + gap: 2rem; + flex-wrap: wrap; +} + +.legend-item { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 0.875rem; + font-weight: 600; + color: #64748b; +} + +.legend-dot { + width: 16px; + height: 16px; + border-radius: 50%; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); +} + +.legend-dot.normal { + background: #10b981; +} + +.legend-dot.warning { + background: #f59e0b; +} + +.legend-dot.error { + background: #ef4444; +} + +/* 빈 상태 */ +.empty-state { + text-align: center; + padding: 4rem 2rem; +} + +.empty-icon { + font-size: 4rem; + margin-bottom: 1.5rem; +} + +.empty-title { + font-size: 1.5rem; + font-weight: 700; + color: #374151; + margin-bottom: 1rem; +} + +.empty-description { + color: #6b7280; + font-size: 1rem; + max-width: 500px; + margin: 0 auto; +} + +/* 작업자 카드 */ +.worker-card { + background: white; + border-radius: 16px; + padding: 1.5rem; + margin-bottom: 1.5rem; + border: 2px solid transparent; + transition: all 0.3s ease; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); +} + +.worker-card:hover { + transform: translateY(-2px); + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15); +} + +.worker-card.normal { + background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%); + border-color: #10b981; +} + +.worker-card.needs-review { + background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%); + border-color: #f59e0b; +} + +.worker-card.missing { + background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%); + border-color: #ef4444; +} + +.worker-header { + display: flex; + justify-content: between; + align-items: center; + margin-bottom: 1.5rem; + padding-bottom: 1rem; + border-bottom: 2px solid rgba(0, 0, 0, 0.1); +} + +.worker-info { + display: flex; + align-items: center; + gap: 1rem; +} + +.worker-avatar { + width: 48px; + height: 48px; + background: white; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 1.25rem; + color: #374151; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); +} + +.worker-name { + font-size: 1.25rem; + font-weight: 700; + color: #374151; +} + +.worker-id { + font-size: 0.875rem; + color: #6b7280; + margin-top: 0.25rem; +} + +.status-badge { + font-size: 1.5rem; + filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.1)); +} + +/* 데이터 행 */ +.data-section { + background: rgba(255, 255, 255, 0.7); + border-radius: 12px; + padding: 1.5rem; + margin-bottom: 1rem; +} + +.data-row { + display: flex; + justify-content: between; + align-items: center; + padding: 0.75rem 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.data-row:last-child { + border-bottom: none; +} + +.data-label { + font-weight: 600; + color: #4b5563; +} + +.data-value { + font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace; + font-weight: 700; + font-size: 1rem; +} + +.difference-positive { + color: #dc2626; + background: rgba(220, 38, 38, 0.1); + padding: 0.25rem 0.75rem; + border-radius: 6px; + font-weight: 700; +} + +.difference-negative { + color: #2563eb; + background: rgba(37, 99, 235, 0.1); + padding: 0.25rem 0.75rem; + border-radius: 6px; + font-weight: 700; +} + +/* 버튼 */ +.btn-primary { + background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); + color: white; + border: none; + padding: 0.75rem 1.5rem; + border-radius: 12px; + font-weight: 700; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 16px rgba(59, 130, 246, 0.3); + display: inline-flex; + align-items: center; + gap: 0.5rem; +} + +.btn-primary:hover { + transform: translateY(-2px); + box-shadow: 0 6px 24px rgba(59, 130, 246, 0.4); +} + +.btn-secondary { + background: #6b7280; + color: white; + border: none; + padding: 0.75rem 1.5rem; + border-radius: 12px; + font-weight: 700; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 16px rgba(107, 114, 128, 0.3); +} + +.btn-secondary:hover { + background: #4b5563; + transform: translateY(-2px); +} + +.edit-btn { + background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); + color: white; + border: none; + padding: 0.75rem 1.5rem; + border-radius: 8px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + font-size: 0.875rem; + width: 100%; + margin-top: 1rem; +} + +.edit-btn:hover { + transform: translateY(-1px); + box-shadow: 0 4px 16px rgba(59, 130, 246, 0.3); +} + +.delete-btn { + background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); + color: white; + border: none; + padding: 0.5rem 1rem; + border-radius: 6px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + font-size: 0.75rem; + margin-left: 0.5rem; +} + +.delete-btn:hover { + transform: translateY(-1px); + box-shadow: 0 4px 16px rgba(239, 68, 68, 0.3); +} + +/* 필터 */ +.filter-container { + display: flex; + justify-content: between; + align-items: center; + margin-bottom: 1.5rem; + padding-bottom: 1rem; + border-bottom: 2px solid #f0f0f0; +} + +.filter-select { + background: white; + border: 2px solid #e5e7eb; + border-radius: 8px; + padding: 0.75rem 1rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); +} + +.filter-select:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +/* 모달 */ +.modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.75); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; + animation: fadeIn 0.3s ease; +} + +.modal.hidden { + display: none; +} + +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + +.modal-content { + background: white; + border-radius: 20px; + width: 90%; + max-width: 500px; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + animation: slideIn 0.3s ease; +} + +@keyframes slideIn { + from { + opacity: 0; + transform: translateY(-50px) scale(0.9); + } + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} + +.modal-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 1.5rem; + border-radius: 20px 20px 0 0; + display: flex; + justify-content: between; + align-items: center; +} + +.modal-header h3 { + margin: 0; + font-size: 1.25rem; + font-weight: 700; +} + +.close-btn { + background: rgba(255, 255, 255, 0.2); + color: white; + border: none; + border-radius: 50%; + width: 36px; + height: 36px; + cursor: pointer; + font-size: 1.25rem; + font-weight: 700; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.3s ease; +} + +.close-btn:hover { + background: rgba(255, 255, 255, 0.3); + transform: rotate(90deg); +} + +.modal-body { + padding: 1.5rem; +} + +.modal-footer { + display: flex; + justify-content: flex-end; + gap: 1rem; + padding: 1.5rem; + border-top: 2px solid #f0f0f0; + background: #f8fafc; + border-radius: 0 0 20px 20px; +} + +/* 폼 요소 */ +.form-group { + margin-bottom: 1.5rem; +} + +.form-group label { + display: block; + margin-bottom: 0.5rem; + font-weight: 700; + color: #374151; + font-size: 0.875rem; +} + +.form-input { + width: 100%; + padding: 0.75rem 1rem; + border: 2px solid #e5e7eb; + border-radius: 8px; + font-size: 1rem; + transition: all 0.3s ease; +} + +.form-input:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +.form-textarea { + width: 100%; + padding: 0.75rem 1rem; + border: 2px solid #e5e7eb; + border-radius: 8px; + font-size: 1rem; + resize: vertical; + min-height: 80px; + transition: all 0.3s ease; +} + +.form-textarea:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +/* 메시지 */ +.message { + padding: 1rem 1.5rem; + border-radius: 12px; + margin-bottom: 1.5rem; + font-weight: 600; + border: 2px solid transparent; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); +} + +.message.success { + background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%); + color: #065f46; + border-color: #10b981; +} + +.message.error { + background: linear-gradient(135deg, #fecaca 0%, #fca5a5 100%); + color: #991b1b; + border-color: #ef4444; +} + +.message.warning { + background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); + color: #92400e; + border-color: #f59e0b; +} + +.message.loading { + background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%); + color: #1e40af; + border-color: #3b82f6; +} + +/* 로딩 스피너 */ +.loading-spinner { + width: 32px; + height: 32px; + border: 3px solid #e5e7eb; + border-top: 3px solid #3b82f6; + border-radius: 50%; + animation: spin 1s linear infinite; +} + +@keyframes spin { + from { transform: rotate(0deg); } + to { transform: rotate(360deg); } +} + +/* 애니메이션 */ +.fade-in { + animation: fadeInUp 0.5s ease-out; +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* 반응형 디자인 */ +@media (max-width: 768px) { + .summary-grid { + grid-template-columns: 1fr; + gap: 1rem; + } + + .calendar-day { + min-height: 60px; + font-size: 0.875rem; + } + + .worker-header { + flex-direction: column; + gap: 1rem; + text-align: center; + } + + .legend { + flex-direction: column; + gap: 1rem; + } + + .modal-content { + width: 95%; + margin: 1rem; + } + + .main-card { + padding: 1.5rem; + } + + .page-header { + padding: 2rem; + } +} + +@media (max-width: 480px) { + .calendar-day { + min-height: 50px; + font-size: 0.75rem; + } + + .summary-card { + padding: 1rem; + } + + .summary-number { + font-size: 1.5rem; + } + + .worker-card { + padding: 1rem; + } + + .modal-body, .modal-footer { + padding: 1rem; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/css/attendance.css b/deploy/tkfb-package/web-ui/css/attendance.css new file mode 100644 index 0000000..0b77e15 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/attendance.css @@ -0,0 +1,72 @@ +body { + font-family: Arial, sans-serif; + margin: 20px; + background: #f8f9fa; +} +h2 { + text-align: center; + color: #343a40; +} +.controls { + display: flex; + flex-wrap: wrap; + gap: 12px; + justify-content: center; + align-items: center; + margin-bottom: 16px; +} +.controls label { + font-weight: bold; +} +.controls select, +.controls button { + padding: 6px 10px; + border-radius: 4px; + border: 1px solid #ccc; + font-weight: bold; + cursor: pointer; +} +button#loadAttendance { + background-color: #4CAF50; + color: white; + border: none; +} +button#downloadPdf { + background-color: #007BFF; + color: white; + border: none; +} +#attendanceTableContainer { + max-height: 600px; + overflow: auto; +} +table { + width: 100%; + border-collapse: collapse; + margin-top: 10px; + font-size: 14px; +} +th, td { + border: 1px solid #ddd; + padding: 6px; + text-align: center; + background: white; +} +th { + background: #f2f2f2; +} +.divider { + border-left: 3px solid #333 !important; +} +tr.separator td { + border-bottom: 2px solid #999; + padding: 0; + height: 4px; + background: transparent; +} +.overtime-cell { background: #e9e5ff !important; } +.leave { background: #f5e0d6 !important; } +.holiday { background: #ffd6d6 !important; } +.paid-leave { background: #d6f0ff !important; } +.no-data { background: #ddd !important; } +.overtime-sum { background: #e9e5ff !important; } \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/css/common.css b/deploy/tkfb-package/web-ui/css/common.css new file mode 100644 index 0000000..eb1a24c --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/common.css @@ -0,0 +1,300 @@ +/* Common CSS - 공통 스타일 */ + +/* ========== 통일된 헤더 스타일 ========== */ +.work-report-container { + min-height: 100vh; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; +} + +.work-report-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + text-align: center; + padding: 2rem 1.5rem; + margin-bottom: 0; +} + +.work-report-header h1 { + font-size: clamp(1.5rem, 4vw, 2.5rem); + font-weight: 700; + margin: 0 0 0.75rem 0; + text-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.3); + word-wrap: break-word; + overflow-wrap: break-word; +} + +.work-report-header .subtitle { + font-size: clamp(0.875rem, 2vw, 1.1rem); + opacity: 0.9; + margin: 0; + font-weight: 300; + word-wrap: break-word; + overflow-wrap: break-word; + max-width: 90%; + margin-left: auto; + margin-right: auto; +} + +.work-report-main { + background: #f8f9fa; + min-height: calc(100vh - 12rem); + padding-top: 2rem; +} + +.back-button { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.75rem 1.5rem; + background: rgba(255, 255, 255, 0.9); + color: #495057; + text-decoration: none; + border-radius: 0.5rem; + font-weight: 500; + margin: 0 1.5rem 1.5rem 1.5rem; + transition: all 0.3s ease; + box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.1); + white-space: nowrap; +} + +.back-button:hover { + background: white; + color: #007bff; + transform: translateY(-0.0625rem); + box-shadow: 0 0.25rem 0.5rem rgba(0,0,0,0.15); +} + +/* 반응형 헤더 */ +@media (max-width: 768px) { + .work-report-header { + padding: 1.5rem 1rem; + } + + .work-report-header h1 { + margin-bottom: 0.5rem; + } + + .back-button { + margin: 0 1rem 1rem 1rem; + padding: 0.625rem 1.25rem; + font-size: 0.875rem; + } +} + +@media (max-width: 480px) { + .work-report-header { + padding: 1.25rem 0.75rem; + } + + .work-report-header .subtitle { + font-size: 0.8125rem; + } + + .back-button { + margin: 0 0.75rem 0.75rem 0.75rem; + padding: 0.5rem 1rem; + font-size: 0.8125rem; + } +} + +/* Reset and Base Styles */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; + line-height: 1.6; + color: #333; + background-color: #f8fafc; +} + +/* Typography */ +h1, h2, h3, h4, h5, h6 { + font-weight: 600; + line-height: 1.25; + margin-bottom: 0.5rem; +} + +h1 { font-size: 2rem; } +h2 { font-size: 1.5rem; } +h3 { font-size: 1.25rem; } +h4 { font-size: 1.125rem; } +h5 { font-size: 1rem; } +h6 { font-size: 0.875rem; } + +/* ========== 헤더 액션 버튼 ========== */ +.header-actions { + display: flex; + align-items: center; + gap: 1rem; + margin-right: 1rem; +} + +.dashboard-btn { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.6rem 1.2rem; + background: rgba(255, 255, 255, 0.15); + color: white; + border: 1px solid rgba(255, 255, 255, 0.3); + border-radius: 8px; + font-size: 0.9rem; + font-weight: 500; + text-decoration: none; + cursor: pointer; + transition: all 0.3s ease; + backdrop-filter: blur(10px); +} + +.dashboard-btn:hover { + background: rgba(255, 255, 255, 0.25); + border-color: rgba(255, 255, 255, 0.5); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(0,0,0,0.15); +} + +.dashboard-btn .btn-icon { + font-size: 1rem; +} + +/* Buttons */ +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.5rem 1rem; + border: none; + border-radius: 0.375rem; + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + text-decoration: none; +} + +.btn-primary { + background-color: #3b82f6; + color: white; +} + +.btn-primary:hover { + background-color: #2563eb; +} + +.btn-secondary { + background-color: #6b7280; + color: white; +} + +.btn-secondary:hover { + background-color: #4b5563; +} + +/* Utilities */ +.text-center { text-align: center; } +.text-left { text-align: left; } +.text-right { text-align: right; } + +.mb-1 { margin-bottom: 0.25rem; } +.mb-2 { margin-bottom: 0.5rem; } +.mb-3 { margin-bottom: 0.75rem; } +.mb-4 { margin-bottom: 1rem; } +.mb-5 { margin-bottom: 1.25rem; } +.mb-6 { margin-bottom: 1.5rem; } + +.mt-1 { margin-top: 0.25rem; } +.mt-2 { margin-top: 0.5rem; } +.mt-3 { margin-top: 0.75rem; } +.mt-4 { margin-top: 1rem; } +.mt-5 { margin-top: 1.25rem; } +.mt-6 { margin-top: 1.5rem; } + +.p-1 { padding: 0.25rem; } +.p-2 { padding: 0.5rem; } +.p-3 { padding: 0.75rem; } +.p-4 { padding: 1rem; } +.p-5 { padding: 1.25rem; } +.p-6 { padding: 1.5rem; } + +/* Container */ +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 1rem; +} + +/* Cards */ +.card { + background: white; + border-radius: 0.5rem; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + border: 1px solid #e5e7eb; +} + +.card-header { + padding: 1rem; + border-bottom: 1px solid #e5e7eb; +} + +.card-body { + padding: 1rem; +} + +/* Forms */ +.form-group { + margin-bottom: 1rem; +} + +.form-label { + display: block; + font-weight: 500; + margin-bottom: 0.25rem; + color: #374151; +} + +.form-control { + width: 100%; + padding: 0.5rem 0.75rem; + border: 1px solid #d1d5db; + border-radius: 0.375rem; + font-size: 0.875rem; + transition: border-color 0.2s ease; +} + +.form-control:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +/* Loading */ +.loading { + display: inline-block; + width: 20px; + height: 20px; + border: 3px solid #f3f3f3; + border-top: 3px solid #3b82f6; + border-radius: 50%; + animation: spin 1s linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +/* Responsive */ +@media (max-width: 768px) { + .container { + padding: 0 0.5rem; + } + + h1 { font-size: 1.5rem; } + h2 { font-size: 1.25rem; } + h3 { font-size: 1.125rem; } +} diff --git a/deploy/tkfb-package/web-ui/css/daily-issue.css b/deploy/tkfb-package/web-ui/css/daily-issue.css new file mode 100644 index 0000000..827e7c7 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/daily-issue.css @@ -0,0 +1,90 @@ +/* /css/daily-issue.css */ + +body { + font-family: Arial, sans-serif; + background: #f5f7fa; + margin: 0; + padding: 40px 20px; +} + +.container { + max-width: 500px; + margin: auto; + background: #fff; + border-radius: 12px; + box-shadow: 0 0 10px rgba(0,0,0,0.05); + padding: 32px; +} + +h2 { + text-align: center; + color: #333; + margin-bottom: 24px; +} + +label { + display: block; + margin-top: 20px; + font-weight: bold; + color: #333; +} + +select, input[type="date"], button { + width: 100%; + padding: 10px; + margin-top: 6px; + border: 1px solid #ccc; + border-radius: 6px; + box-sizing: border-box; + font-size: 1rem; +} + +button#submitBtn { + margin-top: 30px; + background: #1976d2; + color: white; + border: none; + font-size: 1rem; + border-radius: 6px; + cursor: pointer; + transition: background 0.2s; +} + +button#submitBtn:hover { + background: #125cb1; +} + +.multi-select-box { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-top: 8px; +} + +.multi-select-box .btn { + flex: 1 0 30%; + padding: 8px; + border: 1px solid #1976d2; + border-radius: 4px; + background: white; + color: #1976d2; + text-align: center; + cursor: pointer; + transition: background 0.2s, color 0.2s; +} + +.multi-select-box .btn.selected { + background: #1976d2; + color: white; +} + +.time-range { + display: flex; + gap: 8px; + align-items: center; + margin-top: 6px; +} + +.time-range select { + flex: 1; +} diff --git a/deploy/tkfb-package/web-ui/css/daily-patrol.css b/deploy/tkfb-package/web-ui/css/daily-patrol.css new file mode 100644 index 0000000..c6ade28 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/daily-patrol.css @@ -0,0 +1,1303 @@ +/* daily-patrol.css - 일일순회점검 페이지 스타일 */ + +/* 점검 시작 영역 */ +.patrol-start-section { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 2rem; + padding: 3rem 1.5rem; + background: var(--surface-color, #fff); + border-radius: 12px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + margin-bottom: 1.5rem; +} + +.patrol-start-section .btn-lg { + padding: 1.25rem 3rem; + font-size: 1.25rem; + border-radius: 12px; + display: flex; + align-items: center; + gap: 0.75rem; +} + +.patrol-start-section .btn-icon { + font-size: 1.5rem; +} + +/* 공장 선택 영역 */ +.factory-selection-area { + padding: 2rem; + background: var(--surface-color, #fff); + border-radius: 12px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + margin-bottom: 1.5rem; +} + +.factory-selection-header { + text-align: center; + margin-bottom: 2rem; +} + +.factory-selection-header h3 { + font-size: 1.5rem; + font-weight: 600; + margin: 0 0 0.5rem; +} + +.factory-selection-subtitle { + color: var(--text-secondary, #64748b); + margin: 0; +} + +.factory-cards-container { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 1.5rem; + max-width: 800px; + margin: 0 auto; +} + +.factory-card { + display: flex; + flex-direction: column; + align-items: center; + padding: 2rem 1.5rem; + background: var(--bg-color, #f8fafc); + border: 2px solid var(--border-color, #e2e8f0); + border-radius: 16px; + cursor: pointer; + transition: all 0.2s; +} + +.factory-card:hover { + border-color: var(--primary-color, #3b82f6); + background: #eff6ff; + transform: translateY(-4px); + box-shadow: 0 8px 20px rgba(59, 130, 246, 0.15); +} + +.factory-card:active { + transform: translateY(-2px); +} + +.factory-card-icon { + width: 80px; + height: 80px; + border-radius: 12px; + background: var(--surface-color, #fff); + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 1rem; + overflow: hidden; + font-size: 2.5rem; +} + +.factory-card-icon img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.factory-card-name { + font-size: 1.125rem; + font-weight: 600; + text-align: center; +} + +/* 오늘 점검 현황 요약 */ +.today-status-summary { + display: flex; + gap: 1.5rem; + align-items: center; + justify-content: center; + padding: 1rem 2rem; + background: var(--bg-color, #f8fafc); + border-radius: 12px; +} + +.status-card { + text-align: center; + padding: 1rem 1.5rem; + background: var(--surface-color, #fff); + border-radius: 8px; + min-width: 100px; +} + +.status-label { + font-size: 0.85rem; + color: var(--text-secondary, #64748b); + margin-bottom: 0.5rem; +} + +.status-value { + font-size: 1.5rem; + font-weight: 700; +} + +.status-value.completed { + color: var(--success-color, #16a34a); +} + +.status-value.pending { + color: var(--warning-color, #f59e0b); +} + +.status-sub { + font-size: 0.75rem; + color: var(--text-secondary, #64748b); + margin-top: 0.25rem; +} + +/* 점검 영역 */ +.patrol-area { + background: var(--surface-color, #fff); + border-radius: 12px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + overflow: hidden; +} + +/* 세션 정보 바 */ +.session-info-bar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 1.5rem; + background: linear-gradient(135deg, var(--primary-color, #3b82f6), #2563eb); + color: #fff; +} + +.session-info { + display: flex; + gap: 2rem; +} + +.session-info-item { + display: flex; + flex-direction: column; + gap: 0.25rem; +} + +.session-info-label { + font-size: 0.75rem; + opacity: 0.8; +} + +.session-info-value { + font-weight: 600; +} + +.session-progress { + display: flex; + align-items: center; + gap: 1rem; +} + +.progress-bar { + width: 150px; + height: 8px; + background: rgba(255, 255, 255, 0.3); + border-radius: 4px; + overflow: hidden; +} + +.progress-fill { + height: 100%; + background: #fff; + border-radius: 4px; + transition: width 0.3s ease; +} + +.progress-text { + font-weight: 600; + font-size: 0.9rem; +} + +/* 점검 콘텐츠 영역 */ +.patrol-content { + display: grid; + grid-template-columns: 1fr 400px; + min-height: 500px; +} + +@media (max-width: 1024px) { + .patrol-content { + grid-template-columns: 1fr; + } +} + +/* 지도 영역 */ +.patrol-map-section { + padding: 1.5rem; + border-right: 1px solid var(--border-color, #e2e8f0); +} + +.map-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; +} + +.map-header h3 { + font-size: 1rem; + font-weight: 600; + margin: 0; +} + +.map-legend { + display: flex; + gap: 1rem; + font-size: 0.8rem; +} + +.legend-item { + display: flex; + align-items: center; + gap: 0.25rem; +} + +.legend-item .dot { + width: 10px; + height: 10px; + border-radius: 50%; +} + +.legend-item.completed .dot { + background: var(--success-color, #16a34a); +} + +.legend-item.in-progress .dot { + background: var(--primary-color, #3b82f6); +} + +.legend-item.pending .dot { + background: var(--border-color, #cbd5e1); +} + +/* 지도 컨테이너 */ +.patrol-map-container { + position: relative; + width: 100%; + aspect-ratio: 16/10; + background: var(--bg-color, #f8fafc); + border-radius: 8px; + overflow: hidden; + border: 1px solid var(--border-color, #e2e8f0); +} + +.patrol-map-container img { + width: 100%; + height: 100%; + object-fit: contain; +} + +/* 작업장 마커 */ +.workplace-marker { + position: absolute; + padding: 0.3rem 0.5rem; + background: var(--surface-color, #fff); + border: 2px solid var(--border-color, #cbd5e1); + border-radius: 6px; + cursor: pointer; + font-size: 0.7rem; + font-weight: 600; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12); + transition: all 0.15s ease-out; + transform: translate(-50%, -50%); + white-space: nowrap; + /* z-index는 JS에서 y좌표 기반 설정 (아래에 있을수록 높음) */ +} + +.workplace-marker:hover { + transform: translate(-50%, -50%) scale(1.15); + box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25); + z-index: 200 !important; + background: #f0f9ff; + border-color: var(--primary-color, #3b82f6); +} + +.workplace-marker.completed { + border-color: var(--success-color, #16a34a); + background: #dcfce7; +} + +.workplace-marker.in-progress { + border-color: var(--primary-color, #3b82f6); + background: #dbeafe; +} + +.workplace-marker.selected { + border-color: var(--primary-color, #3b82f6); + background: var(--primary-color, #3b82f6); + color: #fff; + z-index: 150 !important; + transform: translate(-50%, -50%) scale(1.1); +} + +/* 작은 마커 (밀집 구역용) */ +.workplace-marker.compact { + padding: 0.2rem 0.35rem; + font-size: 0.6rem; + border-radius: 4px; + border-width: 1.5px; +} + +/* 작업장 목록 */ +.workplace-list-container { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); + gap: 0.75rem; + margin-top: 1rem; + padding: 0.5rem; + background: var(--bg-color, #f8fafc); + border-radius: 8px; +} + +.workplace-card { + padding: 1rem; + background: var(--surface-color, #fff); + border: 2px solid var(--border-color, #e2e8f0); + border-radius: 8px; + cursor: pointer; + transition: all 0.2s; + text-align: center; +} + +.workplace-card:hover { + border-color: var(--primary-color, #3b82f6); +} + +.workplace-card.completed { + border-color: var(--success-color, #16a34a); + background: #f0fdf4; +} + +.workplace-card.in-progress { + border-color: var(--primary-color, #3b82f6); + background: #eff6ff; +} + +.workplace-card.selected { + border-color: var(--primary-color, #3b82f6); + background: var(--primary-color, #3b82f6); + color: #fff; +} + +.workplace-card.selected .workplace-card-status { + color: rgba(255, 255, 255, 0.8); +} + +.workplace-card-name { + font-weight: 600; + margin-bottom: 0.25rem; +} + +.workplace-card-status { + font-size: 0.75rem; + color: var(--text-secondary, #64748b); +} + +/* 체크리스트 영역 */ +.patrol-checklist-section { + display: flex; + flex-direction: column; + background: var(--bg-color, #f8fafc); +} + +.checklist-header { + padding: 1rem 1.5rem; + border-bottom: 1px solid var(--border-color, #e2e8f0); + background: var(--surface-color, #fff); +} + +.checklist-header h3 { + font-size: 1rem; + font-weight: 600; + margin: 0 0 0.25rem; +} + +.checklist-subtitle { + font-size: 0.8rem; + color: var(--text-secondary, #64748b); + margin: 0; +} + +.checklist-content { + flex: 1; + overflow-y: auto; + padding: 1rem; +} + +.checklist-placeholder { + display: flex; + align-items: center; + justify-content: center; + height: 200px; + color: var(--text-secondary, #64748b); +} + +/* 체크리스트 카테고리 */ +.checklist-category { + margin-bottom: 1.5rem; +} + +.checklist-category-title { + font-size: 0.85rem; + font-weight: 600; + color: var(--text-secondary, #64748b); + text-transform: uppercase; + margin-bottom: 0.75rem; + padding-bottom: 0.5rem; + border-bottom: 1px solid var(--border-color, #e2e8f0); +} + +/* 체크 항목 */ +.check-item { + display: flex; + align-items: flex-start; + gap: 0.75rem; + padding: 0.75rem; + background: var(--surface-color, #fff); + border-radius: 8px; + margin-bottom: 0.5rem; + cursor: pointer; + transition: background 0.2s; +} + +.check-item:hover { + background: #f1f5f9; +} + +.check-item.checked { + background: #f0fdf4; +} + +.check-item-checkbox { + width: 24px; + height: 24px; + border: 2px solid var(--border-color, #cbd5e1); + border-radius: 6px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + transition: all 0.2s; +} + +.check-item.checked .check-item-checkbox { + background: var(--success-color, #16a34a); + border-color: var(--success-color, #16a34a); + color: #fff; +} + +.check-item-content { + flex: 1; +} + +.check-item-text { + font-size: 0.9rem; + margin-bottom: 0.25rem; +} + +.check-item-required { + color: var(--error-color, #dc2626); + margin-left: 0.25rem; +} + +.check-item-note { + font-size: 0.8rem; + color: var(--text-secondary, #64748b); +} + +/* 체크 결과 선택 */ +.check-result-selector { + display: flex; + gap: 0.5rem; + margin-top: 0.5rem; +} + +.check-result-btn { + padding: 0.25rem 0.75rem; + border: 1px solid var(--border-color, #e2e8f0); + border-radius: 4px; + font-size: 0.75rem; + background: var(--surface-color, #fff); + cursor: pointer; + transition: all 0.2s; +} + +.check-result-btn.good.active { + background: #dcfce7; + border-color: var(--success-color, #16a34a); + color: var(--success-color, #16a34a); +} + +.check-result-btn.warning.active { + background: #fef3c7; + border-color: var(--warning-color, #f59e0b); + color: var(--warning-color, #f59e0b); +} + +.check-result-btn.bad.active { + background: #fee2e2; + border-color: var(--error-color, #dc2626); + color: var(--error-color, #dc2626); +} + +/* 체크리스트 액션 */ +.checklist-actions { + padding: 1rem 1.5rem; + border-top: 1px solid var(--border-color, #e2e8f0); + background: var(--surface-color, #fff); + display: flex; + gap: 0.75rem; + justify-content: flex-end; +} + +/* 물품 현황 섹션 */ +.items-section { + padding: 1.5rem; + border-top: 1px solid var(--border-color, #e2e8f0); +} + +.items-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; +} + +.items-header h3 { + font-size: 1rem; + font-weight: 600; + margin: 0; +} + +.items-map-container { + position: relative; + width: 100%; + aspect-ratio: 16/9; + background: var(--bg-color, #f8fafc); + border-radius: 8px; + border: 1px solid var(--border-color, #e2e8f0); + overflow: hidden; +} + +.items-map-container img { + width: 100%; + height: 100%; + object-fit: contain; +} + +/* 물품 마커 */ +.item-marker { + position: absolute; + border: 2px solid; + border-radius: 4px; + background: rgba(255, 255, 255, 0.8); + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.2rem; + transition: all 0.2s; +} + +.item-marker:hover { + transform: scale(1.1); + z-index: 10; +} + +.item-marker.container { + border-color: #3b82f6; + background: rgba(59, 130, 246, 0.2); +} + +.item-marker.plate { + border-color: #10b981; + background: rgba(16, 185, 129, 0.2); +} + +.item-marker.material { + border-color: #f59e0b; + background: rgba(245, 158, 11, 0.2); +} + +.item-marker.tool { + border-color: #8b5cf6; + background: rgba(139, 92, 246, 0.2); +} + +.item-marker.other { + border-color: #6b7280; + background: rgba(107, 114, 128, 0.2); +} + +/* 물품 범례 */ +.items-legend { + display: flex; + flex-wrap: wrap; + gap: 1rem; + margin-top: 1rem; + padding-top: 1rem; + border-top: 1px solid var(--border-color, #e2e8f0); +} + +.item-legend-item { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 0.85rem; +} + +.item-legend-icon { + width: 24px; + height: 24px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.9rem; +} + +/* 순회점검 완료 섹션 */ +.patrol-complete-section { + padding: 1.5rem; + border-top: 1px solid var(--border-color, #e2e8f0); + display: flex; + gap: 1rem; + align-items: flex-end; +} + +.patrol-complete-section .form-group { + flex: 1; + margin-bottom: 0; +} + +/* ==================== 작업장 상세 정보 패널 ==================== */ +.workplace-detail-panel { + position: fixed; + top: 90px; + right: 20px; + width: 400px; + max-height: calc(100vh - 110px); + background: var(--surface-color, #fff); + border-radius: 16px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15); + display: none; + flex-direction: column; + z-index: 100; + overflow: hidden; +} + +.detail-panel-header { + display: flex; + justify-content: space-between; + align-items: flex-start; + padding: 1rem 1.25rem; + background: linear-gradient(135deg, var(--primary-color, #3b82f6), #2563eb); + color: #fff; +} + +.detail-panel-title h3 { + margin: 0; + font-size: 1.1rem; + font-weight: 600; +} + +.detail-panel-subtitle { + font-size: 0.8rem; + opacity: 0.9; +} + +.detail-panel-close { + background: rgba(255, 255, 255, 0.2); + border: none; + color: #fff; + width: 28px; + height: 28px; + border-radius: 6px; + font-size: 1.25rem; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: background 0.2s; +} + +.detail-panel-close:hover { + background: rgba(255, 255, 255, 0.3); +} + +/* 요약 정보 */ +.detail-panel-summary { + display: flex; + gap: 0.5rem; + padding: 0.75rem 1rem; + background: var(--bg-color, #f8fafc); + border-bottom: 1px solid var(--border-color, #e2e8f0); + flex-wrap: wrap; +} + +.summary-item { + flex: 1; + min-width: 60px; + text-align: center; + padding: 0.5rem; + background: var(--surface-color, #fff); + border-radius: 8px; +} + +.summary-item.warning { + background: #fef3c7; +} + +.summary-item.danger { + background: #fee2e2; +} + +.summary-item.info { + background: #dbeafe; +} + +.summary-value { + display: block; + font-size: 1.25rem; + font-weight: 700; + color: var(--text-primary, #1e293b); +} + +.summary-item.warning .summary-value { + color: #b45309; +} + +.summary-item.danger .summary-value { + color: #dc2626; +} + +.summary-item.info .summary-value { + color: #2563eb; +} + +.summary-label { + font-size: 0.7rem; + color: var(--text-secondary, #64748b); +} + +/* 탭 */ +.detail-panel-tabs { + display: flex; + border-bottom: 1px solid var(--border-color, #e2e8f0); + background: var(--surface-color, #fff); +} + +.detail-tab { + flex: 1; + padding: 0.6rem 0.5rem; + border: none; + background: none; + font-size: 0.75rem; + color: var(--text-secondary, #64748b); + cursor: pointer; + border-bottom: 2px solid transparent; + transition: all 0.2s; + position: relative; +} + +.detail-tab:hover { + color: var(--primary-color, #3b82f6); +} + +.detail-tab.active { + color: var(--primary-color, #3b82f6); + border-bottom-color: var(--primary-color, #3b82f6); + font-weight: 600; +} + +.tab-badge { + display: none; + min-width: 16px; + height: 16px; + padding: 0 4px; + background: var(--error-color, #dc2626); + color: #fff; + font-size: 0.65rem; + font-weight: 600; + border-radius: 8px; + margin-left: 4px; + vertical-align: middle; +} + +.tab-badge.show { + display: inline-flex; + align-items: center; + justify-content: center; +} + +.tab-badge.warning { + background: var(--warning-color, #f59e0b); +} + +/* 탭 콘텐츠 */ +.detail-panel-content { + flex: 1; + overflow-y: auto; + padding: 1rem; + background: var(--bg-color, #f8fafc); +} + +.detail-tab-content { + display: none; +} + +.detail-tab-content.active { + display: block; +} + +.detail-empty { + text-align: center; + padding: 2rem 1rem; + color: var(--text-secondary, #64748b); + font-size: 0.9rem; +} + +/* 신고/부적합 섹션 */ +.issue-section { + margin-bottom: 1.5rem; +} + +.issue-section-title { + font-size: 0.85rem; + font-weight: 600; + margin: 0 0 0.75rem; + color: var(--text-primary, #1e293b); +} + +.issue-item { + background: var(--surface-color, #fff); + border-radius: 8px; + padding: 0.75rem; + margin-bottom: 0.5rem; + border-left: 3px solid var(--border-color, #cbd5e1); +} + +.issue-item.pending { + border-left-color: #f59e0b; +} + +.issue-item.info { + border-left-color: #3b82f6; +} + +.issue-item.warning { + border-left-color: #f59e0b; +} + +.issue-item.success { + border-left-color: #16a34a; +} + +.issue-item-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 0.5rem; +} + +.issue-title { + font-weight: 600; + font-size: 0.9rem; +} + +.issue-status { + font-size: 0.7rem; + padding: 2px 8px; + border-radius: 10px; + background: var(--bg-color, #f1f5f9); +} + +.issue-status.pending { + background: #fef3c7; + color: #b45309; +} + +.issue-status.info { + background: #dbeafe; + color: #1d4ed8; +} + +.issue-status.warning { + background: #fed7aa; + color: #c2410c; +} + +.issue-status.success { + background: #dcfce7; + color: #166534; +} + +.issue-item-meta { + display: flex; + gap: 0.5rem; + flex-wrap: wrap; + margin-bottom: 0.5rem; + font-size: 0.75rem; +} + +.issue-category { + color: var(--text-secondary, #64748b); +} + +.issue-severity { + padding: 1px 6px; + border-radius: 4px; + font-size: 0.65rem; +} + +.issue-severity.critical { + background: #fee2e2; + color: #dc2626; +} + +.issue-severity.high { + background: #fed7aa; + color: #c2410c; +} + +.issue-severity.medium { + background: #fef3c7; + color: #b45309; +} + +.issue-severity.low { + background: #d1fae5; + color: #059669; +} + +.issue-date { + color: var(--text-tertiary, #94a3b8); +} + +.issue-desc { + font-size: 0.8rem; + color: var(--text-secondary, #64748b); + margin-bottom: 0.25rem; +} + +.issue-reporter { + font-size: 0.7rem; + color: var(--text-tertiary, #94a3b8); +} + +/* 설비 섹션 */ +.equipment-section { + margin-bottom: 1.5rem; +} + +.equipment-section-title { + font-size: 0.85rem; + font-weight: 600; + margin: 0 0 0.75rem; + color: var(--text-primary, #1e293b); +} + +.repair-item { + background: var(--surface-color, #fff); + border-radius: 8px; + padding: 0.75rem; + margin-bottom: 0.5rem; + border-left: 3px solid #f59e0b; +} + +.repair-item.emergency { + border-left-color: #dc2626; + background: #fef2f2; +} + +.repair-item.high { + border-left-color: #f97316; +} + +.repair-item-header { + display: flex; + justify-content: space-between; + margin-bottom: 0.25rem; +} + +.repair-equipment { + font-weight: 600; + font-size: 0.85rem; +} + +.repair-priority { + font-size: 0.7rem; + padding: 2px 6px; + border-radius: 4px; + background: #fef3c7; + color: #b45309; +} + +.repair-priority.emergency { + background: #fee2e2; + color: #dc2626; +} + +.repair-priority.high { + background: #fed7aa; + color: #c2410c; +} + +.repair-category, .repair-desc, .repair-date { + font-size: 0.75rem; + color: var(--text-secondary, #64748b); +} + +.equipment-list { + display: flex; + flex-direction: column; + gap: 0.25rem; +} + +.equipment-item { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.5rem 0.75rem; + background: var(--surface-color, #fff); + border-radius: 6px; + font-size: 0.8rem; +} + +.equipment-item.attention { + background: #fef2f2; +} + +.equipment-name { + flex: 1; + font-weight: 500; +} + +.equipment-code { + color: var(--text-tertiary, #94a3b8); + font-size: 0.7rem; +} + +.equipment-status { + font-size: 0.65rem; + padding: 2px 6px; + border-radius: 4px; + background: #dcfce7; + color: #166534; +} + +.equipment-status.repair_needed { + background: #fee2e2; + color: #dc2626; +} + +.equipment-status.under_repair { + background: #fef3c7; + color: #b45309; +} + +.equipment-status.inactive { + background: #f1f5f9; + color: #64748b; +} + +/* 출입 섹션 */ +.visits-list { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.visit-item { + background: var(--surface-color, #fff); + border-radius: 8px; + padding: 0.75rem; +} + +.visit-item-header { + display: flex; + justify-content: space-between; + margin-bottom: 0.25rem; +} + +.visit-name { + font-weight: 600; + font-size: 0.9rem; +} + +.visit-company { + font-size: 0.75rem; + color: var(--text-secondary, #64748b); +} + +.visit-purpose { + font-size: 0.8rem; + color: var(--primary-color, #3b82f6); + margin-bottom: 0.25rem; +} + +.visit-time, .visit-companion, .visit-vehicle { + font-size: 0.75rem; + color: var(--text-secondary, #64748b); +} + +/* TBM 섹션 */ +.tbm-list { + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +.tbm-item { + background: var(--surface-color, #fff); + border-radius: 8px; + padding: 0.75rem; +} + +.tbm-item-header { + display: flex; + justify-content: space-between; + margin-bottom: 0.5rem; +} + +.tbm-task { + font-weight: 600; + font-size: 0.9rem; +} + +.tbm-status { + font-size: 0.7rem; + padding: 2px 8px; + border-radius: 10px; + background: var(--bg-color, #f1f5f9); +} + +.tbm-status.completed { + background: #dcfce7; + color: #166534; +} + +.tbm-status.in_progress { + background: #dbeafe; + color: #1d4ed8; +} + +.tbm-location, .tbm-leader, .tbm-content, .tbm-safety { + font-size: 0.8rem; + color: var(--text-secondary, #64748b); + margin-bottom: 0.25rem; +} + +.tbm-team { + font-size: 0.75rem; + padding-top: 0.5rem; + border-top: 1px dashed var(--border-color, #e2e8f0); + margin-top: 0.5rem; +} + +.tbm-team-label { + font-weight: 500; + color: var(--text-primary, #1e293b); +} + +.tbm-team-names { + color: var(--text-secondary, #64748b); +} + +/* 반응형 */ +@media (max-width: 768px) { + .patrol-start-section { + padding: 2rem 1rem; + } + + .patrol-start-section .btn-lg { + width: 100%; + justify-content: center; + } + + .today-status-summary { + flex-direction: row; + width: 100%; + } + + .status-card { + flex: 1; + min-width: auto; + padding: 0.75rem; + } + + .factory-selection-area { + padding: 1.5rem 1rem; + } + + .factory-cards-container { + grid-template-columns: repeat(2, 1fr); + gap: 1rem; + } + + .factory-card { + padding: 1.5rem 1rem; + } + + .factory-card-icon { + width: 60px; + height: 60px; + font-size: 2rem; + } + + .factory-card-name { + font-size: 1rem; + } + + .patrol-content { + grid-template-columns: 1fr; + } + + .patrol-map-section { + border-right: none; + border-bottom: 1px solid var(--border-color, #e2e8f0); + } + + .patrol-complete-section { + flex-direction: column; + } + + .session-info-bar { + flex-direction: column; + gap: 1rem; + text-align: center; + } + + .session-info { + flex-wrap: wrap; + justify-content: center; + } + + /* 모바일 상세 패널 */ + .workplace-detail-panel { + position: fixed; + top: 0; + right: 0; + left: 0; + bottom: 0; + width: 100%; + max-height: 100vh; + border-radius: 0; + } + + .detail-panel-tabs { + overflow-x: auto; + } + + .detail-tab { + white-space: nowrap; + } +} diff --git a/deploy/tkfb-package/web-ui/css/daily-work-report.css b/deploy/tkfb-package/web-ui/css/daily-work-report.css new file mode 100644 index 0000000..3998af4 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/daily-work-report.css @@ -0,0 +1,2018 @@ +/* daily-work-report.css - 일일 작업보고서 스타일 */ + +/* 탭 메뉴 스타일 */ +.tab-menu { + display: flex; + gap: 0.5rem; + border-bottom: 2px solid var(--border-color, #e5e7eb); + margin-bottom: 1.5rem; +} + +/* 날짜 그룹 스타일 (접기/펼치기) */ +.date-group { + margin-bottom: 1.5rem; + border: 1px solid #e5e7eb; + border-radius: 12px; + overflow: hidden; + background: white; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); +} + +.date-group-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 1rem 1.25rem; + background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%); + border-bottom: 1px solid #e5e7eb; + cursor: pointer; + transition: background-color 0.2s; + user-select: none; +} + +.date-group-header:hover { + background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%); +} + +.date-group-header.has-issues { + background: linear-gradient(135deg, #fefce8 0%, #fef9c3 100%); + border-bottom-color: #fde047; +} + +.date-group-header.has-issues:hover { + background: linear-gradient(135deg, #fef9c3 0%, #fef08a 100%); +} + +.date-header-left { + display: flex; + align-items: center; + gap: 0.75rem; +} + +.date-toggle-icon { + font-size: 0.75rem; + color: #64748b; + width: 1rem; + text-align: center; +} + +.date-title { + font-weight: 600; + font-size: 1.1rem; + color: #1e293b; +} + +.today-badge { + background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); + color: white; + padding: 0.2rem 0.6rem; + border-radius: 10px; + font-size: 0.7rem; + font-weight: 600; +} + +.date-header-center { + display: flex; + gap: 1rem; +} + +.date-stat { + font-size: 0.85rem; + color: #64748b; +} + +.date-header-right { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.date-issue-summary { + display: flex; + gap: 0.5rem; +} + +.issue-badge { + padding: 0.25rem 0.6rem; + border-radius: 12px; + font-size: 0.75rem; + font-weight: 600; +} + +.issue-badge.nonconformity { + background: #fef2f2; + color: #dc2626; + border: 1px solid #fecaca; +} + +.issue-badge.safety { + background: #fefce8; + color: #ca8a04; + border: 1px solid #fde047; +} + +.no-issues { + font-size: 0.8rem; + color: #94a3b8; +} + +.date-group-content { + padding: 1rem; + background: #fafafa; +} + +.date-group.collapsed .date-group-content { + display: none; +} + +/* 부적합 버튼 강조 (관련 이슈 있을 때) */ +.btn-defect-toggle.has-related-issue { + background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%); + border-color: #f87171; + color: #dc2626; + animation: pulse-attention 2s infinite; +} + +.btn-defect-toggle.has-related-issue:hover { + background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%); +} + +@keyframes pulse-attention { + 0%, 100% { + box-shadow: 0 0 0 0 rgba(248, 113, 113, 0.4); + } + 50% { + box-shadow: 0 0 0 4px rgba(248, 113, 113, 0); + } +} + +/* TBM 세션 그룹 스타일 */ +.tbm-session-group { + margin-bottom: 2rem; +} + +.tbm-session-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 0.75rem 1.5rem; + border-radius: 8px 8px 0 0; + display: flex; + align-items: center; + gap: 1rem; + font-size: 0.875rem; +} + +.tbm-session-badge { + background-color: rgba(255, 255, 255, 0.3); + padding: 0.25rem 0.75rem; + border-radius: 12px; + font-weight: 600; + font-size: 0.75rem; +} + +.tbm-session-date { + font-weight: 600; + font-size: 1rem; +} + +.tbm-session-creator { + font-size: 0.8rem; + opacity: 0.9; +} + +.tbm-session-count { + background-color: rgba(255, 255, 255, 0.2); + padding: 0.25rem 0.625rem; + border-radius: 12px; + font-weight: 600; + margin-left: auto; +} + +.tbm-session-info { + opacity: 0.95; + font-size: 0.875rem; +} + +/* 당일 신고 리마인더 스타일 */ +.issue-reminder-section { + background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); + border: 1px solid #f59e0b; + border-top: none; + padding: 1rem 1.5rem; +} + +.issue-reminder-header { + display: flex; + align-items: center; + gap: 0.5rem; + margin-bottom: 0.75rem; +} + +.issue-reminder-icon { + font-size: 1.25rem; +} + +.issue-reminder-title { + font-weight: 600; + color: #92400e; + font-size: 0.9375rem; +} + +.issue-reminder-count { + background: #f59e0b; + color: white; + padding: 0.125rem 0.5rem; + border-radius: 10px; + font-size: 0.75rem; + font-weight: 600; +} + +.issue-reminder-list { + display: flex; + flex-direction: column; + gap: 0.5rem; + margin-bottom: 0.75rem; +} + +.issue-reminder-item { + display: flex; + align-items: center; + gap: 0.75rem; + background: white; + padding: 0.5rem 0.75rem; + border-radius: 6px; + font-size: 0.8125rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.issue-reminder-item.nonconformity { + border-left: 3px solid #f59e0b; +} + +.issue-reminder-item.safety { + border-left: 3px solid #ef4444; +} + +.issue-type-badge { + padding: 0.125rem 0.5rem; + border-radius: 4px; + font-size: 0.6875rem; + font-weight: 600; + flex-shrink: 0; +} + +.issue-reminder-item.nonconformity .issue-type-badge { + background: #fef3c7; + color: #92400e; +} + +.issue-reminder-item.safety .issue-type-badge { + background: #fee2e2; + color: #b91c1c; +} + +.issue-category { + color: #6b7280; + font-size: 0.75rem; + flex-shrink: 0; +} + +.issue-item { + flex: 1; + color: #374151; + font-weight: 500; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.issue-location { + color: #6b7280; + font-size: 0.75rem; + flex-shrink: 0; +} + +.issue-status { + padding: 0.125rem 0.375rem; + border-radius: 4px; + font-size: 0.6875rem; + font-weight: 500; + flex-shrink: 0; +} + +.issue-status.status-reported { + background: #dbeafe; + color: #1d4ed8; +} + +.issue-status.status-received { + background: #fed7aa; + color: #c2410c; +} + +.issue-status.status-in_progress { + background: #e9d5ff; + color: #7c3aed; +} + +.issue-status.status-completed { + background: #d1fae5; + color: #047857; +} + +.issue-status.status-closed { + background: #f3f4f6; + color: #4b5563; +} + +.issue-reminder-more { + text-align: center; + color: #92400e; + font-size: 0.75rem; + font-style: italic; +} + +.issue-reminder-hint { + background: rgba(255, 255, 255, 0.7); + padding: 0.5rem 0.75rem; + border-radius: 6px; + font-size: 0.8125rem; + color: #78350f; +} + +/* TBM 작업 테이블 스타일 */ +.tbm-table-container { + overflow-x: auto; + border: 1px solid var(--border-color, #e5e7eb); + border-radius: 0 0 8px 8px; + background: white; +} + +.tbm-work-table { + width: 100%; + border-collapse: collapse; + font-size: 0.875rem; +} + +.tbm-work-table thead { + background-color: #f9fafb; + border-bottom: 2px solid var(--border-color, #e5e7eb); +} + +.tbm-work-table th { + padding: 0.75rem 0.5rem; + text-align: left; + font-weight: 600; + color: var(--text-secondary, #6b7280); + border-bottom: 2px solid var(--border-color, #e5e7eb); + white-space: nowrap; + font-size: 0.8rem; +} + +.tbm-work-table td { + padding: 0.75rem 0.5rem; + border-bottom: 1px solid var(--border-light, #f3f4f6); + vertical-align: middle; +} + +.tbm-work-table tbody tr:hover { + background-color: #f9fafb; +} + +.tbm-work-table tbody tr:last-child td { + border-bottom: none; +} + +.worker-cell { + min-width: 100px; +} + +.worker-cell strong { + display: block; + color: var(--text-primary, #111827); + margin-bottom: 0.25rem; +} + +.worker-job-type { + font-size: 0.75rem; + color: var(--text-secondary, #6b7280); + background-color: #f3f4f6; + padding: 0.125rem 0.5rem; + border-radius: 4px; + display: inline-block; +} + +.workplace-cell div { + font-size: 0.8rem; +} + +.workplace-cell div:first-child { + color: var(--text-secondary, #6b7280); + font-size: 0.75rem; +} + +.form-input-compact { + width: 70px; + padding: 0.375rem 0.5rem; + border: 1px solid var(--border-color, #d1d5db); + border-radius: 4px; + font-size: 0.875rem; + text-align: center; +} + +.form-input-compact:focus { + outline: none; + border-color: var(--primary, #3b82f6); + box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1); +} + +.form-input-compact[type="number"] { + -moz-appearance: textfield; +} + +.form-input-compact[type="number"]::-webkit-outer-spin-button, +.form-input-compact[type="number"]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.btn-submit-compact { + padding: 0.5rem 1rem; + background-color: var(--primary, #3b82f6); + color: white; + border: none; + border-radius: 4px; + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; + transition: background-color 0.2s; + white-space: nowrap; +} + +.btn-submit-compact:hover { + background-color: var(--primary-dark, #2563eb); +} + +.btn-submit-compact:active { + transform: scale(0.98); +} + +.btn-add-work { + padding: 0.625rem 1.25rem; + background-color: #10b981; + color: white; + border: none; + border-radius: 6px; + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; + transition: background-color 0.2s; +} + +.btn-add-work:hover { + background-color: #059669; +} + +.btn-delete-compact { + padding: 0.375rem 0.625rem; + background-color: #ef4444; + color: white; + border: none; + border-radius: 4px; + font-size: 0.875rem; + cursor: pointer; + transition: background-color 0.2s; +} + +.btn-delete-compact:hover { + background-color: #dc2626; +} + +.btn-map-select { + padding: 0.5rem 0.875rem; + background-color: #8b5cf6; + color: white; + border: none; + border-radius: 4px; + font-size: 0.8rem; + font-weight: 500; + cursor: pointer; + transition: background-color 0.2s; + white-space: nowrap; +} + +.btn-map-select:hover { + background-color: #7c3aed; +} + +/* 작업장소 선택 박스 hover 효과 */ +.workplace-select-box { + transition: all 0.2s ease; +} + +.workplace-select-box:hover { + background-color: #f3f4f6 !important; + border-color: #8b5cf6 !important; + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(139, 92, 246, 0.1); +} + +.workplace-category-btn, +.workplace-btn { + padding: 0.75rem 1rem; + background-color: #f3f4f6; + border: 2px solid #e5e7eb; + border-radius: 6px; + cursor: pointer; + transition: all 0.2s; + font-size: 0.875rem; + font-weight: 500; + text-align: center; +} + +.workplace-category-btn:hover, +.workplace-btn:hover { + background-color: #e0e7ff; + border-color: #818cf8; + color: #4338ca; +} + +.workplace-category-btn:active, +.workplace-btn:active { + transform: scale(0.98); +} + +/* 작업장소 선택 모달 */ +#workplaceModal.modal { + display: none; + position: fixed; + z-index: 1000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + align-items: center; + justify-content: center; +} + +#workplaceModal .modal-content { + background-color: white; + margin: auto; + padding: 0; + border-radius: 8px; + max-width: 600px; + width: 90%; + max-height: 80vh; + overflow: hidden; + display: flex; + flex-direction: column; +} + +#workplaceModal .modal-header { + padding: 1.5rem; + border-bottom: 1px solid #e5e7eb; + display: flex; + justify-content: space-between; + align-items: center; +} + +#workplaceModal .modal-header h3 { + margin: 0; + font-size: 1.25rem; + color: #111827; +} + +#workplaceModal .modal-close { + background: none; + border: none; + font-size: 1.5rem; + cursor: pointer; + color: #6b7280; + padding: 0; + width: 2rem; + height: 2rem; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; +} + +#workplaceModal .modal-close:hover { + background-color: #f3f4f6; + color: #111827; +} + +#workplaceModal .modal-body { + padding: 1.5rem; + overflow-y: auto; +} + +.tab-btn { + padding: 0.75rem 1.5rem; + background: none; + border: none; + border-bottom: 3px solid transparent; + cursor: pointer; + font-weight: 500; + color: var(--text-secondary, #6b7280); + transition: all 0.2s; +} + +.tab-btn:hover { + color: var(--primary, #3b82f6); +} + +.tab-btn.active { + color: var(--primary, #3b82f6); + border-bottom-color: var(--primary, #3b82f6); +} + +/* TBM 작업 카드 스타일 */ +.tbm-work-card { + background: white; + border: 1px solid var(--border-color, #e5e7eb); + border-radius: 8px; + padding: 1.5rem; + margin-bottom: 1.5rem; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.tbm-work-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; + padding-bottom: 1rem; + border-bottom: 2px solid var(--border-color, #e5e7eb); +} + +.tbm-work-header h4 { + margin: 0; + font-size: 1.125rem; + color: var(--text-primary, #111827); +} + +.tbm-work-date { + font-size: 0.875rem; + color: var(--text-secondary, #6b7280); + background: var(--bg-secondary, #f3f4f6); + padding: 0.25rem 0.75rem; + border-radius: 4px; +} + +.tbm-work-info { + margin-bottom: 1.5rem; +} + +.info-row { + display: flex; + padding: 0.5rem 0; + border-bottom: 1px solid var(--border-light, #f3f4f6); +} + +.info-row:last-child { + border-bottom: none; +} + +.info-row .label { + font-weight: 600; + color: var(--text-secondary, #6b7280); + min-width: 100px; + font-size: 0.875rem; +} + +.info-row .value { + color: var(--text-primary, #111827); + flex: 1; +} + +.tbm-work-input { + background: var(--bg-secondary, #f9fafb); + padding: 1.5rem; + border-radius: 6px; + margin-bottom: 1rem; +} + +.tbm-work-input .form-group { + margin-bottom: 1rem; +} + +.tbm-work-input .form-group:last-child { + margin-bottom: 0; +} + +.tbm-work-input label { + display: block; + font-weight: 500; + font-size: 0.875rem; + color: var(--text-secondary, #6b7280); + margin-bottom: 0.5rem; +} + +.tbm-work-input .form-input { + width: 100%; + padding: 0.625rem; + border: 1px solid var(--border-color, #d1d5db); + border-radius: 4px; + font-size: 1rem; +} + +.tbm-work-input .form-input:focus { + outline: none; + border-color: var(--primary, #3b82f6); + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +.tbm-work-input .form-input[readonly] { + background-color: #f3f4f6; + cursor: not-allowed; +} + +/* 버튼 스타일 */ +.btn-block { + width: 100%; + padding: 0.875rem; + font-size: 1rem; + font-weight: 500; +} + +.btn-primary { + background-color: var(--primary, #3b82f6); + color: white; + border: none; + border-radius: 6px; + cursor: pointer; + transition: background-color 0.2s; +} + +.btn-primary:hover { + background-color: var(--primary-dark, #2563eb); +} + +.btn-primary:disabled { + background-color: #9ca3af; + cursor: not-allowed; +} + +/* 메시지 스타일 */ +.message { + padding: 1rem; + border-radius: 6px; + margin-bottom: 1rem; + font-size: 0.875rem; +} + +.message.error { + background-color: #fee2e2; + color: #991b1b; + border-left: 4px solid #dc2626; +} + +.message.success { + background-color: #dcfce7; + color: #166534; + border-left: 4px solid #16a34a; +} + +.message.info { + background-color: #dbeafe; + color: #1e40af; + border-left: 4px solid #3b82f6; +} + +/* 완료된 보고서 카드 스타일 */ +.completed-report-card { + background: white; + border: 1px solid var(--border-color, #e5e7eb); + border-radius: 8px; + padding: 1.5rem; + margin-bottom: 1.5rem; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.completed-report-card .report-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; + padding-bottom: 1rem; + border-bottom: 2px solid var(--border-color, #e5e7eb); +} + +.completed-report-card .report-header h4 { + margin: 0 0.5rem 0 0; + font-size: 1.125rem; + color: var(--text-primary, #111827); + display: inline-block; +} + +.completed-report-card .report-date { + font-size: 0.875rem; + color: var(--text-secondary, #6b7280); + background: var(--bg-secondary, #f3f4f6); + padding: 0.25rem 0.75rem; + border-radius: 4px; +} + +.completed-report-card .report-info { + margin-top: 1rem; +} + +.tbm-badge { + display: inline-block; + background-color: #dbeafe; + color: #1e40af; + padding: 0.25rem 0.75rem; + border-radius: 12px; + font-size: 0.75rem; + font-weight: 600; + margin-left: 0.5rem; +} + +.manual-badge { + display: inline-block; + background-color: #f3f4f6; + color: #6b7280; + padding: 0.25rem 0.75rem; + border-radius: 12px; + font-size: 0.75rem; + font-weight: 600; + margin-left: 0.5rem; +} + +.form-group { + margin-bottom: 1rem; +} + +.form-label { + display: block; + font-weight: 500; + font-size: 0.875rem; + color: var(--text-secondary, #6b7280); + margin-bottom: 0.5rem; +} + +.form-input { + width: 100%; + padding: 0.625rem; + border: 1px solid var(--border-color, #d1d5db); + border-radius: 4px; + font-size: 1rem; +} + +.form-input:focus { + outline: none; + border-color: var(--primary, #3b82f6); + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +/* 시간 입력 트리거 (클릭 가능한 영역) */ +.time-input-trigger { + padding: 0.5rem 0.75rem; + background: #f9fafb; + border: 2px solid #e5e7eb; + border-radius: 6px; + cursor: pointer; + text-align: center; + font-weight: 600; + color: #374151; + min-height: 44px; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; + user-select: none; +} + +.time-input-trigger:hover { + background: #f3f4f6; + border-color: #3b82f6; + color: #3b82f6; +} + +.time-input-trigger.has-value { + background: #eff6ff; + border-color: #3b82f6; + color: #1e40af; +} + +.time-input-trigger.placeholder { + color: #9ca3af; + font-style: italic; + font-weight: 400; +} + +/* 시간 선택 팝오버 */ +.time-picker-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + z-index: 2000; + display: flex; + align-items: center; + justify-content: center; + padding: 1rem; +} + +.time-picker-popup { + background: white; + border-radius: 16px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + padding: 1.5rem; + max-width: 400px; + width: 100%; + animation: popupSlideIn 0.3s ease-out; +} + +@keyframes popupSlideIn { + from { + opacity: 0; + transform: translateY(20px) scale(0.95); + } + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} + +.time-picker-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.25rem; +} + +.time-picker-header h3 { + margin: 0; + font-size: 1.125rem; + font-weight: 700; + color: #111827; +} + +.time-picker-close { + background: none; + border: none; + font-size: 1.75rem; + color: #6b7280; + cursor: pointer; + padding: 0; + width: 2rem; + height: 2rem; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; + transition: all 0.2s; +} + +.time-picker-close:hover { + background: #f3f4f6; + color: #111827; +} + +/* 퀵 선택 버튼 그리드 */ +.quick-time-grid { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 0.5rem; + margin-bottom: 1.25rem; +} + +.time-btn { + padding: 1rem 0.5rem; + background: #3b82f6; + color: white; + border: none; + border-radius: 10px; + cursor: pointer; + font-weight: 700; + font-size: 0.875rem; + min-height: 64px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + transition: all 0.2s ease; + box-shadow: 0 2px 4px rgba(59, 130, 246, 0.2); +} + +.time-btn:hover { + background: #2563eb; + transform: translateY(-2px); + box-shadow: 0 4px 8px rgba(59, 130, 246, 0.3); +} + +.time-btn:active { + transform: translateY(0) scale(0.98); + box-shadow: 0 2px 4px rgba(59, 130, 246, 0.2); +} + +.time-btn .time-value { + font-size: 0.95rem; +} + +/* 미세 조정 영역 */ +.time-adjust-area { + background: #f9fafb; + border: 1px solid #e5e7eb; + border-radius: 10px; + padding: 1rem; + margin-bottom: 1rem; + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +.current-time-label { + font-size: 0.875rem; + color: #6b7280; + font-weight: 500; +} + +.current-time-value { + font-size: 1.5rem; + color: #111827; + font-weight: 700; + display: block; + margin-bottom: 0.5rem; +} + +.adjust-buttons { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0.5rem; +} + +.adjust-btn { + padding: 0.875rem 1rem; + background: #6b7280; + color: white; + border: none; + border-radius: 8px; + font-weight: 700; + font-size: 0.875rem; + cursor: pointer; + min-height: 48px; + transition: all 0.2s ease; +} + +.adjust-btn:hover { + background: #4b5563; + transform: translateY(-1px); +} + +.adjust-btn:active { + transform: translateY(0) scale(0.98); +} + +/* 확인 버튼 */ +.confirm-btn { + width: 100%; + padding: 1rem; + background: #10b981; + color: white; + border: none; + border-radius: 10px; + font-weight: 700; + font-size: 1rem; + cursor: pointer; + min-height: 52px; + transition: all 0.2s ease; + box-shadow: 0 2px 4px rgba(16, 185, 129, 0.2); +} + +.confirm-btn:hover { + background: #059669; + transform: translateY(-2px); + box-shadow: 0 4px 8px rgba(16, 185, 129, 0.3); +} + +.confirm-btn:active { + transform: translateY(0) scale(0.98); +} + +/* ================================================ + 저장 결과 모달 스타일 + ================================================ */ +.modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 10000; + padding: 1rem; +} + +.modal-container.result-modal { + background: white; + border-radius: 12px; + max-width: 500px; + width: 100%; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2); +} + +.modal-header { + padding: 1.5rem; + border-bottom: 1px solid #e5e7eb; + display: flex; + justify-content: space-between; + align-items: center; +} + +.modal-header h2 { + margin: 0; + font-size: 1.25rem; + font-weight: 600; +} + +.modal-close-btn { + background: none; + border: none; + font-size: 1.5rem; + cursor: pointer; + color: #6b7280; + padding: 0; + width: 2rem; + height: 2rem; + display: flex; + align-items: center; + justify-content: center; + border-radius: 4px; + transition: background 0.2s; +} + +.modal-close-btn:hover { + background: #f3f4f6; +} + +.modal-body { + padding: 2rem 1.5rem; +} + +.result-icon { + text-align: center; + font-size: 3rem; + margin-bottom: 1rem; +} + +.result-title { + text-align: center; + font-size: 1.5rem; + font-weight: 600; + margin-bottom: 0.5rem; +} + +.result-title.success { + color: #10b981; +} + +.result-title.error { + color: #ef4444; +} + +.result-title.warning { + color: #f59e0b; +} + +.result-message { + text-align: center; + color: #6b7280; + margin-bottom: 1rem; +} + +.result-details { + margin-top: 1.5rem; + padding: 1rem; + background: #f9fafb; + border-radius: 8px; +} + +.result-details h4 { + margin: 0 0 0.5rem 0; + font-size: 0.875rem; + font-weight: 600; + color: #374151; +} + +.result-details ul { + margin: 0; + padding-left: 1.5rem; +} + +.result-details li { + margin-bottom: 0.25rem; + color: #6b7280; +} + +.result-details p { + margin: 0; + color: #6b7280; +} + +.modal-footer { + padding: 1rem 1.5rem; + border-top: 1px solid #e5e7eb; + display: flex; + justify-content: flex-end; + gap: 0.5rem; +} + +/* ================================================================= + 일괄제출 버튼 스타일 + ================================================================= */ + +.batch-submit-container { + padding: 1rem; + background: #f9fafb; + border-top: 2px solid #e5e7eb; + display: flex; + justify-content: center; + align-items: center; +} + +.btn-batch-submit { + background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); + color: white; + border: none; + padding: 0.875rem 2rem; + font-size: 1rem; + font-weight: 600; + border-radius: 8px; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 6px rgba(59, 130, 246, 0.3); + min-width: 280px; + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; +} + +.btn-batch-submit:hover { + background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%); + box-shadow: 0 6px 12px rgba(59, 130, 246, 0.4); + transform: translateY(-2px); +} + +.btn-batch-submit:active { + transform: translateY(0); + box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3); +} + +.btn-batch-submit:disabled { + background: #9ca3af; + cursor: not-allowed; + box-shadow: none; + transform: none; +} + +/* 수동입력 섹션 강조 */ +.manual-input-section { + border: 2px solid #f59e0b; + border-radius: 8px; + margin-bottom: 2rem; + box-shadow: 0 4px 6px rgba(245, 158, 11, 0.1); +} + +.manual-input-section .tbm-session-header { + background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); +} + +/* TBM 세션 그룹 간격 조정 */ +.tbm-session-group:not(.manual-input-section) { + margin-bottom: 1.5rem; +} + +/* 부적합 원인 관리 버튼 */ +.btn-defect-manage { + background: #f3f4f6; + border: 1px solid #d1d5db; + border-radius: 6px; + padding: 0.5rem 0.75rem; + cursor: pointer; + font-size: 0.875rem; + min-width: 80px; + text-align: center; + transition: all 0.2s ease; +} + +.btn-defect-manage:hover { + background: #e5e7eb; + border-color: #9ca3af; +} + +.btn-defect-manage span { + color: #9ca3af; +} + +.btn-defect-manage span[style*="color: #dc2626"] { + font-weight: 500; +} + +/* 부적합 토글 버튼 (인라인 방식) */ +.btn-defect-toggle { + background: #f9fafb; + border: 2px solid #e5e7eb; + border-radius: 6px; + padding: 0.5rem 0.75rem; + cursor: pointer; + font-size: 0.875rem; + min-width: 70px; + text-align: center; + transition: all 0.2s ease; + display: flex; + align-items: center; + justify-content: center; + min-height: 44px; +} + +.btn-defect-toggle:hover { + background: #f3f4f6; + border-color: #d97706; +} + +.btn-defect-toggle.has-defect { + background: #fef3c7; + border-color: #f59e0b; +} + +.btn-defect-toggle span { + color: #6b7280; + font-weight: 500; +} + +.btn-defect-toggle.has-defect span { + color: #dc2626; + font-weight: 600; +} + +/* 부적합 인라인 영역 */ +.defect-row td { + border-bottom: 1px solid #fcd34d !important; +} + +.defect-inline-area { + padding: 0.75rem 1rem; + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.defect-list { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.defect-inline-item { + display: flex; + align-items: center; + gap: 0.5rem; + background: white; + padding: 0.5rem; + border-radius: 6px; + border: 1px solid #e5e7eb; +} + +.defect-select { + flex: 1; + min-width: 120px; + max-width: 200px; + padding: 0.5rem; + border: 1px solid #d1d5db; + border-radius: 6px; + font-size: 0.875rem; + background: white; +} + +.defect-select:focus { + outline: none; + border-color: #f59e0b; + box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.1); +} + +.defect-time-input { + display: flex; + align-items: center; + gap: 0.25rem; + padding: 0.5rem 0.75rem; + background: #f9fafb; + border: 2px solid #e5e7eb; + border-radius: 6px; + cursor: pointer; + min-width: 80px; + justify-content: center; + transition: all 0.2s ease; +} + +.defect-time-input:hover { + background: #f3f4f6; + border-color: #f59e0b; +} + +.defect-time-value { + font-weight: 600; + color: #374151; + font-size: 0.875rem; +} + +.defect-time-unit { + font-size: 0.75rem; + color: #6b7280; +} + +.btn-remove-defect { + width: 32px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; + background: #fee2e2; + color: #dc2626; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 1.25rem; + font-weight: bold; + transition: all 0.2s ease; +} + +.btn-remove-defect:hover { + background: #fecaca; +} + +.btn-add-defect-inline { + align-self: flex-start; + padding: 0.5rem 1rem; + background: #f59e0b; + color: white; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 0.875rem; + font-weight: 500; + transition: all 0.2s ease; +} + +.btn-add-defect-inline:hover { + background: #d97706; +} + +/* ================================================================= + 이슈 기반 부적합 선택 UI + ================================================================= */ + +/* 이슈 섹션 전체 */ +.defect-issue-section { + margin-bottom: 0.75rem; +} + +.defect-issue-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.5rem 0.75rem; + background: #fef3c7; + border-radius: 6px 6px 0 0; + border: 1px solid #fcd34d; + border-bottom: none; +} + +.defect-issue-title { + font-weight: 600; + color: #92400e; + font-size: 0.8125rem; +} + +.defect-issue-count { + background: #f59e0b; + color: white; + padding: 0.125rem 0.375rem; + border-radius: 8px; + font-size: 0.6875rem; + font-weight: 600; +} + +/* 이슈 목록 */ +.defect-issue-list { + border: 1px solid #e5e7eb; + border-top: none; + border-radius: 0 0 6px 6px; + overflow: hidden; +} + +/* 개별 이슈 아이템 - 가벼운 인라인 스타일 */ +.defect-issue-item { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.5rem 0.75rem; + background: white; + border-bottom: 1px solid #f3f4f6; + transition: all 0.2s ease; + font-size: 0.8125rem; +} + +.defect-issue-item:last-child { + border-bottom: none; +} + +.defect-issue-item:hover { + background: #f9fafb; +} + +.defect-issue-item.selected { + background: #fef2f2; + border-left: 3px solid #ef4444; +} + +/* 체크박스 영역 */ +.defect-issue-checkbox { + flex-shrink: 0; +} + +.defect-issue-checkbox input[type="checkbox"] { + width: 16px; + height: 16px; + cursor: pointer; + accent-color: #ef4444; +} + +/* 이슈 정보 영역 - 인라인 */ +.defect-issue-info { + flex: 1; + min-width: 0; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.defect-issue-category { + font-size: 0.75rem; + color: #6b7280; + flex-shrink: 0; +} + +.defect-issue-item-name { + font-weight: 500; + color: #374151; + font-size: 0.8125rem; + flex: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.defect-issue-location { + font-size: 0.75rem; + color: #9ca3af; + flex-shrink: 0; +} + +/* 시간 입력 영역 */ +.defect-issue-time { + flex-shrink: 0; +} + +.defect-issue-time .defect-time-input { + background: #f3f4f6; + opacity: 0.5; + cursor: not-allowed; + padding: 0.375rem 0.625rem; + font-size: 0.75rem; +} + +.defect-issue-time.active .defect-time-input { + background: #fee2e2; + opacity: 1; + cursor: pointer; + border-color: #ef4444; +} + +.defect-issue-time.active .defect-time-input:hover { + background: #fecaca; +} + +/* 레거시 부적합 섹션 */ +.defect-legacy-section { + margin-top: 1rem; +} + +.btn-add-legacy-defect { + display: inline-flex; + align-items: center; + gap: 0.375rem; + padding: 0.5rem 0.875rem; + background: #f3f4f6; + color: #374151; + border: 1px dashed #d1d5db; + border-radius: 6px; + cursor: pointer; + font-size: 0.8rem; + font-weight: 500; + transition: all 0.2s ease; + margin-bottom: 0.5rem; +} + +.btn-add-legacy-defect:hover { + background: #e5e7eb; + border-color: #9ca3af; +} + +.defect-legacy-list { + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +/* ================================================================= + 순차 입력 부적합 UI (대분류 → 소분류 → 추가내용) + ================================================================= */ + +.defect-cascading-item { + background: #fefce8; + border: 1px solid #fde047; + border-radius: 8px; + padding: 0.75rem; + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.defect-cascading-row { + display: flex; + align-items: flex-end; + gap: 0.5rem; + flex-wrap: wrap; +} + +.defect-field { + display: flex; + flex-direction: column; + gap: 0.25rem; + min-width: 100px; +} + +.defect-field-label { + font-size: 0.7rem; + font-weight: 600; + color: #92400e; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.defect-select-wrapper { + position: relative; +} + +.defect-category-select, +.defect-item-select { + width: 100%; + min-width: 120px; + max-width: none; + padding: 0.5rem 0.75rem; + border: 1px solid #fde047; + border-radius: 6px; + font-size: 0.8125rem; + background: white; + cursor: pointer; +} + +.defect-category-select:focus, +.defect-item-select:focus { + outline: none; + border-color: #f59e0b; + box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.2); +} + +.defect-category-select:disabled, +.defect-item-select:disabled { + background: #f3f4f6; + color: #9ca3af; + cursor: not-allowed; +} + +.defect-field-time { + min-width: 70px; + flex-shrink: 0; +} + +.defect-field-time .defect-time-input { + background: white; + border-color: #fde047; +} + +.defect-note-row { + display: flex; + gap: 0.5rem; +} + +.defect-note-input { + flex: 1; + padding: 0.5rem 0.75rem; + border: 1px solid #e5e7eb; + border-radius: 6px; + font-size: 0.8125rem; + background: white; +} + +.defect-note-input:focus { + outline: none; + border-color: #f59e0b; + box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.1); +} + +.defect-note-input::placeholder { + color: #9ca3af; +} + +.defect-preview { + padding: 0.375rem 0.625rem; + background: rgba(245, 158, 11, 0.1); + border-radius: 4px; +} + +.defect-preview-text { + font-size: 0.75rem; + color: #92400e; + font-weight: 500; +} + +/* 부적합 액션 버튼 영역 */ +.defect-action-buttons { + display: flex; + gap: 0.5rem; + margin-top: 0.75rem; + align-items: center; +} + +.btn-save-defects { + padding: 0.5rem 1.25rem; + background: #16a34a; + color: white; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 0.875rem; + font-weight: 600; + transition: all 0.2s ease; +} + +.btn-save-defects:hover { + background: #15803d; +} + +.btn-save-defects.saved { + background: #22c55e; + cursor: default; +} + +.btn-save-defects:disabled { + opacity: 0.8; +} + +/* 저장 완료 메시지 */ +.defect-save-message { + display: flex; + align-items: center; + gap: 0.5rem; + margin-top: 0.5rem; + padding: 0.5rem 0.75rem; + background: #dcfce7; + border: 1px solid #86efac; + border-radius: 6px; + animation: fadeIn 0.3s ease; +} + +.save-message-text { + font-size: 0.8125rem; + color: #166534; + font-weight: 500; +} + +.save-message-text::before { + content: '✓ '; +} + +/* 저장 하이라이트 애니메이션 */ +.defect-legacy-list.saved-highlight .defect-cascading-item { + animation: highlightPulse 0.5s ease; +} + +@keyframes highlightPulse { + 0% { background-color: #fefce8; } + 50% { background-color: #dcfce7; } + 100% { background-color: #fefce8; } +} + +@keyframes fadeIn { + from { opacity: 0; transform: translateY(-5px); } + to { opacity: 1; transform: translateY(0); } +} + +/* ================================================================= + 저장된 부적합 섹션 + ================================================================= */ + +.defect-saved-section { + background: #f0fdf4; + border: 1px solid #86efac; + border-radius: 8px; + margin-bottom: 1rem; + overflow: hidden; +} + +.defect-saved-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.625rem 1rem; + background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%); + border-bottom: 1px solid #86efac; +} + +.defect-saved-title { + font-size: 0.8125rem; + font-weight: 600; + color: #166534; +} + +.defect-saved-count { + font-size: 0.75rem; + font-weight: 600; + color: white; + background: #16a34a; + padding: 0.125rem 0.5rem; + border-radius: 10px; +} + +.defect-saved-list { + padding: 0.5rem; +} + +.defect-saved-item { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.625rem 0.75rem; + background: white; + border: 1px solid #d1fae5; + border-radius: 6px; + margin-bottom: 0.375rem; + gap: 0.75rem; +} + +.defect-saved-item:last-child { + margin-bottom: 0; +} + +.defect-saved-info { + flex: 1; + min-width: 0; + display: flex; + flex-direction: column; + gap: 0.125rem; +} + +.defect-saved-category { + font-size: 0.75rem; + font-weight: 600; + color: #16a34a; +} + +.defect-saved-detail { + font-size: 0.8125rem; + color: #374151; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.defect-saved-actions { + display: flex; + align-items: center; + gap: 0.5rem; + flex-shrink: 0; +} + +.defect-saved-hours { + font-size: 0.8125rem; + font-weight: 600; + color: #dc2626; + background: #fee2e2; + padding: 0.25rem 0.625rem; + border-radius: 4px; + white-space: nowrap; +} + +.btn-edit-defect { + padding: 0.25rem 0.625rem; + background: #3b82f6; + color: white; + border: none; + border-radius: 4px; + font-size: 0.75rem; + font-weight: 500; + cursor: pointer; + transition: background 0.2s; +} + +.btn-edit-defect:hover { + background: #2563eb; +} + +.btn-delete-defect { + padding: 0.25rem 0.625rem; + background: #ef4444; + color: white; + border: none; + border-radius: 4px; + font-size: 0.75rem; + font-weight: 500; + cursor: pointer; + transition: background 0.2s; +} + +.btn-delete-defect:hover { + background: #dc2626; +} + +/* 입력 중 섹션 */ +.defect-editing-section { + margin-top: 0.5rem; +} + +/* 반응형 - 저장된 부적합 */ +@media (max-width: 640px) { + .defect-saved-item { + flex-direction: column; + align-items: flex-start; + gap: 0.5rem; + } + + .defect-saved-actions { + width: 100%; + justify-content: flex-end; + } +} + +/* 반응형 - 모바일 */ +@media (max-width: 640px) { + .defect-cascading-row { + flex-direction: column; + align-items: stretch; + } + + .defect-field { + width: 100%; + max-width: none; + } + + .defect-category-select, + .defect-item-select { + max-width: none; + } + + .defect-field-time { + flex-direction: row; + align-items: center; + gap: 0.5rem; + } + + .defect-field-time .defect-field-label { + min-width: 40px; + } + + .btn-remove-defect { + align-self: flex-end; + margin-top: 0.5rem; + } +} + +/* 이슈 없음 상태 */ +.defect-no-issues { + display: flex; + align-items: center; + justify-content: space-between; + padding: 1rem; + background: #f9fafb; + border: 1px dashed #d1d5db; + border-radius: 8px; + margin-bottom: 0.5rem; +} + +.no-issues-text { + color: #6b7280; + font-size: 0.875rem; +} diff --git a/deploy/tkfb-package/web-ui/css/design-system.css b/deploy/tkfb-package/web-ui/css/design-system.css new file mode 100644 index 0000000..ee1b15c --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/design-system.css @@ -0,0 +1,477 @@ +/* ✅ design-system.css - 한글 기반 모던 디자인 시스템 */ + +/* ========== 색상 시스템 ========== */ +:root { + /* 주요 브랜드 색상 (하늘색 계열) */ + --primary-50: #f0f9ff; + --primary-100: #e0f2fe; + --primary-200: #bae6fd; + --primary-300: #7dd3fc; + --primary-400: #38bdf8; + --primary-500: #0ea5e9; + --primary-600: #0284c7; + --primary-700: #0369a1; + --primary-800: #075985; + --primary-900: #0c4a6e; + + /* 헤더 그라디언트 */ + --header-gradient: linear-gradient(135deg, #0ea5e9 0%, #38bdf8 50%, #7dd3fc 100%); + + /* 보조 색상 */ + --secondary-50: #f3e5f5; + --secondary-100: #e1bee7; + --secondary-200: #ce93d8; + --secondary-300: #ba68c8; + --secondary-400: #ab47bc; + --secondary-500: #9c27b0; + --secondary-600: #8e24aa; + --secondary-700: #7b1fa2; + --secondary-800: #6a1b9a; + --secondary-900: #4a148c; + + /* 그레이 스케일 */ + --gray-50: #fafafa; + --gray-100: #f5f5f5; + --gray-200: #eeeeee; + --gray-300: #e0e0e0; + --gray-400: #bdbdbd; + --gray-500: #9e9e9e; + --gray-600: #757575; + --gray-700: #616161; + --gray-800: #424242; + --gray-900: #212121; + + /* 상태 색상 */ + --success-50: #e8f5e8; + --success-500: #4caf50; + --success-700: #388e3c; + + --warning-50: #fff8e1; + --warning-500: #ff9800; + --warning-700: #f57c00; + + --error-50: #ffebee; + --error-500: #f44336; + --error-700: #d32f2f; + + --info-50: #e1f5fe; + --info-500: #03a9f4; + --info-700: #0288d1; + + /* 따뜻한 중성 색상 (베이지/크림) */ + --warm-50: #fafaf9; /* 매우 밝은 크림 */ + --warm-100: #f5f5f4; /* 밝은 크림 */ + --warm-200: #e7e5e4; /* 베이지 */ + --warm-300: #d6d3d1; /* 중간 베이지 */ + --warm-400: #a8a29e; /* 진한 베이지 */ + --warm-500: #78716c; /* 그레이 베이지 */ + + /* 부드러운 작업 상태 색상 (눈이 편한 톤) */ + --status-success-bg: #dcfce7; /* 부드러운 초록 배경 */ + --status-success-text: #16a34a; /* 부드러운 초록 텍스트 */ + --status-info-bg: #e0f2fe; /* 부드러운 하늘색 배경 */ + --status-info-text: #0284c7; /* 부드러운 하늘색 텍스트 */ + --status-warning-bg: #fef3c7; /* 부드러운 노랑 배경 */ + --status-warning-text: #ca8a04; /* 부드러운 노랑 텍스트 */ + --status-error-bg: #fee2e2; /* 부드러운 빨강 배경 */ + --status-error-text: #dc2626; /* 부드러운 빨강 텍스트 */ + --status-critical-bg: #fecaca; /* 진한 빨강 배경 */ + --status-critical-text: #b91c1c; /* 진한 빨강 텍스트 */ + --status-vacation-bg: #fed7aa; /* 부드러운 주황 배경 */ + --status-vacation-text: #ea580c; /* 부드러운 주황 텍스트 */ + + /* 배경 색상 */ + --bg-primary: #ffffff; + --bg-secondary: #f8fafc; + --bg-tertiary: #f1f5f9; + --bg-overlay: rgba(0, 0, 0, 0.5); + + /* 텍스트 색상 */ + --text-primary: #1a202c; + --text-secondary: #4a5568; + --text-tertiary: #718096; + --text-inverse: #ffffff; + + /* 경계선 */ + --border-light: #e2e8f0; + --border-medium: #cbd5e0; + --border-dark: #a0aec0; + + /* 그림자 */ + --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); + --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); + --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); + + /* 반경 */ + --radius-sm: 4px; + --radius-md: 8px; + --radius-lg: 12px; + --radius-xl: 16px; + --radius-full: 9999px; + + /* 간격 */ + --space-1: 4px; + --space-2: 8px; + --space-3: 12px; + --space-4: 16px; + --space-5: 20px; + --space-6: 24px; + --space-8: 32px; + --space-10: 40px; + --space-12: 48px; + --space-16: 64px; + --space-20: 80px; + --space-24: 96px; + + /* 폰트 크기 */ + --text-xs: 12px; + --text-sm: 14px; + --text-base: 16px; + --text-lg: 18px; + --text-xl: 20px; + --text-2xl: 24px; + --text-3xl: 30px; + --text-4xl: 36px; + --text-5xl: 48px; + + /* 폰트 두께 */ + --font-light: 300; + --font-normal: 400; + --font-medium: 500; + --font-semibold: 600; + --font-bold: 700; + --font-extrabold: 800; + + /* 애니메이션 */ + --transition-fast: 150ms ease-in-out; + --transition-normal: 250ms ease-in-out; + --transition-slow: 350ms ease-in-out; +} + +/* ========== 기본 리셋 ========== */ +* { + box-sizing: border-box; +} + +body { + margin: 0; + padding: 0; + font-family: 'Pretendard', 'Malgun Gothic', 'Apple SD Gothic Neo', system-ui, sans-serif; + font-size: var(--text-base); + line-height: 1.6; + color: var(--text-primary); + background-color: var(--bg-secondary); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* ========== 타이포그래피 ========== */ +.text-xs { font-size: var(--text-xs); } +.text-sm { font-size: var(--text-sm); } +.text-base { font-size: var(--text-base); } +.text-lg { font-size: var(--text-lg); } +.text-xl { font-size: var(--text-xl); } +.text-2xl { font-size: var(--text-2xl); } +.text-3xl { font-size: var(--text-3xl); } +.text-4xl { font-size: var(--text-4xl); } +.text-5xl { font-size: var(--text-5xl); } + +.font-light { font-weight: var(--font-light); } +.font-normal { font-weight: var(--font-normal); } +.font-medium { font-weight: var(--font-medium); } +.font-semibold { font-weight: var(--font-semibold); } +.font-bold { font-weight: var(--font-bold); } +.font-extrabold { font-weight: var(--font-extrabold); } + +.text-primary { color: var(--text-primary); } +.text-secondary { color: var(--text-secondary); } +.text-tertiary { color: var(--text-tertiary); } +.text-inverse { color: var(--text-inverse); } + +/* ========== 카드 컴포넌트 ========== */ +.card { + background: var(--bg-primary); + border-radius: var(--radius-lg); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + transition: var(--transition-normal); +} + +.card:hover { + box-shadow: var(--shadow-md); + transform: translateY(-1px); +} + +.card-header { + padding: var(--space-6); + border-bottom: 1px solid var(--border-light); +} + +.card-body { + padding: var(--space-6); +} + +.card-footer { + padding: var(--space-6); + border-top: 1px solid var(--border-light); + background: var(--bg-tertiary); + border-radius: 0 0 var(--radius-lg) var(--radius-lg); +} + +/* ========== 버튼 컴포넌트 ========== */ +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: var(--space-2); + padding: var(--space-3) var(--space-4); + font-size: var(--text-sm); + font-weight: var(--font-medium); + border-radius: var(--radius-md); + border: none; + cursor: pointer; + transition: var(--transition-fast); + text-decoration: none; + white-space: nowrap; +} + +.btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +.btn-primary { + background: var(--primary-500); + color: var(--text-inverse); +} + +.btn-primary:hover:not(:disabled) { + background: var(--primary-600); + transform: translateY(-1px); + box-shadow: var(--shadow-md); +} + +.btn-secondary { + background: var(--gray-100); + color: var(--text-primary); + border: 1px solid var(--border-medium); +} + +.btn-secondary:hover:not(:disabled) { + background: var(--gray-200); +} + +.btn-success { + background: var(--success-500); + color: var(--text-inverse); +} + +.btn-success:hover:not(:disabled) { + background: var(--success-700); +} + +.btn-warning { + background: var(--warning-500); + color: var(--text-inverse); +} + +.btn-warning:hover:not(:disabled) { + background: var(--warning-700); +} + +.btn-error { + background: var(--error-500); + color: var(--text-inverse); +} + +.btn-error:hover:not(:disabled) { + background: var(--error-700); +} + +.btn-sm { + padding: var(--space-2) var(--space-3); + font-size: var(--text-xs); +} + +.btn-lg { + padding: var(--space-4) var(--space-6); + font-size: var(--text-lg); +} + +/* ========== 배지 컴포넌트 ========== */ +.badge { + display: inline-flex; + align-items: center; + gap: var(--space-1); + padding: var(--space-1) var(--space-2); + font-size: var(--text-xs); + font-weight: var(--font-medium); + border-radius: var(--radius-full); + white-space: nowrap; +} + +.badge-primary { + background: var(--primary-100); + color: var(--primary-800); +} + +.badge-success { + background: var(--success-50); + color: var(--success-700); +} + +.badge-warning { + background: var(--warning-50); + color: var(--warning-700); +} + +.badge-error { + background: var(--error-50); + color: var(--error-700); +} + +.badge-gray { + background: var(--gray-100); + color: var(--gray-700); +} + +/* ========== 상태 표시기 ========== */ +.status-dot { + display: inline-block; + width: 8px; + height: 8px; + border-radius: var(--radius-full); + margin-right: var(--space-2); +} + +.status-dot.active { + background: var(--success-500); + box-shadow: 0 0 0 2px var(--success-100); +} + +.status-dot.inactive { + background: var(--gray-400); +} + +.status-dot.warning { + background: var(--warning-500); + box-shadow: 0 0 0 2px var(--warning-100); +} + +.status-dot.error { + background: var(--error-500); + box-shadow: 0 0 0 2px var(--error-100); +} + +/* ========== 그리드 시스템 ========== */ +.grid { + display: grid; + gap: var(--space-6); +} + +.grid-cols-1 { grid-template-columns: repeat(1, 1fr); } +.grid-cols-2 { grid-template-columns: repeat(2, 1fr); } +.grid-cols-3 { grid-template-columns: repeat(3, 1fr); } +.grid-cols-4 { grid-template-columns: repeat(4, 1fr); } + +@media (max-width: 768px) { + .grid-cols-2, + .grid-cols-3, + .grid-cols-4 { + grid-template-columns: 1fr; + } +} + +/* ========== 플렉스 유틸리티 ========== */ +.flex { display: flex; } +.flex-col { flex-direction: column; } +.items-center { align-items: center; } +.items-start { align-items: flex-start; } +.items-end { align-items: flex-end; } +.justify-center { justify-content: center; } +.justify-between { justify-content: space-between; } +.justify-start { justify-content: flex-start; } +.justify-end { justify-content: flex-end; } +.gap-1 { gap: var(--space-1); } +.gap-2 { gap: var(--space-2); } +.gap-3 { gap: var(--space-3); } +.gap-4 { gap: var(--space-4); } +.gap-6 { gap: var(--space-6); } + +/* ========== 간격 유틸리티 ========== */ +.p-1 { padding: var(--space-1); } +.p-2 { padding: var(--space-2); } +.p-3 { padding: var(--space-3); } +.p-4 { padding: var(--space-4); } +.p-6 { padding: var(--space-6); } +.p-8 { padding: var(--space-8); } + +.m-1 { margin: var(--space-1); } +.m-2 { margin: var(--space-2); } +.m-3 { margin: var(--space-3); } +.m-4 { margin: var(--space-4); } +.m-6 { margin: var(--space-6); } +.m-8 { margin: var(--space-8); } + +.mb-2 { margin-bottom: var(--space-2); } +.mb-4 { margin-bottom: var(--space-4); } +.mb-6 { margin-bottom: var(--space-6); } +.mt-4 { margin-top: var(--space-4); } +.mt-6 { margin-top: var(--space-6); } + +/* ========== 반응형 유틸리티 ========== */ +@media (max-width: 640px) { + .sm\:hidden { display: none; } + .sm\:text-sm { font-size: var(--text-sm); } + .sm\:p-4 { padding: var(--space-4); } +} + +@media (max-width: 768px) { + .md\:hidden { display: none; } + .md\:flex-col { flex-direction: column; } +} + +@media (max-width: 1024px) { + .lg\:hidden { display: none; } +} + +/* ========== 애니메이션 ========== */ +.fade-in { + animation: fadeIn var(--transition-normal) ease-in-out; +} + +.slide-up { + animation: slideUp var(--transition-normal) ease-out; +} + +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + +@keyframes slideUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* ========== 로딩 스피너 ========== */ +.spinner { + width: 20px; + height: 20px; + border: 2px solid var(--gray-200); + border-top: 2px solid var(--primary-500); + border-radius: var(--radius-full); + animation: spin 1s linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} diff --git a/deploy/tkfb-package/web-ui/css/equipment-detail.css b/deploy/tkfb-package/web-ui/css/equipment-detail.css new file mode 100644 index 0000000..c5cf94f --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/equipment-detail.css @@ -0,0 +1,509 @@ +/* equipment-detail.css - 설비 상세 페이지 스타일 */ + +/* 헤더 */ +.eq-detail-header { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 1rem; +} + +.eq-detail-header .page-title-section { + display: flex; + align-items: flex-start; + gap: 1rem; +} + +.btn-back { + display: flex; + align-items: center; + gap: 0.25rem; + padding: 0.5rem 0.75rem; + background: #f3f4f6; + border: 1px solid #d1d5db; + border-radius: 6px; + cursor: pointer; + font-size: 0.875rem; + color: #374151; + transition: all 0.15s ease; +} + +.btn-back:hover { + background: #e5e7eb; +} + +.back-arrow { + font-size: 1.1rem; +} + +.eq-header-info { + display: flex; + flex-direction: column; + gap: 0.25rem; +} + +.eq-header-meta { + font-size: 0.875rem; + color: #6b7280; +} + +.eq-status-badge { + padding: 0.375rem 0.75rem; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 600; + white-space: nowrap; +} + +.eq-status-badge.active { background: #d1fae5; color: #065f46; } +.eq-status-badge.maintenance { background: #fef3c7; color: #92400e; } +.eq-status-badge.repair_needed { background: #fee2e2; color: #991b1b; } +.eq-status-badge.inactive { background: #e5e7eb; color: #374151; } +.eq-status-badge.external { background: #dbeafe; color: #1e40af; } +.eq-status-badge.repair_external { background: #ede9fe; color: #5b21b6; } + +/* 기본 정보 카드 */ +.eq-info-card { + background: white; + border-radius: 12px; + padding: 1.25rem; + margin-bottom: 1.5rem; + box-shadow: 0 1px 3px rgba(0,0,0,0.1); +} + +.eq-info-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + gap: 1rem; +} + +.eq-info-item { + display: flex; + flex-direction: column; + gap: 0.25rem; +} + +.eq-info-label { + font-size: 0.75rem; + color: #6b7280; + font-weight: 500; +} + +.eq-info-value { + font-size: 0.9375rem; + color: #111827; +} + +/* 섹션 */ +.eq-section { + background: white; + border-radius: 12px; + padding: 1.25rem; + margin-bottom: 1.5rem; + box-shadow: 0 1px 3px rgba(0,0,0,0.1); +} + +.eq-section-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; +} + +.eq-section-title { + font-size: 1rem; + font-weight: 600; + color: #111827; + margin: 0; +} + +/* 사진 그리드 */ +.eq-photo-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); + gap: 0.75rem; +} + +.eq-photo-item { + position: relative; + aspect-ratio: 1; + border-radius: 8px; + overflow: hidden; + cursor: pointer; +} + +.eq-photo-item img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.2s ease; +} + +.eq-photo-item:hover img { + transform: scale(1.05); +} + +.eq-photo-delete { + position: absolute; + top: 4px; + right: 4px; + width: 24px; + height: 24px; + background: rgba(239, 68, 68, 0.9); + border: none; + border-radius: 50%; + color: white; + font-size: 14px; + cursor: pointer; + opacity: 0; + transition: opacity 0.2s ease; + display: flex; + align-items: center; + justify-content: center; +} + +.eq-photo-item:hover .eq-photo-delete { + opacity: 1; +} + +.eq-photo-empty { + grid-column: 1 / -1; + text-align: center; + padding: 2rem; + color: #9ca3af; + font-size: 0.875rem; +} + +/* 위치 정보 */ +.eq-location-card { + display: flex; + gap: 1.5rem; + align-items: flex-start; +} + +.eq-location-info { + flex: 1; + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.eq-location-row { + display: flex; + gap: 0.5rem; +} + +.eq-location-label { + font-size: 0.875rem; + color: #6b7280; + min-width: 80px; +} + +.eq-location-value { + font-size: 0.875rem; + color: #111827; + font-weight: 500; +} + +.eq-location-value.eq-moved { + color: #dc2626; +} + +.eq-map-preview { + width: 200px; + height: 150px; + background: #f3f4f6; + border-radius: 8px; + overflow: hidden; + position: relative; +} + +.eq-map-preview img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.eq-map-marker { + position: absolute; + width: 12px; + height: 12px; + background: #dc2626; + border: 2px solid white; + border-radius: 50%; + transform: translate(-50%, -50%); + box-shadow: 0 2px 4px rgba(0,0,0,0.3); +} + +/* 액션 버튼 */ +.eq-action-buttons { + display: flex; + gap: 0.75rem; + margin-bottom: 1.5rem; + flex-wrap: wrap; +} + +.btn-action { + flex: 1; + min-width: 140px; + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + padding: 0.875rem 1rem; + border-radius: 10px; + font-size: 0.9375rem; + font-weight: 600; + border: none; + cursor: pointer; + transition: all 0.15s ease; +} + +.btn-action .btn-icon { + font-size: 1.25rem; +} + +.btn-move { + background: #dbeafe; + color: #1e40af; +} +.btn-move:hover { background: #bfdbfe; } + +.btn-repair { + background: #fef3c7; + color: #92400e; +} +.btn-repair:hover { background: #fde68a; } + +.btn-export { + background: #ede9fe; + color: #5b21b6; +} +.btn-export:hover { background: #ddd6fe; } + +/* 이력 리스트 */ +.eq-history-list { + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +.eq-history-item { + display: flex; + gap: 1rem; + padding: 0.875rem; + background: #f9fafb; + border-radius: 8px; + align-items: flex-start; +} + +.eq-history-date { + font-size: 0.8125rem; + color: #6b7280; + white-space: nowrap; + min-width: 80px; +} + +.eq-history-content { + flex: 1; +} + +.eq-history-title { + font-size: 0.875rem; + font-weight: 500; + color: #111827; + margin-bottom: 0.25rem; +} + +.eq-history-detail { + font-size: 0.8125rem; + color: #6b7280; +} + +.eq-history-status { + font-size: 0.75rem; + padding: 0.25rem 0.5rem; + border-radius: 12px; + font-weight: 500; +} + +.eq-history-status.pending { background: #fef3c7; color: #92400e; } +.eq-history-status.in_progress { background: #dbeafe; color: #1e40af; } +.eq-history-status.completed { background: #d1fae5; color: #065f46; } +.eq-history-status.exported { background: #ede9fe; color: #5b21b6; } +.eq-history-status.returned { background: #d1fae5; color: #065f46; } + +.eq-history-empty { + text-align: center; + padding: 1.5rem; + color: #9ca3af; + font-size: 0.875rem; +} + +.eq-history-action { + padding: 0.375rem 0.75rem; + background: #10b981; + color: white; + border: none; + border-radius: 6px; + font-size: 0.75rem; + cursor: pointer; +} + +.eq-history-action:hover { + background: #059669; +} + +/* 모달 스타일 추가 */ +.photo-preview-container { + margin-top: 1rem; + text-align: center; +} + +.photo-preview { + max-width: 100%; + max-height: 300px; + border-radius: 8px; +} + +.move-step { + min-height: 200px; +} + +.move-instruction { + font-size: 0.875rem; + color: #6b7280; + margin-bottom: 1rem; + text-align: center; +} + +.move-map-container { + width: 100%; + height: 300px; + background: #f3f4f6; + border-radius: 8px; + margin-bottom: 1rem; + position: relative; + overflow: hidden; +} + +.move-map-container img { + width: 100%; + height: 100%; + object-fit: contain; + cursor: crosshair; +} + +.move-marker { + position: absolute; + width: 20px; + height: 20px; + background: #dc2626; + border: 3px solid white; + border-radius: 50%; + transform: translate(-50%, -50%); + box-shadow: 0 2px 8px rgba(0,0,0,0.3); + pointer-events: none; +} + +.checkbox-label { + display: flex; + align-items: center; + gap: 0.5rem; + cursor: pointer; +} + +.checkbox-label input[type="checkbox"] { + width: 18px; + height: 18px; +} + +.repair-photo-previews { + display: flex; + gap: 0.5rem; + flex-wrap: wrap; + margin-top: 0.5rem; +} + +.repair-photo-preview { + width: 60px; + height: 60px; + border-radius: 6px; + object-fit: cover; +} + +/* 사진 확대 보기 */ +.photo-view-container { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0,0,0,0.9); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; + cursor: pointer; +} + +.photo-view-close { + position: absolute; + top: 20px; + right: 20px; + background: none; + border: none; + color: white; + font-size: 2rem; + cursor: pointer; +} + +.photo-view-image { + max-width: 90%; + max-height: 90%; + object-fit: contain; +} + +/* 버튼 스타일 */ +.btn-sm { + padding: 0.375rem 0.75rem; + font-size: 0.8125rem; +} + +.btn-outline { + background: transparent; + border: 1px solid #d1d5db; + color: #374151; +} + +.btn-outline:hover { + background: #f3f4f6; +} + +/* 반응형 */ +@media (max-width: 768px) { + .eq-detail-header { + flex-direction: column; + } + + .eq-location-card { + flex-direction: column; + } + + .eq-map-preview { + width: 100%; + height: 200px; + } + + .eq-action-buttons { + flex-direction: column; + } + + .btn-action { + min-width: auto; + } + + .eq-info-grid { + grid-template-columns: repeat(2, 1fr); + } +} diff --git a/deploy/tkfb-package/web-ui/css/equipment-management.css b/deploy/tkfb-package/web-ui/css/equipment-management.css new file mode 100644 index 0000000..20f6d48 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/equipment-management.css @@ -0,0 +1,361 @@ +/* equipment-management.css */ +/* 설비 관리 페이지 전용 스타일 */ + +/* 통계 요약 섹션 */ +.eq-stats-section { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); + gap: 1rem; + margin-bottom: 1.5rem; +} + +.eq-stat-card { + background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); + border-radius: 12px; + padding: 1.25rem; + border: 1px solid #e2e8f0; + transition: all 0.2s ease; +} + +.eq-stat-card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); +} + +.eq-stat-card.highlight { + background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); + color: white; + border: none; +} + +.eq-stat-card.highlight .eq-stat-label { + color: rgba(255, 255, 255, 0.85); +} + +.eq-stat-label { + font-size: 0.8rem; + color: #64748b; + margin-bottom: 0.5rem; + font-weight: 500; +} + +.eq-stat-value { + font-size: 1.75rem; + font-weight: 700; + line-height: 1.2; +} + +.eq-stat-sub { + font-size: 0.75rem; + color: #94a3b8; + margin-top: 0.25rem; +} + +.eq-stat-card.highlight .eq-stat-sub { + color: rgba(255, 255, 255, 0.7); +} + +/* 필터 섹션 개선 */ +.eq-filter-section { + background: #f8fafc; + border-radius: 12px; + padding: 1rem 1.25rem; + margin-bottom: 1.5rem; + display: flex; + flex-wrap: wrap; + gap: 1rem; + align-items: flex-end; +} + +.eq-filter-group { + display: flex; + flex-direction: column; + gap: 0.35rem; + min-width: 140px; +} + +.eq-filter-group label { + font-size: 0.75rem; + font-weight: 600; + color: #64748b; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.eq-filter-group .form-control { + padding: 0.5rem 0.75rem; + font-size: 0.875rem; + border-radius: 8px; + border: 1px solid #e2e8f0; + background: white; +} + +.eq-filter-group .form-control:focus { + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +.eq-search-group { + flex: 1; + min-width: 200px; +} + +.eq-search-group .form-control { + width: 100%; +} + +/* 테이블 개선 */ +.eq-table-container { + background: white; + border-radius: 12px; + border: 1px solid #e2e8f0; + overflow: hidden; +} + +.eq-table { + width: 100%; + border-collapse: collapse; + font-size: 0.875rem; +} + +.eq-table thead { + background: #f1f5f9; + position: sticky; + top: 0; + z-index: 10; +} + +.eq-table th { + padding: 0.875rem 1rem; + text-align: left; + font-weight: 600; + color: #475569; + font-size: 0.75rem; + text-transform: uppercase; + letter-spacing: 0.5px; + border-bottom: 2px solid #e2e8f0; + white-space: nowrap; +} + +.eq-table td { + padding: 0.75rem 1rem; + border-bottom: 1px solid #f1f5f9; + vertical-align: middle; +} + +.eq-table tbody tr { + transition: background 0.15s ease; +} + +.eq-table tbody tr:hover { + background: #f8fafc; +} + +.eq-table tbody tr:last-child td { + border-bottom: none; +} + +/* 테이블 컬럼별 스타일 */ +.eq-col-code { + font-weight: 600; + color: #1e40af; + white-space: nowrap; +} + +.eq-col-name { + font-weight: 500; + color: #1e293b; + max-width: 200px; +} + +.eq-col-model, +.eq-col-spec { + color: #64748b; + font-size: 0.8125rem; + max-width: 150px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.eq-col-price { + font-weight: 600; + color: #059669; + text-align: right; + white-space: nowrap; +} + +.eq-col-date { + color: #64748b; + font-size: 0.8125rem; + white-space: nowrap; +} + +/* 상태 배지 */ +.eq-status { + display: inline-flex; + align-items: center; + padding: 0.25rem 0.625rem; + border-radius: 9999px; + font-size: 0.75rem; + font-weight: 600; + white-space: nowrap; +} + +.eq-status-active { + background: #dcfce7; + color: #166534; +} + +.eq-status-maintenance { + background: #fef3c7; + color: #92400e; +} + +.eq-status-inactive { + background: #fee2e2; + color: #991b1b; +} + +/* 액션 버튼 */ +.eq-actions { + display: flex; + gap: 0.5rem; +} + +.eq-btn-action { + width: 32px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; + border: none; + border-radius: 8px; + cursor: pointer; + transition: all 0.15s ease; + font-size: 0.875rem; +} + +.eq-btn-edit { + background: #eff6ff; + color: #3b82f6; +} + +.eq-btn-edit:hover { + background: #3b82f6; + color: white; +} + +.eq-btn-delete { + background: #fef2f2; + color: #ef4444; +} + +.eq-btn-delete:hover { + background: #ef4444; + color: white; +} + +/* 빈 상태 */ +.eq-empty-state { + text-align: center; + padding: 4rem 2rem; + color: #64748b; +} + +.eq-empty-state p { + margin-bottom: 1.5rem; + font-size: 1rem; +} + +/* 테이블 스크롤 래퍼 */ +.eq-table-wrapper { + overflow-x: auto; + max-height: calc(100vh - 380px); + overflow-y: auto; +} + +/* 결과 카운트 */ +.eq-result-count { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.75rem 1rem; + background: #f8fafc; + border-bottom: 1px solid #e2e8f0; + font-size: 0.8125rem; + color: #64748b; +} + +.eq-result-count strong { + color: #1e293b; +} + +/* 반응형 */ +@media (max-width: 1200px) { + .eq-stats-section { + grid-template-columns: repeat(3, 1fr); + } +} + +@media (max-width: 768px) { + .eq-stats-section { + grid-template-columns: repeat(2, 1fr); + } + + .eq-filter-section { + flex-direction: column; + } + + .eq-filter-group { + width: 100%; + } + + .eq-table th, + .eq-table td { + padding: 0.625rem 0.75rem; + } + + .eq-col-spec, + .eq-col-model { + display: none; + } +} + +/* 모달 개선 */ +.eq-modal-body { + padding: 1.5rem; +} + +.eq-form-section { + margin-bottom: 1.5rem; + padding-bottom: 1.5rem; + border-bottom: 1px solid #f1f5f9; +} + +.eq-form-section:last-child { + margin-bottom: 0; + padding-bottom: 0; + border-bottom: none; +} + +.eq-form-section-title { + font-size: 0.8rem; + font-weight: 600; + color: #3b82f6; + text-transform: uppercase; + letter-spacing: 0.5px; + margin-bottom: 1rem; +} + +.eq-form-row { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 1rem; +} + +@media (max-width: 600px) { + .eq-form-row { + grid-template-columns: 1fr; + } +} diff --git a/deploy/tkfb-package/web-ui/css/factory.css b/deploy/tkfb-package/web-ui/css/factory.css new file mode 100644 index 0000000..e7dcd68 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/factory.css @@ -0,0 +1,61 @@ +body { + font-family: 'Segoe UI', sans-serif; + background-color: #f9f9f9; + margin: 0; + padding: 0; +} + +.container { + max-width: 600px; + margin: 50px auto; + background: #fff; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0,0,0,0.1); + padding: 30px; +} + +h2 { + text-align: center; + margin-bottom: 20px; + color: #333; +} + +form label { + display: block; + margin-bottom: 6px; + font-weight: bold; + color: #444; +} + +form input[type="text"], +form input[type="file"], +form textarea { + width: 100%; + padding: 10px; + margin-bottom: 16px; + border: 1px solid #ccc; + border-radius: 8px; + font-size: 14px; + box-sizing: border-box; +} + +form textarea { + resize: vertical; + min-height: 100px; +} + +button { + width: 100%; + background-color: #007bff; + color: white; + border: none; + padding: 12px; + font-size: 16px; + border-radius: 8px; + cursor: pointer; + transition: background-color 0.3s ease; +} + +button:hover { + background-color: #0056b3; +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/css/login.css b/deploy/tkfb-package/web-ui/css/login.css new file mode 100644 index 0000000..3f9061e --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/login.css @@ -0,0 +1,54 @@ +body { + margin: 0; + padding: 0; + background: url('/img/login-bg.jpeg') no-repeat center center fixed; + background-size: cover; + font-family: 'Malgun Gothic', sans-serif; +} + +.login-container { + background: rgba(0, 0, 0, 0.65); + width: 400px; + padding: 40px; + margin: 100px auto; + border-radius: 12px; + text-align: center; + color: white; + box-shadow: 0 0 20px rgba(0,0,0,0.3); +} + +.logo { + width: 200px; + margin-bottom: 20px; +} + +input { + display: block; + width: 100%; + margin: 15px 0; + padding: 12px; + font-size: 1rem; + border-radius: 6px; + border: none; +} + +button { + padding: 12px 20px; + font-size: 1rem; + cursor: pointer; + border: none; + background-color: #1976d2; + color: white; + border-radius: 6px; + transition: background-color 0.3s; +} + +button:hover { + background-color: #1565c0; +} + +.error-message { + margin-top: 10px; + color: #ff6b6b; + font-weight: bold; +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/css/main-layout.css b/deploy/tkfb-package/web-ui/css/main-layout.css new file mode 100644 index 0000000..6467328 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/main-layout.css @@ -0,0 +1,160 @@ +/* ✅ /css/main-layout.css - 공통 레이아웃 스타일 */ + +* { + box-sizing: border-box; +} + +body { + margin: 0; + padding: 0; + font-family: 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif; + background-color: #f5f5f5; +} + +/* 메인 레이아웃 구조 */ +.main-layout { + display: flex; + min-height: 100vh; + flex-direction: column; +} + +#navbar-container { + position: sticky; + top: 0; + z-index: 1000; +} + +.content-wrapper { + display: flex; + flex: 1; +} + +#sidebar-container { + flex-shrink: 0; +} + +#content-container, +#sections-container, +#admin-sections, +#user-sections { + flex: 1; + padding: 24px; + max-width: 1200px; + margin: 0 auto; + width: 100%; +} + +/* 카드 스타일 */ +.card { + background: white; + border-radius: 8px; + padding: 24px; + margin-bottom: 24px; + box-shadow: 0 2px 4px rgba(0,0,0,0.08); +} + +/* 섹션 스타일 */ +section { + background: white; + border-radius: 8px; + padding: 20px; + margin-bottom: 20px; + box-shadow: 0 2px 4px rgba(0,0,0,0.08); +} + +section h2 { + font-size: 18px; + margin: 0 0 16px 0; + color: #333; + border-bottom: 2px solid #1976d2; + padding-bottom: 8px; +} + +section ul { + list-style: none; + padding: 0; + margin: 0; +} + +section li { + padding: 8px 0; + border-bottom: 1px solid #f0f0f0; +} + +section li:last-child { + border-bottom: none; +} + +section a { + color: #1976d2; + text-decoration: none; + display: block; + padding: 4px 0; + transition: all 0.3s; +} + +section a:hover { + color: #0d47a1; + padding-left: 8px; +} + +/* 로딩 상태 */ +.loading { + text-align: center; + padding: 60px 20px; + color: #666; +} + +.loading::after { + content: '.'; + animation: dots 1.5s steps(3, end) infinite; +} + +@keyframes dots { + 0%, 20% { content: '.'; } + 40% { content: '..'; } + 60%, 100% { content: '...'; } +} + +/* 에러 상태 */ +.error-state { + text-align: center; + padding: 60px 20px; + color: #d32f2f; +} + +.error-state button { + margin-top: 16px; + padding: 8px 24px; + background: #1976d2; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +.error-state button:hover { + background: #1565c0; +} + +/* 반응형 디자인 */ +@media (max-width: 1024px) { + #content-container, + #sections-container { + padding: 16px; + } +} + +@media (max-width: 768px) { + .content-wrapper { + flex-direction: column; + } + + #sidebar-container { + order: -1; + } + + section h2 { + font-size: 16px; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/css/management-dashboard.css b/deploy/tkfb-package/web-ui/css/management-dashboard.css new file mode 100644 index 0000000..08524ef --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/management-dashboard.css @@ -0,0 +1,1005 @@ +/* management-dashboard.css - 관리자 대시보드 전용 스타일 */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', 'Noto Sans KR', Tahoma, Geneva, Verdana, sans-serif; + background-color: #f5f7fa; + color: #333; + line-height: 1.6; +} + +/* 메인 레이아웃 */ +.main-layout-with-navbar { + display: flex; + flex-direction: column; + min-height: 100vh; +} + +.content-wrapper { + flex: 1; + padding: 20px; +} + +.dashboard-container { + max-width: 1400px; + margin: 0 auto; +} + +/* 페이지 헤더 */ +.page-header { + text-align: center; + margin-bottom: 2.5rem; + padding: 3rem 2rem; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border-radius: 16px; + box-shadow: 0 6px 24px rgba(0,0,0,0.12); + position: relative; +} + +.page-header h1 { + font-size: 2.5rem; + margin-bottom: 0.8rem; + font-weight: 700; +} + +.subtitle { + font-size: 1.1rem; + opacity: 0.9; + margin-bottom: 1rem; +} + +.permission-badge { + display: inline-block; + background: rgba(255,255,255,0.2); + color: white; + padding: 8px 20px; + border-radius: 25px; + font-size: 14px; + font-weight: 600; + border: 2px solid rgba(255,255,255,0.3); +} + +/* 뒤로가기 버튼 */ +.back-btn { + background: rgba(255,255,255,0.95); + color: #667eea; + border: 3px solid #667eea; + padding: 16px 32px; + border-radius: 12px; + text-decoration: none; + font-weight: 700; + font-size: 18px; + display: inline-flex; + align-items: center; + gap: 12px; + margin-bottom: 24px; + transition: all 0.3s ease; + box-shadow: 0 3px 12px rgba(102, 126, 234, 0.2); +} + +.back-btn:hover { + background: #667eea; + color: white; + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(102, 126, 234, 0.3); +} + +/* 메시지 스타일 */ +.message { + padding: 20px 32px; + border-radius: 12px; + margin-bottom: 32px; + font-weight: 600; + font-size: 18px; + box-shadow: 0 3px 12px rgba(0,0,0,0.1); +} + +.message.warning { + background: #fff3cd; + color: #856404; + border: 2px solid #ffeaa7; +} + +.message.error { + background: #f8d7da; + color: #721c24; + border: 2px solid #f5c6cb; +} + +.message.success { + background: #d4edda; + color: #155724; + border: 2px solid #c3e6cb; +} + +.message.loading { + background: #cce5ff; + color: #0066cc; + border: 2px solid #99d6ff; +} + +/* 날짜 선택 카드 */ +.date-selection-card { + background: white; + border-radius: 16px; + padding: 2rem; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); + margin-bottom: 2rem; +} + +.date-selection-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; + padding-bottom: 1rem; + border-bottom: 2px solid #f0f0f0; +} + +.date-selection-header h3 { + margin: 0; + color: #333; + font-size: 1.4rem; +} + +.refresh-btn { + background: #28a745; + color: white; + border: none; + border-radius: 8px; + padding: 12px 20px; + cursor: pointer; + font-size: 14px; + font-weight: 600; + transition: all 0.3s; + display: flex; + align-items: center; + gap: 8px; +} + +.refresh-btn:hover { + background: #1e7e34; + transform: translateY(-1px); +} + +.date-selection-body { + display: flex; + gap: 20px; + align-items: center; + justify-content: center; +} + +.date-input { + padding: 15px 20px; + font-size: 18px; + border: 3px solid #e1e5e9; + border-radius: 12px; + background: white; + transition: border-color 0.3s; + min-width: 200px; +} + +.date-input:focus { + outline: none; + border-color: #007bff; + box-shadow: 0 0 0 4px rgba(0, 123, 255, 0.15); +} + +/* 버튼 스타일 */ +.btn { + padding: 15px 30px; + border: none; + border-radius: 12px; + font-size: 16px; + font-weight: 700; + cursor: pointer; + transition: all 0.3s; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + text-decoration: none; + box-shadow: 0 3px 12px rgba(0,0,0,0.1); +} + +.btn-primary { + background: #007bff; + color: white; +} + +.btn-primary:hover { + background: #0056b3; + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(0, 123, 255, 0.3); +} + +.btn-secondary { + background: #6c757d; + color: white; +} + +.btn-secondary:hover { + background: #545b62; + transform: translateY(-2px); +} + +/* 요약 섹션 */ +.summary-section { + background: white; + border-radius: 16px; + padding: 2rem; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); + margin-bottom: 2rem; +} + +.summary-section h3 { + margin-bottom: 1.5rem; + color: #333; + font-size: 1.4rem; +} + +.summary-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 20px; +} + +.summary-card { + background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); + border-radius: 12px; + padding: 1.5rem; + display: flex; + align-items: center; + gap: 15px; + border: 2px solid #dee2e6; + transition: all 0.3s ease; +} + +.summary-card:hover { + transform: translateY(-3px); + box-shadow: 0 8px 25px rgba(0,0,0,0.1); +} + +.summary-icon { + font-size: 2rem; + width: 60px; + height: 60px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + background: rgba(255,255,255,0.8); +} + +.summary-content { + flex: 1; +} + +.summary-number { + font-size: 2rem; + font-weight: 700; + color: #333; + line-height: 1; +} + +.summary-label { + font-size: 0.9rem; + color: #666; + margin-top: 4px; +} + +/* 개별 요약 카드 색상 */ +.summary-card.total-workers { + background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%); + border-color: #2196f3; +} + +.summary-card.completed-workers { + background: linear-gradient(135deg, #e8f5e8 0%, #c8e6c9 100%); + border-color: #4caf50; +} + +.summary-card.missing-workers { + background: linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%); + border-color: #f44336; +} + +.summary-card.total-hours { + background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%); + border-color: #9c27b0; +} + +.summary-card.total-entries { + background: linear-gradient(135deg, #fff3e0 0%, #ffcc02 100%); + border-color: #ff9800; +} + +.summary-card.error-count { + background: linear-gradient(135deg, #fce4ec 0%, #f8bbd9 100%); + border-color: #e91e63; +} + +/* 액션 바 */ +.action-bar { + background: white; + border-radius: 12px; + padding: 1.5rem; + box-shadow: 0 4px 16px rgba(0,0,0,0.06); + margin-bottom: 2rem; + display: flex; + justify-content: space-between; + align-items: center; +} + +.filter-section { + display: flex; + gap: 20px; + align-items: center; +} + +.filter-checkbox { + display: flex; + align-items: center; + gap: 10px; + cursor: pointer; + font-weight: 600; + font-size: 16px; + color: #333; +} + +.filter-checkbox input[type="checkbox"] { + display: none; +} + +.checkmark { + width: 20px; + height: 20px; + border: 2px solid #007bff; + border-radius: 4px; + position: relative; + transition: all 0.3s ease; +} + +.filter-checkbox input[type="checkbox"]:checked + .checkmark { + background: #007bff; +} + +.filter-checkbox input[type="checkbox"]:checked + .checkmark::after { + content: "✓"; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: white; + font-weight: bold; + font-size: 12px; +} + +/* 작업자 섹션 */ +.workers-section { + background: white; + border-radius: 16px; + padding: 2rem; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); + margin-bottom: 2rem; +} + +.section-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1.5rem; + padding-bottom: 1rem; + border-bottom: 2px solid #f0f0f0; +} + +.section-header h3 { + margin: 0; + color: #333; + font-size: 1.4rem; +} + +.legend { + display: flex; + gap: 15px; +} + +.legend-item { + font-size: 14px; + font-weight: 600; + padding: 6px 12px; + border-radius: 20px; + border: 2px solid; +} + +.legend-item.completed { + color: #28a745; + border-color: #28a745; + background: rgba(40, 167, 69, 0.1); +} + +.legend-item.missing { + color: #dc3545; + border-color: #dc3545; + background: rgba(220, 53, 69, 0.1); +} + +.legend-item.partial { + color: #ffc107; + border-color: #ffc107; + background: rgba(255, 193, 7, 0.1); +} + +/* 작업자 테이블 스타일 */ +.table-container { + background: white; + border-radius: 12px; + overflow: hidden; + box-shadow: 0 4px 16px rgba(0,0,0,0.06); +} + +.workers-table { + width: 100%; + border-collapse: collapse; + font-size: 14px; +} + +.workers-table thead { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; +} + +.workers-table th { + padding: 16px 12px; + text-align: left; + font-weight: 700; + font-size: 14px; + border-bottom: 2px solid rgba(255,255,255,0.2); +} + +.workers-table th:first-child { + padding-left: 20px; +} + +.workers-table th:last-child { + padding-right: 20px; +} + +.workers-table tbody tr { + border-bottom: 1px solid #e9ecef; + transition: all 0.3s ease; +} + +.workers-table tbody tr:hover { + background: #f8f9fa; + transform: scale(1.01); + box-shadow: 0 2px 8px rgba(0,0,0,0.1); +} + +.workers-table tbody tr:last-child { + border-bottom: none; +} + +.workers-table td { + padding: 16px 12px; + vertical-align: middle; + line-height: 1.4; +} + +.workers-table td:first-child { + padding-left: 20px; +} + +.workers-table td:last-child { + padding-right: 20px; +} + +/* 작업자 이름 스타일 */ +.worker-name-cell { + font-weight: 700; + color: #333; + display: flex; + align-items: center; + gap: 8px; +} + +/* 상태 배지 스타일 */ +.status-badge { + padding: 6px 12px; + border-radius: 20px; + font-size: 12px; + font-weight: 700; + color: white; + white-space: nowrap; + text-align: center; + min-width: 70px; +} + +.status-badge.completed { + background: linear-gradient(135deg, #28a745 0%, #20c997 100%); +} + +.status-badge.missing { + background: linear-gradient(135deg, #dc3545 0%, #c82333 100%); +} + +.status-badge.partial { + background: linear-gradient(135deg, #ffc107 0%, #e0a800 100%); + color: #333; +} + +/* 시간 표시 스타일 */ +.hours-cell { + font-weight: 700; + font-size: 16px; + color: #495057; +} + +.hours-cell.zero { + color: #dc3545; + opacity: 0.7; +} + +.hours-cell.partial { + color: #ffc107; +} + +.hours-cell.full { + color: #28a745; +} + +/* 작업 유형 태그 */ +.work-types-container { + display: flex; + flex-wrap: wrap; + gap: 4px; + max-width: 120px; +} + +.work-type-tag { + background: #e3f2fd; + color: #1565c0; + padding: 4px 8px; + border-radius: 12px; + font-size: 11px; + font-weight: 600; + white-space: nowrap; + border: 1px solid #bbdefb; +} + +/* 프로젝트 태그 */ +.projects-container { + display: flex; + flex-wrap: wrap; + gap: 4px; + max-width: 150px; +} + +.project-tag { + background: #f3e5f5; + color: #7b1fa2; + padding: 4px 8px; + border-radius: 12px; + font-size: 11px; + font-weight: 600; + white-space: nowrap; + border: 1px solid #e1bee7; +} + +/* 기여자 태그 */ +.contributors-container { + display: flex; + flex-wrap: wrap; + gap: 4px; + max-width: 120px; +} + +.contributor-tag { + background: #e8f5e8; + color: #2e7d32; + padding: 4px 8px; + border-radius: 12px; + font-size: 11px; + font-weight: 600; + white-space: nowrap; + border: 1px solid #c8e6c9; +} + +/* 업데이트 시간 스타일 */ +.update-time { + font-size: 12px; + color: #666; + white-space: nowrap; +} + +.update-time.recent { + color: #28a745; + font-weight: 600; +} + +.update-time.old { + color: #dc3545; +} + +/* 상세 버튼 */ +.detail-btn { + background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); + color: white; + border: none; + border-radius: 20px; + padding: 8px 16px; + cursor: pointer; + font-size: 12px; + font-weight: 600; + transition: all 0.3s; + white-space: nowrap; +} + +.detail-btn:hover { + background: linear-gradient(135deg, #0056b3 0%, #004085 100%); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3); +} + +/* 데이터 없음 행 */ +.no-data-row { + text-align: center; + padding: 40px 20px; + color: #666; + font-style: italic; +} + +/* 테이블 반응형 */ +@media (max-width: 1200px) { + .workers-table { + font-size: 13px; + } + + .workers-table th, + .workers-table td { + padding: 12px 8px; + } + + .work-types-container, + .projects-container, + .contributors-container { + max-width: 100px; + } +} + +@media (max-width: 992px) { + .table-container { + overflow-x: auto; + } + + .workers-table { + min-width: 800px; + font-size: 12px; + } + + .workers-table th, + .workers-table td { + padding: 10px 6px; + } + + .work-types-container, + .projects-container, + .contributors-container { + max-width: 80px; + } + + .work-type-tag, + .project-tag, + .contributor-tag { + font-size: 10px; + padding: 3px 6px; + } +} + +@media (max-width: 768px) { + .workers-table { + min-width: 700px; + font-size: 11px; + } + + .workers-table th, + .workers-table td { + padding: 8px 4px; + } + + .status-badge { + font-size: 10px; + padding: 4px 8px; + min-width: 60px; + } + + .detail-btn { + font-size: 10px; + padding: 6px 12px; + } +} + +/* 로딩 스피너 */ +.loading-spinner { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 4rem 2rem; + background: white; + border-radius: 16px; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); +} + +.spinner { + width: 50px; + height: 50px; + border: 4px solid #f3f3f3; + border-top: 4px solid #007bff; + border-radius: 50%; + animation: spin 1s linear infinite; + margin-bottom: 1rem; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +.loading-spinner p { + color: #666; + font-size: 1.1rem; + font-weight: 600; +} + +/* 데이터 없음 메시지 */ +.no-data-message { + text-align: center; + padding: 4rem 2rem; + background: white; + border-radius: 16px; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); +} + +.no-data-icon { + font-size: 4rem; + margin-bottom: 1rem; +} + +.no-data-message h3 { + color: #333; + margin-bottom: 1rem; + font-size: 1.5rem; +} + +.no-data-message p { + color: #666; + font-size: 1.1rem; + line-height: 1.6; +} + +/* 작업자 상세 모달 */ +.worker-detail-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; + animation: fadeIn 0.3s ease; +} + +.modal-content { + background: white; + border-radius: 16px; + width: 90%; + max-width: 800px; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 10px 40px rgba(0,0,0,0.3); + animation: slideIn 0.3s ease; +} + +.modal-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 24px; + border-bottom: 2px solid #f0f0f0; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border-radius: 16px 16px 0 0; +} + +.modal-header h3 { + margin: 0; + font-size: 20px; + font-weight: 700; +} + +.close-modal-btn { + background: rgba(255,255,255,0.2); + color: white; + border: none; + border-radius: 50%; + width: 32px; + height: 32px; + cursor: pointer; + font-size: 18px; + font-weight: 700; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.3s; +} + +.close-modal-btn:hover { + background: rgba(255,255,255,0.3); + transform: rotate(90deg); +} + +.modal-body { + padding: 24px; +} + +/* 사용법 안내 */ +.guide-section { + background: white; + border-radius: 16px; + padding: 2rem; + box-shadow: 0 6px 24px rgba(0,0,0,0.08); + margin-top: 2rem; +} + +.guide-section h3 { + margin-bottom: 1.5rem; + color: #333; + font-size: 1.4rem; + text-align: center; +} + +.guide-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 20px; +} + +.guide-item { + text-align: center; + padding: 20px; + background: #f8f9fa; + border-radius: 12px; + border: 2px solid #e9ecef; + transition: all 0.3s ease; +} + +.guide-item:hover { + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(0,0,0,0.1); + border-color: #667eea; +} + +.guide-icon { + font-size: 28px; + margin-bottom: 12px; +} + +.guide-item strong { + display: block; + font-size: 16px; + font-weight: 700; + margin-bottom: 8px; + color: #333; +} + +/* 애니메이션 */ +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + +@keyframes slideIn { + from { + opacity: 0; + transform: translateY(-50px) scale(0.9); + } + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} + +/* 수정 모달 스타일 */ +.edit-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 1001; /* 상세 모달보다 위에 */ + animation: fadeIn 0.3s ease; +} + +.edit-modal-content { + background: white; + border-radius: 16px; + width: 90%; + max-width: 600px; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 10px 40px rgba(0,0,0,0.3); + animation: slideIn 0.3s ease; +} + +.edit-modal-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 24px; + border-bottom: 2px solid #f0f0f0; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border-radius: 16px 16px 0 0; +} + +.edit-modal-header h3 { + margin: 0; + font-size: 20px; + font-weight: 700; +} + +.edit-modal-body { + padding: 24px; +} + +.edit-form-group { + margin-bottom: 20px; +} + +.edit-form-group label { + display: block; + margin-bottom: 8px; + font-weight: 700; + color: #555; + font-size: 14px; +} + +.edit-select, .edit-input { + width: 100%; + padding: 12px 16px; + border: 2px solid #e1e5e9; + border-radius: 8px; + font-size: 16px; + background: white; + transition: border-color 0.3s; +} + +.edit-select:focus, .edit-input:focus { + outline: none; + border-color: #007bff; + box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1); +} + +.edit-modal-footer { + display: flex; + justify-content: flex-end; + gap: 12px; + padding: 24px; + border-top: 2px solid #f0f0f0; + background: #f8f9fa; + border-radius: 0 0 16px 16px; +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/css/modern-dashboard.css b/deploy/tkfb-package/web-ui/css/modern-dashboard.css new file mode 100644 index 0000000..ff148b9 --- /dev/null +++ b/deploy/tkfb-package/web-ui/css/modern-dashboard.css @@ -0,0 +1,4009 @@ +/* ✅ modern-dashboard.css - 모던 대시보드 전용 스타일 */ + +/* ========== 대시보드 레이아웃 ========== */ +.dashboard-container { + min-height: 100vh; + display: flex; + flex-direction: column; + background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); +} + +/* ========== 메인 레이아웃 ========== */ +.dashboard-main { + flex: 1; + padding: 2rem 0; + min-height: calc(100vh - 80px); +} + +/* ========== 헤더 ========== */ +/* Navbar 컴포넌트가 헤더 스타일을 관리하므로 여기서는 제거 */ +/* 필요한 경우 navbar.html의 + + +
+ + + + + + + +
+
+ +
+
+

HR-001 인사관리 규정

+

채용, 승진, 전보, 퇴직 등 인사관리 전반

+
+
+ + +
+
+

HR-002 급여관리 규정

+

급여체계, 수당, 상여금 지급 기준

+
+
+ + +
+
+

HR-003 근무시간 관리규정

+

근무시간, 휴게시간, 연장근무 규정

+
+
+ + +
+
+

HR-004 휴가 및 휴직규정

+

연차, 병가, 특별휴가, 휴직 관련 규정

+
+
+ + +
+
+

HR-005 복리후생 규정

+

건강보험, 퇴직금, 각종 지원금 규정

+
+
+ + +
+
+

HR-006 성과평가 관리규정

+

성과평가 기준, 절차, 결과 활용 방안

+
+
+ + +
+
+

HR-007 교육훈련 관리규정

+

신입사원 교육, 직무교육, 외부교육 지원

+
+
+ + +
+
+

HR-008 징계 관리규정

+

징계사유, 절차, 징계양정 기준

+
+
+ + +
+
+

HR-009 정보보안 및 기밀유지

+

회사 정보보안 및 기밀유지 의무

+
+
+ + +
+
+

HR-010 복무 및 행동강령

+

직원 복무 기준 및 윤리 행동강령

+
+
+
+ + +
+

인사규정 검색

+ +
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

인사 문의: hr@technicalkorea.co.kr | 내선: 3456

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/hse.html b/deploy/tkfb-package/web-ui/docs/hse.html new file mode 100644 index 0000000..af4c9a2 --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/hse.html @@ -0,0 +1,447 @@ + + + + + + HSE 관리시스템 - 테크니컬코리아 + + + +
+ + + + + + + +
+
+ +
+
+

TK-HSE-001 ISO 45001:2018 HSE 관리시스템 매뉴얼

+

ISO 45001:2018 기반 보건, 안전 및 환경 관리시스템 최상위 문서 (한/영 이중언어)

+
+
+ + +
+
+

TK-HSE-P-410 조직 상황 이해 및 HSE 관리시스템 운영 절차

+

조직의 내외부 상황 파악 및 HSE 관리시스템 전반 운영

+
+
+ + +
+
+

TK-HSE-P-510 리더십 및 정책 수립 절차

+

최고경영자 리더십 및 HSE 정책 수립·운영 절차

+
+
+ +
+
+

TK-HSE-P-520 조직 편성 및 직무 배정 절차

+

HSE 관련 조직 구성 및 역할·책임·권한 배정

+
+
+ + +
+
+

TK-HSE-P-610 기획 및 위험 관리 절차

+

HSE 관리시스템 기획 및 위험과 기회 관리

+
+
+ +
+
+

TK-HSE-P-620 위험 평가 절차

+

유해요인 식별 및 위험성 평가 실시 절차

+
+
+ +
+
+

TK-HSE-P-630 HSE 법적 요구사항 관리 절차

+

HSE 관련 법령 및 기타 요구사항 관리

+
+
+ +
+
+

TK-HSE-P-640 HSE 목표 관리 절차

+

HSE 목표 설정, 달성 계획 수립 및 관리

+
+
+ + +
+
+

TK-HSE-P-710 자원 관리 절차

+

HSE 관리시스템 운영에 필요한 자원 관리

+
+
+ +
+
+

TK-HSE-P-720 교육 및 훈련 관리 절차

+

HSE 관련 교육·훈련 계획 수립 및 실시

+
+
+ +
+
+

TK-HSE-P-730 인식 및 의사소통 절차

+

HSE 인식 제고 및 내외부 의사소통 관리

+
+
+ +
+
+

TK-HSE-P-740 문서화된 정보 관리 절차

+

HSE 문서 및 기록의 작성, 관리, 보관

+
+
+ + +
+
+

TK-HSE-P-810 운영 기획 및 관리 절차

+

HSE 운영 기획, 작업허가, 변경관리, 조달관리

+
+
+ +
+
+

TK-HSE-P-820 비상 대비 및 대응 절차

+

비상상황 대비, 대응 계획 및 훈련

+
+
+ + +
+
+

TK-HSE-P-910 프로세스 성과 관리 절차

+

HSE 관리시스템 프로세스 성과 관리

+
+
+ +
+
+

TK-HSE-P-920 HSE 모니터링 및 측정 관리 절차

+

HSE 성과 모니터링, 측정 및 분석

+
+
+ +
+
+

TK-HSE-P-930 내부 심사 절차

+

HSE 관리시스템 내부 심사 계획 및 실시

+
+
+ +
+
+

TK-HSE-P-940 경영 검토 절차

+

HSE 관리시스템 경영진 검토

+
+
+ + +
+
+

TK-HSE-P-1010 사건, 부적합 및 시정조치 절차

+

사건·사고 조사, 부적합 처리 및 시정조치

+
+
+ +
+
+

TK-HSE-P-1020 지속적 개선 절차

+

HSE 관리시스템 지속적 개선 활동

+
+
+ + +
+
+

TK-HSE-W-001 개인보호구 관리 지침

+

개인보호구 지급, 관리, 점검 실무 지침

+
+
+ +
+
+

TK-HSE-W-002 화학물질 관리 지침

+

화학물질 보관, 사용, 폐기 실무 지침

+
+
+ +
+
+

TK-HSE-W-003 응급처치 및 의료관리 지침

+

응급상황 대응 및 응급처치 실무 지침

+
+
+
+ + +
+

HSE 문서 검색

+ +
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

HSE 문의: safety@technicalkorea.co.kr | 내선: 1234

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-410.html b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-410.html new file mode 100644 index 0000000..b6cd015 --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-410.html @@ -0,0 +1,1208 @@ + + + + + + TK-HSE-P-410 조직 상황 이해 및 HSE 관리시스템 운영 절차 + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-410

+

조직 상황 이해 및 HSE 관리시스템 운영 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목조직 상황 이해 및 HSE 관리시스템 운영 절차
문서 번호TK-HSE-P-410
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 6
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+
+

1. 목적

+
+

본 절차의 목적은 다음과 같습니다:

+
    +
  • 조직의 내부 및 외부 상황을 체계적으로 파악하고 분석
  • +
  • 이해관계자의 요구사항과 기대사항을 식별하고 관리
  • +
  • HSE 관리시스템의 적용 범위를 명확히 정의
  • +
  • HSE 관리시스템의 효과적인 수립, 실행, 유지 및 개선
  • +
  • ISO 45001:2018 표준 4조 요구사항의 체계적 이행
  • +
+
+ + +
+
+

2. 적용 범위

+
+

본 절차는 테크니컬코리아의 다음 영역에 적용됩니다:

+
    +
  • 전 부서 및 모든 사업장
  • +
  • HSE 관리시스템 구축 및 운영 활동
  • +
  • 조직 상황 분석 및 이해관계자 관리 업무
  • +
  • HSE 관리시스템 적용 범위 설정 및 관리
  • +
  • 관련 계약업체 및 공급업체
  • +
+
+ + +
+
+

3. 인용 표준 및 관련 문서

+
+

3.1 인용 표준

+
    +
  • ISO 45001:2018 - 직장 보건안전 관리시스템 - 요구사항 및 사용 지침
  • +
  • 산업안전보건법 및 관련 법령
  • +
+ +

3.2 관련 문서

+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-510 - 리더십 및 정책 수립 절차
  • +
  • TK-HSE-P-610 - 기획 및 위험 관리 절차
  • +
  • TK-HSE-P-740 - 문서화된 정보 관리 절차
  • +
+
+ + +
+
+

4. 용어와 정의

+
+ +
+

4.1 조직의 상황 (Context of the organization)

+

목표를 달성하기 위한 조직의 접근 방식을 개발하는 데 영향을 줄 수 있는 내부 및 외부 이슈의 조합

+ +

4.2 이해관계자 (Interested party)

+

결정이나 활동에 영향을 주거나, 영향을 받거나, 영향을 받는다고 인식하는 개인이나 조직

+ +

4.3 요구사항 (Requirements)

+

명시되거나, 일반적으로 함축되거나, 의무적인 필요나 기대

+ +

4.4 적용 범위 (Scope)

+

관리시스템이 적용되는 조직의 활동, 제품 및 서비스의 범위와 경계

+
+
+ + +
+
+

5. 역할과 책임

+
+ + + + + + + + + + + + + + + + + + + + + + +
역할책임사항
최고경영자 + • 조직 상황 분석 결과 승인
+ • HSE 관리시스템 적용 범위 최종 결정
+ • 이해관계자 관리 전략 승인
+ • 필요 자원 제공 결정 +
HSE 관리책임자 + • 조직 상황 분석 총괄 관리
+ • 이해관계자 식별 및 분석 주관
+ • HSE 관리시스템 적용 범위 제안
+ • 관련 문서 작성 및 관리 +
각 부서장 + • 부서별 내외부 이슈 식별
+ • 부서 관련 이해관계자 정보 제공
+ • 조직 상황 분석 협조
+ • 관련 정보 업데이트 보고 +
HSE 담당자 + • 조직 상황 분석 실무 수행
+ • 이해관계자 정보 수집 및 정리
+ • 관련 문서 작성 지원
+ • 정기적 검토 및 업데이트 실시 +
+
+ + +
+
+

6. 프로세스 흐름도

+
+ +
+
조직 상황 분석 계획
+
+
내부/외부 이슈 식별
+
+
이해관계자 식별 및 분석
+
+
HSE 관리시스템 적용 범위 설정
+
+
문서화 및 승인
+
+
정기적 검토 및 업데이트
+
+
+ + +
+
+

7. 세부 절차

+
+ +
+

7.1 조직 상황 분석 계획 수립

+

7.1.1 절차

+
    +
  1. HSE 관리책임자는 연 1회 또는 필요시 조직 상황 분석 계획을 수립한다
  2. +
  3. 분석 범위, 방법, 일정, 담당자를 명확히 정의한다
  4. +
  5. 각 부서장에게 협조 요청을 공문으로 발송한다
  6. +
  7. 분석에 필요한 자료와 정보원을 사전에 확보한다
  8. +
+ +

7.1.2 고려사항

+
    +
  • 사업 환경의 변화 여부
  • +
  • 새로운 법규 및 규제 도입
  • +
  • 조직 구조 및 전략의 변경
  • +
  • 이전 분석 결과의 유효성
  • +
+
+ +
+

7.2 내부 및 외부 이슈 식별

+

7.2.1 외부 이슈 분석

+
    +
  1. 법적 환경 +
      +
    • 산업안전보건법 및 관련 법령 변화
    • +
    • 환경 관련 법규 동향
    • +
    • 국제 표준 및 규격 변화
    • +
    +
  2. +
  3. 경제적 환경 +
      +
    • 시장 경제 상황 및 전망
    • +
    • 업계 경기 동향
    • +
    • 경쟁업체 현황
    • +
    +
  4. +
  5. 기술적 환경 +
      +
    • 안전보건 기술 발전 동향
    • +
    • 새로운 위험요소 출현
    • +
    • 디지털 기술 적용 가능성
    • +
    +
  6. +
  7. 사회적 환경 +
      +
    • 사회적 안전 의식 변화
    • +
    • 근로자 권익 보호 요구
    • +
    • 지역사회 관심사항
    • +
    +
  8. +
+ +

7.2.2 내부 이슈 분석

+
    +
  1. 조직 구조 +
      +
    • 조직도 및 보고 체계
    • +
    • 역할 및 책임 분담
    • +
    • 의사결정 프로세스
    • +
    +
  2. +
  3. 인적 자원 +
      +
    • 인력 현황 및 역량
    • +
    • 교육훈련 수준
    • +
    • 근로자 참여도
    • +
    +
  4. +
  5. 물적 자원 +
      +
    • 시설 및 장비 현황
    • +
    • 안전보건 시설 수준
    • +
    • 기술적 능력
    • +
    +
  6. +
  7. 조직 문화 +
      +
    • 안전보건 문화 수준
    • +
    • 의사소통 체계
    • +
    • 학습 및 개선 의지
    • +
    +
  8. +
+
+ +
+

7.3 이해관계자 식별 및 분석

+

7.3.1 이해관계자 식별

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
구분이해관계자주요 관심사항
내부근로자안전한 작업환경, 건강보호, 참여 기회
경영진법적 준수, 비용 절감, 생산성 향상
주주기업 이미지, 재무 성과, 지속가능성
노동조합근로자 권익, 안전보건 조건 개선
외부고객제품 안전성, 기업 신뢰도
공급업체/계약업체안전한 작업 조건, 계약 이행
정부/규제기관법적 준수, 사고 예방
지역사회환경 영향, 사회적 책임
보험회사위험 관리, 사고율 감소
+ +

7.3.2 이해관계자 요구사항 분석

+
    +
  1. 각 이해관계자별 구체적 요구사항을 조사한다
  2. +
  3. 법적 요구사항과 자발적 요구사항을 구분한다
  4. +
  5. 요구사항의 우선순위와 중요도를 평가한다
  6. +
  7. 상충되는 요구사항에 대한 조정 방안을 마련한다
  8. +
  9. 요구사항 변화를 모니터링할 체계를 구축한다
  10. +
+
+ +
+

7.4 HSE 관리시스템 적용 범위 설정

+

7.4.1 적용 범위 결정 기준

+
    +
  • 조직의 통제 또는 영향 하에 있는 활동
  • +
  • HSE 성과에 영향을 줄 수 있는 활동
  • +
  • 법적 요구사항이 적용되는 영역
  • +
  • 이해관계자의 기대가 반영되는 영역
  • +
+ +

7.4.2 적용 범위 문서화

+
    +
  1. 물리적 위치 및 시설 명시
  2. +
  3. 포함되는 활동, 제품, 서비스 기술
  4. +
  5. 조직의 권한과 통제 범위 정의
  6. +
  7. 제외 사항 및 그 사유 명시
  8. +
  9. 적용 범위의 가용성 보장
  10. +
+
+ +
+

7.5 정기적 검토 및 업데이트

+

7.5.1 검토 주기

+
    +
  • 정기 검토: 매년 1회 이상
  • +
  • 임시 검토: 중대한 변화 발생 시
  • +
  • 경영 검토 시 함께 검토
  • +
+ +

7.5.2 업데이트 절차

+
    +
  1. 변화 요인 식별 및 영향 분석
  2. +
  3. 관련 부서와 협의
  4. +
  5. 업데이트 내용 문서화
  6. +
  7. 승인 및 공유
  8. +
  9. 관련 문서 연동 업데이트
  10. +
+
+
+ + +
+
+

8. 기록 관리

+
+ +

8.1 작성 기록

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기록명작성자보관 기간보관 장소
조직 상황 분석 보고서HSE 관리책임자3년HSE 관리부서
이해관계자 등록부HSE 담당자3년HSE 관리부서
HSE 관리시스템 적용 범위서HSE 관리책임자영구HSE 관리부서
검토 및 업데이트 기록HSE 담당자3년HSE 관리부서
+ +

8.2 기록 관리 요구사항

+
    +
  • 모든 기록은 읽기 쉽고 식별 가능해야 함
  • +
  • 기록의 검색, 보관, 보호가 용이해야 함
  • +
  • 보관 기간 만료 시 적절히 처분
  • +
  • 전자 문서의 경우 백업 및 보안 조치
  • +
+
+ + +
+
+

9. 첨부 서식

+
+ +
    +
  • 첨부 1: 조직 상황 분석 체크리스트
  • +
  • 첨부 2: 이해관계자 등록 양식
  • +
  • 첨부 3: HSE 관리시스템 적용 범위 양식
  • +
  • 첨부 4: 검토 및 업데이트 기록 양식
  • +
+
+
+ + +
+ +
+

TK-HSE-P-410

+

Understanding Organizational Context and HSE Management System Operation Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleUnderstanding Organizational Context and HSE Management System Operation Procedure
Document NumberTK-HSE-P-410
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 6
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+
+

1. PURPOSE

+
+

The purpose of this procedure is to:

+
    +
  • Systematically identify and analyze the internal and external context of the organization
  • +
  • Identify and manage the needs and expectations of interested parties
  • +
  • Clearly define the scope of application of the HSE management system
  • +
  • Effectively establish, implement, maintain and improve the HSE management system
  • +
  • Systematically implement the requirements of ISO 45001:2018 Clause 4
  • +
+
+ + +
+
+

2. SCOPE

+
+

This procedure applies to the following areas of Technicalkorea:

+
    +
  • All departments and business sites
  • +
  • HSE management system establishment and operation activities
  • +
  • Organizational context analysis and stakeholder management tasks
  • +
  • Setting and managing the scope of HSE management system application
  • +
  • Related contractors and suppliers
  • +
+
+ + +
+
+

3. NORMATIVE REFERENCES AND RELATED DOCUMENTS

+
+

3.1 Normative References

+
    +
  • ISO 45001:2018 - Occupational health and safety management systems - Requirements with guidance for use
  • +
  • Occupational Safety and Health Act and related regulations
  • +
+ +

3.2 Related Documents

+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-510 - Leadership and Policy Establishment Procedure
  • +
  • TK-HSE-P-610 - Planning and Risk Management Procedure
  • +
  • TK-HSE-P-740 - Documented Information Management Procedure
  • +
+
+ + +
+
+

4. TERMS AND DEFINITIONS

+
+ +
+

4.1 Context of the organization

+

Combination of internal and external issues that can influence the organization's approach to developing and achieving its objectives

+ +

4.2 Interested party

+

Person or organization that can affect, be affected by, or perceive themselves to be affected by a decision or activity

+ +

4.3 Requirements

+

Need or expectation that is stated, generally implied or obligatory

+ +

4.4 Scope

+

Extent and boundaries of activities, products and services of an organization to which the management system applies

+
+
+ + +
+
+

5. ROLES AND RESPONSIBILITIES

+
+ + + + + + + + + + + + + + + + + + + + + + +
RoleResponsibilities
Top Management + • Approve organizational context analysis results
+ • Make final decisions on HSE management system scope
+ • Approve stakeholder management strategies
+ • Decide on provision of necessary resources +
HSE Management Representative + • Overall management of organizational context analysis
+ • Lead stakeholder identification and analysis
+ • Propose HSE management system scope
+ • Prepare and manage related documents +
Department Heads + • Identify internal and external issues by department
+ • Provide stakeholder information related to departments
+ • Cooperate in organizational context analysis
+ • Report updates on relevant information +
HSE Personnel + • Perform practical organizational context analysis
+ • Collect and organize stakeholder information
+ • Support preparation of related documents
+ • Conduct regular reviews and updates +
+
+ + +
+
+

6. PROCESS FLOW CHART

+
+ +
+
Organizational Context Analysis Planning
+
+
Internal/External Issues Identification
+
+
Stakeholder Identification and Analysis
+
+
HSE Management System Scope Setting
+
+
Documentation and Approval
+
+
Regular Review and Update
+
+
+ + +
+
+

7. DETAILED PROCEDURES

+
+ +
+

7.1 Establishing Organizational Context Analysis Plan

+

7.1.1 Procedure

+
    +
  1. The HSE Management Representative establishes an organizational context analysis plan annually or as needed
  2. +
  3. Clearly define the analysis scope, method, schedule, and responsible persons
  4. +
  5. Send cooperation requests to each department head via official document
  6. +
  7. Secure necessary data and information sources in advance for analysis
  8. +
+ +

7.1.2 Considerations

+
    +
  • Changes in business environment
  • +
  • Introduction of new laws and regulations
  • +
  • Changes in organizational structure and strategy
  • +
  • Validity of previous analysis results
  • +
+
+ +
+

7.2 Internal and External Issues Identification

+

7.2.1 External Issues Analysis

+
    +
  1. Legal Environment +
      +
    • Changes in Occupational Safety and Health Act and related laws
    • +
    • Environmental regulatory trends
    • +
    • Changes in international standards and specifications
    • +
    +
  2. +
  3. Economic Environment +
      +
    • Market economic conditions and prospects
    • +
    • Industry business trends
    • +
    • Competitor status
    • +
    +
  4. +
  5. Technological Environment +
      +
    • Safety and health technology development trends
    • +
    • Emergence of new risk factors
    • +
    • Digital technology application possibilities
    • +
    +
  6. +
  7. Social Environment +
      +
    • Changes in social safety awareness
    • +
    • Demands for worker rights protection
    • +
    • Local community concerns
    • +
    +
  8. +
+ +

7.2.2 Internal Issues Analysis

+
    +
  1. Organizational Structure +
      +
    • Organizational chart and reporting system
    • +
    • Role and responsibility distribution
    • +
    • Decision-making process
    • +
    +
  2. +
  3. Human Resources +
      +
    • Personnel status and capabilities
    • +
    • Education and training level
    • +
    • Worker participation level
    • +
    +
  4. +
  5. Physical Resources +
      +
    • Facilities and equipment status
    • +
    • Safety and health facility level
    • +
    • Technical capabilities
    • +
    +
  6. +
  7. Organizational Culture +
      +
    • Safety and health culture level
    • +
    • Communication system
    • +
    • Learning and improvement willingness
    • +
    +
  8. +
+
+ +
+

7.3 Stakeholder Identification and Analysis

+

7.3.1 Stakeholder Identification

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryStakeholderKey Concerns
InternalWorkersSafe working environment, health protection, participation opportunities
ManagementLegal compliance, cost reduction, productivity improvement
ShareholdersCorporate image, financial performance, sustainability
Labor UnionWorker rights, improvement of safety and health conditions
ExternalCustomersProduct safety, corporate reliability
Suppliers/ContractorsSafe working conditions, contract fulfillment
Government/Regulatory AgenciesLegal compliance, accident prevention
Local CommunityEnvironmental impact, social responsibility
Insurance CompaniesRisk management, accident rate reduction
+ +

7.3.2 Stakeholder Requirements Analysis

+
    +
  1. Investigate specific requirements for each stakeholder
  2. +
  3. Distinguish between legal requirements and voluntary requirements
  4. +
  5. Evaluate priority and importance of requirements
  6. +
  7. Establish coordination measures for conflicting requirements
  8. +
  9. Establish a system to monitor changes in requirements
  10. +
+
+ +
+

7.4 Setting HSE Management System Scope

+

7.4.1 Scope Determination Criteria

+
    +
  • Activities under the organization's control or influence
  • +
  • Activities that can affect HSE performance
  • +
  • Areas where legal requirements apply
  • +
  • Areas where stakeholder expectations are reflected
  • +
+ +

7.4.2 Scope Documentation

+
    +
  1. Specify physical locations and facilities
  2. +
  3. Describe included activities, products, and services
  4. +
  5. Define the organization's authority and control scope
  6. +
  7. Specify exclusions and their rationale
  8. +
  9. Ensure availability of the scope
  10. +
+
+ +
+

7.5 Regular Review and Update

+

7.5.1 Review Cycle

+
    +
  • Regular review: At least once a year
  • +
  • Ad-hoc review: When significant changes occur
  • +
  • Review together during management review
  • +
+ +

7.5.2 Update Procedure

+
    +
  1. Identify change factors and analyze impact
  2. +
  3. Consult with related departments
  4. +
  5. Document update contents
  6. +
  7. Approve and share
  8. +
  9. Update related linked documents
  10. +
+
+
+ + +
+
+

8. RECORDS MANAGEMENT

+
+ +

8.1 Records to be Maintained

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Record NamePrepared byRetention PeriodStorage Location
Organizational Context Analysis ReportHSE Management Representative3 yearsHSE Management Department
Stakeholder RegisterHSE Personnel3 yearsHSE Management Department
HSE Management System Scope DocumentHSE Management RepresentativePermanentHSE Management Department
Review and Update RecordsHSE Personnel3 yearsHSE Management Department
+ +

8.2 Records Management Requirements

+
    +
  • All records must be legible and identifiable
  • +
  • Records must be easily retrievable, stored, and protected
  • +
  • Appropriate disposal when retention period expires
  • +
  • Backup and security measures for electronic documents
  • +
+
+ + +
+
+

9. APPENDIX FORMS

+
+ +
    +
  • Appendix 1: Organizational Context Analysis Checklist
  • +
  • Appendix 2: Stakeholder Registration Form
  • +
  • Appendix 3: HSE Management System Scope Form
  • +
  • Appendix 4: Review and Update Record Form
  • +
+
+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-510.html b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-510.html new file mode 100644 index 0000000..808a9f1 --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-510.html @@ -0,0 +1,1529 @@ + + + + + + TK-HSE-P-510 리더십 및 정책 수립 절차 + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-510

+

리더십 및 정책 수립 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목리더십 및 정책 수립 절차
문서 번호TK-HSE-P-510
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 7
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+
+

1. 목적

+
+

본 절차의 목적은 다음과 같습니다:

+
    +
  • 최고경영자의 HSE 관리시스템에 대한 리더십과 의지 실증
  • +
  • HSE 정책의 체계적 수립, 실행, 유지 및 의사소통
  • +
  • 조직 내 HSE 역할, 책임 및 권한의 명확한 정의
  • +
  • 근로자의 협의와 참여를 위한 체계적 프레임워크 구축
  • +
  • ISO 45001:2018 표준 5조 요구사항의 효과적 이행
  • +
+
+ + +
+
+

2. 적용 범위

+
+

본 절차는 테크니컬코리아의 다음 영역에 적용됩니다:

+
    +
  • 최고경영자의 리더십 활동
  • +
  • HSE 정책 수립, 승인, 실행 및 유지 관리
  • +
  • 조직 내 HSE 관련 역할과 책임 배정
  • +
  • 근로자 협의 및 참여 프로세스
  • +
  • HSE 관리시스템 적용 범위 내 모든 활동
  • +
+
+ + +
+
+

3. 인용 표준 및 관련 문서

+
+

3.1 인용 표준

+
    +
  • ISO 45001:2018 - 직장 보건안전 관리시스템 - 요구사항 및 사용 지침
  • +
  • 산업안전보건법 및 관련 법령
  • +
  • 근로자참여 및 협력증진에 관한 법률
  • +
+ +

3.2 관련 문서

+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-410 - 조직 상황 이해 및 HSE 관리시스템 운영 절차
  • +
  • TK-HSE-P-520 - 조직 편성 및 직무 배정 절차
  • +
  • TK-HSE-P-730 - 인식 및 의사소통 절차
  • +
+
+ + +
+
+

4. 용어와 정의

+
+ +
+

4.1 최고경영자 (Top management)

+

최고 수준에서 조직을 지휘하고 통제하는 개인 또는 집단

+ +

4.2 정책 (Policy)

+

최고경영자가 공식적으로 표현한 조직의 의도와 방향

+ +

4.3 협의 (Consultation)

+

결정을 내리기 전에 견해를 구하는 것

+ +

4.4 참여 (Participation)

+

의사결정 과정에 관여하는 것

+ +

4.5 리더십 (Leadership)

+

목표를 달성하기 위해 다른 사람들에게 영향을 미치고 동기를 부여하는 능력

+
+
+ + +
+
+

5. 역할과 책임

+
+ + + + + + + + + + + + + + + + + + + + + + +
역할책임사항
최고경영자 + • HSE 관리시스템에 대한 리더십과 의지 실증
+ • HSE 정책 승인 및 대외 의사소통
+ • 조직 내 HSE 역할과 책임 최종 승인
+ • 근로자 협의 및 참여 프로세스 승인
+ • HSE 관리시스템 효과성 보장
+ • 필요 자원 제공 및 지원 +
HSE 관리책임자 + • HSE 정책 초안 작성 및 개정
+ • 조직 내 HSE 역할과 책임 체계 구축
+ • 근로자 협의 및 참여 프로그램 운영
+ • HSE 정책 교육 및 전파
+ • 정책 이행 상황 모니터링 +
각 부서장 + • 부서 내 HSE 정책 전파 및 실행
+ • 부서원의 HSE 역할과 책임 명확화
+ • 근로자 의견 수렴 및 상급자 보고
+ • 부서 HSE 성과 관리
+ • HSE 개선 활동 참여 +
근로자 + • HSE 정책 이해 및 준수
+ • 배정된 HSE 역할과 책임 수행
+ • HSE 협의 및 참여 활동 적극 참여
+ • HSE 개선 의견 제시
+ • 동료 근로자의 HSE 활동 지원 +
+
+ + +
+
+

6. 프로세스 흐름도

+
+ +
+
HSE 정책 수립 필요성 검토
+
+
정책 초안 작성
+
+
근로자 협의 및 의견 수렴
+
+
정책 검토 및 수정
+
+
최고경영자 승인
+
+
정책 공표 및 교육
+
+
역할과 책임 배정
+
+
이행 모니터링 및 검토
+
+
+ + +
+
+

7. HSE 정책

+
+ +
+
테크니컬코리아 HSE 정책
+ +

우리 테크니컬코리아는 모든 임직원과 이해관계자의 건강과 안전을 최우선 가치로 여기며, 환경보호를 통한 지속가능한 경영을 추구합니다.

+ +
+

우리의 약속 (Our Commitments)

+
    +
  1. 안전하고 건강한 작업환경 제공 +
      +
    • 무재해 사업장 구현을 위한 지속적 노력
    • +
    • 근로자의 신체적, 정신적 건강 보호
    • +
    • 안전한 작업 조건과 환경 조성
    • +
    +
  2. + +
  3. 법적 요구사항 및 기타 요구사항 준수 +
      +
    • 산업안전보건법 등 관련 법령 완전 준수
    • +
    • 국제 표준 및 모범 사례 적극 적용
    • +
    • 고객 및 이해관계자 요구사항 충족
    • +
    +
  4. + +
  5. 유해요인 제거 및 HSE 위험 감소 +
      +
    • 체계적인 위험 평가 및 관리
    • +
    • 사전 예방적 안전관리 시스템 운영
    • +
    • 최신 안전기술 도입 및 적용
    • +
    +
  6. + +
  7. 지속적 개선 +
      +
    • HSE 성과의 지속적 향상
    • +
    • 혁신적 개선 아이디어 발굴 및 적용
    • +
    • 학습하는 조직문화 구축
    • +
    +
  8. + +
  9. 근로자 협의 및 참여 +
      +
    • 모든 HSE 의사결정에 근로자 참여 보장
    • +
    • 열린 의사소통 문화 조성
    • +
    • 근로자 의견의 적극적 수렴 및 반영
    • +
    +
  10. + +
  11. 목표 설정 및 성과 관리 +
      +
    • 명확하고 측정 가능한 HSE 목표 설정
    • +
    • 정기적 성과 검토 및 평가
    • +
    • 목표 달성을 위한 체계적 실행
    • +
    +
  12. +
+
+ +

모든 임직원은 이 정책을 이해하고 실천하여 안전하고 건강한 일터를 만드는데 적극 참여해야 합니다.

+ +
+

2025년 1월 3일

+

테크니컬코리아 대표이사

+

________________

+

[서명]

+
+
+
+ + +
+
+

8. 세부 절차

+
+ +
+

8.1 HSE 정책 수립 절차

+

8.1.1 정책 수립 필요성 검토

+
    +
  1. 정기 검토: 매년 1회 정책의 적절성 검토
  2. +
  3. 임시 검토: 다음 상황 발생 시 즉시 검토 +
      +
    • 관련 법령의 개정
    • +
    • 조직 구조나 사업 영역의 변경
    • +
    • 중대한 사고나 사건 발생
    • +
    • 이해관계자의 요구사항 변화
    • +
    +
  4. +
  5. 검토 결과 문서화: 검토 내용과 결론을 기록
  6. +
+ +

8.1.2 정책 초안 작성

+
    +
  1. HSE 관리책임자가 초안 작성 주관
  2. +
  3. 다음 요소를 필수적으로 포함: +
      +
    • 안전하고 건강한 작업조건 제공 의지
    • +
    • HSE 목표 설정을 위한 프레임워크
    • +
    • 법적 요구사항 및 기타 요구사항 준수 의지
    • +
    • 유해요인 제거 및 HSE 위험 감소 의지
    • +
    • 지속적 개선 의지
    • +
    • 근로자 협의 및 참여 의지
    • +
    +
  4. +
  5. 조직의 특성과 사업 영역을 반영
  6. +
  7. 이해하기 쉽고 명확한 언어로 작성
  8. +
+ +

8.1.3 근로자 협의 및 의견 수렴

+
    +
  1. 정책 초안을 전 근로자에게 공개
  2. +
  3. 다양한 채널을 통한 의견 수렴: +
      +
    • 부서별 설명회 개최
    • +
    • 서면 의견서 접수
    • +
    • 온라인 의견 제출 시스템 활용
    • +
    • 근로자 대표와 개별 면담
    • +
    +
  4. +
  5. 수렴 기간: 최소 2주간
  6. +
  7. 의견 검토 및 반영 여부 결정
  8. +
+
+ +
+

8.2 조직 내 역할과 책임 체계

+

8.2.1 HSE 조직도 작성

+
    +
  1. 최고경영자를 정점으로 하는 HSE 조직 체계 구성
  2. +
  3. 각 계층별 역할과 책임 명확히 정의
  4. +
  5. 보고 체계와 의사소통 경로 명시
  6. +
  7. 의사결정 권한과 범위 규정
  8. +
+ +

8.2.2 역할과 책임 문서 작성

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
직급/역할주요 HSE 책임권한
최고경영자• HSE 관리시스템 총괄
• 정책 승인 및 자원 제공
• 리더십 실증
• 최종 의사결정
• 예산 승인
• 조직 변경
HSE 관리책임자• HSE 시스템 운영
• 법규 준수 관리
• 성과 모니터링
• 시스템 개선
• 교육 시행
• 점검 및 감사
부서장• 부서 HSE 관리
• 근로자 교육
• 사고 보고
• 부서 내 결정
• 시정조치
• 자원 요청
안전관리자• 기술적 지원
• 위험 평가
• 안전 점검
• 기술 지도
• 작업 중지
• 개선 권고
근로자• 안전 수칙 준수
• 위험 신고
• 교육 참여
• 작업 거부권
• 의견 제시
• 참여 권리
+
+ +
+

8.3 근로자 협의 및 참여 체계

+

8.3.1 협의 및 참여 체계 구축

+
    +
  1. HSE 위원회 구성 +
      +
    • 사용자 측 위원: 3명 (경영진, HSE 관리책임자 등)
    • +
    • 근로자 측 위원: 3명 (근로자 대표, 현장 대표 등)
    • +
    • 분기별 정기 회의 개최
    • +
    • 임시 회의: 필요시 수시 개최
    • +
    +
  2. + +
  3. 부서별 HSE 담당자 지정 +
      +
    • 각 부서에서 HSE 담당자 1명 지정
    • +
    • 월 1회 HSE 담당자 회의 개최
    • +
    • 부서 내 HSE 이슈 수집 및 전달
    • +
    +
  4. + +
  5. 의견 수렴 채널 운영 +
      +
    • HSE 제안함 설치 및 운영
    • +
    • 온라인 의견 제출 시스템
    • +
    • 익명 신고 시스템 운영
    • +
    • 정기적 간담회 개최
    • +
    +
  6. +
+ +

8.3.2 협의 및 참여 영역

+
    +
  • HSE 정책 수립 및 개정
  • +
  • HSE 목표 설정 및 계획 수립
  • +
  • 위험 평가 및 관리 방안
  • +
  • 안전보건 교육 프로그램
  • +
  • 사고 조사 및 재발 방지 대책
  • +
  • 작업 환경 개선 사항
  • +
  • 개인보호구 선정 및 지급
  • +
  • HSE 성과 평가 및 개선
  • +
+
+
+ + +
+
+

9. 리더십 실증 활동

+
+ +
+

9.1 최고경영자 리더십 활동

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
활동 영역구체적 활동실행 주기
정책 의사소통• 신년 HSE 메시지 발표
• 주요 회의에서 HSE 중요성 강조
• HSE 정책 서명 및 게시
연 1회 이상
월 1회
정책 수립 시
현장 방문• 정기적 현장 안전 순회
• 근로자와 직접 대화
• 안전 문제 즉석 해결
월 2회 이상
분기 1회
즉시
자원 제공• HSE 예산 승인
• 안전시설 투자 결정
• 교육 프로그램 지원
연간 예산
필요시
지속적
성과 검토• 월간 HSE 성과 보고 청취
• 경영 검토 회의 주관
• 개선 지시 및 확인
월 1회
분기 1회
수시
+
+ +
+

9.2 중간 관리자 리더십 활동

+
    +
  • 일일 안전 점검: 작업 시작 전 안전 상태 확인
  • +
  • 주간 안전 회의: 부서별 안전 이슈 논의
  • +
  • 즉석 교육: 위험 상황 발견 시 즉시 교육 실시
  • +
  • 모범 행동: 안전 수칙 준수의 모범 사례 제시
  • +
  • 격려와 인정: 우수 안전 활동에 대한 칭찬과 보상
  • +
+
+
+ + +
+
+

10. 성과 모니터링 및 검토

+
+ +
+

10.1 정책 이행 모니터링

+

10.1.1 모니터링 지표

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
영역지표측정 방법목표
정책 인식도정책 이해도 (%)설문조사90% 이상
근로자 참여HSE 위원회 참석률 (%)출석 체크95% 이상
리더십 활동현장 방문 횟수방문 기록월 2회 이상
의사소통의견 제출 건수접수 현황월 5건 이상
+ +

10.1.2 검토 및 개선

+
    +
  1. 월간 검토: HSE 관리책임자가 지표 현황 분석
  2. +
  3. 분기 검토: HSE 위원회에서 성과 평가
  4. +
  5. 연간 검토: 경영 검토 시 종합 평가
  6. +
  7. 개선 조치: 미달 지표에 대한 구체적 개선 계획 수립
  8. +
+
+
+ + +
+
+

11. 기록 관리

+
+ +

11.1 작성 기록

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기록명작성자보관 기간보관 장소
HSE 정책서최고경영자영구HSE 관리부서
역할과 책임 매트릭스HSE 관리책임자3년HSE 관리부서
HSE 위원회 회의록HSE 담당자3년HSE 관리부서
리더십 활동 기록각 부서장3년각 부서
근로자 의견 수렴 기록HSE 담당자3년HSE 관리부서
정책 교육 기록교육 담당자3년교육 담당부서
+
+ + +
+
+

12. 첨부 서식

+
+ +
    +
  • 첨부 1: HSE 정책 승인 요청서
  • +
  • 첨부 2: 역할과 책임 매트릭스 양식
  • +
  • 첨부 3: HSE 위원회 회의록 양식
  • +
  • 첨부 4: 근로자 의견 제출서
  • +
  • 첨부 5: 리더십 활동 체크리스트
  • +
  • 첨부 6: 정책 이행 모니터링 표
  • +
+
+
+ + +
+ +
+

TK-HSE-P-510

+

Leadership and Policy Establishment Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleLeadership and Policy Establishment Procedure
Document NumberTK-HSE-P-510
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 7
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+
+

1. Purpose

+
+

The purpose of this procedure is as follows:

+
    +
  • Demonstrate top management's leadership and commitment to the HSE management system
  • +
  • Systematic establishment, implementation, maintenance, and communication of HSE policy
  • +
  • Clear definition of HSE roles, responsibilities, and authorities within the organization
  • +
  • Establish a systematic framework for worker consultation and participation
  • +
  • Effective implementation of ISO 45001:2018 standard clause 5 requirements
  • +
+
+ + +
+
+

2. Scope

+
+

This procedure applies to the following areas of Technicalkorea:

+
    +
  • Top management leadership activities
  • +
  • HSE policy establishment, approval, implementation, and maintenance
  • +
  • Assignment of HSE-related roles and responsibilities within the organization
  • +
  • Worker consultation and participation processes
  • +
  • All activities within the scope of the HSE management system
  • +
+
+ + +
+
+

3. Referenced Standards and Related Documents

+
+

3.1 Referenced Standards

+
    +
  • ISO 45001:2018 - Occupational health and safety management systems - Requirements with guidance for use
  • +
  • Occupational Safety and Health Act and related regulations
  • +
  • Act on the Promotion of Worker Participation and Cooperation
  • +
+ +

3.2 Related Documents

+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-410 - Understanding Organizational Context and HSE Management System Operation Procedure
  • +
  • TK-HSE-P-520 - Organizational Structure and Job Assignment Procedure
  • +
  • TK-HSE-P-730 - Awareness and Communication Procedure
  • +
+
+ + +
+
+

4. Terms and Definitions

+
+ +
+

4.1 Top management

+

Person or group of people who directs and controls an organization at the highest level

+ +

4.2 Policy

+

Intentions and direction of an organization as formally expressed by its top management

+ +

4.3 Consultation

+

Seeking views before making a decision

+ +

4.4 Participation

+

Involvement in decision-making

+ +

4.5 Leadership

+

Ability to influence and motivate others to achieve objectives

+
+
+ + +
+
+

5. Roles and Responsibilities

+
+ + + + + + + + + + + + + + + + + + + + + + +
RoleResponsibilities
Top Management + • Demonstrate leadership and commitment to the HSE management system
+ • Approve HSE policy and communicate externally
+ • Final approval of HSE roles and responsibilities within the organization
+ • Approve worker consultation and participation processes
+ • Ensure effectiveness of the HSE management system
+ • Provide necessary resources and support +
HSE Manager + • Draft and revise HSE policy
+ • Establish HSE roles and responsibility system within the organization
+ • Operate worker consultation and participation programs
+ • HSE policy training and dissemination
+ • Monitor policy implementation status +
Department Heads + • Disseminate and implement HSE policy within departments
+ • Clarify HSE roles and responsibilities of department members
+ • Collect worker opinions and report to superiors
+ • Manage department HSE performance
+ • Participate in HSE improvement activities +
Workers + • Understand and comply with HSE policy
+ • Perform assigned HSE roles and responsibilities
+ • Actively participate in HSE consultation and participation activities
+ • Submit HSE improvement suggestions
+ • Support fellow workers' HSE activities +
+
+ + +
+
+

6. Process Flow Chart

+
+ +
+
Review Need for HSE Policy Establishment
+
+
Draft Policy
+
+
Worker Consultation and Opinion Collection
+
+
Policy Review and Modification
+
+
Top Management Approval
+
+
Policy Announcement and Training
+
+
Assign Roles and Responsibilities
+
+
Implementation Monitoring and Review
+
+
+ + +
+
+

7. HSE Policy

+
+ +
+
Technicalkorea HSE Policy
+ +

We, Technicalkorea, regard the health and safety of all employees and stakeholders as our highest priority value and pursue sustainable management through environmental protection.

+ +
+

Our Commitments

+
    +
  1. Providing Safe and Healthy Work Environment +
      +
    • Continuous efforts to achieve zero-accident workplace
    • +
    • Protection of workers' physical and mental health
    • +
    • Creation of safe working conditions and environment
    • +
    +
  2. + +
  3. Compliance with Legal Requirements and Other Requirements +
      +
    • Full compliance with Occupational Safety and Health Act and related laws
    • +
    • Active application of international standards and best practices
    • +
    • Meeting customer and stakeholder requirements
    • +
    +
  4. + +
  5. Elimination of Hazards and Reduction of HSE Risks +
      +
    • Systematic risk assessment and management
    • +
    • Operation of proactive safety management system
    • +
    • Introduction and application of latest safety technologies
    • +
    +
  6. + +
  7. Continual Improvement +
      +
    • Continuous improvement of HSE performance
    • +
    • Discovery and application of innovative improvement ideas
    • +
    • Building a learning organizational culture
    • +
    +
  8. + +
  9. Worker Consultation and Participation +
      +
    • Ensuring worker participation in all HSE decision-making
    • +
    • Creating an open communication culture
    • +
    • Active collection and reflection of worker opinions
    • +
    +
  10. + +
  11. Goal Setting and Performance Management +
      +
    • Setting clear and measurable HSE objectives
    • +
    • Regular performance review and evaluation
    • +
    • Systematic implementation to achieve objectives
    • +
    +
  12. +
+
+ +

All employees must understand and practice this policy to actively participate in creating a safe and healthy workplace.

+ +
+

January 3, 2025

+

CEO, Technicalkorea

+

________________

+

[Signature]

+
+
+
+ + +
+
+

8. Detailed Procedures

+
+ +
+

8.1 HSE Policy Establishment Procedure

+

8.1.1 Review of Policy Establishment Need

+
    +
  1. Regular Review: Review policy adequacy once a year
  2. +
  3. Ad-hoc Review: Immediate review when the following situations occur: +
      +
    • Amendment of related laws and regulations
    • +
    • Changes in organizational structure or business areas
    • +
    • Occurrence of major accidents or incidents
    • +
    • Changes in stakeholder requirements
    • +
    +
  4. +
  5. Document Review Results: Record review contents and conclusions
  6. +
+ +

8.1.2 Policy Draft Preparation

+
    +
  1. HSE Manager leads draft preparation
  2. +
  3. Must include the following elements: +
      +
    • Commitment to provide safe and healthy working conditions
    • +
    • Framework for setting HSE objectives
    • +
    • Commitment to comply with legal requirements and other requirements
    • +
    • Commitment to eliminate hazards and reduce HSE risks
    • +
    • Commitment to continual improvement
    • +
    • Commitment to worker consultation and participation
    • +
    +
  4. +
  5. Reflect organizational characteristics and business areas
  6. +
  7. Write in clear and understandable language
  8. +
+ +

8.1.3 Worker Consultation and Opinion Collection

+
    +
  1. Disclose policy draft to all workers
  2. +
  3. Collect opinions through various channels: +
      +
    • Hold departmental briefings
    • +
    • Receive written opinion submissions
    • +
    • Utilize online opinion submission system
    • +
    • Individual interviews with worker representatives
    • +
    +
  4. +
  5. Collection period: Minimum 2 weeks
  6. +
  7. Review opinions and decide on reflection
  8. +
+
+ +
+

8.2 Organizational Roles and Responsibility System

+

8.2.1 HSE Organization Chart Preparation

+
    +
  1. Establish HSE organizational system with top management at the apex
  2. +
  3. Clearly define roles and responsibilities at each level
  4. +
  5. Specify reporting system and communication channels
  6. +
  7. Define decision-making authority and scope
  8. +
+ +

8.2.2 Roles and Responsibility Document Preparation

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Position/RoleMain HSE ResponsibilitiesAuthority
Top Management• Overall HSE management system
• Policy approval and resource provision
• Leadership demonstration
• Final decision-making
• Budget approval
• Organizational changes
HSE Manager• HSE system operation
• Legal compliance management
• Performance monitoring
• System improvement
• Training implementation
• Inspection and audit
Department Head• Department HSE management
• Worker training
• Accident reporting
• Departmental decisions
• Corrective actions
• Resource requests
Safety Manager• Technical support
• Risk assessment
• Safety inspection
• Technical guidance
• Work stoppage
• Improvement recommendations
Worker• Safety rule compliance
• Risk reporting
• Training participation
• Right to refuse work
• Opinion submission
• Participation rights
+
+ +
+

8.3 Worker Consultation and Participation System

+

8.3.1 Consultation and Participation System Establishment

+
    +
  1. HSE Committee Formation +
      +
    • Employer representatives: 3 members (management, HSE Manager, etc.)
    • +
    • Worker representatives: 3 members (worker representatives, field representatives, etc.)
    • +
    • Hold quarterly regular meetings
    • +
    • Ad-hoc meetings: Hold as needed
    • +
    +
  2. + +
  3. Departmental HSE Representative Designation +
      +
    • Designate 1 HSE representative from each department
    • +
    • Hold monthly HSE representative meetings
    • +
    • Collect and communicate HSE issues within departments
    • +
    +
  4. + +
  5. Opinion Collection Channel Operation +
      +
    • Install and operate HSE suggestion boxes
    • +
    • Online opinion submission system
    • +
    • Anonymous reporting system operation
    • +
    • Regular round-table meetings
    • +
    +
  6. +
+ +

8.3.2 Consultation and Participation Areas

+
    +
  • HSE policy establishment and revision
  • +
  • HSE objective setting and planning
  • +
  • Risk assessment and management measures
  • +
  • Occupational health and safety training programs
  • +
  • Accident investigation and recurrence prevention measures
  • +
  • Work environment improvement matters
  • +
  • Personal protective equipment selection and distribution
  • +
  • HSE performance evaluation and improvement
  • +
+
+
+ + +
+
+

9. Leadership Demonstration Activities

+
+ +
+

9.1 Top Management Leadership Activities

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Activity AreaSpecific ActivitiesImplementation Frequency
Policy Communication• Announce New Year HSE message
• Emphasize HSE importance in major meetings
• Sign and post HSE policy
Once a year or more
Monthly
When policy is established
Field Visits• Regular field safety rounds
• Direct dialogue with workers
• Immediate resolution of safety issues
Twice a month or more
Quarterly
Immediately
Resource Provision• HSE budget approval
• Safety facility investment decisions
• Training program support
Annual budget
As needed
Continuously
Performance Review• Listen to monthly HSE performance reports
• Chair management review meetings
• Issue and confirm improvement directives
Monthly
Quarterly
As needed
+
+ +
+

9.2 Middle Management Leadership Activities

+
    +
  • Daily Safety Inspection: Check safety conditions before work starts
  • +
  • Weekly Safety Meetings: Discuss departmental safety issues
  • +
  • On-the-spot Training: Immediate training when hazardous situations are discovered
  • +
  • Model Behavior: Present best practice examples of safety rule compliance
  • +
  • Encouragement and Recognition: Praise and reward excellent safety activities
  • +
+
+
+ + +
+
+

10. Performance Monitoring and Review

+
+ +
+

10.1 Policy Implementation Monitoring

+

10.1.1 Monitoring Indicators

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AreaIndicatorMeasurement MethodTarget
Policy AwarenessPolicy Understanding (%)Survey90% or higher
Worker ParticipationHSE Committee Attendance Rate (%)Attendance Check95% or higher
Leadership ActivitiesNumber of Field VisitsVisit RecordsTwice a month or more
CommunicationNumber of Opinion SubmissionsReception Status5 or more per month
+ +

10.1.2 Review and Improvement

+
    +
  1. Monthly Review: HSE Manager analyzes indicator status
  2. +
  3. Quarterly Review: HSE Committee evaluates performance
  4. +
  5. Annual Review: Comprehensive evaluation during management review
  6. +
  7. Improvement Actions: Establish specific improvement plans for underperforming indicators
  8. +
+
+
+ + +
+
+

11. Records Management

+
+ +

11.1 Records to be Created

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Record NamePrepared byRetention PeriodStorage Location
HSE Policy DocumentTop ManagementPermanentHSE Management Department
Roles and Responsibility MatrixHSE Manager3 yearsHSE Management Department
HSE Committee Meeting MinutesHSE Officer3 yearsHSE Management Department
Leadership Activity RecordsEach Department Head3 yearsEach Department
Worker Opinion Collection RecordsHSE Officer3 yearsHSE Management Department
Policy Training RecordsTraining Officer3 yearsTraining Department
+
+ + +
+
+

12. Attached Forms

+
+ +
    +
  • Attachment 1: HSE Policy Approval Request Form
  • +
  • Attachment 2: Roles and Responsibility Matrix Form
  • +
  • Attachment 3: HSE Committee Meeting Minutes Form
  • +
  • Attachment 4: Worker Opinion Submission Form
  • +
  • Attachment 5: Leadership Activity Checklist
  • +
  • Attachment 6: Policy Implementation Monitoring Table
  • +
+
+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-520.html b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-520.html new file mode 100644 index 0000000..ef7cc5f --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-520.html @@ -0,0 +1,1826 @@ + + + + + + TK-HSE-P-520 조직 편성 및 직무 배정 절차 + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-520

+

조직 편성 및 직무 배정 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목조직 편성 및 직무 배정 절차
문서 번호TK-HSE-P-520
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 8
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+
+

1. 목적

+
+

본 절차의 목적은 다음과 같습니다:

+
    +
  • HSE 관리시스템 운영을 위한 효과적인 조직 구조 설계
  • +
  • 각 역할과 책임의 명확한 정의 및 배정
  • +
  • 권한과 의사소통 체계의 체계적 구축
  • +
  • HSE 성과 향상을 위한 적절한 인력 배치
  • +
  • 조직 변화에 따른 유연한 조직 운영 체계 확립
  • +
+
+ + +
+
+

2. 적용 범위

+
+

본 절차는 테크니컬코리아의 다음 영역에 적용됩니다:

+
    +
  • HSE 관리시스템 관련 모든 조직 및 직책
  • +
  • 본사, 공장, 지사 등 모든 사업장
  • +
  • 정규직, 계약직, 파견직 등 모든 근로자
  • +
  • HSE 업무에 관련된 계약업체 및 협력업체
  • +
  • 조직 개편 및 인사 발령 업무
  • +
+
+ + +
+
+

3. 인용 표준 및 관련 문서

+
+

3.1 인용 표준

+
    +
  • ISO 45001:2018 - 직장 보건안전 관리시스템 - 요구사항 및 사용 지침
  • +
  • 산업안전보건법 및 시행령, 시행규칙
  • +
  • 안전보건관리책임자 등의 선임 및 직무에 관한 고시
  • +
+ +

3.2 관련 문서

+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-510 - 리더십 및 정책 수립 절차
  • +
  • TK-HSE-P-710 - 자원 관리 절차
  • +
  • TK-HSE-P-720 - 교육 및 훈련 관리 절차
  • +
+
+ + +
+
+

4. 용어와 정의

+
+ +
+

4.1 조직 (Organization)

+

목표를 달성하기 위해 책임, 권한 및 상호관계가 배치된 개인 또는 집단

+ +

4.2 역할 (Role)

+

특정 상황에서 개인이나 그룹에게 기대되는 행동이나 업무의 집합

+ +

4.3 책임 (Responsibility)

+

할당된 업무나 의무를 수행해야 하는 의무

+ +

4.4 권한 (Authority)

+

결정을 내리고 자원을 사용할 수 있는 권리와 권력

+ +

4.5 역량 (Competence)

+

의도된 결과를 달성하기 위해 지식과 기술을 적용하는 능력

+
+
+ + +
+
+

5. HSE 조직 구조

+
+ +
+
+
최고경영자 (CEO)
+
+
+
+
HSE 관리책임자
+
+
├──────┼──────┼──────┤
+
+
안전관리자
+
보건관리자
+
환경관리자
+
HSE 담당자
+
+
+
+
부서별 HSE 담당자
+
+
+
+
현장 작업자
+
+
+ +
+

5.1 조직 구조 설계 원칙

+
    +
  • 명확성: 역할과 책임의 명확한 구분
  • +
  • 효율성: 의사결정과 업무 수행의 효율성 추구
  • +
  • 유연성: 조직 변화에 대한 적응 능력
  • +
  • 소통성: 원활한 의사소통 체계 구축
  • +
  • 전문성: 각 분야별 전문 역량 확보
  • +
+
+
+ + +
+
+

6. 역할과 책임

+
+ +
+

6.1 최고경영자 (CEO)

+ + + + + + + + + + + + + + + + + + + + + +
책임 영역구체적 책임사항권한
전략 수립• HSE 비전 및 전략 수립
• HSE 정책 승인
• 중장기 HSE 목표 결정
• 최종 의사결정
• 예산 승인
• 조직 개편
자원 제공• HSE 예산 승인
• 인적 자원 배정
• 시설 및 장비 투자
• 예산 집행
• 인사 발령
• 투자 결정
성과 관리• HSE 성과 검토
• 경영 검토 주관
• 개선 지시
• 성과 평가
• 포상 및 징계
• 시정 명령
+
+ +
+

6.2 HSE 관리책임자

+ + + + + + + + + + + + + + + + + + + + + +
책임 영역구체적 책임사항권한
시스템 운영• HSE 관리시스템 총괄 운영
• 시스템 개선 및 발전
• 법규 준수 관리
• 시스템 변경
• 절차 승인
• 법규 해석
조직 관리• HSE 조직 운영
• 업무 분장 및 조정
• 성과 관리
• 업무 배정
• 성과 평가
• 교육 지시
대외 업무• 정부 기관 업무
• 감사 및 점검 대응
• 외부 기관 협력
• 대외 협상
• 공문 발송
• 계약 체결
+
+ +
+

6.3 안전관리자

+
+

📋 주요 업무

+
    +
  • 안전관리계획의 수립 및 시행
  • +
  • 근로자의 안전·보건교육
  • +
  • 작업환경의 점검 및 개선
  • +
  • 산업재해 원인조사 및 재발방지 대책 수립
  • +
  • 안전장치 및 보호구의 점검 및 관리
  • +
  • 기계·기구류의 안전성 검토
  • +
  • 안전보건 관리규정의 작성 및 변경
  • +
+ +

🎯 필요 자격

+
    +
  • 안전관리자 선임 자격 (산업안전보건법)
  • +
  • 관련 분야 학위 또는 경력
  • +
  • 안전관리 실무 경험 3년 이상
  • +
+
+
+ +
+

6.4 보건관리자

+
+

📋 주요 업무

+
    +
  • 작업환경의 측정 및 평가
  • +
  • 근로자의 건강진단 및 사후관리
  • +
  • 직업성질병 예방 및 관리
  • +
  • 작업환경 개선 및 보건교육
  • +
  • 유해·위험 요인의 발굴 및 개선
  • +
  • 보건 관련 통계의 유지·관리
  • +
  • 응급처치 및 구급처치
  • +
+ +

🎯 필요 자격

+
    +
  • 보건관리자 선임 자격 (산업안전보건법)
  • +
  • 간호사, 위생사 등 보건 관련 자격
  • +
  • 산업보건 실무 경험 2년 이상
  • +
+
+
+ +
+

6.5 환경관리자

+
+

📋 주요 업무

+
    +
  • 환경영향 평가 및 관리
  • +
  • 환경법규 준수 관리
  • +
  • 폐기물 관리 및 처리
  • +
  • 대기, 수질, 토양 오염 방지
  • +
  • 환경 모니터링 및 측정
  • +
  • 환경 개선 계획 수립 및 시행
  • +
  • 환경 사고 대응 및 복구
  • +
+ +

🎯 필요 자격

+
    +
  • 환경 관련 기사 이상 자격증
  • +
  • 환경공학 또는 관련 분야 학위
  • +
  • 환경관리 실무 경험 3년 이상
  • +
+
+
+ +
+

6.6 부서장

+ + + + + + + + + + + + + + + + + +
책임 영역구체적 책임사항
부서 HSE 관리• 부서 HSE 계획 수립
• 부서원 HSE 교육
• 일일 안전점검 실시
• 사고 예방 활동 주관
근로자 관리• 부서원 HSE 역할 배정
• 안전수칙 준수 지도
• HSE 성과 평가
• 위험 행동 시정
보고 및 소통• HSE 현황 상급자 보고
• 근로자 의견 수렴
• 개선사항 건의
• 사고 즉시 보고
+
+
+ + +
+
+

7. 조직 편성 절차

+
+ +
+

7.1 HSE 조직 설계

+

7.1.1 조직 설계 단계

+
    +
  1. 현황 분석 +
      +
    • 현재 조직 구조 분석
    • +
    • 업무량 및 업무 특성 파악
    • +
    • 인력 현황 및 역량 평가
    • +
    • 법적 요구사항 검토
    • +
    +
  2. + +
  3. 조직 설계 +
      +
    • 최적 조직 구조 설계
    • +
    • 역할과 책임 정의
    • +
    • 보고 체계 및 권한 설정
    • +
    • 의사소통 채널 구축
    • +
    +
  4. + +
  5. 승인 및 공표 +
      +
    • 최고경영자 승인
    • +
    • 조직도 및 업무분장 공표
    • +
    • 전 직원 교육 실시
    • +
    • 시행 및 모니터링
    • +
    +
  6. +
+ +

7.1.2 조직 설계 시 고려사항

+ + + + + + + + + + + + + + + + + + + + + +
고려 요소세부 사항
법적 요구사항• 산업안전보건법상 관리자 선임 의무
• 사업장 규모별 선임 기준
• 자격 요건 및 직무 범위
사업 특성• 업종 및 업무 위험도
• 사업장 위치 및 규모
• 작업 형태 및 근무 시간
인적 자원• 현재 인력 현황
• 필요 역량 및 자격
• 교육 및 개발 계획
예산 및 자원• 인건비 예산
• 교육 및 훈련 비용
• 시설 및 장비 투자
+
+ +
+

7.2 직무 배정 절차

+

7.2.1 직무 분석

+
    +
  1. 업무 내용 분석 +
      +
    • 주요 업무 및 세부 업무 파악
    • +
    • 업무의 중요도 및 난이도 평가
    • +
    • 업무량 및 소요 시간 산정
    • +
    • 다른 업무와의 연관성 분석
    • +
    +
  2. + +
  3. 필요 역량 정의 +
      +
    • 학력, 경력, 자격증 요건
    • +
    • 필요 지식 및 기술
    • +
    • 개인적 특성 및 능력
    • +
    • 의사소통 및 리더십 역량
    • +
    +
  4. + +
  5. 성과 지표 설정 +
      +
    • 정량적 성과 지표
    • +
    • 정성적 평가 기준
    • +
    • 목표 설정 및 평가 방법
    • +
    • 피드백 및 개선 체계
    • +
    +
  6. +
+ +

7.2.2 인력 배정

+
+
직무 요구사항 검토
+
+
후보자 선정
+
+
역량 평가
+
+
배정 결정
+
+
발령 및 교육
+
+
성과 모니터링
+
+
+
+ + +
+
+

8. 역량 관리

+
+ +
+

8.1 역량 요구사항

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
직책학력/경력자격증핵심 역량
HSE 관리책임자대졸 이상, 5년 이상 경력안전관리자 또는 관련 자격리더십, 의사소통, 문제해결
안전관리자관련 학과 졸업, 3년 이상 경력안전관리자 선임 자격위험 평가, 기술 지도, 교육
보건관리자보건 관련 학과, 2년 이상 경력간호사, 위생사 등건강 관리, 상담, 응급처치
환경관리자환경공학 관련, 3년 이상 경력환경 관련 기사 이상환경 분석, 법규 해석, 개선
HSE 담당자고졸 이상, 1년 이상 경력관련 자격 우대업무 수행, 협조, 학습
+
+ +
+

8.2 역량 개발 계획

+

8.2.1 교육 훈련 체계

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육 구분대상내용주기
신입 교육신규 배정자• 조직 소개
• 역할 및 책임
• 기본 업무 교육
배정 후 1개월 내
정기 교육전체 HSE 조직• 법규 변경사항
• 새로운 기술
• 모범 사례
분기별
전문 교육관리자급• 전문 기술
• 리더십
• 의사소통
연 2회
보수 교육자격 보유자• 법정 보수교육
• 자격 갱신
• 최신 동향
법정 기준
+ +

8.2.2 역량 평가

+
    +
  • 정기 평가: 연 2회 (상/하반기)
  • +
  • 평가 방법: 서면 평가, 실무 평가, 360도 평가
  • +
  • 평가 기준: 업무 성과, 전문 지식, 협업 능력
  • +
  • 개선 계획: 평가 결과에 따른 개인별 개발 계획 수립
  • +
+
+
+ + +
+
+

9. 의사소통 체계

+
+ +
+

9.1 의사소통 채널

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
채널 유형참여자주기내용
경영진 회의CEO, HSE 관리책임자월 1회• HSE 성과 보고
• 주요 이슈 논의
• 의사결정
HSE 관리자 회의HSE 조직 전체주 1회• 업무 현황 공유
• 협조 사항
• 개선 방안
부서별 간담회부서장, HSE 담당자월 1회• 부서 HSE 현황
• 애로사항
• 지원 요청
전사 HSE 회의전체 임직원분기 1회• 정책 전파
• 성과 공유
• 우수사례
+
+ +
+

9.2 보고 체계

+

9.2.1 정기 보고

+
    +
  • 일일 보고: 현장 → 부서장 → HSE 담당자
  • +
  • 주간 보고: HSE 담당자 → HSE 관리책임자
  • +
  • 월간 보고: HSE 관리책임자 → 최고경영자
  • +
  • 분기 보고: 전사 HSE 성과 종합 보고
  • +
+ +

9.2.2 비상 보고

+
    +
  • 사고 발생 시: 즉시 보고 (30분 내)
  • +
  • 중대 위험 발견 시: 즉시 보고 (1시간 내)
  • +
  • 법규 위반 시: 즉시 보고 (당일)
  • +
  • 외부 점검 시: 사전 보고 및 결과 보고
  • +
+
+
+ + +
+
+

10. 성과 관리

+
+ +
+

10.1 성과 지표

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
지표 구분세부 지표목표측정 방법
조직 효율성업무 처리 시간기준 대비 90% 이하업무 처리 기록
의사결정 속도3일 이내결재 시스템
업무 만족도4.0/5.0 이상만족도 조사
역량 수준교육 이수율100%교육 기록
자격 보유율100%자격 대장
역량 평가 점수80점 이상평가 결과
의사소통회의 참석률95% 이상참석 기록
정보 공유 속도24시간 내시스템 로그
+
+ +
+

10.2 개선 관리

+

10.2.1 정기 검토

+
    +
  1. 월간 검토: 각 부서별 성과 분석
  2. +
  3. 분기 검토: 전체 조직 효율성 평가
  4. +
  5. 연간 검토: 조직 구조 및 운영 체계 전면 검토
  6. +
  7. 수시 검토: 중대한 문제 발생 시 즉시 검토
  8. +
+ +

10.2.2 개선 조치

+
    +
  • 업무 프로세스 개선: 비효율적 절차 간소화
  • +
  • 조직 구조 조정: 필요시 조직 개편
  • +
  • 역량 강화: 교육 및 훈련 확대
  • +
  • 시스템 개선: IT 시스템 및 도구 개선
  • +
+
+
+ + +
+
+

11. 기록 관리

+
+ +

11.1 작성 기록

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기록명작성자보관 기간보관 장소
HSE 조직도HSE 관리책임자영구HSE 관리부서
업무분장표HSE 관리책임자3년HSE 관리부서
인사발령장인사담당자영구인사부서
역량 평가서각 부서장5년각 부서
교육 기록교육담당자3년교육담당부서
회의록회의 간사3년HSE 관리부서
+
+ + +
+
+

12. 첨부 서식

+
+ +
    +
  • 첨부 1: HSE 조직도 양식
  • +
  • 첨부 2: 업무분장표 양식
  • +
  • 첨부 3: 역할 및 책임 매트릭스
  • +
  • 첨부 4: 역량 요구사항 체크리스트
  • +
  • 첨부 5: 역량 평가표
  • +
  • 첨부 6: 교육 계획서 양식
  • +
  • 첨부 7: 성과 평가표
  • +
  • 첨부 8: 의사소통 매트릭스
  • +
+
+
+ + +
+ +
+

TK-HSE-P-520

+

Organization and Job Assignment Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleOrganization and Job Assignment Procedure
Document NumberTK-HSE-P-520
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 8
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+
+

1. Purpose

+
+

The purpose of this procedure is as follows:

+
    +
  • Design effective organizational structure for HSE management system operation
  • +
  • Clear definition and assignment of roles and responsibilities
  • +
  • Systematic establishment of authority and communication systems
  • +
  • Appropriate personnel deployment for HSE performance improvement
  • +
  • Establishment of flexible organizational operation system according to organizational changes
  • +
+
+ + +
+
+

2. Scope

+
+

This procedure applies to the following areas of Technicalkorea:

+
    +
  • All organizations and positions related to HSE management system
  • +
  • All business sites including headquarters, factories, and branches
  • +
  • All workers including regular, contract, and temporary employees
  • +
  • Contractors and partners related to HSE work
  • +
  • Organizational restructuring and personnel assignment work
  • +
+
+ + +
+
+

3. Referenced Standards and Related Documents

+
+

3.1 Referenced Standards

+
    +
  • ISO 45001:2018 - Occupational health and safety management systems - Requirements with guidance for use
  • +
  • Occupational Safety and Health Act and its enforcement decree and rules
  • +
  • Notice on the appointment and duties of safety and health management supervisors
  • +
+ +

3.2 Related Documents

+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-510 - Leadership and Policy Development Procedure
  • +
  • TK-HSE-P-710 - Resource Management Procedure
  • +
  • TK-HSE-P-720 - Education and Training Management Procedure
  • +
+
+ + +
+
+

4. Terms and Definitions

+
+ +
+

4.1 Organization

+

Person or group of people that has its own functions with responsibilities, authorities and relationships to achieve its objectives

+ +

4.2 Role

+

Set of behaviors or tasks expected of a person or group in a specific situation

+ +

4.3 Responsibility

+

Obligation to perform assigned tasks or duties

+ +

4.4 Authority

+

Right and power to make decisions and use resources

+ +

4.5 Competence

+

Ability to apply knowledge and skills to achieve intended results

+
+
+ + +
+
+

5. HSE Organization Structure

+
+ +
+
+
Chief Executive Officer (CEO)
+
+
+
+
HSE Management Representative
+
+
├──────┼──────┼──────┤
+
+
Safety Manager
+
Health Manager
+
Environmental Manager
+
HSE Officer
+
+
+
+
Departmental HSE Officers
+
+
+
+
Field Workers
+
+
+ +
+

5.1 Organizational Structure Design Principles

+
    +
  • Clarity: Clear distinction of roles and responsibilities
  • +
  • Efficiency: Pursuit of efficiency in decision-making and task performance
  • +
  • Flexibility: Adaptability to organizational changes
  • +
  • Communication: Establishment of smooth communication system
  • +
  • Professionalism: Securing professional competency in each field
  • +
+
+
+ + +
+
+

6. Roles and Responsibilities

+
+ +
+

6.1 Chief Executive Officer (CEO)

+ + + + + + + + + + + + + + + + + + + + + +
Responsibility AreaSpecific ResponsibilitiesAuthority
Strategy Development• Establish HSE vision and strategy
• Approve HSE policy
• Determine medium-long term HSE objectives
• Final decision making
• Budget approval
• Organizational restructuring
Resource Provision• Approve HSE budget
• Allocate human resources
• Invest in facilities and equipment
• Budget execution
• Personnel appointment
• Investment decision
Performance Management• Review HSE performance
• Lead management review
• Direct improvements
• Performance evaluation
• Rewards and disciplinary actions
• Corrective orders
+
+ +
+

6.2 HSE Management Representative

+ + + + + + + + + + + + + + + + + + + + + +
Responsibility AreaSpecific ResponsibilitiesAuthority
System Operation• Overall operation of HSE management system
• System improvement and development
• Legal compliance management
• System modification
• Procedure approval
• Legal interpretation
Organization Management• HSE organization operation
• Work assignment and coordination
• Performance management
• Task assignment
• Performance evaluation
• Training direction
External Affairs• Government agency affairs
• Audit and inspection response
• External organization cooperation
• External negotiation
• Official document dispatch
• Contract conclusion
+
+ +
+

6.3 Safety Manager

+
+

📋 Main Duties

+
    +
  • Establishment and implementation of safety management plans
  • +
  • Safety and health education for workers
  • +
  • Inspection and improvement of work environment
  • +
  • Investigation of industrial accident causes and establishment of recurrence prevention measures
  • +
  • Inspection and management of safety devices and protective equipment
  • +
  • Safety review of machinery and equipment
  • +
  • Preparation and modification of safety and health management regulations
  • +
+ +

🎯 Required Qualifications

+
    +
  • Safety manager appointment qualification (Occupational Safety and Health Act)
  • +
  • Related field degree or experience
  • +
  • Safety management practical experience of 3 years or more
  • +
+
+
+ +
+

6.4 Health Manager

+
+

📋 Main Duties

+
    +
  • Measurement and evaluation of work environment
  • +
  • Health examination and follow-up management of workers
  • +
  • Prevention and management of occupational diseases
  • +
  • Work environment improvement and health education
  • +
  • Discovery and improvement of harmful and dangerous factors
  • +
  • Maintenance and management of health-related statistics
  • +
  • Emergency treatment and first aid
  • +
+ +

🎯 Required Qualifications

+
    +
  • Health manager appointment qualification (Occupational Safety and Health Act)
  • +
  • Health-related qualifications such as nurse, hygienist
  • +
  • Industrial health practical experience of 2 years or more
  • +
+
+
+ +
+

6.5 Environmental Manager

+
+

📋 Main Duties

+
    +
  • Environmental impact assessment and management
  • +
  • Environmental regulation compliance management
  • +
  • Waste management and treatment
  • +
  • Prevention of air, water, and soil pollution
  • +
  • Environmental monitoring and measurement
  • +
  • Establishment and implementation of environmental improvement plans
  • +
  • Environmental accident response and recovery
  • +
+ +

🎯 Required Qualifications

+
    +
  • Environmental-related engineer certification or higher
  • +
  • Environmental engineering or related field degree
  • +
  • Environmental management practical experience of 3 years or more
  • +
+
+
+ +
+

6.6 Department Manager

+ + + + + + + + + + + + + + + + + +
Responsibility AreaSpecific Responsibilities
Department HSE Management• Establish department HSE plans
• HSE education for department members
• Conduct daily safety inspections
• Lead accident prevention activities
Worker Management• Assign HSE roles to department members
• Guide compliance with safety rules
• Evaluate HSE performance
• Correct dangerous behaviors
Reporting and Communication• Report HSE status to superiors
• Collect worker opinions
• Suggest improvements
• Immediately report accidents
+
+
+ + +
+
+

7. Organization Procedures

+
+ +
+

7.1 HSE Organization Design

+

7.1.1 Organization Design Stages

+
    +
  1. Current Status Analysis +
      +
    • Analysis of current organizational structure
    • +
    • Identification of workload and work characteristics
    • +
    • Evaluation of personnel status and competency
    • +
    • Review of legal requirements
    • +
    +
  2. + +
  3. Organization Design +
      +
    • Design optimal organizational structure
    • +
    • Define roles and responsibilities
    • +
    • Set reporting system and authority
    • +
    • Establish communication channels
    • +
    +
  4. + +
  5. Approval and Announcement +
      +
    • CEO approval
    • +
    • Announcement of organization chart and job assignment
    • +
    • Training for all employees
    • +
    • Implementation and monitoring
    • +
    +
  6. +
+ +

7.1.2 Considerations in Organization Design

+ + + + + + + + + + + + + + + + + + + + + +
Consideration FactorDetails
Legal Requirements• Mandatory appointment of managers under Occupational Safety and Health Act
• Appointment criteria by workplace size
• Qualification requirements and job scope
Business Characteristics• Industry type and work risk level
• Workplace location and size
• Work type and working hours
Human Resources• Current personnel status
• Required competency and qualifications
• Education and development plans
Budget and Resources• Personnel cost budget
• Education and training costs
• Facility and equipment investment
+
+ +
+

7.2 Job Assignment Procedure

+

7.2.1 Job Analysis

+
    +
  1. Work Content Analysis +
      +
    • Identification of main tasks and detailed tasks
    • +
    • Evaluation of task importance and difficulty
    • +
    • Calculation of workload and required time
    • +
    • Analysis of relationships with other tasks
    • +
    +
  2. + +
  3. Required Competency Definition +
      +
    • Education, experience, certification requirements
    • +
    • Required knowledge and skills
    • +
    • Personal characteristics and abilities
    • +
    • Communication and leadership competency
    • +
    +
  4. + +
  5. Performance Indicator Setting +
      +
    • Quantitative performance indicators
    • +
    • Qualitative evaluation criteria
    • +
    • Goal setting and evaluation methods
    • +
    • Feedback and improvement system
    • +
    +
  6. +
+ +

7.2.2 Personnel Assignment

+
+
Review Job Requirements
+
+
Select Candidates
+
+
Competency Assessment
+
+
Assignment Decision
+
+
Appointment and Training
+
+
Performance Monitoring
+
+
+
+ + +
+
+

8. Competency Management

+
+ +
+

8.1 Competency Requirements

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PositionEducation/ExperienceCertificationCore Competency
HSE Management RepresentativeBachelor's degree or higher, 5+ years experienceSafety manager or related qualificationLeadership, communication, problem-solving
Safety ManagerRelated field graduate, 3+ years experienceSafety manager appointment qualificationRisk assessment, technical guidance, education
Health ManagerHealth-related field, 2+ years experienceNurse, hygienist, etc.Health management, counseling, first aid
Environmental ManagerEnvironmental engineering related, 3+ years experienceEnvironmental engineer or higherEnvironmental analysis, regulation interpretation, improvement
HSE OfficerHigh school graduate or higher, 1+ years experienceRelated qualification preferredTask performance, cooperation, learning
+
+ +
+

8.2 Competency Development Plan

+

8.2.1 Education and Training System

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Education TypeTargetContentFrequency
New Employee TrainingNewly assigned personnel• Organization introduction
• Roles and responsibilities
• Basic job training
Within 1 month of assignment
Regular TrainingAll HSE organization• Regulatory changes
• New technologies
• Best practices
Quarterly
Professional TrainingManagement level• Professional skills
• Leadership
• Communication
Twice a year
Refresher TrainingCertificate holders• Legal refresher training
• Qualification renewal
• Latest trends
As per legal requirements
+ +

8.2.2 Competency Assessment

+
    +
  • Regular Assessment: Twice a year (first/second half)
  • +
  • Assessment Method: Written assessment, practical assessment, 360-degree assessment
  • +
  • Assessment Criteria: Job performance, professional knowledge, collaboration ability
  • +
  • Improvement Plan: Individual development plan based on assessment results
  • +
+
+
+ + +
+
+

9. Communication System

+
+ +
+

9.1 Communication Channels

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Channel TypeParticipantsFrequencyContent
Management MeetingCEO, HSE Management RepresentativeMonthly• HSE performance reporting
• Major issue discussion
• Decision making
HSE Manager MeetingEntire HSE organizationWeekly• Work status sharing
• Cooperation matters
• Improvement measures
Departmental MeetingDepartment managers, HSE officersMonthly• Department HSE status
• Difficulties
• Support requests
Company-wide HSE MeetingAll employeesQuarterly• Policy dissemination
• Performance sharing
• Best practices
+
+ +
+

9.2 Reporting System

+

9.2.1 Regular Reporting

+
    +
  • Daily Report: Field → Department Manager → HSE Officer
  • +
  • Weekly Report: HSE Officer → HSE Management Representative
  • +
  • Monthly Report: HSE Management Representative → CEO
  • +
  • Quarterly Report: Company-wide HSE performance comprehensive report
  • +
+ +

9.2.2 Emergency Reporting

+
    +
  • Accident Occurrence: Immediate report (within 30 minutes)
  • +
  • Major Risk Discovery: Immediate report (within 1 hour)
  • +
  • Regulatory Violation: Immediate report (same day)
  • +
  • External Inspection: Advance report and result report
  • +
+
+
+ + +
+
+

10. Performance Management

+
+ +
+

10.1 Performance Indicators

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Indicator CategoryDetailed IndicatorTargetMeasurement Method
Organizational EfficiencyTask processing time90% or less of standardTask processing records
Decision-making speedWithin 3 daysApproval system
Job satisfaction4.0/5.0 or higherSatisfaction survey
Competency LevelTraining completion rate100%Training records
Qualification holding rate100%Qualification register
Competency assessment score80 points or higherAssessment results
CommunicationMeeting attendance rate95% or higherAttendance records
Information sharing speedWithin 24 hoursSystem logs
+
+ +
+

10.2 Improvement Management

+

10.2.1 Regular Review

+
    +
  1. Monthly Review: Performance analysis by each department
  2. +
  3. Quarterly Review: Overall organizational efficiency evaluation
  4. +
  5. Annual Review: Comprehensive review of organizational structure and operation system
  6. +
  7. Ad-hoc Review: Immediate review when major problems occur
  8. +
+ +

10.2.2 Improvement Measures

+
    +
  • Work Process Improvement: Streamlining inefficient procedures
  • +
  • Organizational Structure Adjustment: Organizational restructuring when necessary
  • +
  • Competency Enhancement: Expansion of education and training
  • +
  • System Improvement: IT system and tool improvement
  • +
+
+
+ + +
+
+

11. Records Management

+
+ +

11.1 Prepared Records

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Record NamePreparerRetention PeriodStorage Location
HSE Organization ChartHSE Management RepresentativePermanentHSE Management Department
Job Assignment TableHSE Management Representative3 yearsHSE Management Department
Personnel Appointment OrderHR PersonnelPermanentHR Department
Competency Assessment ReportEach Department Manager5 yearsEach Department
Training RecordsTraining Officer3 yearsTraining Department
Meeting MinutesMeeting Secretary3 yearsHSE Management Department
+
+ + +
+
+

12. Appendix Forms

+
+ +
    +
  • Appendix 1: HSE Organization Chart Form
  • +
  • Appendix 2: Job Assignment Table Form
  • +
  • Appendix 3: Role and Responsibility Matrix
  • +
  • Appendix 4: Competency Requirements Checklist
  • +
  • Appendix 5: Competency Assessment Form
  • +
  • Appendix 6: Training Plan Form
  • +
  • Appendix 7: Performance Evaluation Form
  • +
  • Appendix 8: Communication Matrix
  • +
+
+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-610.html b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-610.html new file mode 100644 index 0000000..af89870 --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-610.html @@ -0,0 +1,1671 @@ + + + + + + TK-HSE-P-610 기획 및 위험 관리 절차 + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-610

+

기획 및 위험 관리 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목기획 및 위험 관리 절차
문서 번호TK-HSE-P-610
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 9
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+
+

1. 목적

+
+

본 절차의 목적은 다음과 같습니다:

+
    +
  • HSE 관리시스템의 체계적인 기획과 실행
  • +
  • 위험과 기회를 다루기 위한 효과적인 조치 수립
  • +
  • 유해요인 식별 및 HSE 위험 평가의 체계적 수행
  • +
  • 법적 요구사항 및 기타 요구사항의 체계적 관리
  • +
  • 측정 가능한 HSE 목표 설정 및 달성 계획 수립
  • +
  • ISO 45001:2018 표준 6조 요구사항의 효과적 이행
  • +
+
+ + +
+
+

2. 적용 범위

+
+

본 절차는 테크니컬코리아의 다음 영역에 적용됩니다:

+
    +
  • HSE 관리시스템 적용 범위 내 모든 활동
  • +
  • 본사, 공장, 지사 등 모든 사업장
  • +
  • 정규직, 비정규직, 계약업체 근로자
  • +
  • 제품 생산, 서비스 제공, 지원 활동
  • +
  • 일상 및 비일상 업무, 비상 상황
  • +
  • 과거, 현재, 계획된 미래 활동
  • +
+
+ + +
+
+

3. 인용 표준 및 관련 문서

+
+

3.1 인용 표준

+
    +
  • ISO 45001:2018 - 직장 보건안전 관리시스템 - 요구사항 및 사용 지침
  • +
  • ISO 31000:2018 - 리스크 관리 - 지침
  • +
  • 산업안전보건법 및 관련 법령
  • +
  • 환경정책기본법 및 관련 법령
  • +
+ +

3.2 관련 문서

+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-410 - 조직 상황 이해 및 HSE 관리시스템 운영 절차
  • +
  • TK-HSE-P-620 - 위험 평가 절차
  • +
  • TK-HSE-P-630 - HSE 법적 요구사항 관리 절차
  • +
  • TK-HSE-P-640 - HSE 목표 관리 절차
  • +
+
+ + +
+
+

4. 용어와 정의

+
+ +
+

4.1 위험 (Risk)

+

불확실성의 영향으로, 목표에 대한 긍정적 또는 부정적 편차

+ +

4.2 기회 (Opportunity)

+

HSE 성과 향상, 폐기물 감소, 사고 예방 등 긍정적 결과를 가져올 가능성

+ +

4.3 유해요인 (Hazard)

+

부상과 건강악화를 일으킬 잠재성을 가진 근원

+ +

4.4 위험 평가 (Risk Assessment)

+

위험을 식별, 분석, 평가하는 전체적인 과정

+ +

4.5 법적 요구사항 (Legal Requirements)

+

조직이 준수해야 하는 법률, 규정, 명령 등

+ +

4.6 목표 (Objective)

+

달성해야 할 결과나 성과

+
+
+ + +
+
+

5. 프로세스 흐름도

+
+ +
+
기획 프로세스 시작
+
+
위험과 기회 식별
+
+
유해요인 식별
+
+
위험 평가
+
+
법적 요구사항 파악
+
+
HSE 목표 설정
+
+
실행 계획 수립
+
+
승인 및 실행
+
+
모니터링 및 검토
+
+
+ + +
+
+

6. 위험과 기회 관리

+
+ +
+

6.1 위험과 기회 식별

+

6.1.1 식별 대상

+ + + + + + + + + + + + + + + + + + + + + +
구분식별 대상고려사항
내부 위험• 설비 고장
• 인적 오류
• 조직 변화
• 자원 부족
• 발생 가능성
• 영향 정도
• 통제 가능성
• 대응 시간
외부 위험• 자연재해
• 법규 변경
• 시장 변화
• 공급업체 문제
• 예측 가능성
• 대응 능력
• 회복 시간
• 비용 영향
기회• 기술 개선
• 비용 절감
• 효율성 향상
• 이미지 개선
• 실현 가능성
• 투자 대비 효과
• 경쟁 우위
• 지속 가능성
+ +

6.1.2 식별 방법

+
    +
  • 브레인스토밍: 다학제팀 구성하여 아이디어 도출
  • +
  • 체크리스트: 표준화된 체크리스트 활용
  • +
  • 시나리오 분석: 가상의 상황 설정하여 분석
  • +
  • 과거 사례 분석: 내외부 사고 사례 검토
  • +
  • 전문가 판단: 해당 분야 전문가 의견 수렴
  • +
  • 현장 관찰: 직접 현장을 관찰하여 위험 요소 파악
  • +
+
+ +
+

6.2 위험과 기회 평가

+
+

📊 위험 평가 매트릭스

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
발생가능성영향도
1 (경미)2 (보통)3 (중간)4 (심각)5 (치명적)
5 (매우 높음)510152025
4 (높음)48121620
3 (보통)3691215
2 (낮음)246810
1 (매우 낮음)12345
+ +

🎯 위험 수준별 대응 기준

+
    +
  • 고위험 (15-25): 즉시 조치 필요, 작업 중단 고려
  • +
  • 중위험 (8-12): 단기간 내 개선 조치 필요
  • +
  • 저위험 (3-6): 계획적 개선 조치
  • +
  • 수용 가능 (1-2): 현재 수준 유지, 정기 모니터링
  • +
+
+
+ +
+

6.3 조치 계획 수립

+

6.3.1 위험 대응 전략

+
+

🔺 위험 관리 우선순위

+
    +
  1. 제거 (Elimination): 위험 요소 자체를 제거
  2. +
  3. 대체 (Substitution): 더 안전한 대안으로 교체
  4. +
  5. 공학적 통제 (Engineering Controls): 기술적 방법으로 위험 감소
  6. +
  7. 관리적 통제 (Administrative Controls): 절차, 교육, 훈련을 통한 관리
  8. +
  9. 개인보호구 (PPE): 개인보호장비 착용으로 보호
  10. +
+
+ +

6.3.2 기회 활용 전략

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
전략설명예시
적극 추진기회 실현 가능성을 높이기 위한 적극적 투자• 신기술 도입
• 전문 인력 채용
• 시설 개선
공유다른 조직과 협력하여 기회 공유• 파트너십 구축
• 컨소시엄 참여
• 외부 협력
수용별도 조치 없이 자연스러운 기회 활용• 시장 변화 대응
• 법규 변경 활용
• 트렌드 추종
모니터링기회 발생을 지속적으로 관찰• 정기 검토
• 성과 추적
• 트렌드 분석
+
+
+ + +
+
+

7. 유해요인 식별 및 위험 평가

+
+ +
+

7.1 유해요인 분류

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
분류세부 유형주요 예시
물리적 유해요인기계적 위험• 회전체, 압착, 충돌
• 낙하, 전도, 추락
환경적 위험• 소음, 진동, 온도
• 조명, 방사선
전기적 위험• 감전, 화재, 폭발
• 정전기, 낙뢰
화학적 유해요인유독물질• 산, 알칼리, 용매
• 중금속, 발암물질
가스/증기• 독성가스, 질식가스
• 인화성 가스
생물학적 유해요인병원체• 세균, 바이러스, 곰팡이
• 기생충, 독소
알레르기원• 꽃가루, 먼지
• 동물털, 식품
인간공학적 유해요인작업 자세• 부적절한 자세
• 반복 작업, 중량물
작업 설계• 작업대 높이
• 도구 설계, 공간
심리사회적 유해요인업무 스트레스• 과도한 업무량
• 시간 압박, 책임
조직 문화• 괴롭힘, 폭력
• 의사소통 부족
+
+ +
+

7.2 식별 절차

+

7.2.1 체계적 접근

+
    +
  1. 작업 분석 +
      +
    • 작업 공정별 세부 단계 분석
    • +
    • 사용 장비 및 재료 파악
    • +
    • 작업 환경 조건 확인
    • +
    • 작업자 특성 고려
    • +
    +
  2. + +
  3. 현장 조사 +
      +
    • 직접 현장 관찰 및 측정
    • +
    • 작업자 인터뷰 실시
    • +
    • 과거 사고 사례 검토
    • +
    • 유사 업종 사례 조사
    • +
    +
  4. + +
  5. 문서 검토 +
      +
    • 물질안전보건자료(MSDS) 검토
    • +
    • 장비 매뉴얼 및 사양서 확인
    • +
    • 법규 및 기준 검토
    • +
    • 감사 및 점검 결과 분석
    • +
    +
  6. + +
  7. 전문가 자문 +
      +
    • 산업보건 전문가 의견
    • +
    • 안전 기술 전문가 자문
    • +
    • 의학 전문가 상담
    • +
    • 법무 전문가 검토
    • +
    +
  8. +
+
+ +
+

7.3 위험 평가 방법

+

7.3.1 정량적 평가

+ + + + + + + + + + + + + + + + + + + + + + + + + +
방법적용 대상장점단점
확률론적 평가통계 데이터가 충분한 경우• 객관적 결과
• 정확한 수치
• 데이터 확보 어려움
• 복잡한 계산
노출 평가화학물질, 물리적 인자• 직접 측정
• 과학적 근거
• 비용 소요
• 시간 제약
모델링복잡한 시스템• 시나리오 분석
• 예측 가능
• 가정 의존
• 불확실성
+ +

7.3.2 정성적 평가

+
    +
  • 매트릭스 방법: 발생가능성 × 영향도
  • +
  • 순위 결정법: 상대적 중요도 비교
  • +
  • 시나리오 분석: 가정 상황 설정
  • +
  • 전문가 판단: 경험과 지식 활용
  • +
+
+
+ + +
+
+

8. 법적 요구사항 관리

+
+ +
+

8.1 법적 요구사항 식별

+

8.1.1 주요 법령

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
분야주요 법령핵심 요구사항
안전산업안전보건법• 안전보건관리체계 구축
• 위험성 평가 실시
• 안전보건교육 실시
건설기계관리법• 건설기계 검사
• 조종사 면허
• 안전운행
화학물질관리법• 화학물질 등록
• 취급기준 준수
• 사고 신고
보건산업안전보건법• 작업환경측정
• 건강진단 실시
• 직업병 예방
감염병예방법• 감염병 예방조치
• 신고 의무
• 방역 활동
환경환경정책기본법• 환경오염 방지
• 환경영향 최소화
• 지속가능 발전
대기환경보전법• 배출허용기준 준수
• 방지시설 설치
• 측정 및 보고
폐기물관리법• 폐기물 분리수거
• 위탁처리
• 처리 현황 보고
+ +

8.1.2 기타 요구사항

+
    +
  • 고객 요구사항: 계약서, 사양서상 안전보건 조건
  • +
  • 자발적 표준: ISO 표준, 업계 모범사례
  • +
  • 보험 요구사항: 보험회사 안전 기준
  • +
  • 사회적 기대: 지역사회, NGO 요구사항
  • +
+
+ +
+

8.2 준수 관리 체계

+

8.2.1 법령 모니터링

+
    +
  1. 정보 수집: 정부 공고, 전문 기관 정보
  2. +
  3. 변경 분석: 기존 대비 변경사항 파악
  4. +
  5. 영향 평가: 조직에 미치는 영향 분석
  6. +
  7. 대응 계획: 필요 조치사항 계획 수립
  8. +
  9. 실행 및 추적: 계획 실행 및 결과 확인
  10. +
+ +

8.2.2 준수 평가

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
평가 방법주기담당자결과 조치
자체 점검월 1회각 부서 담당자즉시 개선
내부 감사분기 1회HSE 담당자시정조치 계획
외부 평가연 1회외부 전문기관종합 개선 계획
정부 점검수시관계 공무원행정조치 대응
+
+
+ + +
+
+

9. HSE 목표 설정 및 관리

+
+ +
+

9.1 목표 설정 원칙

+
+

🎯 SMART 원칙

+
    +
  • Specific (구체적): 명확하고 구체적인 목표
  • +
  • Measurable (측정가능): 정량적으로 측정 가능
  • +
  • Achievable (달성가능): 현실적으로 달성 가능
  • +
  • Relevant (관련성): HSE 정책과 연관성
  • +
  • Time-bound (시한설정): 명확한 달성 기한
  • +
+ +

📋 목표 설정 고려사항

+
    +
  • HSE 정책과의 일치성
  • +
  • 법적 요구사항 반영
  • +
  • 위험 평가 결과 반영
  • +
  • 기술적, 재정적 실현가능성
  • +
  • 이해관계자 기대사항
  • +
  • 지속적 개선 의지
  • +
+
+
+ +
+

9.2 목표 영역별 설정

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
영역목표 예시측정 지표목표값
안전재해율 감소재해율 (%)전년 대비 20% 감소
위험성 평가 완료평가 완료율 (%)100% 완료
안전교육 강화교육 이수율 (%)95% 이상
보건직업병 발생 Zero직업병 발생 건수0건
건강진단 실시수진율 (%)100%
환경폐기물 감량폐기물 발생량 (톤)전년 대비 10% 감소
에너지 절약에너지 사용량 (kWh)전년 대비 5% 감소
+
+ +
+

9.3 실행 계획 수립

+

9.3.1 계획 수립 절차

+
    +
  1. 세부 과제 도출: 목표 달성을 위한 구체적 과제
  2. +
  3. 일정 계획: 단계별 추진 일정 수립
  4. +
  5. 책임자 지정: 과제별 담당자 및 책임자 배정
  6. +
  7. 자원 배정: 필요 인력, 예산, 자원 확보
  8. +
  9. 성과 지표: 중간 및 최종 성과 측정 지표
  10. +
  11. 점검 체계: 정기적 진행상황 점검 방법
  12. +
+ +

9.3.2 모니터링 및 검토

+
    +
  • 월별 점검: 진행상황 및 성과 확인
  • +
  • 분기별 평가: 목표 달성도 종합 평가
  • +
  • 연간 검토: 목표 적절성 및 달성 결과 종합 분석
  • +
  • 개선 조치: 미달성 원인 분석 및 개선 방안 수립
  • +
+
+
+ + +
+
+

10. 기록 관리

+
+ +

10.1 작성 기록

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
기록명작성자보관 기간보관 장소
위험과 기회 등록부HSE 담당자3년HSE 관리부서
유해요인 식별표각 부서장3년각 부서
위험 평가서HSE 담당자5년HSE 관리부서
법적 요구사항 목록HSE 관리책임자영구HSE 관리부서
HSE 목표 및 계획서HSE 관리책임자5년HSE 관리부서
진행상황 점검표각 부서장3년각 부서
+
+ + +
+
+

11. 첨부 서식

+
+ +
    +
  • 첨부 1: 위험과 기회 식별 체크리스트
  • +
  • 첨부 2: 유해요인 식별표 양식
  • +
  • 첨부 3: 위험 평가 매트릭스
  • +
  • 첨부 4: 위험 평가서 양식
  • +
  • 첨부 5: 법적 요구사항 등록부
  • +
  • 첨부 6: HSE 목표 설정 템플릿
  • +
  • 첨부 7: 실행 계획서 양식
  • +
  • 첨부 8: 진행상황 점검표
  • +
+
+
+ + +
+ +
+

TK-HSE-P-610

+

Planning and Risk Management Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitlePlanning and Risk Management Procedure
Document NumberTK-HSE-P-610
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 9
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+
+

1. PURPOSE

+
+

The purpose of this procedure is to:

+
    +
  • Systematic planning and implementation of HSE management system
  • +
  • Establish effective actions to address risks and opportunities
  • +
  • Systematic performance of hazard identification and HSE risk assessment
  • +
  • Systematic management of legal requirements and other requirements
  • +
  • Establish measurable HSE objectives and achievement plans
  • +
  • Effective implementation of ISO 45001:2018 Clause 6 requirements
  • +
+
+ + +
+
+

2. SCOPE

+
+

This procedure applies to the following areas of Technicalkorea:

+
    +
  • All activities within the scope of HSE management system application
  • +
  • All business sites including head office, factories, and branches
  • +
  • Regular, irregular, and contractor workers
  • +
  • Product production, service provision, and support activities
  • +
  • Routine and non-routine work, emergency situations
  • +
  • Past, present, and planned future activities
  • +
+
+ + +
+
+

3. NORMATIVE REFERENCES AND RELATED DOCUMENTS

+
+

3.1 Normative References

+
    +
  • ISO 45001:2018 - Occupational health and safety management systems - Requirements with guidance for use
  • +
  • ISO 31000:2018 - Risk management - Guidelines
  • +
  • Occupational Safety and Health Act and related regulations
  • +
  • Framework Act on Environmental Policy and related regulations
  • +
+ +

3.2 Related Documents

+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-410 - Understanding Organizational Context and HSE Management System Operation Procedure
  • +
  • TK-HSE-P-620 - Risk Assessment Procedure
  • +
  • TK-HSE-P-630 - HSE Legal Requirements Management Procedure
  • +
  • TK-HSE-P-640 - HSE Objectives Management Procedure
  • +
+
+ + +
+
+

4. TERMS AND DEFINITIONS

+
+ +
+

4.1 Risk

+

Effect of uncertainty, positive or negative deviation from objectives

+ +

4.2 Opportunity

+

Possibility of bringing positive results such as HSE performance improvement, waste reduction, accident prevention

+ +

4.3 Hazard

+

Source with a potential to cause injury and ill health

+ +

4.4 Risk Assessment

+

Overall process of risk identification, analysis and evaluation

+ +

4.5 Legal Requirements

+

Laws, regulations, orders, etc. that the organization must comply with

+ +

4.6 Objective

+

Result or performance to be achieved

+
+
+ + +
+
+

5. PROCESS FLOW

+
+ +
+
Planning Process Start
+
+
Risk and Opportunity Identification
+
+
Hazard Identification
+
+
Risk Assessment
+
+
Legal Requirements Identification
+
+
HSE Objectives Setting
+
+
Implementation Plan Development
+
+
Approval and Implementation
+
+
Monitoring and Review
+
+
+ + +
+
+

6. RISK AND OPPORTUNITY MANAGEMENT

+
+ +
+

6.1 Risk and Opportunity Identification

+

6.1.1 Identification Targets

+ + + + + + + + + + + + + + + + + + + + + +
CategoryIdentification TargetsConsiderations
Internal Risks• Equipment failure
• Human error
• Organizational change
• Resource shortage
• Probability of occurrence
• Impact level
• Controllability
• Response time
External Risks• Natural disasters
• Regulatory changes
• Market changes
• Supplier issues
• Predictability
• Response capability
• Recovery time
• Cost impact
Opportunities• Technology improvement
• Cost reduction
• Efficiency enhancement
• Image improvement
• Feasibility
• Return on investment
• Competitive advantage
• Sustainability
+
+ +
+

6.2 Risk and Opportunity Assessment

+
+

📊 Risk Assessment Matrix

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LikelihoodConsequence
1 (Minor)2 (Moderate)3 (Major)4 (Severe)5 (Catastrophic)
5 (Very High)510152025
4 (High)48121620
3 (Moderate)3691215
2 (Low)246810
1 (Very Low)12345
+ +

🎯 Risk Level Response Criteria

+
    +
  • High Risk (15-25): Immediate action required, consider work stoppage
  • +
  • Medium Risk (8-12): Improvement measures required in short term
  • +
  • Low Risk (3-6): Planned improvement measures
  • +
  • Acceptable (1-2): Maintain current level, regular monitoring
  • +
+
+
+ +
+

6.3 Action Plan Development

+

6.3.1 Risk Response Strategy

+
+

🔺 Risk Management Hierarchy

+
    +
  1. Elimination: Remove the risk factor itself
  2. +
  3. Substitution: Replace with safer alternatives
  4. +
  5. Engineering Controls: Reduce risk through technical methods
  6. +
  7. Administrative Controls: Management through procedures, education, training
  8. +
  9. Personal Protective Equipment (PPE): Protection through personal protective equipment
  10. +
+
+
+
+ + +
+
+

7. HAZARD IDENTIFICATION AND RISK ASSESSMENT

+
+ +
+

7.1 Hazard Classification

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClassificationSub-typesMain Examples
Physical HazardsMechanical risks• Rotating parts, crushing, collision
• Falling, overturning, falling from height
Environmental risks• Noise, vibration, temperature
• Lighting, radiation
Electrical risks• Electric shock, fire, explosion
• Static electricity, lightning
Chemical HazardsToxic substances• Acids, alkalis, solvents
• Heavy metals, carcinogens
Gases/vapors• Toxic gases, asphyxiant gases
• Flammable gases
Biological HazardsPathogens• Bacteria, viruses, fungi
• Parasites, toxins
Allergens• Pollen, dust
• Animal fur, food
Ergonomic HazardsWork posture• Inappropriate posture
• Repetitive work, heavy objects
Work design• Workbench height
• Tool design, space
Psychosocial HazardsWork stress• Excessive workload
• Time pressure, responsibility
Organizational culture• Harassment, violence
• Lack of communication
+
+
+ + +
+
+

8. LEGAL REQUIREMENTS MANAGEMENT

+
+ +
+

8.1 Legal Requirements Identification

+

8.1.1 Major Laws

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldMajor LawsKey Requirements
SafetyOccupational Safety and Health Act• Establish safety and health management system
• Conduct risk assessment
• Implement safety and health education
Construction Equipment Management Act• Construction equipment inspection
• Operator license
• Safe operation
Chemical Control Act• Chemical registration
• Comply with handling standards
• Accident reporting
HealthOccupational Safety and Health Act• Work environment measurement
• Health examination
• Occupational disease prevention
Infectious Disease Control and Prevention Act• Infectious disease prevention measures
• Reporting obligation
• Quarantine activities
EnvironmentFramework Act on Environmental Policy• Environmental pollution prevention
• Minimize environmental impact
• Sustainable development
Clean Air Conservation Act• Comply with emission standards
• Install prevention facilities
• Measurement and reporting
Waste Management Act• Waste separation
• Consignment treatment
• Treatment status reporting
+
+
+ + +
+
+

9. HSE OBJECTIVES SETTING AND MANAGEMENT

+
+ +
+

9.1 Objective Setting Principles

+
+

🎯 SMART Principles

+
    +
  • Specific: Clear and specific objectives
  • +
  • Measurable: Quantitatively measurable
  • +
  • Achievable: Realistically achievable
  • +
  • Relevant: Related to HSE policy
  • +
  • Time-bound: Clear achievement deadline
  • +
+ +

📋 Objective Setting Considerations

+
    +
  • Consistency with HSE policy
  • +
  • Reflection of legal requirements
  • +
  • Reflection of risk assessment results
  • +
  • Technical and financial feasibility
  • +
  • Stakeholder expectations
  • +
  • Commitment to continuous improvement
  • +
+
+
+ +
+

9.2 Objectives by Area

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AreaObjective ExamplesMeasurement IndicatorsTarget Values
SafetyReduce accident rateAccident rate (%)20% reduction from previous year
Complete risk assessmentAssessment completion rate (%)100% completion
Strengthen safety educationEducation completion rate (%)95% or higher
HealthZero occupational disease occurrenceNumber of occupational disease cases0 cases
Conduct health examinationsExamination rate (%)100%
EnvironmentWaste reductionWaste generation (tons)10% reduction from previous year
Energy savingEnergy consumption (kWh)5% reduction from previous year
+
+
+ + +
+
+

10. RECORDS MANAGEMENT

+
+ +

10.1 Records to be Created

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Record NameCreatorRetention PeriodStorage Location
Risk and Opportunity RegisterHSE Staff3 yearsHSE Management Department
Hazard Identification TableEach Department Head3 yearsEach Department
Risk Assessment ReportHSE Staff5 yearsHSE Management Department
Legal Requirements ListHSE ManagerPermanentHSE Management Department
HSE Objectives and PlansHSE Manager5 yearsHSE Management Department
Progress Monitoring SheetEach Department Head3 yearsEach Department
+
+ + +
+
+

11. APPENDIX FORMS

+
+ +
    +
  • Appendix 1: Risk and Opportunity Identification Checklist
  • +
  • Appendix 2: Hazard Identification Table Form
  • +
  • Appendix 3: Risk Assessment Matrix
  • +
  • Appendix 4: Risk Assessment Report Form
  • +
  • Appendix 5: Legal Requirements Register
  • +
  • Appendix 6: HSE Objectives Setting Template
  • +
  • Appendix 7: Implementation Plan Form
  • +
  • Appendix 8: Progress Monitoring Sheet
  • +
+
+ +
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-620.html b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-620.html new file mode 100644 index 0000000..c552dcd --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-620.html @@ -0,0 +1,1784 @@ + + + + + + TK-HSE-P-620 위험 평가 절차 + + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-620

+

위험 평가 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목위험 평가 절차
문서 번호TK-HSE-P-620
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+

1. 목적

+
+

본 절차는 테크니컬코리아의 모든 사업장 및 활동에서 발생할 수 있는 보건, 안전 및 환경(HSE) 위험요소를 체계적으로 식별, 평가 및 관리하기 위한 표준화된 방법론을 제공함을 목적으로 합니다.

+

이를 통해 근로자의 안전과 건강을 보호하고, 환경 영향을 최소화하며, ISO 45001:2018 요구사항에 부합하는 위험 관리 체계를 구축합니다.

+ + +
+

2. 적용 범위

+
+

본 절차는 다음에 적용됩니다:

+
    +
  • 테크니컬코리아의 모든 사업장, 시설 및 작업 현장
  • +
  • 정규직, 계약직, 파견직, 협력업체 직원을 포함한 모든 근로자
  • +
  • 일상적 및 비일상적 작업 활동
  • +
  • 제품 및 서비스의 전체 생명주기
  • +
  • 계획된 변경사항 및 비상상황
  • +
  • 모든 방문자 및 외부 이해관계자
  • +
+ + +
+

3. 관련 문서

+
+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-610 - 기획 및 위험 관리 절차
  • +
  • TK-HSE-P-630 - HSE 법적 요구사항 관리 절차
  • +
  • TK-HSE-P-810 - 운영 기획 및 관리 절차
  • +
  • TK-HSE-P-1010 - 사건, 부적합 및 시정조치 절차
  • +
  • ISO 45001:2018 - 보건안전경영시스템 요구사항
  • +
  • 산업안전보건법 및 관련 시행령, 시행규칙
  • +
  • 환경정책기본법 및 관련 법령
  • +
+ + +
+

4. 용어의 정의

+
+
+

4.1 유해요인(Hazard)

+

부상과 건강악화를 일으킬 잠재성을 가진 근원으로, 물리적, 화학적, 생물학적, 인간공학적, 심리사회적 요인을 포함합니다.

+ +

4.2 위험(Risk)

+

유해요인에 노출될 확률과 그로 인한 부상이나 건강악화의 심각성을 조합한 개념입니다.

+ +

4.3 위험 평가(Risk Assessment)

+

유해요인을 식별하고, 관련 위험을 분석 및 평가하는 전체적인 과정입니다.

+ +

4.4 허용 가능한 위험(Acceptable Risk)

+

조직의 법적 의무와 HSE 정책에 따라 수용 가능한 수준까지 감소된 위험입니다.

+ +

4.5 잔류 위험(Residual Risk)

+

위험 대응 조치를 실행한 후에도 남아있는 위험입니다.

+
+ + +
+

5. 역할과 책임

+
+
+

5.1 최고경영자

+
    +
  • 위험 평가 프로세스에 대한 최종 책임
  • +
  • 위험 평가에 필요한 자원 배정
  • +
  • 중대한 위험에 대한 의사결정
  • +
+ +

5.2 HSE 관리책임자

+
    +
  • 위험 평가 절차의 수립 및 유지
  • +
  • 위험 평가 팀 구성 및 교육
  • +
  • 위험 평가 결과의 검토 및 승인
  • +
  • 위험 평가 현황 모니터링
  • +
+ +

5.3 부서장/현장 관리자

+
    +
  • 담당 영역의 위험 평가 실시
  • +
  • 위험 통제 조치의 실행
  • +
  • 근로자의 위험 평가 참여 보장
  • +
  • 위험 평가 결과의 현장 적용
  • +
+ +

5.4 근로자

+
    +
  • 위험 평가 과정에 적극 참여
  • +
  • 유해요인 및 위험 상황 보고
  • +
  • 위험 통제 조치 준수
  • +
  • 안전 교육 및 훈련 참석
  • +
+ +

5.5 위험 평가팀

+
    +
  • 체계적인 위험 평가 수행
  • +
  • 위험 평가 보고서 작성
  • +
  • 위험 통제 조치 제안
  • +
  • 위험 평가 결과의 지속적 모니터링
  • +
+
+ + +
+

6. 위험 평가 프로세스

+
+ +
+
준비 및 기획
+ +
유해요인 식별
+ +
위험 분석
+

+
위험 평가
+ +
위험 대응
+ +
모니터링 및 검토
+
+ +
+

6.1 준비 및 기획 단계

+

6.1.1 위험 평가 범위 설정

+
    +
  • 평가 대상 작업, 활동, 시설의 명확한 정의
  • +
  • 평가 기간 및 주기 결정
  • +
  • 관련 법규 및 표준 확인
  • +
  • 이전 평가 결과 및 사고 이력 검토
  • +
+ +

6.1.2 위험 평가팀 구성

+
    +
  • 팀장: HSE 관리책임자 또는 지정된 담당자
  • +
  • 팀원: 해당 분야 전문가, 현장 관리자, 근로자 대표
  • +
  • 필요시 외부 전문가 참여
  • +
  • 팀원에 대한 위험 평가 교육 실시
  • +
+ +

6.1.3 정보 수집

+
    +
  • 작업 절차서 및 매뉴얼
  • +
  • 물질안전보건자료(MSDS)
  • +
  • 장비 및 기계 사양서
  • +
  • 과거 사고 및 아차사고 기록
  • +
  • 건강 검진 결과 및 직업병 발생 현황
  • +
  • 환경 모니터링 데이터
  • +
+
+ +
+

6.2 유해요인 식별

+

6.2.1 식별 방법

+
    +
  • 현장 조사 및 관찰
  • +
  • 작업 분석 및 작업 조건 검토
  • +
  • 근로자 면담 및 설문조사
  • +
  • 과거 사고 및 질병 기록 분석
  • +
  • 체크리스트 활용
  • +
  • 브레인스토밍 세션
  • +
+ +

6.2.2 유해요인 분류

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
분류유해요인 예시
물리적 유해요인소음, 진동, 온도, 조명, 방사선, 전기
화학적 유해요인독성물질, 부식성물질, 가연성물질, 분진, 가스, 증기
생물학적 유해요인세균, 바이러스, 곰팡이, 기생충
인간공학적 유해요인반복작업, 과도한 힘, 부자연스러운 자세, 진동
심리사회적 유해요인업무 스트레스, 작업 강도, 인간관계, 직장 내 괴롭힘
환경적 유해요인대기오염, 수질오염, 토양오염, 폐기물
+ +

6.2.3 노출 상황 고려사항

+
    +
  • 일상적 작업과 비일상적 작업
  • +
  • 정상 운영 조건과 비정상 조건
  • +
  • 비상상황 및 잠재적 사고 시나리오
  • +
  • 모든 작업자 및 방문자의 노출
  • +
  • 작업장 접근 경로 및 주변 영향
  • +
+
+ +
+

6.3 위험 분석

+

6.3.1 발생가능성 평가

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
등급설명기준
5 (매우 높음)거의 확실히 발생주 1회 이상 또는 연간 50회 이상
4 (높음)발생 가능성이 높음월 1회 이상 또는 연간 12-50회
3 (보통)가끔 발생 가능년 1회 이상 또는 연간 1-12회
2 (낮음)발생 가능성이 낮음수년에 1회 또는 10년에 1-10회
1 (매우 낮음)거의 발생하지 않음10년에 1회 미만
+ +

6.3.2 심각성 평가

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
등급설명인명 피해환경 영향
5 (치명적)사망 또는 영구장애사망 또는 영구 전신장애심각한 환경오염, 복구 불가능
4 (심각)중대한 부상 또는 질병중상, 만성질환, 부분장애중대한 환경영향, 복구 어려움
3 (보통)의료처치 필요의료처치 필요한 부상보통의 환경영향, 복구 가능
2 (경미)응급처치 필요응급처치 수준의 부상경미한 환경영향
1 (무시)부상 없음부상이나 건강영향 없음환경영향 무시할 수준
+
+ +
+

6.4 위험 평가

+

6.4.1 위험도 계산

+

위험도 = 발생가능성 × 심각성

+ +

6.4.2 위험도 매트릭스

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
심각성발생가능성
12345
5510152025
448121620
33691215
2246810
112345
+ +

6.4.3 위험도 분류 및 대응방안

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
위험도분류대응방안대응시한
20-25매우 높음즉시 작업 중단, 긴급 대책 수립즉시
10-19높음상세한 대책 수립 및 즉시 실행1주 이내
5-9보통대책 수립 및 계획에 따라 실행1개월 이내
1-4낮음현재 수준 유지, 정기 모니터링3개월 이내
+
+ + +
+

7. 위험 통제

+
+
+

7.1 통제 위계 (Hierarchy of Controls)

+
    +
  1. 제거 (Elimination): 유해요인 자체를 제거
  2. +
  3. 대체 (Substitution): 덜 위험한 방법, 재료, 장비로 대체
  4. +
  5. 공학적 통제 (Engineering Controls): 환기시설, 차폐, 격리 등
  6. +
  7. 관리적 통제 (Administrative Controls): 절차, 교육, 훈련, 표지판 등
  8. +
  9. 개인보호구 (Personal Protective Equipment): 마지막 수단으로 사용
  10. +
+ +

7.2 통제 조치 선정 기준

+
    +
  • 효과성: 위험 감소 효과
  • +
  • 실현가능성: 기술적, 경제적 실현 가능성
  • +
  • 수용성: 근로자 및 조직의 수용도
  • +
  • 지속성: 장기간 유지 가능성
  • +
  • 법적 요구사항 부합성
  • +
+ +

7.3 통제 조치 실행

+
    +
  • 실행 계획 수립 (담당자, 일정, 예산)
  • +
  • 필요한 자원 확보
  • +
  • 관련 인원 교육 및 훈련
  • +
  • 실행 상황 모니터링
  • +
  • 효과성 검증
  • +
+
+ + +
+

8. 문서화

+
+
+

8.1 위험 평가 보고서

+

모든 위험 평가 결과는 다음 내용을 포함하여 문서화해야 합니다:

+
    +
  • 평가 대상 및 범위
  • +
  • 평가팀 구성 및 역할
  • +
  • 평가 방법론
  • +
  • 식별된 유해요인 목록
  • +
  • 위험 분석 및 평가 결과
  • +
  • 제안된 통제 조치
  • +
  • 실행 계획
  • +
  • 모니터링 계획
  • +
+ +

8.2 위험 등록부 (Risk Register)

+

조직 차원의 통합 위험 등록부를 유지하며 다음 정보를 포함합니다:

+
    +
  • 위험 식별번호
  • +
  • 위험 설명
  • +
  • 영향 범위
  • +
  • 현재 통제 조치
  • +
  • 잔류 위험도
  • +
  • 추가 조치 계획
  • +
  • 담당자 및 일정
  • +
  • 검토 일정
  • +
+
+ + +
+

9. 모니터링 및 검토

+
+
+

9.1 정기 검토

+
    +
  • 일상 점검: 현장 관리자의 일일 안전 점검
  • +
  • 월간 검토: 부서별 위험 평가 현황 검토
  • +
  • 분기 검토: HSE 위원회의 위험 관리 현황 검토
  • +
  • 연간 검토: 전사 위험 평가의 전면적 재검토
  • +
+ +

9.2 검토 트리거

+

다음 상황에서는 즉시 위험 평가를 재검토해야 합니다:

+
    +
  • 사고 또는 아차사고 발생
  • +
  • 새로운 법규 또는 표준 시행
  • +
  • 작업 방법 또는 절차 변경
  • +
  • 새로운 장비 또는 화학물질 도입
  • +
  • 조직 구조 또는 인원 변경
  • +
  • 통제 조치의 실패 또는 부적절함 확인
  • +
+ +

9.3 성과 지표

+
    +
  • 위험 평가 완료율
  • +
  • 고위험 요소 감소율
  • +
  • 통제 조치 실행율
  • +
  • 사고 발생률 감소
  • +
  • 근로자 참여도
  • +
+
+ + +
+

10. 교육 및 훈련

+
+
+

10.1 교육 대상 및 내용

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
대상교육 내용주기
위험 평가팀위험 평가 방법론, 기법, 도구 사용법연 1회
관리자위험 관리 원칙, 통제 조치 선정 및 실행연 1회
근로자유해요인 인식, 위험 보고, 안전 수칙분기 1회
신입사원HSE 정책, 위험 평가 개념, 참여 방법입사시
+ +

10.2 교육 방법

+
    +
  • 집합 교육 및 워크숍
  • +
  • 온라인 교육 프로그램
  • +
  • 현장 실습 및 사례 연구
  • +
  • 외부 전문 교육 과정
  • +
+
+ + +
+
+

11. 위험 평가 양식

+
+ +
+

위험 평가 기본 정보

+ + + + + + + + + + + + + + + + + + + + + + + +
평가 번호평가 일자
평가 대상평가 유형□ 정기 □ 수시 □ 변경
평가팀장부서/현장
참여자
+
+ +
+

유해요인 식별 및 위험 평가

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
작업/활동유해요인잠재적 결과현재 통제조치발생가능성심각성위험도위험 수준
+
+ +
+

위험 통제 조치

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
제안 조치우선순위담당자완료 예정일예상 효과잔류 위험도
+
+ +
+

승인

+ + + + + + + + + + + + + + + + + + + +
작성자성명:서명:일자:
검토자성명:서명:일자:
승인자성명:서명:일자:
+
+
+ + +
+

12. 문서 관리

+
+

이것은 통제 문서입니다

+

승인 없이 복사하지 마십시오

+

최신 버전은 회사 인트라넷에서 확인할 수 있습니다

+

이 문서에 대한 문의사항은 HSE 관리부서로 연락하십시오

+
+ + +
+ +
+

TK-HSE-P-620

+

Risk Assessment Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleRisk Assessment Procedure
Document NumberTK-HSE-P-620
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+

1. PURPOSE

+
+

This procedure aims to provide a standardized methodology for systematically identifying, assessing, and managing health, safety, and environmental (HSE) risk factors that may occur in all workplaces and activities of Technicalkorea.

+

Through this, we protect the safety and health of workers, minimize environmental impacts, and establish a risk management system that complies with ISO 45001:2018 requirements.

+ + +
+

2. SCOPE

+
+

This procedure applies to:

+
    +
  • All workplaces, facilities, and work sites of Technicalkorea
  • +
  • All workers including permanent, contract, temporary, and contractor personnel
  • +
  • Routine and non-routine work activities
  • +
  • Entire life cycle of products and services
  • +
  • Planned changes and emergency situations
  • +
  • All visitors and external stakeholders
  • +
+ + +
+

3. RELATED DOCUMENTS

+
+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-610 - Planning and Risk Management Procedure
  • +
  • TK-HSE-P-630 - HSE Legal Requirements Management Procedure
  • +
  • TK-HSE-P-810 - Operational Planning and Control Procedure
  • +
  • TK-HSE-P-1010 - Incident, Nonconformity and Corrective Action Procedure
  • +
  • ISO 45001:2018 - Occupational Health and Safety Management Systems Requirements
  • +
  • Occupational Safety and Health Act and related enforcement decrees and rules
  • +
  • Framework Act on Environmental Policy and related laws
  • +
+ + +
+

4. TERMS AND DEFINITIONS

+
+
+

4.1 Hazard

+

Source with a potential to cause injury and ill health, including physical, chemical, biological, ergonomic, and psychosocial factors.

+ +

4.2 Risk

+

A concept that combines the probability of exposure to hazards and the severity of resulting injury or ill health.

+ +

4.3 Risk Assessment

+

The overall process of identifying hazards and analyzing and evaluating related risks.

+ +

4.4 Acceptable Risk

+

Risk that has been reduced to a level that can be tolerated by the organization having regard to its legal obligations and HSE policy.

+ +

4.5 Residual Risk

+

Risk remaining after risk treatment measures have been implemented.

+
+ + +
+

5. ROLES AND RESPONSIBILITIES

+
+
+

5.1 Top Management

+
    +
  • Ultimate responsibility for risk assessment process
  • +
  • Allocation of resources required for risk assessment
  • +
  • Decision-making on significant risks
  • +
+ +

5.2 HSE Manager

+
    +
  • Establishment and maintenance of risk assessment procedures
  • +
  • Formation and training of risk assessment teams
  • +
  • Review and approval of risk assessment results
  • +
  • Monitoring risk assessment status
  • +
+ +

5.3 Department Heads/Site Managers

+
    +
  • Conducting risk assessments in their areas of responsibility
  • +
  • Implementation of risk control measures
  • +
  • Ensuring worker participation in risk assessment
  • +
  • Field application of risk assessment results
  • +
+ +

5.4 Workers

+
    +
  • Active participation in risk assessment process
  • +
  • Reporting hazards and risk situations
  • +
  • Compliance with risk control measures
  • +
  • Attendance at safety education and training
  • +
+ +

5.5 Risk Assessment Team

+
    +
  • Systematic risk assessment performance
  • +
  • Preparation of risk assessment reports
  • +
  • Proposal of risk control measures
  • +
  • Continuous monitoring of risk assessment results
  • +
+
+ + +
+

6. RISK ASSESSMENT PROCESS

+
+ +
+
Preparation & Planning
+ +
Hazard Identification
+ +
Risk Analysis
+

+
Risk Evaluation
+ +
Risk Treatment
+ +
Monitoring & Review
+
+ +
+

6.1 Preparation and Planning Phase

+

6.1.1 Risk Assessment Scope Setting

+
    +
  • Clear definition of work, activities, and facilities to be assessed
  • +
  • Determination of assessment period and cycle
  • +
  • Confirmation of relevant regulations and standards
  • +
  • Review of previous assessment results and incident history
  • +
+ +

6.1.2 Risk Assessment Team Formation

+
    +
  • Team Leader: HSE Manager or designated person
  • +
  • Team Members: Subject matter experts, site managers, worker representatives
  • +
  • External experts participation when necessary
  • +
  • Risk assessment training for team members
  • +
+ +

6.1.3 Information Collection

+
    +
  • Work procedures and manuals
  • +
  • Material Safety Data Sheets (MSDS)
  • +
  • Equipment and machinery specifications
  • +
  • Past accident and near-miss records
  • +
  • Health examination results and occupational disease status
  • +
  • Environmental monitoring data
  • +
+
+ +
+

6.2 Hazard Identification

+

6.2.1 Identification Methods

+
    +
  • Site inspection and observation
  • +
  • Work analysis and working condition review
  • +
  • Worker interviews and surveys
  • +
  • Analysis of past accident and disease records
  • +
  • Checklist utilization
  • +
  • Brainstorming sessions
  • +
+ +

6.2.2 Hazard Classification

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClassificationHazard Examples
Physical HazardsNoise, vibration, temperature, lighting, radiation, electricity
Chemical HazardsToxic substances, corrosive substances, flammable substances, dust, gas, vapor
Biological HazardsBacteria, viruses, fungi, parasites
Ergonomic HazardsRepetitive work, excessive force, awkward postures, vibration
Psychosocial HazardsWork stress, work intensity, human relations, workplace harassment
Environmental HazardsAir pollution, water pollution, soil contamination, waste
+ +

6.2.3 Exposure Situation Considerations

+
    +
  • Routine and non-routine work
  • +
  • Normal and abnormal operating conditions
  • +
  • Emergency situations and potential accident scenarios
  • +
  • Exposure of all workers and visitors
  • +
  • Workplace access routes and surrounding impacts
  • +
+
+ +
+

6.3 Risk Analysis

+

6.3.1 Likelihood Assessment

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LevelDescriptionCriteria
5 (Very High)Almost certain to occurMore than once a week or 50+ times per year
4 (High)Likely to occurMore than once a month or 12-50 times per year
3 (Medium)May occur occasionallyMore than once a year or 1-12 times per year
2 (Low)Unlikely to occurOnce in several years or 1-10 times in 10 years
1 (Very Low)Rare occurrenceLess than once in 10 years
+ +

6.3.2 Severity Assessment

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LevelDescriptionHuman ImpactEnvironmental Impact
5 (Fatal)Death or permanent disabilityDeath or permanent total disabilitySevere environmental pollution, irreversible
4 (Serious)Major injury or illnessSerious injury, chronic disease, partial disabilityMajor environmental impact, difficult to recover
3 (Moderate)Medical treatment requiredInjury requiring medical treatmentModerate environmental impact, recoverable
2 (Minor)First aid requiredFirst aid level injuryMinor environmental impact
1 (Negligible)No injuryNo injury or health impactNegligible environmental impact
+
+ +
+

6.4 Risk Evaluation

+

6.4.1 Risk Level Calculation

+

Risk Level = Likelihood × Severity

+ +

6.4.2 Risk Matrix

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeverityLikelihood
12345
5510152025
448121620
33691215
2246810
112345
+ +

6.4.3 Risk Level Classification and Response

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Risk LevelClassificationResponseTimeline
20-25Very HighImmediate work stoppage, emergency measuresImmediate
10-19HighDetailed measures development and immediate implementationWithin 1 week
5-9MediumMeasures development and planned implementationWithin 1 month
1-4LowMaintain current level, regular monitoringWithin 3 months
+
+ + +
+

7. RISK CONTROL

+
+
+

7.1 Hierarchy of Controls

+
    +
  1. Elimination: Remove the hazard entirely
  2. +
  3. Substitution: Replace with less hazardous methods, materials, or equipment
  4. +
  5. Engineering Controls: Ventilation, shielding, isolation, etc.
  6. +
  7. Administrative Controls: Procedures, training, education, signage, etc.
  8. +
  9. Personal Protective Equipment (PPE): Use as last resort
  10. +
+ +

7.2 Control Measure Selection Criteria

+
    +
  • Effectiveness: Risk reduction effect
  • +
  • Feasibility: Technical and economic feasibility
  • +
  • Acceptability: Worker and organizational acceptance
  • +
  • Sustainability: Long-term maintainability
  • +
  • Legal compliance
  • +
+ +

7.3 Control Measure Implementation

+
    +
  • Implementation plan development (responsible person, schedule, budget)
  • +
  • Securing necessary resources
  • +
  • Training and education of relevant personnel
  • +
  • Implementation status monitoring
  • +
  • Effectiveness verification
  • +
+
+ + +
+

8. DOCUMENTATION

+
+
+

8.1 Risk Assessment Report

+

All risk assessment results must be documented including the following content:

+
    +
  • Assessment target and scope
  • +
  • Assessment team composition and roles
  • +
  • Assessment methodology
  • +
  • List of identified hazards
  • +
  • Risk analysis and evaluation results
  • +
  • Proposed control measures
  • +
  • Implementation plan
  • +
  • Monitoring plan
  • +
+ +

8.2 Risk Register

+

Maintain an integrated organizational risk register including the following information:

+
    +
  • Risk identification number
  • +
  • Risk description
  • +
  • Impact scope
  • +
  • Current control measures
  • +
  • Residual risk level
  • +
  • Additional measure plans
  • +
  • Responsible person and schedule
  • +
  • Review schedule
  • +
+
+ + +
+

9. MONITORING AND REVIEW

+
+
+

9.1 Regular Review

+
    +
  • Daily Inspection: Daily safety inspections by site managers
  • +
  • Monthly Review: Departmental risk assessment status review
  • +
  • Quarterly Review: HSE committee risk management status review
  • +
  • Annual Review: Comprehensive review of company-wide risk assessments
  • +
+ +

9.2 Review Triggers

+

Risk assessments must be immediately re-reviewed in the following situations:

+
    +
  • Occurrence of accidents or near-misses
  • +
  • Implementation of new regulations or standards
  • +
  • Changes in work methods or procedures
  • +
  • Introduction of new equipment or chemicals
  • +
  • Changes in organizational structure or personnel
  • +
  • Identification of control measure failure or inadequacy
  • +
+ +

9.3 Performance Indicators

+
    +
  • Risk assessment completion rate
  • +
  • High-risk factor reduction rate
  • +
  • Control measure implementation rate
  • +
  • Accident occurrence rate reduction
  • +
  • Worker participation rate
  • +
+
+ + +
+

10. TRAINING AND EDUCATION

+
+
+

10.1 Training Target and Content

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
TargetTraining ContentFrequency
Risk Assessment TeamRisk assessment methodology, techniques, tool usageAnnual
ManagersRisk management principles, control measure selection and implementationAnnual
WorkersHazard recognition, risk reporting, safety rulesQuarterly
New EmployeesHSE policy, risk assessment concepts, participation methodsUpon hiring
+ +

10.2 Training Methods

+
    +
  • Group training and workshops
  • +
  • Online training programs
  • +
  • Field practice and case studies
  • +
  • External professional training courses
  • +
+
+ + +
+
+

11. RISK ASSESSMENT FORM

+
+ +
+

Risk Assessment Basic Information

+ + + + + + + + + + + + + + + + + + + + + + + +
Assessment No.Assessment Date
Assessment TargetAssessment Type□ Regular □ Ad-hoc □ Change
Team LeaderDepartment/Site
Participants
+
+ +
+

Hazard Identification and Risk Assessment

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Work/ActivityHazardPotential ConsequenceCurrent ControlsLikelihoodSeverityRisk LevelRisk Rating
+
+ +
+

Risk Control Measures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Proposed MeasuresPriorityResponsible PersonTarget DateExpected EffectResidual Risk
+
+ +
+

Approval

+ + + + + + + + + + + + + + + + + + + +
Prepared byName:Signature:Date:
Reviewed byName:Signature:Date:
Approved byName:Signature:Date:
+
+
+ + +
+

12. DOCUMENT CONTROL

+
+

This is a controlled document

+

Do not copy without authorization

+

The latest version can be found on the company intranet

+

For inquiries about this document, contact the HSE Management Department

+
+
+ + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-630.html b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-630.html new file mode 100644 index 0000000..1f3f431 --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/hse/TK-HSE-P-630.html @@ -0,0 +1,1894 @@ + + + + + + TK-HSE-P-630 HSE 법적 요구사항 관리 절차 + + + + +
+ +
+ + +
+ + +
+ +
+

TK-HSE-P-630

+

HSE 법적 요구사항 관리 절차

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목HSE 법적 요구사항 관리 절차
문서 번호TK-HSE-P-630
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+

1. 목적

+
+

본 절차는 테크니컬코리아의 사업 활동과 관련된 보건, 안전 및 환경(HSE) 법적 요구사항을 체계적으로 식별, 접근, 평가 및 관리하기 위한 프레임워크를 제공함을 목적으로 합니다.

+

이를 통해 법적 요구사항의 준수를 보장하고, 법규 위반으로 인한 리스크를 최소화하며, 지속적인 개선을 통한 HSE 성과 향상을 달성합니다.

+ +
+ 중요: 법적 요구사항의 식별과 준수는 조직의 HSE 경영시스템의 핵심 요소이며, ISO 45001:2018 및 ISO 14001:2015의 필수 요구사항입니다. +
+ + +
+

2. 적용 범위

+
+

본 절차는 다음에 적용됩니다:

+
    +
  • 테크니컬코리아의 모든 사업장 및 운영 활동
  • +
  • 국내외 모든 자회사 및 관계회사
  • +
  • 협력업체 및 계약업체와의 HSE 관련 활동
  • +
  • 제품 및 서비스의 전체 생명주기
  • +
  • 다음 분야의 법적 요구사항: +
      +
    • 산업안전보건 관련 법규
    • +
    • 환경보호 관련 법규
    • +
    • 화학물질 관리 관련 법규
    • +
    • 건설안전 관련 법규
    • +
    • 소방안전 관련 법규
    • +
    • 기타 HSE 관련 규제 및 표준
    • +
    +
  • +
+ + +
+

3. 관련 문서

+
+
+

3.1 내부 문서

+
    +
  • TK-HSE-001 - HSE 관리시스템 매뉴얼
  • +
  • TK-HSE-P-610 - 기획 및 위험 관리 절차
  • +
  • TK-HSE-P-620 - 위험 평가 절차
  • +
  • TK-HSE-P-810 - 운영 기획 및 관리 절차
  • +
  • TK-HSE-P-1010 - 사건, 부적합 및 시정조치 절차
  • +
+ +

3.2 외부 참조 표준

+
    +
  • ISO 45001:2018 - 보건안전경영시스템 요구사항
  • +
  • ISO 14001:2015 - 환경경영시스템 요구사항
  • +
  • ISO 9001:2015 - 품질경영시스템 요구사항
  • +
+ +

3.3 주요 법적 요구사항

+
    +
  • 산업안전보건법 및 시행령, 시행규칙
  • +
  • 환경정책기본법 및 관련 법령
  • +
  • 대기환경보전법
  • +
  • 수질 및 수생태계 보전에 관한 법률
  • +
  • 폐기물관리법
  • +
  • 화학물질관리법
  • +
  • 소방기본법
  • +
  • 건설기술 진흥법
  • +
+
+ + +
+

4. 용어의 정의

+
+
+

4.1 법적 요구사항(Legal Requirements)

+

국가 또는 지역의 법률, 규정, 조례, 허가, 라이선스 및 기타 형태의 정부 인가에 따라 조직이 준수해야 하는 요구사항입니다.

+ +

4.2 기타 요구사항(Other Requirements)

+

조직이 준수하기로 선택하거나 채택한 기타 요구사항으로, 업계 표준, 고객 요구사항, 자발적 약속 등을 포함합니다.

+ +

4.3 준수 평가(Compliance Evaluation)

+

조직이 법적 요구사항 및 기타 요구사항에 얼마나 잘 부합하는지를 판단하는 과정입니다.

+ +

4.4 규제 감시(Regulatory Monitoring)

+

조직의 활동에 적용되는 법적 요구사항의 변경사항을 지속적으로 추적하고 식별하는 과정입니다.

+ +

4.5 법적 등록부(Legal Register)

+

조직에 적용되는 모든 법적 요구사항과 기타 요구사항을 체계적으로 문서화한 데이터베이스 또는 목록입니다.

+
+ + +
+

5. 역할과 책임

+
+
+

5.1 최고경영자

+
    +
  • 법적 요구사항 관리에 대한 최종 책임
  • +
  • 법적 요구사항 준수를 위한 자원 할당
  • +
  • 중대한 법적 이슈에 대한 의사결정
  • +
  • 법적 위반 사항에 대한 최종 승인 및 조치
  • +
+ +

5.2 HSE 관리책임자

+
    +
  • 법적 요구사항 관리 체계의 수립 및 운영
  • +
  • 법적 등록부의 구축 및 유지관리
  • +
  • 준수 평가 프로그램의 기획 및 실행
  • +
  • 법적 요구사항 변경에 대한 영향 평가
  • +
  • 관련 부서에 대한 교육 및 지원
  • +
+ +

5.3 법무팀

+
    +
  • 법적 요구사항의 해석 및 자문
  • +
  • 규제 변경사항의 법적 영향 분석
  • +
  • 허가 및 인가 절차 지원
  • +
  • 법적 분쟁 및 위반 사항 대응
  • +
+ +

5.4 부서장/현장 관리자

+
    +
  • 담당 영역의 법적 요구사항 식별 지원
  • +
  • 해당 법적 요구사항의 현장 적용 및 준수
  • +
  • 법적 요구사항 위반 가능성 보고
  • +
  • 개선 조치의 실행 및 모니터링
  • +
+ +

5.5 모든 근로자

+
    +
  • 적용 가능한 법적 요구사항의 숙지 및 준수
  • +
  • 법적 요구사항 위반 상황의 즉시 보고
  • +
  • 관련 교육 및 훈련 참여
  • +
+
+ + +
+

6. 법적 요구사항 관리 프로세스

+
+ +
+
식별
+ +
접근 및 확보
+ +
분석 및 평가
+

+
등록부 업데이트
+ +
의무사항 전파
+ +
준수 모니터링
+
+ +
+

6.1 법적 요구사항 식별

+

6.1.1 식별 방법

+
    +
  • 체계적 검토: 정기적인 법규 데이터베이스 검색
  • +
  • 전문 서비스 활용: 법률 자문 및 규제 모니터링 서비스
  • +
  • 업계 정보: 협회, 세미나, 컨퍼런스를 통한 정보 수집
  • +
  • 정부 기관: 관련 부처 및 지방자치단체 공지사항
  • +
  • 내부 제보: 직원, 고객, 협력업체로부터의 정보
  • +
+ +

6.1.2 식별 대상

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

6.2 법적 요구사항 접근 및 확보

+

6.2.1 정보 소스

+
    +
  • 공식 채널 +
      +
    • 국가법령정보센터 (www.law.go.kr)
    • +
    • 행정안전부 자치법규정보시스템
    • +
    • 관련 부처 공식 웹사이트
    • +
    +
  • +
  • 전문 서비스 +
      +
    • 법률 자문 서비스
    • +
    • 규제 모니터링 전문업체
    • +
    • 업계 전문 컨설팅
    • +
    +
  • +
  • 업계 네트워크 +
      +
    • 산업별 협회 및 단체
    • +
    • 전문 세미나 및 워크숍
    • +
    • 동종업계 정보 교류
    • +
    +
  • +
+ +

6.2.2 문서 관리

+
    +
  • 모든 법규 문서의 전자 파일 보관
  • +
  • 최신 버전 유지 및 이력 관리
  • +
  • 접근 권한 설정 및 보안 관리
  • +
  • 백업 및 복구 체계 구축
  • +
+
+ +
+

6.3 법적 요구사항 분석 및 평가

+

6.3.1 적용성 평가

+

다음 기준에 따라 각 법적 요구사항의 조직 적용성을 평가합니다:

+
    +
  • 지리적 범위: 사업장 위치에 따른 적용 법규
  • +
  • 업종별 적용: 사업 분야에 따른 특화 법규
  • +
  • 규모별 적용: 기업 규모, 시설 규모에 따른 차등 적용
  • +
  • 활동별 적용: 특정 활동 또는 공정에 대한 법규
  • +
+ +

6.3.2 영향 분석

+ + + + + + + + + + + + + + + + + + + + + + + +

6.3.3 갭 분석

+

현재 조직 상태와 법적 요구사항 간의 차이를 분석:

+
    +
  • 현재 준수 수준 평가
  • +
  • 필요한 개선사항 식별
  • +
  • 추가 자원 소요 분석
  • +
  • 이행 일정 수립
  • +
+
+ + +
+

7. 법적 등록부 관리

+
+
+

7.1 등록부 구조

+

법적 등록부는 다음 정보를 포함해야 합니다:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

7.2 등록부 유지관리

+
    +
  • 정기 업데이트: 월 1회 이상 내용 검토 및 업데이트
  • +
  • 버전 관리: 변경 이력 및 승인 기록 유지
  • +
  • 접근 관리: 부서별 차등 접근 권한 설정
  • +
  • 백업 관리: 정기적 백업 및 복구 테스트
  • +
+ +

7.3 등록부 품질 관리

+
    +
  • 데이터 정확성 검증
  • +
  • 중복 항목 제거
  • +
  • 폐지된 법규 아카이빙
  • +
  • 관련 문서 링크 유지
  • +
+
+ + +
+

8. 준수 평가

+
+
+

8.1 평가 계획

+

8.1.1 평가 주기

+ + + + + + + + + + + + + + + + + + + + + + + +

8.1.2 평가 방법

+
    +
  • 현장 점검: 직접 현장 방문을 통한 준수 상태 확인
  • +
  • 문서 검토: 관련 기록 및 보고서 분석
  • +
  • 인터뷰: 담당자 및 작업자 면담
  • +
  • 테스트: 필요시 측정 및 시험 실시
  • +
+ +

8.2 평가 실행

+

8.2.1 평가팀 구성

+
    +
  • 팀장: HSE 관리책임자 또는 지정된 담당자
  • +
  • 팀원: 관련 부서 전문가, 외부 전문가
  • +
  • 관찰자: 해당 부서 담당자
  • +
+ +

8.2.2 평가 절차

+
    +
  1. 평가 계획 수립 및 통보
  2. +
  3. 관련 자료 사전 검토
  4. +
  5. 현장 평가 실시
  6. +
  7. 발견사항 정리 및 확인
  8. +
  9. 평가 보고서 작성
  10. +
  11. 개선계획 수립
  12. +
+ +

8.3 준수 상태 분류

+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

9. 의사소통 및 교육

+
+
+

9.1 내부 의사소통

+

9.1.1 의사소통 채널

+
    +
  • 정기 회의: HSE 위원회, 부서별 회의
  • +
  • 교육 및 훈련: 신입사원, 보수교육
  • +
  • 공지사항: 인트라넷, 게시판, 이메일
  • +
  • 보고서: 월간/분기별 HSE 보고서
  • +
+ +

9.1.2 의사소통 내용

+
    +
  • 새로운 법적 요구사항 및 변경사항
  • +
  • 준수 평가 결과 및 개선계획
  • +
  • 위반 사례 및 교훈사항
  • +
  • 모범 사례 및 성공 스토리
  • +
+ +

9.2 교육 및 훈련

+

9.2.1 교육 프로그램

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

9.2.2 교육 효과성 평가

+
    +
  • 교육 이해도 테스트
  • +
  • 현장 적용 상황 점검
  • +
  • 참가자 만족도 조사
  • +
  • 행동 변화 모니터링
  • +
+
+ + +
+

10. 모니터링 및 검토

+
+
+

10.1 규제 변화 모니터링

+

10.1.1 모니터링 시스템

+
    +
  • 자동 알림 서비스: 법규 변경 알림 시스템 구축
  • +
  • 정기 검색: 주간 단위 법규 데이터베이스 검색
  • +
  • 전문가 네트워크: 법률 자문사, 컨설턴트 활용
  • +
  • 업계 정보: 협회, 세미나 참여를 통한 정보 수집
  • +
+ +

10.1.2 변경사항 대응

+
    +
  1. 변경사항 식별 및 분석
  2. +
  3. 조직 영향도 평가
  4. +
  5. 대응 계획 수립
  6. +
  7. 관련 부서 통보
  8. +
  9. 필요시 절차 및 시스템 업데이트
  10. +
  11. 교육 및 훈련 실시
  12. +
+ +

10.2 성과 모니터링

+

10.2.1 핵심 성과 지표 (KPI)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

10.2.2 보고 체계

+
    +
  • 월간 보고: 부서별 준수 현황
  • +
  • 분기 보고: 전사 종합 현황
  • +
  • 연간 보고: 성과 평가 및 개선계획
  • +
  • 특별 보고: 중대 위반 또는 변경사항
  • +
+ +

10.3 시스템 검토

+

10.3.1 정기 검토

+
    +
  • 분기 검토: 절차 적정성 및 효과성
  • +
  • 연간 검토: 전체 시스템 종합 평가
  • +
  • 특별 검토: 중대 변경 또는 사고 발생시
  • +
+ +

10.3.2 개선 활동

+
    +
  • 검토 결과에 따른 개선계획 수립
  • +
  • 절차 및 시스템 업데이트
  • +
  • 교육 프로그램 개선
  • +
  • 모니터링 시스템 강화
  • +
+
+ + +
+
+

11. 양식 및 서식

+
+ +
+

11.1 법적 요구사항 등록 양식

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

11.2 준수 평가 체크리스트

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

11.3 법규 변경 통보서

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+

12. 문서 관리

+
+
+ 문서 통제
+ 이 문서는 통제 문서입니다. 승인 없이 복사하거나 배포하지 마십시오.
+ 최신 버전은 회사 인트라넷에서 확인할 수 있습니다.
+ 문의사항은 HSE 관리부서로 연락하십시오. +
+
+ + +
+ +
+

TK-HSE-P-630

+

HSE Legal Requirements Management Procedure

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleHSE Legal Requirements Management Procedure
Document NumberTK-HSE-P-630
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+

1. PURPOSE

+
+

This procedure aims to provide a framework for systematically identifying, accessing, evaluating, and managing health, safety, and environmental (HSE) legal requirements related to Technicalkorea's business activities.

+

Through this, we ensure compliance with legal requirements, minimize risks from regulatory violations, and achieve improved HSE performance through continuous improvement.

+ +
+ Important: Identification and compliance with legal requirements is a core element of the organization's HSE management system and a mandatory requirement of ISO 45001:2018 and ISO 14001:2015. +
+ + +
+

2. SCOPE

+
+

This procedure applies to:

+
    +
  • All workplaces and operational activities of Technicalkorea
  • +
  • All domestic and international subsidiaries and affiliates
  • +
  • HSE-related activities with contractors and subcontractors
  • +
  • Entire life cycle of products and services
  • +
  • Legal requirements in the following areas: +
      +
    • Occupational health and safety regulations
    • +
    • Environmental protection regulations
    • +
    • Chemical substance management regulations
    • +
    • Construction safety regulations
    • +
    • Fire safety regulations
    • +
    • Other HSE-related regulations and standards
    • +
    +
  • +
+ + + + +
+

3. RELATED DOCUMENTS

+
+
+

3.1 Internal Documents

+
    +
  • TK-HSE-001 - HSE Management System Manual
  • +
  • TK-HSE-P-610 - Planning and Risk Management Procedure
  • +
  • TK-HSE-P-620 - Risk Assessment Procedure
  • +
  • TK-HSE-P-810 - Operational Planning and Control Procedure
  • +
  • TK-HSE-P-1010 - Incident, Nonconformity and Corrective Action Procedure
  • +
+ +

3.2 External Reference Standards

+
    +
  • ISO 45001:2018 - Occupational Health and Safety Management Systems Requirements
  • +
  • ISO 14001:2015 - Environmental Management Systems Requirements
  • +
  • ISO 9001:2015 - Quality Management Systems Requirements
  • +
+ +

3.3 Key Legal Requirements

+
    +
  • Occupational Safety and Health Act and enforcement decrees and rules
  • +
  • Framework Act on Environmental Policy and related laws
  • +
  • Clean Air Conservation Act
  • +
  • Water Quality and Aquatic Ecosystem Conservation Act
  • +
  • Waste Management Act
  • +
  • Chemical Substances Control Act
  • +
  • Framework Act on Fire Services
  • +
  • Construction Technology Promotion Act
  • +
+
+ + +
+

4. TERMS AND DEFINITIONS

+
+
+

4.1 Legal Requirements

+

Requirements that an organization must comply with according to national or regional laws, regulations, ordinances, permits, licenses, and other forms of governmental authorization.

+ +

4.2 Other Requirements

+

Other requirements that the organization chooses to comply with or adopt, including industry standards, customer requirements, voluntary commitments, etc.

+ +

4.3 Compliance Evaluation

+

The process of determining how well an organization conforms to legal requirements and other requirements.

+ +

4.4 Regulatory Monitoring

+

The process of continuously tracking and identifying changes in legal requirements applicable to the organization's activities.

+ +

4.5 Legal Register

+

A database or list that systematically documents all legal requirements and other requirements applicable to the organization.

+
+ + +
+

5. ROLES AND RESPONSIBILITIES

+
+
+

5.1 Top Management

+
    +
  • Ultimate responsibility for legal requirements management
  • +
  • Resource allocation for legal requirements compliance
  • +
  • Decision-making on significant legal issues
  • +
  • Final approval and action on legal violations
  • +
+ +

5.2 HSE Manager

+
    +
  • Establishment and operation of legal requirements management system
  • +
  • Construction and maintenance of legal register
  • +
  • Planning and execution of compliance evaluation programs
  • +
  • Impact assessment of legal requirements changes
  • +
  • Training and support for related departments
  • +
+ +

5.3 Legal Team

+
    +
  • Interpretation and consultation on legal requirements
  • +
  • Legal impact analysis of regulatory changes
  • +
  • Support for permit and authorization procedures
  • +
  • Response to legal disputes and violations
  • +
+ +

5.4 Department Heads/Site Managers

+
    +
  • Support identification of legal requirements in their areas
  • +
  • Site application and compliance with applicable legal requirements
  • +
  • Report potential legal requirement violations
  • +
  • Implementation and monitoring of improvement measures
  • +
+ +

5.5 All Workers

+
    +
  • Understanding and compliance with applicable legal requirements
  • +
  • Immediate reporting of legal requirement violation situations
  • +
  • Participation in related education and training
  • +
+
+ + +
+

6. LEGAL REQUIREMENTS MANAGEMENT PROCESS

+
+ +
+
Identification
+ +
Access & Acquisition
+ +
Analysis & Evaluation
+

+
Register Update
+ +
Dissemination
+ +
Compliance Monitoring
+
+ +
+

6.1 Legal Requirements Identification

+

6.1.1 Identification Methods

+
    +
  • Systematic Review: Regular legal database searches
  • +
  • Professional Services: Legal consultation and regulatory monitoring services
  • +
  • Industry Information: Information gathering through associations, seminars, conferences
  • +
  • Government Agencies: Notices from relevant ministries and local governments
  • +
  • Internal Reports: Information from employees, customers, contractors
  • +
+ +

6.1.2 Identification Targets

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

6.2 Legal Requirements Access and Acquisition

+

6.2.1 Information Sources

+
    +
  • Official Channels +
      +
    • Korea Law Information Center (www.law.go.kr)
    • +
    • Local Regulations Information System
    • +
    • Official websites of relevant ministries
    • +
    +
  • +
  • Professional Services +
      +
    • Legal consultation services
    • +
    • Regulatory monitoring specialists
    • +
    • Industry-specific consulting
    • +
    +
  • +
  • Industry Networks +
      +
    • Industry associations and organizations
    • +
    • Professional seminars and workshops
    • +
    • Peer industry information exchange
    • +
    +
  • +
+ +

6.2.2 Document Management

+
    +
  • Electronic file storage of all regulatory documents
  • +
  • Latest version maintenance and history management
  • +
  • Access permission settings and security management
  • +
  • Backup and recovery system establishment
  • +
+
+ +
+

6.3 Legal Requirements Analysis and Evaluation

+

6.3.1 Applicability Assessment

+

Evaluate the organizational applicability of each legal requirement according to the following criteria:

+
    +
  • Geographic Scope: Applicable regulations by workplace location
  • +
  • Industry-specific Application: Specialized regulations by business sector
  • +
  • Scale-based Application: Differential application by company size, facility scale
  • +
  • Activity-specific Application: Regulations for specific activities or processes
  • +
+ +

6.3.2 Impact Analysis

+ + + + + + + + + + + + + + + + + + + + + + + +

6.3.3 Gap Analysis

+

Analyze differences between current organizational status and legal requirements:

+
    +
  • Current compliance level assessment
  • +
  • Identification of necessary improvements
  • +
  • Additional resource requirement analysis
  • +
  • Implementation schedule establishment
  • +
+
+ + +
+

7. LEGAL REGISTER MANAGEMENT

+
+
+

7.1 Register Structure

+

The legal register must include the following information:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

7.2 Register Maintenance

+
    +
  • Regular Updates: Content review and update at least monthly
  • +
  • Version Control: Maintain change history and approval records
  • +
  • Access Management: Set differential access permissions by department
  • +
  • Backup Management: Regular backup and recovery testing
  • +
+ +

7.3 Register Quality Management

+
    +
  • Data accuracy verification
  • +
  • Duplicate item removal
  • +
  • Archiving of repealed regulations
  • +
  • Maintenance of related document links
  • +
+
+ + +
+

8. COMPLIANCE EVALUATION

+
+
+

8.1 Evaluation Planning

+

8.1.1 Evaluation Frequency

+ + + + + + + + + + + + + + + + + + + + + + + +

8.1.2 Evaluation Methods

+
    +
  • Site Inspection: Direct site visits to verify compliance status
  • +
  • Document Review: Analysis of related records and reports
  • +
  • Interviews: Interviews with responsible persons and workers
  • +
  • Testing: Measurement and testing when necessary
  • +
+ +

8.2 Evaluation Implementation

+

8.2.1 Evaluation Team Composition

+
    +
  • Team Leader: HSE Manager or designated person
  • +
  • Team Members: Related department experts, external experts
  • +
  • Observers: Department representatives
  • +
+ +

8.2.2 Evaluation Procedure

+
    +
  1. Evaluation plan establishment and notification
  2. +
  3. Preliminary review of related materials
  4. +
  5. Site evaluation implementation
  6. +
  7. Findings compilation and confirmation
  8. +
  9. Evaluation report preparation
  10. +
  11. Improvement plan establishment
  12. +
+ +

8.3 Compliance Status Classification

+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

9. COMMUNICATION AND TRAINING

+
+
+

9.1 Internal Communication

+

9.1.1 Communication Channels

+
    +
  • Regular Meetings: HSE committee, departmental meetings
  • +
  • Education and Training: New employee, refresher training
  • +
  • Announcements: Intranet, bulletin boards, email
  • +
  • Reports: Monthly/quarterly HSE reports
  • +
+ +

9.1.2 Communication Content

+
    +
  • New legal requirements and changes
  • +
  • Compliance evaluation results and improvement plans
  • +
  • Violation cases and lessons learned
  • +
  • Best practices and success stories
  • +
+ +

9.2 Education and Training

+

9.2.1 Training Programs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

9.2.2 Training Effectiveness Evaluation

+
    +
  • Training comprehension tests
  • +
  • Field application situation checks
  • +
  • Participant satisfaction surveys
  • +
  • Behavioral change monitoring
  • +
+
+ + +
+

10. MONITORING AND REVIEW

+
+
+

10.1 Regulatory Change Monitoring

+

10.1.1 Monitoring System

+
    +
  • Automatic Alert Service: Regulatory change alert system establishment
  • +
  • Regular Search: Weekly regulatory database searches
  • +
  • Expert Network: Utilization of legal advisors, consultants
  • +
  • Industry Information: Information gathering through associations, seminars
  • +
+ +

10.1.2 Change Response

+
    +
  1. Change identification and analysis
  2. +
  3. Organizational impact assessment
  4. +
  5. Response plan establishment
  6. +
  7. Notification to related departments
  8. +
  9. Procedure and system updates when necessary
  10. +
  11. Education and training implementation
  12. +
+ +

10.2 Performance Monitoring

+

10.2.1 Key Performance Indicators (KPI)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

10.2.2 Reporting Structure

+
    +
  • Monthly Report: Departmental compliance status
  • +
  • Quarterly Report: Company-wide comprehensive status
  • +
  • Annual Report: Performance evaluation and improvement plan
  • +
  • Special Report: Major violations or changes
  • +
+ +

10.3 System Review

+

10.3.1 Regular Review

+
    +
  • Quarterly Review: Procedure adequacy and effectiveness
  • +
  • Annual Review: Comprehensive evaluation of entire system
  • +
  • Special Review: Upon major changes or incident occurrence
  • +
+ +

10.3.2 Improvement Activities

+
    +
  • Improvement plan establishment based on review results
  • +
  • Procedure and system updates
  • +
  • Training program improvements
  • +
  • Monitoring system enhancement
  • +
+
+ + +
+
+

11. FORMS AND TEMPLATES

+
+ +
+

11.1 Legal Requirements Registration Form

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

11.2 Compliance Evaluation Checklist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

11.3 Regulatory Change Notification

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+

12. DOCUMENT CONTROL

+
+
+ Document Control
+ This is a controlled document. Do not copy or distribute without authorization.
+ The latest version can be found on the company intranet.
+ For inquiries, contact the HSE Management Department. +
+
+
+ + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/index.html b/deploy/tkfb-package/web-ui/docs/index.html new file mode 100644 index 0000000..7cec773 --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/index.html @@ -0,0 +1,295 @@ + + + + + + 테크니컬코리아 문서 시스템 + + + +
+
+

테크니컬코리아 문서 시스템

+

회사 규정 및 절차서 열람 시스템

+
+ +
+
+ +
+

HSE 관리시스템

+

ISO 45001:2018 기반 안전보건환경 관련 절차서

+ 바로가기 +
+ + +
+

품질 관리시스템

+

ISO 9001 기반 품질관리 절차 및 매뉴얼

+ 바로가기 +
+ + +
+

인사 규정

+

인사관리 규정 및 지침서

+ 바로가기 +
+ + +
+

기술 문서

+

설계 표준, 용접절차, BOM 시스템 가이드라인

+ 바로가기 +
+ + +
+

경영 방침

+

회사 방침, 윤리강령 및 정책 문서

+ 바로가기 +
+ + +
+

문서 검색

+ +
+
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

http://192.168.0.3:10080/docs

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/iso45001_bilingual_manual.html b/deploy/tkfb-package/web-ui/docs/iso45001_bilingual_manual.html new file mode 100644 index 0000000..d187ab0 --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/iso45001_bilingual_manual.html @@ -0,0 +1,1469 @@ + + + + + + ISO 45001:2018 HSE 관리시스템 매뉴얼 + + + +
+ +
+ + +
+ + +
+ +
+

ISO 45001:2018

+

보건, 안전 및 환경 관리시스템 매뉴얼

+
테크니컬코리아
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
문서 제목HSE 관리시스템 매뉴얼
문서 번호TK-HSE-001
제정 일자2025.01.03
개정 일자
개정 번호01
페이지1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
구분작성검토승인
날짜
성명
서명
+
+ + +
+

목차 및 개정 이력

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호제목개정 번호개정 일자
1목차 및 개정 이력
21. 적용 범위
32. 인용 표준
43. 용어와 정의
54. 조직의 상황
65. 리더십과 근로자 참여
76. 기획
87. 지원
98. 운영
109. 성과 평가
1110. 개선
+ +

문서 개정 이력

+ + + + + + + + + + + + + + + + + + + + + + + + + +
개정일자수정 문서개정 내용 및 사유
02025.01.03ISO 45001:2018 HSE 관리시스템 구현 - 초기 생성
1
2
+
+ + +
+
+

1. 적용 범위

+
+ +

본 보건, 안전 및 환경 관리시스템 매뉴얼은 테크니컬코리아(이하 "회사"라 함)의 HSE 관리시스템 문서 중 최상위 문서로서, 국제표준 ISO 45001:2018의 요구사항에 따라 작성, 운영 및 유지됩니다.

+ +

본 HSE 관리시스템 매뉴얼은 테크니컬코리아가 수행하는 사업 범위 내에서 조직 관리부터 기획, 영업, 계약, 자재 조달 및 제조, 공정 실행, 관련 제품 및 서비스 활동에 이르기까지 전체 사업 범위에 걸쳐 보건, 안전 및 환경 활동을 수행하는 임직원에게 적용되며, 모든 이해관계자로부터 지속적으로 신뢰를 확보하고 향상시키기 위해 작성, 운영 및 유지됩니다.

+
+ + +
+
+

2. 인용 표준

+
+ +

본 HSE 관리시스템 매뉴얼은 국제표준 "ISO 45001:2018"의 요구사항을 적용하여 작성되었습니다. 본 HSE 관리시스템 매뉴얼 및 관련 문서는 국제표준의 개정이나 업무 개선의 필요에 따라 수정되어야 합니다.

+
+ + +
+
+

3. 용어와 정의

+
+ +

본 매뉴얼에서 사용하는 모든 용어는 "ISO 45001:2018"의 정의를 따르며, 정의되지 않은 용어는 관련 법령 및 테크니컬코리아의 규정이나 규칙에서 정한 정의를 따릅니다. 다만, 하위 규정에서 필요한 용어의 정의는 별도로 정할 수 있습니다.

+ +
+
조직의 상황:
+
목표를 달성하기 위한 조직의 접근 방식을 개발하는 데 영향을 줄 수 있는 내부 및 외부 이슈의 조합
+ +
이해관계자:
+
결정이나 활동에 영향을 주거나, 영향을 받거나, 영향을 받는다고 인식하는 개인이나 조직
+ +
의사소통:
+
조직 구성원 간에 생각이나 감정을 교환하는 포괄적인 행위
+ +
위험:
+
불확실성의 영향
+ +
위험과 기회:
+
잠재적 부정적 영향(위협)과 잠재적 유익한 영향(기회)
+ +
문서화된 정보:
+
조직이 관리하고 유지해야 하는 정보와 이를 포함하는 매체
+ +
HSE 관리시스템:
+
HSE 정책을 달성하기 위해 사용되는 관리시스템 또는 관리시스템의 일부
+ +
준수 의무:
+
조직이 준수해야 하거나 준수하기로 선택한 법적 요구사항 및 기타 요구사항
+ +
근로자:
+
조직의 통제 하에서 일이나 일과 관련된 활동을 수행하는 사람
+ +
참여:
+
의사결정 과정에 관여하는 것
+ +
협의:
+
결정을 내리기 전에 견해를 구하는 것
+ +
작업장:
+
근로 목적으로 사람이 있어야 하거나 가야 하는 조직의 통제 하에 있는 장소
+ +
계약업체:
+
합의된 규격, 조건에 따라 조직에 서비스를 제공하는 외부 조직
+ +
부상과 건강악화:
+
사람의 신체적, 정신적 또는 인지적 상태에 대한 부정적 영향
+ +
유해요인:
+
부상과 건강악화를 일으킬 잠재성을 가진 근원
+ +
사건:
+
일로부터 발생하거나 일의 과정에서 발생하여 부상과 건강악화를 일으킬 수 있거나 일으키는 사건
+
+
+ + + + + +
+
+

4. 조직의 상황

+
+ +
+

4.1 조직과 조직의 상황 이해

+

조직은 조직의 목적과 관련이 있고 HSE 관리시스템의 의도된 결과를 달성하는 능력에 영향을 주는 외부 및 내부 이슈를 결정해야 합니다.

+ +

외부 이슈에는 다음이 포함됩니다:

+
    +
  • 문화적, 사회적, 정치적, 법적, 재정적, 기술적, 경제적 및 자연 환경
  • +
  • 새로운 경쟁업체, 계약업체, 공급업체, 파트너 및 제공업체
  • +
  • 제품 및 OH&S 영향에 대한 새로운 지식
  • +
  • 산업 또는 부문과 관련된 주요 동향 및 추진요인
  • +
  • 외부 이해관계자의 관계, 인식 및 가치
  • +
+ +

내부 이슈에는 다음이 포함됩니다:

+
    +
  • 거버넌스, 조직 구조, 역할 및 책임
  • +
  • 정책, 목표 및 이를 달성하기 위한 전략
  • +
  • 자원, 지식 및 역량 측면에서의 능력
  • +
  • 정보 시스템, 정보 흐름 및 의사결정 과정
  • +
  • 근로자와의 관계, 그들의 인식 및 가치
  • +
  • 조직 문화
  • +
+
+ +
+

4.2 근로자 및 기타 이해관계자의 필요와 기대 이해

+

조직은 다음을 결정해야 합니다:

+
    +
  • HSE 관리시스템과 관련된 근로자 및 기타 이해관계자
  • +
  • 이러한 근로자 및 기타 이해관계자의 필요와 기대
  • +
  • 이러한 필요와 기대 중 법적 요구사항 및 기타 요구사항인 것
  • +
+
+ +
+

4.3 HSE 관리시스템의 적용 범위 결정

+

조직은 적용 범위를 정하기 위해 HSE 관리시스템의 경계와 적용 가능성을 결정해야 합니다. 적용 범위는 조직의 HSE 성과에 영향을 줄 수 있는 조직의 통제 또는 영향 하에 있는 활동, 제품 및 서비스를 포함해야 합니다.

+
+ +
+

4.4 HSE 관리시스템

+

조직은 이 국제표준의 요구사항에 따라 필요한 프로세스와 그들의 상호작용을 포함하여 HSE 관리시스템을 수립, 실행, 유지 및 지속적으로 개선해야 합니다.

+
+
+ + +
+
+

5. 리더십과 근로자 참여

+
+ +
+

5.1 리더십과 의지

+

최고경영자는 다음을 통해 HSE 관리시스템에 대한 리더십과 의지를 실증해야 합니다:

+
    +
  • 업무 관련 부상과 건강악화 예방에 대한 전반적인 책임지기
  • +
  • HSE 정책과 목표가 수립되고 전략적 방향과 양립할 수 있도록 보장
  • +
  • HSE 관리시스템 요구사항의 사업 프로세스 통합 보장
  • +
  • 필요한 자원을 이용할 수 있도록 보장
  • +
  • 효과적인 HSE 관리의 중요성 의사소통
  • +
  • HSE 관리시스템이 의도된 결과를 달성하도록 보장
  • +
  • 지속적 개선 촉진
  • +
  • 사건, 유해요인, 위험 및 기회를 보고할 때 근로자를 보복으로부터 보호
  • +
+
+ +
+

5.2 HSE 정책

+

최고경영자는 다음과 같은 HSE 정책을 수립, 실행 및 유지해야 합니다:

+
    +
  • 안전하고 건강한 작업 조건을 제공하겠다는 의지 포함
  • +
  • HSE 목표 설정을 위한 프레임워크 제공
  • +
  • 법적 요구사항 및 기타 요구사항을 충족하겠다는 의지 포함
  • +
  • 유해요인을 제거하고 HSE 위험을 감소시키겠다는 의지 포함
  • +
  • 지속적 개선에 대한 의지 포함
  • +
  • 근로자의 협의와 참여에 대한 의지 포함
  • +
+
+ +
+

5.3 조직의 역할, 책임 및 권한

+

최고경영자는 관련 역할에 대한 책임과 권한이 조직 내에서 할당, 의사소통 및 이해되도록 보장해야 합니다. 모든 수준의 근로자는 자신이 통제하는 OH&S 관리시스템의 측면에 대해 책임을 져야 합니다.

+
+ +
+

5.4 근로자의 협의와 참여

+

조직은 OH&S 관리시스템의 개발, 기획, 실행, 성과 평가 및 개선을 위한 조치에서 근로자의 협의와 참여를 위한 프로세스를 수립해야 합니다.

+
+
+ + +
+
+

6. 기획

+
+ +
+

6.1 위험과 기회를 다루는 조치

+

6.1.1 일반

+

HSE 관리시스템을 기획할 때, 조직은 다음을 위해 다루어야 할 위험과 기회를 결정해야 합니다:

+
    +
  • HSE 관리시스템이 의도된 결과를 달성할 수 있다는 확신 제공
  • +
  • 바람직하지 않은 영향 예방 또는 감소
  • +
  • 지속적 개선 달성
  • +
+ +

6.1.2 유해요인 식별 및 위험과 기회의 평가

+

조직은 다음을 고려하여 지속적이고 사전 예방적인 유해요인 식별을 위한 프로세스를 수립해야 합니다:

+
    +
  • 업무가 조직되는 방법, 사회적 요인, 리더십 및 조직 문화
  • +
  • 일상적 및 비일상적 활동과 상황
  • +
  • 기반시설, 장비, 재료, 물질 및 물리적 조건
  • +
  • 과거의 관련 사건 및 잠재적 비상 상황
  • +
  • 작업장에 접근하는 사람들
  • +
+ +

6.1.3 법적 요구사항 및 기타 요구사항의 결정

+

조직은 유해요인, HSE 위험 및 HSE 관리시스템에 적용되는 최신 법적 요구사항 및 기타 요구사항을 결정하고 접근할 수 있는 프로세스를 수립해야 합니다.

+ +

6.1.4 조치 기획

+

조직은 위험과 기회, 법적 요구사항 및 비상 상황을 다루기 위한 조치를 기획해야 합니다.

+
+ +
+

6.2 HSE 목표 및 이를 달성하기 위한 기획

+

조직은 관련 기능과 수준에서 HSE 목표를 수립해야 합니다. HSE 목표는 다음과 같아야 합니다:

+
    +
  • HSE 정책과 일치
  • +
  • 측정 가능하거나 성과 평가가 가능
  • +
  • 적용 가능한 요구사항 고려
  • +
  • 모니터링되고 의사소통됨
  • +
  • 적절하게 갱신됨
  • +
+
+
+ + +
+
+

7. 지원

+
+ +
+

7.1 자원

+

조직은 HSE 관리시스템의 수립, 실행, 유지 및 지속적 개선에 필요한 자원을 결정하고 제공해야 합니다.

+
+ +
+

7.2 역량

+

조직은 다음을 해야 합니다:

+
    +
  • HSE 성과에 영향을 주는 근로자의 필요한 역량 결정
  • +
  • 적절한 교육, 훈련 또는 경험에 기반하여 근로자가 역량을 갖추도록 보장
  • +
  • 필요한 역량을 획득하고 유지하기 위한 조치 취하기
  • +
  • 역량의 증거로서 문서화된 정보 보존
  • +
+
+ +
+

7.3 인식

+

근로자는 다음에 대해 인식하도록 해야 합니다:

+
    +
  • HSE 정책과 HSE 목표
  • +
  • HSE 관리시스템의 효과성에 대한 자신의 기여
  • +
  • HSE 관리시스템 요구사항에 부합하지 않는 것의 의미
  • +
  • 자신과 관련된 사건 및 조사 결과
  • +
  • 자신과 관련된 유해요인, HSE 위험 및 결정된 조치
  • +
+
+ +
+

7.4 의사소통

+

조직은 HSE 관리시스템과 관련된 내부 및 외부 의사소통을 위한 프로세스를 수립하여 무엇을, 언제, 누구와, 어떻게 의사소통할지를 결정해야 합니다.

+
+ +
+

7.5 문서화된 정보

+

조직의 HSE 관리시스템은 이 표준에서 요구하는 문서화된 정보와 HSE 관리시스템의 효과성에 필요하다고 조직이 결정한 문서화된 정보를 포함해야 합니다.

+
+
+ + +
+
+

8. 운영

+
+ +
+

8.1 운영 기획 및 관리

+

조직은 프로세스에 대한 기준을 수립하고 기준에 따라 관리를 실행함으로써 HSE 관리시스템 요구사항을 충족하는 데 필요한 프로세스를 기획, 실행, 관리 및 유지해야 합니다.

+ +

8.1.2 유해요인 제거 및 HSE 위험 감소

+

조직은 다음 관리 체계를 사용하여 유해요인 제거 및 HSE 위험 감소를 위한 프로세스를 수립해야 합니다:

+
    +
  • 유해요인 제거
  • +
  • 덜 위험한 프로세스, 운영, 재료 또는 장비로 대체
  • +
  • 공학적 관리 및 업무 재조직 사용
  • +
  • 훈련을 포함한 관리적 관리 사용
  • +
  • 적절한 개인보호장비 사용
  • +
+ +

8.1.3 변경 관리

+

조직은 OH&S 성과에 영향을 주는 계획된 임시 및 영구 변경의 실행 및 관리를 위한 프로세스를 수립해야 합니다.

+ +

8.1.4 조달

+

조직은 제품 및 서비스의 조달을 관리하고 계약업체와 협력하여 유해요인을 식별하고 HSE 위험을 평가 및 관리하는 프로세스를 수립해야 합니다.

+
+ +
+

8.2 비상 대비 및 대응

+

조직은 다음을 통해 잠재적 비상 상황을 대비하고 대응하는 프로세스를 수립해야 합니다:

+
    +
  • 비상 상황에 대한 계획된 대응 수립
  • +
  • 계획된 대응을 위한 훈련 제공
  • +
  • 계획된 대응 능력을 주기적으로 시험 및 연습
  • +
  • 성과를 평가하고 필요시 계획된 대응 수정
  • +
  • 모든 관련 당사자에게 의무와 책임 의사소통
  • +
+
+
+ + +
+
+

9. 성과 평가

+
+ +
+

9.1 모니터링, 측정, 분석 및 성과 평가

+

조직은 모니터링과 측정이 필요한 것, 모니터링 방법, 평가 기준, 모니터링과 측정을 수행해야 하는 시기를 결정하기 위해 모니터링, 측정, 분석 및 성과 평가를 위한 프로세스를 수립해야 합니다.

+ +

9.1.2 준수 평가

+

조직은 법적 요구사항 및 기타 요구사항에 대한 준수를 평가하는 프로세스를 수립해야 합니다.

+
+ +
+

9.2 내부 심사

+

조직은 HSE 관리시스템이 조직의 요구사항과 이 국제표준에 적합한지, 효과적으로 실행되고 유지되는지에 대한 정보를 제공하기 위해 계획된 주기로 내부 심사를 실시해야 합니다.

+
+ +
+

9.3 경영 검토

+

최고경영자는 조직의 HSE 관리시스템이 지속적으로 적절하고, 충분하며, 효과적임을 보장하기 위해 계획된 주기로 검토해야 합니다. 경영 검토는 다음을 고려해야 합니다:

+
    +
  • 이전 경영 검토의 조치 상태
  • +
  • 외부 및 내부 이슈의 변화
  • +
  • HSE 성과에 대한 정보
  • +
  • 자원의 적절성
  • +
  • 지속적 개선 기회
  • +
+
+
+ + +
+
+

10. 개선

+
+ +
+

10.1 일반

+

조직은 HSE 관리시스템의 의도된 결과를 달성하기 위해 개선 기회를 결정하고 필요한 조치를 실행해야 합니다.

+
+ +
+

10.2 사건, 부적합 및 시정조치

+

사건이나 부적합이 발생할 때, 조직은 다음을 해야 합니다:

+
    +
  • 사건이나 부적합에 시기적절하게 대응
  • +
  • 근본 원인을 제거하기 위한 시정조치의 필요성 평가
  • +
  • 시정조치를 포함하여 필요한 모든 조치 실행
  • +
  • 취한 조치의 효과성 검토
  • +
  • 필요시 HSE 관리시스템 변경
  • +
+
+ +
+

10.3 지속적 개선

+

조직은 다음을 위해 HSE 관리시스템의 적절성, 충분성 및 효과성을 지속적으로 개선해야 합니다:

+
    +
  • HSE 성과 향상
  • +
  • HSE 관리시스템을 지원하는 문화 촉진
  • +
  • 지속적 개선을 위한 조치 실행에서 근로자 참여 촉진
  • +
  • 지속적 개선의 관련 결과를 근로자에게 의사소통
  • +
+
+
+ + +
+
+

관련 문서

+
+ +
    +
  1. TK-HSE-P-410 - 조직 상황 이해 및 HSE 관리시스템 운영 절차
  2. +
  3. TK-HSE-P-510 - 리더십 및 정책 수립 절차
  4. +
  5. TK-HSE-P-520 - 조직 편성 및 직무 배정 절차
  6. +
  7. TK-HSE-P-610 - 기획 및 위험 관리 절차
  8. +
  9. TK-HSE-P-620 - 위험 평가 절차
  10. +
  11. TK-HSE-P-630 - HSE 법적 요구사항 관리 절차
  12. +
  13. TK-HSE-P-640 - HSE 목표 관리 절차
  14. +
  15. TK-HSE-P-710 - 자원 관리 절차
  16. +
  17. TK-HSE-P-720 - 교육 및 훈련 관리 절차
  18. +
  19. TK-HSE-P-730 - 인식 및 의사소통 절차
  20. +
  21. TK-HSE-P-740 - 문서화된 정보 관리 절차
  22. +
  23. TK-HSE-P-810 - 운영 기획 및 관리 절차
  24. +
  25. TK-HSE-P-820 - 비상 대비 및 대응 절차
  26. +
  27. TK-HSE-P-910 - 프로세스 성과 관리 절차
  28. +
  29. TK-HSE-P-920 - HSE 모니터링 및 측정 관리 절차
  30. +
  31. TK-HSE-P-930 - 내부 심사 절차
  32. +
  33. TK-HSE-P-940 - 경영 검토 절차
  34. +
  35. TK-HSE-P-1010 - 사건, 부적합 및 시정조치 절차
  36. +
  37. TK-HSE-P-1020 - 지속적 개선 절차
  38. +
+
+ + +
+
+

문서 관리

+
+ +

이것은 통제 문서입니다

+

승인 없이 복사하지 마십시오

+

최신 버전은 회사 인트라넷에서 확인할 수 있습니다

+

이 문서에 대한 문의사항은 HSE 관리부서로 연락하십시오

+
+ +
+ + +
+ +
+

ISO 45001:2018

+

Health, Safety and Environment Management System Manual

+
Technicalkorea
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Document TitleHSE Management System Manual
Document NumberTK-HSE-001
Established Date2025.01.03
Revision Date
Revision Number01
Page1 of 1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryPreparedReviewedApproved
Date
Name
Signature
+
+ + +
+

TABLE OF CONTENTS AND REVISION HISTORY

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
No.TitleRevision No.Revision Date
1Table of Contents and Revision History
21. Scope
32. Normative References
43. Terms and Definitions
54. Context of the Organization
65. Leadership and Worker Participation
76. Planning
87. Support
98. Operation
109. Performance Evaluation
1110. Improvement
+ +

Document Revision History

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RevisionDateModified DocumentContent and Reason for Revision
02025.01.03ISO 45001:2018 HSE Management System Implementation - Initial Creation
1
2
+
+ + +
+
+

1. SCOPE

+
+ +

This Health, Safety and Environment Management System Manual is the highest-level document among the HSE management system documents of Technicalkorea (hereinafter referred to as "the Company"). It is prepared, operated, and maintained in accordance with the requirements of the international standard ISO 45001:2018.

+ +

This HSE Management System Manual applies to employees who perform health, safety and environment activities throughout the entire business scope, from organizational management to planning, sales, contracting, procurement and manufacturing of materials, process execution, and related product and service activities within the business scope that Technicalkorea performs. It is prepared, operated, and maintained to continuously secure and improve trust from all stakeholders.

+
+ + +
+
+

2. NORMATIVE REFERENCES

+
+ +

This HSE Management System Manual is prepared by applying the requirements of the international standard "ISO 45001:2018". This HSE Management System Manual and related documents shall be revised when necessary for the revision of international standards or improvement of work.

+
+ + +
+
+

3. TERMS AND DEFINITIONS

+
+ +

All terms used in this manual follow the definitions in "ISO 45001:2018", and undefined terms shall follow the definitions prescribed in related laws and regulations and Technicalkorea's regulations or rules. However, definitions of necessary terms in subordinate regulations may be separately established.

+ +
+
Context of the organization:
+
Combination of internal and external issues that can influence the organization's approach to developing and achieving its objectives
+ +
Interested party:
+
Person or organization that can affect, be affected by, or perceive themselves to be affected by a decision or activity
+ +
Communication:
+
Comprehensive act of exchanging thoughts or feelings among organization members
+ +
Risk:
+
Effect of uncertainty
+ +
Risk and opportunities:
+
Potential adverse effects (threats) and potential beneficial effects (opportunities)
+ +
Documented information:
+
Information required to be controlled and maintained by the organization and the medium containing it
+ +
HSE management system:
+
Management system or part of a management system used to achieve the HSE policy
+ +
Compliance obligations:
+
Legal requirements and other requirements that an organization has to comply with or chooses to comply with
+ +
Worker:
+
Person performing work or work-related activities under the control of the organization
+ +
Participation:
+
Involvement in decision-making processes
+ +
Consultation:
+
Seeking views before making a decision
+ +
Workplace:
+
Place under the control of the organization where a person needs to be or to go for work purposes
+ +
Contractor:
+
External organization providing services to the organization according to agreed specifications, terms and conditions
+ +
Injury and ill health:
+
Adverse effect on the physical, mental or cognitive condition of a person
+ +
Hazard:
+
Source with a potential to cause injury and ill health
+ +
Incident:
+
Occurrence arising from or in the course of work that could or does result in injury and ill health
+
+
+ + +
+
+

4. CONTEXT OF THE ORGANIZATION

+
+ +
+

4.1 Understanding the organization and its context

+

The organization shall determine external and internal issues that are relevant to its purpose and that affect its ability to achieve the intended outcomes of its HSE management system.

+ +

External issues include:

+
    +
  • Cultural, social, political, legal, financial, technological, economic and natural environment
  • +
  • New competitors, contractors, suppliers, partners and providers
  • +
  • New knowledge about products and OH&S impacts
  • +
  • Key trends and drivers related to the industry or sector
  • +
  • Relationships, perceptions and values of external interested parties
  • +
+ +

Internal issues include:

+
    +
  • Governance, organizational structure, roles and accountabilities
  • +
  • Policies, objectives and strategies to achieve them
  • +
  • Capabilities in terms of resources, knowledge and competencies
  • +
  • Information systems, information flows and decision-making processes
  • +
  • Relationships with workers, their perceptions and values
  • +
  • Organizational culture
  • +
+
+ +
+

4.2 Understanding the needs and expectations of workers and other interested parties

+

The organization shall determine:

+
    +
  • Workers and other interested parties relevant to the HSE management system
  • +
  • The needs and expectations of these workers and other interested parties
  • +
  • Which of these needs and expectations are legal requirements and other requirements
  • +
+
+ +
+

4.3 Determining the scope of the HSE management system

+

The organization shall determine the boundaries and applicability of the HSE management system to establish its scope. The scope shall include activities, products and services within the organization's control or influence that can affect the organization's HSE performance.

+
+ +
+

4.4 HSE management system

+

The organization shall establish, implement, maintain and continually improve an HSE management system, including the processes needed and their interactions, in accordance with the requirements of this international standard.

+
+
+ + +
+
+

5. LEADERSHIP AND WORKER PARTICIPATION

+
+ +
+

5.1 Leadership and commitment

+

Top management shall demonstrate leadership and commitment with respect to the HSE management system by:

+
    +
  • Taking overall responsibility for the prevention of work-related injury and ill health
  • +
  • Ensuring that the HSE policy and objectives are established and compatible with strategic direction
  • +
  • Ensuring integration of HSE management system requirements into business processes
  • +
  • Ensuring that necessary resources are available
  • +
  • Communicating the importance of effective HSE management
  • +
  • Ensuring the HSE management system achieves its intended outcomes
  • +
  • Promoting continual improvement
  • +
  • Protecting workers from reprisals when reporting incidents, hazards, risks and opportunities
  • +
+
+ +
+

5.2 HSE policy

+

Top management shall establish, implement and maintain an HSE policy that:

+
    +
  • Includes a commitment to provide safe and healthy working conditions
  • +
  • Provides a framework for setting HSE objectives
  • +
  • Includes a commitment to fulfill legal requirements and other requirements
  • +
  • Includes a commitment to eliminate hazards and reduce HSE risks
  • +
  • Includes a commitment to continual improvement
  • +
  • Includes a commitment to consultation and participation of workers
  • +
+
+ +
+

5.3 Organizational roles, responsibilities and authorities

+

Top management shall ensure that responsibilities and authorities for relevant roles are assigned, communicated and understood within the organization. Workers at all levels shall take responsibility for those aspects of the OH&S management system over which they have control.

+
+ +
+

5.4 Consultation and participation of workers

+

The organization shall establish processes for consultation and participation of workers in the development, planning, implementation, performance evaluation and actions for improvement of the OH&S management system.

+
+
+ + +
+
+

6. PLANNING

+
+ +
+

6.1 Actions to address risks and opportunities

+

6.1.1 General

+

When planning for the HSE management system, the organization shall determine the risks and opportunities that need to be addressed to:

+
    +
  • Give assurance that the HSE management system can achieve its intended outcomes
  • +
  • Prevent, or reduce, undesired effects
  • +
  • Achieve continual improvement
  • +
+ +

6.1.2 Hazard identification and assessment of risks and opportunities

+

The organization shall establish processes for ongoing and proactive hazard identification considering:

+
    +
  • How work is organized, social factors, leadership, and organizational culture
  • +
  • Routine and non-routine activities and situations
  • +
  • Infrastructure, equipment, materials, substances and physical conditions
  • +
  • Past relevant incidents and potential emergency situations
  • +
  • People with access to the workplace
  • +
+ +

6.1.3 Determination of legal requirements and other requirements

+

The organization shall establish processes to determine and have access to up-to-date legal requirements and other requirements applicable to its hazards, HSE risks and HSE management system.

+ +

6.1.4 Planning action

+

The organization shall plan actions to address risks and opportunities, legal requirements, and emergency situations.

+
+ +
+

6.2 HSE objectives and planning to achieve them

+

The organization shall establish HSE objectives at relevant functions and levels. HSE objectives shall be:

+
    +
  • Consistent with the HSE policy
  • +
  • Measurable or capable of performance evaluation
  • +
  • Take into account applicable requirements
  • +
  • Be monitored and communicated
  • +
  • Be updated as appropriate
  • +
+
+
+ + +
+
+

7. SUPPORT

+
+ +
+

7.1 Resources

+

The organization shall determine and provide the resources needed for the establishment, implementation, maintenance and continual improvement of the HSE management system.

+
+ +
+

7.2 Competence

+

The organization shall:

+
    +
  • Determine necessary competence of workers that affects HSE performance
  • +
  • Ensure workers are competent based on appropriate education, training or experience
  • +
  • Take actions to acquire and maintain necessary competence
  • +
  • Retain documented information as evidence of competence
  • +
+
+ +
+

7.3 Awareness

+

Workers shall be made aware of:

+
    +
  • The HSE policy and HSE objectives
  • +
  • Their contribution to the effectiveness of the HSE management system
  • +
  • The implications of not conforming to HSE management system requirements
  • +
  • Incidents and investigation results relevant to them
  • +
  • Hazards, HSE risks and determined actions relevant to them
  • +
+
+ +
+

7.4 Communication

+

The organization shall establish processes for internal and external communications relevant to the HSE management system, determining what, when, with whom, and how to communicate.

+
+ +
+

7.5 Documented information

+

The organization's HSE management system shall include documented information required by this standard and determined by the organization as necessary for the effectiveness of the HSE management system.

+
+
+ + +
+
+

8. OPERATION

+
+ +
+

8.1 Operational planning and control

+

The organization shall plan, implement, control and maintain the processes needed to meet HSE management system requirements by establishing criteria for processes and implementing control in accordance with the criteria.

+ +

8.1.2 Eliminating hazards and reducing HSE risks

+

The organization shall establish processes for elimination of hazards and reduction of HSE risks using the following hierarchy of controls:

+
    +
  • Eliminate the hazard
  • +
  • Substitute with less hazardous processes, operations, materials or equipment
  • +
  • Use engineering controls and reorganization of work
  • +
  • Use administrative controls, including training
  • +
  • Use adequate personal protective equipment
  • +
+ +

8.1.3 Management of change

+

The organization shall establish processes for the implementation and control of planned temporary and permanent changes that impact OH&S performance.

+ +

8.1.4 Procurement

+

The organization shall establish processes to control the procurement of products and services and coordinate with contractors to identify hazards and assess and control HSE risks.

+
+ +
+

8.2 Emergency preparedness and response

+

The organization shall establish processes to prepare for and respond to potential emergency situations by:

+
    +
  • Establishing a planned response to emergency situations
  • +
  • Providing training for the planned response
  • +
  • Periodically testing and exercising the planned response capability
  • +
  • Evaluating performance and revising the planned response when necessary
  • +
  • Communicating duties and responsibilities to all relevant parties
  • +
+
+
+ + +
+
+

9. PERFORMANCE EVALUATION

+
+ +
+

9.1 Monitoring, measurement, analysis and performance evaluation

+

The organization shall establish processes for monitoring, measurement, analysis and performance evaluation to determine what needs to be monitored and measured, methods for monitoring, criteria for evaluation, and when monitoring and measurement shall be performed.

+ +

9.1.2 Evaluation of compliance

+

The organization shall establish processes for evaluating compliance with legal requirements and other requirements.

+
+ +
+

9.2 Internal audit

+

The organization shall conduct internal audits at planned intervals to provide information on whether the HSE management system conforms to the organization's requirements and this international standard, and is effectively implemented and maintained.

+
+ +
+

9.3 Management review

+

Top management shall review the organization's HSE management system at planned intervals to ensure its continuing suitability, adequacy and effectiveness. The management review shall consider:

+
    +
  • Status of actions from previous management reviews
  • +
  • Changes in external and internal issues
  • +
  • Information on HSE performance
  • +
  • Adequacy of resources
  • +
  • Opportunities for continual improvement
  • +
+
+
+ + +
+
+

10. IMPROVEMENT

+
+ +
+

10.1 General

+

The organization shall determine opportunities for improvement and implement necessary actions to achieve the intended outcomes of its HSE management system.

+
+ +
+

10.2 Incident, nonconformity and corrective action

+

When an incident or nonconformity occurs, the organization shall:

+
    +
  • React to the incident or nonconformity in a timely manner
  • +
  • Evaluate the need for corrective action to eliminate root causes
  • +
  • Implement any action needed, including corrective action
  • +
  • Review the effectiveness of any action taken
  • +
  • Make changes to the HSE management system, if necessary
  • +
+
+ +
+

10.3 Continual improvement

+

The organization shall continually improve the suitability, adequacy and effectiveness of the HSE management system to:

+
    +
  • Enhance HSE performance
  • +
  • Promote a culture that supports an HSE management system
  • +
  • Promote worker participation in implementing actions for continual improvement
  • +
  • Communicate relevant results of continual improvement to workers
  • +
+
+
+ + +
+
+

RELATED DOCUMENTS

+
+ +
    +
  1. TK-HSE-P-410 - Understanding Organizational Context and HSE Management System Operation Procedure
  2. +
  3. TK-HSE-P-510 - Leadership and Policy Establishment Procedure
  4. +
  5. TK-HSE-P-520 - Organization and Job Assignment Procedure
  6. +
  7. TK-HSE-P-610 - Planning and Risk Management Procedure
  8. +
  9. TK-HSE-P-620 - Risk Assessment Procedure
  10. +
  11. TK-HSE-P-630 - HSE Legal Requirements Management Procedure
  12. +
  13. TK-HSE-P-640 - HSE Objectives Management Procedure
  14. +
  15. TK-HSE-P-710 - Resource Management Procedure
  16. +
  17. TK-HSE-P-720 - Education and Training Management Procedure
  18. +
  19. TK-HSE-P-730 - Awareness and Communication Procedure
  20. +
  21. TK-HSE-P-740 - Documented Information Management Procedure
  22. +
  23. TK-HSE-P-810 - Operational Planning and Control Procedure
  24. +
  25. TK-HSE-P-820 - Emergency Preparedness and Response Procedure
  26. +
  27. TK-HSE-P-910 - Process Performance Management Procedure
  28. +
  29. TK-HSE-P-920 - HSE Monitoring and Measurement Management Procedure
  30. +
  31. TK-HSE-P-930 - Internal Audit Procedure
  32. +
  33. TK-HSE-P-940 - Management Review Procedure
  34. +
  35. TK-HSE-P-1010 - Incident, Nonconformity and Corrective Action Procedure
  36. +
  37. TK-HSE-P-1020 - Continual Improvement Procedure
  38. +
+
+ + +
+
+

DOCUMENT CONTROL

+
+ +

This is a controlled document

+

Do not copy without authorization

+

Latest version available on company intranet

+

For questions regarding this document, contact the HSE Management Department

+
+ +
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/policy.html b/deploy/tkfb-package/web-ui/docs/policy.html new file mode 100644 index 0000000..84e87cd --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/policy.html @@ -0,0 +1,317 @@ + + + + + + 경영방침 - 테크니컬코리아 + + + +
+ + + + + + + +
+
+ +
+
+

MP-001 경영방침서

+

테크니컬코리아 경영이념 및 기본방침

+
+
+ + +
+
+

MP-002 윤리강령

+

임직원 윤리행동 기준 및 가이드라인

+
+
+ + +
+
+

MP-003 정보보안 정책

+

회사 정보자산 보호 및 보안 정책

+
+
+ + +
+
+

MP-004 조직도

+

회사 조직도 및 부서별 역할

+
+
+ + +
+
+

MP-005 권한위임 규정

+

의사결정 권한 및 위임 규정

+
+
+
+ + +
+

경영방침 검색

+ +
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

경영방침 문의: policy@technicalkorea.co.kr | 내선: 5678

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/quality.html b/deploy/tkfb-package/web-ui/docs/quality.html new file mode 100644 index 0000000..9ae8382 --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/quality.html @@ -0,0 +1,373 @@ + + + + + + 품질 관리시스템 - 테크니컬코리아 + + + +
+ + + + + + + +
+
+ +
+
+

QM-001 품질매뉴얼

+

ISO 9001 기반 품질경영시스템 매뉴얼

+
+
+ + +
+
+

QP-001 문서 및 기록관리 절차

+

품질문서 작성, 승인, 배포, 보관 절차

+
+
+ + +
+
+

QP-002 고객만족 관리절차

+

고객 요구사항 파악 및 만족도 관리

+
+
+ + +
+
+

QP-003 설계 및 개발관리

+

설계입력, 검토, 검증, 타당성확인 절차

+
+
+ + +
+
+

QP-004 구매 및 외주관리

+

협력업체 평가, 구매품 검증 절차

+
+
+ + +
+
+

QP-005 생산 및 서비스 제공

+

생산공정 관리 및 제품 식별추적성

+
+
+ + +
+
+

QP-006 검사 및 시험관리

+

원자재, 중간품, 최종제품 검사 절차

+
+
+ + +
+
+

QP-007 부적합 및 시정조치

+

부적합품 관리 및 시정예방조치 절차

+
+
+ + +
+
+

QP-008 내부심사 절차

+

품질경영시스템 내부심사 실시 절차

+
+
+ + +
+
+

QP-009 경영검토 절차

+

품질경영시스템 경영검토 실시 절차

+
+
+ + +
+
+

QP-010 측정장비 관리절차

+

측정장비 교정, 점검, 관리 절차

+
+
+ + +
+
+

QP-011 교육훈련 관리절차

+

품질 관련 교육훈련 계획 및 실시

+
+
+
+ + +
+

품질문서 검색

+ +
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

품질 문의: quality@technicalkorea.co.kr | 내선: 2345

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/docs/technical.html b/deploy/tkfb-package/web-ui/docs/technical.html new file mode 100644 index 0000000..7178527 --- /dev/null +++ b/deploy/tkfb-package/web-ui/docs/technical.html @@ -0,0 +1,333 @@ + + + + + + 기술문서 - 테크니컬코리아 + + + +
+ + + + + + + +
+
+ +
+
+

TD-001 배관설계 표준

+

배관 설계 기준 및 표준 사양서

+
+
+ + +
+
+

TD-002 용접절차서 (WPS)

+

배관 용접 절차 및 품질 기준

+
+
+ + +
+
+

TD-003 재료사양서

+

배관재료 규격 및 선정 기준

+
+
+ + +
+
+

TD-004 CAD 도면 표준

+

도면 작성 기준 및 CAD 표준

+
+
+ + +
+
+

TD-005 배관 검사기준서

+

배관 제작 및 설치 검사 기준

+
+
+ + +
+
+

TD-006 압력시험 절차서

+

배관계통 압력시험 절차 및 기준

+
+
+ + +
+
+

TD-007 BOM 시스템 사용자 매뉴얼

+

자재관리 시스템 사용 가이드

+
+
+
+ + +
+

기술문서 검색

+ +
+
+ +
+

테크니컬코리아 내부 전용 문서시스템

+

기술 문의: tech@technicalkorea.co.kr | 내선: 4567

+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/img/favicon.png b/deploy/tkfb-package/web-ui/img/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbd962e3dedce356d28528ee4d3414d2279fdb0 GIT binary patch literal 14999 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 $8#)6yTyxZ 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 Q98c-gvda{`!}PD%IDHMJ*rq{osU? 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

$V2SF9`zerOn5~jKJ~5T*j~u} z$+rEmz8TB`Yn_#?5AA92wsVi|04wm6M>25Ae>#QIW#v?l#*Sy$J(>IUZ~IOBEtuo` zQZe|}q(8J@!ubaptUveH{{ULQp3gSnA1k$?jznr!4PPV^t`ce4R7TvZpy{|{@TZ93Z@AU?H3#iy@ndK2ZpdL>C7le~cdwu9P%7q%EKJg;zN|hk3QA+4ZhPJ}7t@xLr;k z`{-4~_=n)vA1+C|yLN3m=h->uxxe@Qx%*lqT(-QO06Tj5M0A7_)O}u4Zg5x3R}Gh+>p46q&;cS;P^e} zPIqYx_6h|hZIzYMRwhy(|H%Qp5y9S69~84pWC4cz`g^~eMi1;b_hB~jQ~F2s(Zj_q zv9|jyec!npzqkYvpwjw+SMv-sFCzppnQK$XOvU-1z2UV$wL*0FSmtt)ZHW3%;=yzk zE$bo=>Jj>%u_yUK_|*sS+ftULO5PuVBO@%U<_jASj^x>WI3qC9)c>9eKN1aHT!MKw8c$BW%_ z`WSUNK5mnvqZur~NYc+HRGKRq?jQxTXvQL0$4rAJQvAOXrxX-G>2_NBcf0gFm=gl8 z^d<4WF;>3^9h3I>8&W~X`2tBtp=kMH;^p%oIN>+_+)z}uqoTVRfed(1K|pNS^lfrm zi~1#HC+wNE;jTmAe1Dc%;SH+1T=Kf@S^=mm0vrMNc~s5`m5L>Cs)oHY41a#?;`hO$ z-pPi!0WZmmxN+RBNi6}uaKkt|ctFWbC zRErLsHV5ilV{~~#Q(9bw*ug~56+J#F%8{C5^v4PUC>dHHXOf!|0sx*f>SW-b@XMKu zK<05~Vn{kLo}KqPucQkb z09>5}Kek3?+8>UWB0KkvqOdaX%0SrW9yAUqv3*o|jsjzqi-zSw4v^B@^wit~nqX3b z3|Op8*>+yOx2%8Ziso~f8(u8T_?#hf!;&Do@gAK-A}2z(0Y!uqYkt0nU^84VTbX?3 z%}ZgJuZ#iA(MB?p!l=QRQc=E91zvtW$bq(oyn&)&&dMx;5I;gpkLj#b8n7w9Ki$_# z`EHaJgMB#)ppXYu`Vl}0^|*BD=CxzY{V{onCM^L0LQaN`xl#dOp3>8em4bpw0O2!# z6!45b$8o2F0!jd5_>ZT`8M=xVjU)w;@YcM7mygdLel!2ci2~Qc+-InN(!cu3Y-%byd583up z=1OAp*dV$xa9I$eD-R0hR0{&}(!%ZS(_XIV(PPmCPnEyDCxE`hgGS=PDdz6OI8hnC ze0$(k0we+b2H2^HZ$Qrt$Y|uuLbU^lK%n+;=SjgQ@e%O z-MgbgXR~I4Nhe-9)zW=Kz)$<(?t`SRO#bB*idb&ImdkXEPXB!Aws{TFU~-IkmF%Of z?+MXA7)6i>EJQz7cTo+|J@!RrSgp#=0Laj0~3?C_*qp0cPkVljw(wcV0OG^`^d&#xg3M8*#xY3Y_25z@2+vJjOn1~l8+5}<9#`K`?u<93 z{rnpMvsJ^VD0ICj`Lc-uPU1V3Sirr!8=ZuRW#p^GK+Hx5E{U0B>sOp(oi@O~hRQ*uipS$%Vbk2KmiJD}?HyBO z0a&VTZ^oY`aDlU9Hq1|16is63A?&t8=F-BWjYr-O#DD@3=L&qQq(toP+t8OmtGABf~?!0u7x z%17^+WzWGs8&T_x!>&Dy%O#pw7S&V_IV$E4r9|FCCs7!etga#^uZJmR0Tcz!xg(p9+5I@m#en_vDfWqHwseaYtP(0v3Jo z)oyH8bpO#6YEtNg#sXnw6>!Rwm$20QmCA)G%kHlvvGczcs?aHS7Ov6Gz{_f4@WDcHUZAiJfUK$mmjoVtLeksH3yJU8$4Ka9^46-x!l} zA&_Zt7^_&<8Tebkeajs!ni-0P6M|AhN`JyYOSd~#azh=n zn=hZkq?ChLfx*r@*FfEm>UdS?!{>*T94DvMw2NXYPhXTiesvW;JgS>M3&vXrb}?yb zMrEwFTT>M7bI-SUAl@|KuhUHZWt~O0Gvk{;2Na(xOcXfZ&e%we*}Mok!ICQeg5!(1 zcw?W6^>q4Ru!fqimAbp+6du)-|BVVLSNmCY<_AzX!7=mR zuN<3O2^j0ReYUVK2DMTSauuf-&Y6!j^0}hxifNE^x7z^{pr+f;X*B05Wct7cbFub0 zqkNbH3VY52?8jz}1YV^72x0iWeGQOH{{!tCZT)eknXW$~1$hm+wW6wNJUUhyekqZX z(FTQEYYNqBNHa%fAalfC&$0hAL%t<3wZEoS6J{;(2_uEegDb0xN9o^2>PfN1U`{)t{fZ zP&?_P>d$h!lQeZGZKKW0_lwCtDI^*JTbskmnhOc}sww?BNtqXcqVx*K$k5ibqn;hj z-Fa5QsCVWyZdVGKg`G$@hW^LXrn|lcBcY~mb2C04Eo7GMW0|`-<4^1K2Oo&rP4v(P zsn~QcBE0gWWT*#lz?>2T@oU(+Uqyi8N+yW-9m*l{=q*2=x2LD+Iz|~(XS9b*4c*<) zY88L>a+<_O;=FYzJVmPBdQq|h_v7BmH`K?84TPV$=qk}k!1n^q(-g(#4O!mLRQn4< zZrhLp;|WrN!um7OMTXkZWk;n!xjC~W7f-TKo7M}~k-0C7biU|!BU-ZWEL-bCApcbE zwML&hEhI5;)GVAI-(4GIhqWnMAfP%6_~eR|+>hs1TC@mWp;vRFuV1c-yUjii3$&OL zZH}8Z*7Ss0oL0YlkmymyQq&@-9}5tz{>w-Hxg_4z$>DnAwt{1$0G#{F+lne(8vZjelBywb4fUeOlNf!^ zF8v2Z0+lX39UlcbJ-rqh!p%zsWgYy+;1!wSPeLN3K7AbSf`MKAh(!PPyl&m$ODphHf-1akzSV-f_ zS88b?Na-?)mOP`RTlp;NcARSk@2~NrsIP!WsQNUG-lD>clDafOKr7gAo%CAD=|Jgk zS_+qWZz*-9cY)No@I^1$muOBqMdSTRTN?C2C7oRFcb`j$iMjFYrUP-l*Lec#u$rF3 zV*MfXZ#&wVp zW`^bm$uE66Fz8}tQ!{e0cJ+?}q`)+AA=)%irE$GHc?pwcWh1d5 zkRxF!R5#4Z%jE@s(B#&(_(H4Nrp7P@sQ45;ppgx9oE6H$*iJ5#Mm%z&YhM%z+ym7A zK8orxH2**e`u59que9`TdoJE zS{C0uIeMVkn_2F$`OWeKD_fJWb$cHZ{nY80Op7*c>p*;{?9f=KTdC^6I0Ri<_5|pC z`PHz$U>5uku6BywEZ!9gYQ~$`zXPLc63i5^t9id`7vy{iIbB&Y)od=8Q8gNz!cuj* zu5Tdg&xpfbXZ!G>>T#-W-h#8f{c0dnJB9=)wiHlhH@C_17rqgJr_XEU@C252yLkp` zgcNx^&JRidl5Qk;pt+C*DP@NujCBi^RKYfF}0ArAPh)qc<0p6MC6H zkUcVriF%(C^C7(3DSf?X)na`uB+@yN<(*@9s_Lv`18%Bn#gi^fbA`3gRIF)USh$5; z4JIm#JS(>feye31F_Hi6Fw|W8Bca!X)ZF1SGJ??-@q34YUR$J9V5&vxlmAcdXhf2V zo_u9}YigXT2iTfp09T`pogxl`AMUzvXLmMJe+I7@p2wMS$Bp!gHM0gyso%_*xAji0 z2n_c!g)9_5mN$13F&Asw6$;L{V9b3P8k)Pa|8BP<=xDAfEeMnR zqVf)dQf%4sA`7uJtw+0@t>l4R^G9sC1OI)IGKdOk#}tH%ZDAGEfQ`4>aP>UjO1Mv* z?C3)Vuj(LqCKI90I3JCSsrvPn!~GkXZ}91i;KIy>Spej}@|y(wy_R4YJ;Jl_m#D_# zx+H~vRq;vIE^*t@dJ!ix7`tMa`rrUv8X4FTwWBV>TZ=BwAr;f#+@R3&o z-Bu%mR&IJf6l*&izsYuCUA~dCx3rDM0F$bFx0!JtZVW5M!d+ZtfH?l3R;i^N znnkdVhN>iEdXRV|$Ghk*U~kTRhU{oNnvWwp?joSJq$IPm0W>$NjYH$Hml!y(9-53g zSYIEV7ykTmbf3}v#Zhm4RjQJ8uUO@tt2$X69^X2P2F4k+r7xNl?ooh z)Kj`uo-@--O$6hJ)cs8QwwTHkiyvhp*kXGsDN3EYQLQ+q%O#cJ9NV0M2W7b|n z9^Gc~{0TD}*z%HEewjCU^vUp-TWw`ax^)U=SPBbRXQ&76{;8YlFQr{Ms$K>TLs1>&s4-RyNWVTZq#lbFO31HNI!@xRcMRL;Di-Bq&;|E- zSTf(@wQtVOMD?KJQesQSNXoUp1PEr3s*lrET(7ye<$s%ewtGGNCVH;HS$Z2`zN9Zf zPXIyXJm&%JHWBk&H38+eLfsC*;P=!CEQkP7DIjG$o~-1g_m1RAaf?`MNJs^BilXK8 z>)dILNA zhzItlct~T!{7&GB9eJ?8(0G&WsvxS~W>jK19P(y!V5^Jcu=}++_`@cae=`0@SHSM$ z+ucb;{YN+}H6n>%!XLd!HqIH7*~#56dYvcFEv_jt-IeaUqMh+|-4C^IHMy&!+=8d9 zS-cADoMZa58;b5fE-$WI&tzLp^A zvAYh6^_Om4QUAIsLh!RH5h;tjVvOLJ`aTtzK_a>oPW+8#Z1dETZMqyzPl*=WBpe-!j7hwY})CB2mLRl@E7k?@o?vPg<4&9K0C zoM{Kgwp}+nrRfinebb%ej3$|u8PAcs$u_$3m3>9w`TWRA-T9gJ=#?&lv<>|iuP)j?OWNGneX$V9EVT+rEXQxcr)#F9366hp zvB>I@+RkJew^dBGAGJ?=!4Z@?x8SFz1yZSBrNK3(#_9r~kpxkl!W-Tm3YxsCYLg$GuZ zy<|UXIeRjT5^S-CPe0>J>65Ye(bDRhh$K!NUrho|IlNeVHBXp{6KknUTtnr%XmXFk)o%Z z>%}XLtY4x6Z~g-fl+qNPJ8_Cwqf}lyfGj>exte8aWoznQs2f=^;jlSouUDXbKgZ|^Ve@56 z=YQk();k&{{%YlKxwx@NIJ}}bv^PG_px28n&j1G*FDI*io9GkyX_q@!I)_$7J-T=( zpgGEBOx9KGSy%;n{o#Uz=CgS9gfnb!$vBx_@!iR2N9FE-6ej_ry1@J6p0*pEj~WBy zc?X2XntG4Dw~RHus0GJi>)R>j4;zAelM?6d0@^OTqCnd`g6DWg`!j2q)o=rbW4rPl+b2gVD~a_> zQhqL&^Z?TWnK|*QmwvuvL-w5|AE!*s?=6m2S@u_FA{ClQy_E4>X7V>y#qjiPa%WYE-!<5K9{xAvUSE}wVx z?ia=JpYyjO&Kl@Q57mNSV-nsaZh}01*}ePt7Z(&>YVV^o-u1QZuf^V|lJAz#jc%n{ z>pEKS9MdV_!TQMVFi4I7x+f^dG|o;>j7NDw;L|51mf%jKtBk|H1fnKk|ejWwb4Efw%UH^=+cn<3aIJIQ4JxAdHY&D~E(*chSPWV9Wb* zhfK42cOUQ_R<~PbRT>$(Y&%Nf0M;-4)j9F@gLjO>MqUSo7oIZeIWAMRVBU%S{+HiO z@yx@nHEdE8xzSN?aY8k@?2)IJl|sT-6F4BB-nt zD5lys1hrC;7*0b$)x@dw9zywv%gnZRq!ueo>)&G)bYJUK;}Z4*moyq!G9Lvy4PPZZ znS0{Zn+a#8n!iyhQRjH^sL!iKt=k;ptG#Sl5C|+>oRfYN=|z2PZ%ar^ALT3N)^WOe zCIb?wnc!?A#aE0}J<`<+>-P)>>i0aa9_w`;C+7ZprINr*?$~z2l~JUn3Y-<`6Di1BQZs8vH8Qab(%yp0Q>gJZk65U zmY9Fsb)9YAnb}@ zw{3FNTFiPSd!H22UuW&g@TWez?_+Wg(c8tDp;DR@{oF)4IK}uL@{5Nbb!MZB!tu0u z>5V{dS4WZN4x@S$|H%f0LM^iB7Vg;Nw{^bs=e6thrGmSK=BXV$l5Q5vy7kvi-p=0r z;kWL1$S;$7R{@wI2qC*n(>etb$ZD+@5`56hU(f+@;K$HEJ z+RCo2)Ly-g4(PsD7yl}QVfL=K8t5(BCD9+}bpa+kujQJ3`I0nd%G2D6xR7N!1_E75 z(t#CDfCP*ITKdS07T#h#!YWlG`#}+<`yZzSZbHX=_U7a!u6)&*2|1><-t6d?B?y~@ z2`&ClQZc6WH@c4HEkaV$tg>p#vgR>1 z!J{_4Zy8?l?WYWOEF*f_v!81J=(99uh{1NIruyq>uszEgLbVG3E}*>R@vpDcT1fEQ z#{|t8udnAw2R?peY%QP=lCg0 z5L5NGk7b5>m#DPF7G0b5w&Zz16i&96ZsV9R8UKQD!g-E}JLG^v++pGLt}$G=_11;}mG^ z6tH=$+rZjmPg(o&sxHYk^0TML*PZO}V zQx5H;Ts(y()H~lD@T_aI(Ut^R$Zc*Ts{c2*&fayMih7AUE>it;*i#TVAs z4mP6D*Y+i3;ai#_j;152)ftgB5Dn&pLg;En)RjkQ@>ht#_@#ffJd`=mCOtn;rlc>gL~3-k@RbpC!caR@x@fsT zgry+!7Yv>q5knQWrkA4<@J+toRB`yBiWK-7gxM=G*Mn6f?yF2K z$}`9Rfv{eR83{XDeP!q@E)NBc&RQco6cT0q44p!^* zu+h?$Xt96Lf#U^onA7cN8`}@>Q1*J8q(6#>-6a3y{i!h_o7Hli^Davm>qiW+W+te) zPoN$rSl3(Xmio%gX(uytfuN!k5U$ zrx_G}3{5-?T;`(aZQDKcksqPE6?h@Mh15joe^;I`hVL)&d}GagA+Lmp=jR|$oS$YoqSXG- zPbM}0iwENBqiF&zhvz}L1{1XESHRH|0u%cS&SfkyB<-{ z^*9Wg8$^9sxlEZ`6d1|6+{VeTkSuPO7^vZv{KI1gfY(8cX~?6=ncjyV{*(I)3X%F6 zd3q#g&a?IRo>l-^(`8-EeOu{zpT+N^h>736reS6zF$CniA41l(Dt@Z`_`wy-Y2b9- z^_4H1<-t5>VifwTT9~zOO^Bn|s|%q z$Nh8`ohQl45bd-QD}avO3gVdUe(y{lfM2rwAm`YxJ{SeQH&Z;Ae)ou#_A@!xo1W+a z`td_d_F>kYomiY@7)QrVDyO2zF-KI*`)xD=(3w`O-V>brr6NM3X9cbQ#ilhUiJ?TJ zNEJT%U9tqq2UXGqK5$&#LqL2m2f+WSx#N>iPwQe2^P|bp)d#66wlWJexO!nNUOSTA@-$dCP-Cc-@**>ezZ!s6G@^(k!bD}Fa25={jAl~cs6oH7 z?cHy6?{I!PJiBcwI1`>B2CD+0&Y5r5uo2+99cU3GNJ>P?&RE?#mzuU7d8b(Ud?HeN z7ULgJpTg$46Vab5?*ngRal_BRO%0XYS^lXq3Z@t^4xE_x!Kq4o1!fKkIVthsc3;GO zPWoALD@%?QQ`x2pq9Z(VlqgUA26sQFZ=Dx1{Cp6>yF<{-!h@n};L@*i4>;!jz&?uR zoLXqN!>M3jy@gktRh2<|_+!184auvn_xK>Z$5=%JB^u#iM>5+w|7d*59~^&8e|;Ewgp6ZmtSiN*j6%Uh+HY0B4i;%dh^ zLu7dd>reUBH4zSPnUii5k9JC2+YA&l)$ZtAU$I#8YoI!i*`s2omsO+ZeK3q+r*HM27A_)JDquk$VuX_hWY6`7J@>b8uXlBQ4ccz6+{5pLGpH^C4rj08zKQ#jM z)zU03dl$A8fv^|HBPDJwEr%0vOjMR)H!AJY|AC$>VxoU)5CH&`R0E&O;N8l;K`$FC zmSD->hBwa{8->yc_RX>}#Km(fl7w$rPGNhJ+(!z%cD|n8YJZ- zfo^*JPV*zU?ZnaY9U~5=%COc)3g4jYe%U@S838U5MUjl_>$~U5J8bP<4-scehe?Ic z19C7WG#%$>ptV^{4XCqb`l#Oji?l;3BzOsY2bc}YC~y@?8SftDo2d+|p>@92Z^5jr z+V3oJ31ZDF(l-JJRG28T@klq?e_-5MD(U2azfwHYFNJ(X-D}GCjJr}(mnQf^QCvb@ zurTwb`+i%Oird_Zu?UNB>FvN@b9dm&=?<>&P~zs=T(5#i@OD&%x|BTSCBrq|=JevO zOLF40kx+Re579eF`YG5|fR%~a?1sFO;Lb#?W`p;##Pe3*;C!ZAafq9Dbd#SOXfs;b zwJ5peofZuLi0=8LLd7~>)Y-+_LqCP;t&Jje74Cjfi~wQ|zv==n?`dqQ$2jeZV1oz< zppPx`tNpLcXOoYvhiZXYd$#0*aOr6#d$up%1jAPYYD@k)=5_uqdTOUBGPpq@y2fQc zuYvR0nhq4iPhwxa{B_{YH+^8Zw_6_;6(9Pv=rL4F@sVp)hYHTnnO2_7W4bs8g3Zf0 z2#k6DEcDz3CsU^N@$19+Ne?Ab&l=8G;TSp76AI0f(*@7*H1;b$!~Z~@E5i5OPY>+k z3|3caz8Ig7&54K8rV|P-otEU#_eZ&-+nyj50<64q>FN-@l(rT9>A(-uf7b~R{jq~z zc0+T7DlNtO@evI1DWazOTUJIld<&zKjCXWZhBuoE>}>OEgoL3?4SNpV3F6iaCh!xaZ;O%imUe>gb*P5m@xO#0i+_T~n-u?5L;HH)*Z9ph#fhF#n|BPD;3YZ$=78^!Oy#Ve1u zg<)bkX$;o;jCyFl_B;Q+<%tbmr^`hdmL5@7*++6F)%C54`^3e(b;((?-cpC71nYTT zF4h|RuaYq4Oo3M>al?=XxfCT*8G`38mwznD5P*jpJJ#BxJ%j>&_5b*bs^RV~9=-`R zI(Klk@(9cHHgQ6iYBDdz?;F%LJ-F#$nq4$`@sWrPb^a#n#k2%mOZ;wwajjpCgGe_KS^PV;q zT$tOxwGJaNE9vZ}a{kVds_Z_B#!@_ub}QT6kof^BS%!Zln){oke1f?7?K~eqefjC1 z$&FhQ#5>ean_;8MrEzV_1~l1$x3L$j7c(`xRR4j#%R3?-IQvpO zGaMH-@#0CASB(}qPoDaJTmc;nn5KV6?L1N1jT-6rnL<8nR3j#`hSV3y>B*D*4+MC^ zg<^=;jGS=A$JJ>!R>$4iVpY1Mzym46rhNNbLFB=A8xU z<<0U+dPZ4KfzYV73|*K+#1mjx5_cRs`N^S56wrAVaDJG*lsn;dEs+m(>-%0fn;}xg z*j`yFF_!z25!6RgN=-diqjwcSb%LIZ9~Kk8hOwj`D~H$;cE(4DT|qCEw9P)qxBl|@ z?UQ6wd6YR#e&=T=Xc1Ml)lr`|T&(jBr~9Vg)1ch-yp%j+D4>jd#dpWfSPV2{H}j?jhIFUEaUVS)9Pkqp+} zN4lMTtbFxZIjkZAsNS?A0!rL-&ontGfI7yNSiMTWdy>soq$Gdy@n zGw!IN#(7$w9W(j8lIcw~jXKj}vUC6IO_Q1+@{(F{@yK8MMqUrb&+53`i5Th1@M5%f zHG{#R!w@*Jr;*$C4wF&Zi3w{rPf7;pCue2lfVD5b;KLBCaV)GINg!~`heHyw#1=P4 z^MXj}{MJkC!C3GfBe5DEdMuA{q|*MG5Z{v{h&IKlJ;ccCPf1>uxB|RLcIKz3z1txO zu?m@@tK?%R#Y#__+vk6EA9`WoLtLU+a10}bIDUGn!I0T^5mbL#|Ep=hY{MQGvbEwg zrYk<}vUs6m_hY9aXD3DF#LK}Bex-q3BTk3A-2Z#UhVh#Vc9H;L{kEkW|2KUf!b1%xDv=5I<|%g25T|WYtXrD%8l?sfOiSP3rKX*d+ZE+;Es(!) zkBYCmR$TA<2(0IN50-b=Qek(qT5y1y|IS*+wY3O}*la>GB^+Z%FpF zOVDN4wmFf9z)&%Q)b!I>??L^ZevU#eB}+!Bu&l}U;V3Tqq?FY~-rMd+;n)s8%JeUv z92L}#U7@0VPTNk1$#mmu+y&%v=G>q!j2iEo5e7!uac&UG;IeGt?@sj1tiJ@m<~H}% z_4?`6G*kRbLukwSD+SkU!J=k7JE$K2)UtEgZ6T8A-^ZKYjC>M=){YWFY0NtZE^|-5 zabF`#fqyFNE+fQeU-^>WVx&2rrkr=4o;Z5PSzS!)Ybo1I+^X5ThvJlor(Unn8mKR? zfiSh}7bpm}U0ITnkPXz_M-$;UZ2Z(DmOex5Yxsl`6QJ^cxG7^`1_Z$fc>`X~7B;fk z5N5Zf?P*kiyD;7?LV6osO7~aq!6?|8kgjaDbtbwQG*$0TQh~`Xmw*GtzUa6-nNlX> zgfIhqKY-+X=&BG5pT>h3uEQ>vc}wvF=$Q=B*)75|P+@#hQA&Im%;l)m(w>d3WTRG& zKq9xl9}EER=L}PVOYuo9qnP&-LH549cv zCExGbhS@1|aZ1IRN==@n+Tkv%1@M@gU3|qTC;` z)+46X<~9cI*v%$cJc1LBN&uBt(UibZc6~S~y$dt`#$4IH8_n2XdKpG$7?&rv4F*N5 z^R1m|L0>|YYaIg9&fup=uz^8z=s5xuRJzw9?57L@85yRIe~PhEQQplU+6T@x5+u^* zF8zzI2a+<^1K5R0iinshcB7?WhD9>)qLM_*`+HuXS#i96FjzWeFdYFhRE}rOv zBoZu?;PQpkS`c%^UUaD8s*ztm9JKuhY8#iQcM||Fz(j-J@}5f+Rz?~s*Dw*psQbPA zi{!%(pyQ~`G%;Kc^vW}quQ=}_3pMkywvZurAyiT%k7;wVnJ|0ZZTB! zQ>-Qc1p|dni*k{XlC-(&cj*JvWtb7*i#J5FH5ej6$681N+8A{?)Nu+gCRd80z{qd5 zMZ_HsNzm}~7ZJA{sa>eylqIo*2sM|x+-%@EwQQ<3$b$GuJuJ%0R)U=BTCnyeIRf$U za-moDwq=X;=)IfI?K0yf!`^T>cTUv%n-2?5ULQY~7uytv*bvo=F(#$ApHs(Rn4$)s zgOu2u>2In-RBP}V!6%fe9$6`)UnC+vkC?tQFaEA#x8g(>I0!zmP_!j95UBJF@%ll>A4Q8r?Oh+X>{$mnd;a#rh+c@A{26}VT=VtLvN6ZW$G}0C)zP{%u#<EWW)Ys0vfD}F@c>o1z6sYT{D$cMUq{J3Ebl-bDPtUF@ZHP3pN~gWz{y;Ii zmQ2e%7xUz_$g}a(b{S5R)WmSlQ|Rk|pmhZz4feLgy}8npT?ML8(yrIUsa3wO63etJhg5hWk?Zcn0GP^~mzyWCX3&Z#AB zkknR=0BKG=s{6JWvyZBVZIc_Gti)HW8$!;C)42jTAE|C=n(8X8uL~Ts*Ym$^nQ#y z-?V@H-j{bK_o3i-jAN7_Ro=Lyu)j33wL>ijFha>s%GE!*Hhbq$A7QEjoIO#9Gk<;MQt$vyb`TV=fJM)>m8i0@_-byD)I*nb^*L zEAr&V*}t-A>adZxuYFw~uzouWlp_Ts3+&uJLefz++N|GCB;AI!LwPHl0AL*Jn}#-v zhf%EB&@E56Tv=4hglxToGObq~b>c>Gan|1&EFxBxW z|Gkk7#pk$bqV~Ua3?jH}Rd(2M`&rHMFje7V6TRKES#q;w5qv2@iJKJNdUTs1%++Nl zs~?%cz%*g!Gxs0J&xtjiwO)JQvs=vPF;_PEUi(eFd<%7@!N_WZ%>$bY~XK;XF- zQBx#VEU$rrVxeptr{D*TC&@231LMg#lh0sEPM$b|Bz5cUW4hb0)@SRrzNpM*TV8^) z4!=h}8Jna7?ejxN)w2lotY;S$T%AtM3$4XvR)c|UN|t03LY>J#Pr>|IZN3nL7)Nf1 z;@Q{7-x;0gz-MOtqZ4y@Z|{|8tPI9jx233L4bZUQF)eC6h*k=jTOfh4QI^xE$E&0W zh<`CU^6ZVwgGQRb96RS@c820cWX+3kO2)Ibwech9~fa~;1G^p|UvbT^*APvsL3owV6uwpUS2Uw{j7)ri#t_TKfU5D_QkN3}o7 zAtK9I$7{*CqHnOb!rnwtMExJ524x4_%VP`vDCM3T2 zjiiK1hdINu?^w2DHFT57opp8K+*Ki>O2(^Mj#?ywy)*wBeyof)R|2~XebU~) z?OQeG6eN(}V|&OE1<|!K4D)ZF#om3tUxAqQuXbLmTK(&ABLkmK(8&)Ly9Lf3&&B&m zS+8ftJr9JNe1$M~zoaWL^WHY$h4|kcDF{%#pZ=vbd$hffxuclFGg)&zCsWTRLA$Ul zS2C;&TYkS^w@dT!%D-An-_21O<<-{s7y1b^cw)>FakKtX=Y|av&1Z?+!ZPTl7q?7A zF?3(0d=B7AFSELQcy(GO4veM^&0F;qRd6%sg+8WAzaSBXjOb|gEXD`)@{{h*c~6`nefwm_H104x=`V^rzSTDh}w~}Gkw-6?piWQn`Cm@lUB@}km{0%uKjw9&Zo{? zTdDclL3j?=u|HN@H8)dx=-UIaZc9*VE*D{LviE11UkZkzA22>SytmtQL&$l%O=y*h}h6{u*6wKWA{kSe<_S1QEqg^r6hId1%(CMK8-rU9u%zdEoUPlaIPEtlxJC@FzK)fQ z2OW=QQu)N{V~&>a%(q0DJzhZh`bfWrI>I8(UGe1S_Hrae(;jW55H!VVVx z-&o%Jcv|$+Gqkr{_6|@p>VZz-oT=%q$S&~*Kbrn^BmMPH*YT4}!hn~UV%GQFN@XKn zr%CLBCGi5levLHv=w~O-io8v@UQ{#-KPygCUIFo~(Ul>%9Wnz2pa7&~xbMRR6nzef z0Mje(nsG2x?((X6_s>=cr@YI)nW6k^jF!%to}kw?e*wgBvK(innJNqW59HCo3SZqdK<0^dRcdl=yA-(3NYl2IIF8em;M4)yuoZ zdfNjaDG=&@_u0;83A*Az|c>`U>v@IWLDtIT@@J>*Xv2k@Mh1mVxja>PX zSoSb&*R2L!IqRcep-vBcD3&gN1b+hnQ~;KsdC+QE@jKpcF|)p=nSdn2{6!(kH@0O*8yrKJSGch}dtJecKQXll=txpa{T=xyRmQjy zo4NB9*Yh`Wej^a*fkYIcYp2iC%J%H8XOb&J%q?HG}AwVHE#j%ow`i~Bt5vkk} z)%6YyTH5ADH^knRbtZgLIeFn{3IUd;^5X#?u#!K~=ltER%BR;o9aYy-WYceSD)7#& zw_Aek-v2vE?#8oSM>WDq%IWGEk6E*r@2vgol!lcC6efysiTu%C5^(>qihi$XAsyoN zdUT(J;?!r^o6*ryNW!5_5+7)R#?~f+LO@q6eJ|?kKG_Ms;6RWa zM=^l%rt;)stbfCJB>T3R3SZBi8VD4-tmYH_pOeg$d_2O3BJZx{@@jU7=af+pFkrl! zE+Ze!d!91S@x8$d$>I3|XmZp-36mVO0P$WVZ7eD zx*x~~#`jvZ#2|Ql&;-MeQjsQF!b_13I7540^k4R`Zjr7VPAudvTnt2e_7AQ%a?WcX zQttPc_1c7gk>-jt`Sp!FVH4_+8Dhq^Dn_pu+sSvMIaodzk@*>yq=Gt4@@Z0jHDM3x zJ~6Iq!PGi*=QH{=4gDTsGTIL+qC!dJTP2x1mR9TM?2*6?Sdn1xO8m}WpOUl~aC~>WdwjHlZ~bzpa#D>asnoM9@y)9+VA2%qGn5A; zE3MMRn1hV0gSRzNZI-_lY`r%+O$>-VLs^pohR&06CrHC6q-!a0>fw?Ikrhd~(kzvm zCmoZoZ`(#X4=6>XrWIVRg1LW?*&Z1Gb((wX9BG0FUKc^tf}d|)v&!!HZ$s-Adu12X zznjpcg$2|)RR^07l>{`rLfrj^mW#kzk`2RqXugjz=hM~n3(4Q7z1pC%$@1#u&h zfqOnwEY$nNVL7D6|7hcVz|ijh06Ia%zH1jn6VP#5DWUjJL|p0;D`V8=fGNx4jeh$! z`aOvV+$&=hU9=AsYI|Q$y7FT`cn&d6o5$8r=F38`^N8UJjw?9Y{6W_EnZ=d6`gO$s zZYF`@Ehu@ncLHe_?_|_Bel^gcQEi}Ef>(le_oBz)mAlLy`swFA^U}L3FAnI|4YJ=-rnGXBhfd$sRtn zmea=ohU+FpePduG8cn-7&&V_RRnyp-yPjLGkC3){_O2G))6B~bo|WJDqsz|BaoW81 zF~~G)I@}cFzsNt9N5rVP6|jv%sl5S>mlW#(7$Ay_{ma#_Qrd zDFl()N3@PJUn^Gvy|M4p#7o&8jdO3hFbtR#oR|7uoQ%>xBD^~D#d_8E`l*Npxw&q& zDG6ERFPiVChJ;Q=+>dqDz9U-NCTxg))xlnTLe;OgLv8!8M@sYN)2{<5jSRWx0=g|b zL)1)PXg185=yB4v*pFn4S>@C&<;3pH#C7Z`k=iq^17NRjTJAKR8sh3>41^+o6B_ib z55wLI(b?|xYn5`G?WNCRlu_YhN7Q17UioaWk5O6IY=67fy{p9DAkuG8+E_Y>djKoQ zZyGjZ6Aqm#S~BJ$#(td8`P(M#S0@m&VLE$O1lypKDl<@})QaAf(BfuvGNQ#8KD{b5 z#E3ns9&JiSAsBq3uh?Azr9kUh@&PQWM4d1z&@|$P$#!x8t_j0Ul^v_N(Tb&ymcte1 zW|3AqFngTk#NK4Bw~SNm<&-uQ(=MU{<@WTcpjB2FuP&d$dJ^2z4jYykG@F=@N(zz4 z6(g`{zuKq+YeG1%Il5}(Ic z1-L)F&&yBC=X%Mu3dPp$|Tug7F+35 zf3&fu&ji_cD#$^H${4v`a6$h9joh#*f1~jquIf{#|HU_-jV6 zZ}hptu=O>i%$!d%@rJ0E_sA9^gSQpUM;oxnHQ0E_*geuEq?seyxdfP_W2mp0%op!Z zZwv4cMFefBL+1hIf-_#;FLb+DRbx=t0~oIjnh!qiH3x1;uWQmYI4y0&mofv8IImYL zb~$q`i&owtmPtH_qWOJ=Sk)cQnJEOR#Z45NWw~K!L3)c?bdyDK6aMfD_0KIHf1-G9 z>rxOY?WEc{QDDP;c}|@TP|F-m`k5Nv7I;r~`TR9}ekl<;DZD^{ji38{Pt9 z((U(WrUhtO_%_`}>xSG!FU;&e|0Sqdl-HGVH_WJo-_)EAQHXC!Ni` ztI7vz`Fmfx-KtIIw;AA9(-+f`V&INdYvWH7>L6+|9mC~r1qO$+crIerGRM~@zK8gB z?CmULo-5@ahkB2lZy;yEJuB(ohnHn;*;M?^S;&UZU-3_tJU1xYj4gbzu4)n6vUwo% zuc*96CcDxnwH)qVE5IMYH=v%FKMzT^`Mfq!x)IK6<@FDv$ z?r&=GJY2cVj97csrM66c-=#i6>~&Y45VfhevX9HIUh`4cF9>^y&&}9U{hZ_gI#r?< zZo&739D}ipw$9+RgyeM1O9hxw`@kzuV8ndU(yHy;g>zH|RF7-z80MxH!E=`TwJbKv zBYBy?TAvXe$F3*>fy3Zur9BfM?L3Mk5uOog-z-?$)_?``SMO7EhwD!=2l;9zjlS>{ z02RS3=NajWX$+t`fCV@(1NWQ}QM9O64}}$>nD%98dFxGu6+mjtp8C=i-tM>^t0DYL z1S4!`=mh|EW@X=l%|rH!YjkEW#c+?R>zDa>VcLVzq>Dk+ufS(=zM_CS7uGbjjL0R} zM{3Er@mz977Tzt*?^kU+697{++0Hu?Q?8$**sB+G!uFsJYHQ7A^BzhSQ`Z$FdIqa- z2I-1}TXJjqeV_b$sF7E&tm*todwGFn5sdvP16tq1dTanS*%B1>s~>34wDmG3-a9W^ z=ONRzol$^kN`utZzxYB?8+7+H0creK8w^`T^L;BCZD(7)eUQde70}z*X*Mb&F0SI1 z<5$ychSsuIq_$TUNdhPCnY)RVMK*#GfUdvHH~~{{V!GQv1$h9+Uyq zn{N(jpLniUu&RT_worx;E_Uz$tcza;Pbl+l?mqWw)PuwNUYbVZyFF+FCHz~g%>MxB z(d2Z%?M-_x5MN>EJ41FA(>|l2={P{64c@b-@q{w|?$R7>=+pq)KL&{zCA^USHLNsE z9?AU7f(3J*+gi2h@?k((ttWk2?9uS)Yq5l`Y+lw>6uT+Yt${K5=)J^0=%cj7aELO z=aXf?W$i#4HhLbNY@69e?|RS@Xt1d)RAaSqb~;A8e4C}1sIB{72*Vq1yO5ENXaViw zh^?}giNEPt<5}?zqbAE}%wy?YI$7uzKQYEdM=y!=t22m{AEf|)|JMB(0|%N^Kb1GB z=9~zxpgw$XZgGlm`KZSn(4-G)0FxcDj8it#_h+p%bj<)Xk`EMukABp+Z8 zri8~HwPS8ZC=vdY0R}%RO}+b7ot)Bb;(#mQbfc0nQiZ{%Y#x*j#2kuHIR>WMDEuf3 z4aw<9c^EY&M@ohH=|G5x$I_$Sj-4sZ`cnX)1?ROVY}17=7@&qHYCv(t9Yr41ppcwX zvD{LH%{%}&padN`pmy}9ZS<#c-hdN17y_MxieNb4^`~Q=DcA>O<0gTMIt&i<0CPov zLVHqUJ$h4#LP4fs_g=cQb>TsJf zGEvfyWkEEcGLCts?+1)iKsO3_?@m%j%6n4s2puUi)O9rZMPb0P8%0ES4l~H7=U}I< z&N<}O1&82>z+u{zFci{bZAQtfg+m1L4LWMyfr2H$#%IN%CY zVy7KN1$7O8jGidvKm(eU{&X1XDWj$wR%Hlz#XoF&YB>s(+B(x0C^0|?T&5Isp?K** z8EO<^@jwp+&XhZGV(nLjD%P6Nw7Ely)qPkOG(>bVpE z1D>LhS%Y!SIa#)HDXa5z;J{J$Zf3z=CHBC7`5-->CJ z?ZD!knAww6%4jb5-+}?D50tBg7^>tc90~^msH2n%AG(n?5t?t85|5QdFg6bu6)LC$ zEs8D#L6uH6fkVR$#~1>fRyhY429Xt1?deM75024MHjZirw^SV9`&7bF5x}Sz6Z2EK zV)+1!A^<*=&$2{D-z9|h@69>ToWRz@2mr9$AVWe#WqiGKrW>c9?hLGV76 zD-SSWS7y>|BBWqWHgup5KAYk8mhx?kGKz(M9a%)*yOE80b11-IaB3hw=dW&CJ=0Vx<4E~D#SpvtB_$}(!PJ21?=QDi%_%@2TOjWCyP-;Gv22Go&qx2y-T zuUpEhZXD*Kjf)%~lu=|!mX%s8y{M%JSD9km+hs&l%N&LF zuS2o4wf@e7_iOh@YMAMEPnKwb$mxo10VB=_#EZd#)@L6|zYoNCq#re-XV_O}G6CRWbp2q z8w+lrQS8G*0C@iZMGLw(-|?x_;wFYUbZ^SGSHl`xF3}SHRS*0kx>}rloloIMvkeUK z@ejkfKO+J3sp0XLg|2cLijR7o{3)c7k0F05r#FN2hFyXX54A2v79~C^@RTYn1S8{zEf%3jE6r@*?H8`kkSMzkXA@KY6_1A`VhmspYON>2O#)%H z7ijv`F{k*&2q|^VERgu-KlyJ(*u9!0e}g&}FogbfQ~ngrh~IR!Y5DQSIk+HHX5+_^ z45N}L=3(rSk*xe8v9Pj|=H1y!4D(zUf_xG@O?h&jcF!Q-pQUA6UF7}ZOmkG?_&Icg{dqOp+<1@1=-Kkd-}h-_ z@kfgpcF70iDtX1oabNJLBv1KnX@}tz$mTnT#de3qn*3Zz17d~owzC#9ZdrbYrZBG~Pad^Y{50_fHjY$Rs2?8PfFw3wFVNDTi6d?enWLCJndJ@e_r%J$L4owD zP4N4~`NFZUU{8rDkh5BG^s7JcvNZ5`v^74^J(=Q?_!GquDB4X?e+&4g1_Z`W;a>2+ z6128Bme&HUk01DX(|439`%!WqKYzkI;)Gu{qiw$3Y0IW~kr0CuZTfRxL&M|m46^c} zTj^5G;{N~&$O8}w_7z^y70S<=n$KU`#4n$vIyihni?G1>`d8Btc$>nFf?ZU7DgOZQ zllVkGmSjRbaYwX4%Fmd7&#wcK17Lr%Ky7hO<+fsemGuw&Bz_RxuuC64)E!U4IpTQ6 zeWsj0xt=Iwn&3#i9*MzoZZX-X1GFiMeC(4f-eiXvT%TK6k z8$Z;y{qtW)d=I+0dwbzB82e(h2A|=nlO>}E(-qlxM&C=cd6LMe-_IV^$Bq6Otu4ym z7T^9UX%p3#`Pa?%Lt+e9(SH>2FNZLDu&lNQ$Wp}AY~iuT6`05Sie~ekX;|TL(weHr=~^Hjjl5!|+NX|{7y$-p+geNk z#%KhD*n07bQdxMXc?B2L(*rO()UhCNREDFSxv69-Koq-11}Y6u$k-^s?@I2;z^Eou zxO-HK^Zpc~G>KhXU~$^KgItQ?wFi?tn)SA4OJ*I&uMX9(-E}Er&qIp(oQ@pK@$*UY z#An%VJK~xlxf~1%i~B}I`_08a`&KsoD*E4Mk@Jy}BExd0CI0{pX&Bw^z$cG$Pa2)L z`OEaD{{U=T^;YZbDm|Jsu>ot;Io`wQ$NXwlxw;))htZ8m{ikk6U*${}alcRLS^G3Q z7Jszw6?chWBmJXDy4I`rMa-lA2GtO{h_2ItQY7}kZX{947Dc7;9=8@eyQv5K2-UUm zw~1mOCH%jOHD>*y-LbTR_*9>{afaveqm(R-xc(vdsx-=K5@+h)<5pq#v*U=ikL@WG z5B806?*+Q4G2*Dmkw^mPA3;&<$I6dWgX2ezqg*DY`TqcT)}%ik{C@;nPNO0J0D+qE zq|@@j!Q!WTIKb!)9E@C%J;ulOgYooCCjQWVJ8m_*7wtFk9Upq%z6bkN^L%L-;0`@0 zxCHGZ3suU)*~I#RKWh((NZ1#TT1)#~d`g8uH*H@dym53)R9;L=$rM?Kvx)YUKek`Q zNYG+pasA*cRv+7I$Fbuw^!63->qQY!w-k>Igbqg@lv$DN(f9m6w?B=eV8wTTz*qb$ zav$5H#KAsz#(&)v`OE`=2JR_#0aWDMjt#cV(yTUtxPF_dlSe{ic2x$h(d555!f({i1#uumyD}`S%t4 z^?zyVgoP701Ky?@wx%1Iq$AkV_Rp~%$ISkRA^7v~+Ean4Mo8)N3b!}MABNW8dHSp) zJw9cx=XHEZtHKV+*>v&iz zFzJ*30P3x_Ue)uD>}jOxnt$y70H*3XqV1Pfnn{L0&z7JC{&ngP2`+1QEK z9Ey&t^%VmyI#n5sAPy;PIF2?Jc?gqNznUK7!H`E;+?=a?MO)f015z4 zuM~iHr+_#HlfM)I&;T^J1L;S42tDWk`As3@dQd>5JdS7p0|$zJ1~W`vDZpZY0gmF2 zdN%q}U;#)3IHMd=^N!3OaP6-~%)saf(sL z6sHvVg<-fLQMR4MCPz-x`GUd>Vt_kQ(P=S9FvSBIqZp%}y{SE_iRvi)%^!D~U&D%T z@}x03^GiH5IO88m06~tXn@2eIrJzHHT+mKrMaz zp44>Xy#S2!(tr@3N;(c{G0)PS>xuwQJ5VuB;~1k0iV3iT9cVn!!0Ac|0)dSH4ry0| zM;N94R162dYD#w83PGPr00{mONIGJiag0-T^FTBh=jEplN^ft{kJ5lb{b@k;qd%P= z(ts1|K%?K%mVrc0qL1#Qg)|fwE$v(8;VoF;+_Ef z=`epP1kjvfmmR1*F^VY;!ht~?(*dW99(zy&dUU58VvG!AQV&XExT84YlzLIqfk}fv z1~75yPXi~~kQ^Q=Ks%ZSHyHc1I#V`*(xyS00DND4Yvga+NdtH*P5%I{#=gFVaUjin znfqkhnS2dnAUN{otT7)6wGW8=ht_P;=fv=%zy%j*H9{`Qb+P@bi%&hl z+ZO_t?8-jz&0V+Hg9^By3h-&)^3rdbv{E#WlvZ>5I_96I#k%2v$3-1$nYh)p zonZ{{Ah5MwjNf>Q#tUO;M0V@;`;pa;K~|?(q*&ijm&#trKoy`C(Xsn9O?7mC<*W1+ zV(BF)4fOj!>Y|=zx|eOeiijf}WcHz?)1zS?<9Besl>kH}Q39=mSO=>bYb!<-OL?q& zcBz@h2)vL)r=l$^07wszzEY3kK9!&p+@}e0cKZsF=!tDjyi1NaV^u`4OLWTudGZc8 zr(C7;Y4a?EBagb20gd7IiC##qRL>&)&^lLCZOh_)PH!d^{srnqa~>9($%0f=%)zi* zxUPxhwYPsVXZuX8{63Tb^wgT*h%~EF6e<4zEf{lDh24$3rRIOM&*(Z!|C6r;u9@SO6(tc5uuD43? zp0}(4`@bqL@7Jp6UIVbxlu3F%(Io(Q_LJdlV^{mJnB(;#y<0`_Mw_Q9EbHgX>Us+F zQ5;am$jeJK@FhF(9F06r@_TSWpT3I|{+QHefLN+UhaMOa1=4@LE@49I+yL&?r7 zI{2!`ob0N)w!Ld?{#CH^U)s2xLVZtDAHDs`3IO{z_H+9k&9;Br;oqo%aESh(TinjUuv;gC$(z?%&?QlK_>Tyoxq#j;2`!MTBDW8#w z6qX19VeeXcZL*@zE039nrDEGkt8~%gwbJJTMaLN8yvmc*>WZ<)czWTjyj>B_2JBb8 zY5@(}HvSzz74xmBxR1qgGLB4xBig=%yqF1MAvyt9Oty7)vdM0tZQ~1(*0f_G`M7f- zJ%O%z2lIl-G`?C6Fh1>n1DI0ny zr~Rd_3PWKQJ?H|=lF2L?)F<*({{RZqDRXTCi1g+2SobxhZQ-W5aMzOO+Pa%i};03g~cLqi73OOkfqJ05GIOC*4+ z1sD}}H-iBP;+)%j!L;FM0jjJ<6m1@q*%m198?Uukmk6PW;-Qt{KpoftL75`O8>Vy3 zHJn=fg@S|Lxy#QHSzD7Ho<7knVNGkPYG3I(wEqBQkFXR0)ZX}$OtCwE)?=`)e^b7` z*6e2aJcv|fdsI#RnFJymSpLv|y;0v8u5AobpCvKC9CWP8iNg4GEf)HDFUghqDvp)u z3w5YWi)W<3urK$qUTxv~t9wmVwk79p({{U>0-jnSbo#FCr6YSA@dQedVX|Mz4>i0h}>buA{TcenkOHChY% zSR}=zsh!915s^~;lET<|y1mxbE98Zj`WG+3CmZ`dWF@de8&bFA?g}V~a??E-046Mbpl2 zWj9j&b5;$mt9%3B-2I*r{34+;=z42zg#D^tOi*Z97x(hSE%c~7h`mUvbJ;~~Mc%J* z=P2!-pM^8e@de*Dkq9DhTGp}flv1#pQIVx{+qD2;oq44BG;2~p;2c%hJT0R<^me$d#+p4G@f~-5RK_3FN1E15pJ*Vl|aTt-k>!OSzu0jPK)f!`A%~xj% zM&rk&09tlM`G+Lb22+i)aaGKPoBf)NoMSD`BxYDIj(Un~NgFOPip-l>w}fo(Sh8PT z-Zsb=0+<~e&lF(pVT#3@U5Fi)>$tC_R9!M@92=J4b``f3g`8*%Km$M+i9Vxw!jl*^ za^FQE_e^}xt#87LtAM$wQ2A?y0)Q#o*hL#>Z#{>lUqwLJ2by$prU~y*L`j#X251u4 z#PN9l06|jSs~5p2!_7s&KDE_&mekx?I8rd8xbFz+Hd<@SFPtImL2F~v;f;)d{{VKp zAL3MgN5nr3-R=?P*>@hpZF&}?@efb5ac^j*XJdd6SBm^mxYspH-78U@4YUg`$o~M@ z$mIT1i9V8_#9Bs~9_j8-vZpE!HS-06`aZd=N$2>ZQ87Z_b~HN%Jt$fH z9pT0MEEd0Mlc)-JoYSwoF|1xrx~GVB7xISz7ljn$zwo||AX^Al=I8Swfs@*5UNG0D zNbD_!n`XS6j2>&pH5~@S!`~RR`>kF6)Ym8*lkeKSuEK8`>vHUcMVtq{c=w2-x6pno z==VC?3&vC#-N@kfplE;g<<^t&g7RGg+_91!yGs4gRA#+RbiWX568*1Vz7~*8(G!j< z%cs<){{V%{dfGB8wd5HDe*g+IUa5DXYWMDu>w1xj6#$Kc81}6MW#_@V48>wodpD^& zs>sy*RjR~b(XD>VZT;q43{%b5g7jxG*+92fBc^%gq7wMKR?1tCu-msl4mh9+$HUPG z{@3D*@gYuj2IKOlw}^DBSi*RFPkCRaO5_Sdpy@U(=4-c}Y=e>s$fif)SP--t4VYzK z11iu2(doV?)<}}}jER#pqJemN5{t`_~P%m$w*ccVMF-%i!ye+6+N?*ix{#s)pLv5+#@fM|bAdf+` z^3}hK7y_zI;q5}^VRhmQ_QC3);C(0p@YMVvqOaNQVmDK#O}{p3w3?@ibi>#k$e*^y_c3!v6q=6ahH!m4c77>$l!>uQ=Vuu zr$*DGTW=58dGn4wRjWErfMk^Uy3Fq*cNyZl-7iDaGt{=mm3#H!wBQ_}zAE-|rxzm)({0pHs-qi(`9!RuC*6~H85)66UB zO&OvU!*;-^%AuWBPm~rNJt|#TX;)M(=FwU zthiCZIW$S)*tZqX>`7z5!tq)9e};TBpxMNAYriz$93GkaRLSDa9uVX|N>Z6QQ(dZr+(U@H75{cv;a&yg7ll~KJaQSg5w}H)C zhrrgh%l3_O;J>a-ZxRKY#`;7*xX~>9)*UvAppWC96R~I``z&LQM{3t?d%{`*`C4>I zE01cHgt8|>25TWaDXZ#g zF7>;|KznD3wDw*O(Bs`Ji5-1t0=xLPUcQs;+C86^9B{>Pfl;r6HOu$&HM_&Hy90nK z8N71<{mzML!0sv~9zF3F?il@&1|N&a3_`sSdU$FO;e2ZwA+j)Udm zuUdRIvRoV48sYoyIj-W*L({bNL2DAJ9@H70WLL&o^qXD2$ez`1*WsaBU*Vt(n|&ut(~%O=*&_+)D)F40bj2evbkFx`vRo&Z$lF=~<}Hk& z>qrqwo^VA~Td2J_s5Z9ZRl3kjj;r9CNgu_au?{4G#(sjM@#={FBVRi8Y=0q5_&qSS z_`9Z;A0(>D`HHjgPR%X8DN6_NxK_ZdD;m<+_=Do2&kv42dBW}+Yw8^mVL}5~Bm~s->`3IPVjTmt0^kO7m#|QIA^fJXfrz zoZ=ypMR|O)T+Zm-Gun=$TOG}<#1Sg)#co^b=$KTlI?B#jc80FL!pb;`h7|yfc<=6| z;TMY1w6nUMvvB)IrB7`fNI2_SvE%?)b6P?HGs=D;cuoyk#hNI#T_E{RE9CplKJ!Vq zFzN#bo;_>t-EP%ovl8c#jMvZJIq=1%w`$i`!}qc081}Cp5&OEH@$2C|_#P{2s6b)B z9+hS|L$TwfVZzhcNNwf*3f_w8OnDS~5Ota+r)8$aBizI!arbKd-;OV?EabF`6^(Jm z1#rNPrdAovU$TVi5-c!%`Az`ztZd$;SrkRx&f?Ndw~l*NX>O5sFg|Eu-o5KY_+jCj zeI4~58C{tk9C!G*!z5v#Bs}X+_2xG=mJu81g z_)BMW9$jx)7V@v~0h-OX_>F68WG(!%LX2z#fnIHU;(c27`bL487-ZvMV^RCwZ*^Ex zH@st`X}VqdS!nY8tQEm!t~PrqZHN~UV~!1X9tfRM`TXd7)C2gr#Y^Igm@lQ-Y@-TD z>C(F6Qc==Ie#rB;gU$=(t!mln!XcLX$E99^#iK>fdeVDUi9<20>*B19V@#yBn-9y> z*GFp;2m*?V-WzsIvEftRjoOl};Sg;R8x?NTz;oZBC3o;y@`lE$*{Q^~5vA{a2> z({Jr0M?y|XpbJsFQXn;CPvxeUHsqYwpjc>HGO{(z%D2?l z&Yln&r-)`-YaH-7HSD&(54AuyOLRa_TKc*Vng@$jS(SbuE|YBlwY4de{o2OxF05?R z%Zy|W^xqNqaOw8W^Gm(EX1M(_YoNYOisk*Q543B^c%ItFQPw3f`THaE6{81+Y@=P* zQxof6O=JH630q+i8FG5pPTD7nB#SQYMk}c1E^>8#MVdebexy@-D%vWk?02JUDT!@zA+&k0Idsu3fxbIxS5+iwZPbTzhA)e zt@G)DS`zCXFPw)}We2dWE@aXt@m7y%VTOq2L0lEQxtl#g zCt`NjgNfw2;zVuQg{5LigUoF^2en#xQ($; zlfRtM1cYsrXOT#!_rZ_drA+SI+McKw;($4?9O|p3Xmd{&%FHk;;yq(C87Fq+^IuQ= zWw??%D{FN)9mRa9s%{9Ftj!NW_<4OCXKamw*jLux0Ac;0vZ3O>8Su5r$8@DfD_>jq z7hU@{$s`~TN+e>BtrmFhN3x2|m_@tyfC1XP{rq>P$8LP70o-+1H1SN$8yUcgp&_FPafzywvrv{W8q;GasqQmkUjCH?2maWfyOrj0nrxvh~C zo?UpSEA1P44{CZDa~bPqk)XlcYQn&FZVEQk?Ha3RJQ_(SP`*-(iZl*lHS+e5Dkb?w zF_J1>qZ@is5rOiKXy!B&N5DPJ62w#oi02f-O5m~Pq*B?+@F?a2J^26;gHBO}^Ej#G zjLU+j80$=pe7)T6T96bF7C$JO&mu=x&$s5kOkdy6OF!*ZD5*k(;z3VIf5-nQq zD`g(qgy|a9-|ucFDoW7?vF!Xp6O$a7k;Sm^p% zmdMEUpblnDV_dyVLkUkxmOUF)x`)lXkgjWfKM-kfsdCGoOjcC>C!XQ4Z3Y#4Pz8v5 zH*fZT-krzQs^li0A{=Y>F$a3^KyFZxv5%rRv^o!sUwbU3G$(icKM|TgP@b z`knj@7v9G-0nW$c2@V7?9lpY(Tm5TRB_Umid)CgKWusUiSulNS+3_BUr^G^mKpgeI zh4o99KWLPZT@{antzk^wW7@f=@rA^{E}n;Is06+y)p!|>KUx6)*Zmo%@s25&D}hhX zLE656`S8K*PCYqrvSYTC;)xhZb3L4Py-*1)S+-QMgTZ8{1I7z z&H&_8m;`asnhr)WPYeG5>Y!;2?ZqbzQU#>O(LrNyDfp)aOlFrI{{Tt=U{TQ1)dnd$ z)3ZPdtAR!~nm2JuJ?H@Rr62{x831ug7!R!gKv(dj0~H}7jwuNApa}Mkv~!M~DohGb zm~@~B@lX^b@m50M@kmBFpr%yYO~-6ijOLebtp;roi2Krr^H*b!ceP370n)DEk)Pya zkxbc+y(>s398*jKtrsYwsZxmQ^1`B#fE-bBS}J*9Qwo4;-rn^d(a_T*sLPX@ZYtqS zaZ&8YS^$d_wD35ljHTLQ;b!(e*S8rjMjuh zikTXt^Pl#$xZmR&X#W7a9eluyRb%>B(0{c|yS^YSf89}EKN19JJ*i>0VwmPuZdRki z6ONRM@7kp!_=gqTjK`2laY(8*V;H3w#Rc{#7^VY4pRF%Wlz@_P(v*x~R)k!UHe;Hf z%a3mCVyf*0aw+0Qz*+~&Ib92F#W|3v`qP4Aw<3_X^R)J$qsjbo!F5X&Vf<@ep$^xy zj|2Ecd4G)pORm_VAH=`Ty+$MnZxB(~RL63pDPNNSP#^?yYGpX783~Sw5cCQAHe$42JV8DiB{*DaZ*=s;-f+6 z4!s9zi~*1bYIfNNxTrxY*`q?NiNRyj6xCMGG~TV4_@{7s^`Jo_sNhnZ2>s~t&)%fi z*~d{p4UKr`tsqh|Y5M}4QydR zzD7qBIt9m<%{Bv206C|Z0N_&!hF+MVMtH>$0`MqTX&9nEl;9ePMmq6QZ5>ydqcfZF zS!ndDf(CLrQ@kRqG&_DV^7N|SF3V{0;9%9?3W79f1~>^>nj3NhVEZW6XoRf z&1A~WlgAZZNJXnQ2dL(@Qcb6mSr(DuGJ4gt7;l@c9ZM`s-#1LvGEPSrt3|q&98^1y z;0j0x#>E{v(l7@bYE8dB)56n)YlF6_0N0Jk8%-jE(T7R~Q;ziElS;xJoufF-2$>l@ z=`(|hcG7S&fj|;8W;G0_it{zv{x;mlJ6HNwrbx}@m0`tslskXnGHrwIr}U{A>AOi| z?NLj-t_Nz8J^95jmfmPH7(QeG_NIA__kAi+QAUKfBjup6GEd9ekwa$-Qb?h2SBi<5 z(ByMKyArqqIqOyWI0l@D%wxDyFgJ5R^hK7FkiDrh=}@RXohm~o9ViV4{Kka^c{Lc_ z!R<*-H2u05%q{k`Zi$gVr$0LF`x(;|Q`cv)FAdu1QpAIMhg8q3fkBT2L8hEe>5YceYE zr=hPaV2cXDo0!QJ`{*AIrO(>98$5J0WGd65+Ud3UG{zCH z1DaL>AtZ`;JXG7VPI;#JN=Fnb05L^@B4%XR7BNs`pQTJfsQGFY=d~6ZC5^zP&gS4$ zae#hql$krSqlzpc*ul*_FLO*ANdSshW00%TmVsbr2Z2ljCz=!?Vht`neYEZYfDTwu zoS%?zDKb@x)4u0!DTgSr$h)`|DMbzKRZk7LjyqI`oD;yHIZH|o;f|HTc>4k<06d0T z@8ceez^^~}hr(Lz?#n?(X{7=Emk#01(N-~&!NozRDHbtg@w8ONL7oKwG&`xmr!#Ns zN*f>oDN2Av1oDyn&Xldl$?HSmNFAsyxS%;j-UkDUVJ8^|qY5PJ#wqw^&!r$%CUnXS zaZqhI;G4stgcJ497B60G8#ZG`p@;Z(& zOS{YI#Whn6gV0ojA#O!kT%%NBhsGE2LrW4pkxuoYAzh3o*}d<0g+CU zIELN*X+{{~M>QmvINeB*q9`O?+Xe+jLhuznQRzl_+PsfSm18N-Pig?q*7iZ6UP!|q zxsxCF&3LcC>v1irb;o5ze8Sul^=eSCHP(_&<{HQ0EJZ*UeQUZmzqR2Uq zB0dMdMH^-~uSW1jgEpNcjVqSox)RDG#wvR$W=Sx-3gX4BENe*SJ}JqK0FIwB{{UL> zi#N)t^sjIDtl#k=Q~l;&>s}vXKXr=uyidk`Mi2OC)nJn*;o76z!{r?*su_3`*UM&9rQn=~`RMOG@-5-}$yjZ`vK%aPZ ztY%bCFqYy?r*Y0ZSJpobWsG<#)=+uD;=V(yL(zZ}4@tPgVQA)zd;& zGOrt&dV%v`lW$BM{#Em&cuUEBHyZjoRRZ4DKst~>ABB9~Z5e_h6vb1DevQILVf zF~JT9rbmas#wp#Zy2ymw$(ulV%bATy>3i%w05Oo}R zI28QKI2|d6{hDu>*}y-ASeZJxW68i2jj@I)fdli>o)JL;vjw>tv77oK@Xpz*di@Nqqzxr2{09 zR4xlVfJQs^^`~o=UNRbMy4^fh zFKHo&6`kSHK-4kD!0L%GidqSilr~X>nAu_ z8F5=DQt{%ArARdj_=m?3WHdQHN{?!3?2d9zgTYDJaKKd$_*3(o?46Bv%i^yX$IP~y zs#WoiisI$0GQQM%Q1(ZjKf)bNd0EZ{Qy&U-o!g_5y-)rVt$bttCC8s?8^?Ntc=L4T z9>7+-#&$fZz8P!d(31n0ZkC0kdER8em(?|D}hqZlhx<7=Y8_9%&-xR^&p9jzT z&>}wkVvb}U&7UR>MrQd`8a~=n@9s7Ai+Cr(t@Egh@Wod?3Gm#VBUbuT=0eo@WNKN$ zs6UkhRmMYS(!Qu)hyERGui1wlmBeaZ0ntCUW3faCALgR*9=(qd{?|>wWa6exS|cFO zO8O;!6zD9u@~SiNf5Xy@1R&I15o71cH3&=a)hcRmfr|J40Qgio60YAUS{BMX0qIk4`5sg?D|};)DNd(m zKvG72wdu|9W+!YUtfHWo;Lsc_#*2r@^QiA_m~*sLPkRnx~5#qf_*kOD5iC#^NU8tPW=ZJJ%pk+<`#^aJ+) z0QN%hjn9ex2x+!5fDV*=k$?cf9DgeMFC260UOoFU{4|r{m%)u5!uCTY?xMeImpvDE z3IO)6X&_fsJ&roNkP%EihNL4D+)_d#BOR$R#}uSuh83Zi9^BIQ`cc3?S}?ev2L2eM z80k*!Ns0hwJJCyuKS}^fQN4H{Gy-CdgEYTdFms9!2s%;#af)}RYB|p|0E3TeU*$=F zdUmDFBCH^wjM1EMXy8*7gdX(l4%CB=w1cGxs|${3&uThxNsLey6!xItbQEOJLFqvv z{VAOF^rvGVg)g-O5RN#e1<2-~^JaiMkxY@GU{Z`x(w9B4#Rc-Ac%&G|6b^orV+N-{ zuxGbwF^nFRx#yZz#}sG+5OGcI%|8_0Xh>EWif$@iqv=iULqTDn9+VE4G^CI?qpz{2 zVOT;rz@)$f6ue@Ta6PE7tR^}dOdJ|+Itp>(n5+XmDFp!gaYhGf1kkPNNz;m6_@K}* zP$(GfM@#`n7@#aB-t>$PDc;na&=wpH1`RL+pK4G$(~n95!ecbt6HX%>W{#8$Z+>Xt zb4k$BVt@j?Q$|;g)gt;)jB!rjHyQS&0~BL4;4w%-a0MUEie4xfmq(4LfXx{ED?xIN!1Sj9?V3M}Gz|BkVq?;j3<^Qd0-iBZaSg^zDB_TG$fF$9 zAP{w>?Mg>DrNH4k#R)pTd-mc&xx@L(NEd7!;WFr(ksHKnxslM?-^708(QIns)&x9<;pm6k|0& zAf-9toq#Ch^{4_f{n|`pij?3AZaB>VHw4s+=|@UkywkY08Jb*iigzD?qO4)mdr|eE zd+;dsq=jKf#T^9zQNigz>?dkmV;HA!Ptu#yG_?T;rvZ))1LdImQK*C<4wUYA#U?S* zmZ&*HCWFYu8RDE25!Z^4w{gla1wWiqaf*{~dJw>MsYOP$JY$}eCIpfH0IU`BH|=+B z()=>>5M;+Rf2qZNIE(WPSI-}{W>eu^#Dl8I76<$YR#mwM}PGPc9NHZ9)6p8HHoS%jW+8#J=3#OyBa=$4VrR z1U{>CmmMNbpGwdPmPm}gUX^L~nPdC%y(5WcxDTjE2wpt2=}r<#AulYSWQ6|!0**~K z&K^tI!b3Mkl7J+RDZJKLF>4oM)eierb0lhR&OV?|OQ}|bbR$}u~6EmvX z+vD!g15R8l*UzzW{;et^+m*h=o=hXFQ-0E%$7u6R>(@kVbZ_3O<5 zS+}~99LHq7La_VIO`2V{GU5Em&w6@U-|7R*y2KF2E6eAe|f+$u#H?TJ7h)X-e~n9gbP zisBbQHblEew-q3WBGaR_kv?P6oc9nyaVv%T)e=P<8@isf_l_8tnOG_Q{bNI|=~muY6Od+sGob{rmLVE1i~oXI0$txU#p;BfV6#HlZ3F zD%bV?k>V za600ssIs@1LvDt49cbkh&vy7l@gqd|Tj7mrYsem1XCb3i==c}{yhq~K#*ZC*Qt<81 zg|uxm$y><-6^S=C#5u(!{10~nE!3V=N(aa*sQ67SrLT)3w2mFf@xMJgQjp+$HLQ3~ z#=aa^mr}O!M1I{Xo3hol86kONQs8ws>0fC4choe@U)w}-p&Ori`R~9U9{$nroYxVk z1i8;0tA)Vpi#(e}xVn>GN#z@G!>xS_s!CQ{U$dRXz^^^N@cec+u@mzU!#EY`GOSH4 zppWGk6zRmxnwIwakxkoYo|V(vPvz~mvyWgu#aPh!5jf+`ar`yZ+S=ag3G%0ug1X`% zqB}+TuVmiK*j0$W*L1-xA}EKU#dO+lhizg|(+@F?ZzM>k%ZzLb=}gS!V9*v94|EKS zYpsID-YC_SZ6mOyMB3jwZpBHFwBmpjWmwK%rAg*SrlgNVl4(OtCj9oG2yQi>H2F4B?{?|!O^Zs@ z?^u1RO{2ITmDF14@LFWW5DYuj$Pq%8&KT6h3@9{fJ7a}hf$LiFTSFEde)nwjshTz1 z06D4R0pFgKq6K$|pS$wYg}d+%HD{QV?;~pW?Of&eh^(!ctS#ohV6|q4P9a4na^MQB zd#P!bkp`WVW3V;ECZXb8LN^!|aGsg#il_EXFHUbV_Ct3wc0DKp_5T2gFK?LJX?Fhr zAn430m)N8b8MSM&5BC(}t~}S502^rhh>xJfK_b{&;%Qt??CaH`8?Y+QZIodYR?cwGZ6dA%-tn04IjdEHq z-nW@2dg-m~t*tV)>JtyysDYz^wqVWIuMG{o@nqP&AnN+}0J=xRAyuQ~bxY^t_iJ4s z(x8hAfK6S7AqxDWfH7?}Na8~z-@I>AT98E&W6EA?ZS9|*r==*A1{+2Jpa`Z#R|b|i z3x;4ZnvvAZcHDB40qVX=da$Pt-w?YwHA3f5)2vX-Jm3-9xV=lqk1zT@iE3q& z*R=q8OQbfb=UgyF99KE0c(+2+eqT5=jnEEFaUWpuM!EslEIl!bgUJ%j2mOZyu zJ-hQkS1(<7y6ahQvFX-q5Pj!i#c^=hMB2+;>a+gje*it}v5Q*Nt|9VavhtyBtQQr= z$)ecZYer2*@5{GAk_W8;bF#J8^bH<4f3qyU+j%Y(GP{7!y?Kwt_VHEymYmmV_8Wh+ zD>pd6HRws=O(#h!ZJ}8ksSg2@rE$L)2Z(il3dbeGEwUuaSzFSfly>&kJ{!~Y>uI%1 zku;uKg0U9Z>l&Z@E+~JpV!)E$ z13iB4HSSlQ9lW?$?)*)8gy03}xX1WV1|#cU9MOWuq}vONh4dTgto|<7kJ@67?9p}y zfr`2Pz2T1zDThV0j^cB{W#*~1-;6bq5+H40ewgV%2z)uFS^;t z=m!-^An=}nF*kA>nf|#Sl}i?p;_nfr`}u{eU6dN>G{1+MRhbi9pFTs>o@fJ>{{V!C zRMd%sLbW13fa3zExA0epwMO$bYn`C9B|Ht`vGy3i7Jwr66Op3}Zf&5L#h`J1Qk@%Z`;6@}~%Y3Try!EBR0Z zvWeD}N;k}vRl@Lk3a>5Ayb&`O=|C1Fke1mMG_#ZRu2Sd3k*CRMyWiTX!8Wshk^ziR z2U9+$Z)wA@1JGABapDO~zFnFZ-O`_Lpcj8W>5Dn+YpJx;Y^_E%<>&*BBVN8CBtA-3 zlpY(3GAEFk8oH&1GW*zcrD8_}VQ2!Cy_8`=jc}v#6>$~g<$6@nNTEo^DlOS>l7KJ7 zO2%2eE603s1erGp)1`Xav%E!AWB&lHUSs0Hy5Gxlj(?SSnclQdUn>40Jk}5qe5avy zy;M>FGyGQIIJH zPioZ6O^(NSr6|e)rB+~@M_P!pGhyf$XpBaf*@vuA~};a*RUs6bZ6fP@&Fx)I|K1Vpb(Sl~|G& zj`Yzt5gg;5lxcR)b*tIJpLyqu56+kuuJ5~6G^026&4{)C09ofCADwnk_>qNwg!?Ab zz}jV{tWs*%zi5?u-d`cT0aUtJ?_d^o-^?#w0_H`T9}iw6~#ks;hk4h=UTlXdyL|eUmVMLJiQZ7APxb= zRb3~=n)|PxF}I1jJ+)0L4T=$sG^13%6s1WO-y#8u zKylNx0A6l5%|wb67VK)joq^J;2Dz6iP6Ys5l&;Kdj6M>mx7_TDmJ)Om;kNiIJ9G^V@07~}Xj#ltnd`7XJ@L`%UkHFSd zb~L1ZeSCGc5$ky;2OL+U_&-j#yYS7UJA8#l@~#u(0YtoD|o}Sq*s{A%4Xnnqo|g~wwPrYexO%jYH~Lb zisLO>L~W7sE3mbckR!$oF{7n{lY#|lZrq@b)roHtvh}Sv(c>FUX#+Wh=-&w$;f66@ zT{v4wT0DG*HS03K?HOcYj8~d!NRiCZF#K!5;wb*^=dqH@-?8N0HSm;omZJMlK$5Q~ z9qY$Y-Uits;g^Cd>V-rqW0U4nUVq{r1X|9?`Oei=$)6ROa-tz+HHz z`&5XYgX@CaG>Co&phi@m$ix%IlS# zQKueK$Ah)oO+30?VKOjtNvLZ&LAq}$U{^V>JsN%fsdUL0+q$Q{@P*ZZ9&2#Ix~7}6 zGlbI6=x;nzXBusb=fJLJ=fxMd2V@bPRhvy3%?kOWCc2wzO)?TNqo<`{`AaH!SEegx!OtA9wWE!qE|rZ)$CuqI4qV2?%qfD= zwN#2gtAc9%$Ci>X2a3(iWHHZ5BnZbHX#sxRH=c%|YJJ2angF#XQNdpI zkE=#r&SW3mtw`17IqWJsvHOP@>MIAjIwP|(ei3T&>Gu~F(V%I!9C2RwW$`YsLqLTW zrxoDe2=6qT4R-l;75(mhT>4kh{{Zlqqy>{ogLW7X4yj@YRs3!+P&%Wtl}uWs^ofBkEZh>0G`IJrTj^SvV=B0tFYub;h<{TgL#*7 z?e?qo{vFcoMsFEiz3WO;zMuEfOXRPmRxP8&^IXauhrK5>h*4zGNv7N4D|iP!g0HOi z3IZ%)RQlI3bFDM0TKBmUJgCo8J5EIN0|Sg2>Yh+QWUgA<<+><~*1DME+ZY56C{YxiqfY4$ zUbF!c94X6F19Ogsp9CMhCPP#r;yxoGsbtyZ?#3}tPcp`KD9FW9Up1VZ@jwq9NFy1g zQmfGONaXW) zc2GBBkV7H)haS`^XxlxFPWKIsv5u7ngfc|z00$LZL_X(SRg^Bre{tHQEZ8l#2DCFF zk`Sa1=|_?`WC2!|Sja6P+kxJ*4efzqJmp+a1g!xLnp_lKde<>|;%z$CQk%Tb_iHQu z5=)DhBF+XroKR?XODqV*t`1M7LpG~uyrCOKacgVhePPOxT{5`5S5I3RVf!=)d4dzC_jY&Y{wslw60N?j@1mF zGqr>MJkzHf3afA72*w)jU(U5om!VjoXDha|Gcay^L$B(8y|#;NVyg`!S=87y%N0Y` zx9&VirrIcu%>yd-0N+3zGRXCk5f{-`Zk)Fk8jId@U_?V z6)hv<*j2kv3Cv^wa6amkT55$)_Vtl>bg=pA#Mm20+$&=qbDy+UJ)UL}50kJz(Cy&H8g-pbNeLW}x zq?R26Px*H$mF_AA@fMQ?N__a~S+V#x?HgpCZL8f)X@9~or&*CCm@Wr*X zN6#Cx>rPm-n+&pr%FqTJS9;ayV!)_Bg*kjZG~_hScKTJ@j~3ZSx9stZ^x#%x{vg!u zIJAoZPzOa1hP0?7^QR*|^)pMM*^TAbAat%=X}Zp=f=7_Y?OGPT3KB7r>P`OHpb4MG z7La8vmw%@fg(rwLo4G&HqaYrfS7f?2jbRu`5pz@j0BdNLv53=e6amM*w}>wGiOGyN zrD!LG7lyc#ardX)c(MrJZL${htob#4TKkC5fNMiDq>9f;wosc!R)*EI>nTF63HGjL zJquWnhLTOYt5OdP!3pzcea%1~iD`8e!~x?R5yf#HGmdx?7K4Xs?DVx;YjlYgxnCMj z90D07=M(|M+i4o5$pTjS4_fN&d?%)Wzi41_T-<&ny1D(`t+~R~qAhaw=5O5!0PZA@ zK+~fLHhjLAtl2zUV`vIMzolcx;dYb(YZw25l-SPaO8Ae57$l1o7H{8aA46CXgt`1uxC%O5i6Rl$bcB>S*i5 z7Xfp|C|-I{FaY$V>&T^W1H#a~IO|B=aw&R_J5g{KX~ib&e7LC>j8l%&+NcPzib0x~ z4E5uWq#TAPkxS zU7&QO0C%UZ+|uJCiU5yiJX0~xJX5~ur*7PE!hj>#J5qUI)Yt-_v>E`Y@qty`VzeDa zS7e|HnBt?wSR$jqtqjP*j=q%cGsQO*CeQ@{02)!Af}M@kDyJEt07SnjtMCt$)o{2R zRk#-l)e|*G<)`gACzg>j}@qs#1?8j zMS6T=Y!Rz*z{PovsFB1y;Vlthzl+Jkv zr2r{0x3x6+dxt#J{IS42DLjy;b9ANxI^tT+^CRfv}=Y9|F)kUG?%hui|5igy(>bOI$- zRnB_Up`JA0Q?ZUH0B+8Bqo5IFyJYsEfo?lf+vX>47^a5KP|?t!Zh!&BFak%*#XN2Y zVc=Al+w!d)01?lYSG`1y<)5F5dGs7&hQnYH%{Bu`8P8fjh;8DHgdb|KHsA%KAWHZr znpjls1GOY+&nBe75AxL+oHvc-FxnCQ{wt#J@`chZ);@Bgxo;d0V~>CF99LnZ$K`3z zCtRxZpwPJ@vmvZ`*9-G@tyvmQc66#2e=KS{)b$|_waekNj8*3S==9cxG_ zD5UUc>RBLF!BbS2d1NpZWt9H_5yeF83EPg8>;qixImI?VmzoNkZUT`$VYjtF2-(g^ zr-Ol0F4kSO7SK&lghTV-b5gLwdQ$A#c%}X!p4354 z##RmKiVGw8pFH%Zfw6MNm2y|DG=ZEEK)VclWEH3G+C@e&oOKl-DU2|xV%^_z7ot{A*XaT%1`gEfkam^#`>Nusweo@we zbRL^bfpL#&9rn$)85H$EImp~9yO!VcP*E(d9AJuaL>Y6^n+k$({Y^V$k#agv1DECC zQS$Ee27#V4M&5d6fFFcjSCd>%kC+V`YxFEDwv6DOIIa`N%v(udzrwK^xLR&mTPK>3HsgcRnK}&s1I;XBW=%gEx^apy0op1kIn;3%Pykw()`B|zy+Is7OP@D2g&X-*VVg8-m`#qd>KT1-go9^aF}g9MYH3P3ZQ@F|*l;=&y9@(QtxtpF+j zc&Eq)06nU>7#PMV+RcJ!5YjSvrZ=Fe94hcBg-Pfr1U(9X2YMeFp;5Dp)BLqlnn+?S zMDlu4l=P%>NXJSQm~hm9i)^S)-jo+&+=_ll93CjZ@6=Q114^#ko|PF5jt><#mR)$J zEG`qClym_C({auXOt}07CiOpetpEW@7!?Q1t%Ja;TY7rZxW)t2=mJN^GeMDaO(@U8 z@rruHoM)|BT}CnxGC8KIZuz=moW$oH1t8p`1Xg7VuF3aB3U_6nwLc6wG~Bar1pqZj z##e*sR(!(aBycIJfDCt}A1}(oiV5X2{7%JuH+oy{`7ivd%{~gst)$*U2U$*kD)gTh zIR5~IUhH=AoPL$(e+L#M(XL$w&E}AQDoB&pWePs+RNmReT99Y%)ogaA19CI8niS_F zps6$14AL^Ibl}iC5Rnp`6H@1QF`ks0O0Uc*0w&Cg0>IIR!JuPy)6Fv_N8ZH>Ks$-4 z(0rn@?L2g;kpkhxFfb{aYX&MXXwW%HS@*XTg@T-(YB3ho%_6C8hNz-!EAvtP(}7E| zlYu~AS^#NA$TdFwy(z7cjC7;r?Le*|ZReVL_zAlj2S?~1#>vh9>~E;C+3VyooirqN!j@j^rP7z6S1arsx2TQ}~&>BW3z zC*wYw2mCZj4?NMoIjBMI7|Tboer8#gOR4ShP{ zV!uMal{du`sgX!L9-_HzI_c%r!slvs6=%j!&1lg|8*(1ioRLv9#+PSzYK}fpT~3$c zE8P;=V6=RqSCra#j!0wjoqkbLzlb5mTZN`JdWFx6ZnXk@=GpYFVkF;iPJZ=sc9+oJ zOawnJYpk}%VWie0>n8cYR3SmC--Ncj0c#Vh>WFKUF5P(Gj;kH|V2a>f&mwEU_J z<24a>W9dM39>8NDQzO~9=Yvxz!sWTBpJ^Eb1lEFNn@>SZDnorJjGm^2ayxKqFk6lw zU}KtK``E`6(VUVxQ^EOg2Q@tl6^O?IosZq)6v#^Q8k_-a?CnrmMJs>a>JY?(8F5~- z;zU32jNEVI_h!7eO&fK4bBz4Ly;sGmKj9voN&W+0U63zy@bf~ygArrUAq6v)t+pRF zaf;6Hvp4n~up>V$Xt?>lO8R5SL`FEt++f+-_X zK9xF|dr(U+{ow1pK+pcW|@$UwWm9#x}QF zIZ#~lli(`=*hv^tN#F=nWo2RXHR&xEIgH|*3C0?ZR2MwQ{t#C|hPZORnKbqAXB%Rg zLHL^WExG6^3K92sqm>2EE`JBzCIVea`P4(gy0mT#ckf=a@_-kuB1IUJG;*N10d=iu`%Rs^cCkC!5{FM*}5)%Q}|I~rc-?* z#pCZ?^zAP==db>9}m`<@#0BN*Vg6vGTBstzi7L!Zd= zANWbUQmh~B+59Qr@S1ppAD+jj`!(r)OiPS`O4fGx+@O9`a)&>W=8facY;*me$NRMt z`2PS|+s2*8`?cw9X$f7di}_S-WeH7z7xJfJb9o+bYw;H8WddC(pB=!(S%bzuYt%=b zXwhV@0bKt85U$=UDB*B6j(^#z5Lw&*0BM6PV}iKj{h?XdIlPbE?FCvt326}?Hrhfz z@zGMsF@P!hF6q24rObE_YZ3hi_*0}AT#D|7$C)k4v{6MN5%8zzDn367m-xBuNJkvj zhGa(ofl=eqrp78W?b?76ka5N-di3p1;-vtcX}A=)$I_0pmcTbS;+h9jQgCreia;Rd zmj}HV{HfR@=~@86#~7lVKT2MQijml9C#46bD9$=iFenvlmiZO}-^rJgz0Aq>(#T10o0OO?u zQk-q(lj%rT5Pr0$jtwZIsQ0E90DICC&N~WRfH8_ej8FrxF`7*AiUvu?r8we%6Eu|U zibINH6By=$?@Bo8D8^4T0D}gB!KDE~qi;DCIsk_Tm#10=J5zFK&<7k*+m6(`X)q`d zl$iXf$AL+K)KGwLUOQ3Sr9ZKzcH)6spqRksj=T<(;YI-z6=9orrj9u4QUFH+j8zk1 zy$7{44wWajN6k{TQ8aeArg(8#=d83M50B%6y zjQVz_kqn&y zKpbO^C;*O4E)6?0gfI@mj9~Fjqa_I2Ru=54yP1j6ueT>U>L_rOn0TmC_Ie*R3H-+4z!|xGI*lE zHv)`P={lOA6BxmzrRma;QUO1e7^UN-6abu_DSFcKI`KyXidO*OQc*_&r~{6ab@l?6 zw@OjKp$Kg*DM1u=pkiaSFC@|o_NNc!KnF}vN2MH6bI{NxE_lyMGC-x=F^WOWN@ESwhyK%u@9>9M3H`|b07exRHZ-TX_^IO|3u{_RjGTr3b>3Usl(t0&FM_B{eBsN>AMvOFMEf#Bgdr76`U!%e{dE&VT7Z3gYE#{JWWc#~SoS z;Nq%8*6P3UEVpMpR6|^A$>p&dMrje@Z5-Z$d zB=qTBHNKT^V*davYRA;pqPQ{wyb5IR3E*Qi8JU-D9?+n4?NUoB4K2Xqj+K$9PZFFp zGTdKkahod$8Oa@1gF`RDMmS};65tZq#diMyJ=EbXkiK{TRm$L#+RZ;i&PEo-nvMU7@ zVpHQAS#OTQNx~kLrzxG!I{5zppe4K)s~X^d?YLK#{2oF700`aE%_hW5@n27TeuHh5 z`=|qSZaMl_fczNIZLc&Nfz;&YxM{C=?3cohOIu$${K*R9FnF!on74h66m-0S)C=kj<_ch$x1%-ZohPk~w7|2CEtEY(siLt)$ zt43y|OSk49cAbPLa6KxKm_ZgLa0k6&+-s>H?%-YI`cngO+Awz(*;FodsG(mjKi(R{ zhTl-sCjIyB)ON0(JvP};61ibO9Ql1p`GP3&(W_$9!}hU|(jD*bTTqDOP`CoDB8E8} z;BV-_+*sN_+4lLe4#I#GU0z+U zlVXAd9ZyPvSRl2-Ur)b1jY5!Xnxk!oKeI$T*8PWt(%gBs&*rh|+)xHIS8~WajXu{S z`@~h$@a5&|`PY)4_eVQ8UfH8(X^}M1ulVDIPysY2? zyb5WMl^DUT48fb`+z(GmYDzPMj%vKGB5=HBstFNt(l8kHpbY}UqE#sXLA~oT=UKJ4 zQUToOrYjv^QM^;m6!f4CnKc_|!TGB>wRt5QAWXG7-$NM&cHC=z-on-dh%-PDM-8%kv8Yp8e>hQ&)lncW!NBQO zL2_`T7@!L7g??k+qXpDe*NsQbD`K#OM2l?1LhH@n={wCQ}kJ`c7|I<`2Z{{V`cSdG^A445rJ8n1b!a2wm)m} z4gUa~>(0R3RIqrFCV#W&b~z*E1TSx`F?3%KX%Q>x*MDrA>%~ag-lZuKcxuaJT{0Gc zCjQ6Qbu6~GclJwv?gLrz%i%o_a#`l$;2sGXt3U9LUR=1k@fM-vt94A$3%?9$5}5Rh zPqy410qa3L#F1*=DAglAOdeIR?nXGSJ5bZ0lT=A>=RQg0m!)>lw~F;p`(hT5uTkw> zo~>u4+T4r1WjmZ1?*7RaU8~0x;odod&%?ev z@bt4c+Q^Z8@y&ZHX`Uw3ka3VtKi zZnZy(T1>6dsN;WH%OoGklwb)`YC)4JuAh$QFp6N@moZe!r$!dsNPw? z#!sz#r~Dxrt@QC+YnO&xj#O}?Gy$1$uXtle+i#{r_KSt=tC|V%e~5OpDfTOK-x%V( z4#&c}K9&K71>NggVPKDi;YVRw8J=}#@c!3up8jKU{{1Vmw9>6CkR(v5f#@py^B_B7 zq#J_ffEGNj$_@n*Je#n+1xCz=82i+3RyfT7FPe6I+~SzBD>hfPIh8=$jOLl zEzlUEUH&%}KDb?_McP zg^!n!#ZBcijyehesCVNhwMs~3PzGvXkf_@y6^E#JlStB3nWaItvotn@48!IedsK-O zaEe&p1}fS{SLb72m-T1eqCzoDXv<)rsRq-?=8dj?VZf~j28gB^PE9@;Hu6V3s8;z% zYFNUYXQe^|$^3WDqY+>359eH*I43pK`0$n0V?^n&e>&wNzy`f)TN%ui+ny| zDFk_~KzjEz5zBO?R>N(iVS~j4v7@dJ6zNDf#VaoZ6u?3GK*6Aq8v!==s?swYDHUXl zed>sT#U>%h0wzK0LbB%_DTEL(Xxs9PQ;3=;VlZ)4g5+kTAg>3d8RLr85{U8Hs@I1e zKc#e0_>rC?;Xa}M#PJTS*}9RTjCQN` z9tp5V4R}1m{@r)i7cGE*ZN*gc7mdg1Uu#F89~;)61srPua%jQl@z{XWn*{6&2O z`$R(=o+#39O5n6$*Ufs=qAh1caq|&!gY^~lAMF6LtlBKaep4Ec{BTxPb~mJceg4p4 z*jr2&<>XE zi3Ia7&3M`IDZu+WWYzmPwY^ci#}2Wcn5WKb$a?wLbjx)zNhnnwm5+Pz0>~yURLaAS z25OD3gP};(wTX6*delMS{RuqSnI&P{6{2Ql6k5-UHK+2dVKIjF;;hZ2-&;q!Qhdqj zR~N<-O*VAPPCqKAc_ycD-)Ow~6}wl1p1<8Q)yh}CR7D86^r)GdRV%lHLxu9j4_ZYe z4{G=tXVut>DB@3*S8FX;w|O32nK-9;0I!(doKr33Ie79jirLF!H58AZyj+W8tz8?0 z1hL4iZwuVVssn7J9@R(U9lL$FyYNp+x!`+v;F(ICF|Tqm{n5czKJn?Pq1eL;yF{&u zp{!fM{huL@0HYq2xgnKufMrc3+ebB|u|F7E@|5Z+Bcak(K6KKDm#lJju4}FF2w5$I z9(LCobh2COa)jxgD&5|tEU>H?>0e9Dc&i>nsr$xYMeFHODvpD_BzPwcRu()q;m}l+ zR+7~1D#MC*hOuv{NS(1)Op5EY^{Sp8WIDuw{V4&rs76?lyjC*Aaq}LPxp*WpA4m%Qnp53fPi8zjvHgR>CCATvgRlTqAX)Ge*M=APj4v)Rc=w3OL1cXbdi` z+PZ7^Rd5BNbjZXJ4ckXiUnywTGTnH-IO02Zp0)KgzJ(pJNah>Z z^P2j62k_4y8>Eas5o;f6)8rP=kPu@v;<`qx_E*fuz2rI%-8B!1FK;Bq!uYPcN!2x%K@1QPpHW_mZ{dwAPQ;e*rtec) z`(R8JMGQR!bgVqOvzgbA**F!_wd>Q1nY^?;t5(;-c2JGeA2F+{-qQTI7!=WxK1>W& zvBSX->aw-AooxUfOlmP&K5rpc8TJ(lqXE3otTVc_QMSm==Q-nrf9z7Y!uwaxs~%(l zGsS%$;)2hiN(jY#@MUP^P`Ki}Ox0?SQvvv8HtB&{_WE>7DZ+&Yv_va!kUCHYGPZhz#5D2{ z4`Eh@og7Ryjo9_AjGy7}PE}T2r-CQ~6}5sf<|_3as#I9ElA~)?lrf<4&q`y6<-;$_ zKoO{J$2EEhM0m)k)M0t10s-kj9v$(tJQGQs>c(24gPs5908tK-+FHP9R0DSFZ=A?_20Or1m@QV{{h3muNK`h&&j{q9? z4+#KZUBeiln4YC-p~p3SL~;)+HD1Cn$W2WCOg%`T)+NA!F&H_;NEMC&HH$8*VQM#- z1!7I(IAMLTA$rVbcG!$%n>eacT*DCDSw(s6*0ZkOW9*O+8`hF959_*<2D+2W9+Uyq z&*Du!*fu3lSG99f_{vF6%UBC%+O#eF4`mncZ=}vD``-9!%W4ErWAyf|49-s;E7Z=| zkfI+^S77jE{mI>XF5G%n#mA0qqg|FT79)>pz>{6^HlRvdD2O+u0CW)eM@O=VOLps( z^)%`A?Fzv{z@sb270<7RHM^zVc{%5`XiuQ4Ns8oO@6OI6NzJbUf?HS=;ihC_Fc$SgvjzcQ?Ia z&#ddZm;8Htk)Oh#PYY_7SbM92RQu2eNOf%oOa0dE?b{tICVv;o*^b8C6%?KIU(;&}Q^r+FHlynF~QjmJyy??+yiy!XY z-|ITh<2Zzw+8$?SD8pRC7sQ|vlin3WoVX!32_OF|`<%j@Ko1r&uuiGFuWUIQz6ZVi zCe)OG{Th!%I5anGkPqI?1{$}UI5(^8in+z}BN1f40R_}LOxv&hsqk`eeCAxA1 z#^3L-haY*c=AKs$Bde@uDLpRiRvuOz3VZc5iG~8XwaaQZ!{U*PVd9wiaL2PWVQKE_ zf3h|OwpxqkRSQ?K`P)YP@6Amid7a8=|fGwMH*~=c4(m zcVU413Z=w##ZEEXs6OnNV4lw~a(uDaxOYFZ37@mshE{Mx)KEb*a;DthTv zeY4$kk)_cYG=K@kma0V1^nPR1tV6QEkmyZJA5F{|CvLiE4)87zh+q#H$ur@<9;^u( zs42LzlUReK6GA#X_I^tQfFKUS5gnz+2bMN;e*?NVTw_lkpuMQxV^us6cA6`v$Z^WfJ>C( z9JP%H`-IVGe1rz#{8oNaST$~{C7fRi;)mfm2YLZY!!Z()k^=$(kXAI%3y(4Hn1~FC zI?&w$%tEK5mbR;)gGsmriJ{ejhJB`IV(I#&Rx6c08o9A68nn2%a zOy)j5SEufX9^HQha1rE}C4!8;o>Dfo8>>1e8$MJ-x*e6CYCyrzA}-s>Q1|eymm(Q$b9xR3)z&4jx)sF4 zYX;CqPv?h~Pv)i10K=(xdm|WehUTTF79XG)@nGld7SCFe^J7JHxXwzN5~v))AV_UZ zBzpVHH;;_C2ldg(pExXzOeMKXnIMmu*MN6-K6U(JWrmLX0|%+zs5<*w&c7%roY!g> zB_-tt(LQif;yq`eQPlLh0Bn-qP&(MX!fsdH(HF{ zjYD$hBjLO5mrrsMhzFgQD>w~WGYL;L08=wbjVoyctw}^O8GS|(st(=2BR1JdT_HGu zLqGh-#(j|Dc@h)-ucD6(qSuk7l2#vs> zjM4x-pENq$9$f9sG5T^opq?7x+X5w{5l}O?zisV7YJea;8>L2u5{?Lfc6j!YoXf|P z=FqQJW}fP`|K4~JGx0^8{2R>d{*4RBS&_ER~bOhq1j9rivJ&g z&D6mLGeDp$fdw&f8}EwI9A!#xQAr#9a80Jnzi|faE=^Z^HjxrMODc*2!*n=nWB}(I z*=7kh23tbtZR^h%*7X*{pu?YX9R>*!qW*xgpyf$*u)XNK@T2H`L%dV0Xd}Mdm3ziX z^7ka?@4U>?(XPDs2c>eVndV}3c9VUbnYBY3|5$Ll#8VnJ@ak9?k8DB`1K zyF##bwRyDcwLXEan%w^HrRZs1@o`1ut_OPJ9e_1RAtSGP@!s^)!c?Ql=K1lrW4q=eq zG$2Y@%DRzVlV0#$Q+e{GxD-Jb4?h*9oPp&n8dT<1h9y7xpsWWz7H^q+bx1 z_->`*L;&{TTrI#;vOMn!<17yLa{JQ+LvCt73xZw#(0z}mFLMcQWTVdLWMg;L!E&6i zlDE0#8e-fN#AMaZG{m&6Fl6e#sr0??!)p*(;%!y@mBg9T6N{`u(alp}*aeYISLHMJ z0OKNfQ57?^h#-Vo6OfHH=%9PheNze#(PHXC)fGe{Sm|4@VVWgj1OQ~Drf$!GZkQsP z1el--AP{o|tQ9mp21)?00b>ti63C1bk}i0OI0|_3&+?`wNjM(*it$EKnB-@l6+~zE zaczSQXsOpc{eg)o#8Vj2P+r&;%n0vHfG}gFTZoKD!7n6U3mjQIfLHWh5*onlNhPGq zsvw`w{Sl9AOsYtfPHNyy6It@j_#80m(YC>Kn)vE^F2Zx;^_2G6AGmfh(HG|2);hr^ zHhtzFby`;?PllQjWpJo0iLXYd8h`5&`fnYl*X{|WPUiEerhmx7v|6dtf$6XM9&*_l zy0N8}ul<&+6?eLg+j1{&Z%iRA^Vk@Gk$8=Ah^#IS zUTn+;(3?#>ld4B0epntM0v~Enr(Q*<4B=2<|1wStqTk8tt5=e+r@I6TK{B6@%*u@W zHYo#!2Tc*$D0<6{s<3W1SuzRmNjLE0@ZdCT+2}omPr1ZI8qbON6XLL!d11u7BKbG! zC=0^3`nA-nV0ii9P&oO3tj&9sXAcfEM~Hh`RIc=dCg{>l63$#R9m!fk8Y^?^|Ao~Ivi7i93MYLpbq zir8QOC&xe696Az?%V&yT#%%W{82|J9;tF|P0Crn^UOUyYMOV%7L&L-TnxtXtf*pVw z=lSwjk^|n<<+}zUgiG2g(hTm(S zgaglvb*C_ftcJU|U@Urc0(cLy%kjDt(k30_A0ZMl>c<^x=XOOEqRXFTU^#%K{Vex& z%Zt-3HYOsEQIPSH*%Q<$76b73F(MmQgGNBQtSXIf&Z{1iebf8|5?z`f#@V(U7Eyar z_;pbUn;dkMUp#emiAm)4@B(e6At`v5|0>4yy*D!11wP|$_KDF}on(Hn1ON|;#x~|R zj|p3$ts({A@&yV48inb&GsG}n-n8f7h3wy*ej}6KLkc5Z@^Vprn_@fC6U?Gt z(HzdWy*o1;4eH*=`Y>9M!OaSgnfU>0t}CK8Sz(b=5fh2jzA1G^8I>;rBA+ISr0@oh zm2LyO@e{~CEQG6c+b51l;^KMsqMoITB`eXph$r}#0n;@7Hjpo6Zy{FM6fdBkh+YG$ zcqTL_Y}@as4!!Sv%AY8R%vtTZXAvB2{+oYDaOwCGbo?nvVSk$CjyO&Y0BKZNT9;$; z$}`8s#}+jLOp%ny;ue{j@Yo1xBXo|thlO%~$ikV9z+|E&~=jkyBn9CiWp@oF{-GCo$ z^kpbmVLD)n=`}CS_q@>(Ng1#~X-F8_+^X$Bk)kAn%qj!0?29nQ>VahK!i2gjpKS&j)_>%dc)ilRuBFioZ3GKRQr=u^sAO4iMNT@EIkk~VLvgyc>350G9WiizVj1o*Ea@NO1TRZmWui7{X7QrC_KkqDfzkAQqM}SjFjR zDNcsUaLMzA>5_HZ@0yyh3FZtNocxykn!!+kOp)?Mz(c&!C4>MEtOX%ySN+x>7&a3| z2-6;<1TY3)8(gXg2qhS9gfXrr*T?`V^zrc&{~~bT<>(yYB`h)@o|J*(>uDwnKf^xsIZ zA=4%U0VecDGK2TfwrT_i>M!jn2Png}!lVr@Dk%x~=aZr4Li_5rNweOv-lfd>6-7j4 z9H&JDIgsfvDkuCT#gecmpfYo7^#KA71b}rSfJXWS_FQ&6VMK2B7 zGhi4Q=&mTByGcONIwKNyVJ7GzNQ`Dhn`fbzGd`Z;&t&>z00h7bf-AqWTOP%t2Y_*2 ztEPvkkQcI(cnNa;FR)Mk18~M${EZEj{!2k|&)!+}_v1&2UY)>2>H}Qqak^l4ovWWN zXLi4P^RkR(*2tv3M^J;%&2O*N=}_9}7p=zQfIz`}eu6y_1E&|lX0@OJu>bA?e7!7y z_+#pdcHw?&bBn>{<6H)fFn(4u+xwf7YY0cqk8$&-{y*{pjgs6xDKtUT&WFrm%zuzh z{7fhp-Z|18y=DK*u5NKBtOR1>NGffy=xALUjz82dNLYbt|Jd(mbX~P#J_pp3e;ynK zeWWd*Uy4*e**78Vx{dz*Ze7isLUltt-7wE0PT^x9gu^&X$l0U|7RQ)s4nViJx5j(5 z{Ip|g2SeQ6W>f4ncf=j=nJT%h$JHuk>E}t^@9kUh>kkmVB-E+M2mDd`JZkReUu*0z zj}-W|Y@IpRgYy7|yG^PV9?rB75!wXvtYPDKx-oo-tj`3M*($d#DupcvlN)i<)m*;k zZ;Vp}3h4oth%tGCau0sy_dNVH9v2#fzWR+d=K}$&amV9yuUhAGF&Sq~e)wJH6Ix$p zY|OA5DvB~x(8!Eqm(Zwm^--_NA)`C7#sHhtJ1>zM7w;Cs3rKRY_z@{dZaLuP^mP5c`@53A(FkoD8f3oTpz2`+f|8?rrDRb=k*;_1MX*5V4?5`TUUi60 zwJiaxH7V0#tg$(TltaR>pdgcf^!<&_Oiic43X>C0c=Y&~e_G3;fS$Gy_UYJEd4VC@4BOzU>>zOB3#S@pj_YjMmjq5c`a+oGw6V%V41L1jvh-L!1Om=`F< z3ybEM^cJf^UfF>_Ix-#}nt)yQv}^C5&cp-v7XdH&ZFZpN}{gHwWF_#1zt_5{Fo#{7AZ=y`6qhHjb^uIf(;z(VsO3P(>d9 z>~2Ho&i)*pu`%c(AA4m<()B4{Azi;mCzTEsgiss`GQzi>8>t_wVlH7;9!c+GzGL0{a!ubDc{XEr+h;Dt+gky&GtKR^NE=#5K5dr}k*1pVN_$T60bf zB1P})7#L)VC9IskDF5u@))=)sXUEgrjQK1-=VQu2P=|1~7m=+l(S9bMSyFSFI3k4A zz^DANG|}}s6VHHfYc)#<7jDYJ zwc@opN)(y|=1Fl&b6$6%4-M0YWoPb|E6Xh#yhDZhT`Z1Kj~7|2GnQVvu6uClw78T= z{#ry93}P3?x-woCu9OjJuumP5;v7e<)+^B7T2v+F4N;l=GEAQ>f~izJ5|eU?HF?_H zl|^FI`gs3tY5?$xedh3i?6P*i2P6yDr8suZtyB)925wO1Zkb+}0No4Wigxom&g8$d z@JYLG@_9IkIEeDUI`~u0T>H?$-WcS+DkHaex8_^P{vSZ^t37j;yJJS^6X++cU}eL_ z%hOo5o1%?unz2RbaL4lx5-pmcS*R6Zv}?o)@79MLhk~F)c@`U%EhZ|Rwmb_Yx6=3d(0(9Z>fKl?pV1Tt>Xu?#$OBQ5Xe z!ScIuipbZ?br}cmpf6JwKs7fCq%TQ7o!s_H)g0vdvDK&ACo`HR=o{%#*U#+EUCaQJ z>+5W-+mKGaz6q~4N0WA1CrE?ZSJ2sAG7G2%UEd}=cFrWp1^kF20q~kHLYUJ@kqJt= zH0G8t`%vKAx{FsLxRP`WvLiku-T*cMFOJdfaL+dUEu!Sg7!g0OOn+lxUToq@yZ>59 zC)BqeZyWW;5M458AtHV~NtRe`sVn66`0zvJ8=H>r8KRhETPts0m_<3Q>S7Mf=iVBC zy~_F$x4(i=%?oyJYs{4$e6>AITKp@$DO6 zik<$Z(u?7K+$PLyWlo~ccI3O3=)>2!H$V0j8F)zIFYqV4;??uE68_ezz0TH0bhW}lGGwyA&=H)2 z153y9^9RWu@B6B5Y_)*{X5{&YHy96oQOPX^=ZL&-?H-pP16=TkVjpRpI-C&px^#6( zxTDnKkZ$w$%=JWp;wvRBxD5%>ep1BIiOwv-&k+Yo-^XH~SC`VLkg6bUEzh!LrD_jO z<1TX3$*5xUVAd`tGJWFrEGH~cj!~D5m$AtmzxjR>=_hoWhTr4PJMSxIZ3JVu=d;I%Kc%&#U9S z%z;ZL#9l{?d6zZ8?jt?DtQ~I6QxSmIY9yJ>>`zBGSnT|^BY!ZMFTWjEtl0iJ__~51 zKri(R6{RDl>Ze8C<9|_JuI)QTeV(U1HMx3J1CJRtg~b34RtGH$LCy_na?mgP=CwtD zZz;Re9UXzBHQzUvi6)@=z^Yw9q#}3@8Fg5r?jV!sQPWfg#b>?cy&0h0nw7y@^De^k zEm=$Ap`!|cX#Qm3rY}zx^2ZNjATLA8@tRO9_wyR5gjm{DSVFI@^B*yOHiZM4fHL?0 zCYp5XRr4I_c5-6+8GStX)S_xx?s70^LCzb@209t?HS?Jm*8r8(D#U(n;&Oz@1zoSz zt?CNwuN(VHZAVZg%s96i59Eai$dx-M1+0Mwh@i8xHd&IkXvGZ?s%%*zon_ zTNBqG^(NH|$!=6u?>*zxL}8ufUAfZiZn$C&joPWm zj08h_-8O97zCvRVtj`zsm>*3!o;7v+YQ!wi4`DPm9=LIRd40HX*L{NoRW`3u&+vo4 z)%ku^m+JY=I}z(%^Go;fUqFVzQnGC9flxY!(kl z@W^=ci31ss z{8UZ!p{9l;hMPhPIKWyb>YqSrfH73m?SEk&?bbZWlc(aRd z_@-AWdAd#W;GSL@y_qj>vnJ}Qjw@AwjQz`Ot!|J@m%Bm&qB>Y)bIr2^~^1KjdlJ4zp;+* zwPW86pCx@yY801f{FZFdvI|4JTSH<-K+ej{EoIdkyG{L!)IGixw@w*CsBD>$0oIBx z^IPtdqp2R-MdV^haO%m*HtP8P+w)?gR*Vl9$`+?)TOXr6V)&B!PMeAZ}n-1Nyi~l;%(sg8d=i63qNChyn@1?T;Ad~5zj2=M2WZSR#s*Ebg>fMQTF`sz@>JnP zHokZ%ME);&lj;5gI5gwY?A^28pr?7r>SKGg=3e5Ytsz>Ds5A0^owZLMH);7#@b=0vw zffp=4|1QyZ3JX~_%muwDF8^n#-dAH|iIa2>QVIY{8)V5g3#7S!ClMR|Wd5?~vprIs zgZTA{+91!EaYd_VQJw7F>oV&Vm!21$8mQk1=Kep9_JC_9-o6X`LFk*+3k?5MX>9@I z7X1~<0!$khaVs+i{J80@_kQu%MS8V_qcb$)Z!J5cKgixgY}zki;_$L!PiR7HbMwS7 zr{TBlaeeu@T;Zs|lf~5V4SpD8>uGy^)FdGc)zeUkfCGuNOE zQMO!b)o2~340w~k;lns`QO6nRQRpdI=Rz*NX&*^PE|UXmPgCW4DVEuad5=-}x#aFA zdO81XB1$hiXWuBvSbtAo`?3C~^e`8`UhPYUiWgOwwqi(&@~RF7FpyceWo0{ zvJ$zYE=@HnS*GRMQi-432zx!LEc?Y40$)Cz-_ifF5L&uF|IXN0O>@gj{de59hrKNI zci>Of%x^(<9XS4m1=@q#EXs>wOm&*qRwi=lv*!>nD#cWbGj;f_&<_*xYMs+?j1&78 zi$kpXS9UID2jE5{eTkvO9GmNVD^*@}R&0;E4nS%vQE|y|l%2F;fxXJ#Ib1v43vbX# zl-JLx{v`Oj?He04PR?g$kM-pqx z{NHQQHaelSuBsgj89hl{xN?)Saq&i%Rf!+-OXFxFuX@>I%lL*A6{C~5j#S;m%;f6Q z)9q%`GIxTUM0@?p_i}vQ&pSOTyL|~xlbZg2Z8<6iF)G#~vY%DI?|l0CD4AvSre1-p zTD)#V?^&m{0`qSqzvkw2fjsLkI{E|~$n_z??`b)dJztN)bFoi?Ka-pM@o$yexF`x= zH0hBfD-9(|U6vlyQ&$e1yLr7pU>HMvzq#8zwrkyUnXV0TpIK_;|L$kkxt)v2&a+|I zK+oH5ZbeC6QJir*D6*0#8dR|?QiF6hc@D}%K59_`TY5}w&8D-y?O$`KA57wifHi-K zKt?O=or*|-hre;tQKj?&ZIF5y9z2;u#tC1TOv+wwJJ%Dd1(f1ckVJ95ig8~RQKVd5 z0TkPP#+arVwa6rd^T~VA?f(r@U;mbw{Uk_PJRP|ob>YBWT0mm{4?Xzp#qrzehGR*(Q{$WFTdCcpCc{{!%x^8w+7i+svEPd%v98l>3u0^SmIf`H z3tz7sHNN(KwzRpP8!~V#>DiDuh}?FbdMF1~ZJGa5wuou2Tl&qQ`ffMci=Fe0#-d}l1Ie`CZ?fvl zOL2mz+oyjY$JnW*Ndx%UcL&-Bi@7pgNN_6&^It!45+S#lR{KBtqZ>@bJ)u(zFzar8 zV)MOw_BjIb&k4|#%A@=>8K+;E?^!$6kz$13cxSn6_-$Mzl;Jg;@|@qgIm-hloxE37 z!^(>^cNbKv+X^U6Fl06bLHo-0? zGAvX-o)MJV?_16YbW|MQWQjo+deekGI?_RxMdYU6IA@+WP*w+ii}OaBD~ zOkBOn%$D1{jcjsLLF}8bO1>k&p~DCM#QMAscz4*tQ&7R8&qOV?=B zTP3nIwy)V2gi$&mWB$~#1oyX+G+D;?c@o_G%4OolZ<>fJ*^n`7dGz{^e2eFYps8Z4 zRf4&D;p53Y$-gx`MAdvZsjavaA^}x6YI#F71uN(BT2{pMqiD>BChypr?w>t!sQwW_ z@aA+Fy$jNLeh4@yVv?uAup{~)r+k!)Yr4R!5)d#SZKJhI=A~YJ=;?ec!nbvfNJ-p6 z0A%Cvu>;g?5En0l>ZE0cRK(97`XX}QHp6e3UPd&-4nuyGCLDo8=O`be75A$(GQjSd zBkiWF@vNeto>->q!8R5xR=ne;Pht*ee%p&Rc=eX|6bc*#ljRNtz2_$QZ~Bf&645O? z&CG3`U03WlZV5mW)VyH%0L-h?gwgMIkp}gNZ=EB#aX={Y0;ugDb*bnu5k2yBxE~m% z37j-w25do&h4i|2;qS5g5I5pxb^^Hj*j#=oQqvvN#jE<6YMD&G)2Kt|8Dnu#ak$h@ zVq_5#>xxT~;asA05s-enYS(k%HqI%@=Wm^H+!dwGy{|~)ieA@>;B__JTtsG&Ht%G) z3mJwNWU^Y%z7K!0uCp|u`E~mQBjFfO#PQ&6wechP48oEHDy7Fk+zNP>z3I3BhOw6v z^Y6T9LpyX0!qW}08!32-UI0s66URxvlffSZD(l&ZP~Du)azt<&=#d4GH4+A@2rOoe zvZo^i*|>R$lj_{cPWK2zUx`7$N z)@wGj5>dEqJm(7!z7PH4&e*DYZ#-dY?^Kw`LQ{UDmn`NSAY!S&l4xtsg@BwOW6y8i zFhL{sP6faZrKwyv?jPw;c)QNG>cpiOSJzA3V`G45R@dt33%)X053LKEq$NR`k+EE%s~Q$A<@FDGpS zn}(8pe0nt9qoLaOxHWjCv%u9^)*0&C98wK8=Y7OtF7>iIjc%RT`5v0-dZy0xCB=?D zrO;l_mO8DQj_U`!f%$_?i5^ggRYsG7?3{hfp8&rz_f=-$fXJ7^l?vSU05U|ujgQxs zo8wRDNd$f?ya`v$Jj(>u%208ign1c&H(|Sr<)#m77j6d2Xlw%YAG42uA>km_4~SDz zs}UY}Fo~wXV>Wd5lE%K?4bsEhc$l+dKunj>i5@EO_=(q`|Gri$L7R?L-+N>eAnMI$ z=h*n5wBxGo(h}0Iy-yBrUpHCk?v?>y8_UJyy!mM{0Mgly8;K+zMd$^X;2jEGIukyP-hk!AKIYiM z8omXc2Eh3Vp$Q+iAPbQ>I{(Z=dOIVv?Y?Bu1L3V8QS24yj{)jw4+#*D%K#py{ydCl zMtx{Wl_xbH2?GI1GnGi3fajbIOgur`;EgPH0ws0t|$;>kccRi&1$UcKwN*v8oHsbyxm|_ zN1g4(0z&sM(^iuT62(^gdxFUY_!v}cI zySA*3blOOk7ptg8@9(ZDhL81eqGS3nF@{I2y9gPDerY%$HTF$9LJBX=>p(l<>n%0` zlA4;0MDTrzjo8Y&L{?ryf)#-kARGX#^;2IK3wqY*nH}GZRJw-K^P;z{GDH%vgq`gEl8sLia*R2|TA3kGjwsQe!k!NcA`_7{01alT zO}f6TgWc&~9JZ0KiS)-tYcgZ&{X~+22@r4I*$}5-X;iLIxqpddC73Rm-Y`4Aq7II~ zjnY=<_bYOufck6Fevc^z@|`8v<^5Pfn=9MH3%~`uOv?qlhJr<8dg(wjnw8d_QWo(* zvUJZa-!dbdncAPi7DSH%x}%{{-z<4{3cqvA0Q~{qEY4Qbk2XcmsX@ENys^4JmlO+q>mPWK$GSv<1WP#t#q5rEI0O0H z&$>ip8dlNSsHQK@6dC?DK`YLC`USjfO-s92$SWG=CPnq{B3{JBzDcxrB`<*t zKo3t5>MkE1Ck6h=$YUVe-Nr&j2njw7$g8|*(=&^p>YQz;;Mh6P?KZMRCop)Wvmu;% z(^CgT-I=%Fr8V79}3P}M`sbO@B)a_2YOAXM6c_u zYbUH*oeJ!?OO=RYzPup ze!sl&Ljx&xWqsa5`o2i-Ae-T6ir9O2d;cCYQ>qWL~X`#h0CKnD>2`p4`k4-?$!~6zW9Y zGZ66p8GRvo*+vZJu1E-1B=oIJOL@crCr^ERYMQgNleU1B!L_&ApKvQ3@r@i|k7i8V zKC{8d0p2u8U{G~f* zi82mtxZI@MYukVJ)?Y%{u{OZiM7YF7H35S)p?C%P@{l4t(x9|662EOc!r0Vccnt!J-Y5v_ClJLI z>6oL_IUm7X&j+4O){xm3G z5-~+X=6_!Pcr*|Klu!ZZz)WHzHsMKOaRAFxNknGyClyKCZ&ZxUI(es zJ6%r(#zsr@l5%zY|9mVFcBzCdH3dk-59vI#P4dmT(T=}z{dYU_UXR+%?ct<-encJk z53gUPIl+s+bfpps9R%=B`Kxof^M^l9+u<~1wg(AD{g2M5X3@4SILW3W3Ek=gJT>+(G5)#RDBnFI(+;*1c)`!l ztVUcl54p*YxbYh~SXeizj|D-qY>aGi1A0yMWM_)hgQmDXK#)iDQVX!}EU58N@L(|v z+~>ib+p*oVk^1FV)U(wLKsIP68Q57zZ2GW&T!N=WB?@*qP2#b0!*cTK z=&arb-S&PKz%J`|`>u56jHmiql}~J-&#Gdj7!x55T!uPb#0vRdL)5EGbfFucrqN1& z%|g!^Tw4hifbHz{$Dh)uxen|91MG<|40`(288R}vwyZvh{pCf0c z%eba|J}9>0B+ZpFqJz=Dyvf8Z zd!lIQUvx49_r((=;^Ksyphex#qGp5$S%U=x!D<-&9XE(TZXZ?<3HK})hy<`_)yRMi z1NGUuqz$nXqNU(n1n{E(^}6=`%R-GFKmg7M3%=M$p@8X@Hd6v5a5r7xiB3@!sk5N- zGIItEOfh;BZm_SFV`-m*N2)4WN;p03rI_-|QeTcpAzTL+KLgk^Nlz#FA!Ii)@Nx)6 zaK-bZB{g$M!Fhgwq4FaV1Q!R~N5E@38s9)`I;jbOyK7r_8Z4$mmm&Q3( z9Um^Y?=|iOkk5$DLKVRQhLU9f!y5yvB49vbUw4m3aT5rLPN6#gHj9^z)&wY0GS8Oj z6Z1I95K~Gf%})CdkX)21)*DPZWJRhTCKwcbd^4ZFu*c)aBw02z$lZF#qN$v!Dd!CR z_*4cAQv%x^;Be^8ZnXX-=kU*DNh z1Lm;ua^^RDwq%Run~d4-U2OO)tA=?o)mDcFI3U<2?j&-`lIZU%v-lVrI;y(SF6qq& zBK23wu|E8@Zn6KczlawL*&hISHHXl*ye3@0?h4->|2 zBxuksMrds_hxxrFpTJ`Av*M1eD2bMm`J?pp=b@HvlWJRo0bhM<0NtO~)OeP?_DIA+ z^(Ju!grSC?OM-9yNPtbh?7g8BP2`#0xy?o0U6Y+3_!Y-&!3E)6LW;~f>l0B7!5uZ@ zjrZR9z6+H~$o)k>+NGBjrS(-E5i`CqTPD%=9Q4~)=j9`5kHV*GxYa|P&G7zMuI$EF zPc2dki+Bm2bg$_XkFpxw?Eo(J%})JtdVl14dq{OvrF6E=)_xDH)Z6CSXMn8TNUOAu zgEj6pU*~{cSxLllo*sQ0Ca1VrP;-{gr)7B;SL@*ZWq7*PCG*XdhJDVaa9S6M<`KEN zjgVUNs{FFPgSN4~ywAb5#g$3vioYoId5Y2_W@=qt?(!DH6pKN}6e=V_%U5s{oBr=D z#Yc01NyO@k$csM+g+867KsJC|bIha<&POo%?~_Xl(`rVp*_*Kf2-{I9u4zNYAHip^ zBjM{FQT*A}KIqr@+mulJ^CG1WAF@aeo4++SP%7w}aDR8sJAW3&0_yNxaf+vq%f2YK zYl`a}jiVe*ieD_E)swZeKy_B&;!Zrna%DWt;|gMXJn6$vmq!TfRv+#64Cudhd;aFF z^KQb0SSfL;zjtq7aw;|Sx9j`0tv89zx>L@NH>aCANnfy_rCra&d%h!#pU0(=4E~|Ej+x~uFuW;o z1^Dg1;R|}k(E0c}uRZj(y z^=AHD){)&9`S7ile}%>!GA#z-V`BT5do&?+hHkGwaAqy)XR06wHsHTf=1KtzoYR#* z$)kQXv!lmP@vgy&t}d5{EQU;ap02XTeW<7T#H7|I*G5LQShHgtZEMN+TYA1k!B>8Q_M&ps1*yWG8zX|*R~f^&B)-4VAKBOcXMZz@lKcK? z*Q}IzF8L;i!l|L(of6rW1ov_gM6e=GGBQ zFRv3$&co&MyrzEt0RBo^2lYI;5%c4s+(~-nNZ`@P7d>{NTgONZ{s5mCj7-y5Ov9GZ z1k=Uu2r~<{W$%rWmGZ^!neLSRzYqW&qMc&T?+*20=BlCbpbCeG)p^@HlcwiF6MQFPfkClxm$l(&-ER(4;x( z@?qp#P{b<7tt1wLc0`y485YbkZ4(~eH(@@| z?_f0YrwuVSDCnIO)(+aIMvCH%+tDiIR$xBfV^tV_w>Y6(3p7nI z$mm*nWviB)U`o-jF$pPo>r@imtBtZ`l{qm9O1~w#K(eEU<9vP}or+<5yo$p#cRvP< z6UJ_s7^X*eN%5Etlt;r_M(028FfE^pnZH*WpJ++vS|O2+2#gEvh+@^6^5!BGNey^4>5a*)IYQkpEl{V)v`u*y!Jr(iKrc&g}lL zF4oJHt(&eK_II<-N{tA&>{>{4Q>K0QNEBee;_cAGINp8mISi8XPLFX0TY$0{DR2i zNI2?QTh)rf&vU*v0*|^~?F!{S`kqv|T>f;tCn_SHKI;px#RnyB{nDP>ckfiGW_{d1 z&KGK(XZ+fyM!Z)nvhT0F>$g^n6#vD_yC95-?K?ayZZ7;Rx8$d~!}rb`BV76|74i)A z;hFv9bNr;-26!FlxHxUC`F`uDda-rq?V+7(z=l^q8dt5ct}SkE6#%Z_LR!u|$nb`~}lsHz>3cfs_=1zz~z zsT8{E!gu!k7h$*Y0=;@223NL--7($XfE{(>Sg=wU_aAD?^EJD^A^8EWs^3Vpw*$&i zk?U3#+Yi0Y0Q8^^TGzu9Onlu!O~iJsgwx`*kc8WGKx^xLxQ+Sibdfw=Cs}m4!<9;wJFg-4PLe9tMmS9D3TDQcVHr7ur z$qmDfFsuF*j~{~?R5JLVR1C+Rfb9TNzqdReqA%HWn=x@R@GOf{A=PINnvbl zp>FPR#X2tpK$*SqHlkd0*}9_|*Nt_6AhWg>%6e`X;-o$njnj9EH9Vj01A#yi+<241 z`Zg`}D_^w9)8$&MCGobpK(~xo+n-*zsUYz;gY;NUu8U>%nMVMQX^W`%-^5Gg+e7w9 zyK#;vG$n5aX||wVYxc0JR_y);comxf4PtFW~Rvi=m&f{UGU{{YV0)k!^TLo%!D-WJnXTj-X*X^?l>O#4TTwV8j=&{@Oj(*ms> zYr}e6CLJEj&zODEDH8tx#`@$zA&go^JL9zgIeaf`W)^LGQS&5zyyu#qUwauekd}-c zQ-O{ulztesjn++a`^|OjoK=l=^vHD64UZ{aUS<3ic3{7Xk2AsFjAE<=UbPt6&~Z{C zlH49E^1rmtyF-yToE`-?Vyh5MB9=yAMJ5%7{^Ef|mLtIxDi>n7U%Nv|%rZ6ybTw-lgg%#XD+{^``M6~JUzducgjYNc zdQxB!Nj?IorXypIN_?b?ou_CSsp26U=30e8W4UTYWhZm?ssUxr?`n*YItsBov6SFd zWGjjUMK|28;C$hEpiD!Fx{;Cv{^TEY+VE#07 z;=TrbtEYGx+SVXshcEr(&2=zo*4C-})Xv_W1#()ak5QeIONHF_;;~;*@s_xPF$a*N zy?tjhlF)gl{gGMLo(Z{-`MTA~!*)F@ayUF4 zpvDRmk<+b9Owh)USn*!0o2;$cIL|^xE3WW|hxJ9fYmH)U$NQqWyRROzg9e!n#OMw< zuD`+;8iQi)>P^N^;jFC1bId*{<}VdM>mC7)nWs9*Wf=nudsg?w)PQRiFaH273fC)Q z9idDPy#;pBc8QBd(=V2oQ&og{8?ntuw$}jFjh68Y+)Anb^=-~iDGX}d0NMR1&kvXa zbTy5tc#lHUNDn%*fzfM@xcGy6G4ixqMwt5Ij$t%_;FndU-&0MlkE1;ETno>S-e}VT``A8wh%?o99CS#BxJ|n3!8)I>sO}()vHQ4 zd<~+m$q$<{b`^2CZ< zX?7aVPqZN$xfsB&t^Oe2+eh$&!v^9+kVhPRF92=!ug;BE;~t*@F!*-RWO0_pc&=B) zUl#mz;;R@m+q;dHkYi#m{{ULKYGyGysbz9KF!Qe$nZgx5Zs*{zh9=5UJ^k z;Gb31bs6(>Gd_D%(CFDJbAeqIo{<8#$TCH7%Cx1sJH3r4?2Z#wwgZV5lU(FBs3jY^ z3iLk_CNc73HGyky9@TcKu+gccSR>)~^yytPStCErpj0|sVT$cuE3R8ELhZ(DnzXDq zvV;~9j4&Ju(XzGz>2SM1tBYu3P?+mi?d|-s8yT(&m2PZ}&FTP5aZfCZfCWI3e+vqb zp(Ax*h5~6k&T)!f4C4cWY9WQ~jM22Ksm&*`Rya?H(eGG7_O1%qc33!W4%+ljh%ot< zQ9kT8Yt3y~{fzJDj8~z9m%C$@e3)V?we-9i4VJ;WFvUk1 ztCsebw!}A-6#EL!o+&{WIP)GEY4EpFX%+5d`3-kg9}IMuU1XQ{nCo7rg7Jl3Dm8?R zu5n6Pi+c;|sTh`eO^uUnw}n+lPAU5N#+>0(kSfi@@W8vJeVck#4zJ>UHaI+;z_A?G z9@-q9Zo;AX4v3WGp}AS!Z!lF4`FmdvS+7wg8tHG z$Ti2c+(h6SLU29?Sz=lUy9^ZnX^46(A1P zry(a=F2j(kz!iK&8?NHj=i=r?J$lr?ZJVHO1ss5PB3p9%TNON#+a>~lYk^s&`^tE& zYX|dNlgOix4d$L84mhT)h*x_ZxUPFukXtrb ze-S_d-`1)P_G=)?Wu% zCfRisEsnXZ0BpWBR*;KG%XS0~D=F^$N2^Wb+or`G>#6&1hV<0(p@=fCwNySbw~PKk z_Mqp2C<8X%!&AYt`y_jiul`GmNvMV5qOQU zn$nn0;UlnJ(FPwbE7LqZWqW;u1cB>bSz{?+s-0`qygPAxBMSiesmRVO^^HG5wT2}( z5@!{=9sdA_>_-@O9@WWNX_~F#fpB&M?_02VYSJ^lb`=pdi!IIK>@Ld~dF*jn;$If( zO_U{5`c~q$ho=F+eZ8oc#qSE^PK0dfilG^Bcu!EBi`>Xbt$2Jhq*&puSTXOK%sSVI zF8PIa=9b^Xx{c8?-_CITg#d5OuIP3JQZgA=jxkxc9x)E#EG_pBr9LkTX!hj&q=v`6 zTb}E~x-@DyZ(%{9%`Cnl)$SQ#{o0?>t;68^wmG_xvF>Wb-Y>F>JXpea9+(wIO+&=@ zh&-TG4FGkJcy~s#x6JCS!@X3w@dk%ro?J19BhXhmx*oSV4{sFsCWWQ1$W`0vSu%LO%|1(b@_ncSI@iM& z@0l;=$FQvh(KL%(dB-e$YoEH-warD(*$J$b z$3QCt_`Q|cZJ^w}jZF`PErN!)aLhexOYGVmf(V?c`cMZrZ+u0lu=_q@L+C1W@V=!p zhP${pHLiR~X>7YJBjJ5(5`PliPbMK;H2`hf_)@|z`1-`2^?!GVw3PD0F7ImM-rrfd zJLQ#tJ%wAe@Ys-VxN=Xu0AIWDMXYCKn(jYJ%$vm8t-|>>@Ri4WR=@Ukk*0j|V4tNi z^}Qb4ZB^^(Kp1h`>$?pWjMA9<{FzhwWA{H<11413kP*3G(fr`KqkOALXIlmT)v6i&G{9FAIYxxl6ej~w+C2@ctEXaeIt!HQ}& z@4Zp01{iL%1S|BQ3kE~CZZSx^P-8sQOsq)TQvtDlW6fx0G)h?HjAE7KOlGPVEtTjg zSISA0Voa748`z$e`2nK!V z1OLrU-~OvmR!70DL{r&S#)B?`4+G2Via zFdcURMR)@rYiLnpe>k@J9YOH2{;tQ=k$H^+= z>qsWCKl0RmV!sjL_`mUP)qYJ)*nMi}{4dXowul?;dyQWyeGl6Nme2d(el&txKe`-O z;-p`+KgHSpU$kQtcHj1h__-Xv@$xV|sO1_zXv4sG3@LFB_r-oTC+#8ebteA+kAy$) z8oU1h4L$L0Ke;S^{{Ss6MhEOp$a^rQ@{_X){DP16s`##-dE!6t3ek`DwD_EZ<`JLx z1sseI*A#**az!3YW1$uKGM}~g#C7}8#(&@yeh=Fh$BX{5-4FZ%j!-{VO}c@cicxHO z?iKlTe{DY##8xw>DLu~KD#Smw#4t8vNIj_S%sE zb<HZY;{kJ?m zCE6`z+xUNl7YiSK{hC4OX+$J-IIo7I{kD88-7RJR06&FjC+(l$<{!LY z)7d6EVwxg;!!_}oU$%#WH*7J#>HZb77wv=KJ-eHF{$Jrm#i8}Fi1rkQ76QIlPukbv z+w2>#xq z@~S|64Y8>T5!$>T{u(>s*nOYcN%@Mo5A6ZqDf72civ#_kR0p;MZ%RI4+PtCCw0b9t3JbmF!FfO!y*ubf8;UC$v0CwdY z`BsgAwbW3w2XZ$M7iAM~#mI zYPSCXyn^KWjMOq{-X%q4j&{d>YuP~vo0y#XR&z~|{C<>(K6=xwb@=reQWhkRwbsWE zj308O=KyrBgGii7u1=*F9kE`3@h=PpG3h{ao+=~pq%3y1snY)d#&AY*bM0Qix<0Me znC%I`*eZDqIgce>Z^kOT!%hDHgr~)+!GwzS(j#IrgA@oLV~;F;RB{I~^K@#eO_^68Uanz~(+ zw$_bBI$bW!aplIR9@KING3MjqCaj0&u;Q$*#F<1^Og zi~;tmU+|phj&ZzwO?O9rw+btR{{V%06!9^~)|I{=#>3>8gZS2WVQ8L{_T4Ri z<>5*8H7s}fbf;=ex%$_Zx5Metu?@=%d(ubXJwab=mn@)n29J0>)6_oGWV2w-p!#N| z-v)kJ0sL#o4}*0xF4ekXqrPe1@QQ0Fe|3Dr9`tG!iR;0aJBow&(+ja~2OgE=-`IXA zkBF|AimWuR78lyGwnu!?b{2{3>m+C8ZV0IXR2c@mSlM{9kDT%EP8J?8Pu|BPF!aqA zVQ8M&oQ~AbEtumq;^z0ou`t}MOtvMIO$OU#Pr2rN8^1Hw4a?#7mBoLj#^+Sx(-uf?krfyqz z`8CpB>zYl*pCZR{H)Ex6{s+~pRtuP(bp*bD3X~((C6^2~jtxAjg!vZ+vQtvhTx47* z$Gt!MZpWawkB@rL3&Uvo(m4tNJ?ffYY0iA#J#+P?H?~>-09u$n^m7L*Eg5$4A0nb@ zIQe+ZAiS~|Uoj0zZtM_bxXm2F%E(?KP(DUQFc#Z@D#9Cc^Le0yPcH<2#0aCA2O$nx zFceeXPDdD}XNFJWz@}mn+XKN>jGBK4Xe-M_-#66y5IU?$&@R?;``Ct^>yy`z^Y3Eh38a1l<|=_|19$0FHTv z%$}Zd)?jybqh*XBblL&@g$M6((xg#{5D&Y7ii;se1pq|D2b!A-K&43h@IdWQ?J9Qq zRe?A=MggXAnrXt*x{fM&z<1J`I6pT^QIEUck@y>0k)Sxs4V3Muys^QkP>9$b)g!t} za5$|1Xk(mqp-9f&lmZd)=}dV5JBBKGiRB(qNzQ6Rg?0KLJJaOBQBh=|%>YOSe+oWtN)(U1(=@(gbUi2mq!NBwkz)z>sYH8Y z-BF1+#yOx15CM)W%RGF}x}KV&yo+9|0~H*K^B)|9eS1k?`e?KP>5({CkpSQdYq0dG zLV*gE9fb^_qU2C!LW+$_T_fNMkw6LQQ5e;Rb3ve?2i~P&=}0#fz!eg)Q-%}({VF}oM*|fga-$-%0cAijK>!XaCT5s%+LPu7=~@8&pmIey1A~llOxRe1=}R$u zjC2$e${__>owSkGqfN~G^rztN>BRxcJ0os8(*}0X(c|W%1fB&=${aum#}xI#twQ_H z9jW7{DnMs?QhEx01`o9&jo9|B1|K@EYEycrsHn#jlI~&@ zV-(>SL7ekUXbSCMy{Y^m_M{<+4tfea;LX6KGYiKKf8iLpJpn`fs|(?3d43o|PV!j) z07}*PgSdEFa=p~?_*QSjJ(2iQEuBd}(ttac0JeM7Sdor%PYb)fFwM2L=cNEVG3er> z$u2hZ6*Ek%zV!;9&XNJ!NhdujEult8=|h)A-QJ>E9r$6zFdipdV-(`*%s9nNL_#pc zbgJdDI0BMHra6fRk(yBb$fpiE@+h4HaJ0u@<2e-mmp9v_y7<)()me@ zbu_9}3>vGsmCXQ57h%8@gt>2!a4GxC43W~G4Z;lZiU4B#jq?s_RoYu}(Iy#*q}mZO zI?x2TVa{<-Ns|8nIID3khdf#aVM%zxT8Vm0UvO>zVGc;|2<@~*Su zDy*8+K}I&FK(1H`MX)?{74g`QjQV^hz((CgHbhg6)ibgc80%FVEsXS_(2Rmk6xJxV zjNGwsGAm>@7>+osdxpgS0C;m(OLID#9R`@oZ*>~yt#uwEhc?j_>e#M7L$-OZmE`-Y zUB8H#e5jFl=}}$Sm~2mKKhPtL510z|PYS;6C04ngv4$H|y4mVf3YQ(fJ+v)VL3b!rx*#}X&x-mvHP4Z)81KXuS z2FBxoM#U#R@k+azxf!b_EL?y(Qv_tUBLa{!F9V94F$;`Ti_mA>U^DX5CC2=Lnw5gM z=ZcO*Dn4FwNwSdGk}@|Ql-=#SkGoT%`C|`IuHD$}Ok|E@DmK(fx2Ww>7$YS7)Pe?8 z;(#BuWa&-Asrh?0cF*Q^`wQoyoRQ@C`(XekU)m)+@1nSmo6 zsz4WE3s5K=gHTEgY+b{>Ld296Y9z=ZyHz2C_C2u28wF^d4n=3^7#ba^ zPUy9wco`jWUf)B3?l?LTjN+jL9{nlaQ6qV%$N&w!X$)~w+oeWSu5(TW*PluYGY!=@ z0iz4Rr2(6eI24M={P(9Mn@--=9b4@_w zj@01T>Dr_QN%Aiviom>XR|AUPkeM(1VK+wIIC*gdJI){7yyIPrWEg(hhJQ_TQ7Y1_DQ zNEdQ*P9!kMq~D*Aaa5QQ?fj}tt}rPZ<>HZ4cBuj32Atx>Jlp8K#UV#wmctjTqrgF#X`Yg&84;#W`2IPy@GM?E<5GF~GFF|yqly5G=d~TF#d*M`+uDE*gA|E54?f`LIg205m8;8dSVXdbmKjA*6L6zpPv20iJv13Gl2$fW|480MA686;!U zmo%dQQc-XW5B{|$Po+Hc;*+*0xQO_r+9}<@r2bS~VTI__-Z6@K#Ww(+l|Y!@JJMi& zRN_4;R8-su&mAeJns-jL;Gl3QxU55t#+L`6=~8VSF-FolQE;&y4K!qQ;-uS}ZqZfD zGBeZ~L&FSIgm)B}#T>vhClq6jDnJ1g@HUPG071Z{EmIZtri2s#m>-=kG1s*&J9<)q z+)>N|{urdsT+^11sKqOQn>Pvw9k``o=|~40)QJu0N7A314o4JITL@04(w7GyQI2WY z?rMfKs3(rp9+;<`cBCU6XaT#iNzYnv+ni#K)jb3^0F2^}gVLXY)4!!Kb;c@+7p*1- zMW+fej+BLAm>^PZsW3$*IiMON$6-bXK~juUa0N03P*jd-{P(7so0<*Vv~fV`(w8Js zcIixA28{Hi9Pv&ZQT*r*gL8^K=99 zxClP&Cr*^VN;n;=fK?<8l$;-GKy$?@`c&Kmp=CY7eM2s9q~vx zIHkradI(>oCnu#I^Z`p#O9dGN6l0;Kz@t#G%+lcYpl7FgaQ^LB3C3wg0OF8vIHf(P z0S8)Lz3AvD>C&VF9<=-e^rqsBaX<)t1p<%^(t+0$!~kq={>>o$ zDdXFv0uyaMigwXJ35rlTsQ}`Pbgaz<7!@MY1Ola17@--D$k|*^#q?+RUE&N6`E`Hg zU8x^1^sam2m_hKzU)(tR9G}XfM)c3;+v00Tbm)=C%8mJ8)ejC@>XX`*QRS{aQ|rZa zKM>2kwQmq3U6J&u zWuGgYeAP*$iBof&R)t)X%tkvi(xPjl7{hV}XNg+sPcGREjoWQ^x);NZTUd|nSN{O$ z@P4$lGv+vtw8?bAAX4qwR=UjtzvKHf3KT1b-vCapk@Vl_iFnO@$NHr=Ob z`2|D$Z+%KC5`&9nDsu^vV{`T%}JEGHr$YWL0Q(^(m zXadSXcQj2k^nw)r=&H$g3?I9(hs-CtRC17jwangW^c2{Jqj4tNXtp8tpv+5&9H{$b zrytx}f;pOR+-b1%?rWp7@Z))+OUB%NE2M(T8)YIT1Mr{@O2fmiBZ;*s3xBcNx_fI2 zduRR11yS0k%c$xFD1Rt!>SzMP4DuI>t{q(LI2fi&Glk!r3dem?2+ygY(CD|mHlMmH z9_vxHfb1{NwPHQ)rF=?4n-;EH=xOpvaK)I@u&zV)tJ}8QWV=(=tV5&Cba!07;=QYS zC?kP9sK(sX;w_lk)kza_lsaX-v|w%dt4BnNRoAR#gYOAcei_9!KsIq#GzWO~+YD|0 z09c)VqPi%fo~t_#i+{X=`bpPlF*biH`0L<_YsiQD$?H}B0C$P(emS@ZN;BZEHRTPc$rZ7gSE=Hy zF^D1cJ!?_~ktLCg+N|DMf%iovwaQ}}b*X0l@u#d>bOnF3B{MPXD(~8^rUnZrg}hk% z#A1LVcpDq9!Jr1* z#|wVkDo*%P;14$NG zcdf$74?)dUX=Fb(cF<;8K@i{#pj7EE&9x0@E?E5Lo|1rb*iZ$7Aq;A>BjY6TRc5@l zj5A2#K(2aSXh?j!Kv|C!pdB2ph&LACRvpH_1-?c%p4h09O4VZGo z@()@7=2q)c)qiyaW+Xk$Xh-2w8+nt;W#gwzS6Yz^arZ#_Rm^#@us8sYD>9=a#%v)U z@RSJEepNUky;kDPDfvECJpivOwcQ7b9S1MEy;wA|C(JR50#YE3DIw@{p48bRCj^XD z)mVbzjb-Y3-Iam>@-GzbNnoO`8=&;72(ZS6N0S5IxLN#Nbt?$;%U?G=$l|FRT~|;! zy|@tr{3D7k2TyzAiwgo&e(?0btO>Q&>V^vQ`4*uk)_&+SakVmA5XK>{{Yi(?!5U|_;XEt zdggMr`Ynbxe-U1k0O_LE^*FrC>BXc!-RW82_;*d(u}0T-4c9!?%Z)y1mv*spwHNqM z(_+;$>m^jutqih`jf~I){(iZ5cH6=%EeCVOS8F{A*_pLDjnu98M{L!ZVAnOGr%;(K zAnrOEpwakuNRx+q$ycV{d7ufQ)MgpB(R9#_{o*QF^vjk4ZFcW$NBA?+n7W^dZa0Qk07bXvf1d+`7rvGz^x3#Iz7bbC)TfU2T_`?*WMq~h)pur z?NXljrpcj3s`pym@F0H(H4Hu=(kzfcquQCDrtDA!t6%s^wP~=pvA6Am&M99_&@77` zX6MhB-k=u#De(-d5dD%d*XdfepARgA-hKRya{mBcD>Fl$PZHb5{)^%JGa)AnZjt%m6VnU8j^t_yp6Wf8!D zZT6_lgag)^9mWZ*0MKa{Ya@&jF_^+=EMcQWMei*CY98%!tyzMy(;o2^+z;oB#VE&HSZeiaiZwjPr&tu-!jiS1?0S^O z3uI|0VG^%$c&?0YjWxOG-YB-a`x{s2L&cJbsMVrAsA7LD8_Nk-b zcj-X+NvH82iM8n!Gnl*{Efq2Q{i%nm^ zejncrjk{k?IL`!Tq&n}5^{9=Ok!md=f8yKFeifJ`Ks+UJES`6XZ^$3r2enF?uY|lk z@@STV_EqY{ccv$U-CKW%^-dS44T_O9uM6mL7&Kc$b1$!22144OjrEz9OFLz>w>>a% zQ%&Iz7ww)Rzaw{1xEfQc_`6!!Z)*pU8R>=TO>YXX`tJ~4@7w%2z@Q52u6SQYZzDw0 z{?{n}BD_*1$BlKl&yWR;yL1c2D^c~I4{27S4JOadoBf_^INkWW#3StX(fy7U>PW=~ zhKzm^va^fL@dftxZlfULsy@Hr%^|#v8pvL_;Bmz>{t=5PBJ;dKd}d+QbH*yfek1VC zmk-%=Yfm;##0<~_4d;xtVm{3PvyH!%A@H@Wq5Dp`e9TWJ0pgI|_`_aLF5W-04_soB z4+kgu?-FVo+xxq*S{afriF`k$KiTw~F)NOoW|i*zU#XC7V*4sT;l)6jwu7TgVX=fw zx2D09NiT^!MXCc8jk$#nLPsC`KkKv_Dp&!CZ0Y{fxG^7mHz+; zea+OXKD~I%gZN8UuB@7TIx(};mmxY1qP)Dv_$=(ge-bB}BalM1Sw`6Y)mM=CHDW!d zfnSyVrhVG@OMZD_wO5*{%RUbTQ`DH-nk0`W%GY^`jTcZ9G>A#?E;a=wA_-dDgsq+=}24R06f?;kGlGAI$#%cZy$` zden>Zj4d#5a`ma0&D`M!<4D`PFG_nTk0evofsZG(1oR?R3~CVHJ^{@?%x2_qNcoLJ zfz4V-IteN>{LR3s$_9O^!FP~k_Nw__fKv;PR`Sg;u*_+pzq}}73F$#1?%11KniO>H zO<)RUkq&UCfEHq0 zMZ{K*O0u($8!|mBzwp{ylNgO~MRMLsNgFvliqi1pjMqXT!jAPuXC?8DNGxWuyO?AH zf@{l%j!&6h*Aj!`G^A4y(o-UIOZVno;aKVwLt4!jlfdRl)x3l>PhuGqZmhIWa(CoBYfkU>tNHLBO@ZS^u_u9 zLB)D5pKcri2555SAuNvDJ=ZQy8O5l&}MccoS}3ajZ{b<2S&Kbk_0 zwK|qeFJ5UE5p880;-+7kMRUNfJ+^HSXHZl(eg#{dT@(fBiprhi`%;YJwA8%hD~tuD z%*qfjkucn1qC=P4)KjhsNAdwrw`kftV+2qKBjd>NrL3TR!(LruA(O8QUccgh-{})Y zAm}nH#H=n6ANQRH72AW@!m>RtMzvgSWd&=mf)f14^u>AgzliLuAj^-GR$br3>kATo z%r_cyr&3QtJ4GYg0*IA*R(;;5r`v8f3t?CdSgWf2Udvi!`Os6YS z{fa!`9M#mbSmOaXHHt4&2;I!TCMi~VS=C77)~K-?i7QuZt4$Y(iUjG24d@8h#MHh#4ZD0H@(F{f_X#Q_n=vXtK>yby#b~;VYxh5@_1Y*4p zNBBt`*n9TDYU?x&1o(GR*(e(ujMuIs*+&|=b*(Akm9;UgUfUlx_{YJP9vrYowm99z zd2~p{!lQQ|m3z;{Ib*uAjUsG?^sg1PvuBnu040wYtfvb~$liqRuFt4E9?;upmdK;G zCc3MW1krx&hDCXnk!7x1*hg(5ka55rtF5unuj5ZX?f9=|hKk7Xt7|Kndfei|5peCC zbQObd;@w8#F%_H~`r^8sa@x{cbr&2W)jJ(;!@5KpVvH90RU(l{*!Y(G26x&Tw5>c7 zBac5&y64iVPvZOAjHR3#M{Ej?EkDH<${)-z$0ur$ofLXMhjfqL+_JM8j$ajNmLDda zY#IGUR)@k(w->UP$Em5Hx6w4FCPJ@38MAnsU%gUbi(>kUi|jrj)K`4cvCnU6*^|ZE z6})CRVb0${S+aPmQ@92@7&hnIwP|zabj(`_NsFD zqerz}wvlf?N{E#cFH+O|M?R4>xAKwz=quzMV%gT>VT^OgHTEu{uj*I&bg2YHD-JlX zki0<+#CnX)Ip;kEYY|AuvUt&g<7ux`@ZO~zo*9>MuP3zLCf<5is`y##rI2~OM{d-l zV2@F@*0l?$wnY(C^{cRHx{dz;-*Tdo4O>mLi(&xn=qbluzLyJYZ?t<O(n=|<8-EN(5C-mCnvs`od`n>f+h)A`3duU=r+JmO zjIC_FwvA$;rr5xGRT+Fur$zGELAZ}<0I0eKsi+?^;&Pz&=~trg#+hux?eD+pYc^eL zT))D@7)9-h7f9Ey{{Yr89`qTT&p(DN2#jqcbQr3aJ}tF^KPt{G-h>X7R@=d<`8Nzp z4y4wiX<9azyQXD0?V13>U2|KxLa3ZnOQ!3(nFePnqPh!@6nJ{hJ+Yu?=r+~_-Y>b8 ze7ie*gXvlt8rpAzp!y{{R&ZqPs~kA?zyT9u>ThW@(N- zv;omKiZqKP^6k_=`#7w7j~CzF4=TdjW@_v{9MWunmUj%ohSa=2VBfo7%|V%nmfj=O zIdkO$QYVAXe9Nnn?^9fOur8rhqroNU*T~09wNXwO2aEk!vQ% z&<}daUk>WioX;^itysJv0sv%f#C4zu=kZiH+ieLXR&!tK`ilPL3}f=Hx(zPI-)Zv3 z1!~Ne=z*dG9)f^8?L0qqbG4_O`-;_13|XNK_q}VNd2zz1%|v99F^1q!1W@U=P~*!$ z57Mse3OWo`c#iH(IL(d-$e;-&JJcSS?Nv;TNttDQD8LjZM3`aiKn^dJ!OtBjp`}#x zrne8Y9+cT7J8;}munq+6rk43?H9fOVIOr*WqNEMbRd)t3J?UX=pQQj;+NwP&Fc&y9 zqb~U(oOY-?hcp1j`OXgjRB7e2;hUv3LX*$SO7p=ReAvMBpb1z6ZQFiYK4x4Fp4DCT zOI#h_cC#B$c?nB#f!csKfMvnyij8L~{{TC2SuqR8jP86?ap`l&+e;jp(9GR8&>_#5 zGgW5Q03nrkeJZc^D2(Bot!u?&6fupwnpP_2NtWj4I2%P;x6+x=Wym$J08V#+DXplMvaZj0VAkR3e3m|eAZE8bqBaN8#Bc(D{oe;YYWZ**f%wuV z5}XeGDpijX?rxL-=-YQrDpV-Xhv+GPcA5T^&_;6nEdYQ2)cqa=XKpEb;($j=RmWQT z1LrIz8?85<^(X61$nQcB@G(}C(x6^ybseYy!|&Gz@p5&y@D`;boG+Af`B!)c?*(~R z$JS{68fwKj%wSd+kA&Wd`3fYD?QbHCWSWfTQ0OM^DJBSqM?V=eZ56Yeo%RoHsquGI4TWF6(82VO4#f$*%R3DXe2j&|G6_s?w zNC&k~DEY|ava@6vPHJ@1>_NuPYR#X{HxW;9i8@ir9OMSl%ydeDtnFL)YVJ25YFQC5 zHqzx?fTX%jp~EVUJ*ihrwk%bbr?p&2w&R>rkZof}vR#bK@9c{*bGD!TmuPs!XyZJJ zZga&R$#w#g>DFpEQ%?TRgBegoTi|`(wF=1Pv5LM(_5uT>Lh4(Z&22bt*$H9zn%~?& zBB&!Umw``}b^<80*>>a2arl~#`!;1b7Y;w*M!FS}JaJGk$>0i?0+TYD$52(`>BsyE zq+4BC6DfNj$NNUK3~~+{g6)lf4k~#N%>Mv8#Sr15)TS8ehBc|B_?yOJ{x}m-npP!1 z8;waD;Q(L<(z`E)){$KJ#>pj6QJrYyMiW0pzi01=m(iGfHR3t(b+828{JypISBXSJ zO1hYw4HEG>LN;q$WY)CMFR9zLFx>Ck*x(NDtLy-Qi0Ma{jtM` zg|_23u1sY;4KT7lCiS_M_1o88^Annd8G!_!!l8K<^6~CK;oCT?n2n+b9Wh(r<7lHw zpAj^Sb_%S&>oJ;oOc$9jZZwUJfb{0UT1JNsMBP0WS6nwv>I$nh>Tv z>FQ8$;;!Rz8M$`yYPyk}gHLQT5TlB*0xsW~Xt?e`%n$K&s7W}uY;pz)Gk~2GhUxA*p64HVL_Q&$oy&_ zCnu*$pUjsz9Vy%QFCwd$(1BOKr9D{g!ir3goC;|UxZ@Oa0V3ov+$rNN_g9KY$OoQt zS2wIYVvb-bs8w!9G>MJGRL&M-xhkUu4T?E{o5?xj6%#2_ieH&VYDL=InmLTdwhDXG z0PICbO6H%I$N*G<07VDVo?={&N|$a2&G=J%w%{7j2DEGjRMba1a7A2^N-E-`54A`l zfGY^ucoi}#A<3o}CX9T$syV=n{H#c&>N7@gcp0f;VBo7RDCb}?X9Q9ti<~tF3j8Rk zN`^mlRr7$+6k{i@X@(WZZL|z;!Q!lgwN6cE&INo(4^ApVTOBFE+M4oWj&Ko40~i!! zo_H9kW7~|iEXo4>wE2Lp!Ca{r`F*NQ(VnV5Dp->P=i;OR4}O&SjVyUSvmg9b)_N=LN%U1pX53Va*oxp)m zF;YOyFtZ|x!pUO5MJMS}#ii-^AjC3#s?smXwZ}cFQ4ihC0cK~(rD??NcvteMPKBq+ zIg9{0aa#s8&KT6DGFL0omHdTcn|}@I(hN#~`f*g7!g_GzLMy9n>N((4Xl2eDkx%3Y zG<-Lv$h&p`YPb9$RuY`?U15wy+;^!KCh86!N-dkXdaP222Ks5`KS`BydY z{5olp;{icGo@z!=m%vCQAubtX^s0xz65xS5Y_CsJ!MVc5>q9cQ0b7AbA`WJGBKUvB zAvS%jg-D(q@fcjK^KKRDLw4>uQyp->FIqVeb2G|Lo#QCD7a0{9Um3^uWhT9CQ`A(x zTv*{~1;ra<>cbU0hEgc-j(m)tO7zbr1M@T_on=s4 zZQHejI}`~7r$8xEB)DsF*Wgg35Gd|$rO@C-i(7CnZlyqQiWhe;uEp;!&-?w!?8)qj z&y{PhbFE{kj?3-Hmio%Tkf!M^ih<02IhHXPR(z90ovTE-L8v6i0r?w-g-Ti?GRcM2Qxx7!fc`wjCVShbGd>PcL>}3Sj)i=jE#?&Xd zel4};kseT~K?J9nr8(+MapM(e22E_YyU>p7E0vVB4F=;paTNHPD-}0R7+H0RQ4RH? zdi{;L)EF{FKpy1t1DPcF?^+82&GNy+tw7}4!){I!1}BVUA&-JH{D@)5v#5@?&WJ*Q zL!c9w?}c4d-Yx}uQ}_$PjE0Yb5M8PUH_GA&C5syI^#7jv1M&mH3@77VEeUQcGMjcL zqF@{Ba&-?BZ#-5)&6K2l^G7}??Zc73jHGs}HY~#eY7HNuna`#Ng!0jpX3C$7 z5sF_W>1qGPyd0_};of7fOPh`T4!Nr3lf?V^Lb;sauX!hXqd-Z)OjNB2HjprW+h{wH zAtkCW*kh^uFrUo*`38Qkv-?w2^G^QhJtoP{#hD_H;qB`;-K+WG^3s9Lz#XQ(U^dMT z&z@%}h3bV!ZPKGgiPUbxihd=jk~;^);l^h@7>8OdhFSBZpSTN+%;FB)5& z9>;4UpZ^2YvcT83Qx3W8>*)IHY}~gB-L5bu=;n6u{I)Hz*n8ZZ&spiVtD;NL&{VQB3;IBkzkI%8{*&-L-LK;c%~z%4N~kPhiU4 ztlNop0_d)g=-v(MJfFw{-&bb7^w8X7>n88fLv2F(K*|_4KPWntLdm}&6aeAa;wElsX{OO*p?m~OO0-errTxwIYTS?nQ6Y=Wq!4`egN*-khiQIo1&-O@N zBJWpl2dn%Kz%_yVkIer&$&+8BJC%Zj;OoaD3s>qd=+)ou$3+T1$xMGCq$&ry=YICV zjYgZCM_ni8|9RS^kw@%_%A<;=^V$2atg8Z>PuPUn&h*o@X70J!iTZUnyQi~HjV8CBE1*$q?v!LCAgiKb9lxGZ{$?G(A$vezZ>6G# zgALoeXprZ9B-aPS?|E;NVdl7d8M1zh?=l|d((E;dC__X=!u#7P;>8@9DkJ5m0-F z<<6q;JNwu*2{*rFZxyb|?tZ}#oh?rXT$q34In4Ln?^lqk`o$RH0UVL_QA{vC2xb)J zYL4zg-D^8?YX)cDEv-{t-)V*hCg#h)CNg*v((|j|MP$!O$_k$KmQ9X-9J8~WsP@w} zcOdcoEC*sHjfGSs?^e1s7fv>ooqFlITcOcJKvWEPssm_WV(b}|rg~P8`Jp(<5!M5+ z!G`o3$`fth3@g@EQ8&{jv(e(N>0-No*cr8k=U?&QDQD)2M57K>1pYt6mxD8ucVO9E z-`Ly#sm}i`#1V3vzlVhPVt1q@oKgL&R=>di{P;hAZ1j)Yatj)pd4)IGvvEKxC0gO~ z&soB#MbR!aT0~+Nu?FMf8AT}XE!MxsL8>`?{ z(!kQSB$+FrwL{G%+-!wT#FPEXHZauu$nY{fJ;qOl^w{IbV;mLe!vO_kn3iF z4A(AgY!S&bHuyyb{2*Ay#2BtDtR2d3*0C&^GL@Q7-fx4ll!_YGI+M$n9ibX|`QkiF zqEsrydT2BTH2MM2+OYLQ7-X=DO;A?(r^P4ql+o)Z&BQ`JY$v44rKY#;wbcT8gXj5s z9t_UnnV0i_)8Dm2)_10w(DppIwnnrx(Qk@? z`I1{<^KFBDH=O1SS9-US3^J)vH4!W**%#w=N?lk*ux^5}c_*$kve2s@`YN*T72C*9 zF6hL+`so6*5e@cVg-Th>7qC>I&%OYqB~k}f_?19Ig-zB{cBn;L<(^V=Yqzf+nI)95A&5CAX?9^zT{Ow`*rES z-D4kP4uipcqE#p;7W@^9pD1z1ot-aDfE5><3D6&P_pJrbdWZCeI8fvzCQNsUxF0JW zVE6^}Y9=`K-5N;20sax?T5QoBDVYjL7i$_XOo$G=l!dNPIU}wk7VAW&@*hBO_e?WM zuZ+Rnk%1Ug+eNuL6RX3-17d=?akRv6P<8R?&CbBD;eC%_>iM$ZZ8wn=eDi2*DRuJidQx0HoVJH!N@+qoS zv8d)oBKKLOK?uySwe(3HRLMO5oUkyMsW*QFYADF}P<3HPw+`hx|8|MTo=B#{ZKxP6 z)0fPZZ3VkdluA@DFOseg=7W+asKj;H0JsR&QZNe-OhB! zDDSLe6WogK|7|11x>ekRtia&=lTDGW?@l@vTCLDG4QD%2UrfHt6v1-KCS()yECukv zeDS*+6!<_}nTp0)-u42SsI+aj@SZ^lcDbmMNXmUU59L$2?<&j-3$4`H(GvM$r_%wj z5VF;LeQfA*DC-VPCqH0132De2LNaD`LjgK;a}t;=VsxyOhZ@35V5K6|GR$ndrC1v` z)!D6ZY{YAD7Y_zEwVR6YR-&aAPtR|tF#H!9Sr=GI%@XM*ork~G9z=~VV%mnkHkYVS zi`9a}PC31gey&%JpJS0I7e0}1!cTqc~E&#e50w=#x_iT zLwjf|CtkROE8GrL^t@z|kGuhh>ewNfwtU0z-eippA>=UK3n51H)M!bVVroq!rD6dW zwl1K-RkKQBwa20?!puwPP4tjH<-dgw!ns@EwB;*SuB`vV2lo_ia0?fulKCJQjxxDW zV(FloWJTx~sO> zr%;(e6(4>8TVF|l_6{n_eA8?CR4GbIWKVo(D8QA~ypcFe1C$SlE2V`>rVx!ypA3@W zd|f9C#eZgV8)rom&JSxtJJgVDwA6-;RYr=)oU&>k_LRoHkYTHL&a|J4X2P^P7>awOSs39uCgn?%=M%4^Oo6fu)Cpse>gyzt!cEF~H6hLJR2{q3x_8%heuyPnEcI`p!s#M;bJ}Yb zS<3e_JiRIU*r)4=dW-SRL|<1h%cgwn{q}Q&Y5CpU`F!bZY{C7{*sZ^rsL-M(`f^It2H?nAtupZG-3UV6vH* zW!d5-YgrQLdFpazk~wh5wfmWMN5Lshw*Tbgh9}SxP~_nW{B3dft#@wBJMU+lM;EC&M2(v)eZ`WUyDN4-Mu&u1=8fvESi?EDn+_{r@(5qAMwRlUdM zIieE#9Zdin+TZwztWB|cuAChsfsI1EUMv23>hGXQUP9R?PaMoGY z_Na~H9;9U7e|m>ROjjAD(Z9*2X}QRqg9y3>pU_M&{0%UOygJk7R?0g2t*=- z%%8(oxlMmq=hvjZ%(E9t7lIPK5bl{Bo&KwxX%{#&=VJ3-A4)7%-dC2(}QVr1DsaenI zc7U1HvuyRS{&h_2zA*doa)hjxvb&-8ga~-H$Bo=)HVuV|F;4P(wFEQOH|o^$B=u}? zemFEv`%&hbt_c=e+=g!d_I-J6^ykvB@biq5kfh|5PVe%~v&iZ0W$MQS2Dc~KM)(D# zo@DG@HI%tIncNwd4$J?JZ!<+Lmu;5Gv|p&@s`h91JKO4=Fu{GCpwi#R`;)TcVoLyS zipj!k+=*3^!3dLB{65?mIdc+t9!!k5Bd-{ENSXRHV@0eWjIZdRKYe1o%u?jBH=5Vp zRGv}kWt-D%u=Xh@V+P(bM^o0__DcSMeP&eZp-U8n%=#|+L`!MOA1E|KnbnYB49NLd z|GCPWC#b~Y{%|Sx+@kqSN7hKpV-c((U5JFIWu`i?&Y#r8Aeg!iY9d~IiLe!b* zPxBKz&WABfnkH6~&d-$k3#S=IbB>+mx~o++W4*}4re+f6IrIK>BdS&O`a4CkF;SY+ z0d{RXZjDBM+|t0>J1sO|jJ5l&x(2->~1hTy_ ziW%4{VA1Y3O1=@&?MAH6K0pG3w#EekOcDS3A0Wv`w+&fM%DdprZg-Bl87|MeYJJZR zIS)}}Vd4Wckx6g#!BlRB}r}zt{nz*P=t)Je)9Yr1e!+saB8|60TUs6BqzRM>W@uzDNT{?oC`=ygSXVS|I0=cfEL;7oGLppo&U&h;7 zG0hCF37(GdqGN$W#us>wa&9(gzuy0uyXig-OiD&;Tl<8EQtC3@STP}*p z#8_o|_;6c-mB(u+vtsAOz(DSAo{Q(;6Jr0i*`eP!Zz%=IL={sBp<}O7?4$a4(BM+4 zy`Gdws`IBdEJCxHeDrz{m`}2DC{#7dQeXB-caFTkO!xh?;^OgZ3Y`|fHcMvaJ4w6m zHLKSzuV#NPwFf0#UaM+@X)p)uQ4X^Sj6(WeLbg8r zKR1k)Go1ZAx55ZjqVOhKnWt5A_YtW`4OY~+@%bqJ=fd&eId13cDJd9t@@PZMaam9Y zB&gKaM0F?UtTfAQzI!e<-+1F)sW=A8F80(GF;AH(>;vt_}pq#Ur zq60VA31{JbUM8T?RajTM`v#?pBiGD&jGBQ`0N69f)hgGhg?TZ1vSo0^eBZ?}+SHN9 zr(>4qnFKq#e#XK7^v?o}aP_bL{Iyb^Ca~s0XG%F|AkVJCbg4pVmtv_Ue`>4wlhkje zGvimboZ-oh2`WFZ&Mff#^-=!)J*PVCsGF9wN! z(z{^)n~T}iFkQVkx9Iv@hDN{THJG>Y6L+NFHm*(hSh)66>xFZaEh@+FnuVUhy4s{b zlcJ-BI}U|eu00z?aDk31nVW^QiLo!A?DWYgS1|?e_UXO|Kg!3W0sopp)C0jdrjUTT ziiyp2lD{ynC%Hh*nMar+@Xb$HQ`W>aH_>4SMLjDfTTx&8%{_PRI`-?+3Rlf00GPDr z0h`a#%#;P(kqNzkL<P)X$*$tSPzu^h5qh?#|3FBFRV#$RZzOB8GGkb!3&!^P)Z z!HvLH1X}M-vd5OmwCT01E7qnov8h8h{^W|x2WKwS8!`XPTnQ6|@s$45NigEmlQXh} zVJ?uZ$Ua-z2*~I5rGiqeNw%xq5|6Ib!I-dQ> z5A`Neo_kfNLMdFC#?`xTkK@6TW-EFS|Nj7A8pmXc3}ec}2Edt#+=BsIagJ!p+P2QC z4^#ynn?*E#AJ+1Ji^bj)t4@H9P{^lOj1^Wf!LZ2?++Lu~yo=CKmjcq(ZhJu#xoeQKd9I7l;XlTi&6i5^2WIkZIATJrT)BBAf^r+k0u6bHz zNva}wMqP%wlld=3KsSeF=6EV3pcJTdr*i2hxxPg!bK7#h4>P=(AakT_nmKt&p+DY+ z{UC}ISXJ8AYZb#fuSIR-!d0Y9!ZMFG*Z{8*rY*WLzuI8_V7*$8hMOGQJr|jx zGbeS_)jV!d#V!s>C?Wi|+OT%756!!&twqw%tl?ZjGkT#s^6!0W8Qax{>jywH;s{(V zJvF0bHy{y{)LQ;n$Qa;6hhmj(S_G&i3Ahq2h@TrlE_{;>b^@dgxe%B`3)XTI6X7*d zTnFeqDy-z*KtecL;G#x2z45FlPlT+=4%;rqACIm1@2S9(9>yp*sXgyjIS%s{;o_rl zI`Z_MVHVuOEW0*{Ak{}c%t!%G`u-8eT8xXLEQ)h_{S_v^dviVrY>S5)uFJlEmc5no zl^JC2hIFcduc`)TDT(wCjV@}G@Nyj;OoICM8BmNM{v}bRRwmz5y&tFdfpG^A8yQLs zb!U46D-qR}5ssdliFiqx8D_9_;8ypS&Sd@PLIJ4ie*l~JO!PT67iEW~5#?M_v+I;j zMYDmzufuoVkF3^b-naL?5C;*?t~ks~21eW&!p^HbwuE4T(wfW88Eh}W4G2AJ`}Z(! z-qU|9tqva(j&pOwYwr_^yewiK%o@!VQXPtD(9F%Mp59;3?hsy#4Ryzu>WPY<%6JUs zSMSU$3Hxci3V_h6+3a}D{F?r{-$M1f-u=|M*k|?3;Ckv^1ut)Ks`sWf1%8-sbr9DZ z-omoM8jduLeLY*yaSZu`(gL-!a`oqF!~CTpff?h4p5eqf_$|MVARSTlhX7Lcxa{e} zEoS1>XAapv!>)ju0w-c?+P_Mc`c7jV^4tz~0U+IFhVb`Hh4Zi#g>J{l7~MP|ER2|HQDZ898`^fRz!ziTG9BrlEUn3eegl8(9A347PrTyLn>FTd^CNC6f!@VQBLl!}*j&~wsEk3HcYItZxUbDYB=jmF`Wt|A zF1h^3+>w0sFV<_vKb;{v!zBog^ATU*cEv$!;Pz6-K_CmS*eaEmDKWwy*ttBVdIQ|` zcSJDAQaf{W*MCf2G-x~OX{FBkUOZ%4!#*>JPz- z5%}t(lfnu!-MFqvr5=qV`WIR&H17pWRwS*(P!c$xdNT`Y59+*3*Z_)G6`o(#x65cH za0c6!fAq4B4=+p!?;x}Kfm(giNm2Kls}W~Os(9Wo7EgrQ zd4$NM5yd~E(YAFwd^GY%+@`J^2xc=5oKmYq_zS=5HT`2JUiU!9@y&GvoCz`e%{Qx` zBA+CE2(y>@iP?3pw9)k0P>9fh1UbidxU&uy(?`v(M*s{Ge-JuwgNqnycabq^P`#XN6AI&HqVBfjo1?f`Jihu(=?CrnU?&TTyH#g@mhaK-R2xGgZG z`pMMra!jAr@QuF>{#@?N+u?7J8c}r$!pGe%Z26c1MzSz&h^Vh)=AO$*Xxv>H#jqSAoAd;(uN|*JL*+RMB>zm}}7Y zi>7^m;%ocQ%M|-Msx>{|98s>XeXHrOt9WB1E>rpUM^RXl@^#I!+LTwoBy*cpnZE(% z4=;jz#rlL@y19-LNB@CZr`_I2GC~4TZRlTpM}dO8Z8IuPAx%h9gqyj^rZQ7hKZomR zHyL%kaW{9KZoE%Rr#n)knZILtUmv4J0kKCLeyU)u)s-vZ-7PJjo7j3R)xI?p^rtb1 zgzwdQ#@r^?6Nox#N;fT4z{a{N`bAH2mQTJ)MCI4YbI@7na2oS}o3Y6egGdzHx4&mt zu^7TRIWc)?WgL+e@uq=bSZ^LZE@I{GDA*I0dOX(_7)u^`5snUOaESiv_lK_`3rb>U zP@6a#X^GUNuT($@o8|ujHW?%efXy?0+4zpR|PSSQ%fsFZ?St zyK6W|e$H~~5Vr$L6OlTAtkl>8w6Nq|O6`pU6~xNZr6Oe?ZX+x=Iju>Ejqo-VzW1#T z5e7MaT5gienO2TL$?94*K!1ox7yG8cnf-nYndrjST*F!+9Z zfGpb)$^*=r&+7-jmyHhoX)b6uKg}*E=@NznFNiq+Z=7zlgl_j@+JadRc6ZN9(|%!Ts}^ zX`Do(OS8)LJPMS72tZDrku%CU5F zH3I6?np&@;o$2P#bGcKyRUKU&6cimdm5aqr;S2%us)XMQ7y7Q8@Wtle%^UCjjq4jV zC?AZf*_XCyeT%$2cL*UqSTY8NVp$vM_)c#|r8_#S3Td$02Z|LNS)XXo$vsJ?LU*P- zr#jH2jPb`veYTuro>~)9GvlRj{|ads-|C)C0E0Eje-X+zzD}4f7p$!LEB6naV(~$m zIxU!L(uqRI*PUJD#tct==trC~FoG_w%=F3&47eSKDsHMGqtu4|$;MQ~^yK9_=MSBtcTY{Y}ljt?_(BZ`yh38RpZ! zn$Z(n3VSrv%2EHUz$VZj9Me`zg6j9QmG-UTRCXzUOy6i2sWEEnYCNt!S|mBK=|UH4Iw;6XoGD+c$3L%O7?ECE6a4#~p| zBGxla>Yr+gD+$>P(0|aimh{va^4vrA1jx9b_+UwfB$Sw7ZPOLmRxVcuV^jl>)LWJJ zU$e6>U_}C#WFy&DWzChZqpPejGidSZqWwPk=qseY+CD`B;2vBuvh^xI1aMLQ-jt?t zseC6+lm*Ov_%X8aS)`H}+RO61Yi7ux8)-U;Y5Hw_M0zn&K-^eYkTSQKI1%3pIoPDp z!ZbciBGG@;kFI8l{YHUWTMqEg{J;<&Fo{Muby;nwY^K0YP*hfWI)IapLzx{*I-MJt z5NMT^)WTF=j2_W=Q#!(tjAh-Q!`>edV2xT95s#b)az!!YipcJ^Hdj{OR*R^`T@iH{ zYX3lTL~RUCI(t$T4h>{}YrKaLH0s{nn@B}UL7wMs5ocQcZtvNJs44GyN~J;|)ug{%_%uGzlb8JM_MeQYuo!??{P^z6&8-%`b*q z1gd01NMo}1dREBNl)9QU{3)o}oY``Z8bIVF{7szWX>U z$#fY{?g=0sf8XX89DHM2WBr?6L|99l30I^9{j zL1|u?8{C^8H8Xxj1{Ky1Hjw^P+3LL77Dnr7|Jt+13%)ZDuAfre6)0p6uke7iO0~ht z@pya~toJHcz*{W^=Y=t>!U(xW!r9^zab0(J3nM;n_(k10_(|_{l2d-$GJWdLJR?hEAf0YK!vHY00=%rv zitT~%TdcdNTHBx!ZeuOXzY4;iP;}5tcEvq(PC@&y*p_BCnbjUL09;WE$)1wC0*?zA z@LlGzRg+I$W&*r-5~2?y9>-;!w1@VJ@0EMzT949f zMexeei|4Z8aP(#xpx2K0YsFl#S+VkCe%xM)`Y2r5y^`l($p8ZoJ^`RGSHCkAYVyo-p0eXMi_A-1tnP52f_MozF($(WeIz&K#-ugHON%J&s;|AtReB;1d zde)v|d8T9pK%x4Iwokwn!xB*OmyBi)&cxuf70M*_dMmepz6>D%S<6-=19XzM(6ZGu z5XUuMZ>I`aiqU9cXc=Zpp_bTB6>UeTr<^iaCAAKSYGGvzKb}$aOLe>e50i%UQk_%x zdN3{$B_kdn#hPED>yD(!%*3084;*r(eA~qJztIj1Y;Zz|%ca1Ba1KJmQ~lv@c1QdE zsJ#<4BsT|$oOyf*JCYAaKwmpODwq2-#Cnr`%i|{~f-5uxwlaQ~zyhyz>dCoIG>PCm zvG!(%+T+>t1dgX2u=_=g;0LjZH|qZqplT@N$h5bf{U4yaRZoYA5>A}Q+EOh?l}>FE zriAYVO{3-AoDD$%Mx6f#pkEln60tUZVHu-RADTG-V;7oEMW<)YlISUB^A*x9Q67)= zLH!p4ZpJ`g_Fe|(mvV+s=r<>#RG?65Qma>4YV%V`GBMRK+b!9=DbIv|2I}Yb*s%8l zLfQ+H`q6sM!e}tvX1>f6C;gtX=$;8uZj(ukPfqeO4T8$a-z;DGlrV?V$%_>CZ0MkDk>T|qJ(WPD^r8CRT9D?ioRJLXMWM|yFL;FZtrAQeGMeRs$ zA?sfeaqn_EufY*fz2FbF!&_mDyjGTp=KbZy=kgonmvTcZ}(VEelnkV{Li zPFIc`yyF5>k-+ z(&CVGn%N{&U7t_-A~7t&`RI0L%OIUj^+es%xxnxyo}6thFoIM0l^`{gMsLubfiNX0 zK|qK;WyXyvmx$j1Ju7PSP>r|cpKlRul!J&4nrDepn8&15R?mKy+V6^14F?94dwZ0E z6}r^7BbpO`;BSyVYzhU=E=>W^SXZ`8*9;#JLbk$f0&5A5NA-Mq?SSTk;RU~nIgDN;`Q+7GqV73hv7fQdu> zCu~8%aG5$CPTW(rxJ|a`-e`pI95{56#Oq+a_~hs#K@7MpsaW#WkpoOh=bS1hAt+C4EEE2c+$;xl7S+LmD35nSz=#A5Cy zo?3o$f)Kw`l<`&JY?#-mQu+nQ*`36qTEm-y1=fXWC7>P*h-bNKPIrh4o}~n*vO5os zBW*C7kY7~78_O`wJ893LPDQg}?O9~cEt&_0xE59(JpgJ7G}WC5ZOoVR^IFTvYTinT z?%mWx!nM4(!`@k(GO^O#pyv@ec@uGc)P1?ARWjQFlAW=IVnt*EuF%h^tVj94PwH5k zi^F)X3lEvs|L|MUV3rATxc9O4KwR)%?#iQ zepNSBb<>_Mj=rl00XE1QA5S+1Le1?f90;clBl@2P>e}OH}bfy zRdCcEOr6eo=Z1kR%#X6SKS0OE3~acMGG{9t^zYGXSRjq>gyb`8%lf-JDE?@a`6u&s zDV@P1*HhfD%vx%3uL#MJj`J?1xBOrp+MKpyJpy{rvs3x;_BF+2QKCrvo0r$(5jY=b zhq@UXXd9NmH3v}g)-8dupLNG5YeU6TLp1yE)=4-q(bH-$RDKdSRs~;T4NkXnAIC|w z`li#X#C3|nw^`mSUzZMHG6ue%@^~rldCk@ow~AsW_^|1*Lk4~_dM zF9&xO83>WbGcq_o$4YAB8qttA0XG$Kq0-~aF^+pZi}SD0F}_`Hy4g1ACZvk55%C&> z3s4!+|G)xx)Co=veIc0IrQu>vJSY6NUr=f(R#1B|K|kvL`Pt#5PVVtw$ks*WYHCA5 zK$_i1sb*QF#l*yo@RX#p(|J%GZLrg;sZ*9gsyDp;2~J$I4u|^Asrts7(n$lqzp|_# z2sE>ZeSmSS$chJG8dR!KJ1YuQw(PR{RgiF4Zdj9z)_--cQZR44&bljL1om+JsjzTT z#j$1D(-*E~nmIcwnI#qit}RHZEM;@W9;pmYj#lKi>oHpQXhHK*m;xtaUau@9E z#UX!wVrm3(4?WEE^$vLL!{b|Y0sY6%Kb|W4HpOa~&6nc>N~-CzTwY_L>34DelL+m|VIT(~=ta48OMD3QQ-n}|0`#SkwL*=gwvS;a;+-CPzW=p(Ig zDIG+3uXrVY#w-eSB#Zj)l_JoQ&L+SCg~bFPthriuF;@JT=?7sSs49(49=kHnrHS4$CB1Qy80XDIa@60t)BrJ!k9x zLNhzb-pX)Wjjn6!`Ab(zxs~-T9IE=y6;SmUi#;IvM?zK6ZA0hl-bhT`+>dRuxXnYO zd12t!jb~Y8%gaaNy0_Jki|$hAC5yylg6i0f`2!=nbE32X#G`KIBv2#LA>Z=YxQmt5 zhd7m%gHNfeUY!?vGgV`jR^3!xcC7hND)z&?c0>ecqQ#EW@&$)?pc!6O_8LBfI7dR_h@7BnwTth)2GLX}^S8!z#o#ef<-49A$5g}zOi4!*GC9%_S(N(--X#1b=uu)VZp&;*7aq50G{4r zE{d{onU=Br{E}a!JaVBaQ?0a(bMMVP)R^}cH0qtE%JTmQooXg^8^^r2TqB)seqL`t{0GRNDMsh?f3^R4j@T%9#u&!49FQ78&s~n`VAK0E?gaLxc-u(E-~w?O|{Vz9ncY9gXbRM#n0Y zQc$ky)o87M>j_@^b4$4^rN9hK z@N^c;cf%@df-Yr&c!Ne~o0jdacz{)wqPB_W_C&{fFVmiqa-6na^Opa!+ac@~HsDNo z!a3!%Ff3`%0X^}v8-juINCS<`lOO-1{kRm}to2eNf&5J+fM`0i2$n?ZSMjMh`d0Vp zOO4Awu-IfLdcBF+-o8#NeS34PZFltnM~|0gT>EKDWpjd+Rl_BO_v8>HwdQhYq|y{q ze`9QDs?-*12XrSQbWAQtF;Z>B--rI9o4bU3dEvvDqgR?aBk0eXRpmafNa%{VgUr7Q zp6aH0>50D`VE(2xAP_UIma2gwevxeeym*RH%GB-i5EJw}&O9<&=gfJIom6~n*&qs( zYl(<}t*>RhkH*oRoP7~~F7Br9`v5K0{Mg?44@GTq)BF9xzm4ss_UgA=^L-K!oyIBS z-=G4+fAI(s`SvNa+5~}V^cCQRR-ON zLxfq^`NU^grK?35IzR5-ZOI$AE$l9;`q+lU>VzEJ?q79SHh*Np z@(<06+1Z$d+n|C)*dF zzTK{7%+99L9h5lO!^1aM#}fHh8k_myL3@k?FX4A4SmRf*a8U+24Hui6CQ^gZ3-L+P zEW=rfCnSQ?t);jjxbi`?_RH}p$M`n7il(?EDB#>qElgjsV;}wj$!y(Mk-jBcxhQBb zEV3GKekS+`A;xf_z8vv5O~>-I(T0ugBz_~FjKg7r<1YbZwh4H?sYcnlavRI#q=)gu|D~0 z{}wJq$;~O-@hqyt2R&%VdX)=Cs1INOgmPQqJJTmysnYpYsC&m8d%!)!pmXD@@O{1O57CJ3_TYUH@SL9y)tp;l=0WF`B%mG`E zc0?j;>zAZKI3Tc77m1<-U{HV%G@kHZrQ8~*)+g?g9EUP$9J+?KMIqfX~?@Q|@R=+har4W_>XDZAJS&pKNT^;@_SpIM~RzxoMvp}89yzU`9L zd~+3j)r7Udu}`2mz&nxT#V7Js7z?(UD|JsihyT{&bUpe%K=a$!KqLI-G>>Q4cqB4CJWGg z{{18tSEz2E-b|IKgeYD7=?aW2>F`3UuK_JDo3bj133<}8B^#MRlPZntUH&9kJ|-;o z+#Ec~l^ydww}!1})|dE(|2@)bX-qo{q z{A#n5A8Sw%amt<@HTfd(_|9AKLP4;C-x_!$^o6pvlh2m@TV4m+HR6-ZBb}+~L6p&j zV0H5r*_C+lFdCY`#*#~a?VUpBIEa{^hcyW4^v7a^pfKNL!l(I?7}J1K9N?+-AWD-iiB#NlyOdEEq)V zlCwX*FJ4}{j}3`y*BKTkW)S+Gt2-@lXplD+VEd?xr%CJk5_=|n&w3Yh0F0w=-J9e%zW8cr`ug2?WZ}XB82A$N#4k*c60xvFq!c<@Q zaT^7*@zQ?)PggfpM-Q5~=8*+v>$?RH{WreT22l7Fy*Q_-w7aGY-lv%pB-5+;dM{j= zkE=jv3QJ9IL_n(R=n}&B2 zfS>(Zd$<&pabP<_&u*6UWMK9_`;YU{Xs;?kcWS}+dXMr!qLF=pD8XtE?%_|xAFC0? z6wf==LzRagVLqWetZ3O$8ma3iq~DNL0z`19K3f`k!C%R1jZbxbpr`Tze-2InvwemY z#bxzzaLaq-g1B4v&=p}a|4>~nJ|mo z7px?yP2o8sOlpsvV1Wn93j(!F-up2jaq*Yb`$c3tnV#57xX6vFNN9W9ui-y{p9KB= z7sWE)2E5e%OP-!>V81LZiH~Tc{XYO{?^IvR*Wv3LtJUoQ1-t>Vd3nv)U3h&_QGF&8 zr5I$oJ!7LT=98^YeT}t}5)p6nD~Luq$%+z2Ha+`AW(vOp?>IaA1VcQLO8MSlT|Idc zrS0*Y_ssjY_T=%7#^QM{7VQ61Tn^knND@`^N`G>iO5AS|M-E}bB zHNuhmb@G3|w1&5qSWO>R97#qVJ@2m0WblvZl=6Rh#6qM(YUR+gtnaT5^$KU2sB3di zHK^;Vl^PA1e&KwRut&?e@`{p6-B#(Kc)}4AivoGwAalXyp3l-JI zWo7oNAT?iJVsk7fv(6V7$gwv6Y1XXe=io19pbKrj-I=H{ZR*cS)zs__72*nn>c2WveXI&x(R*JU5~qWd!$(IpP^8JdJ~%-Z^U-PqPCN<7&vYIK7ulnVodzl7_A)s7yyFwKRk9 zvb8XYvvfN_GL8BjPJj-~R_1y6Fc5$+VE^RZONrmu%eit( zLI9L;KFWo`kmOX7AAJG)Z>dEgl`_NZzC*QK7p6w-msz2#R1z$`ek?PEK9p8iplS{a z0b7hvh8JL%b=9G_sAX%e)_Vs4WsURM)_Vfi<_B>C53odfn2a6MHin5*j5&Qr7wC(L zUvKtBE=S#6eFZcrP<)nnUz5KV3HsZTBHls3yjyE zd@u2p!+0*wOVMpN-70`i-2S!bCr0rmuHW%B)J3FWe(Ig4HJLFfCWYYLIzuM2d*{4; zLF-sPKk+i&crNzW!@6sWbr=$3u&t!i{2QaYJ><=IBK7`0YZJ!4E4aV#eg2=J*&idz zBXbRaP-_#&yh#SLdGO;#mr=oi<@5YKsu8OAXGWC8rdx@hwgz!k$A!y9=WDu= zcJ872Q~v)`k=x#f`YDR^A8Hbte}Z&D*gZ6dC|*nummRb_)UtAN`S?zpn6aTms|KhQPdnn>EF~ zx`tllb6prCcG2>WYHMaE3a2@s38RWQWAfqwO$J9y0Hft=6MpSa6<_Z@++j^TfB~dO z3^w{z2pnx}j)I?V@4R4UhU>*T306GugINLQ{{Ru3f1>O>aaHSFO26FHU;@Ik0|J~sBJ?Z?R6Q&~C%u9Gqoy+txYt;-A=bh%OT)n}6@ zBxF)E6FY|5X>x;QKqm!qrdh*|7jYhx5pv-_E`2GfBJbSQVhuM^xdG#k3Tsh3G~*33G6R#sXP-3gl+B z**FZm6Hu#3owV@OqtKS#*xz#Gn%K6|Wc$B$YW9z4s~|Y}YrTU{65-=q0a(eUxvw{4 zm9^1^&)zOYYR96N+7NuT*T)n=LSn8#Y^AWg3c=LuX3lr}H~^}vj8UxE3wLqKbJDo^PB!AYJqb5Uy-yXI1U+L1ao_BLyxKu=#X$!Jpy1g>X zZUY9zd0o3ml4N6OuSCYrk&-I5UvF`jsV{MJHXB~xL-uS&`Tw1SA^rKCMjV~8zM^d#L zPSsPzdBXT=0kx-;aaz;sS93?1CCK!ycJolTg*?gS!94|fxM{+x~;(r5Zbk?!}Ajz4(eS(Kua01n#Z}+tz%%)KJ#4C zS=~z}XL14UT8pIH90GZ#^)Dk%bEmk~ZLaihEf3B8+VyV-T?@S$6=Ao^Tvv+4X|;Bu zmh3TJq2RlF%WGGPRc*QAxbc{4L{XXO4zV5qs*)3&FG@1ew(NUSJgVO+*N;r=dkmC- zp+!D2$Tp6Y=^+ZC*wk!Pj3}nr0!q11#-mZiO#cAtG2WohDzzz$ky~_&ftuq!B3Z|E zp}dSRVj$OgsS2>#agZxF#CmL3nl;2k=W-g-l&vH_hsmm{z%+d+rAF$wkR*AHdmK}Z zq=S;YSJ}c>iQ`Xlx}e50Pg8srLebCCQxlvs*4L-LKKd*vu0K}b6oO~q!Gq=f-!M)26z>SZ32y> zy=nM}JaUNv#%m@yWR*v?I6i?SSdP(xk(^g|@aI*J!}nK7GjS&(xVV}|;Edw5d_5h# z=Dlxkaq_DiR@7aYoppGg#jbo$wpLWN830y1o-x+-TV2q`!CYWhH{-1y4H=cKb6%$ggRD+Q^;8wD z7lxvV!(KlgmC&%vk7*Qn3>q9`3mP-Gd~~XFTTc$4u=#v+99OyM1WM&DD{uHs*^r^-eF ztvg)lHq~$L_1#)W#@{gQRTb;{Plavwjf-{r;cjhm!sL@C}dte zE1ORa>TKWXF8FTb*1fKSYiQx5eg6PcU1uQON_39Z<%14Xa4Uw>^(}VoiXxQ+{#D*; zEff%zi2+sXT#Ozkw+zW=0Nyv13Fo}L4MmFHc)z1>t769&YP~}Ak}v9eZz5S2J!2P&oAO#SdkMLm8b)xi$~FP z_WuA%m2>s02Vc|>!Lg?aiS#}!Ljg7LbLo7#Xy4vOZ z!)>x-HG$I;Za)r35AUZL#a?I7?H6%n+&c>8qqNrVkME^mr?9O%PYR;2Ym>Vakja1H zEr|(4hjH!2Q~ucT1=QKJh@#hB9+6|!5OM8RRo2(#jXMAzYAwEb3N>Gc!jTMp zqD}SIMK_tq#W?^4j&X`s0+qgxV{6EaVy+nkDgv(+9FuPOdsDEkm{Z82z&CtsM(>o= zQ?cV==}7SaxZ^b&u#XrN%*VWp-+6jew&EuMIp(W*s>f?_O_er$!KeaRky2kQ9xAa5 zlaAEr(VXS_Ekx`$angf9-e%G=IHdC-Cp{`X+l4f!AZLmIkg<^Q&~&MTLK`B{ zYK4`9{PY0!V%b#tf|(p!khtwr#9AYgK0{H@bsQ(;;b=1v0b{kt6+C>umfZzp&8kA9 z_guYKeM)AB_i2Zq4e1PM*=7I=rf%(exf!l{CAz!GClz8n9I)QamJ|VgO=dJ*+ej6e zKBY8={Tec$)$ydN{qwuf8nCMrSVDsf=|C9qPkjFXAsqIni+QJDW;rWbtkJjJ7^Q^+ zb@_2X6=ATCcIOxZuA6HdXJ<7tIosud#Z_Rd(Da}Q%H)hk(xzLFAbiR6s_@RpYDRf3 zi92u?r2s69CBbef(fN2PDx(5;Zq;%&i4X!YS^*w#_{RdISkrLHz!cr_9PB*$R7CD< z9=?^B8Vr%5Zc&<}w{XrgihoG(4K)bc?LZ2+BBTKK6x4W|@CoVk=k2 z)@JVF(E;FftjkXh*hZtwKG8b=pN&Ho% z+J5Ra54X6W5C7KvBf$fTGr{AUdWBt6T74kprg>kdNu|fylarz48#%l{BqYoW! zeqF-%CN@so)Xekk!g>n3Z}&iD>sE+_0=UI=;eG)~=UuM=`B+fbI)|1AU!`pM18Mnl zQrkrlATY&t5MX_x=l~oMnvrhh*kR8#wWwOCPnV}`RzgCGH#T!lBDtK`bHw;l(yk3o za=2xyFx#t=aa!Wm-)e#dHZz@D=6}MPx{SNAo|Vy?8zs&cny75xQ~s`+11M^9t90E? zZCRag%Zk-&NLv_PwB)n492Lz<9gKMOBuspns}brcE>~&duFGKzcyaksHKajzMz}QH zglGQ%Xvr3K^z^2GYW$nAS`BLpe+@>udN;}tRNVm_I;ab|qsXeqQuE~b7Zt1hp8;Q& zfVG^qNVA?X=|~BGv|R89N{nh~O9R%oWwMLPP>KdcWyz;Pib?=lm=KLxB*0;VPyX46 z=Z>D06uKmmuyDDlE%b=v46_VVpqscM-WyHn1i2HY1Is=wIkPkd7U0As`s2O_G$bXtp3w*vyEH`e8MD*}BhDCsPx z43+pf=2g+-ex~+lUU|yPrzTXJRhx zitl0vwJ-LSu#XtqT&UBoijDl$i1g`++C~7N4gUbP!?ZDa8t&Rt4iumGIhYUN3-; znorEs{{Zll_`zEMOZwKoRgjfvpKy7W(u{5&r8m#BAG_m<_?2Y)~D+7>{qmj_R}S&{IqOSl*Bj(iukTCh(0Kff*Jn+16Eh!Uy5VL-u$Y)lM(~(%d-Or3uL}zw5#MKYEABVb2(^EMJTI47lD% z{3_D?Rq**7&4EDAM#vlzIi*!*3IEKL9oW)&d#gW<*?8x1#hifm)qL;~L`TABGc-KV7meVNwMI-pj!{g;Q3;BvU2V-Z072C&!0J{mvr z*=g(I&kY~>cv=fKcOV=L)6)cl&CEiDdSnve(9M<<3JOP zoadT(P{SkApiNIr2ZJ1OQq)G#?u79TH0pLh3a zr+_jvNc{<^ykQ~!!MJxG)hB^sRL~;zq=TW|2_iAn-Ll!vbDc}tI(kyL^nqWSo08w$IC?I^TO=9`L=}rd+EVUtM@y#-oYbJ9j{|{BA#;jAow`*FHufDU+mBUGLc9lFD49dZB`Sh+AT1S_}c2WNT zbmqMR5w*_l^}uSZ?c&=dPfSo~dKhAWFG_AfY7Z@nX&B80VlLD7c&J3UIB*Rv)&!an zIXj113K%y@C$&CB*lFHb7%M?s`ebyV1IuOkfu|@SWsh1#azI}6-HuKO;-J&wqIY5n7}`ZMXzDssS(KcPw7!G2D=}(ABW`dyVx>}B8+%ffLUD>rtWC$|MVM+P zU5?UlDNBWqXc?srtaFZNZLNX#Y3edK%8V;`@m(uZN|QnHY>R23q#0m$bx_WAqbkt0#br%I|< z_jDQ&ebLgMlK?ps^gEXfC_Ym46aavsImI9Voc5_dcFDywC{@cEECRR4GAgKI4oyzX zKMHV+GVc@t9!uhrYhwqcAsFFmMUC;6pv*y)z^Aff?$8%Jccg8=g)~_J?YZEJg`;ix zVZ~T%3;=04JS`SLDiEpnX`^QB)T3(s<4r5iL5d9p$`j2sW68=IK&R7+l|Tb4+LeId zz9u@`_;x`rQ&N0C8+bkI!UoY;}!MDrCYah%BbJI2D<2E`l`<_4Iuam?RkD#it9iSSU#FF{G zA-MX~Xq_wKs{Cix()bYJxVAy2KGMKqrj2&7^r;F0!yMEUP`S2>dv=SnS1)hj>nLtj z)qZ8J&S>NVBY{*T+C7arbtMxy)3{lzFx-v3ax1LX)Jvz~kELhZF;X)wGg+~XhzA5oQN9D$kc(5I?y8nlh&S91`RIUE=>R#Rv=@V3BkoRa7`nxA%|)J zlWR9lDVtj%4Lg1og*%TN;(!`L1As9|sQEh$O2t{Zs9Spd-UU)Z7s@&3tyQ@Zs$qvU zYa}q{s$TF8?kZB$v~2iu!t1Eo8;P8#EN}s;o+|LHHkxY{Vi%4{uJgjIMw1C;3+YsR zd_!pHoP72A4q5yJe6}`E+L(HOf#7W}IeyUFq)>P?vG^1S+x;oI>CJZj<^YAzHiRGVd5u|%|ubxlf_a(x#h#d{wF|uyVJ+LADbxI9IZL5loWM)m55k%wW#PI}${z9NYCC=@pMyu@diBwde{gK z9@X3nOHrJ}KOt3rv+dV7iFx*_5y+n&z&Q}GA45(b5N%iGdv?dr*I6!`WYKN%mp;H% zc(nU%zcgyyx(Yb}!v6q;gQoC2rXPh^PaEk3Z!B@?TCJn$xWuq1HDCS_{X09B0iR4% za)DMqALv3%5X+Bhoj(dy@n?tCbN0yj?M{=!IwGdXpixwt!rDWQZP$+Cv;#$aSK;50oG2(SCJ;d>^4Q?RareH-dB}JVZ?ZZ4VOYF6BPe7{|R&{lDSx!G6^r zKK07Kf%F$A5s{yIi1-Ug;Hozs^a0!d0Bh)ML0h=;KiZ{jYe^0OxKa4^VAQmd58QU5h&X8zA0D1Oa7?bNE6nO z9;lL9xjQ5Wj=xIFa|haEZ!i)F>5k-Ao}U8BRbz_&WdQ#Gd)lq&+6~+qyb$@tfG9aW z;<=`1e?mGK+2K7QeJvp$_~@z6N_Lm?cymr~`gf1?P${RScf(`NmgF@ZNm0@y2puRr zvC@oSWb~vQ`%or@;8Gu(flGiW<35xbqyQXqP3ekvYEeOP6CLQJKgyJIKs|$Qc%#~r z7@%-@ppeBV0)fRHXee$^DR9x3?`lu^Y5am70w zg(e3cloMeAB8*b!A4)iC7=*y;XyX*3lN@nC1~|n7npMYYZ~}w`dq2Curvd9rj8TGm zP&;TxjB(nR9jVlJ#RViZRD-25j+BN;Sza*lUZ3C}2I{^szXN8U5GXxlW3@-?`c}Z| zwec_Q*W!E4C*k&yq+344zq@ZR4mT`IoPM>PNm&&b-1+k3;}pxL_^0Ami2ne5>P!(i z{wbfB)qaAxnKikrJ{Q|+Hfv&w;f601hIRiFF0K zoM-!^YLCjgUl;1Sh2@>31-Dv{EvK%M)$QhMn|qD2C!xi18W_2WOULuX&9~`_(}LRVXO>tn?S;MfGa;^4#tVI^h4qQ0L81cyn-EC>-`r27!%NX3i_4RN+i*p$so#+>Ds>) ztbA>%X^rH9Mh7gzpcVSh@PEV~@Ra;6(e-&G63EH1i1kYJXjMsaqk|DgsoRs5+f5?_ z0+euaXkK|W*l~~njQZ_nMN4-iW<8e-0el&FH)|aa0IEPV5lM=E2c;%GC;>5_Y5?h)P%%KjpazW7k4$2Y_@kV2K)ic z#UaKy;()LaF^X^DPsRl_jB!A6h5)4N#RmqQ1yKWb;C(4Zds2!_bH^0Qu!MIM5D!kY zy(s`Dkt2AdpbAa_#TEfT;*%bfbBaJajwt8?@OYq%Unm zP9RocsAD}i6r&yKy*Q=m$7-&_7aheW2>MaSN?s4rfD;^Kbfmzg;CJGbarCA!bAgIX zj8brEIv#pZ1GvQ>?4Bt>9dSv`Kmfqw6tt(FI#ObQ05M81qJjzFQm7cgr(hEUwKU_u zN^uzJ#U?N);C8=88E+AmCuoF^n1qr6319P{43I zdJ0fIXan`7+xb!fzL}+LcBhKH5*$jNp#*^WK#Egnb=VboA_F?wy*qE zh1TcECz&%$iZg8>!0Rat6fv`&3$t*(`KcHV8t%AV8#&P#gN zz9WWMheN>juR;dq?SyW2Al7a6tz)OA>zP6@?OgMCgH+T28g;(d zzvrWHC-qfYzvq~( z1#9V{3t<4ZkNAnIttF+4=Gs5B$awXu7ZE(@w;Gkewu>3^$65^t8Ld%-S5keZPwtAe z8&;J0RWVtKSP`{_1tb14EwgNwgu(Ze|@o=Ch`2 z`-#$cm+a9NOlOWVD@xAp%GOkiNwo8E!FR0PRVA9_J>|eu+@C1z$gS}I01?kv`s?B< zJh}zBjF0sL<{kQ1=MI28zls`(XCNtT`}1F;-Z5J zx%@{hEsZY>Xv-`{dyb>EdUcEz@uoz3aa@*#g-|hpU7QXF%6rtIqWWwcmB6X@1Ig)8 zM2d5~@F^y{wzkT<0g7ft@yOt03W29V(1olA@fXZuwvT;N7I(Mc$vN_ewE$|(t6SR! z`M0;VXMLwrzi`kEk)HLd27_jbjntmGt#ytlRZ%($3gt1P&>BoN%kDmv(8FZ}5ry)= z1Ja}IY=-5>WfhVxHQiK+GA!eM*~b(C*4*k^eTrsz6k@q+&lXEL*`mVI=Zt~H zVNGqOTFL&GF}jrYt71#}Ho>JpB8$1{L7^h~%eTDuS-=%T9|jVjoPtfBikX{6cz0Hoa92at9=(&JFR z1m8?8;_Rzc%4n9SXbp2P?TP@N+V@eq%IVR0YyIqCRMF}4Gnut3>~qqbMzeIt5;e8A zIL;4hi_6ljCNf;l=aub19IuHkE#i3PhA%Ng066Pi4TKk3g^J0jN-b@``BZVma-J!@ zYm^ef7*zxX9V>H8(B_`T-c3es2+2(FC<4P>={C|4YJy|i6=4RwsV|ob{gNMEoKq#f z(rky7V{9dnX*X(D@p+fB{gx5fPy~%@q1!gyO6TnkKZi9R+lkCt9ha8AxT=O-4$Nl; zNf)^tYB7DP-|=Awl%uC=0KWEjw-Mu3y7JWa99C?1dN!V{meF~#4*hENuZAw~+&-r> zE;|bA?Q|;(U<5G?`r?2%Yj^P$ri5F=E6FHnyh7b&T+*LBY}qdwOys$ zIpIYBS^H#fl?zqX3Q4(7TFRSKvw-2>k=nAR*6wFMU7T6;Gy>!W5F=VzF*@n@e=s zr+XfltX0!5?ihWpLV>!dtxIhh+9@{UIQ5_k2UFCpe{&3fFRdbJ7k6*__v6yKl!a}% zP%6)tg!5K_Fm1FeNFN|)6|k{K2^&yzPR=>?r01`t05}q#FzM+``{!`!M%H1+S`|u) z0Cb`~qaA7#h~$9XX|rlJR;in&2tKvP>mE1LH1-0>8;3oBpbqJ6r0Ra?s4q1gH%?sK z&Y-ViYs}XB#y%kf>~Q^#*!ONJW$@0Gr>MEt^$)Z=e+X=f0N1(rgQt0(MUojLJPZui zGp=1aT!@k{GbZFy55ImRWv(6BlH+reysYgv8GELsrGqF{HLcCnW2THcyCR$ zw~FIjza~cmF|oh^4@&8+d{v}a#PIlMOlyg=w|HJFlF@X357?1&uiZ7&z+i%MqZQIe z<0$N;5O{A)GJJ8!BjX?#BX6Zg*=yBG)6UFwv9*@BD3yZXwyr#iD zItuf@jaI%Oz0#~TEnS2VEb*PHe(yEk>aln}e*grvb(Q|iNzXj(6d*Z2g<7ot0Pu>U zcz(|^soEbNmFa7sYq$RZ>3Y@j!4@({O7f3{THd85fc9ENhshL#d54ARUZ*#Qu5MuS zwX5O*11PP=C?+LO_@cC_4net-zB$e+my0!v%}>I&cHSS-%t4W|%sAQwYKy-IXt9Xx zp=*hg_;&6!Lt59oNvr5L14+|-i1sp#-zONL)+f*LXx9_`C5rOu;18LbXRvDb%>w@b z!&*;=?Y_$hxRsH311C7I3e#+3m*DfqeR9Fnu)_AkbgyRcw!Nj==(fj6v^O(tP6DSvmxkMRBPe+i8J_*QOtcxRQETYFV$ob+Cr9*cIKj!!%D2T8uj6j z_gwKn6(ZMsH>8$_O12jcco-S05#M;PSqlxUUt^D^a0eA)O>4tiVDjuOe91>lE`R#f zPJLIzT9y{d-C#r9@NxX80nOnkqs*Qmzuu(%)~dr?@P36bx3Ph4U3)0bX&b|6;9P5W z%=zbT?mxni>i!qg06Kg=Y^X89=71+{TgE!{g*5ALu-hM8RUzSD-v0o_MX8tXx3yb+ zZ^W9!dvwbmE-zeSq>I5f_wfsza^#QpR)8S>*zk{s+so6T6FC0p%|LaZ7VAZqO@P}# z-3j8meJjISHI2W?0A?NAt!_qRjCp8*SG53neXoKw8=iG5wqo5tuE$I8evzlPlx-fBFuHbZDB3GG?H*b3)MlCXh{IsM4F-nfat0+2 zdX3qUil-u=Ay^Hk2NcgTSkvYmXaavQDBQ;wsKv==7!_ENGk){s$4+Xr*N|I{yT=`Q zpbewHAk`;bq_l(z=Vb94pWRzUzuvOiJy!MiF)F5-1Fw@)w6k5O=B!z@#oSH0?loH5 zL6wPVpKu+kb`3JwF|Yt?z{*3bUXUDY2CZw>LJbCHKYJC?2~iFJ=~@0FNgqO=9mR2D zSMJ%a8{QGt_Qc!cmf*Q5MF^9*)? zecYerUT+Ce_xcLYEts@*(Jo?_DHa3m9 z>54IUMA6#Ka!WBae&0xt_O70Tg9&YjWR8A#zr_IPBjURjXk#Hl7VNA#)fPmO|G{l0o-~ zuN_=9!C4PO#e4Ry0MX?S*l}JCAV9&v=QQcaS312Nls4Q~q1iBwKAEpN(oWehE4#Mc zv=K?NtZpPA;rn`3rH(ZD(Cw> zudlpu>9cMb8)`49Ha>lwRgf?}D}P3nqaXpAz>qUG;4r7PY-rMKeSmXa@8JW}tYzGR zSAr{5ckaj>*E^=O^dp+-;kR(=z~;QFh|sqat_m^d6<^FN@~Eq9*2q74Le>r5xnXSB zQ@_%PL=D)ad>!26SB7iaMeLfS#w_8Dc9%XVoSeY8QC!W=sXfH4B%D{FhK-CQR?~EI z8xOTM6jxpL?K;{#Mb6$ZE6?ZEQa1hcm>!jZH;HW`1V(b+)!9-PCOr>MlU})AAo+7x zHyV}0HtDAPE6k?XwP~C85tYwMf7vyQfF!z*qMF0%hThcct~^7hKngs8nz^g570CID z&JzCsN|HYgSp@T>V&=E>+Zb)rqL&)N-isd*Mw0l^vg#ZKEwXJk{ra$PAmdCYw1-FLu zn@}24<~48I$!lr^cGko273@aC&%9;rqGQ_pP?Ih6y8`;+v}8d3g_4iF4_S3_svdstU| zzdKgLSR%q!1OwW+F}MXNGfEh{Nb_b9mMrJJL=iXi;;mc&s=?Q84O5MDFIMHsXV}20hPS_MRhj>4({e6g+Di+x_|A^Z+;$7+O583JP%71Q|g+BkK` zF^m}iCb<<{3i`YyOTivZc-ljkfxTPwXNOVxlFtltE9kXz}3&&$u0IIZ1w!W)eT%yz-p2>h#)_LAc;;l1Gj7K$#pxau}XqvtJo^9m6C#7U-`UG~i zyV`!8swJ>MwPWH@1+rVg7nvfD;T59V&bNAkG=Rn{6G6SxtfN+yM*8R_@i@lINO#d4 zfTFe{-3SQbl!g_@&r?#J<^%Ivi7MJU^t_#EKiH1#TsfdKTbe(S|*hi!sq(*mc9!kT0W zo2iTA)}<5ZRtvEd9loM~GC#NcS$l}><0=n)Rh97OuXY5N_a_IaUMhLKRSZ%80HVf! z0a@~E`nBTuHt`;PC<9#he@BTxo=$t_tgY9EtRpxpxds5PTY_`Pdw8^N$` zZ*NN0AbjnBCgfLNqrv9Lk(0%7^6rM<5OTHF_u3#5Q_R?-GEcsiUgU&5!-RV7^w>kDvD&K6%_hY1dw@q znTA$?CH?kxfx)K;qzldlD-z>eSkBm!II2==mowo8S3ZKXG&;X3DHkDtBC_PUf;j|k z!0q(uSh2@&t^jk*Ic!6@X%9Ztp_zK`TZ%2BADXERQfrcSB}ldquWGj(Xp90TC<8Dx z`!?PCMLBf&i|?9D*4aP~LS~S%S9;y{`1_cX_*cFjByJUl6w&7XxYsgb=v|Ej4 z2ToCsN1{ohgl+9yN80s^r`rOR&$U|`7P~kb*s7WU+@DgkiGF7sRW|WJRRZ025$#tk zd?x|`*AfRmTDH1gmtw@q%lXg;FD|{QTybpy$u#J+-G2C!I}`_{baQIjEt+jiXWFsf z#X(Q{C?s~E2FKxDLU}^W`2xCIT?jow*EPwmzv2m;?2m)eqJv4+H8w3f7)1bf zcc0mD?T#r^k4owE`(!bpOg~EVIJ_qkIB6s-M_TW+_=U2djfhp?R)%Ijj&9|T$`<1< z?b^5qms`|;RwY36uTJqdkql{e<2dVFdU&SV0HWS4&FMf4weY3X_-R~$-nZ?%HKxJ; z03TeQ)y~P{O;+v5w}&4}ul8>c-pD-1E1rUYKmXVLCg2ZhY5xFctvqeTFmN+pLeHD9 zqX(y2a09gJ~WGUf`G#~QOzmc!9t;P;( z;jh~|a<+OrK=6FS`C_=SdmWTdfb8}Fs>7vOo&+Ou)DZKP2RN%Sxn2nQYpRdJjO0NY z0-ScHsxIu}teF)vilZd_4VBc4(SApcNW7*T);rq;LRqnjxHkpKu0O@vjFwg`V&TnP zOwNJ;0+0<^^J9%iJB@t(r|KRgx{aiPiCRV;CM}eifgP)VtIM!`Vm;5H3&+=YHDN>y z0cPZMubfQ2EC7Jb?Mz)u#c|;qc116%RO}yEhjZy|u8^hFS8i%=LVQ#gb$U5E9YeKH;Pg6@e}wOka)Yq$lp8% zA45y(bL>B?MEV&awO)4vO%X<0<>_BMj~V!gH^~9~jZOam37?5^@MAH>aZKJ~vN+LzU5*cEu6K-?=hP}mA8GXdHe zae-b6ekbcq^2=}fRHNc{r4oMj+vPshFApxodq|$(WMyAbQX+Yg@G)K>zZG8u3sQ0I zQjdzqa*wl>_Qf8`U5NIG_J$n?rB0womfM4j3QsU04c4VIqx_69S%8sA7Vbq$IawmYil(Tc>gkaH+Oz?c zJbP7Z=zrOpPd6SmN!)O~zJ|OC;WHU;O8R5=S66QrmdLQh3~F>etM;eUQ~nk0 z#H=!kIsEJLw@tFOWi5{975er2P6ht}g=49Cqa(^S`5mN~(le3JoPKraWsW}8oVky} zjdZZGQMynwQyW_*89+FwcW&x9^row>a5%+%W#icKc}F&%XiiyIKT2Y0)(A_58@`ob zgep13G^Ph!)h#*rA5@^&%^B@PY5Zez?w)O zEJC}CnG@!GRaGS)8OWveN?nTf)q9*-@Gg(uDhGh{Zmkt}MYGzFW{;@S>>pXH+~8l~ z?vU!lE(KRV4s=&l0db1-Qo|VOKnHIp6)!HM*rkiAx}I!48EFi59Md1+o|zxXl2*M! zH6U|pm=Mq}%W&E+&Z z0>@VFc(?p2`&AnjMsLEM{{RZX0^%t#UeG6R;im3<=dDlnH4?wHYMwN|3_QsH0M~6{ zRpt0=DNMmB+_mjqc?YH`;zo~>y!%!E0AbJ%?MkPEufu&pUOfK*Ec?^{0O45bBmQ24 zEqj|x()AmDl+nC(JW>6JKtHuAo((6%&0aBqI5iOPCcZ|~E(g}V`;h(V1{jpQA^UHWs#GiL*AB{!- z00`fT<4^URdS3g0Jc&=3N4@I^W+NYS@uxlWQVIg5ji zDZz@j9qMBe?+B-@Czg@E4_W|>FfD_{Je=cgCzf4~(M~YQ9u~A26M_d6zG+d&s{$eu zCZI+w#yU}BGBC>La2Tg5g+DOjoFS2jz`&^`M_eW-G#JSn^1Z2{R1A(O7j$1K9co`K z$qU%fGllWX<3gD+*A;WX`tu(eRXVE`@GF{{R4}NK@GAbDjXG z&&fiwD8?vl%kwo|hPET&jtxl2m-h(mDq0b|MQ859q2U?V~;~48q zAm9_)gF*3mc?#L7q$#%xRfb&WrYcd4V447vYK7yiFyn&URDlAf@@g^`LDGOGh%Wv) z&3V46cKFWCJ8c~+(qL6kanBX!H*qug*4U0QjUt;}qhdj#i<@F~vO`f^k3q zO|*n!f^$vA>Hrs-e$cfZc8U=1Gyx*09YU5 zk-=O5DMr9PYAhBJ6(2P5!tgp$fH8&XQh^j{$)dy5gLZfVo*M&b9MfHZIa+Yvjs5*7 zuxd=19eA%V)<>D+8&pd5B_ZP8-@L7ehxkXV4JQ@0fKQoi}6L%**TB9Ih%}R==9@H#g1Cdc+xfbA8XdNlQ;94?lR|*QBbq^;n557O&9yzvFk^yyRH}m*$4XZU zR|ATT3rK`1k-Y^<$`k>bgpVwB=A?=uMoFb{j{BnmrHzy?r9{8o?^2i$@J=ZK=ART~ zBg4cG?~ZF*z`yb?!H+>%Uli0QhJv1($2Ga&AP0x-v(o~s4!k-rD~^>^4oRtq0P#)o zayT>qiZ>jNluAb!rlC35I#kY!fGHp;l0nN31x&68$QY>If*pi)r4j8p&jzJ18klDJ z=p$+8kUCR{0Avbg;NL2WKs02Wid5zHw-l?#6mZAhfGq8eM;y~WMQz}I6pIrlPLu`D zT6Y39KQ>6sIoKWmz^N68=r|Ocgq$7?7Xhrhz&)u8ZS7J9*_Hn7M2sDXG=MXcfyFgZ zx9zDIpdU(+Bwi1tSPhOaRG#&Yi@s?S__JH5`@^MVfwpI5?Ot9tW2Xl3<;Ls4u;oI6*;SNPAdr|=@c3mlm3O4;00cc(KA$2<{CVpwDj zl^ns!C?^|RwP(7n^O4f7^Ny7fQM=gCq#UIyY@4-EILNMxT0mh7j(DtVaw581dWzZC zmQ-Xtm|I|)DG># zIULuE75@NFl~2pfdmf~`vZ2On#tGl3N(uX<)|Jjm2C^1WgVL9DdE%DX{{VlbET$4Z zL5hP>RoYLzPT(9ZL<;Z+YLln6WWYlj_3uvz!6+q3$E6@=&rT^YA^YbCtv~&T?M(rr ze34dI23^?Zq^(F9alq+MR@uW+t}#i##^FIDRe9WcRJ&EUQZY^8{$7HZpetg4CMnYt z-Mc^f)QgaDPY1D}2pfV88{0cEO8DKyBAm8q0UItD8m+1@^6N!NXWNR)zrfxca4M;8 zfc2jaqP~%84<9K0RnK_r6w^^hJ56-D4p&aL7~^36Rmu4Eq#ANd{3WqpqTqjkkC?=N z5bSjAr%ZvmVm1C%DsrcHdXCo%rrWMRfq#`ag)5M8o-1=P@y5!)_NhuM9p05)WWd=@ z2-|o#%_4dTUpT?!Q2c>WhzLBIc>|*!Xbyq}2dzkm3YA)7?cI##m(3}iqN`B}h*z&s zO~@zf+N!&$Z=1bXNc^=2G-@$M?Cr+}g5+`OQTc~I%A5;QK%X)M#~;a>FHMq`2k)kg}ZP0Ps>&uusd_b08fms6nS6| zdSWr;0l=v-zwY&*2uIDHd8g<5!=)=m0O|!svVb-olyebbR~)dQx{P|#rr*3fQ-kg2yR>ux z=>GsKr#w|uQ_kPIDrU|qAjk&Nd8ER`q>NySWQe;mDd&Y0rFwJ4O~In1KzHp=`MVrb z$^(W1nUD@h;;090b^@jHiY{|Na7M`KH!$GP16obv2en2)+rX)JAqR|8L+u{aAS;8n zsu4ZU{_Gu_T;TqGw>)t>81XCnH7N^pN zJT<3(*R)^y2&g2^+UthLn=Q(f9Z6Buk}qGS9>SCE;L*Y4aXxUIG_aj zQU3K9&$T9b!Jq{V#RHL=Y4+(yU!?#j&*e$QIB~@QWY8e(fk-$MV+RzyMODB|98rOa zceteE6(bvgPU+1c=jls84e8pO$4Zx;w9d2u(sSCEr2tX06ab^p&^-qfV;_YW&nB1# zJt+@OwDHHbDEFW&Hxvf!MHJ#zh9pPqDSFc64h0w#hhV@I?HtyO8dVR%6vocR-5q~!Fr#Cbp;r_gsL(A7aXbl$K_Kb zZA|`dZD;c1FfikAE1nM(v8Z^K8@&}grr9hn_fH)wSK_C`U2oyXimtpl;t}Lr+cz9= z%6{%Ekkebk5SgUZrSlvN1ka^%$|rPL*V*`z-%#+`icnfuj|6njrFUK$@m8fBnTp~z zX!dPhF49Wd-{t@_pGw;Q0EOe>U+h?{V6Y71s}%yDDR(qHBjRme zL!L`*R@z^(d4~>HfuDNT(fo6%XdWt?Q@nxa(k{lu^aR&6H^-d?H0IN$vGdkWPUXfa zZhkiSK=^3beUJCqz>jADdghn28SA=d#5)Dox4|JO=L09@#d>YFrK4&$1#*k#;DP9C z;#*G}_*#80$ykgtG2r9w;<`;U#r8H3eWojsFF>HS4;9T)iAtgLkBq!FtfuE7SRpwc z)%t1sI_Og9KLd0at}rCJ-*7Sg$Laj5^B3UWo8m8w{w&jcEoiMJtdgr-$=WM_;w1e# zSM3Cr)_Pr~zKf-xOIs+`D8S%hMmkqU9-WR#^E1?OOgtVcb{G`^;MZxuHHUFb+B%AP z7!;Tt_@;z29DLLcnCvM>ze-LjfKCs!1LeS{@y8T=r?oMO#TdsFp+-2Q+nNM7Zya$z z9CA8Sits6R{urPghI`U>^rgiGXa!-E?2$$=DW??19eAVWqaKw0ae+V)^Ne+-fzB!5 zdUd0Wayg@@4aN@?;l(aH&;h5^o}+s6NI^c->|o=iCmjb$W4N6u0_1T{GGY;^-j9$Wxb7&%dQ-Ymfr>su7!P_}W2Z_`wD2iJ2$T-|Qjj`kpTQJ?LV!(J z4GJkRbHz$=&ifJ7Hse5C!A;u~IPERy|aZlv-#UQ{m&Fd6mYlZ;?fjzOiy4k+>g6jJm! zqMSVqFcAKfgW8|B6dYoJ8;S_WN^w!pPyhy~RsrqBI0Kr09-PuQBv2L^w-gam(rv7U zG%ZLJ3XwpkU{e90dR54+lgfLGh7rXW%Q4^q?rFBsZ*Zc%Q~1O2JnOzRPllQu*O6ms zCd-#b!I8MmeT78iqOQw?Zh9w)emHn{OP)&&9y4~!^7+4ZJ>JJ0{uS8#GWeMs`qtfj zGYO2gcmaPp{QI@>R*bTEpT-UQ-6O)l+S@7VEz^&`?gvlCxbKD@E%8r?Z8c99>X!x^ zKt5Dc^5ExzkEMAPaZT)YDo5?b$HhMY*yyrr5!^*AND6FBZa%Hk@>?!Hq-3 z-Xe!tTeouZMxldm=jGs5jGr95b8O^2%!)^KW0Q*2%1LMo4v*FU0Ezzq2z~_klF4-a zb4#^^D}_ZlZI!oXTl7u%t1f0Dbz_ zyIRK#@hRZd;{xIqA2FrBMOor*^!Z8V7t7mlfcn$*HBG^dTA4F61EoIwP&z3Y1XE*) z=T~utx!x<2@fEX40y+*suKwoSeWAAWu4`0G$AQ?^EV!JOp9_#T4xCp(;r&&#PZDXG zs(tHe(foY~r&# zUGOtb@PC9X^|-E#*OOa$vJx<$kT}J8Rm_PsluEbJ+@uDgar;|@0s0_H`s+nU&!8=H->Gfrd6}C??j}#f3 z0#pmWMhYs8#;t1_kf(DGO28JnwxZa%`C}c0Yg%a0M~80Sv;my5>UXkkfqb+zW(^)f z__=b`&_t@7CrXs6@Eegp6orknYqb<{=~F`cenngXR+`rUHtY(4q=p#Dk%trk!QLsG z#8&GsKR3(mUZop(QI(M4FYYGNH?8_PksDZm}8W#!Z_)mu@y5FzNPKphO4<&BNQ zVEK$V+ABVNTUfqwkb!LxKX~=UQ;DrsU6xR9VaJ%&T6knKG}qH$c2%GV=e4kcVDd9w z&N=q05w-090PDZeU|!Tf_gi+@!T~&Qekz>NtS9|G8o?zd(G0V6-P)S) z%ENW!!ZH29OXW*6L&*ZxAMbal{LMNR5yhLSy?amtjPe8!>DKut_{}!y{{VKP>9@H4 z1*goKla1Tf(iH33v(om_Up9(v<@E!K4GXrj-7|!+w%P7`ReOiEhGP1h-gJZhS;tHE zeL~ZaAJ=HqmqlV*1wsRhr3AvxUxbHv~VUqso8MOOhXAk$}>r{+7bP_E0lAFoD zy1gm#CFH-n)MwcjXxF7d9o#Uu8gw3Xo|xi;GWfc^x*k@Y580ybYOK-e*4Q^P{i1J5 zu?C;w9Yymq3s{fvt#wu&8`ERjW=-xpngHZtk5<%6Es}knJYyhL*gPhQv9%{MlZx~S zRx5C;1`$P2nssbru0?fHiIsGF=ZoVJ_+}Fi%Bv0reK@br9}P*j;=S-COE&J_gjeWa zj2wT$DQx?d%&>3)`d8t0rKN|@Ao+$d-n??kSAD`U#dTKr&P+bXplIwwAQl_FD{-&jhzvI89+kss5ZqoC zV#QTXIIil;OSFus$Bdcw$V(?Cc1s(_O0lxm4*=Q*;jm^2-(gm z#8$P_;DvVV=~fUTwlmY9r3}JNsy9`|gb}=q9@GF3yLOJWB1XsDR8n2rS|(?3n66^y z#nvf5*>w1f?tKLSc5e!>`I~MlF6&jY(+8O>!Ox)PxcixP{X`wiEg~Fs?NlI5Gfh(N zP1NU)S^(IS#rL<9mD8=;Z%nrWsm%r5=rg@pbIcfrQ5OlEDb(7H5Uh1y3)Y}pZSi5eh6H!guG;2RF{{VQ7D%rNbniDRq za<g{r;3Dht_Y&$3+IBk64BxQo`7>`s1wt zVfeOhF%!zS^3#q;=~is5tzffBZZ5pd!?$Xq;xT!7026-bH$|?m!u}bCJ7}f78}c|- z=|CBg>JXpY=@zB2)v;IO()GPWf2PPIi?FXihfcJ%`EBD08`7M>A=r8?0CQHJ7_qkj zm~J(_92T(PDs9K5Ok@ZuHlHW%=ClICNf}%q#aGErL8>#%-@tv5A&37MaEEYCr2&5AHR3`S`1j-SL=1sn#bl}RxK~H}47S zTWJJwVnqM}& zU1P=?(I45?qTUw%H{*({d*NjB7GDu+{2r=?f%2QTo;uTFJ8aLI{Qyy#z?)j}Uauib z3v&`T@i4|JGpzV$N^uU2Yv;(l4&3um2|R7AIr7k2K>g1c6c3bG^b0V?fj}HD#w`n4)O@;J`>z{s_M$_Jt=&M zeD@h{0N`}5V_yl|0=K&Mq}LLGk_&vIfGR<(cxON#@h`MDGjt_+r|Ng!E7x>OwzPoQ z##OLeu0EAC+V6*SiA+{7`OnAjQ?)&F#k!W0ac`$uEvhtai4R<3(ttc4M$z>2_(?ps z_Z!_s+_Ak9!>Exyg0;E>10@&V48Yx--WPOpSr{tQqx-OLirIG^&OIte*X6riutI&SAH&*JyIO+jxsOcOb8llE zyf_L!3ZhO?tu<@nrdBbhrCPP{{x=y|wRJ0Q+d(IRQ>%G#5Yz#Lnq|C7s~YoKC_<-~ z8vWW~W@GYos|Xqt=c%m>$s@o|o4rIz?)f`Y`6-%gTLXJmXb9N8?nhd+t17mQGLz9w zIn));VbZE=lLXObTzutD1#@D426a*R;&=n7`%9EORM8}z zM*H1sthduV#S8{9R5ZAeut=`{($QQ3y(pUqnNaDC<%Y*f){9LaXJ-R}TlUt-iZjx$ zG$7i#L@S@1xSv1Yqb0+U+}5^`s?MRgs@j^UyO{?VIIDUpGRmNgV!9!*l#fucflOcl zTX4g(2uE6_U_gOL?OXB8ga%<;RW~h?Dk6+$9@SUNh|i4iO>kwG@jlrqleZ=SgM8^aGsMlnoBEO_^Fz{n66B7f&TI zxMVeXK9=p~AR_=*rPm@R+_z>PE3!C3g!WY z9Iy-0o2o?|+I)#8P_8GX4mxuE4#`dXFBN~OKstu>Lk0DeQMiia3ua+q&{?qpaV7U z`bWZnDGjS#h|{`?^iKj<vppVXRLbovzW2n6H%nBt6L11oJ75M8U^ODq#KNIO8-uM?&~* zYW4!+IQdI3g^m91F;Fxpn*;VmKhvZ0l5ju;-nDt$*ClZY23Z)u`k=GtjkDqhXc^E7} zpysKGPCU06s{nz}a63>l$G#-ktW(2&zs2&`nt-fNs!HW2aV+4!=nt4#U-%p8(u5nW`#Ob*3Yoy4m6f=CI2Bm$`oxROOt+BD!6*Chd z4n{FSJxbB3-?tSxbs16GkywV{aZZ0LA1LO4>M#e8>>X=TIHXooUTUSV+(M2v*3FWz ze2z^7nita>T|H68H*s8wBTJH}ZaP-xzi{(3cJd9OIpVNTGPdGsB4}=EF|_(ZH&Yi{ z=9S`ch8V8a95#(3Vm;% z%|pX!mgGnLtIxb8YXj_t?!(R8?5_ww!)c3Z6i&B6dUuR!ERJL+21%=n8c zr_z&D(64T-zR`0pHGTX>k^Ht$d70_OX5L=ww`f<&F-Fw76-?)}m@Q4wis86lTJPh# z(QKkIs;S#vYo}?KGU^^gt`{e*dNdv$(;!hS^KZvdQ%oux?!Dssb+=`;QVVfjXQIPB z_M}`AqdBgt$5LrAvMq@lN2O(H7Y%6&$ceO{YRY=Z(w>n$3O^0p+_vE+6!opByftG2 z{{W;NzzXK0)-|ihN?In~Fb!HwCt7%a(k@Qs?Ol=B=4)G<{{U$4?T-uq#ZmtNgqp#n zF+mpWbU3OD;rJH@>TKuMw6mbtjj6P-6cAjB<*p%V8|C(|J2slGr>V#{m5F)^@9i$3 zxeTz33g9pGjYcg^?X4FKCK7_@*E1HKtlzL}n}PxCD{>DB z+rl#=d5nE)Knt%H+Qo&ni+%?f6_|DXcHrh1HiKPtrj?~yM}~|CHD_cI50?aeCFGcg(oM(Z0|J!JOKg4ts2urhtr+=5NM?>kA1_+a36Kaz=KHnb zpBSJUV7VW69V^^a?qM0^dRLKrU$@(15ng%40DQ4^yt zc2909nZ23zh?Ib8>{eb}cx*8hbuB#AB>bRvpv>l-FWInLDt}717M2=4<;`!bXoF!K zQWF}Dk@4+788F$~TaUYvYTwyZkKK$_h>S(Lb4K(@2=71Upo&`Qf3;~SL0=qWhQOmfm6$3P;jn1Q1}jvGSF_AE0Irq zPffOrqNq%C#Q<`We{bBVRLY-fy9b9g8?Tycj-9H>@l+^EM;?C)&i?>}hf$dMR?%ZL z0nkC=%V?wh=H4qp2=q-fZv{hoS0MJf-QfuBu=`cJe+o}O{C!AQ6al+;;)@$#7TP7< z?OBJ#mvROXE_+~AsC+x7$NsUm?DeY#Z3f8UI6i`aIhkkIZryk)59v~`hV?m{bhDG1 z)RV;)Fp{ya(~8fR#M+du76`CAaX=U1@PrZVYnMLxtwyuaY|vz@0ou7oZxU)Pv}6NT z?R+n&O_OxQPzIgPi8PB<0tk5?l~{PjS)2=W8*0_Rh3#Yi0FQ&xtVd_z`x!S#!y~l- zVa;``T}}ItSABQ-C}=D^yPjXxx#|2#r9{}b0PW(sO)7NMZT#SNpgkx84--Nzbl)dG zdbwL&CrYx34CHRbcU~ZlGo(n?<1#4uYsz5JwOg{XUCFgQr~|6|Zj)?OM$1vl;#eUE z?5VrxDwJLqx5#-LAlB3xcAKXu1OuO1(9HkP{U;<0ahgWKsaPl&6(3Kauc2qoSXBB` zfG3JL$2JsTrewB@99BUUl&i)LM=?Cm)4%u<9TlKZ~HRKlqJ! ze#ou|4aHnOBQWrC0bs4St#tB6rOR#WT-Sp#`eIj9<7qzC_BeI>w0!kXh==_j7zs^y zp$U+Jn8mhb1u{1!dUIVCF}Ngf2Hf!jS2o+8h&ih3p8XA3Pc26ak|@)#Yut)RAyvvo zGf}i~?D>&%^s7d79aj}xa@oaIqu4CQCAF_zi<*?$T0adK29-jC)0&hp9kOV&dj**S z>9#7o#6K!;_8ywuV*@_a`DA_L(wBR-HfEPBI}cJbq3MNj>SeWVLyfRoaDf`_NR{xX(s_-Ob=?-T!MFsSp3ZJFe*KjKEvmi zbDlmJ()Y2B5D&jff=>!*M*>)s=hC`jHl4zqBLcjPVvl7{uyf0~$&Uo-Te6XiRKvk~ zGO%G7&!u#czo7kT?5&{CN&S=i^SGXs#rWBq$V6{i?tBcA$EHLxjE*bk zv6Pf$q3vO6UMG5xs5@~{LM+{#^;*z4$%(MFuiHZ8@J4&oKX}O28&I^ z_2QEP3Gd52FUWpqg2Z})$6%bRJoQ#V4zEjB^BJ>o3ITYtPrBz}+YGUtRl$1&4C6S8&0OV35 z{J5s>?kM8}j8$?6Fzw$jBAQN9r8S2%nILVdu&y}=98{{Cm*(Q51oRaknE=}KSS}+f zk&)V#ERUG+Nsu{Cl)%TO77LTJ4Cgtg?<@etL5y~(0|xe@!XC|mflQ3`C$%Fs)&$aI zZ@{YpVBx77j+GN|Mk)QOQzfBS0MpxR4@!-4-6@B1pIV_*kT^rg-I`p$PEeD(t|_GC z^GBF5x29=@c19G)J!DhuTXdHxJyd8NJV*%7{r>~Yc>r5jYtzS6# z2coJC=dBI3hVjKjPVNl>fE!k`=MF*dCgHGDWJ!!>jrivjtT!&uj25^;=Xo4AAN zR`K#=3XVKG;M8-M$}DrX&^y;T;>ASLUeO)( zF$xDZzZd6N!bTVxk{^sWN^u}9Tfgvv>3hG`;C(6+;0-T%F^pEf*z8~0h_466nNXH1 zyB(_izsCD!JEemJRWb1QN{r>#A4+fhE8QjB5gtW9>}dz~qBq;)eTD&83W~KC#+@ES z-6-0AwaJf$x=5V7h<2XU%6Nyt+9sTb%TJrIsH>DpB}X$yt}n(78L$E4>rxMlnhFeU zc&_EJv3kA5n_K`zEJjZ|w-4oIWz>83T4d8oWL)=uAHF z{Oidd;dPY98D+<{ReyysH{6+qD-Z0N#-CrNdocLDpt|j1GCk_VUlsg5K4+DGI`ISW z!G{YW!1k!m!x4}5r}CrwCa`^end;s!_<`YVV!&J4T>~aT#%ohV@%D>vr$rB(pr8Zq zSA|RP)%N1vPndCvuOGv0S{1;P8TA!^*>$@I*Xf^3C&X_KFIkka_p3+8UK>CRmkM`w z&3wAQ4z+x@@TjO~_<5=zR$a!A?7E$U>-5j5m&aZiev^;RuEXO001a%%o~QAzl9RwX z+2aHQQXc{9sN>0I=8x?9orCLi`=4JYiTpf9R%OT5pZ@>}KZj5JyrzY5a>UIyU)9!tbABeOO^DOb;`_q?R&_9B8$@i~|Tf<%@jl8id z5hl!8QUGYaF>}k&)=h+6$f4xjwRy;A{zCe%S?}&%r-NjG;01Ja(@0!n% z_6~L2`r&Nw*vP@D7R2(o74kCtX4V4jWjU<~zBTGXFsz?2qmlL>KbiGM*rp4(o+<%t zB6S^W=7_#IY6Jk${GzP?0K)RQ-G)E~E>;}J($U7N@*X&^IJk;W_)OxFRQ=9t%HQLh zqEuCfdivH%{9c^uBK^SK&<|>*NS7n(`C(?|N9j=c6On+pub<=i>j@m%?fhzJ{y4*) zVikO%J>W$)c9rQ$>pHLsy=%o&<8GWl%tI!p9~?A=V67KVdR7D3Lfj_|ycz@!&w;?N zA0HbuIf+s+OdlHbeEg^G)<%c4eVNdnGfncQBLf1waC~jjGxMBNhsIqMhE=Eo*P7l$ zA2$^N5Bxle^F;W`ph@z)n9sFNzZE<;5$#YQ9Jp%uk1#NP{;iD>{L zp^M_5hKVZDr~}%V?05TAaB2)}Jl827#IFrXGO`2sRMGrG@Z0eu>Vw{a9W#8XoB>Se zxdSzfzBlmX!*IAlDc|s!_;D8o=Y^jEkbM+LkwTh<7rwu70A6j>NGP5xOY$uPkWHel}FkYV~;HKpPLz*LGAlW-L%w@@~>IH!G@PvGEF9m>fwNAgsP zI?>A?ZvO`~Fop z#Yq%I5OZ$U*%Q?(LkbvsM+#q6N=0UKwaEa5@gANQX` zdH}+|-=`eX=RDGM1&#$ffgdF86y=X=aZ4L-Juycm{!zt95wFRT)VpJIk;N|`bkt%p zPs-S!36fBw4M&)Tuqv>MM&S0TLMRv<8mpkOA#JO`=A48&?qP#aka2=>PV+#IWfwp% z87g1qL5hMjV}RYNY;F6enxGt3MO}uoc96`q ze2E;I&5+@kFHzRKtZv6nA9KXDFoRZ|RDTsn6qN;d#TuAT?PDe*_>?~-K5_(ijtfY!~QyJuaDX+M805`wmAO)5C5UkAU0M@ThkTV~^6jV2o-Kk~$jpZC52uc_001@u>?o zqbVl~Th}=#8sSxA-|IqbVYZca`9Kdn)8+oXl3E zA2WQ^5+TQG6;Dypq!HuXQ}%qFa3}&irfH0aBX3Fy`_LVZ6@N+qO@nr5D~?vC3QT7L znz6X~NTk3pVo?3-D^T4kXQpde!QdX1i+7o1SXYeIQr!XU`X(1ow^95m2kBgQ#3FyP zl{;=2uKP~5STy)oxC8lD2k`?3ON|$<`u!IJ`~-ZyBlw43rMZ(zfUx_hqx7kSD0=p) z_AJk*TdIr=i~Oo&B}vaiTbYEBsy6iGR5_8pa5(gD|tK}cN)*& zQ`Mb^&(f6b*@HlIB1pz^J5W@XC#6RL$UUlM&U4nQQ4#EgkIhOW$KB?abYLDTA3p$q zDAZ)^08zLMifAQ{IssLKI<+384Jr17@Y&wBGnfNvej8>g3EmY`Rd!5a@AN+14t)`Xs($ObXes!E8>#aNpv z02NjG4kzX3^vl`8ys6B0ANt+uDesUG;nFTDsU-TjiN}# z#sKxH3hg+mxnRK5tluy+S&&NcXWE%2(3>hhnU3tyv6zoaqyjRP3%0A-#>ZZ_+tYIY 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

MkGIHy^$0B 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%0D+@R2%EfEY_BMQPcz?B4|) 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�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%0DUt*)F#WWHJ%TzzL^m4phEj;UbG;#db3;EC% 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

pOk#mi}H=efCf1`X$CR0Q(3av#}wbC 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%0DlqK_|xDI0jJz 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%0DGx$x&##Me*z1lO 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

dV$iALg(furC%`lO&>M_yq=Wi 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 <{R&Uvt1dYvTw3-NX30U zZ3A1Zt{-!O(y{J!JIg&W@8n;U9D3G-p9SjQ0X$CE4$!!jMsiJK#qi5o&=>6z$L6p< zciz7BvDYELvuBbV`kZ2$;TGA*duU<+{oRNBEA=-|@Rxr^CMy$)ssO zDxv5w0H`GWq&!O*NKOdv&{mX`7sO>XFS3257MC8I62)$tMmSX*3eJ{iLPI5dnJ4WX zbz;G;6{RP#^sT)cd8q+oq( z;~yD(NbygP?!*$#e75NXe{>4uqVSiFwar37C9Cgq^D!N(va;~Lp`xeRVz(`Ld)JSN z#mZVl_Nd|EOyM>$S{H)#4QDqOhwQd$dbb3Mv0^g1MeTDaYmDGQ)$;$vOQ;8@dt%`8)hvu_g9#3 zTi(8O@rR7A^g@CJ>pLr>hWk^8MBj6 zyqM!;N=RRFaexIw;Vlwx80*$r5V#hpbohB&qAh-^{4CPG4E!k24W5T68n}GTc*O3J zKp!ad6yZ+p#7?D-2jM^Lnc-a;-aF5T1N%!;;It?GTxYoVHT9N}r1*2gcAsO>?bbNd z;6@YxF(IE@`w|6`-30Kyi@)b&w`^IT_N_(SAUIO28)KB1}iVzm3oJ` zHO`)``?!Du+y4NqPCA{6eBM~&+P-`L0EO+~=jCM!O`qexgd$8C73)9Thc!d!QL9)M z&y~;8n);QI9KfYlxfS!Ye;&LoCO{b{rFjp;-`YkUF4=7~ShGBXsI00^iaIH&v+Mn5 z;(vp5D|R}J(8aT{z%}6-{{Zc6@Y=y;hBosUa5kVKzcGAO<2`4@*UvrW%M~Z?=DA7j zeofds^v!tHaS{6{?uHfprhTLFBlel_r;Bv<)8Mc!9QRCZ9<}n++V+jOn4rdc;8z3X z(OiyqI-^Z3j^F!k+n_;HM|T9{Aq8-lHD()$A?Z`hS1H)BkFwJQa1rwg$BR%O#5Yxu zc^h>3YVI7Si$NPlwQDE^g|k2rK~>)RR{kti za~brdNWt`=c7Uehd}n#426yC~8h4h>^r_Oqc~ml?H7WvXB~0Y)9coW7sOOs8hr{=K zM4LD@(AfB06nT^M^sN*OT#>;=4aLi17|VSHdl$lOFHX|@RcozyhTqPP$cYj%xeVR1 zD|b#^KFvcc3WQd<*J4k*8lR;;QXJ3I4+(hBP1f|p7QtZNGqi9Nb_39RS3@lS04Mx? ze7{=!zK7xlwWpw6Hd6*YD@GrS{xyq%de!OB#zHE|9CO3Aewm`9L>(_O-kYdZWyqT2 zIsX7^zcQEN=Z*K5OXgGQnvPG4o;uGulM;RFf9)t4eN~^Q3lu?i{ih#|M6g2>ZWkl| z`W5+&AH_c#$;;|&KN^m2ias%J2BhccX#UiPVEU^+P~?KhCi8eP{_vzpH04c#=pXnH zuggh3B6z*w3fhy8#;U)Md|03~dZXv-NA{#U3+kupt3Hpkhq?>@00I?XItqch=`rlp z`C~20K#SB20*6zLG&h~UlnVy<2SM&#+UZIf0VDNAFO9s@Y^=;w4h)2#%cqt zcxm&t>NNxXp7!AUhupuNxhA+ z*f6P=#Xb@sq?fUbf3z#|X}m?Nul&8aUuLKeh_z`()w*?4>S+GdE9xie;qi}ze8N80 z76{G2+q?m3;mGf^E%=NU7%=4(IgVET+t)_?d;{0rtB-9&%j zLZg@BKY)}3H?WL_XUB79+ z4Wn&_BZ1S3{O()Cjd<%;S5(U7K;oD7o9t=zIG=vY`%-B5$B@K*Dk1w(XvH{%v-Gck zn^0#M7!;=e0BYqx7^wc!pJ4i&PrIl6r>v76O{r#YQB6rA|bnsSHcGW0L{il zMs5f>BRqbszm#;@Ajj$UA|4TAHtzu+J#w3HpBs63(0uH?tm%}v^(`Qe`!?g zA61F>F#V|s`&21Q8vgSh!Hrl0nmK>Dl?vwz{JwJqLU zws;=Yl77>UN6l#HN2PpRFQx~vsJ_w+yWCcP+EoMUus+Ct+JjUa$7%A`WWTiDzboz# zZBI)1FYVi#Y3JJ*sFrqOK

5H34B@eQy5%wC=qi*e!qppmz-60 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 ZV%aWSYlR7^c5lf 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

si{4l_Zhjes99MOGLR<^W{U4*wv$S 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

UEyYom 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

?T50Mgzef;WB$toSb(?u!wGsiT4Jm&<15 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੄&-3Gs+>GrN65K^6?rsl0wP@)ONr2L2NX-Cq=IxeH%Gpy^ zLkYipdM!HVN=ZITZZ=kLl`Ii$9r&OQlHKB(J&VOB+4l30aBCf7meEz0kZV@Zh8vF# zdQb+kMQfexK;oF!Hers!39MI_+p#mcfH9+Zt?o*P$*aw&M;29-5m=9BEKT-}y$wIkSpY(xH2_(>x@qy`j0{yJ zhCn>f{EpRlLn24>3~uRBwWP2e#Qd}Ym`pz~kl>nvC}I8sxvI^^nAZ#?kG)KEzq7~Y z=No7OD|8-b%rT14O}nbJaf^bZb_HLHPYKIO!0A8~=6O-EyRBF|3|rfr4%HhVUE98D zr!0=Ke(R+GIiymV2WS->Y&l?X4|<7hKXw?J*|fKY;vo}_qt<{k;EXsq87HM&ju~NJ zop`Iyr!BJn<+!O~bQaC#uwp0zflbOhx{5n^+~I~=oo^wzV}KX7Ye?HHQTeeDSWpF1 z1QGS?PecJkkem_eO@`L%f1fD%O*TbzcG>c+04bh#!ZUGHX1BU_`95T=yFVlNhT~QS zqi=5}#!-q4%y?pWitbVmrAsBl#K1`w6xPM%-K;7nU^CjYlUT94U}eS@fFNd(xgT_P zs3LiHmLDLk8;wTIAukeSj+M@)y_t5&5XZFuUXtnD`4NhZZWN3|f05aJ?&jS)vn|lZvM;%f{di zf`Ba%2!TYrA4;Jlf+7)lT8>CAE=ZL|R;|3&(Ct}N4%|=%owLC9%7+55-O(pu8uzKb z*K8Q=`>R!_x`Cx%FOQ`FMR18TWMNvUJ(34d?bfv$$Y5XY`c)~(okVetKYkwhR$7;=*7lp7!`n@!&(|KwF zD5!+llWd(9fExr*x6F7rtym*;Ky$fsS<#qP$zk`pR;j1oXz6B z06!|GE#@~npM@2nnF49CM`o#wioL1!jJ9Wy@}8A`TZkVKaB7>IR3Qs zjH}e`5c8GOky(jw-aw5pidDNyXvB=*`&8JZ&W?NJ7T#Vt6$OYfDVQe)v5v25%nRdb ztH)D@D0eCOPfAuOuXm`;G^Rhg7NxbGdyGWmDl40~*C6vZY{(sJO54OXaYMr9fI2B- z5Jih|&0}0mB$y2rTB)wL46+G#Z5^t1)-B#a9xz1~0&8-zHW_e76vu+b36;x$X>KM+ zVvK zPn1_5Bx>)3d>Y$=bdC?R?)klIor+kFB$3x}?V5a-cF`7%dKY9KaMbHBAL8qe8ym2kD> zGI;LF8Nl-wYWK}%>Yoto3vCiBW6;vDT=!MGS)a^=<1`dP``G8{Up2$=X4=|PsURcV zio0*|iq=wNG5~#zU$X<=h4fL~d2Pbf_m_72b8jH|Yr_}fUYN>$(0*S~YnaqNEa`A% zEfmNbxu@*H=e$eeZI9%a1d4aS_g>ry)|ykkG7w&7dh)Uo+*;a zf6(8bYNHQ}wR^`9oUpAA5BN}9%nkR>anRRN+9jM4seuCXSel%K*V>#+4&9*DzqRTU zZG3Z%1$WlkYL#bU$0Z|h1Kn_{picD_F?@&!~1nq_5t6M-k{{S+6 z16GWdkh^b-iU7?K9+Ux6^H4z$+J0(= z+V)9P{a?$9xh;*6MU-+qDzY}wwlVTh1*H#irZ`iYx%L-=*fBUX?Iq!gO!Oy;pIE$5 zf*4L{0~}hCQb`ZXTQFM2esFp0YP2e{N94J|6#1k!pg|bjngG~HqGRQ;$)ypZA20Z8 zKF%rdWqt>xLi0$HFg(x(zm}05!n350&Sne9H7ZCJ0`eZcsyJL*z-4}ipr8t{+esN< z4t=U-kS-(JmZVKXVaQBouOh?cnX!^+0gWkERV#r`mij2y1DcFX7b0)KR3Q>z#DKWz zKoP8s97UJ-ze;Voqi&J9`qNS|FCK=VoZHu&k{X)##My z?yW?NZg9K3C<2wulTC*ExIHUoD`oQ6c)`Xhoz>b|uwT9^yIjkB$7$FWfG&BlMCBM{ z4z+vD6DRIlx8+=!hGQ|@-!FQe-e~NDGq(q&09%^aDOQp2YQ>xptWqA;jxHg;ZK~NL zpsVe2mhkx?@@N99Mo_zf)1_C2T>kaP-K!Sm(odY^H%hlAoIL4 z^!+Ymx$`IFewELx-(dNV%+;!z_V~6ZFF+bvq;WG405m|NI5-_UR$LD9$>%Za+O2)H zn{WUCIG_uq*_SW!sH$go4EvbY;lH>=X4>7ooaGbd z713X`CKagVzu+B5Se%trENTt#5}>eI>>!7 zWw|9!1lK~Q)(C#i4_E~67g%sXai&I2|n1q^7_<_&|6!P7g1T-cAj9j z4$qQ%Rn@aQ8RYycKrLz4GML%+{RL%esE$OWjoy_a&n=v1zIs(fv!42G=OIU00MfO1 z($!RsqN!m-oVL}gM%{i`GxuvZP_(%iVbD+p+(qQZ)yj&Ydu9^kGK}u+TDm}JY*abR zVxYM58bIyx;HHN#?4_@}*u42!S^@ z;aS)6Lx8dM6j%-6D@fsEJXR&`qz+pLFGZy74XZP@Jt?|nxt3Err;0gH32g+4YQS~u zD$TNp#@SC^)eXe*nF@io+*WSsR`qx$s>88!Ssqk7pyP_T5RQ_so5u?i~#v zD%y`HD*~Ikt~sMx3yE3Qo5O(s&FU*j-_+uUSqE6p{dHz z1e!h$D!|je(B5>9$*VAFJMKc7YA`9K^B z<^JDt@cBr*iUP-7Yh?wcv61jt`c`}}MJ>;mbFpimgz7gg$&yqKy{kh`^COr?CQq&@ zwa_B0cDi4TH4PeJ_D4H2jCQY4wD_K$SdRH}YrGXDU?rM$a6|GYs{->^ z)VKYcPB@5ks$XNc)FoScNcMx)uG{G^rq7$V*ildeEN<3&A_s^ z2g}Yl^rzYBFMBwX%))wA%~Mpj(On~r132P^JBem5!%L%A&7#Y^%ZMf z)b(q)LlNc1dsbGTFOd%ExCVea)`-a-ZMv;fd#j!Us7<}=qS9bj)4cm}lGT~0K*?&x zVgWQ6h*>4H+JkvMm4@COk~I57hs)1u*YMS>O?A3gB|+d^rfAjc;gM-&0T+Jq1o zpk6@5X6jmUh|%R6oc0ya&v6y0Cfz>mR7Y(>;x0JNQebmSV;#$+b3?U2tV@kP*y;%t zx!M8gUW=^7EM+ZVU95Z8H#UYNDVZ@T?^Ff`y{AtK#@3v-(!B4)o))~kwG(spgU~M( z?9CKNij3u*eJL+4t>d>lS0z0~K4e{wo8`3ekB77qJXda*KkED9y3Ysr<57+{h5I~m zj`{0dcCo0X-KW`_-*9dT$4bQi0EAmkOI4f}4Ufu~Dg@ft`ftO(6zoh?!a)ny8 ztZ&*i+Ik-K=ofZ6X1(*-NTrW%;<=m82I>}&nJvC`?@K}2#Rr@g9#3CdRJolSbAEM{ zW4zPP?-v8!oeki0VBC}WQDC{zMSmoiP;y0WG{i-?pPY`B!$9&x;#5C{UtLP(Sumre zOG3GIlTeVCOyadHE$*3=$Z$t$&bQWHIW|hT6}xGwru7Vd{x=n+I0DbTBySmN~}SqM!~EWrdLs}32N?Of-E(Zp$sB;4_R0g~h8N!}OpGO_!}G+?^`rwUo0;9hZ^X zwPVz63y6*eD(qUFvVG9JPz6`DA%@ubs&eUf2Q7jRrF0+KRgU2?r*!?z}-9yvDdDku^cE7auifPbtth zMaNM{mNQDl)Zo=Pb(jKt$;hYm=1u88Hiv$YUwTYNNwX)RQzknr@lU5F@gZ?QCw=bN}&`GDO?X?yVoG{ z^BhWQf@-l`Czm>H2E3jfLh(iyB$}R0M)8x%BP4efJfb@5`E1hQM;`#yDJK^08Yxa| zm1%Ve@Zma8uXK%>20^2gInLh4#Fsu`icz^iuTQnUx1JHR0FltwhFVD|JJvJDsI7#! z)Ewp=%lJ{s7d>Fx;O`77H`08;=Q;Un&S0BZR|9jOYSOy9)>beHWm-8x=Sy(_hlpCD ziBu83KtCGdBf8ZjCtzcWdd;ZFet6DDwN;1AdPG`vyRJb8HDl~zF}WJN{@t~i$XLNp zwc2Uvs6`1ECw6GCa~7t9&QC5wm8##__UVLG+$zi5C>sdHFwF~L6|ieE`PrR$;p

rC+mizeCPc(!%mio0#&O+v&7=0aDtMSnvc zCjFW|8u)?JV~I<ztg^t$Vwj9{!Nx1oG;bgHvqp?0chWLr?&lTpev9M#`w3KDWsrK;u<8E*5;VJr zlrh@X9FmE&WfpzK;UC&hQqv+^eO0on>TBsA4E%iXj<*u5+f<$neq6z*>AJL7w{;JS zgZ)0on|T?1FmXlunmS#N*^6CE!#dF2r`)PB{_ho|6YF|$-KN~JLFjAo_eJ=R;|&T$ zF-*lrsjs1YANx=0I%!CCMJ_l5o|O(UWGOU$l2~}#QMHUFt8M0k$4b|=z0kEecS@oo z=y;oA&&_XezcAvn_6WafdQI<#?eC%zT3qc>(+0Cs z!;)DynA5XYCv$6bFm&6JSK6-I>e|hr9&p|l)KTmM+MUF3yP!q+MNb8kO8A+xSr+~( zvXf`pqw>$KZ>83mcDvz}8sc=zA1$q#FxcRGQ_$Nd$r7!{g)F>xO$ zHB-Ev{{YQqw=6vXs3W}BV*}0Iw9+#>y*AogSipAOS~A_Ve8|Bu(>0Cf+@*?`kh9{v z<6r*(gqu`8TtScyn4r+~%bi-$IhtU7sj%w$eZuYI72z=WW5rV3s!CgJb!*|hTFO1h z#Nc$N?8&+5Gd-R^(Qzeb-boCw`8e8ZhqPZ1Mi{JQEp&DoPNjSE%ax+*T#U{p-HXm5c&v>QL$S_c3B0lzUSzJR50v6`iw+1b8f# zvfe3vN2OpzZLizh8EhHj1Jb?u{34M^sTey2Yr)~`BmyTGpbwto@ehgPlzpQti`R-W#xo3=smiT#CcgJSnDK!qCCBT=c~&BKeMKZlS*+1;Xd+P)VUI z?pU^QT-DdY-ED46mX~`%`_|>QiQ;V**vTV#>OE1EEwILbE{3`I(^@2oUj&WX?np{sd8WjpXt43WbOA&H_F!Za?H9S&F zon}`&F#@8HYEr70Re|qbwKt4@y@-%+D1UH)u>Oj$XE*T}99a z1vsx)TRk>u#DX!OrC(cHDI5J*!qIdb%<)gK-my6+j@4of7gKynV>?BAB)W72?nuTD zrAhXSD@72v#YtB@h{dYH50-~$rlrl?!^34aj%n)T`_peZc!^(upNjdhc{clBy?A*HNjwy1PoMQN+5(JEM>JJq* zqvA<18g1Nts;-ft#H#Ym5#yk$x||b2JpTYEYN_B+$_455HWr>_uyw9(A1UN6k>fs< z+G+PtU)uRsDYSal<(83a93`Rw#Z}EYPd&Hu<17;+=}(JR*KP8V79dxkCW^a^srglJ z?D&#jDL(n_PT|dCkh$?zvm8pZHzT!dX+AG$q2a5h9%jJ9)K@(=pLb|g zmM#ai9?Ut0I>swfL2x^748C zUYlugr(CFLoK=+3^y4SmODHs04J`Cvh518_9BsdXwKWzZDYlI?b>)-S&)Z~OOISvA*yIz5rQU)H3=uG;;Wef=Si;W zSC7FYcH)^O<R0RY z?>P4DS4FO$8w?y8v%cEeH`uupxlpdiVb|`Fzk0-q&b!twnnSgSTDfg~WZx`_-=%d6 zE|uhs@q)B+pu0HxeO~f3^FuRYqL0S%EytHUM2?*+(CnKwaVcNQYX-8r|EzBFL`NWzwUJm}3A|L{i)NxDhVjr2|aorq!}#Ql!`8|B~(-+CBF|!`B;9z-?VM_gCz0Znvv|ewriN|nYPa& zuSHSnM?qhq9|=AV=szDmEMDrG>zVXV4S7u@L5lB~mfEKszFPZt#~&KLAN)De^=&7{ zk+qNZExsc@R^@p1pDj@1jxk-asmU9h6(P?359AK_TD-Qs{>qlv!8Au?=)(-GI4XXX zk*eB%Vd`mf9}!8<(!FouXW2Yo;%^arN3m42w!Oc&o;bhQc?n<8*PLqD*X(@A{`@0= zE8L>)ju)e`O8!W-%Ti(c@z)%}Xxqsd`D=Sa{{Tdj_orZPqP4X+Vr0#r1fHh112zd2 ztpEUI3dUBFIZiv$g_hnz4?|j3h_f-?I#308oCX;c)Y#m-U%MQGTQOsdk$#WfK}h85OXoWwn=l71_x(+=qAqGVWhZ{ih`aLljMirZj(%rLCW_+CHW zb~R>fr3O#VD_SfhWRY2R-=%1VI6jmR%w0nTNyaPmH}+N_cr>hhw)V|_dFm%}fI9kD z=s)bOG+*$8+)V!fA&ycFb7MXeYCE4xt(!?M;=9dC)+r~*ZT|pD@gER;deO9vQhN&+ zUT25p;C!Tt^Swj%i194B7Itc>{?&PLjGo6qo`bN>JWH2$wQyAEUZ?%U#5g>P~o zx?R78bbsg?)r-WB<|LzxV!s(-)iqmo5<_t7xBa7D!Qmf{UL)}K*rk}s5aOTJS+64-x^}-n_WG9Bvz0v?TPMFJ2Rnu6CO1zSvAegT;7qypb?v;MYZI;z?s)Dpk!# zA(_;KTe)0qu76vz5Lq5@D#n?7v%4~#q?*t1J@MiM>5gbdg#H`>V+OrzPq;AKY_B5l z>*Z8es=`$vT-K5^C-UHwvoIMoklIvIIT9vEw-tEmHgSWwg;z~t({@46(u)CA>^y+Y z2OC9sZlOKI^2pLR-8ipfo_N~cNfcu%UOLE3(wuNj2pPNJ4Po?86k1I0h~;36J7Cwn zd}z>YXVXRXt0^mjyL~ZVF$eM{N5}fI4ShM_j}6{@L$Q)sraxwd3V?laQ&)SAiSp)f(36Vh4)O*R-Re>z6uH@L*!SDy@Q;?vVOb?yf1TGuJP#km6<>ih(>> z)`37yD^tR@R=Snsab9B{gxAnk-wV7odlvQ!`@zr}&p_1qe(T1@Qb0~Cn!fRM%f?m+ zus)UcIrvB6xYH5Dq>6C(U*W&A>}yoW_N(@hGqjI^^$k+{R4Rr&#eF%f)mw!)F)%+$ z`_seT4AC^bVf@P|*?rc%4ZJy_G^Lit5uf%Jm$gQgXXanoZ)ae!+rK{5=zb6QQR43w zY7yDRXx8zPH%TDEfnR>Zq3IE0{T3g=1$FlNo}H#zywak@94nGQ1A$q*LhNZ8cQAZC zrTBB;Pl9HeMo+ZtEX;5jn2v(KJANg6Mb&;GYtr7`y9;zUiahY3SEu|?@s6kQFI<)g z_qGA%U~U){n* zSzR+)kZ$tME31&m$CGcHo+?P^P%+Z9WAOH=EBvtSt!qCAUr2K?+9|4G&T(?c9k>;z zructT)bJyWh4rsW(tHhR9l(-vyB(|0t?b~kU8({grEpR>Ef?YSyd%uIJI|+T>!14{ zK!g$%aa{hn<5;xicrE#A@*B-w^HP|-!;(EaR(Au~f41b+q-gBESgTsz)TR&Kz^*&P zEDezI#tE+48Q6aBwE$)6NB7XSFcHE0tK9xM`FfYbD=UqFv`G;M@UIWn^3bb+!ga5B z@sh`?d=-Y^rglQVrD0d2Hlx`1R@*G2+NUYfp|w9L6(h08_O9izlOt+$eSVaNnxA-6 z5w`^Y0Krxi<1E#bgdqm3tp5NhR-g)3>?Gt0$;Jg~+yx84tlR)IS&o>Y@G(u#G=PeB zGtz>{vCa){=}onW2C*GE+$#2(<~xz;R*8|>z*i)_Ldr?pwPFQV8|t%sjlrgK$YZ+! zwA4p5=TG7Wo1d3GC@69<6*|fX7~-RdaC1=-LE?ZVd@tRmf^p49za4q285=?CKnT2Z zNXI6d<{ra}kjBA7uQUM+jCcp7Ds;sw4>V_`G<>`c)By7i>R?T$1GOG=iike!ka;u# zZaDh2Mdt1}9Ac{pT>(Q;7~~`52NVHy<=VAa&cDOON|uv2-P)&*P5>5=&;<`SJq9CWu zFBQKM+NKPrCb@0oKTawBV`n*_4y4`NCPIN#TIw!aXs&#m@=YlJ0B5BDZ!P>?z{Ny0 z2+_V(6_CYWj+CO^i1wfjZ|zZxU{i*!!8uyTz}tl!iUK+3u%HX?sqW}0gHxPwj8=KW zayX`w+JG;%qdDnJTiNQEeY_f7$~p=FxVnVkV>Jo7pRVezBwm!KK9m6QaWQP}rD^4H zw>1G~9R(Y<^O^vE&DNdwxXmG%dSaq4=|B%Vlf5UH$E_ff1LhRNDz9n)n{me?m0ORR zq4QRn98d*-2cq)S56$tZBT6W1}IiLq0l=3JDhng5n2TFICdsM>KaGAw0TFQH3 zfFom`PZXe@)o1%UQlOfX`#HcHxS$H9^VhXADtXUJz5Sf!w&c^lvWlE@K>3lJ#easC zT}KAAlT6rgOgeLJ*@HlHB90JLZNMItvHhAb205w5nxSw-78g0rh> ziYy%GI2f-%%{@pQjwNs(Dbi`N?Fxg64Ec_Hu`BY5VRqs?U{_BC ziX();#TOO<8E%XMr_~= z3VfmM8O$!5E;0=gz;X2k`gUI?RHvF|9(-srY%~tvQ)SKkb zN_Hoht0tI*xD?p*^jF$NT-@OEP259d(O@ENHZ?iLGwdW6&uVu3o+`N!Lj{a0*iwII!`A|*XUG5wMtrDINx%mEmJpy|WKgk3-A5G6 zspB;8t&VzCa+7gV8&^Lvfr^<@2!3F^RC^Hh;EG{6J!s_)VeIigMa3e;Y<~AzZqY#6 zrnKcFm}|m`_ZNzEYXRyi*O?F;tw7R3-*IY69kwCE|n_D z8t|)Cw|4DJ!95KCUCMe;91r2DV6xM<=725kjP(@5<&HqAzl|n+dQb&`!>CbD5|8eR zg=A7OLUMXgGQrpwKH7r+0CU@&qNbSs>=mkV0K$!Q=SM3;;Tp2oq}KGpbG*7AA1<2YkO%pAYz-mbToty;h+hA&tVen zM9Hczr&>AO7n-rSCqYUZG;)sRKd?kN3&kMQAm*CKG|s zR8mJBxbxL=-K!~e8>1hRsA|kM_ss}BkF9xUVNY1Tkg8z_tjl}bhd3j0`d33etn+^E zf4H6NKkSA!StA=zb)^s^wYr`Om*wD|1#VsWWssHHTBd-(IZ~i+6&9fvn{G&NnJIyX zcRWwJD|b9~H71rD8{F`C$*UHYR{lrtSE%IHv}7?oa;(#+HiK9l` zoQidgr<#U&e(ynBWxmrWivyp^n{#a~ya82qu6s}hT0C~s9D)I>b27-|%fT3={>^eX z2Hf71A1)-!oHj9v0F>NXh4R&T_N%bR83mkY9R*^tpp9j3lv7Rgvp5j0HjcCbr*P}! zJ4iN#=qn{+cH1Ky4@!>W=W=}Ccy$!zo6JFxwYmxbm6F|<0>6zdx&82sK?kv`amN}* z`_s)A2`1H+ATYf#KoaUsyW>E9d}5Jpcva6BsX;#oms!mp`%WDfGC9>q20I3|ycQ7b0wWD)-$B3iAQIE>0uAd|^4gUZmj+Jui z##V!u+DPaq0-cto(n`>`4Ap;hD4S$loYpm#ks{1xC+>8uE6Yh7sRxtA07rRv18j?@ zd{owpGDW?{OLX?Du;}o|ZeBxzd(@hEl1cV5;S^&u0Uf2p;lu%O0jae);z<=fsV}Yt zoViHyTa49FZjuost-C*^08tak9NCEBJu1Y;c}mRr*gY#|4LT%Nk^bo!sAh%djK-WP zpbBC*ZV(8EBd#j)u~>)^@Re6jf=hW^xWGP?=Dn3=cw^)rS^%#r+}tL`;;q}jY^{va zjl|MLAcU7AE8p6gb*NiTzFcSUpbB>vF-;oCs#TV(CC$pB$X9Y2g=Dw28`y?Z+MRK# zK@gAIwE#gY-pJd;MPsM=d1Y}P-&&Xc5=cV+^)Q2`D;6IR?!GIJ-5**2+`5iu+R>0# z+Oh7Q;h!y?tJDgH=Kk-^X&@iF9R)>VFK=XQ@TaW+YT9|Tk1ak=Lso9BXEyB!Jk)|X zBZMG-nSCopH3SJ=ju21>H)myVK1TUh)~t&whxub{sI38hk2<3O5Y@)MvbT{`{JXy@ z0LhZc)kJDATd6fA&7xb|4zq}w)6t1eW~XmTPogyfGA07<}@cfcBvxs zSwsMNb#7ViH;FckAsDNZ$r7T;Ai+M=0fR5v{{Z9GGIn~>J%pH8#DgSN-!~Jqah<{G zO~goc?fblB&;)SXv9Fg1z|PIyl3U>(zh00wK*^M1xU$f0ULnD1h!<^pw=TUG$c5n8(e^`qfEgvyK)C)_@>e zZLzFN&Umb*@a*1kDtN0=U%788FS}ay_cA=6ygNXk3?$K?&kG}r0n(>ux3*`A2hY-_ z)gstL@ITCZ3dtrz629E9Jl23;w2#YwHbJ>fbnSZ!53{J`*FRtl%586xn%0^)Vk3;7 zY58Q38dGY+Q_12B8v`^8(?!R94rwNC+J(E?q`x z<{)xK08b5*jlqvvZKA@HvdS^Hy;r-umOY(`s{|yl@^EMXyFY3sJ6_(Dw$_qB1dMS} z*lmcpf0sU$r4xC)DcqC+7*QrtGuE@DNo-he8;`AN7=%n&PCY7VGb{_{0h$2KfoG70 zo9?w|-P&D8bCesFx_7pBiFR;(Dp0JEGRUJi#Q<=Z4=jnE7aU+zmg_3RnZ{Jr@o$UZ zfk9rTy05UqJWLaX^q>q2RdZ})f$*cXQj%E6GD*(f)zMqpZHds~K;UASbbDYymAdty z4o2?z=PHP$QmsekEEvbj+P5aOv9%c_G3+Zg>v)ZJj3Mnn5~POkCzdc!a%$>d$dJF7 z*$Od=mI&J3%qoC4_pIq-w}hCt@_94?iqhQOOwuUZ8uzH=xbgux$u-i&6{gVwwpHn~ zXwXF3Gz0Xc7MHVD`=A(1xzwVm|JJ%O|tjE8~wL7GayjERz$NG#wT13i? z#{;!w*td$b+mkKo73ZlHqKhI&wSUCQ>hVm({NJTsxxM=e7~>x>@9SJ9o#N}8M0dI% zoN-*PspAS6{)D}cGpVKTVZy0JXg=!M}$0euG$;u z<|?@PM(kHT6Znfp)Y>cg2{9Zp=Q*qPW9L0K^ILlxow7~FYeF4H8;fHr&I5L?25oaj znkJUve|QH<7&g_8rBV)a=xcpaThueU`B9~0T=?1xc?@>wWs{)Ad5oH- zr0%gL$L`y(uXp%i;d@!v?YFS2vwhstP_UfOFSzl(wq#)HVjshv1w@zn{rTT4_)*iE z^pA^rMW&RZ?Nlo9&~aWVX{r3VPEgW}M(3fkE#|)q?OUy(c+Ps&cw+d2atmpp%vV&9!y_I!sAZF1xPYv; zjk_IRPY~QJsg140ZL3_`#0-cD6yac!BJh8~yB`tGR#^(3z*nGa zp8&i!;jJz886;+C#%rtiS*lu#pC)W1hoP@b_>;Qp!;?azC5IUFqN6H|Pl+ty(w^YN z6e_95HE#1o)7^oE7n*L7r`x2`tohDsO6o*{Re1Rc+No?z;(aCX{{Z24gS86?q`0<8 zCkxby;r=xE8%WTt((1wlkIU=@ZTvIVZfBVxjmnl712x)wP0?n*(aX+v`9mx#8Jbhn z_>$L9flwmZZ$6+_-JYp%*Gm)@yF&KGX;@FD!qNwb0UsTz^`@z9X@0kX11S1diRfnZ zKC$p;gtSddM2)X4lO%F0hxnJ^y(ZI6m93#vWEot0SD}0>@dcKtY;xdw3fJ+~tT#3{ zR_vgH2?n`kCv#XwL*Z=(-rrchFyA7o!Tl@ge+>ACM6kDx+AXM{ZLgJeJK1#YT4b|M z`)~z!eiBQ~LCkZZO!VTZw_(Buw`$%X(^BJgvCi7hk6nu7hF&vNuXF%y)gfP*d)2Kw zMKam(G_1&NrXEn}OM!?i3P8y6D?xl!`hX&#?#ZEy0XIO&S30g)Z3nnF{LO0{^e z9jB5`U$s74feMcy2NjDXI*r7FOk)+DfLQFAqAdRaFReP--Uc30b@!y24MB*HJ-Mn; z>DrMbsoJBttpMtVooHhMOmD4A4ITwu@}0}*D}^y%t9|{zRqHF=Mk#g!xDM5r9h{nN zfnpmBdsK^QYi|%)amR0J=FQB}u$oVl4uZ6oRf_WsBJ>!b4T)~8#Cd?=S12Hk?)y7) zim9mIGdP0RDquaE_GPZB#qav6_}cZx<}=KikWouxscDD#CE4Hn{Od@ljX;10Hk#@EPyuwdR5Eo z==LJ7Em=1Yb`c>N~)PDA1^q>kdU(BQ=>wtPz#hbJ+8RTq7)C$kLj5GO?ACY=g z!YMTuiU`gl9dSSwMy@Ugmk>Fo+f4(?{&2zVnzb#II(n3aa{UET{>Qpu=CRx9Kn-%@ zViB^wf~-kyJ-qWenzKhm(L7-MB^A9lmQ;2s4Ge%g?5DNS`cbqy22*>j-s$G+Bv5YARr#R zR-L@d1{N{$jxj(M8suC$ameZ`Mq78;<}Yr5R8z|oF)>5|$j)lN+ooGJe#g>)HZ2+` zqWQ8w_2NRz0_tXzV!e>9-{NBTPFoa18tv=qpD} z(n>Hfrso~~D{}8eXxL0&oO3`JSIEsPJby67W<=9lt2&;wy&snvx|iLWqUwr3!1=hK z23j=k43coIR$k5){{UWitC3sEHi3eKaf+)u`46^Xm7omB?fi#%ZO0v|+%lw@Y1if* zsi}D^zq^G#Rjjs_c9E4=X*2=Qo68R?uGtfysbJJ3buPzx;~ZBdJ(8(cZe(iTcZ*K3 zSfd=c=71>b8?ISGjlPuYcs|VED(-5I3zzcp;CmXs9pY{ZqvkXLEE1>PZy1tH0nEl#y_Z0+l{iflXBeh3r&D8ZdLirK> ziNyv)dr= z&lMB1WHe2*3e|wQiDtR^m$d*~(-IK|`F{7MP@3LPwqg}5DqZX5$2)=jBjmoLx6|g3GB3M~*?^ug-^M2!z-mk%Q@B`u~p`*jlxj( zO^E5%%o27h$Tg9A*B2KhN%>cxpbnyGAc_#n_+qi-xie0YF#|oT9y#t^ynv+D#J7zY z$s>HifG+B{e`U4ul;?M)VA|Ude$ggN_N2FlTdS!{WUBPdPWE@MPtCGA0J|;3Y|5Ts z3@YPYTZq@rUz@dZS2k^LDzE(~a+1W*R-Y$cSw-;rxAucP}>;|RS)P#TTv z=GGYg@9|Pcrrk=wI^o;$qQGii>M$79B3$RvnGNH(@{zU?+NW(4M;hb(Wmu0!F(_hx zdf&>60PDv{thNTsp0u_tJTIn?rP*3MAP29XO$f&1D>&-;{{!FyQ!-} z%tXb)ZU(x4?6U$CE46{D7cxDt^7dt@12!p)pSX+VrnIeXy4-AuO^U|64+PzIXG19FN0 z_Wu9|c)wanc3w;7LOKJ}743Gq#+82RB9s&|mY-6|7zyqf7Ubk&?Z+RNr+c0E) zmCYzv-ZD&vSkS2faaGnR)DJLqtpXgj(^1?(zAk@;p)!bV?W2z`oQloXV_UG6QSqAD zf<3Wij{>1ZwcOV(z?!Q8&uQKl)AZ>hl@xCk(>hzX5&@08)0SIC8Qt>ss3xAtn`Z7s zD}m--I{0U%_=W*CpNnbFpy2)$^1ij2xU^>Kmv?$1qgu!d^r}`-O949GwD~8M2CvI&X?pEF z%Wx0MD<{OU+|L4{9ndK0R7nlqsJHi95r>uhBCknovqX`&0~N?<`e{iP^5cb0)z>uZ zaVq(E2|yifo%&natWXs|J62TAw^MnS5Aq7;?6qJ(YR;jCavm<(Ctez!*%wi1uaukiW}Xw<2d57uYTDo8<%VY+PUUyn``5_ zdbe8XCRuJR*v0d4KoRNMqz@5+qxqNmR$O*=d|Z659Xxs^d9jw_zmJ|0`$ zZfi4v*MUnwYWyBH)ve#;ZQ0_Hv~`~zM1ObMnHG{`knWFn(q1=-IdrBGiF-#IE6jC8L}l3nk%GuESy(S*KcMg;(Qb7&XJ!ZJ>3 zbyp;rqzGR&3X!Ex9f89+cVi`DPoG z^q|b)SHq9xhi3dLL!q6k<&G<|`y(zRZnbva#GvHlPzM%#Fs2~w$*T+DH1bZ~39i{~ z#Er1<1xq3h@Y_}+I6!AbDjD82TExAV( z1>b>^HuE8B?Y`V0L4(C4w_vX1ZVdo%W5Wso8hR&|Vi>E4`^G`wbgJM?Uv@GmvjVJo4xGG%9Mwed{e#R^;u~wA zX`%_!6`rjrY~+e8z*g|JizqNgsgF@iJ{Gq;kf#-|_Olu&1e#U4lNra#Y1|AL^jm1( zZ z7Qht@kVhEZ7iumm1dR%)8wN!{?k0YgR z+uWnZ89@3{8f9y^*aFNtio|$skwk!C4wcvWklZfEAR33r^CS?jAW%`vLd56HZaY?o zkq*E~`HgK|Y3PuAhykqDvmy>Y^#D{M)8&t)UbFLx5W^rR7mUB27> zHU@uCpdZe?v-^C47x-&VJz6MFeY4w0zai0@%X3)3sd0K(c9_DqWIUtbCkTco)V`VsREB<7x0Z#e`z01wwWRopHG_%f4Xs7 zT33v`X`!%+JGa_9X1-n0z9MUyY=JHT!g|-GX`d4y7sr)zlOZab9hB0_mU#B(se>SV6YB6uLk$P1tOIwNm0C{USPQcYF-O&A? zWA>iI#l9HvDyzXPXLn3isM91Zy3*sPAOl~Gx>t=nQ{kDFtnMT`KZKqu-#jP#QR@0z zBI;aYf_l|QmR$_mX#FU#@dt=Brt%&iIxlfuy@!u0crEPxhPewygq- zhr^z^z^_@e@vnotN~7%artfoERHN7xL+Kl7d?%<&=32=acK#7f)U=%{>N6ac>O%Cd z42w!#qHQYRM%}iW*Iir1+H!|0=SIEjmEop1w0cAuW}9xxu-k#{Q{3q`md++vfZf2GZbX(2y$!8N}#HERx(=&GN(n+v!caYgqE5YU8zN z*=dnk$FPtI?^v3aha~bei2nc~toeoP%*)MjY~$RCzvEw(`X4p9_Ndg8Ry{?oT$CIN%elXuCh~y!YB*(n)zD~{9wvigD~fm^+3 zi+JTvF}XP770b%@S6Nu)3|FQpuspLGt8^0OR!wYduoe%)5kf+*g>~_+m?`%4r~z=s2&TBek_;@_f7~s1n(1cT1;2 z3w;@CG>Q4R)Gei>`dIx~v;t+lq$r`^A%95>R<#vemgXjZaX4WRnqo zRV@M2*z1~A?06?*FJo5|QquzAWfM|26MHT^K)ij7O%^=CCzqd5lHl<*xxg{7ik0s5m^Xx!39`!~oBF^-A0m^NyD}5Hm$M?Q=MHT`W z(hCCn#zF5?+h4U@z^l8`woEqn5t!GJ>r|oAY*D}*lRy=lR=;SKEMYmS4=;#r2uaiB zKc#l26_4(K2p^SZESJ%-n4Cr{Kp?mKRBs;}Z}wze%DzCAdg z4Exw2l=%m>S+mtF{Jp4w4|6~rCBC(&OqdDJ zp{sKJrfAqaU}RSpCaE+M7Pnw&Vet;DJexv-1qNgq#FzHh3YOqxie-h@i1Ls$ctU!b z&(t+dKwSwXizItiqWHb-p;VR-54`|uUR&Nz11m5L2WsVEwA4#uAqe9JwVzrSiMbCx z)tchva4xCp>r(YydmAE}S(`UcaOZ~;>ivgP# zjdkxWVe^hfbar=_dalp4+@En=jrHD@qRd#*?4wFCa;_iJD0*X6Jf^ycC1VN0l13U0;u(`X9m�M+2_^rp>c4bRG` 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

k&J-;?qt2cpd$l3`t>6>F50BKWdFDLM$oGy7; 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

VPBxUvc8a{JVspBg6tTN( zf6{;^vz1E~BbuRo=0$SOdR5;cJn!5bQ8l|eeE$G70A)vf$jg=BR=K)XkL2omRaet; za!3Gnsy>_KrL$i_V=0`xlUz+t;o*4nbqHW{{$YUggDWdKHU z52Zn28$!&+fIT8>i&u*r9yzXNG!Sl-Hq*O+Ju0f+hT9ljxv8%whBz>X=2`%$cOaH# zm5(E}G6}6?LpWT&r9Lwi(lejGip@5cCGi5_PzCkZutJrY$k~LkB>^_LrkY?4n633uM`Drf$cyYD2d=dJ7Frx zyhb7<8-T1EMYxmz$B%l|NX!71s^tP9DQQ_x%C&yS3A=IQwO2ODD`Pm#MAnkWDxl5{ z9H3~m)vTw>bOxq^(iD?1wg;fB{{XT^%2f^;uGv8G@K4_2qz!rPt=O1bEu-e$ zavzG;k;;)D-s2TPEhX~{2F54@9{%QbK2E{_s34X&gACx;M=jg}GK2!+v8J&TuzZEx zKpBl8l2PQ7#a5lJZa;Oi?$=9iroEzWVi;A$lG)V!pbnFA5>`cMXK!pzvmG$b?U4f26n zZ!(jVPJJkjHQl;Ed7uaqWXP%>Z44RJmMD`d3Y9 ztIGcXd!gxEg}ZG9Pasp0c@{w`aH~KayR%9`JXO;YY#q&T$$vA+l;bt074*@t0kS

R9jQkv?ym+JHL-x3g%=t}%+`{{XVXxsgs6wMlP! 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

L5vbP4gL1a9!6zoQ51Fnx$n%>9Fjj~TqYUQpX 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

yJs_N??N{vvpu=Wm^VA;+ap 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 literal 0 HcmV?d00001 diff --git a/deploy/tkfb-package/web-ui/img/logo.png b/deploy/tkfb-package/web-ui/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbd962e3dedce356d28528ee4d3414d2279fdb0 GIT binary patch literal 14999 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

OOiH6BUu|TplqV(0k%_=aq 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/index.html b/deploy/tkfb-package/web-ui/index.html new file mode 100644 index 0000000..e87b534 --- /dev/null +++ b/deploy/tkfb-package/web-ui/index.html @@ -0,0 +1,29 @@ + + + + + + (주)테크니컬코리아 생산팀 포털 + + + + +

+ + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/admin-settings.js b/deploy/tkfb-package/web-ui/js/admin-settings.js new file mode 100644 index 0000000..50b47fe --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/admin-settings.js @@ -0,0 +1,1260 @@ +// admin-settings.js - 관리자 설정 페이지 + +// 전역 변수 +let currentUser = null; +let users = []; +let filteredUsers = []; +let currentEditingUser = null; + +// DOM 요소 +const elements = { + // 시간 + timeValue: document.getElementById('timeValue'), + + // 사용자 정보 + userName: document.getElementById('userName'), + userRole: document.getElementById('userRole'), + userInitial: document.getElementById('userInitial'), + + // 검색 및 필터 + userSearch: document.getElementById('userSearch'), + filterButtons: document.querySelectorAll('.filter-btn'), + + // 테이블 + usersTableBody: document.getElementById('usersTableBody'), + emptyState: document.getElementById('emptyState'), + + // 버튼 + addUserBtn: document.getElementById('addUserBtn'), + saveUserBtn: document.getElementById('saveUserBtn'), + confirmDeleteBtn: document.getElementById('confirmDeleteBtn'), + + // 모달 + userModal: document.getElementById('userModal'), + deleteModal: document.getElementById('deleteModal'), + modalTitle: document.getElementById('modalTitle'), + + // 폼 + userForm: document.getElementById('userForm'), + userNameInput: document.getElementById('userName'), + userIdInput: document.getElementById('userId'), + userPasswordInput: document.getElementById('userPassword'), + userRoleSelect: document.getElementById('userRole'), + userEmailInput: document.getElementById('userEmail'), + userPhoneInput: document.getElementById('userPhone'), + passwordGroup: document.getElementById('passwordGroup'), + + // 토스트 + toastContainer: document.getElementById('toastContainer') +}; + +// ========== 초기화 ========== // +document.addEventListener('DOMContentLoaded', async () => { + console.log('🔧 관리자 설정 페이지 초기화 시작'); + + try { + await initializePage(); + console.log('✅ 관리자 설정 페이지 초기화 완료'); + } catch (error) { + console.error('❌ 페이지 초기화 오류:', error); + showToast('페이지를 불러오는 중 오류가 발생했습니다.', 'error'); + } +}); + +async function initializePage() { + // 이벤트 리스너 설정 + setupEventListeners(); + + // 사용자 목록 로드 + await loadUsers(); +} + +// ========== 사용자 정보 설정 ========== // +// navbar/sidebar는 app-init.js에서 공통 처리 +function setupUserInfo() { + const authData = getAuthData(); + if (authData && authData.user) { + currentUser = authData.user; + console.log('👤 사용자 정보 로드 완료:', currentUser.name, currentUser.role); + } +} + +function getAuthData() { + const token = localStorage.getItem('token'); + const user = localStorage.getItem('user'); + return { + token, + user: user ? JSON.parse(user) : null + }; +} + +// ========== 시간 업데이트 ========== // +function updateCurrentTime() { + const now = new Date(); + const hours = String(now.getHours()).padStart(2, '0'); + const minutes = String(now.getMinutes()).padStart(2, '0'); + const seconds = String(now.getSeconds()).padStart(2, '0'); + if (elements.timeValue) { + elements.timeValue.textContent = `${hours}시 ${minutes}분 ${seconds}초`; + } +} + +// ========== 이벤트 리스너 ========== // +function setupEventListeners() { + // 검색 + if (elements.userSearch) { + elements.userSearch.addEventListener('input', handleSearch); + } + + // 필터 버튼 + elements.filterButtons.forEach(btn => { + btn.addEventListener('click', handleFilter); + }); + + // 사용자 추가 버튼 + if (elements.addUserBtn) { + elements.addUserBtn.addEventListener('click', openAddUserModal); + } + + // 사용자 저장 버튼 + if (elements.saveUserBtn) { + elements.saveUserBtn.addEventListener('click', saveUser); + } + + // 삭제 확인 버튼 + if (elements.confirmDeleteBtn) { + elements.confirmDeleteBtn.addEventListener('click', confirmDeleteUser); + } + + // 로그아웃 버튼 + const logoutBtn = document.getElementById('logoutBtn'); + if (logoutBtn) { + logoutBtn.addEventListener('click', handleLogout); + } + + // 프로필 드롭다운 + const userProfile = document.getElementById('userProfile'); + const profileMenu = document.getElementById('profileMenu'); + if (userProfile && profileMenu) { + userProfile.addEventListener('click', (e) => { + e.stopPropagation(); + profileMenu.style.display = profileMenu.style.display === 'block' ? 'none' : 'block'; + }); + + document.addEventListener('click', () => { + profileMenu.style.display = 'none'; + }); + } +} + +// ========== 사용자 관리 ========== // +async function loadUsers() { + try { + console.log('👥 사용자 목록 로딩...'); + + // 실제 API에서 사용자 데이터 가져오기 + const response = await window.apiCall('/users'); + users = Array.isArray(response) ? response : (response.data || []); + + console.log(`✅ 사용자 ${users.length}명 로드 완료`); + + // 필터링된 사용자 목록 초기화 + filteredUsers = [...users]; + + // 테이블 렌더링 + renderUsersTable(); + + } catch (error) { + console.error('❌ 사용자 목록 로딩 오류:', error); + showToast('사용자 목록을 불러오는 중 오류가 발생했습니다.', 'error'); + users = []; + filteredUsers = []; + renderUsersTable(); + } +} + +function renderUsersTable() { + if (!elements.usersTableBody) return; + + if (filteredUsers.length === 0) { + elements.usersTableBody.innerHTML = ''; + if (elements.emptyState) { + elements.emptyState.style.display = 'block'; + } + return; + } + + if (elements.emptyState) { + elements.emptyState.style.display = 'none'; + } + + elements.usersTableBody.innerHTML = filteredUsers.map(user => ` + + + + + ${user.username} + + + ${getRoleIcon(user.role)} ${getRoleName(user.role)} + + + + + ${user.is_active ? '활성' : '비활성'} + + + ${formatDate(user.last_login) || '로그인 기록 없음'} + +
+ + ${user.role !== 'Admin' && user.role !== 'admin' ? ` + + ` : ''} + + + +
+ + + `).join(''); +} + +function getRoleIcon(role) { + const icons = { + admin: '👑', + leader: '👨‍💼', + user: '👤' + }; + return icons[role] || '👤'; +} + +function getRoleName(role) { + const names = { + admin: '관리자', + leader: '그룹장', + user: '작업자' + }; + return names[role] || '작업자'; +} + +function formatDate(dateString) { + if (!dateString) return null; + + const date = new Date(dateString); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: 'short', + day: 'numeric', + hour: '2-digit', + minute: '2-digit' + }); +} + +// ========== 검색 및 필터링 ========== // +function handleSearch(e) { + const searchTerm = e.target.value.toLowerCase(); + + filteredUsers = users.filter(user => { + return (user.name && user.name.toLowerCase().includes(searchTerm)) || + (user.username && user.username.toLowerCase().includes(searchTerm)) || + (user.email && user.email.toLowerCase().includes(searchTerm)); + }); + + renderUsersTable(); +} + +function handleFilter(e) { + const filterType = e.target.dataset.filter; + + // 활성 버튼 변경 + elements.filterButtons.forEach(btn => btn.classList.remove('active')); + e.target.classList.add('active'); + + // 필터링 + if (filterType === 'all') { + filteredUsers = [...users]; + } else { + filteredUsers = users.filter(user => user.role === filterType); + } + + renderUsersTable(); +} + +// ========== 모달 관리 ========== // +function openAddUserModal() { + currentEditingUser = null; + + if (elements.modalTitle) { + elements.modalTitle.textContent = '새 사용자 추가'; + } + + // 폼 초기화 + if (elements.userForm) { + elements.userForm.reset(); + } + + // 비밀번호 필드 표시 + if (elements.passwordGroup) { + elements.passwordGroup.style.display = 'block'; + } + + if (elements.userPasswordInput) { + elements.userPasswordInput.required = true; + } + + // 작업자 연결 섹션 숨기기 (새 사용자 추가 시) + const workerLinkGroup = document.getElementById('workerLinkGroup'); + if (workerLinkGroup) { + workerLinkGroup.style.display = 'none'; + } + + if (elements.userModal) { + elements.userModal.style.display = 'flex'; + } +} + +function editUser(userId) { + const user = users.find(u => u.user_id === userId); + if (!user) return; + + currentEditingUser = user; + + if (elements.modalTitle) { + elements.modalTitle.textContent = '사용자 정보 수정'; + } + + // 역할 이름을 HTML select option value로 변환 + const roleToValueMap = { + 'Admin': 'admin', + 'System Admin': 'admin', + 'User': 'user', + 'Guest': 'user' + }; + + // 폼에 데이터 채우기 + if (elements.userNameInput) elements.userNameInput.value = user.name || ''; + if (elements.userIdInput) elements.userIdInput.value = user.username || ''; + if (elements.userRoleSelect) elements.userRoleSelect.value = roleToValueMap[user.role] || 'user'; + if (elements.userEmailInput) elements.userEmailInput.value = user.email || ''; + if (elements.userPhoneInput) elements.userPhoneInput.value = user.phone || ''; + + // 비밀번호 필드 숨기기 (수정 시에는 선택사항) + if (elements.passwordGroup) { + elements.passwordGroup.style.display = 'none'; + } + + if (elements.userPasswordInput) { + elements.userPasswordInput.required = false; + } + + // 작업자 연결 섹션 표시 (수정 시에만) + const workerLinkGroup = document.getElementById('workerLinkGroup'); + if (workerLinkGroup) { + workerLinkGroup.style.display = 'block'; + updateLinkedWorkerDisplay(user); + } + + if (elements.userModal) { + elements.userModal.style.display = 'flex'; + } +} + +function closeUserModal() { + if (elements.userModal) { + elements.userModal.style.display = 'none'; + } + currentEditingUser = null; +} + +// 영구 삭제 (Hard Delete) +async function permanentDeleteUser(userId, username) { + if (!confirm(`⚠️ 경고: "${username}" 사용자를 영구 삭제하시겠습니까?\n\n이 작업은 되돌릴 수 없습니다!\n관련된 모든 데이터(로그인 기록, 권한 설정 등)도 함께 삭제됩니다.`)) { + return; + } + + // 이중 확인 + if (!confirm(`정말로 "${username}"을(를) 영구 삭제하시겠습니까?\n\n[확인]을 누르면 즉시 삭제됩니다.`)) { + return; + } + + try { + const response = await window.apiCall(`/users/${userId}/permanent`, 'DELETE'); + + if (response.success) { + showToast(`"${username}" 사용자가 영구 삭제되었습니다.`, 'success'); + await loadUsers(); + } else { + throw new Error(response.message || '사용자 삭제에 실패했습니다.'); + } + } catch (error) { + console.error('사용자 영구 삭제 오류:', error); + showToast(`사용자 삭제 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +function closeDeleteModal() { + if (elements.deleteModal) { + elements.deleteModal.style.display = 'none'; + } + currentEditingUser = null; +} + +// ========== 비밀번호 초기화 ========== // +async function resetPassword(userId, username) { + if (!confirm(`${username} 사용자의 비밀번호를 000000으로 초기화하시겠습니까?`)) { + return; + } + + try { + const response = await window.apiCall(`/users/${userId}/reset-password`, 'POST'); + + if (response.success) { + showToast(`${username}의 비밀번호가 000000으로 초기화되었습니다.`, 'success'); + } else { + showToast(response.message || '비밀번호 초기화에 실패했습니다.', 'error'); + } + } catch (error) { + console.error('비밀번호 초기화 오류:', error); + showToast('비밀번호 초기화 중 오류가 발생했습니다.', 'error'); + } +} +window.resetPassword = resetPassword; + +// ========== 사용자 CRUD ========== // +async function saveUser() { + try { + const formData = { + name: elements.userNameInput?.value, + username: elements.userIdInput?.value, + role: elements.userRoleSelect?.value, // HTML select value는 이미 'admin' 또는 'user' + email: elements.userEmailInput?.value + }; + + console.log('저장할 데이터:', formData); + + // 유효성 검사 + if (!formData.name || !formData.username || !formData.role) { + showToast('필수 항목을 모두 입력해주세요.', 'error'); + return; + } + + // 비밀번호 처리 + if (!currentEditingUser && elements.userPasswordInput?.value) { + formData.password = elements.userPasswordInput.value; + } else if (currentEditingUser && elements.userPasswordInput?.value) { + formData.password = elements.userPasswordInput.value; + } + + let response; + if (currentEditingUser) { + // 수정 + response = await window.apiCall(`/users/${currentEditingUser.user_id}`, 'PUT', formData); + } else { + // 생성 + response = await window.apiCall('/users', 'POST', formData); + } + + if (response.success || response.user_id) { + const action = currentEditingUser ? '수정' : '생성'; + showToast(`사용자가 성공적으로 ${action}되었습니다.`, 'success'); + + closeUserModal(); + await loadUsers(); + } else { + throw new Error(response.message || '사용자 저장에 실패했습니다.'); + } + + } catch (error) { + console.error('사용자 저장 오류:', error); + showToast(`사용자 저장 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +async function confirmDeleteUser() { + if (!currentEditingUser) return; + + try { + const response = await window.apiCall(`/users/${currentEditingUser.user_id}`, 'DELETE'); + + if (response.success) { + showToast('사용자가 성공적으로 삭제되었습니다.', 'success'); + closeDeleteModal(); + await loadUsers(); + } else { + throw new Error(response.message || '사용자 삭제에 실패했습니다.'); + } + + } catch (error) { + console.error('사용자 삭제 오류:', error); + showToast(`사용자 삭제 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +async function toggleUserStatus(userId) { + try { + const user = users.find(u => u.user_id === userId); + if (!user) return; + + const newStatus = !user.is_active; + const response = await window.apiCall(`/users/${userId}/status`, 'PUT', { is_active: newStatus }); + + if (response.success) { + const action = newStatus ? '활성화' : '비활성화'; + showToast(`사용자가 성공적으로 ${action}되었습니다.`, 'success'); + await loadUsers(); + } else { + throw new Error(response.message || '사용자 상태 변경에 실패했습니다.'); + } + + } catch (error) { + console.error('사용자 상태 변경 오류:', error); + showToast(`사용자 상태 변경 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +// ========== 로그아웃 ========== // +function handleLogout() { + if (confirm('로그아웃하시겠습니까?')) { + localStorage.clear(); + window.location.href = '/index.html'; + } +} + +// ========== 토스트 알림 ========== // +function showToast(message, type = 'info', duration = 3000) { + if (!elements.toastContainer) return; + + const toast = document.createElement('div'); + toast.className = `toast ${type}`; + + const iconMap = { + success: '✅', + error: '❌', + warning: '⚠️', + info: 'ℹ️' + }; + + toast.innerHTML = ` +
${iconMap[type] || 'ℹ️'}
+
${message}
+ + `; + + elements.toastContainer.appendChild(toast); + + // 자동 제거 + setTimeout(() => { + if (toast.parentElement) { + toast.remove(); + } + }, duration); +} + +// ========== 전역 함수 (HTML에서 호출) ========== // +window.editUser = editUser; +window.toggleUserStatus = toggleUserStatus; +window.closeUserModal = closeUserModal; +window.closeDeleteModal = closeDeleteModal; +window.permanentDeleteUser = permanentDeleteUser; + +// ========== 페이지 권한 관리 ========== // +let allPages = []; +let userPageAccess = []; + +// 모든 페이지 목록 로드 +async function loadAllPages() { + try { + const response = await apiCall('/pages'); + allPages = response.data || response || []; + console.log('📄 페이지 목록 로드:', allPages.length, '개'); + } catch (error) { + console.error('❌ 페이지 목록 로드 오류:', error); + allPages = []; + } +} + +// 사용자의 페이지 권한 로드 +async function loadUserPageAccess(userId) { + try { + const response = await apiCall(`/users/${userId}/page-access`); + userPageAccess = response.data?.pageAccess || []; + console.log(`👤 사용자 ${userId} 페이지 권한 로드:`, userPageAccess.length, '개'); + } catch (error) { + console.error('❌ 사용자 페이지 권한 로드 오류:', error); + userPageAccess = []; + } +} + + +// 페이지 권한 저장 +async function savePageAccess(userId, containerId = null) { + try { + // 특정 컨테이너가 지정되면 그 안에서만 체크박스 선택 + const container = containerId ? document.getElementById(containerId) : document; + const checkboxes = container.querySelectorAll('.page-access-checkbox:not([disabled])'); + + // 중복 page_id 제거 (Map 사용) + const pageAccessMap = new Map(); + checkboxes.forEach(checkbox => { + const pageId = parseInt(checkbox.dataset.pageId); + pageAccessMap.set(pageId, { + page_id: pageId, + can_access: checkbox.checked ? 1 : 0 + }); + }); + + const pageAccessData = Array.from(pageAccessMap.values()); + + console.log('📤 페이지 권한 저장:', userId, pageAccessData); + + await apiCall(`/users/${userId}/page-access`, 'PUT', { + pageAccess: pageAccessData + }); + + console.log('✅ 페이지 권한 저장 완료'); + } catch (error) { + console.error('❌ 페이지 권한 저장 오류:', error); + throw error; + } +} + + + + +// ========== 페이지 권한 관리 모달 ========== // +let currentPageAccessUser = null; + +// 페이지 권한 관리 모달 열기 +async function managePageAccess(userId) { + try { + // 페이지 목록이 없으면 로드 + if (allPages.length === 0) { + await loadAllPages(); + } + + // 사용자 정보 가져오기 + const user = users.find(u => u.user_id === userId); + if (!user) { + showToast('사용자를 찾을 수 없습니다.', 'error'); + return; + } + + currentPageAccessUser = user; + + // 사용자의 페이지 권한 로드 + await loadUserPageAccess(userId); + + // 모달 정보 업데이트 + const userName = user.name || user.username; + document.getElementById('pageAccessModalTitle').textContent = userName + ' - 페이지 권한 관리'; + document.getElementById('pageAccessUserName').textContent = userName; + document.getElementById('pageAccessUserRole').textContent = getRoleName(user.role); + document.getElementById('pageAccessUserAvatar').textContent = userName.charAt(0); + + // 페이지 권한 체크박스 렌더링 + renderPageAccessModalList(); + + // 모달 표시 + document.getElementById('pageAccessModal').style.display = 'flex'; + } catch (error) { + console.error('❌ 페이지 권한 관리 모달 오류:', error); + showToast('페이지 권한 관리를 열 수 없습니다.', 'error'); + } +} + +// 페이지 권한 모달 닫기 +function closePageAccessModal() { + document.getElementById('pageAccessModal').style.display = 'none'; + currentPageAccessUser = null; +} + +// 페이지 권한 체크박스 렌더링 (모달용) - 폴더 구조 형태 +function renderPageAccessModalList() { + const pageAccessList = document.getElementById('pageAccessModalList'); + if (!pageAccessList) return; + + // 폴더 구조 정의 (page_key 패턴 기준) + const folderStructure = { + 'dashboard': { name: '대시보드', icon: '📊', pages: [] }, + 'work': { name: '작업 관리', icon: '📋', pages: [] }, + 'safety': { name: '안전 관리', icon: '🛡️', pages: [] }, + 'attendance': { name: '근태 관리', icon: '📅', pages: [] }, + 'admin': { name: '시스템 관리', icon: '⚙️', pages: [] }, + 'profile': { name: '내 정보', icon: '👤', pages: [] } + }; + + // 페이지를 폴더별로 분류 + allPages.forEach(page => { + const pageKey = page.page_key || ''; + + if (pageKey === 'dashboard') { + folderStructure['dashboard'].pages.push(page); + } else if (pageKey.startsWith('work.')) { + folderStructure['work'].pages.push(page); + } else if (pageKey.startsWith('safety.')) { + folderStructure['safety'].pages.push(page); + } else if (pageKey.startsWith('attendance.')) { + folderStructure['attendance'].pages.push(page); + } else if (pageKey.startsWith('admin.')) { + folderStructure['admin'].pages.push(page); + } else if (pageKey.startsWith('profile.')) { + folderStructure['profile'].pages.push(page); + } + }); + + // HTML 생성 - 폴더 트리 형태 + let html = '
'; + + Object.keys(folderStructure).forEach(folderKey => { + const folder = folderStructure[folderKey]; + if (folder.pages.length === 0) return; + + const folderId = 'folder-' + folderKey; + + html += '
'; + html += '
'; + html += '' + folder.icon + ''; + html += '' + folder.name + ''; + html += '(' + folder.pages.length + ')'; + html += ''; + html += '
'; + + html += '
'; + + folder.pages.forEach(page => { + // 프로필과 대시보드는 모든 사용자가 접근 가능 + const isAlwaysAccessible = page.page_key === 'dashboard' || page.page_key.startsWith('profile.'); + const isChecked = userPageAccess.find(p => p.page_id === page.id && p.can_access === 1) || isAlwaysAccessible; + + // 파일명만 추출 (page_key에서) + const fileName = page.page_key.split('.').pop() || page.page_key; + + html += '
'; + html += ''; + html += '
'; + }); + + html += '
'; // folder-content + html += '
'; // folder-group + }); + + html += '
'; // folder-tree + + pageAccessList.innerHTML = html; +} + +// 폴더 접기/펼치기 +function toggleFolder(folderId) { + const content = document.getElementById(folderId); + const toggle = document.getElementById('toggle-' + folderId); + + if (content && toggle) { + const isExpanded = content.style.display !== 'none'; + content.style.display = isExpanded ? 'none' : 'block'; + toggle.textContent = isExpanded ? '▶' : '▼'; + } +} +window.toggleFolder = toggleFolder; + +// 페이지 권한 저장 (모달용) +async function savePageAccessFromModal() { + if (!currentPageAccessUser) { + showToast('사용자 정보가 없습니다.', 'error'); + return; + } + + try { + // 모달 컨테이너 지정 + await savePageAccess(currentPageAccessUser.user_id, 'pageAccessModalList'); + showToast('페이지 권한이 저장되었습니다.', 'success'); + + // 캐시 삭제 (사용자가 다시 로그인하거나 페이지 새로고침 필요) + localStorage.removeItem('userPageAccess'); + + closePageAccessModal(); + } catch (error) { + console.error('❌ 페이지 권한 저장 오류:', error); + showToast('페이지 권한 저장에 실패했습니다.', 'error'); + } +} + +// 전역 함수로 등록 +window.managePageAccess = managePageAccess; +window.closePageAccessModal = closePageAccessModal; + +// 저장 버튼 이벤트 리스너 +document.addEventListener('DOMContentLoaded', () => { + const saveBtn = document.getElementById('savePageAccessBtn'); + if (saveBtn) { + saveBtn.addEventListener('click', savePageAccessFromModal); + } +}); + +// ========== 작업자 연결 기능 ========== // +let departments = []; +let selectedWorkerId = null; + +// 연결된 작업자 정보 표시 업데이트 +function updateLinkedWorkerDisplay(user) { + const linkedWorkerInfo = document.getElementById('linkedWorkerInfo'); + if (!linkedWorkerInfo) return; + + if (user.worker_id && user.worker_name) { + linkedWorkerInfo.innerHTML = ` + + 👤 ${user.worker_name} + ${user.department_name ? `(${user.department_name})` : ''} + + `; + } else { + linkedWorkerInfo.innerHTML = '연결된 작업자 없음'; + } +} + +// 작업자 선택 모달 열기 +async function openWorkerSelectModal() { + if (!currentEditingUser) { + showToast('사용자 정보가 없습니다.', 'error'); + return; + } + + selectedWorkerId = currentEditingUser.worker_id || null; + + // 부서 목록 로드 + await loadDepartmentsForSelect(); + + // 모달 표시 + document.getElementById('workerSelectModal').style.display = 'flex'; +} +window.openWorkerSelectModal = openWorkerSelectModal; + +// 작업자 선택 모달 닫기 +function closeWorkerSelectModal() { + document.getElementById('workerSelectModal').style.display = 'none'; + selectedWorkerId = null; +} +window.closeWorkerSelectModal = closeWorkerSelectModal; + +// 부서 목록 로드 +async function loadDepartmentsForSelect() { + try { + const response = await window.apiCall('/departments'); + departments = response.data || response || []; + + renderDepartmentList(); + } catch (error) { + console.error('부서 목록 로드 실패:', error); + showToast('부서 목록을 불러오는데 실패했습니다.', 'error'); + } +} + +// 부서 목록 렌더링 +function renderDepartmentList() { + const container = document.getElementById('departmentList'); + if (!container) return; + + if (departments.length === 0) { + container.innerHTML = '
등록된 부서가 없습니다
'; + return; + } + + container.innerHTML = departments.map(dept => ` +
+ 📁 + ${dept.department_name} + ${dept.worker_count || 0}명 +
+ `).join(''); +} + +// 부서 선택 +async function selectDepartment(departmentId) { + // 활성 상태 업데이트 + document.querySelectorAll('.department-item').forEach(item => { + item.classList.remove('active'); + }); + document.querySelector(`.department-item[data-dept-id="${departmentId}"]`)?.classList.add('active'); + + // 해당 부서의 작업자 목록 로드 + await loadWorkersForSelect(departmentId); +} +window.selectDepartment = selectDepartment; + +// 부서별 작업자 목록 로드 +async function loadWorkersForSelect(departmentId) { + try { + const response = await window.apiCall(`/departments/${departmentId}/workers`); + const workers = response.data || response || []; + + renderWorkerListForSelect(workers); + } catch (error) { + console.error('작업자 목록 로드 실패:', error); + showToast('작업자 목록을 불러오는데 실패했습니다.', 'error'); + } +} + +// 작업자 목록 렌더링 (선택용) +function renderWorkerListForSelect(workers) { + const container = document.getElementById('workerListForSelect'); + if (!container) return; + + if (workers.length === 0) { + container.innerHTML = '
이 부서에 작업자가 없습니다
'; + return; + } + + // 이미 다른 계정에 연결된 작업자 확인을 위해 users 배열 사용 + const linkedWorkerIds = users + .filter(u => u.worker_id && u.user_id !== currentEditingUser?.user_id) + .map(u => u.worker_id); + + container.innerHTML = workers.map(worker => { + const isSelected = selectedWorkerId === worker.worker_id; + const isLinkedToOther = linkedWorkerIds.includes(worker.worker_id); + const linkedUser = isLinkedToOther ? users.find(u => u.worker_id === worker.worker_id) : null; + + return ` +
+
${worker.worker_name.charAt(0)}
+
+
${worker.worker_name}
+
${getJobTypeName(worker.job_type)}
+
+ ${isLinkedToOther ? `${linkedUser?.username} 연결됨` : ''} +
${isSelected ? '✓' : ''}
+
+ `; + }).join(''); +} + +// 직책 한글 변환 +function getJobTypeName(jobType) { + const names = { + leader: '그룹장', + worker: '작업자', + admin: '관리자' + }; + return names[jobType] || jobType || '-'; +} + +// 작업자 선택 +async function selectWorker(workerId, workerName) { + selectedWorkerId = workerId; + + // UI 업데이트 + document.querySelectorAll('.worker-select-item').forEach(item => { + item.classList.remove('selected'); + item.querySelector('.select-indicator').textContent = ''; + }); + + const selectedItem = document.querySelector(`.worker-select-item[onclick*="${workerId}"]`); + if (selectedItem) { + selectedItem.classList.add('selected'); + selectedItem.querySelector('.select-indicator').textContent = '✓'; + } + + // 서버에 저장 + try { + const response = await window.apiCall(`/users/${currentEditingUser.user_id}`, 'PUT', { + worker_id: workerId + }); + + if (response.success) { + // currentEditingUser 업데이트 + currentEditingUser.worker_id = workerId; + currentEditingUser.worker_name = workerName; + + // 부서 정보도 업데이트 + const dept = departments.find(d => + document.querySelector(`.department-item.active`)?.dataset.deptId == d.department_id + ); + if (dept) { + currentEditingUser.department_name = dept.department_name; + } + + // users 배열 업데이트 + const userIndex = users.findIndex(u => u.user_id === currentEditingUser.user_id); + if (userIndex !== -1) { + users[userIndex] = { ...users[userIndex], ...currentEditingUser }; + } + + // 표시 업데이트 + updateLinkedWorkerDisplay(currentEditingUser); + + showToast(`${workerName} 작업자가 연결되었습니다.`, 'success'); + closeWorkerSelectModal(); + } else { + throw new Error(response.message || '작업자 연결에 실패했습니다.'); + } + } catch (error) { + console.error('작업자 연결 오류:', error); + showToast(`작업자 연결 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} +window.selectWorker = selectWorker; + +// 작업자 연결 해제 +async function unlinkWorker() { + if (!currentEditingUser) { + showToast('사용자 정보가 없습니다.', 'error'); + return; + } + + if (!currentEditingUser.worker_id) { + showToast('연결된 작업자가 없습니다.', 'warning'); + closeWorkerSelectModal(); + return; + } + + if (!confirm('작업자 연결을 해제하시겠습니까?')) { + return; + } + + try { + const response = await window.apiCall(`/users/${currentEditingUser.user_id}`, 'PUT', { + worker_id: null + }); + + if (response.success) { + // currentEditingUser 업데이트 + currentEditingUser.worker_id = null; + currentEditingUser.worker_name = null; + currentEditingUser.department_name = null; + + // users 배열 업데이트 + const userIndex = users.findIndex(u => u.user_id === currentEditingUser.user_id); + if (userIndex !== -1) { + users[userIndex] = { ...users[userIndex], worker_id: null, worker_name: null, department_name: null }; + } + + // 표시 업데이트 + updateLinkedWorkerDisplay(currentEditingUser); + + showToast('작업자 연결이 해제되었습니다.', 'success'); + closeWorkerSelectModal(); + } else { + throw new Error(response.message || '연결 해제에 실패했습니다.'); + } + } catch (error) { + console.error('작업자 연결 해제 오류:', error); + showToast(`연결 해제 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} +window.unlinkWorker = unlinkWorker; + +// ========== 알림 수신자 관리 ========== // +let notificationRecipients = {}; +let allUsersForRecipient = []; +let currentNotificationType = null; + +const NOTIFICATION_TYPE_CONFIG = { + repair: { name: '설비 수리', icon: '🔧', description: '설비 수리 신청 시 알림을 받을 사용자' }, + safety: { name: '안전 신고', icon: '⚠️', description: '안전 관련 신고 시 알림을 받을 사용자' }, + nonconformity: { name: '부적합 신고', icon: '🚫', description: '부적합 사항 신고 시 알림을 받을 사용자' }, + equipment: { name: '설비 관련', icon: '🔩', description: '설비 관련 알림을 받을 사용자' }, + maintenance: { name: '정기점검', icon: '🛠️', description: '정기점검 알림을 받을 사용자' }, + system: { name: '시스템', icon: '📢', description: '시스템 알림을 받을 사용자' } +}; + +// 알림 수신자 목록 로드 +async function loadNotificationRecipients() { + try { + const response = await window.apiCall('/notification-recipients'); + if (response.success) { + notificationRecipients = response.data || {}; + renderNotificationTypeCards(); + } + } catch (error) { + console.error('알림 수신자 로드 오류:', error); + } +} + +// 알림 유형 카드 렌더링 +function renderNotificationTypeCards() { + const container = document.getElementById('notificationTypeCards'); + if (!container) return; + + let html = ''; + + Object.keys(NOTIFICATION_TYPE_CONFIG).forEach(type => { + const config = NOTIFICATION_TYPE_CONFIG[type]; + const recipients = notificationRecipients[type]?.recipients || []; + + html += ` +
+
+
+ ${config.icon} + ${config.name} +
+ +
+
+ ${recipients.length > 0 + ? recipients.map(r => ` + + 👤 + ${r.user_name || r.username} + + `).join('') + : '지정된 수신자 없음' + } +
+
+ `; + }); + + container.innerHTML = html; +} + +// 수신자 편집 모달 열기 +async function openRecipientModal(notificationType) { + currentNotificationType = notificationType; + const config = NOTIFICATION_TYPE_CONFIG[notificationType]; + + // 모달 정보 업데이트 + document.getElementById('recipientModalTitle').textContent = config.name + ' 알림 수신자'; + document.getElementById('recipientModalDesc').textContent = config.description; + + // 사용자 목록 로드 (users가 이미 로드되어 있으면 사용) + if (users.length === 0) { + await loadUsers(); + } + allUsersForRecipient = users.filter(u => u.is_active); + + // 현재 수신자 목록 + const currentRecipients = notificationRecipients[notificationType]?.recipients || []; + const currentRecipientIds = currentRecipients.map(r => r.user_id); + + // 사용자 목록 렌더링 + renderRecipientUserList(currentRecipientIds); + + // 검색 이벤트 + const searchInput = document.getElementById('recipientSearchInput'); + searchInput.value = ''; + searchInput.oninput = (e) => { + renderRecipientUserList(currentRecipientIds, e.target.value); + }; + + // 모달 표시 + document.getElementById('notificationRecipientModal').style.display = 'flex'; +} +window.openRecipientModal = openRecipientModal; + +// 수신자 사용자 목록 렌더링 +function renderRecipientUserList(selectedIds, searchTerm = '') { + const container = document.getElementById('recipientUserList'); + if (!container) return; + + let filteredUsers = allUsersForRecipient; + + if (searchTerm) { + const term = searchTerm.toLowerCase(); + filteredUsers = filteredUsers.filter(u => + (u.name && u.name.toLowerCase().includes(term)) || + (u.username && u.username.toLowerCase().includes(term)) + ); + } + + if (filteredUsers.length === 0) { + container.innerHTML = '
사용자가 없습니다
'; + return; + } + + container.innerHTML = filteredUsers.map(user => { + const isSelected = selectedIds.includes(user.user_id); + return ` +
+ +
${(user.name || user.username).charAt(0)}
+ +
+ `; + }).join(''); +} + +// 수신자 토글 +function toggleRecipientUser(userId, element) { + const checkbox = element.querySelector('input[type="checkbox"]'); + checkbox.checked = !checkbox.checked; + element.classList.toggle('selected', checkbox.checked); +} +window.toggleRecipientUser = toggleRecipientUser; + +// 수신자 모달 닫기 +function closeRecipientModal() { + document.getElementById('notificationRecipientModal').style.display = 'none'; + currentNotificationType = null; +} +window.closeRecipientModal = closeRecipientModal; + +// 알림 수신자 저장 +async function saveNotificationRecipients() { + if (!currentNotificationType) { + showToast('알림 유형이 선택되지 않았습니다.', 'error'); + return; + } + + try { + const checkboxes = document.querySelectorAll('#recipientUserList input[type="checkbox"]:checked'); + const userIds = Array.from(checkboxes).map(cb => parseInt(cb.dataset.userId)); + + const response = await window.apiCall(`/notification-recipients/${currentNotificationType}`, 'PUT', { + user_ids: userIds + }); + + if (response.success) { + showToast('알림 수신자가 저장되었습니다.', 'success'); + closeRecipientModal(); + await loadNotificationRecipients(); + } else { + throw new Error(response.message || '저장에 실패했습니다.'); + } + } catch (error) { + console.error('알림 수신자 저장 오류:', error); + showToast(`저장 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} +window.saveNotificationRecipients = saveNotificationRecipients; + +// 초기화 시 알림 수신자 로드 +const originalInitializePage = initializePage; +initializePage = async function() { + await originalInitializePage(); + await loadNotificationRecipients(); +}; diff --git a/deploy/tkfb-package/web-ui/js/admin.js b/deploy/tkfb-package/web-ui/js/admin.js new file mode 100644 index 0000000..b48105d --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/admin.js @@ -0,0 +1,34 @@ +// ✅ /js/admin.js (수정됨 - 중복 로딩 제거) +async function initDashboard() { + // 로그인 토큰 확인 + const token = localStorage.getItem('token'); + if (!token) { + location.href = '/index.html'; + return; + } + + // ✅ navbar, sidebar는 각각의 모듈에서 처리하도록 변경 + // load-navbar.js, load-sidebar.js가 자동으로 처리함 + + // ✅ 콘텐츠만 직접 로딩 (admin-sections.html이 자동 로딩됨) + console.log('관리자 대시보드 초기화 완료'); +} + +// ✅ 보조 함수 - 필요시 수동 컴포넌트 로딩용 +async function loadComponent(id, url) { + try { + const res = await fetch(url); + if (!res.ok) throw new Error(`HTTP ${res.status}`); + const html = await res.text(); + const element = document.getElementById(id); + if (element) { + element.innerHTML = html; + } else { + console.warn(`요소를 찾을 수 없습니다: ${id}`); + } + } catch (err) { + console.error(`컴포넌트 로딩 실패 (${url}):`, err); + } +} + +document.addEventListener('DOMContentLoaded', initDashboard); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/api-base.js b/deploy/tkfb-package/web-ui/js/api-base.js new file mode 100644 index 0000000..5da185a --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/api-base.js @@ -0,0 +1,97 @@ +// /js/api-base.js +// API 기본 설정 및 보안 유틸리티 (비모듈 - 빠른 로딩용) + +(function() { + 'use strict'; + + // ==================== 보안 유틸리티 (XSS 방지) ==================== + + /** + * HTML 특수문자 이스케이프 (XSS 방지) + * innerHTML에 사용자 입력/API 데이터를 삽입할 때 반드시 사용 + * + * @param {string} str - 이스케이프할 문자열 + * @returns {string} 이스케이프된 문자열 + */ + window.escapeHtml = function(str) { + if (str === null || str === undefined) return ''; + if (typeof str !== 'string') str = String(str); + + const htmlEntities = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '/': '/', + '`': '`', + '=': '=' + }; + + return str.replace(/[&<>"'`=\/]/g, function(char) { + return htmlEntities[char]; + }); + }; + + /** + * URL 파라미터 이스케이프 + */ + window.escapeUrl = function(str) { + if (str === null || str === undefined) return ''; + return encodeURIComponent(String(str)); + }; + + // ==================== API 설정 ==================== + + const API_PORT = 20005; + const API_PATH = '/api'; + + function getApiBaseUrl() { + const hostname = window.location.hostname; + const protocol = window.location.protocol; + return `${protocol}//${hostname}:${API_PORT}${API_PATH}`; + } + + // 전역 API 설정 + const apiUrl = getApiBaseUrl(); + window.API_BASE_URL = apiUrl; + window.API = apiUrl; // 이전 호환성 + + // 인증 헤더 생성 + window.getAuthHeaders = function() { + const token = localStorage.getItem('token'); + return { + 'Content-Type': 'application/json', + 'Authorization': token ? `Bearer ${token}` : '' + }; + }; + + // API 호출 헬퍼 (기존 시그니처 유지: endpoint, method, data) + // JSON 파싱하여 반환 + window.apiCall = async function(endpoint, method = 'GET', data = null) { + const url = `${window.API_BASE_URL}${endpoint}`; + const config = { + method: method, + headers: window.getAuthHeaders() + }; + + if (data && (method === 'POST' || method === 'PUT' || method === 'PATCH' || method === 'DELETE')) { + config.body = JSON.stringify(data); + } + + const response = await fetch(url, config); + + // 401 Unauthorized 처리 + if (response.status === 401) { + localStorage.removeItem('token'); + localStorage.removeItem('user'); + window.location.href = '/index.html'; + throw new Error('인증이 만료되었습니다.'); + } + + // JSON 파싱하여 반환 + return response.json(); + }; + + console.log('✅ API 설정 완료:', window.API_BASE_URL); +})(); diff --git a/deploy/tkfb-package/web-ui/js/api-config.js b/deploy/tkfb-package/web-ui/js/api-config.js new file mode 100644 index 0000000..a80acf1 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/api-config.js @@ -0,0 +1,249 @@ +// api-config.js - nginx 프록시 대응 API 설정 +import { config } from './config.js'; +import { redirectToLogin } from './navigation.js'; + +function getApiBaseUrl() { + const hostname = window.location.hostname; + const protocol = window.location.protocol; + const port = window.location.port; + + console.log('🌐 감지된 환경:', { hostname, protocol, port }); + + // 🔗 nginx 프록시를 통한 접근 (권장) + // nginx가 /api/ 요청을 백엔드로 프록시하므로 포트 없이 접근 + if (hostname.startsWith('192.168.') || hostname.startsWith('10.') || hostname.startsWith('172.') || + hostname === 'localhost' || hostname === '127.0.0.1' || + hostname.includes('.local') || hostname.includes('hyungi')) { + + // 현재 웹서버의 도메인/IP를 그대로 사용하되 API 포트(config.api.port)로 직접 연결 + const baseUrl = `${protocol}//${hostname}:${config.api.port}${config.api.path}`; + + console.log('✅ nginx 프록시 사용:', baseUrl); + return baseUrl; + } + + // 🚨 백업: 직접 접근 (nginx 프록시 실패시에만) + console.warn('⚠️ 직접 API 접근 (백업 모드)'); + return `${protocol}//${hostname}:${config.api.port}${config.api.path}`; +} + +// API 설정 +const API_URL = getApiBaseUrl(); + +// 전역 변수로 설정 +window.API = API_URL; +window.API_BASE_URL = API_URL; + +function ensureAuthenticated() { + const token = localStorage.getItem('token'); + if (!token || token === 'undefined' || token === 'null') { + console.log('🚨 인증되지 않은 사용자. 로그인 페이지로 이동합니다.'); + clearAuthData(); // 만약을 위해 한번 더 정리 + redirectToLogin(); + return false; // 이후 코드 실행 방지 + } + + // 토큰 만료 확인 + if (isTokenExpired(token)) { + console.log('🚨 토큰이 만료되었습니다. 로그인 페이지로 이동합니다.'); + clearAuthData(); + alert('세션이 만료되었습니다. 다시 로그인해주세요.'); + redirectToLogin(); + return false; + } + + return token; +} + +// 토큰 만료 확인 함수 +function isTokenExpired(token) { + try { + const payload = JSON.parse(atob(token.split('.')[1])); + const currentTime = Math.floor(Date.now() / 1000); + return payload.exp < currentTime; + } catch (error) { + console.error('토큰 파싱 오류:', error); + return true; // 파싱 실패 시 만료된 것으로 간주 + } +} + +// 인증 데이터 정리 함수 +function clearAuthData() { + localStorage.removeItem('token'); + localStorage.removeItem('user'); + localStorage.removeItem('userInfo'); + localStorage.removeItem('currentUser'); +} + +function getAuthHeaders() { + const token = localStorage.getItem('token'); + return { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + }; +} + +// 🔧 개선된 API 호출 함수 (에러 처리 강화) +async function apiCall(url, method = 'GET', data = null) { + // 상대 경로를 절대 경로로 변환 + const fullUrl = url.startsWith('http') ? url : `${API}${url}`; + + const options = { + method: method, + headers: { + 'Content-Type': 'application/json', + ...getAuthHeaders() + } + }; + + // POST/PUT 요청시 데이터 추가 + if (data && (method === 'POST' || method === 'PUT' || method === 'PATCH')) { + options.body = JSON.stringify(data); + } + + try { + console.log(`📡 API 호출: ${fullUrl} (${method})`); + const response = await fetch(fullUrl, options); + + // 인증 만료 처리 + if (response.status === 401) { + console.error('🚨 인증 실패: 토큰이 만료되었거나 유효하지 않습니다.'); + clearAuthData(); + alert('세션이 만료되었습니다. 다시 로그인해주세요.'); + redirectToLogin(); + throw new Error('인증에 실패했습니다.'); + } + + // 응답 실패 처리 + if (!response.ok) { + let errorMessage = `HTTP ${response.status}`; + try { + const contentType = response.headers.get('content-type'); + + if (contentType && contentType.includes('application/json')) { + const errorData = await response.json(); + console.error('📋 서버 에러 상세:', errorData); + + // 에러 메시지 추출 (여러 형식 지원) + if (typeof errorData === 'string') { + errorMessage = errorData; + } else if (errorData.error) { + errorMessage = typeof errorData.error === 'string' + ? errorData.error + : JSON.stringify(errorData.error); + } else if (errorData.message) { + errorMessage = errorData.message; + } else if (errorData.details) { + errorMessage = errorData.details; + } else { + errorMessage = `HTTP ${response.status}: ${JSON.stringify(errorData)}`; + } + } else { + const errorText = await response.text(); + console.error('📋 서버 에러 텍스트:', errorText); + errorMessage = errorText || errorMessage; + } + } catch (e) { + console.error('📋 에러 파싱 중 예외 발생:', e.message); + // 파싱 실패해도 HTTP 상태 코드는 전달 + } + throw new Error(errorMessage); + } + + const result = await response.json(); + console.log(`✅ API 성공: ${fullUrl}`); + return result; + + } catch (error) { + console.error(`❌ API 오류 (${fullUrl}):`, error); + console.error('❌ 에러 전체 내용:', JSON.stringify(error, null, 2)); + + // 네트워크 오류 vs 서버 오류 구분 + if (error.name === 'TypeError' && error.message.includes('fetch')) { + throw new Error('네트워크 연결 오류입니다. 인터넷 연결을 확인해주세요.'); + } + + throw error; + } +} + +// 디버깅 정보 +console.log('🔗 API Base URL:', API); +console.log('🌐 Current Location:', { + hostname: window.location.hostname, + protocol: window.location.protocol, + port: window.location.port, + href: window.location.href +}); + +// 🧪 API 연결 테스트 함수 (개발용) +async function testApiConnection() { + try { + console.log('🧪 API 연결 테스트 시작...'); + const response = await fetch(`${API}/health`, { + method: 'GET', + headers: { 'Content-Type': 'application/json' } + }); + + if (response.ok) { + console.log('✅ API 연결 성공!'); + return true; + } else { + console.log('❌ API 연결 실패:', response.status); + return false; + } + } catch (error) { + console.log('❌ API 연결 오류:', error.message); + return false; + } +} + +// API 헬퍼 함수들 +async function apiGet(url) { + return apiCall(url, 'GET'); +} + +async function apiPost(url, data) { + return apiCall(url, 'POST', data); +} + +async function apiPut(url, data) { + return apiCall(url, 'PUT', data); +} + +async function apiDelete(url) { + return apiCall(url, 'DELETE'); +} + +// 전역 함수로 설정 +window.ensureAuthenticated = ensureAuthenticated; +window.getAuthHeaders = getAuthHeaders; +window.apiCall = apiCall; +window.apiGet = apiGet; +window.apiPost = apiPost; +window.apiPut = apiPut; +window.apiDelete = apiDelete; +window.testApiConnection = testApiConnection; +window.isTokenExpired = isTokenExpired; +window.clearAuthData = clearAuthData; + +// 개발 모드에서 자동 테스트 +if (window.location.hostname === 'localhost' || window.location.hostname.startsWith('192.168.')) { + setTimeout(() => { + testApiConnection(); + }, 1000); +} + +// 주기적으로 토큰 만료 확인 (5분마다) +setInterval(() => { + const token = localStorage.getItem('token'); + if (token && isTokenExpired(token)) { + console.log('🚨 주기적 확인: 토큰이 만료되었습니다.'); + clearAuthData(); + alert('세션이 만료되었습니다. 다시 로그인해주세요.'); + redirectToLogin(); + } +}, config.app.tokenRefreshInterval); // 5분마다 확인 + +// ES6 모듈 export +export { API_URL as API_BASE_URL, API_URL as API, apiCall, getAuthHeaders }; \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/api-helper.js b/deploy/tkfb-package/web-ui/js/api-helper.js new file mode 100644 index 0000000..d322e3f --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/api-helper.js @@ -0,0 +1,136 @@ +// /public/js/api-helper.js +// ES6 모듈 의존성 제거 - 브라우저 호환성 개선 + +// API 설정 (window 객체에서 가져오기) +const API_BASE_URL = window.API_BASE_URL || 'http://localhost:20005/api'; + +// 인증 관련 함수들 (직접 구현) +function getToken() { + const token = localStorage.getItem('token'); + return token && token !== 'undefined' && token !== 'null' ? token : null; +} + +function clearAuthData() { + localStorage.removeItem('token'); + localStorage.removeItem('user'); +} + +/** + * 로그인 API를 호출합니다. (인증이 필요 없는 public 요청) + * @param {string} username - 사용자 아이디 + * @param {string} password - 사용자 비밀번호 + * @returns {Promise} - API 응답 결과 + */ +async function login(username, password) { + const response = await fetch(`${API_BASE_URL}/auth/login`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ username, password }), + }); + + const result = await response.json(); + if (!response.ok) { + // API 에러 응답을 그대로 에러 객체로 던져서 호출부에서 처리하도록 함 + throw new Error(result.error || '로그인에 실패했습니다.'); + } + return result; +} + + +/** + * 인증이 필요한 API 요청을 위한 fetch 래퍼 함수 + * @param {string} endpoint - /로 시작하는 API 엔드포인트 + * @param {object} options - fetch 함수에 전달할 옵션 + * @returns {Promise} - fetch 응답 객체 + */ +async function authFetch(endpoint, options = {}) { + const token = getToken(); + + if (!token) { + console.error('토큰이 없습니다. 로그인이 필요합니다.'); + clearAuthData(); // 인증 정보 정리 + window.location.href = '/index.html'; // 로그인 페이지로 리디렉션 + // 에러를 던져서 후속 실행을 중단 + throw new Error('인증 토큰이 없습니다.'); + } + + const defaultHeaders = { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }; + + const response = await fetch(`${API_BASE_URL}${endpoint}`, { + ...options, + headers: { + ...defaultHeaders, + ...options.headers + } + }); + + // 401 Unauthorized 에러 발생 시, 토큰이 유효하지 않다는 의미 + if (response.status === 401) { + console.error('인증 실패. 토큰이 만료되었거나 유효하지 않습니다.'); + clearAuthData(); // 만료된 인증 정보 정리 + window.location.href = '/index.html'; + throw new Error('인증에 실패했습니다.'); + } + + return response; +} + +// 공통 API 요청 함수들 + +/** + * GET 요청 헬퍼 + * @param {string} endpoint - API 엔드포인트 + */ +async function apiGet(endpoint) { + const response = await authFetch(endpoint); + return response.json(); +} + +/** + * POST 요청 헬퍼 + * @param {string} endpoint - API 엔드포인트 + * @param {object} data - 전송할 데이터 + */ +async function apiPost(endpoint, data) { + const response = await authFetch(endpoint, { + method: 'POST', + body: JSON.stringify(data) + }); + return response.json(); +} + +/** + * PUT 요청 헬퍼 + * @param {string} endpoint - API 엔드포인트 + * @param {object} data - 전송할 데이터 + */ +async function apiPut(endpoint, data) { + const response = await authFetch(endpoint, { + method: 'PUT', + body: JSON.stringify(data) + }); + return response.json(); +} + +/** + * DELETE 요청 헬퍼 + * @param {string} endpoint - API 엔드포인트 + */ +async function apiDelete(endpoint) { + const response = await authFetch(endpoint, { + method: 'DELETE' + }); + return response.json(); +} + +// 전역 함수로 설정 +window.login = login; +window.apiGet = apiGet; +window.apiPost = apiPost; +window.apiPut = apiPut; +window.apiDelete = apiDelete; +window.getToken = getToken; +window.clearAuthData = clearAuthData; \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/app-init.js b/deploy/tkfb-package/web-ui/js/app-init.js new file mode 100644 index 0000000..9bd6d56 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/app-init.js @@ -0,0 +1,587 @@ +// /js/app-init.js +// 앱 초기화 - 인증, 네비바, 사이드바를 한 번에 로드 +// 모든 페이지에서 이 하나의 스크립트만 로드하면 됨 + +(function() { + 'use strict'; + + // ===== 캐시 설정 ===== + const CACHE_DURATION = 10 * 60 * 1000; // 10분 + const COMPONENT_CACHE_PREFIX = 'component_v3_'; + + // ===== 인증 함수 ===== + function isLoggedIn() { + const token = localStorage.getItem('token'); + return token && token !== 'undefined' && token !== 'null'; + } + + function getUser() { + const user = localStorage.getItem('user'); + return user ? JSON.parse(user) : null; + } + + function clearAuthData() { + localStorage.removeItem('token'); + localStorage.removeItem('user'); + localStorage.removeItem('userPageAccess'); + } + + // ===== 페이지 권한 캐시 ===== + let pageAccessPromise = null; + + async function getPageAccess(currentUser) { + if (!currentUser || !currentUser.user_id) return null; + + // 캐시 확인 + const cached = localStorage.getItem('userPageAccess'); + if (cached) { + try { + const cacheData = JSON.parse(cached); + if (Date.now() - cacheData.timestamp < CACHE_DURATION) { + return cacheData.pages; + } + } catch (e) { + localStorage.removeItem('userPageAccess'); + } + } + + // 이미 로딩 중이면 기존 Promise 반환 + if (pageAccessPromise) return pageAccessPromise; + + // 새로운 API 호출 + pageAccessPromise = (async () => { + try { + const response = await fetch(`${window.API_BASE_URL}/users/${currentUser.user_id}/page-access`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${localStorage.getItem('token')}` + } + }); + + if (!response.ok) return null; + + const data = await response.json(); + const pages = data.data.pageAccess || []; + + localStorage.setItem('userPageAccess', JSON.stringify({ + pages: pages, + timestamp: Date.now() + })); + + return pages; + } catch (error) { + console.error('페이지 권한 조회 오류:', error); + return null; + } finally { + pageAccessPromise = null; + } + })(); + + return pageAccessPromise; + } + + async function getAccessiblePageKeys(currentUser) { + const pages = await getPageAccess(currentUser); + if (!pages) return []; + return pages.filter(p => p.can_access === 1).map(p => p.page_key); + } + + // ===== 현재 페이지 키 추출 ===== + function getCurrentPageKey() { + const path = window.location.pathname; + if (!path.startsWith('/pages/')) return null; + const pagePath = path.substring(7).replace('.html', ''); + return pagePath.replace(/\//g, '.'); + } + + // ===== 컴포넌트 로더 ===== + async function loadComponent(name, selector, processor) { + const container = document.querySelector(selector); + if (!container) return; + + const paths = { + 'navbar': '/components/navbar.html', + 'sidebar-nav': '/components/sidebar-nav.html' + }; + + const componentPath = paths[name]; + if (!componentPath) return; + + try { + const cacheKey = COMPONENT_CACHE_PREFIX + name; + let html = sessionStorage.getItem(cacheKey); + + if (!html) { + const response = await fetch(componentPath); + if (!response.ok) throw new Error('컴포넌트 로드 실패'); + html = await response.text(); + try { sessionStorage.setItem(cacheKey, html); } catch (e) {} + } + + if (processor) { + const parser = new DOMParser(); + const doc = parser.parseFromString(html, 'text/html'); + await processor(doc); + container.innerHTML = doc.body.innerHTML; + } else { + container.innerHTML = html; + } + } catch (error) { + console.error(`컴포넌트 로드 오류 (${name}):`, error); + } + } + + // ===== 네비바 처리 ===== + const ROLE_NAMES = { + 'system admin': '시스템 관리자', + 'admin': '관리자', + 'leader': '그룹장', + 'user': '작업자', + 'support': '지원팀', + 'default': '사용자' + }; + + async function processNavbar(doc, currentUser, accessiblePageKeys) { + const userRole = (currentUser.role || '').toLowerCase(); + const isAdmin = userRole === 'admin' || userRole === 'system admin'; + + if (isAdmin) { + doc.querySelectorAll('.admin-only').forEach(el => el.classList.add('visible')); + } else { + doc.querySelectorAll('[data-page-key]').forEach(item => { + const pageKey = item.getAttribute('data-page-key'); + if (pageKey === 'dashboard' || pageKey.startsWith('profile.')) return; + if (!accessiblePageKeys.includes(pageKey)) item.remove(); + }); + doc.querySelectorAll('.admin-only').forEach(el => el.remove()); + } + + // 사용자 정보 표시 + const displayName = currentUser.name || currentUser.username; + const roleName = ROLE_NAMES[userRole] || ROLE_NAMES.default; + + const setElementText = (id, text) => { + const el = doc.getElementById(id); + if (el) el.textContent = text; + }; + + setElementText('userName', displayName); + setElementText('userRole', roleName); + setElementText('userInitial', displayName.charAt(0)); + } + + // ===== 사이드바 처리 ===== + async function processSidebar(doc, currentUser, accessiblePageKeys) { + const userRole = (currentUser.role || '').toLowerCase(); + const accessLevel = (currentUser.access_level || '').toLowerCase(); + // role 또는 access_level로 관리자 확인 + const isAdmin = userRole === 'admin' || userRole === 'system admin' || userRole === 'system' || + accessLevel === 'admin' || accessLevel === 'system'; + + if (isAdmin) { + doc.querySelectorAll('.admin-only').forEach(el => el.classList.add('visible')); + } else { + doc.querySelectorAll('[data-page-key]').forEach(item => { + const pageKey = item.getAttribute('data-page-key'); + if (pageKey === 'dashboard' || pageKey.startsWith('profile.')) return; + if (!accessiblePageKeys.includes(pageKey)) item.style.display = 'none'; + }); + doc.querySelectorAll('.nav-category.admin-only').forEach(el => el.remove()); + } + + // 현재 페이지 하이라이트 + const currentPath = window.location.pathname; + doc.querySelectorAll('.nav-item').forEach(item => { + const href = item.getAttribute('href'); + if (href && currentPath.includes(href.replace(/^\//, ''))) { + item.classList.add('active'); + const category = item.closest('.nav-category'); + if (category) category.classList.add('expanded'); + } + }); + + // 저장된 상태 복원 (기본값: 접힌 상태) + const isCollapsed = localStorage.getItem('sidebarCollapsed') !== 'false'; + const sidebar = doc.querySelector('.sidebar-nav'); + if (isCollapsed && sidebar) { + sidebar.classList.add('collapsed'); + document.body.classList.add('sidebar-collapsed'); + } + + const expandedCategories = JSON.parse(localStorage.getItem('sidebarExpanded') || '[]'); + expandedCategories.forEach(category => { + const el = doc.querySelector(`[data-category="${category}"]`); + if (el) el.classList.add('expanded'); + }); + } + + // ===== 사이드바 이벤트 설정 ===== + function setupSidebarEvents() { + const sidebar = document.getElementById('sidebarNav'); + const toggle = document.getElementById('sidebarToggle'); + if (!sidebar || !toggle) return; + + toggle.addEventListener('click', () => { + sidebar.classList.toggle('collapsed'); + document.body.classList.toggle('sidebar-collapsed'); + localStorage.setItem('sidebarCollapsed', sidebar.classList.contains('collapsed')); + }); + + sidebar.querySelectorAll('.nav-category-header').forEach(header => { + header.addEventListener('click', () => { + const category = header.closest('.nav-category'); + category.classList.toggle('expanded'); + + const expanded = []; + sidebar.querySelectorAll('.nav-category.expanded').forEach(cat => { + const name = cat.getAttribute('data-category'); + if (name) expanded.push(name); + }); + localStorage.setItem('sidebarExpanded', JSON.stringify(expanded)); + }); + }); + } + + // ===== 네비바 이벤트 설정 ===== + function setupNavbarEvents() { + const logoutButton = document.getElementById('logoutBtn'); + if (logoutButton) { + logoutButton.addEventListener('click', () => { + if (confirm('로그아웃 하시겠습니까?')) { + clearAuthData(); + window.location.href = '/index.html'; + } + }); + } + + // 알림 버튼 이벤트 + const notificationBtn = document.getElementById('notificationBtn'); + const notificationDropdown = document.getElementById('notificationDropdown'); + const notificationWrapper = document.getElementById('notificationWrapper'); + + if (notificationBtn && notificationDropdown) { + notificationBtn.addEventListener('click', (e) => { + e.stopPropagation(); + notificationDropdown.classList.toggle('show'); + }); + + document.addEventListener('click', (e) => { + if (notificationWrapper && !notificationWrapper.contains(e.target)) { + notificationDropdown.classList.remove('show'); + } + }); + } + } + + // ===== 알림 로드 ===== + async function loadNotifications() { + try { + const token = localStorage.getItem('token'); + if (!token) return; + + const response = await fetch(`${window.API_BASE_URL}/notifications/unread`, { + headers: { 'Authorization': `Bearer ${token}` } + }); + if (!response.ok) return; + + const result = await response.json(); + if (result.success) { + const notifications = result.data || []; + updateNotificationBadge(notifications.length); + renderNotificationList(notifications); + } + } catch (error) { + console.warn('알림 로드 오류:', error.message); + } + } + + function updateNotificationBadge(count) { + const badge = document.getElementById('notificationBadge'); + const btn = document.getElementById('notificationBtn'); + if (!badge) return; + + if (count > 0) { + badge.textContent = count > 99 ? '99+' : count; + badge.style.display = 'flex'; + btn?.classList.add('has-notifications'); + } else { + badge.style.display = 'none'; + btn?.classList.remove('has-notifications'); + } + } + + function renderNotificationList(notifications) { + const list = document.getElementById('notificationList'); + if (!list) return; + + if (notifications.length === 0) { + list.innerHTML = '
새 알림이 없습니다.
'; + return; + } + + const icons = { repair: '🔧', safety: '⚠️', system: '📢', equipment: '🔩', maintenance: '🛠️' }; + + list.innerHTML = notifications.slice(0, 5).map(n => ` +
+
${icons[n.type] || '🔔'}
+
+
${escapeHtml(n.title)}
+
${escapeHtml(n.message || '')}
+
+
${formatTimeAgo(n.created_at)}
+
+ `).join(''); + + list.querySelectorAll('.notification-item').forEach(item => { + item.addEventListener('click', () => { + const url = item.dataset.url; + // 수리 알림은 클릭해도 읽음 처리 안함 (수리 처리 페이지에서 확인 처리해야 함) + window.location.href = url || '/pages/admin/notifications.html'; + }); + }); + } + + function formatTimeAgo(dateString) { + const date = new Date(dateString); + const now = new Date(); + const diffMs = now - date; + const diffMins = Math.floor(diffMs / 60000); + const diffHours = Math.floor(diffMs / 3600000); + const diffDays = Math.floor(diffMs / 86400000); + + if (diffMins < 1) return '방금 전'; + if (diffMins < 60) return `${diffMins}분 전`; + if (diffHours < 24) return `${diffHours}시간 전`; + if (diffDays < 7) return `${diffDays}일 전`; + return date.toLocaleDateString('ko-KR', { month: 'short', day: 'numeric' }); + } + + function escapeHtml(text) { + if (!text) return ''; + const div = document.createElement('div'); + div.textContent = text; + return div.innerHTML; + } + + // ===== 날짜/시간 업데이트 ===== + function updateDateTime() { + const now = new Date(); + const timeEl = document.getElementById('timeValue'); + if (timeEl) { + const hours = String(now.getHours()).padStart(2, '0'); + const minutes = String(now.getMinutes()).padStart(2, '0'); + const seconds = String(now.getSeconds()).padStart(2, '0'); + timeEl.textContent = `${hours}시 ${minutes}분 ${seconds}초`; + } + + const dateEl = document.getElementById('dateValue'); + if (dateEl) { + const days = ['일', '월', '화', '수', '목', '토']; + dateEl.textContent = `${now.getMonth() + 1}월 ${now.getDate()}일 (${days[now.getDay()]})`; + } + } + + // ===== 날씨 업데이트 ===== + const WEATHER_ICONS = { clear: '☀️', rain: '🌧️', snow: '❄️', heat: '🔥', cold: '🥶', wind: '💨', fog: '🌫️', dust: '😷', cloudy: '⛅', overcast: '☁️' }; + const WEATHER_NAMES = { clear: '맑음', rain: '비', snow: '눈', heat: '폭염', cold: '한파', wind: '강풍', fog: '안개', dust: '미세먼지', cloudy: '구름많음', overcast: '흐림' }; + + async function updateWeather() { + try { + const token = localStorage.getItem('token'); + if (!token) return; + + // 캐시 확인 + const cached = sessionStorage.getItem('weatherCache'); + let result; + if (cached) { + const cacheData = JSON.parse(cached); + if (Date.now() - cacheData.timestamp < 5 * 60 * 1000) { + result = cacheData.data; + } + } + + if (!result) { + const response = await fetch(`${window.API_BASE_URL}/tbm/weather/current`, { + headers: { 'Authorization': `Bearer ${token}` } + }); + if (!response.ok) return; + result = await response.json(); + sessionStorage.setItem('weatherCache', JSON.stringify({ data: result, timestamp: Date.now() })); + } + + if (result.success && result.data) { + const { temperature, conditions } = result.data; + const tempEl = document.getElementById('weatherTemp'); + if (tempEl && temperature != null) tempEl.textContent = `${Math.round(temperature)}°C`; + + const iconEl = document.getElementById('weatherIcon'); + const descEl = document.getElementById('weatherDesc'); + if (conditions && conditions.length > 0) { + const primary = conditions[0]; + if (iconEl) iconEl.textContent = WEATHER_ICONS[primary] || '🌤️'; + if (descEl) descEl.textContent = WEATHER_NAMES[primary] || '맑음'; + } + } + } catch (error) { + console.warn('날씨 정보 로드 실패'); + } + } + + // ===== 메인 초기화 ===== + async function init() { + console.log('🚀 app-init 시작'); + + // 1. 인증 확인 + if (!isLoggedIn()) { + clearAuthData(); + window.location.href = '/index.html'; + return; + } + + const currentUser = getUser(); + if (!currentUser || !currentUser.username) { + clearAuthData(); + window.location.href = '/index.html'; + return; + } + + console.log('✅ 인증 확인:', currentUser.username); + + const userRole = (currentUser.role || '').toLowerCase(); + const accessLevel = (currentUser.access_level || '').toLowerCase(); + // role 또는 access_level로 관리자 확인 + const isAdmin = userRole === 'admin' || userRole === 'system admin' || userRole === 'system' || + accessLevel === 'admin' || accessLevel === 'system'; + + // 2. 페이지 접근 권한 체크 (Admin은 건너뛰기) + let accessiblePageKeys = []; + if (!isAdmin) { + const pageKey = getCurrentPageKey(); + if (pageKey && pageKey !== 'dashboard' && !pageKey.startsWith('profile.')) { + accessiblePageKeys = await getAccessiblePageKeys(currentUser); + if (!accessiblePageKeys.includes(pageKey)) { + alert('이 페이지에 접근할 권한이 없습니다.'); + window.location.href = '/pages/dashboard.html'; + return; + } + } + } + + // 3. 사이드바 컨테이너 생성 (없으면) + let sidebarContainer = document.getElementById('sidebar-container'); + if (!sidebarContainer) { + sidebarContainer = document.createElement('div'); + sidebarContainer.id = 'sidebar-container'; + document.body.prepend(sidebarContainer); + console.log('📦 사이드바 컨테이너 생성됨'); + } + + // 4. 네비바와 사이드바 동시 로드 + console.log('📥 컴포넌트 로딩 시작'); + await Promise.all([ + loadComponent('navbar', '#navbar-container', (doc) => processNavbar(doc, currentUser, accessiblePageKeys)), + loadComponent('sidebar-nav', '#sidebar-container', (doc) => processSidebar(doc, currentUser, accessiblePageKeys)) + ]); + console.log('✅ 컴포넌트 로딩 완료'); + + // 5. 이벤트 설정 + setupNavbarEvents(); + setupSidebarEvents(); + document.body.classList.add('has-sidebar'); + + // 6. 페이지 전환 로딩 인디케이터 설정 + setupPageTransitionLoader(); + + // 7. 날짜/시간 (비동기) + updateDateTime(); + setInterval(updateDateTime, 1000); + + // 8. 날씨 (백그라운드) + setTimeout(updateWeather, 100); + + // 9. 알림 로드 (30초마다 갱신) + setTimeout(loadNotifications, 200); + setInterval(loadNotifications, 30000); + + console.log('✅ app-init 완료'); + } + + // ===== 페이지 전환 로딩 인디케이터 ===== + function setupPageTransitionLoader() { + // 로딩 바 스타일 추가 + const style = document.createElement('style'); + style.textContent = ` + #page-loader { + position: fixed; + top: 0; + left: 0; + width: 0; + height: 3px; + background: linear-gradient(90deg, #3b82f6, #60a5fa); + z-index: 99999; + transition: width 0.3s ease; + box-shadow: 0 0 10px rgba(59, 130, 246, 0.5); + } + #page-loader.loading { + width: 70%; + } + #page-loader.done { + width: 100%; + opacity: 0; + transition: width 0.2s ease, opacity 0.3s ease 0.2s; + } + body.page-loading { + cursor: wait; + } + body.page-loading * { + pointer-events: none; + } + `; + document.head.appendChild(style); + + // 로딩 바 엘리먼트 생성 + const loader = document.createElement('div'); + loader.id = 'page-loader'; + document.body.appendChild(loader); + + // 모든 내부 링크에 클릭 이벤트 추가 + document.addEventListener('click', (e) => { + const link = e.target.closest('a'); + if (!link) return; + + const href = link.getAttribute('href'); + if (!href) return; + + // 외부 링크, 해시 링크, javascript: 링크 제외 + if (href.startsWith('http') || href.startsWith('#') || href.startsWith('javascript:')) return; + + // 새 탭 링크 제외 + if (link.target === '_blank') return; + + // 로딩 시작 + loader.classList.remove('done'); + loader.classList.add('loading'); + document.body.classList.add('page-loading'); + }); + + // 페이지 떠날 때 완료 표시 + window.addEventListener('beforeunload', () => { + const loader = document.getElementById('page-loader'); + if (loader) { + loader.classList.remove('loading'); + loader.classList.add('done'); + } + }); + } + + // DOMContentLoaded 시 실행 + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', init); + } else { + init(); + } + + // 전역 노출 (필요시) + window.appInit = { getUser, clearAuthData, isLoggedIn }; +})(); diff --git a/deploy/tkfb-package/web-ui/js/attendance-validation.js b/deploy/tkfb-package/web-ui/js/attendance-validation.js new file mode 100644 index 0000000..2eb16e1 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/attendance-validation.js @@ -0,0 +1,1038 @@ +// 근태 검증 관리 시스템 - API 통합 개선판 + +// ======================================== +// API 설정 및 인증 (통합 방식) +// ======================================== +import { API, getAuthHeaders, apiCall } from '/js/api-config.js'; + +// ======================================== +// 전역 변수 및 설정 +// ======================================== + +let currentDate = new Date(); +let selectedDate = null; +let selectedDateWorkers = []; +let currentFilter = 'all'; +let editingWorker = null; + +// Rate Limiting 설정 - 더욱 엄격하게 +const RATE_LIMIT = { + maxConcurrent: 1, // 동시 최대 1개 요청만! + delayBetweenRequests: 2000, // 요청 간 2초 딜레이 + retryDelay: 5000, // 429 에러 시 5초 후 재시도 + maxRetries: 1 // 최대 1번만 재시도 +}; + +// 캐시 및 상태 관리 +let dateStatusCache = new Map(); +let requestQueue = []; +let activeRequests = 0; +let isProcessingQueue = false; + +// ======================================== +// 캐시 및 성능 관리 유틸리티 +// ======================================== + +/** + * 캐시 상태 확인 + */ +function getCacheStatus() { + return { + cachedDates: dateStatusCache.size, + activeRequests: activeRequests, + queuedRequests: requestQueue.length, + isProcessingQueue: isProcessingQueue + }; +} + +/** + * 캐시 클리어 + */ +function clearCache() { + dateStatusCache.clear(); + console.log('📦 캐시가 클리어되었습니다.'); +} + +/** + * 성능 상태 UI 업데이트 + */ +function updatePerformanceUI() { + const status = getCacheStatus(); + const performanceEl = document.getElementById('performanceStatus'); + + if (performanceEl) { + document.getElementById('activeReq').textContent = status.activeRequests; + document.getElementById('cacheCount').textContent = status.cachedDates; + document.getElementById('queueCount').textContent = status.queuedRequests; + + // 개발 환경에서만 표시 + if (window.location.hostname === 'localhost' || window.location.hostname.includes('dev')) { + performanceEl.classList.remove('hidden'); + } + } +} + +/** + * 성능 모니터링 (디버그용) + */ +function logPerformanceStatus() { + const status = getCacheStatus(); + console.log('📊 성능 상태:', status); + updatePerformanceUI(); +} + +// 개발 모드에서 성능 모니터링 (2초마다) +if (window.location.hostname === 'localhost' || window.location.hostname.includes('dev')) { + setInterval(logPerformanceStatus, 2000); +} + +// ======================================== +// 유틸리티 함수들 +// ======================================== + +/** + * 한국 시간 기준 날짜 문자열 반환 + */ +function getKoreaDateString(date = new Date()) { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +/** + * 현재 로그인한 사용자 정보 가져오기 + */ +function getCurrentUser() { + try { + const token = localStorage.getItem('token'); + if (!token) return null; + + const payloadBase64 = token.split('.')[1]; + if (payloadBase64) { + const payload = JSON.parse(atob(payloadBase64)); + return payload; + } + } catch (error) { + console.log('토큰에서 사용자 정보 추출 실패:', error); + } + + try { + const userInfo = localStorage.getItem('user') || localStorage.getItem('userInfo'); + if (userInfo) { + return JSON.parse(userInfo); + } + } catch (error) { + console.log('localStorage에서 사용자 정보 가져오기 실패:', error); + } + + return null; +} + +// ======================================== +// Rate Limiting 및 Queue 시스템 +// ======================================== + +/** + * Rate Limited API 호출을 위한 Queue 처리 + */ +async function processRequestQueue() { + if (isProcessingQueue || requestQueue.length === 0) return; + + isProcessingQueue = true; + + while (requestQueue.length > 0 && activeRequests < RATE_LIMIT.maxConcurrent) { + const { resolve, reject, url, options, retryCount } = requestQueue.shift(); + activeRequests++; + + try { + const result = await makeRateLimitedRequest(url, options, retryCount); + resolve(result); + } catch (error) { + reject(error); + } finally { + activeRequests--; + updatePerformanceUI(); // UI 업데이트 + // 요청 간 딜레이 + if (requestQueue.length > 0) { + await new Promise(resolve => setTimeout(resolve, RATE_LIMIT.delayBetweenRequests)); + } + } + } + + isProcessingQueue = false; + + // 큐에 남은 요청이 있으면 다시 처리 + if (requestQueue.length > 0) { + setTimeout(processRequestQueue, RATE_LIMIT.delayBetweenRequests); + } +} + +/** + * Rate Limiting이 적용된 실제 API 호출 + */ +async function makeRateLimitedRequest(url, options = {}, retryCount = 0) { + const defaultOptions = { + headers: getAuthHeaders() + }; + + const finalOptions = { + ...defaultOptions, + ...options, + headers: { + ...defaultOptions.headers, + ...options.headers + } + }; + + try { + const response = await fetch(url, finalOptions); + + if (response.status === 401) { + showMessage('인증이 만료되었습니다. 다시 로그인해주세요.', 'error'); + localStorage.removeItem('token'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return; + } + + if (response.status === 429) { + // Rate Limit 에러 처리 + if (retryCount < RATE_LIMIT.maxRetries) { + console.log(`Rate limit 도달, ${RATE_LIMIT.retryDelay}ms 후 재시도 (${retryCount + 1}/${RATE_LIMIT.maxRetries})`); + await new Promise(resolve => setTimeout(resolve, RATE_LIMIT.retryDelay * (retryCount + 1))); + return makeRateLimitedRequest(url, options, retryCount + 1); + } else { + throw new Error('Rate limit exceeded - 요청이 너무 많습니다. 잠시 후 다시 시도해주세요.'); + } + } + + if (!response.ok) { + const errorData = await response.json().catch(() => ({})); + throw new Error(errorData.error || errorData.message || `HTTP ${response.status}`); + } + + return await response.json(); + } catch (error) { + console.error('API 호출 오류:', error); + throw error; + } +} + +/** + * API 호출 헬퍼 (Queue 시스템 사용) - 통합 apiCall 대신 사용 + */ +async function queuedApiCall(url, options = {}) { + return new Promise((resolve, reject) => { + requestQueue.push({ + resolve, + reject, + url, + options, + retryCount: 0 + }); + updatePerformanceUI(); // UI 업데이트 + processRequestQueue(); + }); +} + +// ======================================== +// 메시지 및 UI 헬퍼 함수들 +// ======================================== + +/** + * 메시지 표시 + */ +function showMessage(message, type = 'info') { + const container = document.getElementById('message-container'); + container.innerHTML = `
${message}
`; + + if (type === 'success') { + setTimeout(() => { + hideMessage(); + }, 5000); + } +} + +function hideMessage() { + document.getElementById('message-container').innerHTML = ''; +} + +/** + * 로딩 상태 표시 + */ +function showLoadingState() { + const workersList = document.getElementById('workersList'); + workersList.innerHTML = ` +
+
+
+ 작업자 데이터를 불러오는 중... +
+
+ `; +} + +/** + * 오류 상태 표시 + */ +function showErrorState(message = '데이터를 불러오는 중 오류가 발생했습니다.') { + const workersList = document.getElementById('workersList'); + workersList.innerHTML = ` +
+
⚠️
+

데이터 로딩 오류

+

${message}

+
+ `; +} + +// ======================================== +// API 호출 함수들 (통합 설정 사용) +// ======================================== + +/** + * 특정 날짜의 작업 보고서를 가져옵니다 + */ +async function fetchWorkReports(date) { + try { + return await queuedApiCall(`${API}/workreports/date/${date}`); + } catch (error) { + console.error('WorkReports API 호출 실패:', error); + return []; + } +} + +/** + * 특정 날짜의 일일 작업 보고서를 가져옵니다 + */ +async function fetchDailyWorkReports(date) { + try { + return await queuedApiCall(`${API}/daily-work-reports/date/${date}`); + } catch (error) { + console.error('DailyWorkReports API 호출 실패:', error); + return []; + } +} + +/** + * 특정 작업자의 근무시간을 수정합니다 + */ +async function updateWorkerHours(workerId, date, newHours, reason = '') { + try { + const data = { + worker_id: workerId, + report_date: date, + work_hours: parseFloat(newHours), + modification_reason: reason, + modified_by: getCurrentUser()?.user_id || getCurrentUser()?.id + }; + + return await queuedApiCall(`${API}/daily-work-reports/update-hours`, { + method: 'PUT', + body: JSON.stringify(data) + }); + } catch (error) { + console.error('작업자 시간 수정 실패:', error); + throw error; + } +} + +/** + * 특정 작업자의 작업 데이터를 삭제합니다 + */ +async function deleteWorkerReport(workerId, date) { + try { + return await queuedApiCall(`${API}/daily-work-reports/worker/${workerId}/date/${date}`, { + method: 'DELETE' + }); + } catch (error) { + console.error('작업자 데이터 삭제 실패:', error); + throw error; + } +} + +// ======================================== +// 계산 및 검증 함수들 +// ======================================== + +/** + * 상태에 따른 예상 근무시간을 계산합니다 + */ +function calculateExpectedHours(status, overtime_hours = 0) { + const baseHours = { + 'normal': 8, // 정상 출근 + 'half_day': 4, // 반차 + 'early_leave': 4, // 조퇴 + 'quarter_day': 2, // 1/4 휴가 + 'vacation': 0, // 휴가 + 'sick_leave': 0 // 병가 + }; + return (baseHours[status] || 8) + (overtime_hours || 0); +} + +/** + * 작업자의 검증 상태를 계산합니다 + */ +function getValidationStatus(worker) { + if (!worker.hasWorkReport || !worker.hasDailyReport) return 'missing'; + if (Math.abs(worker.difference) > 0) return 'needs-review'; + return 'normal'; +} + +/** + * 특정 날짜의 전체 상태를 계산합니다 (순차 호출) + */ +async function calculateDateStatus(dateStr) { + // 캐시 확인 + if (dateStatusCache.has(dateStr)) { + return dateStatusCache.get(dateStr); + } + + try { + console.log(`📊 ${dateStr} 상태 계산 시작 - 순차 호출`); + + // 1단계: WorkReports 먼저 가져오기 + console.log(`📝 1단계: WorkReports 조회 중...`); + const workReports = await fetchWorkReports(dateStr); + + // 2초 대기 (서버 부하 방지) + console.log(`⏳ 2초 대기 중... (서버 부하 방지)`); + await new Promise(resolve => setTimeout(resolve, 2000)); + + // 2단계: DailyWorkReports 가져오기 + console.log(`📊 2단계: DailyWorkReports 조회 중...`); + const dailyReports = await fetchDailyWorkReports(dateStr); + + let status; + if (workReports.length === 0 && dailyReports.length === 0) { + status = 'no-data'; + } else if (workReports.length === 0 || dailyReports.length === 0) { + status = 'missing'; + } else { + const hasDiscrepancy = workReports.some(wr => { + const dr = dailyReports.find(d => d.worker_id === wr.worker_id); + if (!dr) return true; + + const expected = calculateExpectedHours(wr.status, wr.overtime_hours); + return Math.abs(dr.work_hours - expected) > 0; + }); + status = hasDiscrepancy ? 'needs-review' : 'normal'; + } + + // 캐시에 저장 + dateStatusCache.set(dateStr, status); + console.log(`✅ ${dateStr} 상태 계산 완료: ${status}`); + return status; + } catch (error) { + console.error('날짜 상태 계산 오류:', error); + // 에러 시 캐시하지 않고 기본값 반환 + return 'no-data'; + } +} + +// ======================================== +// 캘린더 관련 함수들 +// ======================================== + +/** + * 현재 월의 캘린더 데이터를 생성합니다 (온디맨드 로딩) + */ +function generateCalendarStructure() { + const year = currentDate.getFullYear(); + const month = currentDate.getMonth(); + const firstDay = new Date(year, month, 1); + const startDate = new Date(firstDay); + startDate.setDate(startDate.getDate() - firstDay.getDay()); + + const calendar = []; + const current = new Date(startDate); + + for (let week = 0; week < 6; week++) { + const weekDays = []; + for (let day = 0; day < 7; day++) { + const dateStr = getKoreaDateString(current); + const isCurrentMonth = current.getMonth() === month; + + weekDays.push({ + date: new Date(current), + dateStr, + isCurrentMonth, + status: 'no-data' // 모든 날짜를 no-data로 시작 + }); + current.setDate(current.getDate() + 1); + } + calendar.push(weekDays); + } + + return calendar; +} + +/** + * 캘린더를 화면에 렌더링합니다 (자동 로딩 없음) + */ +async function renderCalendar() { + try { + showMessage('📅 캘린더를 표시합니다. 날짜를 클릭하면 순차적으로 상태를 확인할 수 있습니다.', 'success'); + + // 캘린더 구조만 렌더링 (API 호출 없음) + const calendar = generateCalendarStructure(); + const calendarGrid = document.getElementById('calendarGrid'); + calendarGrid.innerHTML = ''; + + // 캘린더 날짜들을 생성 (상태 로딩 없음) + calendar.flat().forEach((dateInfo) => { + const button = document.createElement('button'); + button.className = ` + calendar-day + ${dateInfo.isCurrentMonth ? 'text-gray-900 hover-enabled' : 'text-gray-400'} + ${selectedDate === dateInfo.dateStr ? 'selected' : ''} + no-data + `; + + button.innerHTML = ` +
+ ${dateInfo.date.getDate()} + ${dateInfo.isCurrentMonth ? + `
` : '' + } +
+ `; + + // 현재 월의 날짜만 클릭 가능 + if (dateInfo.isCurrentMonth) { + button.addEventListener('click', () => handleDateClick(dateInfo)); + button.title = `${dateInfo.dateStr} - 클릭하여 상태 확인`; + } else { + button.disabled = true; + button.style.cursor = 'not-allowed'; + } + + calendarGrid.appendChild(button); + }); + + // 월/년 표시 업데이트 + const monthNames = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월']; + document.getElementById('currentMonthYear').textContent = + `${currentDate.getFullYear()}년 ${monthNames[currentDate.getMonth()]}`; + + // 월간 요약 정보 초기화 + document.getElementById('normalCount').textContent = '?'; + document.getElementById('reviewCount').textContent = '?'; + document.getElementById('missingCount').textContent = '?'; + + hideMessage(); + + } catch (error) { + console.error('캘린더 렌더링 오류:', error); + showMessage('캘린더 로딩 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 특정 날짜의 상태만 로드하고 업데이트합니다 (순차 호출) + */ +async function loadAndUpdateDateStatus(dateStr, buttonElement) { + try { + // 로딩 상태 표시 + buttonElement.classList.add('loading-state'); + const statusDot = buttonElement.querySelector('.status-dot'); + if (statusDot) { + statusDot.style.background = '#3b82f6'; + statusDot.style.opacity = '1'; + statusDot.classList.add('pulse'); + } + + // 진행 상황 표시 + buttonElement.title = '1단계: WorkReports 조회 중...'; + + const status = await calculateDateStatus(dateStr); + + // 버튼 스타일 업데이트 + buttonElement.classList.remove('loading-state', 'no-data'); + buttonElement.classList.add(status); + buttonElement.title = `${dateStr} - 상태: ${status}`; + + // 상태 점 업데이트 + if (statusDot && status !== 'no-data') { + statusDot.classList.remove('pulse'); + statusDot.className = `status-dot ${ + status === 'needs-review' ? 'warning' : + status === 'missing' ? 'error' : + status === 'normal' ? 'normal' : '' + }`; + } + + console.log(`✅ ${dateStr} 상태 로드 완료: ${status}`); + + } catch (error) { + console.error(`❌ ${dateStr} 상태 로드 실패:`, error); + buttonElement.classList.remove('loading-state'); + buttonElement.classList.add('error-state'); + buttonElement.title = `${dateStr} - 로드 실패: ${error.message}`; + + const statusDot = buttonElement.querySelector('.status-dot'); + if (statusDot) { + statusDot.style.background = '#ef4444'; + statusDot.classList.remove('pulse'); + } + } +} + +// ======================================== +// 작업자 데이터 관련 함수들 +// ======================================== + +/** + * 특정 날짜의 모든 작업자 데이터를 조합합니다 (순차 호출) + */ +async function getWorkersForDate(dateStr) { + try { + console.log(`👥 ${dateStr} 작업자 데이터 조합 시작 - 순차 호출`); + + // 1단계: WorkReports 먼저 가져오기 + console.log(`📝 1단계: WorkReports 조회 중...`); + const workReports = await fetchWorkReports(dateStr); + + // 2초 대기 (서버 부하 방지) + console.log(`⏳ 2초 대기 중... (서버 부하 방지)`); + await new Promise(resolve => setTimeout(resolve, 2000)); + + // 2단계: DailyWorkReports 가져오기 + console.log(`📊 2단계: DailyWorkReports 조회 중...`); + const dailyReports = await fetchDailyWorkReports(dateStr); + + const workerMap = new Map(); + + // WorkReports 데이터 추가 + workReports.forEach(wr => { + workerMap.set(wr.worker_id, { + worker_id: wr.worker_id, + worker_name: wr.worker_name, + overtime_hours: wr.overtime_hours || 0, + status: wr.status || 'normal', + expected_hours: calculateExpectedHours(wr.status || 'normal', wr.overtime_hours), + reported_hours: null, + hasWorkReport: true, + hasDailyReport: false + }); + }); + + // DailyReports 데이터 추가 + dailyReports.forEach(dr => { + if (workerMap.has(dr.worker_id)) { + const worker = workerMap.get(dr.worker_id); + worker.reported_hours = dr.work_hours; + worker.hasDailyReport = true; + } else { + workerMap.set(dr.worker_id, { + worker_id: dr.worker_id, + worker_name: dr.worker_name, + overtime_hours: 0, + status: 'normal', + expected_hours: 8, + reported_hours: dr.work_hours, + hasWorkReport: false, + hasDailyReport: true + }); + } + }); + + const result = Array.from(workerMap.values()).map(worker => ({ + ...worker, + difference: worker.reported_hours !== null ? worker.reported_hours - worker.expected_hours : -worker.expected_hours, + validationStatus: getValidationStatus(worker) + })); + + console.log(`✅ ${dateStr} 작업자 데이터 조합 완료: ${result.length}명`); + return result; + + } catch (error) { + console.error('데이터 조합 오류:', error); + return []; + } +} + +// ======================================== +// 이벤트 핸들러 함수들 +// ======================================== + +/** + * 캘린더 날짜 클릭 이벤트 핸들러 (순차 호출) + */ +async function handleDateClick(dateInfo) { + if (!dateInfo.isCurrentMonth) return; + + selectedDate = dateInfo.dateStr; + + // 선택된 날짜 표시 업데이트 + document.querySelectorAll('.calendar-day').forEach(btn => { + btn.classList.remove('selected'); + }); + + const clickedButton = event.target.closest('.calendar-day'); + if (clickedButton) { + clickedButton.classList.add('selected'); + + // 해당 날짜의 상태가 아직 로드되지 않았다면 로드 + if (clickedButton.classList.contains('no-data')) { + showMessage(`📊 ${dateInfo.dateStr} 날짜의 상태를 확인하는 중... (순차 호출로 약 5초 소요)`, 'loading'); + await loadAndUpdateDateStatus(dateInfo.dateStr, clickedButton); + } + } + + // 작업자 데이터 로드 (순차 호출) + showLoadingState(); + showMessage(`👥 ${dateInfo.dateStr} 작업자 데이터를 순차적으로 로드 중... (약 5초 소요)`, 'loading'); + + try { + const workers = await getWorkersForDate(dateInfo.dateStr); + selectedDateWorkers = workers; + renderWorkersList(workers); + + showMessage(`✅ ${dateInfo.dateStr} 날짜의 데이터를 성공적으로 로드했습니다! (${workers.length}명)`, 'success'); + + } catch (error) { + console.error('날짜별 데이터 로딩 오류:', error); + showErrorState('해당 날짜의 데이터를 불러올 수 없습니다. 잠시 후 다시 시도해주세요.'); + showMessage(`❌ ${dateInfo.dateStr} 데이터 로드 실패: ${error.message}`, 'error'); + } +} + +/** + * 작업자 근무시간 수정 모달 열기 + */ +function openEditModal(worker) { + editingWorker = worker; + + document.getElementById('editWorkerName').value = worker.worker_name; + document.getElementById('editWorkerStatus').value = getStatusText(worker.status); + document.getElementById('editWorkHours').value = worker.reported_hours || 0; + document.getElementById('editReason').value = ''; + + document.getElementById('editModal').classList.remove('hidden'); +} + +/** + * 수정 모달 닫기 + */ +function closeEditModal() { + editingWorker = null; + document.getElementById('editModal').classList.add('hidden'); +} + +/** + * 수정된 작업 저장 + */ +async function saveEditedWork() { + if (!editingWorker) return; + + try { + const newHours = document.getElementById('editWorkHours').value; + const reason = document.getElementById('editReason').value; + + if (!newHours || isNaN(newHours)) { + showMessage('올바른 시간을 입력해주세요.', 'error'); + return; + } + + showMessage('수정 중...', 'loading'); + + await updateWorkerHours(editingWorker.worker_id, selectedDate, newHours, reason); + + showMessage('✅ 근무시간이 성공적으로 수정되었습니다!', 'success'); + closeEditModal(); + + // 데이터 새로고침 + const workers = await getWorkersForDate(selectedDate); + selectedDateWorkers = workers; + renderWorkersList(workers); + renderCalendar(); + + } catch (error) { + console.error('수정 실패:', error); + showMessage('수정 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +/** + * 작업자 데이터 삭제 + */ +async function deleteWorker(worker) { + if (!confirm(`정말로 ${worker.worker_name}의 ${selectedDate} 작업 데이터를 삭제하시겠습니까?\n삭제된 데이터는 복구할 수 없습니다.`)) { + return; + } + + try { + showMessage('삭제 중...', 'loading'); + + await deleteWorkerReport(worker.worker_id, selectedDate); + + showMessage('✅ 작업 데이터가 성공적으로 삭제되었습니다!', 'success'); + + // 데이터 새로고침 + const workers = await getWorkersForDate(selectedDate); + selectedDateWorkers = workers; + renderWorkersList(workers); + renderCalendar(); + + } catch (error) { + console.error('삭제 실패:', error); + showMessage('삭제 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// ======================================== +// UI 렌더링 함수들 +// ======================================== + +/** + * 상태 텍스트 반환 + */ +function getStatusText(status) { + const statusMap = { + 'normal': '정상출근', + 'half_day': '반차', + 'vacation': '휴가', + 'early_leave': '조퇴', + 'quarter_day': '1/4 휴가', + 'sick_leave': '병가' + }; + return statusMap[status] || status; +} + +/** + * 상태 아이콘 반환 + */ +function getStatusIcon(status) { + switch (status) { + case 'normal': return '✅'; + case 'needs-review': return '⚠️'; + case 'missing': return '❌'; + default: return '❓'; + } +} + +/** + * 날짜 포맷팅 + */ +function formatDate(dateStr) { + const date = new Date(dateStr); + const month = date.getMonth() + 1; + const day = date.getDate(); + const weekdays = ['일', '월', '화', '수', '목', '금', '토']; + const weekday = weekdays[date.getDay()]; + return `${month}월 ${day}일 (${weekday})`; +} + +/** + * 작업자 리스트를 화면에 렌더링합니다 + */ +function renderWorkersList(workers) { + const workersList = document.getElementById('workersList'); + + if (!selectedDate || workers.length === 0) { + workersList.innerHTML = ` +
+
🔄
+

날짜를 클릭해주세요

+

+ 캘린더에서 날짜를 클릭하면 해당 날짜의 작업자 검증 내역을 확인할 수 있습니다.
+ 순차 호출 방식으로 안정적이지만 약 5초의 로딩 시간이 있습니다. +

+
+ `; + return; + } + + // 필터링 적용 + const filteredWorkers = workers.filter(worker => { + if (currentFilter === 'all') return true; + if (currentFilter === 'needsReview') return worker.validationStatus === 'needs-review'; + if (currentFilter === 'normal') return worker.validationStatus === 'normal'; + if (currentFilter === 'missing') return worker.validationStatus === 'missing'; + return true; + }); + + // HTML 생성 + workersList.innerHTML = ` +
+ +
+
+

📋 작업자 검증 현황

+

${formatDate(selectedDate)}

+
+ +
+ + +
+ ${filteredWorkers.map(worker => ` +
+ +
+
+
+ ${worker.worker_name.charAt(0)} +
+
+
${worker.worker_name}
+
작업자 ID: ${worker.worker_id}
+
+
+
${getStatusIcon(worker.validationStatus)}
+
+ + +
+
+ 그룹장 입력 + + ${worker.reported_hours !== null ? `${worker.reported_hours}시간` : '미입력'} + +
+ +
+ 시스템 계산 + ${worker.expected_hours}시간 +
+ +
+ 근무 상태 + + ${getStatusText(worker.status)} + ${worker.overtime_hours > 0 ? ` + 연장 ${worker.overtime_hours}시간` : ''} + +
+ + ${worker.difference !== 0 ? ` +
+ 시간 차이 + + ${worker.difference > 0 ? '+' : ''}${worker.difference}시간 + +
+ ` : ''} +
+ + +
+ + ${worker.hasDailyReport ? ` + + ` : ''} +
+
+ `).join('')} +
+ + + ${filteredWorkers.length === 0 ? ` +
+
🔍
+

해당 조건의 작업자가 없습니다

+

+ 다른 필터를 선택하거나 전체 보기를 확인해주세요.
+ 또는 해당 날짜에 등록된 작업자가 없을 수 있습니다. +

+
+ ` : ''} +
+ `; + + // 필터 이벤트 리스너 추가 + const filterSelect = document.getElementById('workerFilter'); + filterSelect.value = currentFilter; + filterSelect.addEventListener('change', (e) => { + currentFilter = e.target.value; + renderWorkersList(selectedDateWorkers); + }); +} + +// ======================================== +// 초기화 및 이벤트 리스너 등록 +// ======================================== + +/** + * 페이지 로드 시 초기화 함수 + */ +async function init() { + try { + // 인증 확인 (api-config.js의 ensureAuthenticated 대신 직접 확인) + const token = localStorage.getItem('token'); + if (!token || token === 'undefined') { + showMessage('로그인이 필요합니다.', 'error'); + localStorage.removeItem('token'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return; + } + + // 월 이동 버튼 이벤트 리스너 + document.getElementById('prevMonth').addEventListener('click', async () => { + currentDate.setMonth(currentDate.getMonth() - 1); + selectedDate = null; + dateStatusCache.clear(); // 캐시 클리어 + clearCache(); // 추가 캐시 클리어 + await renderCalendar(); + renderWorkersList([]); + showMessage('📅 이전 달로 이동했습니다. 날짜를 클릭하여 순차적으로 데이터를 확인하세요.', 'success'); + }); + + document.getElementById('nextMonth').addEventListener('click', async () => { + currentDate.setMonth(currentDate.getMonth() + 1); + selectedDate = null; + dateStatusCache.clear(); // 캐시 클리어 + clearCache(); // 추가 캐시 클리어 + await renderCalendar(); + renderWorkersList([]); + showMessage('📅 다음 달로 이동했습니다. 날짜를 클릭하여 순차적으로 데이터를 확인하세요.', 'success'); + }); + + // 모달 이벤트 리스너 + document.getElementById('editModal').addEventListener('click', (e) => { + if (e.target.id === 'editModal') { + closeEditModal(); + } + }); + + // 초기 렌더링 + await renderCalendar(); + + // 순차 호출 안내 메시지 + showMessage('🔄 API 통합 적용 완료! 순차 호출 시스템으로 안정성이 개선되었습니다.', 'success'); + + // 전역 함수로 등록 + window.openEditModal = openEditModal; + window.closeEditModal = closeEditModal; + window.saveEditedWork = saveEditedWork; + window.deleteWorker = deleteWorker; + + console.log('✅ 근태 검증 관리 시스템 초기화 완료 (API 통합)'); + console.log(`🔗 API 경로: ${API}`); + console.log(`📊 설정: 동시 최대 ${RATE_LIMIT.maxConcurrent}개 요청, ${RATE_LIMIT.delayBetweenRequests}ms 딜레이`); + console.log('🔄 API 호출 방식: 통합 설정 + 순차 호출'); + console.log('🚫 429 에러 방지: 각 날짜당 최소 5초 간격'); + + } catch (error) { + console.error('초기화 오류:', error); + showMessage('시스템 초기화 중 오류가 발생했습니다.', 'error'); + } +} + +// 페이지 로드 시 초기화 +document.addEventListener('DOMContentLoaded', init); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/attendance.js b/deploy/tkfb-package/web-ui/js/attendance.js new file mode 100644 index 0000000..10ffcc7 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/attendance.js @@ -0,0 +1,176 @@ +import { API, getAuthHeaders } from '/js/api-config.js'; + +const yearSel = document.getElementById('year'); +const monthSel = document.getElementById('month'); +const container = document.getElementById('attendanceTableContainer'); + +const holidays = [ + '2025-01-01','2025-01-27','2025-01-28','2025-01-29','2025-01-30','2025-01-31', + '2025-03-01','2025-03-03','2025-05-01','2025-05-05','2025-05-06', + '2025-06-03','2025-06-06','2025-08-15','2025-10-03','2025-10-09','2025-12-25' +]; + +const leaveDefaults = { + '김두수':16,'임영규':16,'반치원':16,'황인용':16,'표영진':15, + '김윤섭':16,'이창호':16,'최광욱':16,'박현수':14,'조윤호':0 +}; + +let workers = []; + +// ✅ 셀렉트 박스 옵션 + 기본 선택 추가 +function fillSelectOptions() { + const currentY = new Date().getFullYear(); + const currentM = String(new Date().getMonth() + 1).padStart(2, '0'); + + for (let y = currentY; y <= currentY + 5; y++) { + const selected = y === currentY ? 'selected' : ''; + yearSel.insertAdjacentHTML('beforeend', ``); + } + + for (let m = 1; m <= 12; m++) { + const mm = String(m).padStart(2, '0'); + const selected = mm === currentM ? 'selected' : ''; + monthSel.insertAdjacentHTML('beforeend', ``); + } +} + +// ✅ 작업자 목록 불러오기 +async function fetchWorkers() { + try { + const res = await fetch(`${API}/workers`, { headers: getAuthHeaders() }); + const allWorkers = await res.json(); + + // 활성화된 작업자만 필터링 + workers = allWorkers.filter(worker => { + return worker.status === 'active' || worker.is_active === 1 || worker.is_active === true; + }); + + workers.sort((a, b) => a.worker_id - b.worker_id); + } catch (err) { + alert('작업자 불러오기 실패'); + } +} + +// ✅ 출근부 불러오기 (해당 연도 전체) +async function loadAttendance() { + const year = yearSel.value; + const month = monthSel.value; + if (!year || !month) return alert('연도와 월을 선택하세요'); + + const lastDay = new Date(+year, +month, 0).getDate(); + const start = `${year}-01-01`; + const end = `${year}-12-31`; + + try { + const res = await fetch(`${API}/workreports?start=${start}&end=${end}`, { + headers: getAuthHeaders() + }); + const data = await res.json(); + renderTable(data, year, month, lastDay); + } catch (err) { + alert('출근부 로딩 실패'); + } +} + +// ✅ 테이블 렌더링 +function renderTable(data, year, month, lastDay) { + container.innerHTML = ''; + const weekdays = ['일','월','화','수','목','금','토']; + const tbl = document.createElement('table'); + + // ⬆️ 헤더 구성 + let thead = `작업자`; + for (let d = 1; d <= lastDay; d++) thead += `${d}`; + thead += `잔업합계사용연차잔여연차`; + for (let d = 1; d <= lastDay; d++) { + const dow = new Date(+year, +month - 1, d).getDay(); + thead += `${weekdays[dow]}`; + } + thead += ''; + tbl.innerHTML = thead; + + // ⬇️ 본문 + workers.forEach(w => { + // ✅ 월간 데이터 (표에 표시용) + const recsThisMonth = data.filter(r => + r.worker_id === w.worker_id && + new Date(r.date).getFullYear() === +year && + new Date(r.date).getMonth() + 1 === +month + ); + + // ✅ 연간 데이터 (연차 계산용) + const recsThisYear = data.filter(r => + r.worker_id === w.worker_id && + new Date(r.date).getFullYear() === +year + ); + + let otSum = 0; + let row = `${w.worker_name}`; + + for (let d = 1; d <= lastDay; d++) { + const dd = String(d).padStart(2, '0'); + const date = `${year}-${month}-${dd}`; + + const rec = recsThisMonth.find(r => { + const rDate = new Date(r.date); + const yyyy = rDate.getFullYear(); + const mm = String(rDate.getMonth() + 1).padStart(2, '0'); + const dd = String(rDate.getDate()).padStart(2, '0'); + return `${yyyy}-${mm}-${dd}` === date; + }); + + const dow = new Date(+year, +month - 1, d).getDay(); + const isWe = dow === 0 || dow === 6; + const isHo = holidays.includes(date); + + let txt = '', cls = ''; + if (rec) { + const ot = +rec.overtime_hours || 0; + if (ot > 0) { + txt = ot; cls = 'overtime-cell'; otSum += ot; + } else if (rec.work_details) { + const d = rec.work_details; + if (['연차','반차','반반차','조퇴'].includes(d)) { + txt = d; cls = 'leave'; + } else if (d === '유급') { + txt = d; cls = 'paid-leave'; + } else if (d === '휴무') { + txt = d; cls = 'holiday'; + } else { + txt = d; + } + } + } else { + txt = (isWe || isHo) ? '휴무' : ''; + cls = (isWe || isHo) ? 'holiday' : 'no-data'; + } + + row += `${txt}`; + } + + const usedTot = recsThisYear + .filter(r => ['연차','반차','반반차','조퇴'].includes(r.work_details)) + .reduce((s, r) => s + ( + r.work_details === '연차' ? 1 : + r.work_details === '반차' ? 0.5 : + r.work_details === '반반차' ? 0.25 : 0.75 + ), 0); + + const remain = (leaveDefaults[w.worker_name] || 0) - usedTot; + + row += `${otSum.toFixed(1)}`; + row += `${usedTot.toFixed(2)}${remain.toFixed(2)}`; + row += ``; + + tbl.insertAdjacentHTML('beforeend', row); + }); + + container.appendChild(tbl); +} + +// ✅ 초기 로딩 +fillSelectOptions(); +fetchWorkers().then(() => { + loadAttendance(); // 자동 조회 +}); +document.getElementById('loadAttendance').addEventListener('click', loadAttendance); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/auth-check.js b/deploy/tkfb-package/web-ui/js/auth-check.js new file mode 100644 index 0000000..de15476 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/auth-check.js @@ -0,0 +1,157 @@ +// /js/auth-check.js +// auth.js의 함수들을 직접 구현 (모듈 의존성 제거) + +function isLoggedIn() { + const token = localStorage.getItem('token'); + return token && token !== 'undefined' && token !== 'null'; +} + +function getUser() { + const user = localStorage.getItem('user'); + return user ? JSON.parse(user) : null; +} + +function clearAuthData() { + localStorage.removeItem('token'); + localStorage.removeItem('user'); + localStorage.removeItem('userPageAccess'); // 페이지 권한 캐시도 삭제 +} + +/** + * 현재 페이지의 page_key를 URL 경로로부터 추출 + * 예: /pages/work/tbm.html -> work.tbm + * /pages/admin/accounts.html -> admin.accounts + * /pages/dashboard.html -> dashboard + */ +function getCurrentPageKey() { + const path = window.location.pathname; + + // /pages/로 시작하는지 확인 + if (!path.startsWith('/pages/')) { + return null; + } + + // /pages/ 이후 경로 추출 + const pagePath = path.substring(7); // '/pages/' 제거 + + // .html 제거 + const withoutExt = pagePath.replace('.html', ''); + + // 슬래시를 점으로 변환 + const pageKey = withoutExt.replace(/\//g, '.'); + + return pageKey; +} + +/** + * 사용자의 페이지 접근 권한 확인 (캐시 활용) + */ +async function checkPageAccess(pageKey) { + const currentUser = getUser(); + + // Admin은 모든 페이지 접근 가능 + if (currentUser.role === 'Admin' || currentUser.role === 'System Admin') { + return true; + } + + // 프로필 페이지는 모든 사용자 접근 가능 + if (pageKey && pageKey.startsWith('profile.')) { + return true; + } + + // 대시보드는 모든 사용자 접근 가능 + if (pageKey === 'dashboard') { + return true; + } + + try { + // 캐시된 권한 확인 + const cached = localStorage.getItem('userPageAccess'); + let accessiblePages = null; + + if (cached) { + const cacheData = JSON.parse(cached); + // 캐시가 5분 이내인 경우 사용 + if (Date.now() - cacheData.timestamp < 5 * 60 * 1000) { + accessiblePages = cacheData.pages; + } + } + + // 캐시가 없으면 API 호출 + if (!accessiblePages) { + const response = await fetch(`${window.API_BASE_URL}/users/${currentUser.user_id}/page-access`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${localStorage.getItem('token')}` + } + }); + + if (!response.ok) { + console.error('페이지 권한 조회 실패:', response.status); + return false; + } + + const data = await response.json(); + accessiblePages = data.data.pageAccess || []; + + // 캐시 저장 + localStorage.setItem('userPageAccess', JSON.stringify({ + pages: accessiblePages, + timestamp: Date.now() + })); + } + + // 해당 페이지에 대한 접근 권한 확인 + const pageAccess = accessiblePages.find(p => p.page_key === pageKey); + return pageAccess && pageAccess.can_access === 1; + } catch (error) { + console.error('페이지 권한 체크 오류:', error); + return false; + } +} + +// 즉시 실행 함수로 스코프를 보호하고 로직을 실행 +(async function() { + if (!isLoggedIn()) { + console.log('🚨 인증되지 않은 사용자. 로그인 페이지로 이동합니다.'); + clearAuthData(); // 만약을 위해 한번 더 정리 + window.location.href = '/index.html'; + return; // 이후 코드 실행 방지 + } + + const currentUser = getUser(); + + // 사용자 정보가 유효한지 확인 (토큰은 있지만 유저 정보가 깨졌을 경우) + if (!currentUser || !currentUser.username) { + console.error('🚨 사용자 정보가 유효하지 않습니다. 강제 로그아웃 처리합니다.'); + clearAuthData(); + window.location.href = '/index.html'; + return; + } + + const userRole = currentUser.role || currentUser.access_level || '사용자'; + console.log(`✅ ${currentUser.username}(${userRole})님 인증 성공.`); + + // 페이지 접근 권한 체크 (Admin은 건너뛰기) + if (currentUser.role !== 'Admin' && currentUser.role !== 'System Admin') { + const pageKey = getCurrentPageKey(); + + if (pageKey) { + console.log(`🔍 페이지 권한 체크: ${pageKey}`); + const hasAccess = await checkPageAccess(pageKey); + + if (!hasAccess) { + console.error(`🚫 페이지 접근 권한이 없습니다: ${pageKey}`); + alert('이 페이지에 접근할 권한이 없습니다.'); + window.location.href = '/pages/dashboard.html'; + return; + } + + console.log(`✅ 페이지 접근 권한 확인됨: ${pageKey}`); + } + } + + // 역할 기반 메뉴 제어 로직은 각 컴포넌트 로더(load-navbar.js 등)로 이전함. + // 전역 변수 할당(window.currentUser) 제거. +})(); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/auth.js b/deploy/tkfb-package/web-ui/js/auth.js new file mode 100644 index 0000000..7a8e6e5 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/auth.js @@ -0,0 +1,76 @@ +// js/auth.js + +/** + * JWT 토큰을 디코딩하여 페이로드(내용)를 반환합니다. + * @param {string} token - JWT 토큰 + * @returns {object|null} - 디코딩된 페이로드 객체 또는 파싱 실패 시 null + */ +export function parseJwt(token) { + try { + // 토큰의 두 번째 부분(payload)을 base64 디코딩하고 JSON으로 파싱 + return JSON.parse(atob(token.split('.')[1])); + } catch (e) { + console.error("잘못된 토큰입니다.", e); + return null; + } +} + +/** + * localStorage에서 인증 토큰을 가져옵니다. + * @returns {string|null} - 저장된 토큰 또는 토큰이 없을 경우 null + */ +export function getToken() { + return localStorage.getItem('token'); +} + +/** + * localStorage에서 사용자 정보를 가져옵니다. + * @returns {object|null} - 저장된 사용자 객체 또는 정보가 없을 경우 null + */ +export function getUser() { + const user = localStorage.getItem('user'); + try { + return user ? JSON.parse(user) : null; + } catch(e) { + console.error("사용자 정보를 파싱하는 데 실패했습니다.", e); + return null; + } +} + +/** + * 로그인 성공 후 토큰과 사용자 정보를 localStorage에 저장합니다. + * @param {string} token - 서버에서 받은 JWT 토큰 + * @param {object} user - 서버에서 받은 사용자 정보 객체 + */ +export function saveAuthData(token, user) { + localStorage.setItem('token', token); + localStorage.setItem('user', JSON.stringify(user)); +} + +/** + * 로그아웃 시 localStorage에서 인증 정보를 제거합니다. + */ +export function clearAuthData() { + localStorage.removeItem('token'); + localStorage.removeItem('user'); +} + +/** + * 현재 사용자가 로그인 상태인지 확인합니다. + * @returns {boolean} - 로그인 상태이면 true, 아니면 false + */ +export function isLoggedIn() { + const token = getToken(); + if (!token) { + return false; + } + + // 선택 사항: 토큰 만료 여부 확인 로직 추가 가능 + // const payload = parseJwt(token); + // if (payload && payload.exp * 1000 > Date.now()) { + // return true; + // } + // return false; + + return !!token; +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/calendar.js b/deploy/tkfb-package/web-ui/js/calendar.js new file mode 100644 index 0000000..d5c591b --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/calendar.js @@ -0,0 +1,59 @@ +// ✅ /js/calendar.js +export function renderCalendar(containerId, onDateSelect) { + const container = document.getElementById(containerId); + if (!container) return; + + let currentDate = new Date(); + let selectedDateStr = ''; + + function drawCalendar(date) { + container.innerHTML = ''; + const year = date.getFullYear(); + const month = date.getMonth(); + const firstDay = new Date(year, month, 1).getDay(); + const lastDate = new Date(year, month + 1, 0).getDate(); + + const nav = document.createElement('div'); + nav.className = 'nav'; + const prev = document.createElement('button'); + prev.textContent = '◀'; + prev.addEventListener('click', () => { + currentDate = new Date(year, month - 1, 1); + drawCalendar(currentDate); + }); + const title = document.createElement('div'); + title.innerHTML = `${year}년 ${month + 1}월`; + const next = document.createElement('button'); + next.textContent = '▶'; + next.addEventListener('click', () => { + currentDate = new Date(year, month + 1, 1); + drawCalendar(currentDate); + }); + nav.append(prev, title, next); + container.appendChild(nav); + + ['일','월','화','수','목','금','토'].forEach(day => { + const el = document.createElement('div'); + el.innerHTML = `${day}`; + container.appendChild(el); + }); + + for (let i = 0; i < firstDay; i++) container.appendChild(document.createElement('div')); + + for (let i = 1; i <= lastDate; i++) { + const btn = document.createElement('button'); + const ymd = `${year}-${String(month + 1).padStart(2, '0')}-${String(i).padStart(2, '0')}`; + btn.textContent = i; + btn.className = (ymd === selectedDateStr) ? 'selected-date' : ''; + btn.addEventListener('click', () => { + selectedDateStr = ymd; + drawCalendar(currentDate); + onDateSelect(ymd); + }); + container.appendChild(btn); + } + } + + drawCalendar(currentDate); +} + diff --git a/deploy/tkfb-package/web-ui/js/change-password.js b/deploy/tkfb-package/web-ui/js/change-password.js new file mode 100644 index 0000000..4858a9e --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/change-password.js @@ -0,0 +1,211 @@ +// js/change-password.js +// 개인 비밀번호 변경 페이지 JavaScript + +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +const token = ensureAuthenticated(); + +// DOM 요소 +const form = document.getElementById('changePasswordForm'); +const messageArea = document.getElementById('message-area'); +const submitBtn = document.getElementById('submitBtn'); +const resetBtn = document.getElementById('resetBtn'); + +// 비밀번호 토글 기능 +document.querySelectorAll('.password-toggle').forEach(button => { + button.addEventListener('click', function() { + const targetId = this.getAttribute('data-target'); + const input = document.getElementById(targetId); + + if (input) { + const isPassword = input.type === 'password'; + input.type = isPassword ? 'text' : 'password'; + this.textContent = isPassword ? '👁️‍🗨️' : '👁️'; + } + }); +}); + +// 초기화 버튼 +resetBtn?.addEventListener('click', () => { + form.reset(); + clearMessages(); + document.getElementById('passwordStrength').innerHTML = ''; +}); + +// 메시지 표시 함수 +function showMessage(type, message) { + messageArea.innerHTML = ` +
+ ${type === 'error' ? '❌' : '✅'} ${message} +
+ `; + + // 에러 메시지는 5초 후 자동 제거 + if (type === 'error') { + setTimeout(clearMessages, 5000); + } +} + +function clearMessages() { + messageArea.innerHTML = ''; +} + +// 비밀번호 강도 체크 +async function checkPasswordStrength(password) { + if (!password) { + document.getElementById('passwordStrength').innerHTML = ''; + return; + } + + try { + const res = await fetch(`${API}/auth/check-password-strength`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ password }) + }); + + const result = await res.json(); + updatePasswordStrengthUI(result); + } catch (error) { + console.error('Password strength check error:', error); + } +} + +// 비밀번호 강도 UI 업데이트 +function updatePasswordStrengthUI(strength) { + const container = document.getElementById('passwordStrength'); + if (!container) return; + + const colors = { + 0: '#f44336', + 1: '#ff9800', + 2: '#ffc107', + 3: '#4caf50', + 4: '#2196f3' + }; + + const strengthText = strength.strengthText || '비밀번호를 입력하세요'; + const color = colors[strength.strength] || '#ccc'; + const percentage = (strength.score / strength.maxScore) * 100; + + container.innerHTML = ` +
+
+ + ${strengthText} + + + ${strength.score}/${strength.maxScore} + +
+
+
+
+ ${strength.feedback && strength.feedback.length > 0 ? ` +
    + ${strength.feedback.map(f => `
  • ${f}
  • `).join('')} +
+ ` : ''} +
+ `; +} + +// 비밀번호 입력 이벤트 +let strengthCheckTimer; +document.getElementById('newPassword')?.addEventListener('input', (e) => { + clearTimeout(strengthCheckTimer); + strengthCheckTimer = setTimeout(() => { + checkPasswordStrength(e.target.value); + }, 300); +}); + +// 폼 제출 +form?.addEventListener('submit', async (e) => { + e.preventDefault(); + clearMessages(); + + const currentPassword = document.getElementById('currentPassword').value; + const newPassword = document.getElementById('newPassword').value; + const confirmPassword = document.getElementById('confirmPassword').value; + + // 유효성 검사 + if (!currentPassword || !newPassword || !confirmPassword) { + showMessage('error', '모든 필드를 입력해주세요.'); + return; + } + + if (newPassword !== confirmPassword) { + showMessage('error', '새 비밀번호가 일치하지 않습니다.'); + return; + } + + if (newPassword.length < 6) { + showMessage('error', '비밀번호는 최소 6자 이상이어야 합니다.'); + return; + } + + if (currentPassword === newPassword) { + showMessage('error', '새 비밀번호는 현재 비밀번호와 달라야 합니다.'); + return; + } + + // 버튼 상태 변경 + const originalText = submitBtn.innerHTML; + submitBtn.disabled = true; + submitBtn.innerHTML = '처리 중...'; + + try { + const res = await fetch(`${API}/auth/change-password`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify({ + currentPassword, + newPassword + }) + }); + + const result = await res.json(); + + if (res.ok && result.success) { + showMessage('success', '비밀번호가 성공적으로 변경되었습니다.'); + form.reset(); + document.getElementById('passwordStrength').innerHTML = ''; + + // 카운트다운 시작 + let countdown = 3; + const countdownInterval = setInterval(() => { + showMessage('success', + `비밀번호가 변경되었습니다. ${countdown}초 후 로그인 페이지로 이동합니다.` + ); + countdown--; + + if (countdown < 0) { + clearInterval(countdownInterval); + localStorage.removeItem('token'); + localStorage.removeItem('user'); + window.location.href = '/index.html'; + } + }, 1000); + + } else { + const errorMessage = result.error || '비밀번호 변경에 실패했습니다.'; + showMessage('error', errorMessage); + } + } catch (error) { + console.error('Password change error:', error); + showMessage('error', '서버와의 연결에 실패했습니다. 잠시 후 다시 시도해주세요.'); + } finally { + submitBtn.disabled = false; + submitBtn.innerHTML = originalText; + } +}); + +// 페이지 로드 시 현재 사용자 정보 표시 +document.addEventListener('DOMContentLoaded', () => { + const user = JSON.parse(localStorage.getItem('user') || '{}'); + console.log('🔐 비밀번호 변경 페이지 로드됨'); + console.log('👤 현재 사용자:', user.username || 'Unknown'); +}); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/common/security.js b/deploy/tkfb-package/web-ui/js/common/security.js new file mode 100644 index 0000000..19304c4 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/common/security.js @@ -0,0 +1,259 @@ +/** + * Security Utilities - 보안 관련 유틸리티 함수 + * + * XSS 방지, 입력값 검증, 안전한 DOM 조작을 위한 함수 모음 + * + * @author TK-FB-Project + * @since 2026-02-04 + */ + +(function(global) { + 'use strict'; + + const SecurityUtils = { + /** + * HTML 특수문자 이스케이프 (XSS 방지) + * innerHTML에 사용자 입력을 삽입할 때 반드시 사용 + * + * @param {string} str - 이스케이프할 문자열 + * @returns {string} 이스케이프된 문자열 + * + * @example + * element.innerHTML = `${SecurityUtils.escapeHtml(userInput)}`; + */ + escapeHtml: function(str) { + if (str === null || str === undefined) return ''; + if (typeof str !== 'string') str = String(str); + + const htmlEntities = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '/': '/', + '`': '`', + '=': '=' + }; + + return str.replace(/[&<>"'`=\/]/g, function(char) { + return htmlEntities[char]; + }); + }, + + /** + * URL 파라미터 이스케이프 + * URL에 사용자 입력을 포함할 때 사용 + * + * @param {string} str - 이스케이프할 문자열 + * @returns {string} URL 인코딩된 문자열 + */ + escapeUrl: function(str) { + if (str === null || str === undefined) return ''; + return encodeURIComponent(String(str)); + }, + + /** + * JavaScript 문자열 이스케이프 + * 동적 JavaScript 생성 시 사용 (권장하지 않음) + * + * @param {string} str - 이스케이프할 문자열 + * @returns {string} 이스케이프된 문자열 + */ + escapeJs: function(str) { + if (str === null || str === undefined) return ''; + return String(str) + .replace(/\\/g, '\\\\') + .replace(/'/g, "\\'") + .replace(/"/g, '\\"') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + .replace(/\t/g, '\\t'); + }, + + /** + * 안전한 텍스트 설정 + * innerHTML 대신 textContent 사용 권장 + * + * @param {Element} element - DOM 요소 + * @param {string} text - 설정할 텍스트 + */ + setTextSafe: function(element, text) { + if (element && element.nodeType === 1) { + element.textContent = text; + } + }, + + /** + * 안전한 HTML 삽입 + * 사용자 입력이 포함된 HTML을 삽입할 때 사용 + * + * @param {Element} element - DOM 요소 + * @param {string} template - HTML 템플릿 ({{변수}} 형식) + * @param {Object} data - 삽입할 데이터 (자동 이스케이프됨) + * + * @example + * SecurityUtils.setHtmlSafe(div, '{{name}}', { name: userInput }); + */ + setHtmlSafe: function(element, template, data) { + if (!element || element.nodeType !== 1) return; + + const self = this; + const safeHtml = template.replace(/\{\{(\w+)\}\}/g, function(match, key) { + return data.hasOwnProperty(key) ? self.escapeHtml(data[key]) : ''; + }); + + element.innerHTML = safeHtml; + }, + + /** + * 입력값 검증 - 숫자 + * + * @param {any} value - 검증할 값 + * @param {Object} options - 옵션 { min, max, allowFloat } + * @returns {number|null} 유효한 숫자 또는 null + */ + validateNumber: function(value, options) { + options = options || {}; + const num = options.allowFloat ? parseFloat(value) : parseInt(value, 10); + + if (isNaN(num)) return null; + if (options.min !== undefined && num < options.min) return null; + if (options.max !== undefined && num > options.max) return null; + + return num; + }, + + /** + * 입력값 검증 - 이메일 + * + * @param {string} email - 검증할 이메일 + * @returns {boolean} 유효 여부 + */ + validateEmail: function(email) { + if (!email || typeof email !== 'string') return false; + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + return emailRegex.test(email); + }, + + /** + * 입력값 검증 - 길이 + * + * @param {string} str - 검증할 문자열 + * @param {Object} options - 옵션 { min, max } + * @returns {boolean} 유효 여부 + */ + validateLength: function(str, options) { + options = options || {}; + if (!str || typeof str !== 'string') return false; + + const len = str.length; + if (options.min !== undefined && len < options.min) return false; + if (options.max !== undefined && len > options.max) return false; + + return true; + }, + + /** + * 안전한 JSON 파싱 + * + * @param {string} jsonString - 파싱할 JSON 문자열 + * @param {any} defaultValue - 파싱 실패 시 기본값 + * @returns {any} 파싱된 객체 또는 기본값 + */ + parseJsonSafe: function(jsonString, defaultValue) { + defaultValue = defaultValue === undefined ? null : defaultValue; + try { + return JSON.parse(jsonString); + } catch (e) { + console.warn('[SecurityUtils] JSON 파싱 실패:', e.message); + return defaultValue; + } + }, + + /** + * localStorage에서 안전하게 데이터 가져오기 + * + * @param {string} key - 키 + * @param {any} defaultValue - 기본값 + * @returns {any} 저장된 값 또는 기본값 + */ + getStorageSafe: function(key, defaultValue) { + try { + const item = localStorage.getItem(key); + if (item === null) return defaultValue; + return this.parseJsonSafe(item, defaultValue); + } catch (e) { + console.warn('[SecurityUtils] localStorage 접근 실패:', e.message); + return defaultValue; + } + }, + + /** + * URL 파라미터 안전하게 가져오기 + * + * @param {string} name - 파라미터 이름 + * @param {string} defaultValue - 기본값 + * @returns {string} 파라미터 값 (이스케이프됨) + */ + getUrlParamSafe: function(name, defaultValue) { + defaultValue = defaultValue === undefined ? '' : defaultValue; + try { + const urlParams = new URLSearchParams(window.location.search); + const value = urlParams.get(name); + return value !== null ? value : defaultValue; + } catch (e) { + return defaultValue; + } + }, + + /** + * ID 파라미터 안전하게 가져오기 (숫자 검증) + * + * @param {string} name - 파라미터 이름 + * @returns {number|null} 유효한 ID 또는 null + */ + getIdParamSafe: function(name) { + const value = this.getUrlParamSafe(name); + return this.validateNumber(value, { min: 1 }); + }, + + /** + * Content Security Policy 위반 리포터 + * + * @param {string} reportUri - 리포트 전송 URL + */ + enableCspReporting: function(reportUri) { + document.addEventListener('securitypolicyviolation', function(e) { + console.error('[CSP Violation]', { + blockedUri: e.blockedURI, + violatedDirective: e.violatedDirective, + originalPolicy: e.originalPolicy + }); + + if (reportUri) { + fetch(reportUri, { + method: 'POST', + body: JSON.stringify({ + blocked_uri: e.blockedURI, + violated_directive: e.violatedDirective, + document_uri: e.documentURI, + timestamp: new Date().toISOString() + }), + headers: { 'Content-Type': 'application/json' } + }).catch(function() {}); + } + }); + } + }; + + // 전역 노출 + global.SecurityUtils = SecurityUtils; + + // 편의를 위한 단축 함수 + global.escapeHtml = SecurityUtils.escapeHtml.bind(SecurityUtils); + global.escapeUrl = SecurityUtils.escapeUrl.bind(SecurityUtils); + + console.log('[Module] common/security.js 로드 완료'); + +})(typeof window !== 'undefined' ? window : this); diff --git a/deploy/tkfb-package/web-ui/js/component-loader.js b/deploy/tkfb-package/web-ui/js/component-loader.js new file mode 100644 index 0000000..97eca11 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/component-loader.js @@ -0,0 +1,81 @@ +// /js/component-loader.js +import { config } from './config.js'; + +// 캐시 버전 (컴포넌트 변경 시 증가) +const CACHE_VERSION = 'v4'; + +/** + * 컴포넌트 HTML을 캐시에서 가져오거나 fetch + */ +async function getComponentHtml(componentName, componentPath) { + const cacheKey = `component_${componentName}_${CACHE_VERSION}`; + + // 캐시에서 먼저 확인 + const cached = sessionStorage.getItem(cacheKey); + if (cached) { + return cached; + } + + // 캐시 없으면 fetch + const response = await fetch(componentPath); + if (!response.ok) { + throw new Error(`컴포넌트 파일을 불러올 수 없습니다: ${response.statusText}`); + } + const htmlText = await response.text(); + + // 캐시에 저장 + try { + sessionStorage.setItem(cacheKey, htmlText); + } catch (e) { + // sessionStorage 용량 초과 시 무시 + } + + return htmlText; +} + +/** + * 공용 HTML 컴포넌트를 페이지의 특정 위치에 동적으로 로드합니다. + * @param {string} componentName - 로드할 컴포넌트의 이름 (e.g., 'sidebar', 'navbar'). config.js의 components 객체에 정의된 키와 일치해야 합니다. + * @param {string} containerSelector - 컴포넌트가 삽입될 DOM 요소의 CSS 선택자 (e.g., '#sidebar-container'). + * @param {function(Document): void} [domProcessor=null] - DOM에 삽입하기 전에 로드된 HTML(Document)을 조작하는 선택적 함수. + * (e.g., 역할 기반 메뉴 필터링) + */ +export async function loadComponent(componentName, containerSelector, domProcessor = null) { + const container = document.querySelector(containerSelector); + if (!container) { + console.warn(`⚠️ 컴포넌트를 삽입할 컨테이너를 찾을 수 없습니다: ${containerSelector} (선택사항일 수 있음)`); + return; + } + + const componentPath = config.components[componentName]; + if (!componentPath) { + console.error(`🔴 설정 파일(config.js)에서 '${componentName}' 컴포넌트의 경로를 찾을 수 없습니다.`); + container.innerHTML = `

${componentName} 로딩 실패

`; + return; + } + + try { + const htmlText = await getComponentHtml(componentName, componentPath); + + if (domProcessor) { + // 1. 텍스트를 가상 DOM으로 파싱 + const parser = new DOMParser(); + const doc = parser.parseFromString(htmlText, 'text/html'); + + // 2. DOM 프로세서(콜백)를 실행하여 DOM 조작 + await domProcessor(doc); + + // 3. 조작된 HTML을 실제 DOM에 삽입 + container.innerHTML = doc.body.innerHTML; + } else { + // DOM 조작이 필요 없는 경우, 바로 삽입 + container.innerHTML = htmlText; + } + + console.log(`✅ '${componentName}' 컴포넌트 로딩 완료: ${containerSelector}`); + + } catch (error) { + console.error(`🔴 '${componentName}' 컴포넌트 로딩 실패:`, error); + container.innerHTML = `

${componentName} 로딩에 실패했습니다. 관리자에게 문의하세요.

`; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/config.js b/deploy/tkfb-package/web-ui/js/config.js new file mode 100644 index 0000000..9fc26a9 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/config.js @@ -0,0 +1,33 @@ +// /js/config.js - Synology NAS 배포용 +// 이 파일을 web-ui/js/config.js로 복사하세요 + +export const config = { + // API 관련 설정 + api: { + // Synology NAS Docker 환경에서 사용하는 API 서버 포트 + port: 3005, + // API의 기본 경로 + path: '/api', + }, + + // 페이지 경로 설정 + paths: { + loginPage: '/index.html', + dashboard: '/pages/dashboard.html', + defaultDashboard: '/pages/dashboard.html', + systemDashboard: '/pages/dashboard.html', + groupLeaderDashboard: '/pages/dashboard.html', + }, + + // 공용 컴포넌트 경로 설정 + components: { + sidebar: '/components/sidebar.html', + 'sidebar-nav': '/components/sidebar-nav.html', + navbar: '/components/navbar.html', + }, + + // 애플리케이션 관련 기타 설정 + app: { + tokenRefreshInterval: 5 * 60 * 1000, + } +}; diff --git a/deploy/tkfb-package/web-ui/js/daily-issue-api.js b/deploy/tkfb-package/web-ui/js/daily-issue-api.js new file mode 100644 index 0000000..8a0e95b --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/daily-issue-api.js @@ -0,0 +1,71 @@ +// /js/daily-issue-api.js +import { apiGet, apiPost } from './api-helper.js'; + +/** + * 이슈 보고서 작성을 위해 필요한 초기 데이터(프로젝트, 이슈 유형)를 가져옵니다. + * @returns {Promise<{projects: Array, issueTypes: Array}>} + */ +export async function getInitialData() { + try { + const [projects, issueTypes] = await Promise.all([ + apiGet('/projects'), + apiGet('/issue-types') + ]); + return { projects, issueTypes }; + } catch (error) { + console.error('이슈 보고서 초기 데이터 로딩 실패:', error); + throw error; + } +} + +/** + * 특정 날짜에 근무한 작업자 목록을 가져옵니다. + * @param {string} date - 조회할 날짜 (YYYY-MM-DD) + * @returns {Promise} - 작업자 목록 + */ +export async function getWorkersByDate(date) { + try { + // 백엔드에 해당 날짜의 작업자 목록을 요청하는 API가 있다고 가정합니다. + // (예: /api/workers?work_date=YYYY-MM-DD) + // 현재는 기존 로직을 최대한 활용하여 구현합니다. + let workers = []; + const reports = await apiGet(`/daily-work-reports?date=${date}`); + + if (reports && reports.length > 0) { + const workerMap = new Map(); + reports.forEach(r => { + if (!workerMap.has(r.worker_id)) { + workerMap.set(r.worker_id, { worker_id: r.worker_id, worker_name: r.worker_name }); + } + }); + workers = Array.from(workerMap.values()); + } else { + // 보고서가 없으면 전체 작업자 목록을 가져옵니다. + const allWorkers = await apiGet('/workers'); + + // 활성화된 작업자만 필터링 + workers = allWorkers.filter(worker => { + return worker.status === 'active' || worker.is_active === 1 || worker.is_active === true; + }); + } + return workers.sort((a, b) => a.worker_name.localeCompare(b.worker_name)); + } catch (error) { + console.error(`${date}의 작업자 목록 로딩 실패:`, error); + throw error; + } +} + +/** + * 작성된 이슈 보고서 데이터를 서버에 전송합니다. + * @param {object} issueData - 전송할 이슈 데이터 + * @returns {Promise} - 서버 응답 결과 + */ +export async function createIssueReport(issueData) { + try { + const result = await apiPost('/issue-reports', issueData); + return result; + } catch (error) { + console.error('이슈 보고서 생성 요청 실패:', error); + throw error; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/daily-issue-ui.js b/deploy/tkfb-package/web-ui/js/daily-issue-ui.js new file mode 100644 index 0000000..c125ea8 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/daily-issue-ui.js @@ -0,0 +1,103 @@ +// /js/daily-issue-ui.js + +const DOM = { + dateSelect: document.getElementById('dateSelect'), + projectSelect: document.getElementById('projectSelect'), + issueTypeSelect: document.getElementById('issueTypeSelect'), + timeStart: document.getElementById('timeStart'), + timeEnd: document.getElementById('timeEnd'), + workerList: document.getElementById('workerList'), + form: document.getElementById('issueForm'), + submitBtn: document.getElementById('submitBtn'), +}; + +function createOption(value, text) { + const option = document.createElement('option'); + option.value = value; + option.textContent = text; + return option; +} + +export function populateProjects(projects) { + DOM.projectSelect.innerHTML = ''; + if (Array.isArray(projects)) { + projects.forEach(p => DOM.projectSelect.appendChild(createOption(p.project_id, p.project_name))); + } +} + +export function populateIssueTypes(issueTypes) { + DOM.issueTypeSelect.innerHTML = ''; + if (Array.isArray(issueTypes)) { + issueTypes.forEach(t => DOM.issueTypeSelect.appendChild(createOption(t.issue_type_id, `${t.category}:${t.subcategory}`))); + } +} + +export function populateTimeOptions() { + for (let h = 0; h < 24; h++) { + for (let m of [0, 30]) { + const time = `${String(h).padStart(2, '0')}:${m === 0 ? '00' : '30'}`; + DOM.timeStart.appendChild(createOption(time, time)); + DOM.timeEnd.appendChild(createOption(time, time.replace('00:00', '24:00'))); + } + } + DOM.timeEnd.value = "24:00"; // 기본값 설정 +} + +export function renderWorkerList(workers) { + DOM.workerList.innerHTML = ''; + if (!Array.isArray(workers) || workers.length === 0) { + DOM.workerList.textContent = '선택 가능한 작업자가 없습니다.'; + return; + } + workers.forEach(worker => { + const btn = document.createElement('button'); + btn.type = 'button'; + btn.className = 'btn'; + btn.textContent = worker.worker_name; + btn.dataset.id = worker.worker_id; + btn.addEventListener('click', () => btn.classList.toggle('selected')); + DOM.workerList.appendChild(btn); + }); +} + +export function getFormData() { + const selectedWorkers = [...DOM.workerList.querySelectorAll('.btn.selected')].map(b => b.dataset.id); + + if (selectedWorkers.length === 0) { + alert('작업자를 한 명 이상 선택해주세요.'); + return null; + } + if (DOM.timeEnd.value <= DOM.timeStart.value) { + alert('종료 시간은 시작 시간보다 이후여야 합니다.'); + return null; + } + + const formData = new FormData(DOM.form); + const data = { + date: formData.get('dateSelect'), // input name 속성이 없어 직접 가져옴 + project_id: DOM.projectSelect.value, + issue_type_id: DOM.issueTypeSelect.value, + start_time: DOM.timeStart.value, + end_time: DOM.timeEnd.value, + worker_ids: selectedWorkers, // worker_id -> worker_ids 로 명확하게 변경 + }; + + for (const key in data) { + if (!data[key] || (Array.isArray(data[key]) && data[key].length === 0)) { + alert('모든 필수 항목을 입력해주세요.'); + return null; + } + } + + return data; +} + +export function setSubmitButtonState(isLoading) { + if (isLoading) { + DOM.submitBtn.disabled = true; + DOM.submitBtn.textContent = '등록 중...'; + } else { + DOM.submitBtn.disabled = false; + DOM.submitBtn.textContent = '등록'; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/daily-issue.js b/deploy/tkfb-package/web-ui/js/daily-issue.js new file mode 100644 index 0000000..f7f024b --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/daily-issue.js @@ -0,0 +1,89 @@ +// /js/daily-issue.js + +import { getInitialData, getWorkersByDate, createIssueReport } from './daily-issue-api.js'; +import { + populateProjects, + populateIssueTypes, + populateTimeOptions, + renderWorkerList, + getFormData, + setSubmitButtonState +} from './daily-issue-ui.js'; + +const dateSelect = document.getElementById('dateSelect'); +const form = document.getElementById('issueForm'); + +/** + * 날짜가 변경될 때마다 해당 날짜의 작업자 목록을 다시 불러옵니다. + */ +async function handleDateChange() { + const selectedDate = dateSelect.value; + if (!selectedDate) { + document.getElementById('workerList').textContent = '날짜를 먼저 선택하세요.'; + return; + } + + document.getElementById('workerList').textContent = '작업자 목록을 불러오는 중...'; + try { + const workers = await getWorkersByDate(selectedDate); + renderWorkerList(workers); + } catch (error) { + document.getElementById('workerList').textContent = '작업자 목록 로딩에 실패했습니다.'; + } +} + +/** + * 폼 제출 이벤트를 처리합니다. + */ +async function handleSubmit(event) { + event.preventDefault(); + const issueData = getFormData(); + + if (!issueData) return; // 유효성 검사 실패 + + setSubmitButtonState(true); + try { + const result = await createIssueReport(issueData); + if (result.success) { + alert('✅ 이슈가 성공적으로 등록되었습니다.'); + form.reset(); // 폼 초기화 + dateSelect.value = new Date().toISOString().split('T')[0]; // 날짜 오늘로 리셋 + handleDateChange(); // 작업자 목록 새로고침 + } else { + throw new Error(result.error || '알 수 없는 오류가 발생했습니다.'); + } + } catch (error) { + alert(`🚨 등록 실패: ${error.message}`); + } finally { + setSubmitButtonState(false); + } +} + +/** + * 페이지 초기화 함수 + */ +async function initializePage() { + // 오늘 날짜 기본 설정 + dateSelect.value = new Date().toISOString().split('T')[0]; + + populateTimeOptions(); + + // 프로젝트, 이슈유형, 작업자 목록을 병렬로 로드 + try { + const [initialData] = await Promise.all([ + getInitialData(), + handleDateChange() // 초기 작업자 목록 로드 + ]); + populateProjects(initialData.projects); + populateIssueTypes(initialData.issueTypes); + } catch (error) { + alert('페이지 초기화 중 오류가 발생했습니다. 새로고침 해주세요.'); + } + + // 이벤트 리스너 설정 + dateSelect.addEventListener('change', handleDateChange); + form.addEventListener('submit', handleSubmit); +} + +// DOM이 로드되면 페이지 초기화를 시작합니다. +document.addEventListener('DOMContentLoaded', initializePage); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/daily-patrol.js b/deploy/tkfb-package/web-ui/js/daily-patrol.js new file mode 100644 index 0000000..cec5220 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/daily-patrol.js @@ -0,0 +1,1249 @@ +// daily-patrol.js - 일일순회점검 페이지 JavaScript + +// 전역 상태 +let currentSession = null; +let categories = []; // 공장(대분류) 목록 +let workplaces = []; // 작업장 목록 +let checklistItems = []; // 체크리스트 항목 +let checkRecords = {}; // 체크 기록 (workplace_id -> records) +let selectedWorkplace = null; +let itemTypes = []; // 물품 유형 +let workplaceItems = []; // 현재 작업장 물품 +let isItemEditMode = false; +let workplaceDetail = null; // 작업장 상세 정보 + +// XSS 방지를 위한 HTML 이스케이프 함수 +function escapeHtml(str) { + if (str === null || str === undefined) return ''; + return String(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +// 이미지 URL 헬퍼 함수 (정적 파일용 - /api 경로 제외) +function getImageUrl(path) { + if (!path) return ''; + // 이미 http로 시작하면 그대로 반환 + if (path.startsWith('http')) return path; + // API_BASE_URL에서 /api 제거하여 정적 파일 서버 URL 생성 + // /uploads 경로는 인증 없이 접근 가능한 정적 파일 경로 + const staticUrl = window.API_BASE_URL.replace(/\/api$/, ''); + return staticUrl + path; +} + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', async () => { + await waitForAxiosConfig(); + initializePage(); +}); + +// axios 설정 대기 +function waitForAxiosConfig() { + return new Promise((resolve) => { + const check = setInterval(() => { + if (axios.defaults.baseURL) { + clearInterval(check); + resolve(); + } + }, 50); + setTimeout(() => { + clearInterval(check); + resolve(); + }, 5000); + }); +} + +// 자동 날짜/시간대 결정 +function getAutoPatrolDateTime() { + const now = new Date(); + const patrolDate = now.toISOString().slice(0, 10); + const hour = now.getHours(); + // 오전(~12시), 오후(12시~) + const patrolTime = hour < 12 ? 'morning' : 'afternoon'; + return { patrolDate, patrolTime }; +} + +// 페이지 초기화 +async function initializePage() { + // 데이터 로드 + await Promise.all([ + loadCategories(), + loadItemTypes(), + loadTodayStatus() + ]); + + // 저장된 세션 상태 복원 (구역 상세에서 돌아온 경우) + await restoreSessionState(); +} + +// 세션 상태 저장 (페이지 이동 전) +function saveSessionState() { + if (currentSession) { + const state = { + session: currentSession, + categoryId: currentSession.category_id, + checkRecords: checkRecords, + timestamp: Date.now() + }; + sessionStorage.setItem('patrolSessionState', JSON.stringify(state)); + } +} + +// 세션 상태 복원 +async function restoreSessionState() { + const savedState = sessionStorage.getItem('patrolSessionState'); + if (!savedState) return; + + try { + const state = JSON.parse(savedState); + // 5분 이내의 상태만 복원 + if (Date.now() - state.timestamp > 5 * 60 * 1000) { + sessionStorage.removeItem('patrolSessionState'); + return; + } + + // categories가 비어있으면 복원 불가 + if (!categories || categories.length === 0) { + console.log('카테고리 목록이 없어 세션 복원 불가'); + sessionStorage.removeItem('patrolSessionState'); + return; + } + + // 해당 카테고리가 존재하는지 확인 + const category = categories.find(c => c.category_id == state.categoryId); + if (!category) { + console.log('저장된 카테고리를 찾을 수 없음:', state.categoryId); + sessionStorage.removeItem('patrolSessionState'); + return; + } + + // 세션 복원 + currentSession = state.session; + checkRecords = state.checkRecords || {}; + + // 작업장 목록 로드 + await loadWorkplaces(state.categoryId); + + // 체크리스트 항목 로드 + await loadChecklistItems(state.categoryId); + + // UI 표시 + document.getElementById('startPatrolBtn').style.display = 'none'; + document.getElementById('factorySelectionArea').style.display = 'none'; + document.getElementById('patrolArea').style.display = 'block'; + renderSessionInfo(); + renderWorkplaceMap(); + + console.log('세션 상태 복원 완료:', state.categoryId); + + // 복원 후 저장 상태 삭제 + sessionStorage.removeItem('patrolSessionState'); + } catch (error) { + console.error('세션 상태 복원 실패:', error); + sessionStorage.removeItem('patrolSessionState'); + } +} + +// 공장(대분류) 목록 로드 +async function loadCategories() { + try { + const response = await axios.get('/workplaces/categories'); + if (response.data.success) { + categories = response.data.data; + } + } catch (error) { + console.error('공장 목록 로드 실패:', error); + } +} + +// 공장 선택 화면 표시 +function showFactorySelection() { + const { patrolDate, patrolTime } = getAutoPatrolDateTime(); + const timeLabel = patrolTime === 'morning' ? '오전' : '오후'; + const dateObj = new Date(patrolDate); + const dateLabel = dateObj.toLocaleDateString('ko-KR', { month: 'long', day: 'numeric', weekday: 'short' }); + + // 세션 정보 표시 + document.getElementById('patrolSessionInfo').textContent = `${dateLabel} ${timeLabel} 순회점검`; + + // 공장 카드 렌더링 + const container = document.getElementById('factoryCardsContainer'); + container.innerHTML = categories.map(c => ` +
+
+ ${c.layout_image ? `${escapeHtml(c.category_name)}` : '🏭'} +
+
${escapeHtml(c.category_name)}
+
+ `).join(''); + + // 시작 버튼 숨기고 공장 선택 영역 표시 + document.getElementById('startPatrolBtn').style.display = 'none'; + document.getElementById('factorySelectionArea').style.display = 'block'; +} + +// 공장 선택 후 점검 시작 +async function selectFactory(categoryId) { + const { patrolDate, patrolTime } = getAutoPatrolDateTime(); + + try { + // 세션 생성 또는 조회 + const response = await axios.post('/patrol/sessions', { + patrol_date: patrolDate, + patrol_time: patrolTime, + category_id: categoryId + }); + + if (response.data.success) { + currentSession = response.data.data; + currentSession.patrol_date = patrolDate; + currentSession.patrol_time = patrolTime; + currentSession.category_id = categoryId; + + // 작업장 목록 로드 + await loadWorkplaces(categoryId); + + // 체크리스트 항목 로드 + await loadChecklistItems(categoryId); + + // 공장 선택 영역 숨기고 점검 영역 표시 + document.getElementById('factorySelectionArea').style.display = 'none'; + document.getElementById('patrolArea').style.display = 'block'; + renderSessionInfo(); + renderWorkplaceMap(); + } + } catch (error) { + console.error('순회점검 시작 실패:', error); + alert('순회점검을 시작할 수 없습니다.'); + } +} + +// 물품 유형 로드 +async function loadItemTypes() { + try { + const response = await axios.get('/patrol/item-types'); + if (response.data.success) { + itemTypes = response.data.data; + renderItemTypesSelect(); + renderItemsLegend(); + } + } catch (error) { + console.error('물품 유형 로드 실패:', error); + } +} + +// 오늘 점검 현황 로드 +async function loadTodayStatus() { + try { + const response = await axios.get('/patrol/today-status'); + if (response.data.success) { + renderTodayStatus(response.data.data); + } + } catch (error) { + console.error('오늘 현황 로드 실패:', error); + } +} + +// 오늘 점검 현황 렌더링 +function renderTodayStatus(statusList) { + const container = document.getElementById('todayStatusSummary'); + if (!statusList || statusList.length === 0) { + container.innerHTML = ` +
+
오전
+
미점검
+
+
+
오후
+
미점검
+
+ `; + return; + } + + const morning = statusList.find(s => s.patrol_time === 'morning'); + const afternoon = statusList.find(s => s.patrol_time === 'afternoon'); + + container.innerHTML = ` +
+
오전
+
+ ${morning ? (morning.status === 'completed' ? '완료' : '진행중') : '미점검'} +
+ ${morning ? `
${escapeHtml(morning.inspector_name || '')}
` : ''} +
+
+
오후
+
+ ${afternoon ? (afternoon.status === 'completed' ? '완료' : '진행중') : '미점검'} +
+ ${afternoon ? `
${escapeHtml(afternoon.inspector_name || '')}
` : ''} +
+ `; +} + + +// 작업장 목록 로드 +async function loadWorkplaces(categoryId) { + try { + // 작업장 목록 로드 + const response = await axios.get(`/workplaces?category_id=${categoryId}`); + if (response.data.success) { + workplaces = response.data.data; + } + + // 지도 영역(좌표) 로드 + try { + const regionsResponse = await axios.get(`/workplaces/categories/${categoryId}/map-regions`); + if (regionsResponse.data.success && regionsResponse.data.data) { + // 작업장에 좌표 정보 병합 + const regions = regionsResponse.data.data; + workplaces = workplaces.map(wp => { + const region = regions.find(r => r.workplace_id === wp.workplace_id); + if (region) { + // x_start, y_start를 x_percent, y_percent로 매핑 + return { + ...wp, + x_percent: region.x_start, + y_percent: region.y_start, + x_end: region.x_end, + y_end: region.y_end + }; + } + return wp; + }); + } + } catch (regError) { + console.log('지도 영역 로드 스킵:', regError.message); + } + } catch (error) { + console.error('작업장 목록 로드 실패:', error); + } +} + +// 체크리스트 항목 로드 +async function loadChecklistItems(categoryId) { + try { + const response = await axios.get(`/patrol/checklist?category_id=${categoryId}`); + if (response.data.success) { + checklistItems = response.data.data.items; + } + } catch (error) { + console.error('체크리스트 항목 로드 실패:', error); + } +} + +// 세션 정보 렌더링 +function renderSessionInfo() { + const container = document.getElementById('sessionInfo'); + const category = categories.find(c => c.category_id == currentSession.category_id); + const checkedCount = Object.values(checkRecords).flat().filter(r => r.is_checked).length; + const totalCount = workplaces.length * checklistItems.length; + const progress = totalCount > 0 ? Math.round(checkedCount / totalCount * 100) : 0; + + container.innerHTML = ` +
+
+ 점검일자 + ${escapeHtml(formatDate(currentSession.patrol_date))} +
+
+ 시간대 + ${currentSession.patrol_time === 'morning' ? '오전' : '오후'} +
+
+ 공장 + ${escapeHtml(category?.category_name || '')} +
+
+
+
+
+
+ ${parseInt(progress) || 0}% +
+ `; +} + +// 작업장 지도/목록 렌더링 +function renderWorkplaceMap() { + const mapContainer = document.getElementById('patrolMapContainer'); + const listContainer = document.getElementById('workplaceListContainer'); + const category = categories.find(c => c.category_id == currentSession.category_id); + + // 지도 이미지가 있으면 지도 표시 + if (category?.layout_image) { + mapContainer.innerHTML = `${escapeHtml(category.category_name)} 지도`; + mapContainer.style.display = 'block'; + + // 좌표가 있는 작업장만 마커 추가 + const hasMarkers = workplaces.some(wp => wp.x_percent !== undefined && wp.y_percent !== undefined); + + // 마커 위치 정보를 먼저 계산 + const markerData = workplaces + .filter(wp => wp.x_percent !== undefined && wp.y_percent !== undefined) + .map(wp => { + let centerX = parseFloat(wp.x_percent) || 0; + let centerY = parseFloat(wp.y_percent) || 0; + if (wp.x_end && wp.y_end) { + centerX = (parseFloat(wp.x_percent) + parseFloat(wp.x_end)) / 2; + centerY = (parseFloat(wp.y_percent) + parseFloat(wp.y_end)) / 2; + } + return { wp, centerX, centerY }; + }); + + // y좌표 기준 정렬 (아래에 있을수록 나중에 추가 = 위에 표시) + markerData.sort((a, b) => a.centerY - b.centerY); + + markerData.forEach((data, index) => { + const { wp, centerX, centerY } = data; + const marker = document.createElement('div'); + marker.className = 'workplace-marker'; + + // 밀집도 체크 - 근처에 다른 마커가 있으면 compact 클래스 추가 + const nearbyMarkers = markerData.filter(other => + other !== data && + Math.abs(other.centerX - centerX) < 12 && + Math.abs(other.centerY - centerY) < 12 + ); + if (nearbyMarkers.length > 0) { + marker.classList.add('compact'); + } + + marker.style.left = `${centerX}%`; + marker.style.top = `${centerY}%`; + // y좌표가 클수록 (아래쪽일수록) z-index가 높아서 위에 표시 + marker.style.zIndex = Math.floor(centerY) + 10; + marker.textContent = wp.workplace_name; + marker.dataset.workplaceId = wp.workplace_id; + marker.onclick = () => goToZoneDetail(wp.workplace_id); + + // 점검 상태에 따른 스타일 + const records = checkRecords[wp.workplace_id]; + if (records && records.some(r => r.is_checked)) { + marker.classList.add(records.every(r => r.is_checked) ? 'completed' : 'in-progress'); + } + + mapContainer.appendChild(marker); + }); + + // 좌표가 없는 작업장이 있으면 카드 목록도 표시 + const hasWorkplacesWithoutCoords = workplaces.some(wp => wp.x_percent === undefined || wp.y_percent === undefined); + if (!hasMarkers || hasWorkplacesWithoutCoords) { + listContainer.style.display = 'grid'; + renderWorkplaceCards(listContainer); + } else { + listContainer.style.display = 'none'; + } + } else { + // 지도 없으면 카드 목록으로 표시 + mapContainer.style.display = 'none'; + listContainer.style.display = 'grid'; + renderWorkplaceCards(listContainer); + } +} + +// 구역 상세 페이지로 이동 +function goToZoneDetail(workplaceId) { + // 현재 세션 상태 저장 + saveSessionState(); + window.location.href = `/pages/inspection/zone-detail.html?id=${workplaceId}`; +} + +// 작업장 카드 렌더링 +function renderWorkplaceCards(container) { + container.innerHTML = workplaces.map(wp => { + const records = checkRecords[wp.workplace_id]; + const isCompleted = records && records.length > 0 && records.every(r => r.is_checked); + const isInProgress = records && records.some(r => r.is_checked); + const workplaceId = parseInt(wp.workplace_id) || 0; + + return ` +
+
${escapeHtml(wp.workplace_name)}
+
+ ${isCompleted ? '점검완료' : (isInProgress ? '점검중' : '미점검')} +
+
+ `; + }).join(''); +} + +// 작업장 선택 +async function selectWorkplace(workplaceId) { + selectedWorkplace = workplaces.find(w => w.workplace_id === workplaceId); + + // 마커/카드 선택 상태 업데이트 + document.querySelectorAll('.workplace-marker, .workplace-card').forEach(el => { + el.classList.remove('selected'); + if (el.dataset.workplaceId == workplaceId) { + el.classList.add('selected'); + } + }); + + // 기존 체크 기록 로드 + if (!checkRecords[workplaceId]) { + try { + const response = await axios.get(`/patrol/sessions/${currentSession.session_id}/records?workplace_id=${workplaceId}`); + if (response.data.success) { + checkRecords[workplaceId] = response.data.data; + } + } catch (error) { + console.error('체크 기록 로드 실패:', error); + checkRecords[workplaceId] = []; + } + } + + // 체크리스트 렌더링 + renderChecklist(workplaceId); + + // 물품 현황 로드 및 표시 + await loadWorkplaceItems(workplaceId); + + // 작업장 상세 정보 로드 (신고, TBM, 출입 등) + await loadWorkplaceDetail(workplaceId); + + // 액션 버튼 표시 + document.getElementById('checklistActions').style.display = 'flex'; +} + +// 체크리스트 렌더링 +function renderChecklist(workplaceId) { + const header = document.getElementById('checklistHeader'); + const content = document.getElementById('checklistContent'); + const workplace = workplaces.find(w => w.workplace_id === workplaceId); + + header.innerHTML = ` +

${escapeHtml(workplace?.workplace_name || '')} 체크리스트

+

각 항목을 점검하고 체크해주세요

+ `; + + // 카테고리별 그룹화 + const grouped = {}; + checklistItems.forEach(item => { + if (!grouped[item.check_category]) { + grouped[item.check_category] = []; + } + grouped[item.check_category].push(item); + }); + + const records = checkRecords[workplaceId] || []; + + content.innerHTML = Object.entries(grouped).map(([category, items]) => ` +
+
${escapeHtml(getCategoryName(category))}
+ ${items.map(item => { + const record = records.find(r => r.check_item_id === item.item_id); + const isChecked = record?.is_checked; + const checkResult = record?.check_result; + const itemId = parseInt(item.item_id) || 0; + const wpId = parseInt(workplaceId) || 0; + + return ` +
+
+ ${isChecked ? '✓' : ''} +
+
+
+ ${escapeHtml(item.check_item)} + ${item.is_required ? '*' : ''} +
+ ${isChecked ? ` +
+ + + +
+ ` : ''} +
+
+ `; + }).join('')} +
+ `).join(''); +} + +// 카테고리명 변환 +function getCategoryName(code) { + const names = { + 'SAFETY': '안전', + 'ORGANIZATION': '정리정돈', + 'EQUIPMENT': '설비', + 'ENVIRONMENT': '환경' + }; + return names[code] || code; +} + +// 체크 항목 토글 +function toggleCheckItem(workplaceId, itemId) { + if (!checkRecords[workplaceId]) { + checkRecords[workplaceId] = []; + } + + const records = checkRecords[workplaceId]; + const existingIndex = records.findIndex(r => r.check_item_id === itemId); + + if (existingIndex >= 0) { + records[existingIndex].is_checked = !records[existingIndex].is_checked; + if (!records[existingIndex].is_checked) { + records[existingIndex].check_result = null; + } + } else { + records.push({ + check_item_id: itemId, + is_checked: true, + check_result: 'good', + note: null + }); + } + + renderChecklist(workplaceId); + renderWorkplaceMap(); + renderSessionInfo(); +} + +// 체크 결과 설정 +function setCheckResult(workplaceId, itemId, result) { + const records = checkRecords[workplaceId]; + const record = records.find(r => r.check_item_id === itemId); + if (record) { + record.check_result = result; + renderChecklist(workplaceId); + } +} + +// 임시 저장 +async function saveChecklistDraft() { + if (!selectedWorkplace) return; + + try { + const records = checkRecords[selectedWorkplace.workplace_id] || []; + await axios.post(`/patrol/sessions/${currentSession.session_id}/records/batch`, { + workplace_id: selectedWorkplace.workplace_id, + records: records + }); + alert('임시 저장되었습니다.'); + } catch (error) { + console.error('임시 저장 실패:', error); + alert('저장에 실패했습니다.'); + } +} + +// 저장 후 다음 +async function saveChecklist() { + if (!selectedWorkplace) return; + + try { + const records = checkRecords[selectedWorkplace.workplace_id] || []; + await axios.post(`/patrol/sessions/${currentSession.session_id}/records/batch`, { + workplace_id: selectedWorkplace.workplace_id, + records: records + }); + + // 다음 미점검 작업장으로 이동 + const currentIndex = workplaces.findIndex(w => w.workplace_id === selectedWorkplace.workplace_id); + const nextWorkplace = workplaces.slice(currentIndex + 1).find(w => { + const records = checkRecords[w.workplace_id]; + return !records || records.length === 0 || !records.every(r => r.is_checked); + }); + + if (nextWorkplace) { + selectWorkplace(nextWorkplace.workplace_id); + } else { + alert('모든 작업장 점검이 완료되었습니다!'); + } + } catch (error) { + console.error('저장 실패:', error); + alert('저장에 실패했습니다.'); + } +} + +// 순회점검 완료 +async function completePatrol() { + if (!currentSession) return; + + // 미점검 작업장 확인 + const uncheckedCount = workplaces.filter(w => { + const records = checkRecords[w.workplace_id]; + return !records || records.length === 0; + }).length; + + if (uncheckedCount > 0) { + if (!confirm(`아직 ${uncheckedCount}개 작업장이 미점검 상태입니다. 그래도 완료하시겠습니까?`)) { + return; + } + } + + try { + const notes = document.getElementById('patrolNotes').value; + if (notes) { + await axios.patch(`/patrol/sessions/${currentSession.session_id}/notes`, { notes }); + } + + await axios.patch(`/patrol/sessions/${currentSession.session_id}/complete`); + + alert('순회점검이 완료되었습니다.'); + location.reload(); + } catch (error) { + console.error('순회점검 완료 실패:', error); + alert('순회점검 완료에 실패했습니다.'); + } +} + +// ==================== 물품 현황 ==================== + +// 작업장 물품 로드 +async function loadWorkplaceItems(workplaceId) { + try { + const response = await axios.get(`/patrol/workplaces/${workplaceId}/items`); + if (response.data.success) { + workplaceItems = response.data.data; + renderItemsSection(workplaceId); + } + } catch (error) { + console.error('물품 로드 실패:', error); + workplaceItems = []; + } +} + +// 물품 섹션 렌더링 +function renderItemsSection(workplaceId) { + const section = document.getElementById('itemsSection'); + const workplace = workplaces.find(w => w.workplace_id === workplaceId); + const container = document.getElementById('itemsMapContainer'); + + document.getElementById('selectedWorkplaceName').textContent = workplace?.workplace_name || ''; + + // 작업장 레이아웃 이미지가 있으면 표시 + if (workplace?.layout_image) { + container.innerHTML = `${escapeHtml(workplace.workplace_name)}`; + + // 물품 마커 추가 + workplaceItems.forEach(item => { + if (item.x_percent && item.y_percent) { + const marker = document.createElement('div'); + // item_type은 화이트리스트로 검증 + const safeItemType = ['container', 'plate', 'material', 'tool', 'other'].includes(item.item_type) ? item.item_type : 'other'; + marker.className = `item-marker ${safeItemType}`; + marker.style.left = `${parseFloat(item.x_percent) || 0}%`; + marker.style.top = `${parseFloat(item.y_percent) || 0}%`; + marker.style.width = `${parseFloat(item.width_percent) || 5}%`; + marker.style.height = `${parseFloat(item.height_percent) || 5}%`; + marker.textContent = item.icon || getItemTypeIcon(item.item_type); // textContent 사용 + marker.title = `${item.item_name || item.type_name} (${parseInt(item.quantity) || 0}개)`; + marker.dataset.itemId = item.item_id; + marker.onclick = () => openItemModal(item); + container.appendChild(marker); + } + }); + } else { + container.innerHTML = '

작업장 레이아웃 이미지가 없습니다.

'; + } + + section.style.display = 'block'; +} + +// 물품 유형 아이콘 +function getItemTypeIcon(typeCode) { + const icons = { + 'container': '📦', + 'plate': '🔲', + 'material': '🧱', + 'tool': '🔧', + 'other': '📍' + }; + return icons[typeCode] || '📍'; +} + +// 물품 유형 셀렉트 렌더링 +function renderItemTypesSelect() { + const select = document.getElementById('itemType'); + if (!select) return; + select.innerHTML = itemTypes.map(t => + `` + ).join(''); +} + +// 물품 범례 렌더링 +function renderItemsLegend() { + const container = document.getElementById('itemsLegend'); + if (!container) return; + // 색상 값 검증 (hex color만 허용) + const isValidColor = (color) => /^#[0-9A-Fa-f]{3,6}$/.test(color); + container.innerHTML = itemTypes.map(t => { + const safeColor = isValidColor(t.color) ? t.color : '#888888'; + return ` +
+
+ ${escapeHtml(t.icon)} +
+ ${escapeHtml(t.type_name)} +
+ `; + }).join(''); +} + +// 편집 모드 토글 +function toggleItemEditMode() { + isItemEditMode = !isItemEditMode; + document.getElementById('itemEditModeText').textContent = isItemEditMode ? '편집모드 종료' : '편집모드'; + + if (isItemEditMode) { + // 지도 클릭으로 물품 추가 + const container = document.getElementById('itemsMapContainer'); + container.style.cursor = 'crosshair'; + container.onclick = (e) => { + if (e.target === container || e.target.tagName === 'IMG') { + const rect = container.getBoundingClientRect(); + const x = ((e.clientX - rect.left) / rect.width * 100).toFixed(2); + const y = ((e.clientY - rect.top) / rect.height * 100).toFixed(2); + openItemModal(null, x, y); + } + }; + } else { + const container = document.getElementById('itemsMapContainer'); + container.style.cursor = 'default'; + container.onclick = null; + } +} + +// 물품 모달 열기 +function openItemModal(item = null, x = null, y = null) { + const modal = document.getElementById('itemModal'); + const title = document.getElementById('itemModalTitle'); + const deleteBtn = document.getElementById('deleteItemBtn'); + + if (item) { + title.textContent = '물품 수정'; + document.getElementById('itemId').value = item.item_id; + document.getElementById('itemType').value = item.item_type; + document.getElementById('itemName').value = item.item_name || ''; + document.getElementById('itemQuantity').value = item.quantity || 1; + deleteBtn.style.display = 'inline-block'; + } else { + title.textContent = '물품 추가'; + document.getElementById('itemForm').reset(); + document.getElementById('itemId').value = ''; + document.getElementById('itemId').dataset.x = x; + document.getElementById('itemId').dataset.y = y; + deleteBtn.style.display = 'none'; + } + + modal.style.display = 'flex'; +} + +// 물품 모달 닫기 +function closeItemModal() { + document.getElementById('itemModal').style.display = 'none'; +} + +// 물품 저장 +async function saveItem() { + if (!selectedWorkplace) return; + + const itemId = document.getElementById('itemId').value; + const data = { + item_type: document.getElementById('itemType').value, + item_name: document.getElementById('itemName').value, + quantity: parseInt(document.getElementById('itemQuantity').value) || 1, + patrol_session_id: currentSession?.session_id + }; + + // 새 물품일 경우 위치 추가 + if (!itemId) { + data.x_percent = parseFloat(document.getElementById('itemId').dataset.x); + data.y_percent = parseFloat(document.getElementById('itemId').dataset.y); + data.width_percent = 5; + data.height_percent = 5; + } + + try { + if (itemId) { + await axios.put(`/patrol/items/${itemId}`, data); + } else { + await axios.post(`/patrol/workplaces/${selectedWorkplace.workplace_id}/items`, data); + } + + closeItemModal(); + await loadWorkplaceItems(selectedWorkplace.workplace_id); + } catch (error) { + console.error('물품 저장 실패:', error); + alert('물품 저장에 실패했습니다.'); + } +} + +// 물품 삭제 +async function deleteItem() { + const itemId = document.getElementById('itemId').value; + if (!itemId) return; + + if (!confirm('이 물품을 삭제하시겠습니까?')) return; + + try { + await axios.delete(`/patrol/items/${itemId}`); + closeItemModal(); + await loadWorkplaceItems(selectedWorkplace.workplace_id); + } catch (error) { + console.error('물품 삭제 실패:', error); + alert('물품 삭제에 실패했습니다.'); + } +} + +// 유틸리티 함수 +function formatDate(dateStr) { + if (!dateStr) return ''; + const date = new Date(dateStr); + return date.toLocaleDateString('ko-KR', { year: 'numeric', month: 'long', day: 'numeric', weekday: 'short' }); +} + +// ESC 키로 모달 닫기 +document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') { + closeItemModal(); + closeWorkplaceDetailPanel(); + } +}); + +// ==================== 작업장 상세 정보 패널 ==================== + +// 작업장 상세 정보 로드 +async function loadWorkplaceDetail(workplaceId) { + try { + const today = new Date().toISOString().slice(0, 10); + const response = await axios.get(`/patrol/workplaces/${workplaceId}/detail?date=${today}`); + if (response.data.success) { + workplaceDetail = response.data.data; + renderWorkplaceDetailPanel(); + } + } catch (error) { + console.error('작업장 상세 정보 로드 실패:', error); + // 에러 발생 시에도 기본 패널 표시 + workplaceDetail = null; + renderWorkplaceDetailPanel(); + } +} + +// 상세 정보 패널 렌더링 +function renderWorkplaceDetailPanel() { + let panel = document.getElementById('workplaceDetailPanel'); + if (!panel) { + panel = document.createElement('div'); + panel.id = 'workplaceDetailPanel'; + panel.className = 'workplace-detail-panel'; + document.body.appendChild(panel); + } + + if (!workplaceDetail || !selectedWorkplace) { + panel.style.display = 'none'; + return; + } + + const { workplace, equipments, repairRequests, workIssues, visitRecords, tbmSessions, recentPatrol, summary } = workplaceDetail; + + panel.innerHTML = ` +
+
+

${escapeHtml(workplace.workplace_name)}

+ ${escapeHtml(workplace.category_name || '')} +
+ +
+ +
+
+ ${summary.equipmentCount} + 설비 +
+
+ ${summary.pendingRepairs} + 수리요청 +
+
+ ${summary.openIssues} + 미해결 신고 +
+
+ ${summary.todayVisitors} + 금일 방문자 +
+
+ ${summary.todayTbmSessions} + 금일 TBM +
+
+ +
+ + + + +
+ +
+ +
+ ${renderIssuesTab(workIssues)} +
+ + +
+ ${renderEquipmentTab(equipments, repairRequests)} +
+ + +
+ ${renderVisitsTab(visitRecords)} +
+ + +
+ ${renderTbmTab(tbmSessions)} +
+
+ `; + + panel.style.display = 'flex'; +} + +// 신고/부적합 탭 렌더링 +function renderIssuesTab(workIssues) { + if (!workIssues.all.length) { + return `
최근 30일간 신고 내역이 없습니다.
`; + } + + const safetyIssues = workIssues.safety; + const nonconformityIssues = workIssues.nonconformity; + + let html = ''; + + if (safetyIssues.length > 0) { + html += ` +
+

🛡️ 안전 신고 (${safetyIssues.length})

+ ${safetyIssues.map(issue => renderIssueItem(issue)).join('')} +
+ `; + } + + if (nonconformityIssues.length > 0) { + html += ` +
+

⚠️ 부적합 사항 (${nonconformityIssues.length})

+ ${nonconformityIssues.map(issue => renderIssueItem(issue)).join('')} +
+ `; + } + + return html || `
신고 내역이 없습니다.
`; +} + +// 신고 항목 렌더링 +function renderIssueItem(issue) { + const statusColors = { + 'pending': 'pending', + 'received': 'info', + 'in_progress': 'warning', + 'completed': 'success', + 'closed': 'muted' + }; + const statusLabels = { + 'pending': '대기', + 'received': '접수', + 'in_progress': '처리중', + 'completed': '완료', + 'closed': '종료' + }; + const severityLabels = { + 'low': '경미', + 'medium': '보통', + 'high': '중요', + 'critical': '긴급' + }; + + return ` +
+
+ ${escapeHtml(issue.title)} + ${statusLabels[issue.status] || issue.status} +
+
+ ${escapeHtml(issue.category_name || '')} + ${severityLabels[issue.severity] || ''} + ${formatDateTime(issue.created_at)} +
+ ${issue.description ? `
${escapeHtml(issue.description).slice(0, 100)}${issue.description.length > 100 ? '...' : ''}
` : ''} +
신고자: ${escapeHtml(issue.reporter_name || '익명')}
+
+ `; +} + +// 설비 탭 렌더링 +function renderEquipmentTab(equipments, repairRequests) { + let html = ''; + + // 수리 요청 먼저 표시 + if (repairRequests.length > 0) { + html += ` +
+

🔧 수리 요청 (${repairRequests.length})

+ ${repairRequests.map(req => ` +
+
+ ${escapeHtml(req.equipment_name)} (${escapeHtml(req.equipment_code)}) + ${getPriorityLabel(req.priority)} +
+
${escapeHtml(req.repair_category)}
+
${escapeHtml(req.description || '')}
+
${formatDate(req.request_date)}
+
+ `).join('')} +
+ `; + } + + // 설비 목록 + if (equipments.length > 0) { + html += ` +
+

📦 설비 현황 (${equipments.length})

+
+ ${equipments.map(eq => ` +
+ ${escapeHtml(eq.equipment_name)} + ${escapeHtml(eq.equipment_code)} + ${getEquipmentStatusLabel(eq.status)} +
+ `).join('')} +
+
+ `; + } else { + html += `
등록된 설비가 없습니다.
`; + } + + return html; +} + +// 출입 탭 렌더링 +function renderVisitsTab(visitRecords) { + if (!visitRecords.length) { + return `
금일 승인된 방문자가 없습니다.
`; + } + + return ` +
+ ${visitRecords.map(visit => ` +
+
+ ${escapeHtml(visit.visitor_name)} + ${escapeHtml(visit.visitor_company || '')} +
+
${escapeHtml(visit.purpose_name || visit.visit_purpose || '')}
+
+ 🕐 ${escapeHtml(visit.visit_time_from || '')} ~ ${escapeHtml(visit.visit_time_to || '')} +
+ ${visit.companion_count > 0 ? `
동행 ${visit.companion_count}명
` : ''} + ${visit.vehicle_number ? `
🚗 ${escapeHtml(visit.vehicle_number)}
` : ''} +
+ `).join('')} +
+ `; +} + +// TBM 탭 렌더링 +function renderTbmTab(tbmSessions) { + if (!tbmSessions.length) { + return `
금일 TBM 세션이 없습니다.
`; + } + + return ` +
+ ${tbmSessions.map(tbm => ` +
+
+ ${escapeHtml(tbm.task_name || tbm.work_type_name || '작업')} + ${getTbmStatusLabel(tbm.status)} +
+
📍 ${escapeHtml(tbm.work_location || '')}
+
👷 ${escapeHtml(tbm.leader_name || tbm.leader_worker_name || '')}
+ ${tbm.work_content ? `
작업내용: ${escapeHtml(tbm.work_content).slice(0, 80)}...
` : ''} + ${tbm.team && tbm.team.length > 0 ? ` +
+ 팀원 (${tbm.team.length}명): + ${tbm.team.map(m => escapeHtml(m.worker_name)).join(', ')} +
+ ` : ''} + ${tbm.safety_measures ? `
⚠️ ${escapeHtml(tbm.safety_measures).slice(0, 60)}...
` : ''} +
+ `).join('')} +
+ `; +} + +// 탭 전환 +function switchDetailTab(tabName) { + // 탭 버튼 활성화 + document.querySelectorAll('.detail-tab').forEach(tab => { + tab.classList.toggle('active', tab.dataset.tab === tabName); + }); + // 탭 콘텐츠 표시 + document.querySelectorAll('.detail-tab-content').forEach(content => { + content.classList.toggle('active', content.id === `tab-${tabName}`); + }); +} + +// 상세 패널 닫기 +function closeWorkplaceDetailPanel() { + const panel = document.getElementById('workplaceDetailPanel'); + if (panel) { + panel.style.display = 'none'; + } + workplaceDetail = null; +} + +// 헬퍼 함수들 +function getPriorityLabel(priority) { + const labels = { 'emergency': '긴급', 'high': '높음', 'normal': '보통', 'low': '낮음' }; + return labels[priority] || priority; +} + +function getEquipmentStatusLabel(status) { + const labels = { + 'active': '정상', + 'inactive': '비활성', + 'repair_needed': '수리필요', + 'under_repair': '수리중', + 'disposed': '폐기' + }; + return labels[status] || status; +} + +function getTbmStatusLabel(status) { + const labels = { 'draft': '작성중', 'in_progress': '진행중', 'completed': '완료' }; + return labels[status] || status; +} + +function formatDateTime(dateStr) { + if (!dateStr) return ''; + const date = new Date(dateStr); + return date.toLocaleString('ko-KR', { month: 'numeric', day: 'numeric', hour: '2-digit', minute: '2-digit' }); +} diff --git a/deploy/tkfb-package/web-ui/js/daily-work-report.js b/deploy/tkfb-package/web-ui/js/daily-work-report.js new file mode 100644 index 0000000..836f133 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/daily-work-report.js @@ -0,0 +1,4106 @@ +// daily-work-report.js - 브라우저 호환 버전 + +// ================================================================= +// 🌐 API 설정 (window 객체에서 가져오기) +// ================================================================= +// API 설정은 api-config.js에서 window 객체에 설정됨 + +// 전역 변수 +let workTypes = []; +let workStatusTypes = []; +let errorTypes = []; // 레거시 호환용 +let issueCategories = []; // 신고 카테고리 (nonconformity) +let issueItems = []; // 신고 아이템 +let workers = []; +let projects = []; +let selectedWorkers = new Set(); +let workEntryCounter = 0; +let currentStep = 1; +let editingWorkId = null; // 수정 중인 작업 ID +let incompleteTbms = []; // 미완료 TBM 작업 목록 +let currentTab = 'tbm'; // 현재 활성 탭 + +// 부적합 원인 관리 +let currentDefectIndex = null; // 현재 편집 중인 행 인덱스 +let tempDefects = {}; // 임시 부적합 원인 저장 { index: [{ error_type_id, defect_hours, note }] } + +// 작업장소 지도 관련 변수 +let mapCanvas = null; +let mapCtx = null; +let mapImage = null; +let mapRegions = []; +let selectedWorkplace = null; +let selectedWorkplaceName = null; +let selectedWorkplaceCategory = null; +let selectedWorkplaceCategoryName = null; + +// 시간 선택 관련 변수 +let currentEditingField = null; // { index, type: 'total' | 'error' } +let currentTimeValue = 0; + +// 당일 신고 리마인더 관련 변수 +let dailyIssuesCache = {}; // { 'YYYY-MM-DD': [issues] } - 날짜별 신고 캐시 + +// ================================================================= +// TBM 작업보고 관련 함수 +// ================================================================= + +/** + * 탭 전환 함수 + */ +window.switchTab = function(tab) { + currentTab = tab; + const tbmBtn = document.getElementById('tbmReportTab'); + const completedBtn = document.getElementById('completedReportTab'); + const tbmSection = document.getElementById('tbmReportSection'); + const completedSection = document.getElementById('completedReportSection'); + + // 모든 탭 버튼 비활성화 + tbmBtn.classList.remove('active'); + completedBtn.classList.remove('active'); + + // 모든 섹션 숨기기 + tbmSection.style.display = 'none'; + completedSection.style.display = 'none'; + + // 선택된 탭 활성화 + if (tab === 'tbm') { + tbmBtn.classList.add('active'); + tbmSection.style.display = 'block'; + loadIncompleteTbms(); // TBM 목록 로드 + } else if (tab === 'completed') { + completedBtn.classList.add('active'); + completedSection.style.display = 'block'; + + // 오늘 날짜로 초기화 + document.getElementById('completedReportDate').value = getKoreaToday(); + loadCompletedReports(); + } +}; + +/** + * 미완료 TBM 작업 로드 + */ +async function loadIncompleteTbms() { + try { + const response = await window.apiCall('/tbm/sessions/incomplete-reports'); + + if (!response.success) { + throw new Error(response.message || '미완료 TBM 조회 실패'); + } + + let data = response.data || []; + + // 사용자 권한 확인 및 필터링 + const user = getUser(); + if (user && user.role !== 'Admin' && user.access_level !== 'system') { + // 일반 사용자: 자신이 생성한 세션만 표시 + const userId = user.user_id; + data = data.filter(tbm => tbm.created_by === userId); + } + // 관리자는 모든 데이터 표시 + + incompleteTbms = data; + + // 각 세션 날짜에 대해 관련 신고 조회 + await loadDailyIssuesForTbms(); + + renderTbmWorkList(); + } catch (error) { + console.error('미완료 TBM 로드 오류:', error); + showMessage('TBM 작업 목록을 불러오는 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * TBM 세션들에 대한 당일 신고 조회 + * - 각 세션 날짜별로 관련 신고를 가져와서 캐시에 저장 + */ +async function loadDailyIssuesForTbms() { + if (!incompleteTbms || incompleteTbms.length === 0) { + console.log('[작업보고서] 미완료 TBM 없음, 신고 조회 건너뜀'); + return; + } + + console.log('[작업보고서] TBM 세션 수:', incompleteTbms.length); + + // 세션별로 고유한 날짜 + 작업장 조합 수집 + const sessionKeys = new Set(); + incompleteTbms.forEach(tbm => { + const dateStr = formatDateForApi(tbm.session_date); + console.log('[작업보고서] TBM 세션 날짜:', tbm.session_date, '→ 변환:', dateStr); + if (dateStr) { + // 날짜_작업장ID_프로젝트ID 형태로 키 생성 + const key = `${dateStr}_${tbm.workplace_id || 0}_${tbm.project_id || 0}`; + sessionKeys.add(key); + } + }); + + // 각 날짜에 대해 신고 조회 + const uniqueDates = [...new Set([...sessionKeys].map(k => k.split('_')[0]))]; + console.log('[작업보고서] 조회할 날짜들:', uniqueDates); + + for (const dateStr of uniqueDates) { + if (dailyIssuesCache[dateStr]) { + console.log(`[작업보고서] 캐시 사용 (${dateStr}):`, dailyIssuesCache[dateStr].length, '건'); + continue; + } + + try { + console.log(`[작업보고서] 신고 API 호출: /work-issues?start_date=${dateStr}&end_date=${dateStr}`); + const response = await window.apiCall(`/work-issues?start_date=${dateStr}&end_date=${dateStr}`); + if (response.success) { + dailyIssuesCache[dateStr] = response.data || []; + console.log(`[작업보고서] 신고 로드 완료 (${dateStr}):`, dailyIssuesCache[dateStr].length, '건'); + } else { + console.warn(`[작업보고서] 신고 API 실패:`, response); + dailyIssuesCache[dateStr] = []; + } + } catch (error) { + console.error(`[작업보고서] 신고 조회 오류 (${dateStr}):`, error); + dailyIssuesCache[dateStr] = []; + } + } + + console.log('[작업보고서] 전체 신고 캐시:', dailyIssuesCache); +} + +/** + * 특정 날짜의 모든 신고 반환 (작업장소 관계없이) + * - 참고용으로 해당 날짜에 발생한 모든 신고를 표시 + * @param {string} dateStr - 날짜 (YYYY-MM-DD) + * @param {number} workplaceId - 작업장소 ID (현재 미사용, 향후 하이라이트 용도) + * @param {number} projectId - 프로젝트 ID (현재 미사용) + * @returns {Array} 해당 날짜의 모든 신고 목록 + */ +function getRelatedIssues(dateStr, workplaceId, projectId) { + const issues = dailyIssuesCache[dateStr] || []; + + // 해당 날짜의 모든 신고를 반환 (작업장소 필터 제거) + // 사용자가 참고하여 관련 여부를 직접 판단하도록 함 + return issues; +} + +/** + * 날짜를 API 형식(YYYY-MM-DD)으로 변환 - 로컬 시간대 기준 + */ +function formatDateForApi(date) { + if (!date) return null; + + let dateObj; + if (date instanceof Date) { + dateObj = date; + } else if (typeof date === 'string') { + // 문자열인 경우 Date 객체로 변환 + dateObj = new Date(date); + } else { + return null; + } + + // 로컬 시간대 기준으로 날짜 추출 (UTC 변환 방지) + const year = dateObj.getFullYear(); + const month = String(dateObj.getMonth() + 1).padStart(2, '0'); + const day = String(dateObj.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; +} + +/** + * 사용자 정보 가져오기 (auth-check.js와 동일한 로직) + */ +function getUser() { + const user = localStorage.getItem('user'); + return user ? JSON.parse(user) : null; +} + +/** + * TBM 작업 목록 렌더링 (날짜별 > 세션별 그룹화) + * - 날짜별로 접기/펼치기 가능 + * - 날짜 헤더에 이슈 요약 표시 + */ +function renderTbmWorkList() { + const container = document.getElementById('tbmWorkList'); + + // 1단계: 날짜별로 그룹화 + const byDate = {}; + if (incompleteTbms && incompleteTbms.length > 0) { + incompleteTbms.forEach((tbm, index) => { + const dateStr = formatDateForApi(tbm.session_date); + if (!byDate[dateStr]) { + byDate[dateStr] = { + date: tbm.session_date, + sessions: {} + }; + } + // 2단계: 날짜 내에서 세션별로 그룹화 + const sessionKey = `${tbm.session_id}_${dateStr}`; + if (!byDate[dateStr].sessions[sessionKey]) { + byDate[dateStr].sessions[sessionKey] = { + session_id: tbm.session_id, + session_date: tbm.session_date, + created_by_name: tbm.created_by_name, + items: [] + }; + } + byDate[dateStr].sessions[sessionKey].items.push({ ...tbm, originalIndex: index }); + }); + } + + // 날짜 정렬 (최신순) + const sortedDates = Object.keys(byDate).sort((a, b) => new Date(b) - new Date(a)); + + // 레거시 호환: 기존 groupedTbms 구조도 유지 + const groupedTbms = {}; + sortedDates.forEach(dateStr => { + Object.assign(groupedTbms, byDate[dateStr].sessions); + }); + + let html = ` +
+

작업보고서 목록

+ +
+ `; + + // 수동 입력 섹션 먼저 추가 (맨 위) + html += ` +
+
+
+ 수동 입력 + TBM에 없는 작업을 추가로 입력할 수 있습니다 +
+ +
+
+ + + + + + + + + + + + + + + + + +
작업자날짜프로젝트공정작업작업장소작업시간부적합제출
+
+
+ `; + + // 날짜별로 테이블 생성 (접기/펼치기 가능) + sortedDates.forEach((dateStr, dateIndex) => { + const dateData = byDate[dateStr]; + const sessions = Object.values(dateData.sessions); + const totalWorkers = sessions.reduce((sum, s) => sum + s.items.length, 0); + + // 해당 날짜의 모든 신고 조회 + const relatedIssues = getRelatedIssues(dateStr); + const nonconformityCount = relatedIssues.filter(i => i.category_type === 'nonconformity').length; + const safetyCount = relatedIssues.filter(i => i.category_type === 'safety').length; + const hasIssues = relatedIssues.length > 0; + + // 요일 계산 + const dayNames = ['일', '월', '화', '수', '목', '금', '토']; + const dayOfWeek = dayNames[new Date(dateStr).getDay()]; + + // 오늘 날짜인지 확인 + const today = formatDateForApi(new Date()); + const isToday = dateStr === today; + + // 날짜 그룹 시작 (기본적으로 오늘만 펼침) + const isExpanded = isToday || dateIndex === 0; + + html += ` +
+
+
+ ${isExpanded ? '▼' : '▶'} + ${formatDate(dateData.date)} (${dayOfWeek}) + ${isToday ? '오늘' : ''} +
+
+ 세션 ${sessions.length}개 + 작업자 ${totalWorkers}명 +
+
+ ${hasIssues ? ` +
+ ${nonconformityCount > 0 ? `부적합 ${nonconformityCount}` : ''} + ${safetyCount > 0 ? `안전 ${safetyCount}` : ''} +
+ ` : '신고 없음'} +
+
+ +
+ `; + + // 신고 리마인더 HTML 생성 (날짜 그룹 내부) + if (hasIssues) { + html += ` +
+
+ ⚠️ + 당일 신고된 문제 + ${relatedIssues.length}건 +
+
+ ${relatedIssues.slice(0, 5).map(issue => { + // 아이템명과 추가설명 조합 + let itemText = issue.issue_item_name || ''; + if (issue.additional_description) { + itemText = itemText ? `${itemText} - ${issue.additional_description}` : issue.additional_description; + } + return ` +
+ ${issue.category_type === 'safety' ? '안전' : '부적합'} + ${issue.issue_category_name || ''} + ${itemText || '-'} + ${issue.workplace_name || issue.custom_location || ''} + ${getStatusLabel(issue.status)} +
+ `}).join('')} + ${relatedIssues.length > 5 ? `
외 ${relatedIssues.length - 5}건 더 있음
` : ''} +
+
+ 💡 위 문제로 인해 작업이 지연되었다면, 아래에서 부적합 시간을 추가해주세요. +
+
+ `; + } + + // 해당 날짜의 각 세션별로 테이블 생성 + sessions.forEach(group => { + const key = `${group.session_id}_${dateStr}`; + + html += ` +
+
+ TBM 세션 + 작성자: ${group.created_by_name} + ${group.items.length}명 +
+
+ + + + + + + + + + + + + + + ${group.items.map(tbm => { + const index = tbm.originalIndex; + // 이 작업자의 작업장소와 관련된 이슈가 있는지 확인 (부적합 버튼 강조용) + const hasRelatedIssue = relatedIssues.some(issue => { + if (issue.category_type !== 'nonconformity') return false; + // 작업장소 매칭 + if (tbm.workplace_id && issue.workplace_id) { + return tbm.workplace_id === issue.workplace_id; + } + if (tbm.workplace_name && (issue.workplace_name || issue.custom_location)) { + const issueLocation = issue.workplace_name || issue.custom_location || ''; + return issueLocation.includes(tbm.workplace_name) || tbm.workplace_name.includes(issueLocation); + } + return false; + }); + return ` + + + + + + + + + + + + + + `; + }).join('')} + +
작업자프로젝트공정작업작업장소작업시간부적합제출
+
+ ${tbm.worker_name || '작업자'} +
${tbm.job_type || '-'}
+
+
${tbm.project_name || '-'}${tbm.work_type_name || '-'}${tbm.task_name || '-'} +
+
${tbm.category_name || ''}
+
${tbm.workplace_name || '-'}
+
+
+ +
+ 시간 선택 +
+
+ + + + + +
+
+
+ +
+
+ `; + }); + + // 날짜 그룹 닫기 + html += ` +
+
+ `; + }); + + container.innerHTML = html; +} + +/** + * 날짜 그룹 접기/펼치기 토글 + */ +window.toggleDateGroup = function(dateStr) { + const group = document.querySelector(`.date-group[data-date="${dateStr}"]`); + if (!group) return; + + const content = group.querySelector('.date-group-content'); + const icon = group.querySelector('.date-toggle-icon'); + const isExpanded = group.classList.contains('expanded'); + + if (isExpanded) { + group.classList.remove('expanded'); + group.classList.add('collapsed'); + content.style.display = 'none'; + icon.textContent = '▶'; + } else { + group.classList.remove('collapsed'); + group.classList.add('expanded'); + content.style.display = 'block'; + icon.textContent = '▼'; + } +}; + +/** + * 부적합 시간 입력 처리 + */ +window.calculateRegularHours = function(index) { + const errorInput = document.getElementById(`errorHours_${index}`); + const errorTypeSelect = document.getElementById(`errorType_${index}`); + const errorTypeNone = document.getElementById(`errorTypeNone_${index}`); + + const errorHours = parseFloat(errorInput.value) || 0; + + // 부적합 시간이 있으면 원인 선택 표시 + if (errorHours > 0) { + errorTypeSelect.style.display = 'inline-block'; + if (errorTypeNone) errorTypeNone.style.display = 'none'; + } else { + errorTypeSelect.style.display = 'none'; + if (errorTypeNone) errorTypeNone.style.display = 'inline'; + } +}; + +/** + * TBM 작업보고서 제출 + */ +window.submitTbmWorkReport = async function(index) { + const tbm = incompleteTbms[index]; + + const totalHours = parseFloat(document.getElementById(`totalHours_${index}`).value); + const defects = tempDefects[index] || []; + + // 총 부적합 시간 계산 + const errorHours = defects.reduce((sum, d) => sum + (parseFloat(d.defect_hours) || 0), 0); + // item_id를 error_type_id로 사용 (issue_report_items.item_id) + const errorTypeId = defects.length > 0 ? (defects[0].error_type_id || defects[0].item_id || null) : null; + + // 필수 필드 검증 + if (!totalHours || totalHours <= 0) { + showMessage('작업시간을 입력해주세요.', 'error'); + return; + } + + if (errorHours > totalHours) { + showMessage('부적합 처리 시간은 총 작업시간을 초과할 수 없습니다.', 'error'); + return; + } + + // 부적합 원인 유효성 검사 (issue_report_id 또는 category_id 또는 error_type_id 필요) + console.log('🔍 부적합 검증 시작:', defects.map(d => ({ + defect_hours: d.defect_hours, + category_id: d.category_id, + item_id: d.item_id, + error_type_id: d.error_type_id, + issue_report_id: d.issue_report_id, + _saved: d._saved + }))); + + const invalidDefects = defects.filter(d => d.defect_hours > 0 && !d.error_type_id && !d.issue_report_id && !d.category_id && !d.item_id); + if (invalidDefects.length > 0) { + console.error('❌ 유효하지 않은 부적합:', invalidDefects); + showMessage('부적합 시간이 있는 항목은 원인을 선택해주세요.', 'error'); + return; + } + + // 날짜를 YYYY-MM-DD 형식으로 변환 + const reportDate = tbm.session_date instanceof Date + ? tbm.session_date.toISOString().split('T')[0] + : (typeof tbm.session_date === 'string' && tbm.session_date.includes('T') + ? tbm.session_date.split('T')[0] + : tbm.session_date); + + const reportData = { + tbm_assignment_id: tbm.assignment_id, + tbm_session_id: tbm.session_id, + worker_id: tbm.worker_id, + project_id: tbm.project_id, + work_type_id: tbm.task_id, // task_id를 work_type_id 컬럼에 저장 (직접 작업보고서와 일관성 유지) + report_date: reportDate, + start_time: null, + end_time: null, + total_hours: totalHours, + error_hours: errorHours, + error_type_id: errorTypeId, + work_status_id: errorHours > 0 ? 2 : 1 + }; + + console.log('🔍 TBM 제출 데이터:', JSON.stringify(reportData, null, 2)); + console.log('🔍 부적합 원인:', defects); + + try { + const response = await window.apiCall('/daily-work-reports/from-tbm', 'POST', reportData); + + if (!response.success) { + throw new Error(response.message || '작업보고서 제출 실패'); + } + + // 부적합 원인이 있으면 저장 (이슈 기반 또는 레거시) + if (defects.length > 0 && response.data?.report_id) { + const validDefects = defects.filter(d => (d.issue_report_id || d.category_id || d.item_id || d.error_type_id) && d.defect_hours > 0); + console.log('📋 부적합 원인 필터링:', { + 전체: defects.length, + 유효: validDefects.length, + validDefects: validDefects.map(d => ({ + category_id: d.category_id, + item_id: d.item_id, + defect_hours: d.defect_hours, + _saved: d._saved + })) + }); + + if (validDefects.length > 0) { + // 내부 플래그 제거 (백엔드 전송용) + const defectsToSend = validDefects.map(d => ({ + issue_report_id: d.issue_report_id || null, + category_id: d.category_id || null, + item_id: d.item_id || null, + error_type_id: d.error_type_id || null, + defect_hours: d.defect_hours, + note: d.note || '' + })); + + console.log('📤 부적합 저장 요청:', defectsToSend); + + const defectResponse = await window.apiCall(`/daily-work-reports/${response.data.report_id}/defects`, 'PUT', { + defects: defectsToSend + }); + + if (!defectResponse.success) { + console.error('❌ 부적합 저장 실패:', defectResponse); + showMessage('작업보고서는 저장되었으나 부적합 원인 저장에 실패했습니다.', 'warning'); + } else { + console.log('✅ 부적합 저장 성공:', defectResponse); + } + } else { + console.log('⚠️ 유효한 부적합 항목이 없어 저장 건너뜀'); + } + } + + showSaveResultModal( + 'success', + '작업보고서 제출 완료', + `${tbm.worker_name}의 작업보고서가 성공적으로 제출되었습니다.`, + response.data.tbm_completed ? + '모든 팀원의 작업보고서가 제출되어 TBM이 완료되었습니다.' : + response.data.completion_status + ); + + // 임시 부적합 데이터 삭제 + delete tempDefects[index]; + + // 목록 새로고침 + await loadIncompleteTbms(); + } catch (error) { + console.error('TBM 작업보고서 제출 오류:', error); + showSaveResultModal('error', '제출 실패', error.message); + } +}; + +/** + * TBM 세션 일괄제출 + */ +window.batchSubmitTbmSession = async function(sessionKey) { + // 해당 세션의 모든 항목 가져오기 + const sessionRows = document.querySelectorAll(`tr[data-session-key="${sessionKey}"]`); + + if (sessionRows.length === 0) { + showMessage('제출할 항목이 없습니다.', 'error'); + return; + } + + // 1단계: 모든 항목 검증 + const validationErrors = []; + const itemsToSubmit = []; + + sessionRows.forEach((row, rowIndex) => { + const index = parseInt(row.getAttribute('data-index')); + const tbm = incompleteTbms[index]; + + const totalHours = parseFloat(document.getElementById(`totalHours_${index}`)?.value); + const errorHours = parseFloat(document.getElementById(`errorHours_${index}`)?.value) || 0; + const errorTypeId = document.getElementById(`errorType_${index}`)?.value; + + // 검증 + if (!totalHours || totalHours <= 0) { + validationErrors.push(`${tbm.worker_name}: 작업시간 미입력`); + return; + } + + if (errorHours > totalHours) { + validationErrors.push(`${tbm.worker_name}: 부적합 시간이 총 작업시간 초과`); + return; + } + + if (errorHours > 0 && !errorTypeId) { + validationErrors.push(`${tbm.worker_name}: 부적합 원인 미선택`); + return; + } + + // 검증 통과한 항목 저장 + const reportDate = tbm.session_date instanceof Date + ? tbm.session_date.toISOString().split('T')[0] + : (typeof tbm.session_date === 'string' && tbm.session_date.includes('T') + ? tbm.session_date.split('T')[0] + : tbm.session_date); + + itemsToSubmit.push({ + index, + tbm, + data: { + tbm_assignment_id: tbm.assignment_id, + tbm_session_id: tbm.session_id, + worker_id: tbm.worker_id, + project_id: tbm.project_id, + work_type_id: tbm.task_id, // task_id를 work_type_id 컬럼에 저장 (일관성 유지) + report_date: reportDate, + start_time: null, + end_time: null, + total_hours: totalHours, + error_hours: errorHours, + error_type_id: errorTypeId || null, + work_status_id: errorHours > 0 ? 2 : 1 + } + }); + }); + + // 검증 실패가 하나라도 있으면 전체 중단 + if (validationErrors.length > 0) { + showSaveResultModal( + 'error', + '일괄제출 검증 실패', + '모든 항목이 유효해야 제출할 수 있습니다.', + validationErrors + ); + return; + } + + // 2단계: 모든 항목 제출 + const submitBtn = event.target; + submitBtn.disabled = true; + submitBtn.textContent = '제출 중...'; + + const results = { + success: [], + failed: [] + }; + + try { + for (const item of itemsToSubmit) { + try { + const response = await window.apiCall('/daily-work-reports/from-tbm', 'POST', item.data); + + if (response.success) { + results.success.push(item.tbm.worker_name); + } else { + results.failed.push(`${item.tbm.worker_name}: ${response.message}`); + } + } catch (error) { + results.failed.push(`${item.tbm.worker_name}: ${error.message}`); + } + } + + // 결과 표시 + const totalCount = itemsToSubmit.length; + const successCount = results.success.length; + const failedCount = results.failed.length; + + if (failedCount === 0) { + // 모두 성공 + showSaveResultModal( + 'success', + '일괄제출 완료', + `${totalCount}건의 작업보고서가 모두 성공적으로 제출되었습니다.`, + results.success.map(name => `✓ ${name}`) + ); + } else if (successCount === 0) { + // 모두 실패 + showSaveResultModal( + 'error', + '일괄제출 실패', + `${totalCount}건의 작업보고서가 모두 실패했습니다.`, + results.failed.map(msg => `✗ ${msg}`) + ); + } else { + // 일부 성공, 일부 실패 + const details = [ + ...results.success.map(name => `✓ ${name} - 성공`), + ...results.failed.map(msg => `✗ ${msg}`) + ]; + showSaveResultModal( + 'warning', + '일괄제출 부분 완료', + `성공: ${successCount}건 / 실패: ${failedCount}건`, + details + ); + } + + // 목록 새로고침 + await loadIncompleteTbms(); + } catch (error) { + console.error('일괄제출 오류:', error); + showSaveResultModal('error', '일괄제출 오류', error.message); + } finally { + submitBtn.disabled = false; + submitBtn.textContent = `📤 이 세션 일괄제출 (${sessionRows.length}건)`; + } +}; + +/** + * 수동 작업 추가 + */ +window.addManualWorkRow = function() { + const tbody = document.getElementById('manualWorkTableBody'); + if (!tbody) { + showMessage('수동 입력 테이블을 찾을 수 없습니다.', 'error'); + return; + } + + const manualIndex = `manual_${workEntryCounter++}`; + + const newRow = document.createElement('tr'); + newRow.setAttribute('data-index', manualIndex); + newRow.setAttribute('data-type', 'manual'); + + newRow.innerHTML = ` + + + + + + + + + + + + + + + + + + +
+
+ 🗺️ + 작업장소 +
+
+ 클릭하여 선택 +
+
+ + + +
+ 시간 선택 +
+ + + + + + + + + + + `; + + tbody.appendChild(newRow); + + // 부적합 인라인 영역 행 추가 + const defectRow = document.createElement('tr'); + defectRow.className = 'defect-row'; + defectRow.id = `defectRow_${manualIndex}`; + defectRow.style.display = 'none'; + defectRow.innerHTML = ` + +
+
+ +
+ +
+ + `; + tbody.appendChild(defectRow); + + showMessage('새 작업 행이 추가되었습니다. 정보를 입력하고 제출하세요.', 'info'); +}; + +/** + * 수동 작업 행 제거 + */ +window.removeManualWorkRow = function(manualIndex) { + const row = document.querySelector(`tr[data-index="${manualIndex}"]`); + const defectRow = document.getElementById(`defectRow_${manualIndex}`); + if (row) { + row.remove(); + } + if (defectRow) { + defectRow.remove(); + } + // 임시 부적합 데이터도 삭제 + delete tempDefects[manualIndex]; +}; + +/** + * 공정 선택 시 작업 목록 로드 + */ +window.loadTasksForWorkType = async function(manualIndex) { + const workTypeId = document.getElementById(`workType_${manualIndex}`).value; + const taskSelect = document.getElementById(`task_${manualIndex}`); + + if (!workTypeId) { + taskSelect.disabled = true; + taskSelect.innerHTML = ''; + return; + } + + try { + // 해당 공정의 작업 목록 조회 + const response = await window.apiCall(`/tasks?work_type_id=${workTypeId}`); + const tasks = response.success ? response.data : (Array.isArray(response) ? response : []); + + if (tasks && tasks.length > 0) { + taskSelect.disabled = false; + taskSelect.innerHTML = ` + + ${tasks.map(task => ``).join('')} + `; + } else { + taskSelect.disabled = true; + taskSelect.innerHTML = ''; + } + } catch (error) { + console.error('작업 목록 로드 오류:', error); + taskSelect.disabled = true; + taskSelect.innerHTML = ''; + } +}; + +/** + * 수동 입력 부적합 시간 토글 + */ +window.toggleManualErrorType = function(manualIndex) { + const errorInput = document.getElementById(`errorHours_${manualIndex}`); + const errorTypeSelect = document.getElementById(`errorType_${manualIndex}`); + const errorTypeNone = document.getElementById(`errorTypeNone_${manualIndex}`); + + const errorHours = parseFloat(errorInput.value) || 0; + + if (errorHours > 0) { + errorTypeSelect.style.display = 'inline-block'; + if (errorTypeNone) errorTypeNone.style.display = 'none'; + } else { + errorTypeSelect.style.display = 'none'; + if (errorTypeNone) errorTypeNone.style.display = 'inline'; + } +}; + +/** + * 수동 입력용 작업장소 선택 모달 열기 + */ +window.openWorkplaceMapForManual = async function(manualIndex) { + window.currentManualIndex = manualIndex; + + // 변수 초기화 + selectedWorkplace = null; + selectedWorkplaceName = null; + selectedWorkplaceCategory = null; + selectedWorkplaceCategoryName = null; + + try { + // 작업장소 카테고리 로드 + const categoriesResponse = await window.apiCall('/workplaces/categories'); + const categories = categoriesResponse.success ? categoriesResponse.data : categoriesResponse; + + // 작업장소 모달 표시 + const modal = document.getElementById('workplaceModal'); + const categoryList = document.getElementById('workplaceCategoryList'); + + categoryList.innerHTML = categories.map(cat => { + const safeId = parseInt(cat.category_id) || 0; + const safeName = escapeHtml(cat.category_name); + const safeImage = escapeHtml(cat.layout_image || ''); + return ` + + `; + }).join('') + ` + + `; + + // 카테고리 선택 화면 표시 + document.getElementById('categorySelectionArea').style.display = 'block'; + document.getElementById('workplaceSelectionArea').style.display = 'none'; + + modal.style.display = 'flex'; + } catch (error) { + console.error('작업장소 카테고리 로드 오류:', error); + showMessage('작업장소 목록을 불러오는 중 오류가 발생했습니다.', 'error'); + } +}; + +/** + * 작업장소 카테고리 선택 + */ +window.selectWorkplaceCategory = async function(categoryId, categoryName, layoutImage) { + selectedWorkplaceCategory = categoryId; + selectedWorkplaceCategoryName = categoryName; + + try { + // 타이틀 업데이트 + document.getElementById('selectedCategoryTitle').textContent = `${categoryName} - 작업장 선택`; + + // 카테고리 화면 숨기고 작업장 선택 화면 표시 + document.getElementById('categorySelectionArea').style.display = 'none'; + document.getElementById('workplaceSelectionArea').style.display = 'block'; + + // 해당 카테고리의 작업장소 로드 + const workplacesResponse = await window.apiCall(`/workplaces?category_id=${categoryId}`); + const workplaces = workplacesResponse.success ? workplacesResponse.data : workplacesResponse; + + // 지도 또는 리스트 로드 + if (layoutImage && layoutImage !== '') { + // 지도가 있는 경우 - 지도 영역 표시 + await loadWorkplaceMap(categoryId, layoutImage, workplaces); + document.getElementById('layoutMapArea').style.display = 'block'; + } else { + // 지도가 없는 경우 - 리스트만 표시 + document.getElementById('layoutMapArea').style.display = 'none'; + } + + // 리스트 항상 표시 + const workplaceListArea = document.getElementById('workplaceListArea'); + workplaceListArea.innerHTML = workplaces.map(wp => { + const safeId = parseInt(wp.workplace_id) || 0; + const safeName = escapeHtml(wp.workplace_name); + return ` + + `; + }).join(''); + + } catch (error) { + console.error('작업장소 로드 오류:', error); + showMessage('작업장소를 불러오는 중 오류가 발생했습니다.', 'error'); + } +}; + +/** + * 작업장소 지도 로드 + */ +async function loadWorkplaceMap(categoryId, layoutImagePath, workplaces) { + try { + mapCanvas = document.getElementById('workplaceMapCanvas'); + if (!mapCanvas) return; + + mapCtx = mapCanvas.getContext('2d'); + + // 이미지 URL 생성 + const baseUrl = window.API_BASE_URL || 'http://localhost:20005'; + const apiBaseUrl = baseUrl.replace('/api', ''); // /api 제거 + const fullImageUrl = layoutImagePath.startsWith('http') + ? layoutImagePath + : `${apiBaseUrl}${layoutImagePath}`; + + console.log('🖼️ 이미지 로드 시도:', fullImageUrl); + + // 지도 영역 데이터 로드 + const regionsResponse = await window.apiCall(`/workplaces/categories/${categoryId}/map-regions`); + if (regionsResponse && regionsResponse.success) { + mapRegions = regionsResponse.data || []; + } else { + mapRegions = []; + } + + // 이미지 로드 + mapImage = new Image(); + mapImage.crossOrigin = 'anonymous'; + + mapImage.onload = function() { + // 캔버스 크기 설정 (최대 너비 800px) + const maxWidth = 800; + const scale = mapImage.width > maxWidth ? maxWidth / mapImage.width : 1; + + mapCanvas.width = mapImage.width * scale; + mapCanvas.height = mapImage.height * scale; + + // 이미지와 영역 그리기 + drawWorkplaceMap(); + + // 클릭 이벤트 리스너 추가 + mapCanvas.onclick = handleMapClick; + + console.log(`✅ 작업장 지도 로드 완료: ${mapRegions.length}개 영역`); + }; + + mapImage.onerror = function() { + console.error('❌ 지도 이미지 로드 실패'); + document.getElementById('layoutMapArea').style.display = 'none'; + showMessage('지도를 불러올 수 없어 리스트로 표시합니다.', 'warning'); + }; + + mapImage.src = fullImageUrl; + + } catch (error) { + console.error('❌ 작업장 지도 로드 오류:', error); + document.getElementById('layoutMapArea').style.display = 'none'; + } +} + +/** + * 지도 그리기 + */ +function drawWorkplaceMap() { + if (!mapCanvas || !mapCtx || !mapImage) return; + + // 이미지 그리기 + mapCtx.drawImage(mapImage, 0, 0, mapCanvas.width, mapCanvas.height); + + // 각 영역 그리기 + mapRegions.forEach((region) => { + // 퍼센트를 픽셀로 변환 + const x1 = (region.x_start / 100) * mapCanvas.width; + const y1 = (region.y_start / 100) * mapCanvas.height; + const x2 = (region.x_end / 100) * mapCanvas.width; + const y2 = (region.y_end / 100) * mapCanvas.height; + + const width = x2 - x1; + const height = y2 - y1; + + // 선택된 영역인지 확인 + const isSelected = region.workplace_id === selectedWorkplace; + + // 영역 테두리 + mapCtx.strokeStyle = isSelected ? '#3b82f6' : '#10b981'; + mapCtx.lineWidth = isSelected ? 4 : 2; + mapCtx.strokeRect(x1, y1, width, height); + + // 영역 배경 (반투명) + mapCtx.fillStyle = isSelected ? 'rgba(59, 130, 246, 0.25)' : 'rgba(16, 185, 129, 0.15)'; + mapCtx.fillRect(x1, y1, width, height); + + // 작업장 이름 표시 + if (region.workplace_name) { + mapCtx.font = 'bold 14px sans-serif'; + + // 텍스트 배경 + const textMetrics = mapCtx.measureText(region.workplace_name); + const textPadding = 6; + mapCtx.fillStyle = isSelected ? 'rgba(59, 130, 246, 0.95)' : 'rgba(16, 185, 129, 0.95)'; + mapCtx.fillRect(x1 + 5, y1 + 5, textMetrics.width + textPadding * 2, 24); + + // 텍스트 + mapCtx.fillStyle = '#ffffff'; + mapCtx.fillText(region.workplace_name, x1 + 5 + textPadding, y1 + 22); + } + }); +} + +/** + * 지도 클릭 이벤트 처리 + */ +function handleMapClick(event) { + if (!mapCanvas || mapRegions.length === 0) return; + + const rect = mapCanvas.getBoundingClientRect(); + const x = event.clientX - rect.left; + const y = event.clientY - rect.top; + + // 클릭한 위치에 있는 영역 찾기 + for (let i = mapRegions.length - 1; i >= 0; i--) { + const region = mapRegions[i]; + const x1 = (region.x_start / 100) * mapCanvas.width; + const y1 = (region.y_start / 100) * mapCanvas.height; + const x2 = (region.x_end / 100) * mapCanvas.width; + const y2 = (region.y_end / 100) * mapCanvas.height; + + if (x >= x1 && x <= x2 && y >= y1 && y <= y2) { + // 영역 클릭됨 + selectWorkplaceFromList(region.workplace_id, region.workplace_name); + return; + } + } +} + +/** + * 리스트에서 작업장소 선택 + */ +window.selectWorkplaceFromList = function(workplaceId, workplaceName) { + selectedWorkplace = workplaceId; + selectedWorkplaceName = workplaceName; + + // 지도 다시 그리기 (선택 효과 표시) + if (mapCanvas && mapCtx && mapImage) { + drawWorkplaceMap(); + } + + // 리스트 버튼 업데이트 + document.querySelectorAll('[id^="workplace-"]').forEach(btn => { + if (btn.id === `workplace-${workplaceId}`) { + btn.classList.remove('btn-secondary'); + btn.classList.add('btn-primary'); + } else { + btn.classList.remove('btn-primary'); + btn.classList.add('btn-secondary'); + } + }); + + // 선택 완료 버튼 활성화 + document.getElementById('confirmWorkplaceBtn').disabled = false; +}; + +/** + * 작업장소 선택 완료 + */ +window.confirmWorkplaceSelection = function() { + const manualIndex = window.currentManualIndex; + + if (!selectedWorkplace || !selectedWorkplaceCategory) { + showMessage('작업장소를 선택해주세요.', 'error'); + return; + } + + document.getElementById(`workplaceCategory_${manualIndex}`).value = selectedWorkplaceCategory; + document.getElementById(`workplace_${manualIndex}`).value = selectedWorkplace; + + const displayDiv = document.getElementById(`workplaceDisplay_${manualIndex}`); + if (displayDiv) { + displayDiv.innerHTML = ` +
+ + 작업장소 선택됨 +
+
+
🏭 ${escapeHtml(selectedWorkplaceCategoryName)}
+
📍 ${escapeHtml(selectedWorkplaceName)}
+
+ `; + displayDiv.style.background = '#ecfdf5'; + displayDiv.style.borderColor = '#10b981'; + } + + // 모달 닫기 + closeWorkplaceModal(); + showMessage('작업장소가 선택되었습니다.', 'success'); +}; + +/** + * 작업장소 모달 닫기 + */ +window.closeWorkplaceModal = function() { + document.getElementById('workplaceModal').style.display = 'none'; + + // 초기화 + selectedWorkplace = null; + selectedWorkplaceName = null; + mapCanvas = null; + mapCtx = null; + mapImage = null; + mapRegions = []; +}; + +/** + * 외부 작업장소 선택 (외근/연차/휴무 등) + */ +window.selectExternalWorkplace = function() { + const manualIndex = window.currentManualIndex; + + // 외부 작업장소 ID는 0 또는 특별한 값으로 설정 (DB에 저장시 처리 필요) + const externalCategoryId = 0; + const externalCategoryName = '외부'; + const externalWorkplaceId = 0; + const externalWorkplaceName = '외부 (외근/연차/휴무)'; + + // hidden input에 값 설정 + document.getElementById(`workplaceCategory_${manualIndex}`).value = externalCategoryId; + document.getElementById(`workplace_${manualIndex}`).value = externalWorkplaceId; + + // 선택 결과 표시 + const displayDiv = document.getElementById(`workplaceDisplay_${manualIndex}`); + if (displayDiv) { + displayDiv.innerHTML = ` +
+ + 외부 선택됨 +
+
+
🌐 ${escapeHtml(externalWorkplaceName)}
+
+ `; + displayDiv.style.background = '#f0f9ff'; + displayDiv.style.borderColor = '#0ea5e9'; + } + + // 모달 닫기 + document.getElementById('workplaceModal').style.display = 'none'; + showMessage('외부 작업장소가 선택되었습니다.', 'success'); +}; + +/** + * 수동 작업보고서 제출 + */ +window.submitManualWorkReport = async function(manualIndex) { + const workerId = document.getElementById(`worker_${manualIndex}`).value; + const reportDate = document.getElementById(`date_${manualIndex}`).value; + const projectId = document.getElementById(`project_${manualIndex}`).value; + const workTypeId = document.getElementById(`workType_${manualIndex}`).value; + const taskId = document.getElementById(`task_${manualIndex}`).value; + const workplaceCategoryId = document.getElementById(`workplaceCategory_${manualIndex}`).value; + const workplaceId = document.getElementById(`workplace_${manualIndex}`).value; + const totalHours = parseFloat(document.getElementById(`totalHours_${manualIndex}`).value); + + // 부적합 원인 가져오기 + const defects = tempDefects[manualIndex] || []; + const errorHours = defects.reduce((sum, d) => sum + (parseFloat(d.defect_hours) || 0), 0); + // item_id를 error_type_id로 사용 (issue_report_items.item_id) + const errorTypeId = defects.length > 0 ? (defects[0].error_type_id || defects[0].item_id || null) : null; + + // 필수 필드 검증 + if (!workerId) { + showMessage('작업자를 선택해주세요.', 'error'); + return; + } + if (!reportDate) { + showMessage('작업 날짜를 입력해주세요.', 'error'); + return; + } + if (!projectId) { + showMessage('프로젝트를 선택해주세요.', 'error'); + return; + } + if (!workTypeId) { + showMessage('공정을 선택해주세요.', 'error'); + return; + } + if (!taskId) { + showMessage('작업을 선택해주세요.', 'error'); + return; + } + if (workplaceId === '' || workplaceId === null || workplaceId === undefined) { + showMessage('작업장소를 선택해주세요.', 'error'); + return; + } + if (!totalHours || totalHours <= 0) { + showMessage('작업시간을 입력해주세요.', 'error'); + return; + } + + if (errorHours > totalHours) { + showMessage('부적합 처리 시간은 총 작업시간을 초과할 수 없습니다.', 'error'); + return; + } + + // 부적합 원인 유효성 검사 (issue_report_id 또는 error_type_id 필요) + const invalidDefects = defects.filter(d => d.defect_hours > 0 && !d.error_type_id && !d.issue_report_id && !d.category_id && !d.item_id); + if (invalidDefects.length > 0) { + showMessage('부적합 시간이 있는 항목은 원인을 선택해주세요.', 'error'); + return; + } + + // 서비스 레이어가 기대하는 형식으로 변환 + // 주의: 서비스에서 task_id를 work_type_id 컬럼에 매핑함 + const reportData = { + report_date: reportDate, + worker_id: parseInt(workerId), + work_entries: [{ + project_id: parseInt(projectId), + task_id: parseInt(taskId), // 서비스에서 work_type_id로 매핑됨 + work_hours: totalHours, + work_status_id: errorHours > 0 ? 2 : 1, + error_type_id: errorTypeId ? parseInt(errorTypeId) : null + }] + }; + + try { + // 429 오류 재시도 로직 포함 + let response; + let retries = 3; + for (let i = 0; i < retries; i++) { + try { + response = await window.apiCall('/daily-work-reports', 'POST', reportData); + break; + } catch (err) { + if ((err.message?.includes('429') || err.message?.includes('너무 많은 요청')) && i < retries - 1) { + const waitTime = (i + 1) * 2000; + showMessage(`서버가 바쁩니다. ${waitTime/1000}초 후 재시도...`, 'loading'); + await new Promise(r => setTimeout(r, waitTime)); + continue; + } + throw err; + } + } + + if (!response.success) { + throw new Error(response.message || '작업보고서 제출 실패'); + } + + // 부적합 원인이 있으면 저장 (이슈 기반 또는 레거시) + const reportId = response.data?.inserted_ids?.[0] || response.data?.workReport_ids?.[0]; + if (defects.length > 0 && reportId) { + const validDefects = defects.filter(d => (d.issue_report_id || d.category_id || d.item_id || d.error_type_id) && d.defect_hours > 0); + if (validDefects.length > 0) { + await window.apiCall(`/daily-work-reports/${reportId}/defects`, 'PUT', { + defects: validDefects + }); + } + } + + // 행 제거 (부적합 임시 데이터도 함께 삭제됨) + removeManualWorkRow(manualIndex); + + showMessage('작업보고서가 제출되었습니다.', 'success'); + + // 남은 행이 없으면 완료 메시지 + const remainingRows = document.querySelectorAll('#manualWorkTableBody tr[data-index]'); + if (remainingRows.length === 0) { + showSaveResultModal( + 'success', + '작업보고서 제출 완료', + '모든 작업보고서가 성공적으로 제출되었습니다.' + ); + } + } catch (error) { + console.error('수동 작업보고서 제출 오류:', error); + showMessage('제출 실패: ' + error.message, 'error'); + } +}; + +/** + * 딜레이 함수 + */ +const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms)); + +/** + * API 호출 (429 재시도 포함) + */ +async function apiCallWithRetry(url, method, data, maxRetries = 3) { + for (let attempt = 1; attempt <= maxRetries; attempt++) { + try { + const response = await window.apiCall(url, method, data); + return response; + } catch (error) { + // 429 Rate Limit 오류인 경우 재시도 + if (error.message && error.message.includes('429') || error.message.includes('너무 많은 요청')) { + if (attempt < maxRetries) { + const waitTime = attempt * 2000; // 2초, 4초, 6초 대기 + console.log(`Rate limit 도달. ${waitTime/1000}초 후 재시도... (${attempt}/${maxRetries})`); + await delay(waitTime); + continue; + } + } + throw error; + } + } +} + +/** + * 수동 작업보고서 일괄 제출 + */ +window.submitAllManualWorkReports = async function() { + const rows = document.querySelectorAll('#manualWorkTableBody tr[data-index]'); + + if (rows.length === 0) { + showMessage('제출할 작업보고서가 없습니다.', 'error'); + return; + } + + // 확인 다이얼로그 + if (!confirm(`${rows.length}개의 작업보고서를 일괄 제출하시겠습니까?`)) { + return; + } + + let successCount = 0; + let failCount = 0; + const errors = []; + let currentIndex = 0; + + showMessage(`작업보고서 제출 중... (0/${rows.length})`, 'loading'); + + // 각 행을 순차적으로 제출 (딜레이 포함) + for (const row of rows) { + currentIndex++; + const manualIndex = row.dataset.index; + + // Rate Limit 방지를 위한 딜레이 (1초) + if (currentIndex > 1) { + await delay(1000); + } + + showMessage(`작업보고서 제출 중... (${currentIndex}/${rows.length})`, 'loading'); + + try { + const workerId = document.getElementById(`worker_${manualIndex}`).value; + const reportDate = document.getElementById(`date_${manualIndex}`).value; + const projectId = document.getElementById(`project_${manualIndex}`).value; + const workTypeId = document.getElementById(`workType_${manualIndex}`).value; + const taskId = document.getElementById(`task_${manualIndex}`).value; + const workplaceCategoryId = document.getElementById(`workplaceCategory_${manualIndex}`).value; + const workplaceId = document.getElementById(`workplace_${manualIndex}`).value; + const totalHours = parseFloat(document.getElementById(`totalHours_${manualIndex}`).value); + + // 부적합 원인 가져오기 + const defects = tempDefects[manualIndex] || []; + const errorHours = defects.reduce((sum, d) => sum + (parseFloat(d.defect_hours) || 0), 0); + // item_id를 error_type_id로 사용 (issue_report_items.item_id) + const errorTypeId = defects.length > 0 ? (defects[0].error_type_id || defects[0].item_id || null) : null; + + // 필수 필드 검증 + if (!workerId || !reportDate || !projectId || !workTypeId || !taskId || !totalHours || totalHours <= 0) { + errors.push(`행 ${manualIndex}: 필수 항목 누락`); + failCount++; + continue; + } + + if (workplaceId === '' || workplaceId === null || workplaceId === undefined) { + errors.push(`행 ${manualIndex}: 작업장소 미선택`); + failCount++; + continue; + } + + // 서비스 레이어가 기대하는 형식으로 변환 + const reportData = { + report_date: reportDate, + worker_id: parseInt(workerId), + work_entries: [{ + project_id: parseInt(projectId), + task_id: parseInt(taskId), + work_hours: totalHours, + work_status_id: errorHours > 0 ? 2 : 1, + error_type_id: errorTypeId ? parseInt(errorTypeId) : null + }] + }; + + const response = await apiCallWithRetry('/daily-work-reports', 'POST', reportData); + + if (!response.success) { + throw new Error(response.message || '작업보고서 제출 실패'); + } + + // 부적합 원인이 있으면 저장 + const reportId = response.data?.inserted_ids?.[0] || response.data?.workReport_ids?.[0]; + if (defects.length > 0 && reportId) { + const validDefects = defects.filter(d => (d.issue_report_id || d.category_id || d.item_id || d.error_type_id) && d.defect_hours > 0); + if (validDefects.length > 0) { + await apiCallWithRetry(`/daily-work-reports/${reportId}/defects`, 'PUT', { + defects: validDefects + }); + } + } + + // 성공 - 행 제거 + removeManualWorkRow(manualIndex); + successCount++; + + } catch (error) { + console.error(`행 ${manualIndex} 제출 오류:`, error); + errors.push(`행 ${manualIndex}: ${error.message}`); + failCount++; + } + } + + // 로딩 메시지 숨기기 + hideMessage(); + + // 결과 표시 + let resultMessage = `성공: ${successCount}건`; + if (failCount > 0) { + resultMessage += `, 실패: ${failCount}건`; + } + + if (failCount > 0 && errors.length > 0) { + showSaveResultModal( + 'warning', + '일괄 제출 완료 (일부 실패)', + `${resultMessage}\n\n실패 원인:\n${errors.slice(0, 5).join('\n')}${errors.length > 5 ? `\n... 외 ${errors.length - 5}건` : ''}` + ); + } else { + showSaveResultModal( + 'success', + '일괄 제출 완료', + resultMessage + ); + } +}; + +/** + * 날짜 포맷 함수 + */ +function formatDate(dateString) { + if (!dateString) return ''; + const date = new Date(dateString); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +/** + * 신고 상태 라벨 반환 + */ +function getStatusLabel(status) { + const labels = { + 'reported': '신고됨', + 'received': '접수됨', + 'in_progress': '처리중', + 'completed': '완료', + 'closed': '종료' + }; + return labels[status] || status || '-'; +} + +/** + * 작성 완료된 작업보고서 로드 + */ +window.loadCompletedReports = async function() { + try { + const selectedDate = document.getElementById('completedReportDate').value; + if (!selectedDate) { + showMessage('날짜를 선택해주세요.', 'error'); + return; + } + + // 해당 날짜의 작업보고서 조회 + const response = await window.apiCall(`/daily-work-reports?date=${selectedDate}`); + + console.log('완료된 보고서 API 응답:', response); + + // API 응답이 배열인지 객체인지 확인 + let reports = []; + if (Array.isArray(response)) { + reports = response; + } else if (response.success && response.data) { + reports = Array.isArray(response.data) ? response.data : []; + } else if (response.data) { + reports = Array.isArray(response.data) ? response.data : []; + } + + renderCompletedReports(reports); + } catch (error) { + console.error('완료된 보고서 로드 오류:', error); + showMessage('작업보고서를 불러오는 중 오류가 발생했습니다.', 'error'); + } +}; + +/** + * 완료된 보고서 목록 렌더링 + */ +function renderCompletedReports(reports) { + const container = document.getElementById('completedReportsList'); + + if (!reports || reports.length === 0) { + container.innerHTML = '

작성된 작업보고서가 없습니다.

'; + return; + } + + const html = reports.map(report => ` +
+
+
+

${escapeHtml(report.worker_name || '작업자')}

+ ${report.tbm_session_id ? 'TBM 연동' : '수동 입력'} +
+ ${escapeHtml(formatDate(report.report_date))} +
+ +
+
+ 프로젝트: + ${escapeHtml(report.project_name || '-')} +
+
+ 공정: + ${escapeHtml(report.work_type_name || '-')} +
+
+ 작업: + ${escapeHtml(report.task_name || '-')} +
+
+ 작업시간: + ${parseFloat(report.total_hours || report.work_hours || 0)}시간 +
+ ${report.regular_hours !== undefined && report.regular_hours !== null ? ` +
+ 정규 시간: + ${parseFloat(report.regular_hours)}시간 +
+ ` : ''} + ${report.error_hours && report.error_hours > 0 ? ` +
+ 부적합 처리: + ${parseFloat(report.error_hours)}시간 +
+
+ 부적합 원인: + ${escapeHtml(report.error_type_name || '-')} +
+ ` : ''} +
+ 작성자: + ${escapeHtml(report.created_by_name || '-')} +
+ ${report.start_time && report.end_time ? ` +
+ 작업 시간: + ${escapeHtml(report.start_time)} ~ ${escapeHtml(report.end_time)} +
+ ` : ''} +
+
+ + +
+
+ `).join(''); + + container.innerHTML = html; +} + +/** + * 작업보고서 수정 모달 열기 + */ +window.openEditReportModal = function(report) { + // 수정 모달이 없으면 동적 생성 + let modal = document.getElementById('editReportModal'); + if (!modal) { + modal = document.createElement('div'); + modal.id = 'editReportModal'; + modal.className = 'modal-overlay'; + modal.style.cssText = 'display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 1003; align-items: center; justify-content: center;'; + modal.innerHTML = ` + + `; + document.body.appendChild(modal); + } + + // 폼에 데이터 채우기 + document.getElementById('editReportId').value = report.id; + document.getElementById('editWorkerName').value = report.worker_name || '작업자'; + document.getElementById('editProjectId').value = report.project_id || ''; + document.getElementById('editWorkHours').value = report.work_hours || report.total_hours || 0; + document.getElementById('editWorkStatusId').value = report.work_status_id || 1; + + // 공정 선택 후 작업 목록 로드 + const workTypeSelect = document.getElementById('editWorkTypeId'); + + // work_type_id가 실제로는 task_id를 저장하고 있으므로, task에서 work_type을 찾아야 함 + // 일단 task 기반으로 찾기 시도 + loadTasksForEdit().then(() => { + const taskSelect = document.getElementById('editTaskId'); + // work_type_id 컬럼에 저장된 값이 실제로는 task_id + if (report.work_type_id) { + taskSelect.value = report.work_type_id; + } + }); + + modal.style.display = 'flex'; +}; + +/** + * 수정 모달용 작업 목록 로드 + */ +window.loadTasksForEdit = async function() { + const workTypeId = document.getElementById('editWorkTypeId').value; + const taskSelect = document.getElementById('editTaskId'); + + if (!workTypeId) { + taskSelect.innerHTML = ''; + return; + } + + try { + const response = await window.apiCall(`/tasks?work_type_id=${workTypeId}`); + const tasks = response.data || response || []; + + taskSelect.innerHTML = '' + + tasks.map(t => ``).join(''); + } catch (error) { + console.error('작업 목록 로드 오류:', error); + taskSelect.innerHTML = ''; + } +}; + +/** + * 수정 모달 닫기 + */ +window.closeEditReportModal = function() { + const modal = document.getElementById('editReportModal'); + if (modal) { + modal.style.display = 'none'; + } +}; + +/** + * 수정된 보고서 저장 + */ +window.saveEditedReport = async function() { + const reportId = document.getElementById('editReportId').value; + const projectId = document.getElementById('editProjectId').value; + const taskId = document.getElementById('editTaskId').value; + const workHours = parseFloat(document.getElementById('editWorkHours').value); + const workStatusId = document.getElementById('editWorkStatusId').value; + + if (!projectId || !taskId || !workHours) { + showMessage('필수 항목을 모두 입력해주세요.', 'error'); + return; + } + + try { + const updateData = { + project_id: parseInt(projectId), + work_type_id: parseInt(taskId), // task_id가 work_type_id 컬럼에 저장됨 + work_hours: workHours, + work_status_id: parseInt(workStatusId) + }; + + const response = await window.apiCall(`/daily-work-reports/${reportId}`, 'PUT', updateData); + + if (response.success) { + showMessage('작업보고서가 수정되었습니다.', 'success'); + closeEditReportModal(); + loadCompletedReports(); // 목록 새로고침 + } else { + throw new Error(response.message || '수정 실패'); + } + } catch (error) { + console.error('작업보고서 수정 오류:', error); + showMessage('수정 실패: ' + error.message, 'error'); + } +}; + +/** + * 작업보고서 삭제 + */ +window.deleteWorkReport = async function(reportId) { + if (!confirm('이 작업보고서를 삭제하시겠습니까?')) { + return; + } + + try { + const response = await window.apiCall(`/daily-work-reports/${reportId}`, 'DELETE'); + + if (response.success) { + showMessage('작업보고서가 삭제되었습니다.', 'success'); + loadCompletedReports(); // 목록 새로고침 + } else { + throw new Error(response.message || '삭제 실패'); + } + } catch (error) { + console.error('작업보고서 삭제 오류:', error); + showMessage('삭제 실패: ' + error.message, 'error'); + } +}; + +// ================================================================= +// 기존 함수들 +// ================================================================= + +// 한국 시간 기준 오늘 날짜 가져오기 +function getKoreaToday() { + const today = new Date(); + const year = today.getFullYear(); + const month = String(today.getMonth() + 1).padStart(2, '0'); + const day = String(today.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +// 현재 로그인한 사용자 정보 가져오기 +function getCurrentUser() { + try { + const token = localStorage.getItem('token'); + if (!token) return null; + + const payloadBase64 = token.split('.')[1]; + if (payloadBase64) { + const payload = JSON.parse(atob(payloadBase64)); + console.log('토큰에서 추출한 사용자 정보:', payload); + return payload; + } + } catch (error) { + console.log('토큰에서 사용자 정보 추출 실패:', error); + } + + try { + const userInfo = localStorage.getItem('user') || localStorage.getItem('userInfo') || localStorage.getItem('currentUser'); + if (userInfo) { + const parsed = JSON.parse(userInfo); + console.log('localStorage에서 가져온 사용자 정보:', parsed); + return parsed; + } + } catch (error) { + console.log('localStorage에서 사용자 정보 가져오기 실패:', error); + } + + return null; +} + +// 메시지 표시 +function showMessage(message, type = 'info') { + const container = document.getElementById('message-container'); + container.innerHTML = `
${message}
`; + + if (type === 'success') { + setTimeout(() => { + hideMessage(); + }, 5000); + } +} + +function hideMessage() { + document.getElementById('message-container').innerHTML = ''; +} + +// 저장 결과 모달 표시 +function showSaveResultModal(type, title, message, details = null) { + const modal = document.getElementById('saveResultModal'); + const titleElement = document.getElementById('resultModalTitle'); + const contentElement = document.getElementById('resultModalContent'); + + // 아이콘 설정 + let icon = ''; + switch (type) { + case 'success': + icon = '✅'; + break; + case 'error': + icon = '❌'; + break; + case 'warning': + icon = '⚠️'; + break; + default: + icon = 'ℹ️'; + } + + // 모달 내용 구성 + let content = ` +
${icon}
+

${title}

+

${message}

+ `; + + // 상세 정보가 있으면 추가 + if (details) { + if (Array.isArray(details) && details.length > 0) { + content += ` +
+

상세 정보:

+
    + ${details.map(detail => `
  • ${detail}
  • `).join('')} +
+
+ `; + } else if (typeof details === 'string') { + content += ` +
+

${details}

+
+ `; + } + } + + titleElement.textContent = '저장 결과'; + contentElement.innerHTML = content; + modal.style.display = 'flex'; + + // ESC 키로 닫기 + document.addEventListener('keydown', function (e) { + if (e.key === 'Escape') { + closeSaveResultModal(); + } + }); + + // 배경 클릭으로 닫기 + modal.addEventListener('click', function (e) { + if (e.target === modal) { + closeSaveResultModal(); + } + }); +} + +// 저장 결과 모달 닫기 +function closeSaveResultModal() { + const modal = document.getElementById('saveResultModal'); + modal.style.display = 'none'; + + // 이벤트 리스너 제거 + document.removeEventListener('keydown', closeSaveResultModal); +} + +// 전역에서 접근 가능하도록 window에 할당 +window.closeSaveResultModal = closeSaveResultModal; + +// 단계 이동 +function goToStep(stepNumber) { + for (let i = 1; i <= 3; i++) { + const step = document.getElementById(`step${i}`); + if (step) { + step.classList.remove('active', 'completed'); + if (i < stepNumber) { + step.classList.add('completed'); + const stepNum = step.querySelector('.step-number'); + if (stepNum) stepNum.classList.add('completed'); + } else if (i === stepNumber) { + step.classList.add('active'); + } + } + } + + // 진행 단계 표시 업데이트 + updateProgressSteps(stepNumber); + + currentStep = stepNumber; +} + +// 진행 단계 표시 업데이트 +function updateProgressSteps(currentStepNumber) { + for (let i = 1; i <= 3; i++) { + const progressStep = document.getElementById(`progressStep${i}`); + if (progressStep) { + progressStep.classList.remove('active', 'completed'); + + if (i < currentStepNumber) { + progressStep.classList.add('completed'); + } else if (i === currentStepNumber) { + progressStep.classList.add('active'); + } + } + } +} + +// 초기 데이터 로드 (통합 API 사용) +async function loadData() { + try { + showMessage('데이터를 불러오는 중...', 'loading'); + + console.log('🔗 통합 API 설정을 사용한 기본 데이터 로딩 시작...'); + await loadWorkers(); + await loadProjects(); + await loadWorkTypes(); + await loadWorkStatusTypes(); + await loadErrorTypes(); + + console.log('로드된 작업자 수:', workers.length); + console.log('로드된 프로젝트 수:', projects.length); + console.log('작업 유형 수:', workTypes.length); + + hideMessage(); + + } catch (error) { + console.error('데이터 로드 실패:', error); + showMessage('데이터 로드 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +async function loadWorkers() { + try { + console.log('Workers API 호출 중... (통합 API 사용)'); + // 생산팀 소속 작업자만 조회 + const data = await window.apiCall(`/workers?limit=1000&department_id=1`); + const allWorkers = Array.isArray(data) ? data : (data.data || data.workers || []); + + // 작업 보고서에 표시할 작업자만 필터링 + // 퇴사자만 제외 (계정 여부와 무관하게 재직자는 모두 표시) + workers = allWorkers.filter(worker => { + const notResigned = worker.employment_status !== 'resigned'; + return notResigned; + }); + + console.log(`✅ Workers 로드 성공: ${workers.length}명 (전체: ${allWorkers.length}명)`); + console.log(`📊 필터링 조건: employment_status≠resigned (퇴사자만 제외)`); + } catch (error) { + console.error('작업자 로딩 오류:', error); + throw error; + } +} + +async function loadProjects() { + try { + console.log('Projects API 호출 중... (활성 프로젝트만)'); + const data = await window.apiCall(`/projects/active/list`); + projects = Array.isArray(data) ? data : (data.data || data.projects || []); + console.log('✅ 활성 프로젝트 로드 성공:', projects.length); + } catch (error) { + console.error('프로젝트 로딩 오류:', error); + throw error; + } +} + +async function loadWorkTypes() { + try { + const response = await window.apiCall(`/daily-work-reports/work-types`); + const data = response.data || response; + if (Array.isArray(data) && data.length > 0) { + workTypes = data; + console.log('✅ 작업 유형 API 사용 (통합 설정):', workTypes.length + '개'); + return; + } + throw new Error('API 실패'); + } catch (error) { + console.log('⚠️ 작업 유형 API 사용 불가, 기본값 사용:', error.message); + workTypes = [ + { id: 1, name: 'Base' }, + { id: 2, name: 'Vessel' }, + { id: 3, name: 'Piping' } + ]; + } +} + +async function loadWorkStatusTypes() { + try { + const response = await window.apiCall(`/daily-work-reports/work-status-types`); + const data = response.data || response; + if (Array.isArray(data) && data.length > 0) { + workStatusTypes = data; + console.log('✅ 업무 상태 유형 API 사용 (통합 설정):', workStatusTypes.length + '개'); + return; + } + throw new Error('API 실패'); + } catch (error) { + console.log('⚠️ 업무 상태 유형 API 사용 불가, 기본값 사용'); + workStatusTypes = [ + { id: 1, name: '정규' }, + { id: 2, name: '에러' } + ]; + } +} + +async function loadErrorTypes() { + // 레거시 에러 유형 로드 (호환성) + try { + const response = await window.apiCall(`/daily-work-reports/error-types`); + const data = response.data || response; + if (Array.isArray(data) && data.length > 0) { + errorTypes = data; + } + } catch (error) { + errorTypes = []; + } + + // 신고 카테고리 로드 (부적합 유형만) + try { + const catResponse = await window.apiCall('/work-issues/categories/type/nonconformity'); + if (catResponse && catResponse.success && Array.isArray(catResponse.data)) { + issueCategories = catResponse.data; + console.log(`✅ 부적합 카테고리 ${issueCategories.length}개 로드`); + + // 모든 아이템 로드 + const itemResponse = await window.apiCall('/work-issues/items'); + if (itemResponse && itemResponse.success && Array.isArray(itemResponse.data)) { + // 부적합 카테고리의 아이템만 필터링 + const categoryIds = issueCategories.map(c => c.category_id); + issueItems = itemResponse.data.filter(item => categoryIds.includes(item.category_id)); + console.log(`✅ 부적합 아이템 ${issueItems.length}개 로드`); + } + } + } catch (error) { + console.log('⚠️ 신고 카테고리 로드 실패:', error); + issueCategories = []; + issueItems = []; + } +} + +// TBM 팀 구성 자동 불러오기 +async function loadTbmTeamForDate(date) { + try { + console.log('🛠️ TBM 팀 구성 조회 중:', date); + const response = await window.apiCall(`/tbm/sessions/date/${date}`); + + if (response && response.success && response.data && response.data.length > 0) { + // 가장 최근 세션 선택 (진행중인 세션 우선) + const draftSessions = response.data.filter(s => s.status === 'draft'); + const targetSession = draftSessions.length > 0 ? draftSessions[0] : response.data[0]; + + if (targetSession) { + // 팀 구성 조회 + const teamRes = await window.apiCall(`/tbm/sessions/${targetSession.session_id}/team`); + if (teamRes && teamRes.success && teamRes.data) { + const teamWorkerIds = teamRes.data.map(m => m.worker_id); + console.log(`✅ TBM 팀 구성 로드 성공: ${teamWorkerIds.length}명`); + return teamWorkerIds; + } + } + } + + console.log('ℹ️ 해당 날짜의 TBM 팀 구성이 없습니다.'); + return []; + } catch (error) { + console.error('❌ TBM 팀 구성 조회 오류:', error); + return []; + } +} + +// 작업자 그리드 생성 +async function populateWorkerGrid() { + const grid = document.getElementById('workerGrid'); + grid.innerHTML = ''; + + // 선택된 날짜의 TBM 팀 구성 불러오기 + const reportDate = document.getElementById('reportDate').value; + let tbmWorkerIds = []; + + if (reportDate) { + tbmWorkerIds = await loadTbmTeamForDate(reportDate); + } + + // TBM 팀 구성이 있으면 안내 메시지 표시 + if (tbmWorkerIds.length > 0) { + const infoDiv = document.createElement('div'); + infoDiv.style.cssText = ` + padding: 1rem; + background: #eff6ff; + border: 1px solid #3b82f6; + border-radius: 0.5rem; + margin-bottom: 1rem; + color: #1e40af; + font-size: 0.875rem; + `; + infoDiv.innerHTML = ` + 🛠️ TBM 팀 구성 자동 적용
+ 오늘 TBM에서 구성된 팀원 ${tbmWorkerIds.length}명이 자동으로 선택되었습니다. + `; + grid.appendChild(infoDiv); + } + + workers.forEach(worker => { + const btn = document.createElement('button'); + btn.type = 'button'; + btn.className = 'worker-card'; + btn.textContent = worker.worker_name; + btn.dataset.id = worker.worker_id; + + // TBM 팀 구성에 포함된 작업자는 자동 선택 + if (tbmWorkerIds.includes(worker.worker_id)) { + btn.classList.add('selected'); + selectedWorkers.add(worker.worker_id); + } + + btn.addEventListener('click', () => { + toggleWorkerSelection(worker.worker_id, btn); + }); + + grid.appendChild(btn); + }); + + // 자동 선택된 작업자가 있으면 다음 단계 버튼 활성화 + const nextBtn = document.getElementById('nextStep2'); + if (nextBtn) { + nextBtn.disabled = selectedWorkers.size === 0; + } +} + +// 작업자 선택 토글 +function toggleWorkerSelection(workerId, btnElement) { + if (selectedWorkers.has(workerId)) { + selectedWorkers.delete(workerId); + btnElement.classList.remove('selected'); + } else { + selectedWorkers.add(workerId); + btnElement.classList.add('selected'); + } + + const nextBtn = document.getElementById('nextStep2'); + nextBtn.disabled = selectedWorkers.size === 0; +} + +// 작업 항목 추가 +function addWorkEntry() { + console.log('🔧 addWorkEntry 함수 호출됨'); + const container = document.getElementById('workEntriesList'); + console.log('🔧 컨테이너:', container); + workEntryCounter++; + console.log('🔧 작업 항목 카운터:', workEntryCounter); + + const entryDiv = document.createElement('div'); + entryDiv.className = 'work-entry'; + entryDiv.dataset.id = workEntryCounter; + console.log('🔧 생성된 작업 항목 div:', entryDiv); + + entryDiv.innerHTML = ` +
+
작업 항목 #${workEntryCounter}
+ +
+ +
+
+
+ 🏗️ + 프로젝트 +
+ +
+ +
+
+ ⚙️ + 작업 유형 +
+ +
+
+ +
+
+
+ 📊 + 업무 상태 +
+ +
+
+ +
+
+ ⚠️ + 에러 유형 +
+ +
+ +
+
+ + 작업 시간 (시간) +
+ +
+ + + + + +
+
+ `; + + container.appendChild(entryDiv); + console.log('🔧 작업 항목이 컨테이너에 추가됨'); + console.log('🔧 현재 컨테이너 내용:', container.innerHTML.length, '문자'); + console.log('🔧 현재 .work-entry 개수:', container.querySelectorAll('.work-entry').length); + + setupWorkEntryEvents(entryDiv); + console.log('🔧 이벤트 설정 완료'); +} + +// 작업 항목 이벤트 설정 +function setupWorkEntryEvents(entryDiv) { + const timeInput = entryDiv.querySelector('.time-input'); + const workStatusSelect = entryDiv.querySelector('.work-status-select'); + const errorTypeSection = entryDiv.querySelector('.error-type-section'); + const errorTypeSelect = entryDiv.querySelector('.error-type-select'); + + // 시간 입력 이벤트 + timeInput.addEventListener('input', updateTotalHours); + + // 빠른 시간 버튼 이벤트 + entryDiv.querySelectorAll('.quick-time-btn').forEach(btn => { + btn.addEventListener('click', (e) => { + e.preventDefault(); + timeInput.value = btn.dataset.hours; + updateTotalHours(); + + // 버튼 클릭 효과 + btn.style.transform = 'scale(0.95)'; + setTimeout(() => { + btn.style.transform = ''; + }, 150); + }); + }); + + // 업무 상태 변경 시 에러 유형 섹션 토글 + workStatusSelect.addEventListener('change', (e) => { + const isError = e.target.value === '2'; // 에러 상태 ID가 2라고 가정 + + if (isError) { + errorTypeSection.classList.add('visible'); + errorTypeSelect.required = true; + + // 에러 상태일 때 시각적 피드백 + errorTypeSection.style.animation = 'slideDown 0.4s ease-out'; + } else { + errorTypeSection.classList.remove('visible'); + errorTypeSelect.required = false; + errorTypeSelect.value = ''; + } + }); + + // 폼 필드 포커스 효과 + entryDiv.querySelectorAll('.form-field-group').forEach(group => { + const input = group.querySelector('select, input'); + if (input) { + input.addEventListener('focus', () => { + group.classList.add('focused'); + }); + + input.addEventListener('blur', () => { + group.classList.remove('focused'); + }); + } + }); +} + +// 작업 항목 제거 +function removeWorkEntry(id) { + console.log('🗑️ removeWorkEntry 호출됨, id:', id); + const entry = document.querySelector(`.work-entry[data-id="${id}"]`); + console.log('🗑️ 찾은 entry:', entry); + if (entry) { + entry.remove(); + updateTotalHours(); + console.log('✅ 작업 항목 삭제 완료'); + } else { + console.log('❌ 작업 항목을 찾을 수 없음'); + } +} + +// 총 시간 업데이트 +function updateTotalHours() { + const timeInputs = document.querySelectorAll('.time-input'); + let total = 0; + + timeInputs.forEach(input => { + const value = parseFloat(input.value) || 0; + total += value; + }); + + const display = document.getElementById('totalHoursDisplay'); + display.textContent = `총 작업시간: ${total}시간`; + + if (total > 24) { + display.style.background = 'linear-gradient(135deg, #e74c3c 0%, #c0392b 100%)'; + display.textContent += ' ⚠️ 24시간 초과'; + } else { + display.style.background = 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)'; + } +} + +// 저장 함수 (통합 API 사용) +async function saveWorkReport() { + const reportDate = document.getElementById('reportDate').value; + + if (!reportDate || selectedWorkers.size === 0) { + showSaveResultModal( + 'error', + '입력 오류', + '날짜와 작업자를 선택해주세요.' + ); + return; + } + + const entries = document.querySelectorAll('.work-entry'); + console.log('🔍 찾은 작업 항목들:', entries); + console.log('🔍 작업 항목 개수:', entries.length); + + if (entries.length === 0) { + showSaveResultModal( + 'error', + '작업 항목 없음', + '최소 하나의 작업을 추가해주세요.' + ); + return; + } + + const newWorkEntries = []; + console.log('🔍 작업 항목 수집 시작...'); + + for (const entry of entries) { + console.log('🔍 작업 항목 처리 중:', entry); + + const projectSelect = entry.querySelector('.project-select'); + const workTypeSelect = entry.querySelector('.work-type-select'); + const workStatusSelect = entry.querySelector('.work-status-select'); + const errorTypeSelect = entry.querySelector('.error-type-select'); + const timeInput = entry.querySelector('.time-input'); + + console.log('🔍 선택된 요소들:', { + projectSelect, + workTypeSelect, + workStatusSelect, + errorTypeSelect, + timeInput + }); + + const projectId = projectSelect?.value; + const workTypeId = workTypeSelect?.value; + const workStatusId = workStatusSelect?.value; + const errorTypeId = errorTypeSelect?.value; + const workHours = timeInput?.value; + + console.log('🔍 수집된 값들:', { + projectId, + workTypeId, + workStatusId, + errorTypeId, + workHours + }); + + if (!projectId || !workTypeId || !workStatusId || !workHours) { + showSaveResultModal( + 'error', + '입력 오류', + '모든 작업 항목을 완성해주세요.' + ); + return; + } + + if (workStatusId === '2' && !errorTypeId) { + showSaveResultModal( + 'error', + '입력 오류', + '에러 상태인 경우 에러 유형을 선택해주세요.' + ); + return; + } + + const workEntry = { + project_id: parseInt(projectId), + work_type_id: parseInt(workTypeId), + work_status_id: parseInt(workStatusId), + error_type_id: errorTypeId ? parseInt(errorTypeId) : null, + work_hours: parseFloat(workHours) + }; + + console.log('🔍 생성된 작업 항목:', workEntry); + console.log('🔍 작업 항목 상세:', { + project_id: workEntry.project_id, + work_type_id: workEntry.work_type_id, + work_status_id: workEntry.work_status_id, + error_type_id: workEntry.error_type_id, + work_hours: workEntry.work_hours + }); + newWorkEntries.push(workEntry); + } + + console.log('🔍 최종 수집된 작업 항목들:', newWorkEntries); + console.log('🔍 총 작업 항목 개수:', newWorkEntries.length); + + try { + const submitBtn = document.getElementById('submitBtn'); + submitBtn.disabled = true; + submitBtn.textContent = '💾 저장 중...'; + + const currentUser = getCurrentUser(); + let totalSaved = 0; + let totalFailed = 0; + const failureDetails = []; + + for (const workerId of selectedWorkers) { + const workerName = workers.find(w => w.worker_id == workerId)?.worker_name || '알 수 없음'; + + // 서버가 기대하는 work_entries 배열 형태로 전송 + const requestData = { + report_date: reportDate, + worker_id: parseInt(workerId), + work_entries: newWorkEntries.map(entry => ({ + project_id: entry.project_id, + task_id: entry.work_type_id, // 서버에서 task_id로 기대 + work_hours: entry.work_hours, + work_status_id: entry.work_status_id, + error_type_id: entry.error_type_id + })), + created_by: currentUser?.user_id || currentUser?.id + }; + + console.log('🔄 배열 형태로 전송:', requestData); + console.log('🔄 work_entries:', requestData.work_entries); + console.log('🔄 work_entries[0] 상세:', requestData.work_entries[0]); + console.log('🔄 전송 데이터 JSON:', JSON.stringify(requestData, null, 2)); + + try { + const result = await window.apiCall(`/daily-work-reports`, 'POST', requestData); + + console.log('✅ 저장 성공:', result); + totalSaved++; + } catch (error) { + console.error('❌ 저장 실패:', error); + totalFailed++; + + failureDetails.push(`${workerName}: ${error.message}`); + } + } + + // 결과 모달 표시 + if (totalSaved > 0 && totalFailed === 0) { + showSaveResultModal( + 'success', + '저장 완료!', + `${totalSaved}명의 작업보고서가 성공적으로 저장되었습니다.` + ); + } else if (totalSaved > 0 && totalFailed > 0) { + showSaveResultModal( + 'warning', + '부분 저장 완료', + `${totalSaved}명은 성공했지만 ${totalFailed}명은 실패했습니다.`, + failureDetails + ); + } else { + showSaveResultModal( + 'error', + '저장 실패', + '모든 작업보고서 저장이 실패했습니다.', + failureDetails + ); + } + + if (totalSaved > 0) { + setTimeout(() => { + refreshTodayWorkers(); + resetForm(); + }, 2000); + } + + } catch (error) { + console.error('저장 오류:', error); + showSaveResultModal( + 'error', + '저장 오류', + '저장 중 예기치 못한 오류가 발생했습니다.', + [error.message] + ); + } finally { + const submitBtn = document.getElementById('submitBtn'); + submitBtn.disabled = false; + submitBtn.textContent = '💾 작업보고서 저장'; + } +} + +// 폼 초기화 +function resetForm() { + goToStep(1); + + selectedWorkers.clear(); + document.querySelectorAll('.worker-card.selected').forEach(btn => { + btn.classList.remove('selected'); + }); + + const container = document.getElementById('workEntriesList'); + container.innerHTML = ''; + + workEntryCounter = 0; + updateTotalHours(); + + document.getElementById('nextStep2').disabled = true; +} + +// 당일 작업자 현황 로드 (본인 입력분만) - 통합 API 사용 +async function loadTodayWorkers() { + const section = document.getElementById('dailyWorkersSection'); + const content = document.getElementById('dailyWorkersContent'); + + if (!section || !content) { + console.log('당일 현황 섹션이 HTML에 없습니다.'); + return; + } + + try { + const today = getKoreaToday(); + const currentUser = getCurrentUser(); + + content.innerHTML = '
📊 내가 입력한 오늘의 작업 현황을 불러오는 중... (통합 API)
'; + section.style.display = 'block'; + + // 본인이 입력한 데이터만 조회 (통합 API 사용) + let queryParams = `date=${today}`; + if (currentUser?.user_id) { + queryParams += `&created_by=${currentUser.user_id}`; + } else if (currentUser?.id) { + queryParams += `&created_by=${currentUser.id}`; + } + + console.log(`🔒 본인 입력분만 조회 (통합 API): ${API}/daily-work-reports?${queryParams}`); + + const rawData = await window.apiCall(`/daily-work-reports?${queryParams}`); + console.log('📊 당일 작업 데이터 (통합 API):', rawData); + + let data = []; + if (Array.isArray(rawData)) { + data = rawData; + } else if (rawData?.data) { + data = rawData.data; + } + + displayMyDailyWorkers(data, today); + + } catch (error) { + console.error('당일 작업자 로드 오류:', error); + content.innerHTML = ` +
+ ❌ 오늘의 작업 현황을 불러올 수 없습니다.
+ ${error.message} +
+ `; + } +} + +// 본인 입력 작업자 현황 표시 (수정/삭제 기능 포함) +function displayMyDailyWorkers(data, date) { + const content = document.getElementById('dailyWorkersContent'); + + if (!Array.isArray(data) || data.length === 0) { + content.innerHTML = ` +
+ 📝 내가 오늘(${date}) 입력한 작업이 없습니다.
+ 새로운 작업을 추가해보세요! +
+ `; + return; + } + + // 작업자별로 데이터 그룹화 + const workerGroups = {}; + data.forEach(work => { + const workerName = work.worker_name || '미지정'; + if (!workerGroups[workerName]) { + workerGroups[workerName] = []; + } + workerGroups[workerName].push(work); + }); + + const totalWorkers = Object.keys(workerGroups).length; + const totalWorks = data.length; + + const headerHtml = ` +
+

📊 내가 입력한 오늘(${escapeHtml(date)}) 작업 현황 - 총 ${parseInt(totalWorkers) || 0}명, ${parseInt(totalWorks) || 0}개 작업

+ +
+ `; + + const workersHtml = Object.entries(workerGroups).map(([workerName, works]) => { + const totalHours = works.reduce((sum, work) => { + return sum + parseFloat(work.work_hours || 0); + }, 0); + + // 개별 작업 항목들 (수정/삭제 버튼 포함) + const individualWorksHtml = works.map((work) => { + const projectName = escapeHtml(work.project_name || '미지정'); + const workTypeName = escapeHtml(work.work_type_name || '미지정'); + const workStatusName = escapeHtml(work.work_status_name || '미지정'); + const workHours = parseFloat(work.work_hours || 0); + const errorTypeName = work.error_type_name ? escapeHtml(work.error_type_name) : null; + const workId = parseInt(work.id) || 0; + + return ` +
+
+
+
🏗️ 프로젝트
+
${projectName}
+
+
+
⚙️ 작업종류
+
${workTypeName}
+
+
+
📊 작업상태
+
${workStatusName}
+
+
+
⏰ 작업시간
+
${workHours}시간
+
+ ${errorTypeName ? ` +
+
❌ 에러유형
+
${errorTypeName}
+
+ ` : ''} +
+
+ + +
+
+ `; + }).join(''); + + return ` +
+
+
👤 ${escapeHtml(workerName)}
+
총 ${parseFloat(totalHours)}시간
+
+
+ ${individualWorksHtml} +
+
+ `; + }).join(''); + + content.innerHTML = headerHtml + '
' + workersHtml + '
'; +} + +// 작업 항목 수정 함수 (통합 API 사용) +async function editWorkItem(workId) { + try { + console.log('수정할 작업 ID:', workId); + + // 1. 기존 데이터 조회 (통합 API 사용) + showMessage('작업 정보를 불러오는 중... (통합 API)', 'loading'); + + const workData = await window.apiCall(`/daily-work-reports/${workId}`); + console.log('수정할 작업 데이터 (통합 API):', workData); + + // 2. 수정 모달 표시 + showEditModal(workData); + hideMessage(); + + } catch (error) { + console.error('작업 정보 조회 오류:', error); + showMessage('작업 정보를 불러올 수 없습니다: ' + error.message, 'error'); + } +} + +// 수정 모달 표시 +function showEditModal(workData) { + editingWorkId = workData.id; + + const modalHtml = ` +
+
+
+

✏️ 작업 수정

+ +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+ `; + + document.body.insertAdjacentHTML('beforeend', modalHtml); + + // 업무 상태 변경 이벤트 + document.getElementById('editWorkStatus').addEventListener('change', (e) => { + const errorTypeGroup = document.getElementById('editErrorTypeGroup'); + if (e.target.value === '2') { + errorTypeGroup.style.display = 'block'; + } else { + errorTypeGroup.style.display = 'none'; + } + }); +} + +// 수정 모달 닫기 +function closeEditModal() { + const modal = document.getElementById('editModal'); + if (modal) { + modal.remove(); + } + editingWorkId = null; +} + +// 수정된 작업 저장 (통합 API 사용) +async function saveEditedWork() { + try { + const projectId = document.getElementById('editProject').value; + const workTypeId = document.getElementById('editWorkType').value; + const workStatusId = document.getElementById('editWorkStatus').value; + const errorTypeId = document.getElementById('editErrorType').value; + const workHours = document.getElementById('editWorkHours').value; + + if (!projectId || !workTypeId || !workStatusId || !workHours) { + showMessage('모든 필수 항목을 입력해주세요.', 'error'); + return; + } + + if (workStatusId === '2' && !errorTypeId) { + showMessage('에러 상태인 경우 에러 유형을 선택해주세요.', 'error'); + return; + } + + const updateData = { + project_id: parseInt(projectId), + work_type_id: parseInt(workTypeId), + work_status_id: parseInt(workStatusId), + error_type_id: errorTypeId ? parseInt(errorTypeId) : null, + work_hours: parseFloat(workHours) + }; + + showMessage('작업을 수정하는 중... (통합 API)', 'loading'); + + const result = await window.apiCall(`/daily-work-reports/${editingWorkId}`, { + method: 'PUT', + body: JSON.stringify(updateData) + }); + + console.log('✅ 수정 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 수정되었습니다!', 'success'); + + closeEditModal(); + refreshTodayWorkers(); + + } catch (error) { + console.error('❌ 수정 실패:', error); + showMessage('수정 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 작업 항목 삭제 함수 (통합 API 사용) +async function deleteWorkItem(workId) { + if (!confirm('정말로 이 작업을 삭제하시겠습니까?\n삭제된 작업은 복구할 수 없습니다.')) { + return; + } + + try { + console.log('삭제할 작업 ID:', workId); + + showMessage('작업을 삭제하는 중... (통합 API)', 'loading'); + + // 개별 항목 삭제 API 호출 (본인 작성분만 삭제 가능) - 통합 API 사용 + const result = await window.apiCall(`/daily-work-reports/my-entry/${workId}`, { + method: 'DELETE' + }); + + console.log('✅ 삭제 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 삭제되었습니다!', 'success'); + + // 화면 새로고침 + refreshTodayWorkers(); + + } catch (error) { + console.error('❌ 삭제 실패:', error); + showMessage('삭제 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 오늘 현황 새로고침 +function refreshTodayWorkers() { + loadTodayWorkers(); +} + +// 이벤트 리스너 설정 (이제 테이블 기반 UI를 사용하므로 별도 리스너 불필요) +function setupEventListeners() { + // 기존 단계별 입력 UI 제거됨 + // 모든 이벤트는 onclick 핸들러로 직접 처리 +} + +// 초기화 +async function init() { + try { + const token = localStorage.getItem('token'); + if (!token || token === 'undefined') { + showMessage('로그인이 필요합니다.', 'error'); + localStorage.removeItem('token'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return; + } + + await loadData(); + setupEventListeners(); + + // TBM 작업 목록 로드 (기본 탭) + await loadIncompleteTbms(); + + console.log('✅ 시스템 초기화 완료 (통합 API 설정 적용)'); + + } catch (error) { + console.error('초기화 오류:', error); + showMessage('초기화 중 오류가 발생했습니다.', 'error'); + } +} + +// 페이지 로드 시 초기화 +document.addEventListener('DOMContentLoaded', init); + +// 전역 함수로 노출 +window.removeWorkEntry = removeWorkEntry; +window.refreshTodayWorkers = refreshTodayWorkers; +window.editWorkItem = editWorkItem; +window.deleteWorkItem = deleteWorkItem; +window.closeEditModal = closeEditModal; +window.saveEditedWork = saveEditedWork; +// ================================================================= +// 시간 선택 팝오버 관련 함수 +// ================================================================= + +/** + * 시간 포맷팅 함수 + */ +function formatHours(hours) { + const h = Math.floor(hours); + const m = (hours % 1) * 60; + if (m === 0) return `${h}시간`; + return `${h}시간 ${m}분`; +} + +/** + * 시간 선택 팝오버 열기 + */ +window.openTimePicker = function(index, type) { + currentEditingField = { index, type }; + + // 현재 값 가져오기 + const inputId = type === 'total' ? `totalHours_${index}` : `errorHours_${index}`; + const hiddenInput = document.getElementById(inputId); + currentTimeValue = parseFloat(hiddenInput?.value) || 0; + + // 팝오버 표시 + const overlay = document.getElementById('timePickerOverlay'); + const title = document.getElementById('timePickerTitle'); + + title.textContent = type === 'total' ? '작업시간 선택' : '부적합 시간 선택'; + updateTimeDisplay(); + + overlay.style.display = 'flex'; + + // ESC 키로 닫기 + document.addEventListener('keydown', handleEscapeKey); +}; + +/** + * ESC 키 핸들러 + */ +function handleEscapeKey(e) { + if (e.key === 'Escape') { + closeTimePicker(); + } +} + +/** + * 시간 값 설정 + */ +window.setTimeValue = function(hours) { + currentTimeValue = hours; + updateTimeDisplay(); +}; + +/** + * 시간 조정 (±30분) + */ +window.adjustTime = function(delta) { + currentTimeValue = Math.max(0, Math.min(24, currentTimeValue + delta)); + updateTimeDisplay(); +}; + +/** + * 시간 표시 업데이트 + */ +function updateTimeDisplay() { + const display = document.getElementById('currentTimeDisplay'); + if (display) { + display.textContent = formatHours(currentTimeValue); + } +} + +/** + * 시간 선택 확인 + */ +window.confirmTimeSelection = function() { + if (!currentEditingField) return; + + const { index, type, defectIndex, issueReportId } = currentEditingField; + + // 이슈 기반 부적합 시간 선택인 경우 + if (type === 'issueDefect') { + if (tempDefects[index] && tempDefects[index][defectIndex] !== undefined) { + tempDefects[index][defectIndex].defect_hours = currentTimeValue; + + // 시간 표시 업데이트 + const timeDisplay = document.getElementById(`issueDefectTime_${index}_${issueReportId}`); + if (timeDisplay) { + timeDisplay.textContent = currentTimeValue; + } + + // 요약 및 hidden 필드 업데이트 + updateDefectSummary(index); + updateHiddenDefectFields(index); + } + closeTimePicker(); + return; + } + + // 레거시 부적합 시간 선택인 경우 + if (type === 'defect') { + if (tempDefects[index] && tempDefects[index][defectIndex] !== undefined) { + tempDefects[index][defectIndex].defect_hours = currentTimeValue; + + // 시간 표시 업데이트 + const timeDisplay = document.getElementById(`defectTime_${index}_${defectIndex}`); + if (timeDisplay) { + timeDisplay.textContent = currentTimeValue; + } + + // 요약 및 hidden 필드 업데이트 + updateDefectSummary(index); + updateHiddenDefectFields(index); + } + closeTimePicker(); + return; + } + + // 기존 total/error 시간 선택 + const inputId = type === 'total' ? `totalHours_${index}` : `errorHours_${index}`; + const displayId = type === 'total' ? `totalHoursDisplay_${index}` : `errorHoursDisplay_${index}`; + + // hidden input 값 설정 + const hiddenInput = document.getElementById(inputId); + if (hiddenInput) { + hiddenInput.value = currentTimeValue; + } + + // 표시 영역 업데이트 + const displayDiv = document.getElementById(displayId); + if (displayDiv) { + displayDiv.textContent = formatHours(currentTimeValue); + displayDiv.classList.remove('placeholder'); + displayDiv.classList.add('has-value'); + } + + // 부적합 시간 입력 시 에러 타입 토글 (기존 방식 - 이제 사용안함) + if (type === 'error') { + if (index.toString().startsWith('manual_')) { + toggleManualErrorType(index); + } else { + calculateRegularHours(index); + } + } + + closeTimePicker(); +}; + +/** + * 시간 선택 팝오버 닫기 + */ +window.closeTimePicker = function() { + const overlay = document.getElementById('timePickerOverlay'); + if (overlay) { + overlay.style.display = 'none'; + } + + currentEditingField = null; + currentTimeValue = 0; + + // ESC 키 리스너 제거 + document.removeEventListener('keydown', handleEscapeKey); +}; + +// ================================================================= +// 부적합 원인 관리 (인라인 방식) +// ================================================================= + +/** + * 부적합 영역 토글 + * - 신고된 이슈 목록 표시 + */ +window.toggleDefectArea = function(index) { + const defectRow = document.getElementById(`defectRow_${index}`); + if (!defectRow) return; + + const isVisible = defectRow.style.display !== 'none'; + + if (isVisible) { + // 숨기기 + defectRow.style.display = 'none'; + } else { + // 보이기 - 부적합 원인이 없으면 자동으로 하나 추가 + if (!tempDefects[index] || tempDefects[index].length === 0) { + tempDefects[index] = [{ + issue_report_id: null, + category_id: null, + item_id: null, + error_type_id: '', // 레거시 호환 + defect_hours: 0, + note: '' + }]; + } + renderInlineDefectList(index); + defectRow.style.display = ''; + } +}; + +/** + * 인라인 부적합 목록 렌더링 + * - 해당 날짜에 신고된 이슈 목록을 표시 + * - 이슈 선택 → 시간 입력 방식 + */ +function renderInlineDefectList(index) { + const listContainer = document.getElementById(`defectList_${index}`); + if (!listContainer) return; + + // 해당 TBM의 날짜 가져오기 + const tbm = incompleteTbms[index]; + const dateStr = tbm ? formatDateForApi(tbm.session_date) : null; + const issues = dateStr ? (dailyIssuesCache[dateStr] || []) : []; + + // 작업장소 정보 가져오기 + const workerWorkplaceId = tbm?.workplace_id; + const workerWorkplaceName = tbm?.workplace_name; + + // 부적합 유형 + 작업장소 일치하는 것만 필터링 + const nonconformityIssues = issues.filter(i => { + // 부적합 유형만 + if (i.category_type !== 'nonconformity') return false; + + // 작업장소 매칭 (workplace_id 우선, 없으면 이름 비교) + if (workerWorkplaceId && i.workplace_id) { + return i.workplace_id === workerWorkplaceId; + } + if (workerWorkplaceName && (i.workplace_name || i.custom_location)) { + const issueLocation = i.workplace_name || i.custom_location || ''; + return issueLocation.includes(workerWorkplaceName) || workerWorkplaceName.includes(issueLocation); + } + // 작업장소 정보가 없으면 포함하지 않음 + return false; + }); + + const defects = tempDefects[index] || []; + + console.log(`📝 [renderInlineDefectList] index=${index}, 부적합 수=${defects.length}`, defects); + + // 이슈가 있으면 이슈 선택 UI, 없으면 레거시 UI + if (nonconformityIssues.length > 0) { + // 이슈 선택 방식 UI + let html = ` +
+
+ 📋 ${escapeHtml(workerWorkplaceName || '작업장소')} 관련 부적합 + ${parseInt(nonconformityIssues.length) || 0}건 +
+
+ `; + + nonconformityIssues.forEach(issue => { + // 이 이슈가 이미 선택되었는지 확인 + const existingDefect = defects.find(d => d.issue_report_id == issue.report_id); + const isSelected = !!existingDefect; + const defectHours = existingDefect?.defect_hours || 0; + + // 아이템명과 추가설명 조합 + let itemText = issue.issue_item_name || ''; + if (issue.additional_description) { + itemText = itemText ? `${itemText} - ${issue.additional_description}` : issue.additional_description; + } + + const safeReportId = parseInt(issue.report_id) || 0; + html += ` +
+
+ +
+
+ ${escapeHtml(issue.issue_category_name || '부적합')} + ${escapeHtml(itemText || '-')} + ${escapeHtml(issue.workplace_name || issue.custom_location || '')} +
+
+
+ ${parseFloat(defectHours) || 0} + 시간 +
+
+
+ `; + }); + + html += ` +
+
+ `; + + // 레거시 방식도 추가 (기타 부적합 추가 버튼) + html += ` +
+
+ ${renderLegacyDefects(index, defects)} +
+
+ + +
+ +
+ `; + + listContainer.innerHTML = html; + } else { + // 이슈가 없으면 레거시 UI (error_types 선택) + const noIssueMsg = workerWorkplaceName + ? `${escapeHtml(workerWorkplaceName)}에 신고된 부적합이 없습니다.` + : '신고된 부적합이 없습니다.'; + listContainer.innerHTML = ` +
+ ${noIssueMsg} +
+
+ ${renderLegacyDefects(index, defects)} +
+
+ + +
+ + `; + } + + updateDefectSummary(index); +} + +/** + * 레거시 부적합 렌더링 (저장된 항목 + 입력 중인 항목 분리) + */ +function renderLegacyDefects(index, defects) { + // issue_report_id가 없는 직접 입력 부적합 + const legacyDefects = defects.filter(d => !d.issue_report_id); + + if (legacyDefects.length === 0) return ''; + + // 저장된 항목과 입력 중인 항목 분리 + const savedDefects = legacyDefects.filter(d => d._saved); + const editingDefects = legacyDefects.filter(d => !d._saved); + + let html = ''; + + // 저장된 부적합 표시 (위쪽) + if (savedDefects.length > 0) { + html += `
+
+ 저장된 부적합 + ${savedDefects.length}건 +
+
`; + + savedDefects.forEach(defect => { + const defectIndex = defects.indexOf(defect); + const categoryName = defect.category_id + ? (issueCategories.find(c => c.category_id == defect.category_id)?.category_name || '미분류') + : '미분류'; + const itemName = defect.item_id + ? (issueItems.find(i => i.item_id == defect.item_id)?.item_name || '') + : ''; + + const displayText = itemName + ? `${categoryName} → ${itemName}` + : categoryName; + + html += ` +
+
+ ${categoryName} + ${itemName}${defect.note ? ' - ' + defect.note : ''} +
+
+ ${defect.defect_hours || 0}시간 + + +
+
+ `; + }); + + html += `
`; + } + + // 입력 중인 부적합 표시 (아래쪽) + if (editingDefects.length > 0) { + html += `
`; + + editingDefects.forEach(defect => { + const defectIndex = defects.indexOf(defect); + html += renderDefectInputForm(index, defect, defectIndex); + }); + + html += `
`; + } + + return html; +} + +/** + * 부적합 입력 폼 렌더링 (단일 항목) + */ +function renderDefectInputForm(index, defect, defectIndex) { + // 대분류 (카테고리) 옵션 + const categoryOptions = issueCategories.map(cat => + `` + ).join(''); + + // 소분류 (아이템) 옵션 - 선택된 카테고리의 아이템만 + const filteredItems = defect.category_id + ? issueItems.filter(item => item.category_id == defect.category_id) + : []; + const itemOptions = filteredItems.map(item => + `` + ).join(''); + + // 카테고리명/아이템명 표시 (미리보기용) + const categoryName = defect.category_id + ? (issueCategories.find(c => c.category_id == defect.category_id)?.category_name || '') + : ''; + const itemName = defect.item_id + ? (issueItems.find(i => i.item_id == defect.item_id)?.item_name || '') + : ''; + + return ` +
+
+ +
+ +
+ +
+
+ + +
+ +
+ +
+
+ + +
+ +
+ ${defect.defect_hours || 0} + 시간 +
+
+ + + +
+ + +
+ +
+ + + ${(categoryName || itemName) ? ` +
+ + ${categoryName}${itemName ? ' → ' + itemName : ''}${defect.note ? ' → ' + defect.note : ''} + +
+ ` : ''} +
+ `; +} + +/** + * 대분류 선택 변경 + */ +window.onDefectCategoryChange = async function(index, defectIndex, value) { + if (!tempDefects[index] || !tempDefects[index][defectIndex]) return; + + const defect = tempDefects[index][defectIndex]; + + if (value === '__new__') { + // 새 카테고리 추가 모달 + const newName = prompt('새 대분류(카테고리) 이름을 입력하세요:'); + if (newName && newName.trim()) { + try { + const response = await window.apiCall('/work-issues/categories', 'POST', { + category_name: newName.trim(), + category_type: 'nonconformity', + severity: 'medium' + }); + + if (response.success) { + // 카테고리 목록 새로고침 + await loadErrorTypes(); + // 새로 생성된 카테고리 선택 + const newCat = issueCategories.find(c => c.category_name === newName.trim()); + if (newCat) { + defect.category_id = newCat.category_id; + defect.item_id = null; + } + } else { + alert('카테고리 추가 실패: ' + (response.error || '알 수 없는 오류')); + defect.category_id = null; + } + } catch (e) { + alert('카테고리 추가 중 오류: ' + e.message); + defect.category_id = null; + } + } else { + // 취소 시 이전 값 유지 + defect.category_id = defect.category_id || null; + } + } else if (value) { + defect.category_id = parseInt(value); + defect.item_id = null; // 카테고리 변경 시 소분류 초기화 + } else { + defect.category_id = null; + defect.item_id = null; + } + + renderInlineDefectList(index); + updateHiddenDefectFields(index); +}; + +/** + * 소분류 선택 변경 + */ +window.onDefectItemChange = async function(index, defectIndex, value) { + if (!tempDefects[index] || !tempDefects[index][defectIndex]) return; + + const defect = tempDefects[index][defectIndex]; + + if (value === '__new__') { + // 새 아이템 추가 모달 + const newName = prompt('새 소분류(항목) 이름을 입력하세요:'); + if (newName && newName.trim() && defect.category_id) { + try { + const response = await window.apiCall('/work-issues/items', 'POST', { + category_id: defect.category_id, + item_name: newName.trim(), + severity: 'medium' + }); + + if (response.success) { + // 아이템 목록 새로고침 + await loadErrorTypes(); + // 새로 생성된 아이템 선택 + const newItem = issueItems.find(i => i.item_name === newName.trim() && i.category_id == defect.category_id); + if (newItem) { + defect.item_id = newItem.item_id; + } + } else { + alert('항목 추가 실패: ' + (response.error || '알 수 없는 오류')); + } + } catch (e) { + alert('항목 추가 중 오류: ' + e.message); + } + } + } else if (value) { + defect.item_id = parseInt(value); + } else { + defect.item_id = null; + } + + renderInlineDefectList(index); + updateHiddenDefectFields(index); +}; + +/** + * 이슈 부적합 토글 (체크박스) + */ +window.toggleIssueDefect = function(index, issueReportId, isChecked) { + if (!tempDefects[index]) { + tempDefects[index] = []; + } + + if (isChecked) { + // 이슈 부적합 추가 + tempDefects[index].push({ + issue_report_id: issueReportId, + error_type_id: null, // 이슈 기반이므로 null + defect_hours: 0, + note: '' + }); + } else { + // 이슈 부적합 제거 + const idx = tempDefects[index].findIndex(d => d.issue_report_id == issueReportId); + if (idx !== -1) { + tempDefects[index].splice(idx, 1); + } + } + + renderInlineDefectList(index); + updateHiddenDefectFields(index); +}; + +/** + * 이슈 부적합 시간 선택기 열기 + */ +window.openIssueDefectTimePicker = function(index, issueReportId) { + // 해당 이슈의 defect 찾기 + const defects = tempDefects[index] || []; + const defectIndex = defects.findIndex(d => d.issue_report_id == issueReportId); + + if (defectIndex === -1) return; + + currentEditingField = { index, type: 'issueDefect', issueReportId, defectIndex }; + currentTimeValue = defects[defectIndex]?.defect_hours || 0; + + // 팝오버 표시 + const overlay = document.getElementById('timePickerOverlay'); + const title = document.getElementById('timePickerTitle'); + + title.textContent = '부적합 시간 선택'; + updateTimeDisplay(); + + overlay.style.display = 'flex'; + + // ESC 키로 닫기 + document.addEventListener('keydown', handleEscapeKey); +}; + +/** + * 레거시 부적합 추가 (error_types 기반) + */ +window.addLegacyDefect = function(index) { + if (!tempDefects[index]) { + tempDefects[index] = []; + } + + tempDefects[index].push({ + issue_report_id: null, + category_id: null, + item_id: null, + error_type_id: '', // 레거시 호환 + defect_hours: 0, + note: '' + }); + + renderInlineDefectList(index); +}; + +/** + * 부적합 카테고리/아이템 선택 업데이트 (레거시 호환) + * @deprecated onDefectCategoryChange, onDefectItemChange 사용 권장 + */ +window.updateDefectCategory = function(index, defectIndex, value) { + // 레거시 호환 - 새 함수로 리다이렉트 + if (value && value.startsWith('cat_')) { + onDefectCategoryChange(index, defectIndex, value.replace('cat_', '')); + } else if (value && value.startsWith('item_')) { + const itemId = parseInt(value.replace('item_', '')); + const item = issueItems.find(i => i.item_id === itemId); + if (item) { + if (!tempDefects[index]?.[defectIndex]) return; + tempDefects[index][defectIndex].category_id = item.category_id; + tempDefects[index][defectIndex].item_id = itemId; + renderInlineDefectList(index); + updateHiddenDefectFields(index); + } + } +}; + +/** + * 인라인 부적합 추가 (레거시 호환) + */ +window.addInlineDefect = function(index) { + addLegacyDefect(index); +}; + +/** + * 부적합 저장 확인 (유효성 검사 후 저장 상태로 변경) + */ +window.saveDefectsConfirm = function(index) { + const defects = tempDefects[index] || []; + // 입력 중인 항목만 (저장되지 않은 항목) + const editingDefects = defects.filter(d => !d.issue_report_id && !d._saved); + + if (editingDefects.length === 0) { + alert('저장할 부적합 항목이 없습니다.\n"+ 부적합 추가" 버튼을 눌러 항목을 추가하세요.'); + return; + } + + // 유효성 검사 + const invalidDefects = []; + editingDefects.forEach((defect, i) => { + const errors = []; + if (!defect.category_id) { + errors.push('대분류'); + } + if (!defect.defect_hours || defect.defect_hours <= 0) { + errors.push('시간'); + } + if (errors.length > 0) { + invalidDefects.push({ index: i + 1, errors }); + } + }); + + if (invalidDefects.length > 0) { + const errorMsg = invalidDefects.map(d => + `${d.index}번째 항목: ${d.errors.join(', ')} 미입력` + ).join('\n'); + alert(`입력이 완료되지 않은 항목이 있습니다.\n\n${errorMsg}`); + return; + } + + // 모든 입력 중인 항목을 저장 상태로 변경 + editingDefects.forEach(defect => { + defect._saved = true; + }); + + // UI 다시 렌더링 + renderInlineDefectList(index); + updateHiddenDefectFields(index); + updateDefectSummary(index); + + console.log(`[부적합 저장] index=${index}, 저장된 항목 수=${editingDefects.length}`); +}; + +/** + * 저장된 부적합 수정 (저장 상태 해제하여 입력 폼으로 이동) + */ +window.editSavedDefect = function(index, defectIndex) { + if (!tempDefects[index] || !tempDefects[index][defectIndex]) return; + + // 원래 저장 상태였음을 기록 (취소 시 복원용) + tempDefects[index][defectIndex]._originalSaved = true; + tempDefects[index][defectIndex]._saved = false; + + // UI 다시 렌더링 + renderInlineDefectList(index); +}; + +/** + * 저장된 부적합 삭제 + */ +window.deleteSavedDefect = function(index, defectIndex) { + if (!tempDefects[index] || !tempDefects[index][defectIndex]) return; + + if (!confirm('이 부적합 항목을 삭제하시겠습니까?')) return; + + tempDefects[index].splice(defectIndex, 1); + + // UI 다시 렌더링 + renderInlineDefectList(index); + updateHiddenDefectFields(index); + updateDefectSummary(index); +}; + +/** + * 부적합 입력 취소 (저장되지 않은 항목 삭제) + */ +window.cancelDefectEdit = function(index, defectIndex) { + if (!tempDefects[index] || !tempDefects[index][defectIndex]) return; + + const defect = tempDefects[index][defectIndex]; + + // 원래 저장된 항목이었으면 저장 상태로 복원, 아니면 삭제 + if (defect._originalSaved) { + defect._saved = true; + delete defect._originalSaved; + } else { + tempDefects[index].splice(defectIndex, 1); + } + + // UI 다시 렌더링 + renderInlineDefectList(index); + updateHiddenDefectFields(index); + updateDefectSummary(index); +}; + +/** + * 인라인 부적합 수정 + */ +window.updateInlineDefect = function(index, defectIndex, field, value) { + if (tempDefects[index] && tempDefects[index][defectIndex]) { + if (field === 'defect_hours') { + tempDefects[index][defectIndex][field] = parseFloat(value) || 0; + } else { + tempDefects[index][defectIndex][field] = value; + } + updateDefectSummary(index); + updateHiddenDefectFields(index); + } +}; + +/** + * 인라인 부적합 삭제 + */ +window.removeInlineDefect = function(index, defectIndex) { + if (tempDefects[index]) { + tempDefects[index].splice(defectIndex, 1); + + // UI 다시 렌더링 (항상 - 빈 상태도 표시) + renderInlineDefectList(index); + updateDefectSummary(index); + updateHiddenDefectFields(index); + } +}; + +/** + * 부적합 시간 선택기 열기 (시간 선택 팝오버 재사용) + */ +window.openDefectTimePicker = function(index, defectIndex) { + currentEditingField = { index, type: 'defect', defectIndex }; + + // 현재 값 가져오기 + const defects = tempDefects[index] || []; + currentTimeValue = defects[defectIndex]?.defect_hours || 0; + + // 팝오버 표시 + const overlay = document.getElementById('timePickerOverlay'); + const title = document.getElementById('timePickerTitle'); + + title.textContent = '부적합 시간 선택'; + updateTimeDisplay(); + + overlay.style.display = 'flex'; + + // ESC 키로 닫기 + document.addEventListener('keydown', handleEscapeKey); +}; + +/** + * hidden input 필드 업데이트 + */ +function updateHiddenDefectFields(index) { + const defects = tempDefects[index] || []; + + // 총 부적합 시간 계산 + const totalErrorHours = defects.reduce((sum, d) => sum + (parseFloat(d.defect_hours) || 0), 0); + + // hidden input에 대표 error_type_id 저장 (첫 번째 값, item_id fallback) + const errorTypeInput = document.getElementById(`errorType_${index}`); + const errorTypeId = defects.length > 0 ? (defects[0].error_type_id || defects[0].item_id || null) : null; + if (errorTypeInput && errorTypeId) { + errorTypeInput.value = errorTypeId; + } else if (errorTypeInput) { + errorTypeInput.value = ''; + } + + // 부적합 시간 input 업데이트 + const errorHoursInput = document.getElementById(`errorHours_${index}`); + if (errorHoursInput) { + errorHoursInput.value = totalErrorHours; + } +} + +/** + * 부적합 요약 텍스트 업데이트 + * - 이슈 기반 부적합과 레거시 부적합 모두 포함 + */ +function updateDefectSummary(index) { + const summaryEl = document.getElementById(`defectSummary_${index}`); + const toggleBtn = document.getElementById(`defectToggle_${index}`); + if (!summaryEl) return; + + const defects = tempDefects[index] || []; + // 이슈 기반 또는 레거시 부적합 중 시간이 입력된 것만 유효 (item_id도 체크) + const validDefects = defects.filter(d => (d.issue_report_id || d.category_id || d.item_id || d.error_type_id) && d.defect_hours > 0); + + if (validDefects.length === 0) { + summaryEl.textContent = '없음'; + summaryEl.style.color = '#6b7280'; + if (toggleBtn) toggleBtn.classList.remove('has-defect'); + } else { + const totalHours = validDefects.reduce((sum, d) => sum + d.defect_hours, 0); + if (validDefects.length === 1) { + let typeName = '부적합'; + if (validDefects[0].issue_report_id) { + // 이슈 기반 - 이슈 캐시에서 이름 찾기 + const tbm = incompleteTbms[index]; + if (tbm) { + const dateStr = formatDateForApi(tbm.session_date); + const issues = dailyIssuesCache[dateStr] || []; + const issue = issues.find(i => i.report_id == validDefects[0].issue_report_id); + typeName = issue?.issue_item_name || issue?.issue_category_name || '부적합'; + } + } else if (validDefects[0].item_id) { + // 신규 방식 - issue_report_items에서 이름 찾기 + typeName = issueItems.find(i => i.item_id == validDefects[0].item_id)?.item_name || '부적합'; + } else if (validDefects[0].category_id) { + // 카테고리만 선택된 경우 + typeName = issueCategories.find(c => c.category_id == validDefects[0].category_id)?.category_name || '부적합'; + } else if (validDefects[0].error_type_id) { + // 레거시 - error_types에서 이름 찾기 또는 issue_report_items에서 찾기 + typeName = issueItems.find(i => i.item_id == validDefects[0].error_type_id)?.item_name || + errorTypes.find(et => et.id == validDefects[0].error_type_id)?.name || '부적합'; + } + summaryEl.textContent = `${typeName} ${totalHours}h`; + } else { + summaryEl.textContent = `${validDefects.length}건 ${totalHours}h`; + } + summaryEl.style.color = '#dc2626'; + if (toggleBtn) toggleBtn.classList.add('has-defect'); + } + + // hidden 필드도 업데이트 + updateHiddenDefectFields(index); +} diff --git a/deploy/tkfb-package/web-ui/js/daily-work-report/api.js b/deploy/tkfb-package/web-ui/js/daily-work-report/api.js new file mode 100644 index 0000000..55c2a7c --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/daily-work-report/api.js @@ -0,0 +1,386 @@ +/** + * Daily Work Report - API Client + * 작업보고서 관련 모든 API 호출을 관리 + */ + +class DailyWorkReportAPI { + constructor() { + this.state = window.DailyWorkReportState; + console.log('[API] DailyWorkReportAPI 초기화'); + } + + /** + * 작업자 로드 (생산팀 소속) + */ + async loadWorkers() { + try { + console.log('[API] Workers 로딩 중...'); + const data = await window.apiCall('/workers?limit=1000&department_id=1'); + const allWorkers = Array.isArray(data) ? data : (data.data || data.workers || []); + + // 퇴사자만 제외 + const filtered = allWorkers.filter(worker => worker.employment_status !== 'resigned'); + + this.state.workers = filtered; + console.log(`[API] Workers 로드 완료: ${filtered.length}명`); + return filtered; + } catch (error) { + console.error('[API] 작업자 로딩 오류:', error); + throw error; + } + } + + /** + * 프로젝트 로드 (활성 프로젝트만) + */ + async loadProjects() { + try { + console.log('[API] Projects 로딩 중...'); + const data = await window.apiCall('/projects/active/list'); + const projects = Array.isArray(data) ? data : (data.data || data.projects || []); + + this.state.projects = projects; + console.log(`[API] Projects 로드 완료: ${projects.length}개`); + return projects; + } catch (error) { + console.error('[API] 프로젝트 로딩 오류:', error); + throw error; + } + } + + /** + * 작업 유형 로드 + */ + async loadWorkTypes() { + try { + const data = await window.apiCall('/daily-work-reports/work-types'); + if (Array.isArray(data) && data.length > 0) { + this.state.workTypes = data; + console.log('[API] 작업 유형 로드 완료:', data.length); + return data; + } + throw new Error('API 실패'); + } catch (error) { + console.log('[API] 작업 유형 API 사용 불가, 기본값 사용'); + this.state.workTypes = [ + { id: 1, name: 'Base' }, + { id: 2, name: 'Vessel' }, + { id: 3, name: 'Piping' } + ]; + return this.state.workTypes; + } + } + + /** + * 업무 상태 유형 로드 + */ + async loadWorkStatusTypes() { + try { + const data = await window.apiCall('/daily-work-reports/work-status-types'); + if (Array.isArray(data) && data.length > 0) { + this.state.workStatusTypes = data; + console.log('[API] 업무 상태 유형 로드 완료:', data.length); + return data; + } + throw new Error('API 실패'); + } catch (error) { + console.log('[API] 업무 상태 유형 API 사용 불가, 기본값 사용'); + this.state.workStatusTypes = [ + { id: 1, name: '정상', is_error: false }, + { id: 2, name: '부적합', is_error: true } + ]; + return this.state.workStatusTypes; + } + } + + /** + * 오류 유형 로드 (신고 카테고리/아이템) + */ + async loadErrorTypes() { + try { + // 1. 신고 카테고리 (nonconformity만) + const categoriesResponse = await window.apiCall('/work-issues/categories'); + if (categoriesResponse.success && categoriesResponse.data) { + this.state.issueCategories = categoriesResponse.data.filter( + c => c.category_type === 'nonconformity' + ); + console.log('[API] 신고 카테고리 로드:', this.state.issueCategories.length); + } + + // 2. 신고 아이템 전체 + const itemsResponse = await window.apiCall('/work-issues/items'); + if (itemsResponse.success && itemsResponse.data) { + // nonconformity 카테고리의 아이템만 필터링 + const nonconfCatIds = this.state.issueCategories.map(c => c.category_id); + this.state.issueItems = itemsResponse.data.filter( + item => nonconfCatIds.includes(item.category_id) + ); + console.log('[API] 신고 아이템 로드:', this.state.issueItems.length); + } + + // 레거시 호환: errorTypes에 카테고리 매핑 + this.state.errorTypes = this.state.issueCategories.map(cat => ({ + id: cat.category_id, + name: cat.category_name + })); + + } catch (error) { + console.error('[API] 오류 유형 로딩 오류:', error); + // 기본값 설정 + this.state.errorTypes = [ + { id: 1, name: '자재 부적합' }, + { id: 2, name: '도면 오류' }, + { id: 3, name: '장비 고장' } + ]; + } + } + + /** + * 미완료 TBM 세션 로드 + */ + async loadIncompleteTbms() { + try { + const response = await window.apiCall('/tbm/sessions/incomplete-reports'); + + if (!response.success) { + throw new Error(response.message || '미완료 TBM 조회 실패'); + } + + let data = response.data || []; + + // 사용자 권한 확인 및 필터링 + const user = this.state.getUser(); + if (user && user.role !== 'Admin' && user.access_level !== 'system') { + const userId = user.user_id; + data = data.filter(tbm => tbm.created_by === userId); + } + + this.state.incompleteTbms = data; + console.log('[API] 미완료 TBM 로드 완료:', data.length); + return data; + } catch (error) { + console.error('[API] 미완료 TBM 로드 오류:', error); + throw error; + } + } + + /** + * TBM 세션별 당일 신고 로드 + */ + async loadDailyIssuesForTbms() { + const tbms = this.state.incompleteTbms; + if (!tbms || tbms.length === 0) { + console.log('[API] 미완료 TBM 없음, 신고 조회 건너뜀'); + return; + } + + // 고유한 날짜 수집 + const uniqueDates = [...new Set(tbms.map(tbm => { + return window.DailyWorkReportUtils?.formatDateForApi(tbm.session_date) || + this.formatDateForApi(tbm.session_date); + }).filter(Boolean))]; + + console.log('[API] 조회할 날짜들:', uniqueDates); + + for (const dateStr of uniqueDates) { + if (this.state.dailyIssuesCache[dateStr]) { + console.log(`[API] 캐시 사용 (${dateStr})`); + continue; + } + + try { + const response = await window.apiCall(`/work-issues?start_date=${dateStr}&end_date=${dateStr}`); + if (response.success) { + this.state.setDailyIssuesCache(dateStr, response.data || []); + console.log(`[API] 신고 로드 완료 (${dateStr}):`, this.state.dailyIssuesCache[dateStr].length); + } else { + this.state.setDailyIssuesCache(dateStr, []); + } + } catch (error) { + console.error(`[API] 신고 조회 오류 (${dateStr}):`, error); + this.state.setDailyIssuesCache(dateStr, []); + } + } + } + + /** + * 완료된 작업보고서 조회 + */ + async loadCompletedReports(date) { + try { + const response = await window.apiCall(`/daily-work-reports/v2/reports?date=${date}`); + if (response.success) { + console.log(`[API] 완료 보고서 로드 (${date}):`, response.data?.length || 0); + return response.data || []; + } + throw new Error(response.message || '조회 실패'); + } catch (error) { + console.error('[API] 완료 보고서 로드 오류:', error); + throw error; + } + } + + /** + * TBM 작업보고서 제출 + */ + async submitTbmWorkReport(reportData) { + try { + const response = await window.apiCall('/daily-work-reports/from-tbm', 'POST', reportData); + if (!response.success) { + throw new Error(response.message || '제출 실패'); + } + console.log('[API] TBM 작업보고서 제출 완료:', response); + return response; + } catch (error) { + console.error('[API] TBM 작업보고서 제출 오류:', error); + throw error; + } + } + + /** + * 수동 작업보고서 제출 + */ + async submitManualWorkReport(reportData) { + try { + const response = await window.apiCall('/daily-work-reports/v2/reports', 'POST', reportData); + if (!response.success) { + throw new Error(response.message || '제출 실패'); + } + console.log('[API] 수동 작업보고서 제출 완료:', response); + return response; + } catch (error) { + console.error('[API] 수동 작업보고서 제출 오류:', error); + throw error; + } + } + + /** + * 작업보고서 삭제 + */ + async deleteWorkReport(reportId) { + try { + const response = await window.apiCall(`/daily-work-reports/v2/reports/${reportId}`, 'DELETE'); + if (!response.success) { + throw new Error(response.message || '삭제 실패'); + } + console.log('[API] 작업보고서 삭제 완료:', reportId); + return response; + } catch (error) { + console.error('[API] 작업보고서 삭제 오류:', error); + throw error; + } + } + + /** + * 작업보고서 수정 + */ + async updateWorkReport(reportId, updateData) { + try { + const response = await window.apiCall(`/daily-work-reports/v2/reports/${reportId}`, 'PUT', updateData); + if (!response.success) { + throw new Error(response.message || '수정 실패'); + } + console.log('[API] 작업보고서 수정 완료:', reportId); + return response; + } catch (error) { + console.error('[API] 작업보고서 수정 오류:', error); + throw error; + } + } + + /** + * 신고 카테고리 추가 + */ + async addIssueCategory(categoryData) { + try { + const response = await window.apiCall('/work-issues/categories', 'POST', categoryData); + if (response.success) { + await this.loadErrorTypes(); // 목록 새로고침 + } + return response; + } catch (error) { + console.error('[API] 카테고리 추가 오류:', error); + throw error; + } + } + + /** + * 신고 아이템 추가 + */ + async addIssueItem(itemData) { + try { + const response = await window.apiCall('/work-issues/items', 'POST', itemData); + if (response.success) { + await this.loadErrorTypes(); // 목록 새로고침 + } + return response; + } catch (error) { + console.error('[API] 아이템 추가 오류:', error); + throw error; + } + } + + /** + * 모든 기본 데이터 로드 + */ + async loadAllData() { + console.log('[API] 모든 기본 데이터 로딩 시작...'); + + await Promise.all([ + this.loadWorkers(), + this.loadProjects(), + this.loadWorkTypes(), + this.loadWorkStatusTypes(), + this.loadErrorTypes() + ]); + + console.log('[API] 모든 기본 데이터 로딩 완료'); + } + + // 유틸리티: 날짜 형식 변환 (API 형식) + formatDateForApi(date) { + if (!date) return null; + + let dateObj; + if (date instanceof Date) { + dateObj = date; + } else if (typeof date === 'string') { + dateObj = new Date(date); + } else { + return null; + } + + const year = dateObj.getFullYear(); + const month = String(dateObj.getMonth() + 1).padStart(2, '0'); + const day = String(dateObj.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; + } +} + +// 전역 인스턴스 생성 +window.DailyWorkReportAPI = new DailyWorkReportAPI(); + +// 하위 호환성: 기존 함수들 +window.loadWorkers = () => window.DailyWorkReportAPI.loadWorkers(); +window.loadProjects = () => window.DailyWorkReportAPI.loadProjects(); +window.loadWorkTypes = () => window.DailyWorkReportAPI.loadWorkTypes(); +window.loadWorkStatusTypes = () => window.DailyWorkReportAPI.loadWorkStatusTypes(); +window.loadErrorTypes = () => window.DailyWorkReportAPI.loadErrorTypes(); +window.loadIncompleteTbms = () => window.DailyWorkReportAPI.loadIncompleteTbms(); +window.loadDailyIssuesForTbms = () => window.DailyWorkReportAPI.loadDailyIssuesForTbms(); +window.loadCompletedReports = () => window.DailyWorkReportAPI.loadCompletedReports( + document.getElementById('completedReportDate')?.value +); + +// 통합 데이터 로드 함수 +window.loadData = async () => { + try { + window.showMessage?.('데이터를 불러오는 중...', 'loading'); + await window.DailyWorkReportAPI.loadAllData(); + window.hideMessage?.(); + } catch (error) { + console.error('[API] 데이터 로드 실패:', error); + window.showMessage?.('데이터 로드 중 오류가 발생했습니다: ' + error.message, 'error'); + } +}; diff --git a/deploy/tkfb-package/web-ui/js/daily-work-report/index.js b/deploy/tkfb-package/web-ui/js/daily-work-report/index.js new file mode 100644 index 0000000..03184dd --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/daily-work-report/index.js @@ -0,0 +1,318 @@ +/** + * Daily Work Report - Module Loader + * 작업보고서 모듈을 초기화하고 연결하는 메인 진입점 + * + * 로드 순서: + * 1. state.js - 전역 상태 관리 + * 2. utils.js - 유틸리티 함수 + * 3. api.js - API 클라이언트 + * 4. index.js - 이 파일 (메인 컨트롤러) + */ + +class DailyWorkReportController { + constructor() { + this.state = window.DailyWorkReportState; + this.api = window.DailyWorkReportAPI; + this.utils = window.DailyWorkReportUtils; + this.initialized = false; + + console.log('[Controller] DailyWorkReportController 생성'); + } + + /** + * 초기화 + */ + async init() { + if (this.initialized) { + console.log('[Controller] 이미 초기화됨'); + return; + } + + console.log('[Controller] 초기화 시작...'); + + try { + // 이벤트 리스너 설정 + this.setupEventListeners(); + + // 기본 데이터 로드 + await this.api.loadAllData(); + + // TBM 탭이 기본 + await this.switchTab('tbm'); + + this.initialized = true; + console.log('[Controller] 초기화 완료'); + + } catch (error) { + console.error('[Controller] 초기화 실패:', error); + window.showMessage?.('초기화 중 오류가 발생했습니다: ' + error.message, 'error'); + } + } + + /** + * 이벤트 리스너 설정 + */ + setupEventListeners() { + // 탭 버튼 + const tbmBtn = document.getElementById('tbmReportTab'); + const completedBtn = document.getElementById('completedReportTab'); + + if (tbmBtn) { + tbmBtn.addEventListener('click', () => this.switchTab('tbm')); + } + if (completedBtn) { + completedBtn.addEventListener('click', () => this.switchTab('completed')); + } + + // 완료 보고서 날짜 변경 + const completedDateInput = document.getElementById('completedReportDate'); + if (completedDateInput) { + completedDateInput.addEventListener('change', () => this.loadCompletedReports()); + } + + console.log('[Controller] 이벤트 리스너 설정 완료'); + } + + /** + * 탭 전환 + */ + async switchTab(tab) { + this.state.setCurrentTab(tab); + + const tbmBtn = document.getElementById('tbmReportTab'); + const completedBtn = document.getElementById('completedReportTab'); + const tbmSection = document.getElementById('tbmReportSection'); + const completedSection = document.getElementById('completedReportSection'); + + // 모든 탭 버튼 비활성화 + tbmBtn?.classList.remove('active'); + completedBtn?.classList.remove('active'); + + // 모든 섹션 숨기기 + if (tbmSection) tbmSection.style.display = 'none'; + if (completedSection) completedSection.style.display = 'none'; + + // 선택된 탭 활성화 + if (tab === 'tbm') { + tbmBtn?.classList.add('active'); + if (tbmSection) tbmSection.style.display = 'block'; + await this.loadTbmData(); + } else if (tab === 'completed') { + completedBtn?.classList.add('active'); + if (completedSection) completedSection.style.display = 'block'; + + // 오늘 날짜로 초기화 + const dateInput = document.getElementById('completedReportDate'); + if (dateInput) { + dateInput.value = this.utils.getKoreaToday(); + } + await this.loadCompletedReports(); + } + } + + /** + * TBM 데이터 로드 + */ + async loadTbmData() { + try { + await this.api.loadIncompleteTbms(); + await this.api.loadDailyIssuesForTbms(); + + // 렌더링은 기존 함수 사용 (점진적 마이그레이션) + if (typeof window.renderTbmWorkList === 'function') { + window.renderTbmWorkList(); + } + } catch (error) { + console.error('[Controller] TBM 데이터 로드 오류:', error); + window.showMessage?.('TBM 데이터를 불러오는 중 오류가 발생했습니다.', 'error'); + } + } + + /** + * 완료 보고서 로드 + */ + async loadCompletedReports() { + try { + const dateInput = document.getElementById('completedReportDate'); + const date = dateInput?.value || this.utils.getKoreaToday(); + + const reports = await this.api.loadCompletedReports(date); + + // 렌더링은 기존 함수 사용 + if (typeof window.renderCompletedReports === 'function') { + window.renderCompletedReports(reports); + } + } catch (error) { + console.error('[Controller] 완료 보고서 로드 오류:', error); + window.showMessage?.('완료 보고서를 불러오는 중 오류가 발생했습니다.', 'error'); + } + } + + /** + * TBM 작업보고서 제출 + */ + async submitTbmWorkReport(index) { + try { + const tbm = this.state.incompleteTbms[index]; + if (!tbm) { + throw new Error('TBM 데이터를 찾을 수 없습니다.'); + } + + // 유효성 검사 + const totalHoursInput = document.getElementById(`totalHours_${index}`); + const totalHours = parseFloat(totalHoursInput?.value); + + if (!totalHours || totalHours <= 0) { + window.showMessage?.('작업시간을 입력해주세요.', 'warning'); + return; + } + + // 부적합 시간 계산 + const defects = this.state.tempDefects[index] || []; + const errorHours = defects.reduce((sum, d) => sum + (parseFloat(d.defect_hours) || 0), 0); + const regularHours = totalHours - errorHours; + + if (regularHours < 0) { + window.showMessage?.('부적합 시간이 총 작업시간을 초과할 수 없습니다.', 'warning'); + return; + } + + // API 데이터 구성 + const user = this.state.getCurrentUser(); + const reportData = { + tbm_session_id: tbm.session_id, + tbm_assignment_id: tbm.assignment_id, + worker_id: tbm.worker_id, + project_id: tbm.project_id, + work_type_id: tbm.work_type_id, + report_date: this.utils.formatDateForApi(tbm.session_date), + total_hours: totalHours, + regular_hours: regularHours, + error_hours: errorHours, + work_status_id: errorHours > 0 ? 2 : 1, + created_by: user?.user_id || user?.id, + defects: defects.map(d => ({ + category_id: d.category_id, + item_id: d.item_id, + issue_report_id: d.issue_report_id, + defect_hours: d.defect_hours, + note: d.note + })) + }; + + const result = await this.api.submitTbmWorkReport(reportData); + + window.showSaveResultModal?.( + 'success', + '제출 완료', + `${tbm.worker_name}의 작업보고서가 제출되었습니다.` + ); + + // 목록 새로고침 + await this.loadTbmData(); + + } catch (error) { + console.error('[Controller] 제출 오류:', error); + window.showSaveResultModal?.( + 'error', + '제출 실패', + error.message || '작업보고서 제출 중 오류가 발생했습니다.' + ); + } + } + + /** + * 세션 일괄 제출 + */ + async batchSubmitSession(sessionKey) { + const rows = document.querySelectorAll(`tr[data-session-key="${sessionKey}"][data-type="tbm"]`); + const indices = []; + + rows.forEach(row => { + const index = parseInt(row.dataset.index); + const totalHoursInput = document.getElementById(`totalHours_${index}`); + if (totalHoursInput?.value && parseFloat(totalHoursInput.value) > 0) { + indices.push(index); + } + }); + + if (indices.length === 0) { + window.showMessage?.('제출할 항목이 없습니다. 작업시간을 입력해주세요.', 'warning'); + return; + } + + const confirmed = confirm(`${indices.length}건의 작업보고서를 일괄 제출하시겠습니까?`); + if (!confirmed) return; + + let successCount = 0; + let failCount = 0; + + for (const index of indices) { + try { + await this.submitTbmWorkReport(index); + successCount++; + } catch (error) { + failCount++; + console.error(`[Controller] 일괄 제출 오류 (index: ${index}):`, error); + } + } + + if (failCount === 0) { + window.showSaveResultModal?.('success', '일괄 제출 완료', `${successCount}건이 성공적으로 제출되었습니다.`); + } else { + window.showSaveResultModal?.('warning', '일괄 제출 부분 완료', `성공: ${successCount}건, 실패: ${failCount}건`); + } + } + + /** + * 상태 디버그 + */ + debug() { + console.log('[Controller] 상태 디버그:'); + this.state.debug(); + } +} + +// 전역 인스턴스 생성 +window.DailyWorkReportController = new DailyWorkReportController(); + +// 하위 호환성: 기존 전역 함수들 +window.switchTab = (tab) => window.DailyWorkReportController.switchTab(tab); +window.submitTbmWorkReport = (index) => window.DailyWorkReportController.submitTbmWorkReport(index); +window.batchSubmitTbmSession = (sessionKey) => window.DailyWorkReportController.batchSubmitSession(sessionKey); + +// 사용자 정보 함수 +window.getUser = () => window.DailyWorkReportState.getUser(); +window.getCurrentUser = () => window.DailyWorkReportState.getCurrentUser(); + +// 날짜 그룹 토글 (UI 함수) +window.toggleDateGroup = function(dateStr) { + const group = document.querySelector(`.date-group[data-date="${dateStr}"]`); + if (!group) return; + + const isExpanded = group.classList.contains('expanded'); + const content = group.querySelector('.date-group-content'); + const icon = group.querySelector('.date-toggle-icon'); + + if (isExpanded) { + group.classList.remove('expanded'); + group.classList.add('collapsed'); + if (content) content.style.display = 'none'; + if (icon) icon.textContent = '▶'; + } else { + group.classList.remove('collapsed'); + group.classList.add('expanded'); + if (content) content.style.display = 'block'; + if (icon) icon.textContent = '▼'; + } +}; + +// DOMContentLoaded 이벤트에서 초기화 +document.addEventListener('DOMContentLoaded', () => { + // 약간의 지연 후 초기화 (다른 스크립트 로드 대기) + setTimeout(() => { + window.DailyWorkReportController.init(); + }, 100); +}); + +console.log('[Module] daily-work-report/index.js 로드 완료'); diff --git a/deploy/tkfb-package/web-ui/js/daily-work-report/state.js b/deploy/tkfb-package/web-ui/js/daily-work-report/state.js new file mode 100644 index 0000000..ea9b9cb --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/daily-work-report/state.js @@ -0,0 +1,342 @@ +/** + * Daily Work Report - State Manager + * 작업보고서 페이지의 전역 상태 관리 + */ + +class DailyWorkReportState { + constructor() { + // 마스터 데이터 + this.workTypes = []; + this.workStatusTypes = []; + this.errorTypes = []; // 레거시 호환용 + this.issueCategories = []; // 신고 카테고리 (nonconformity) + this.issueItems = []; // 신고 아이템 + this.workers = []; + this.projects = []; + + // UI 상태 + this.selectedWorkers = new Set(); + this.workEntryCounter = 0; + this.currentStep = 1; + this.editingWorkId = null; + this.currentTab = 'tbm'; + + // TBM 관련 + this.incompleteTbms = []; + + // 부적합 원인 관리 + this.currentDefectIndex = null; + this.tempDefects = {}; // { index: [{ error_type_id, defect_hours, note }] } + + // 작업장소 지도 관련 + this.mapCanvas = null; + this.mapCtx = null; + this.mapImage = null; + this.mapRegions = []; + this.selectedWorkplace = null; + this.selectedWorkplaceName = null; + this.selectedWorkplaceCategory = null; + this.selectedWorkplaceCategoryName = null; + + // 시간 선택 관련 + this.currentEditingField = null; // { index, type: 'total' | 'error' } + this.currentTimeValue = 0; + + // 캐시 + this.dailyIssuesCache = {}; // { 'YYYY-MM-DD': [issues] } + + // 리스너 + this.listeners = new Map(); + + console.log('[State] DailyWorkReportState 초기화 완료'); + } + + /** + * 상태 업데이트 + */ + update(key, value) { + const prevValue = this[key]; + this[key] = value; + this.notifyListeners(key, value, prevValue); + } + + /** + * 리스너 등록 + */ + subscribe(key, callback) { + if (!this.listeners.has(key)) { + this.listeners.set(key, []); + } + this.listeners.get(key).push(callback); + } + + /** + * 리스너에게 알림 + */ + notifyListeners(key, newValue, prevValue) { + const keyListeners = this.listeners.get(key) || []; + keyListeners.forEach(callback => { + try { + callback(newValue, prevValue); + } catch (error) { + console.error(`[State] 리스너 오류 (${key}):`, error); + } + }); + } + + /** + * 현재 사용자 정보 가져오기 + */ + getUser() { + const user = localStorage.getItem('user'); + return user ? JSON.parse(user) : null; + } + + /** + * 토큰에서 사용자 정보 추출 + */ + getCurrentUser() { + try { + const token = localStorage.getItem('token'); + if (!token) return null; + + const payloadBase64 = token.split('.')[1]; + if (payloadBase64) { + const payload = JSON.parse(atob(payloadBase64)); + return payload; + } + } catch (error) { + console.log('[State] 토큰에서 사용자 정보 추출 실패:', error); + } + + try { + const userInfo = localStorage.getItem('user') || localStorage.getItem('userInfo') || localStorage.getItem('currentUser'); + if (userInfo) { + return JSON.parse(userInfo); + } + } catch (error) { + console.log('[State] localStorage에서 사용자 정보 가져오기 실패:', error); + } + + return null; + } + + /** + * 선택된 작업자 토글 + */ + toggleWorkerSelection(workerId) { + if (this.selectedWorkers.has(workerId)) { + this.selectedWorkers.delete(workerId); + } else { + this.selectedWorkers.add(workerId); + } + this.notifyListeners('selectedWorkers', this.selectedWorkers, null); + } + + /** + * 작업자 전체 선택/해제 + */ + selectAllWorkers(select = true) { + if (select) { + this.workers.forEach(w => this.selectedWorkers.add(w.worker_id)); + } else { + this.selectedWorkers.clear(); + } + this.notifyListeners('selectedWorkers', this.selectedWorkers, null); + } + + /** + * 작업 항목 카운터 증가 + */ + incrementWorkEntryCounter() { + this.workEntryCounter++; + return this.workEntryCounter; + } + + /** + * 탭 변경 + */ + setCurrentTab(tab) { + const prevTab = this.currentTab; + this.currentTab = tab; + this.notifyListeners('currentTab', tab, prevTab); + } + + /** + * 부적합 임시 저장소 초기화 + */ + initTempDefects(index) { + if (!this.tempDefects[index]) { + this.tempDefects[index] = []; + } + } + + /** + * 부적합 추가 + */ + addTempDefect(index, defect) { + this.initTempDefects(index); + this.tempDefects[index].push(defect); + this.notifyListeners('tempDefects', this.tempDefects, null); + } + + /** + * 부적합 업데이트 + */ + updateTempDefect(index, defectIndex, field, value) { + if (this.tempDefects[index] && this.tempDefects[index][defectIndex]) { + this.tempDefects[index][defectIndex][field] = value; + this.notifyListeners('tempDefects', this.tempDefects, null); + } + } + + /** + * 부적합 삭제 + */ + removeTempDefect(index, defectIndex) { + if (this.tempDefects[index]) { + this.tempDefects[index].splice(defectIndex, 1); + this.notifyListeners('tempDefects', this.tempDefects, null); + } + } + + /** + * 일일 이슈 캐시 설정 + */ + setDailyIssuesCache(dateStr, issues) { + this.dailyIssuesCache[dateStr] = issues; + } + + /** + * 일일 이슈 캐시 조회 + */ + getDailyIssuesCache(dateStr) { + return this.dailyIssuesCache[dateStr] || []; + } + + /** + * 상태 초기화 + */ + reset() { + this.selectedWorkers.clear(); + this.workEntryCounter = 0; + this.currentStep = 1; + this.editingWorkId = null; + this.tempDefects = {}; + this.currentDefectIndex = null; + this.dailyIssuesCache = {}; + } + + /** + * 디버그 출력 + */ + debug() { + console.log('[State] 현재 상태:', { + workTypes: this.workTypes.length, + workers: this.workers.length, + projects: this.projects.length, + selectedWorkers: this.selectedWorkers.size, + currentTab: this.currentTab, + incompleteTbms: this.incompleteTbms.length, + tempDefects: Object.keys(this.tempDefects).length + }); + } +} + +// 전역 인스턴스 생성 +window.DailyWorkReportState = new DailyWorkReportState(); + +// 하위 호환성을 위한 전역 변수 프록시 +const stateProxy = window.DailyWorkReportState; + +// 기존 전역 변수들과 호환 +Object.defineProperties(window, { + workTypes: { + get: () => stateProxy.workTypes, + set: (v) => { stateProxy.workTypes = v; } + }, + workStatusTypes: { + get: () => stateProxy.workStatusTypes, + set: (v) => { stateProxy.workStatusTypes = v; } + }, + errorTypes: { + get: () => stateProxy.errorTypes, + set: (v) => { stateProxy.errorTypes = v; } + }, + issueCategories: { + get: () => stateProxy.issueCategories, + set: (v) => { stateProxy.issueCategories = v; } + }, + issueItems: { + get: () => stateProxy.issueItems, + set: (v) => { stateProxy.issueItems = v; } + }, + workers: { + get: () => stateProxy.workers, + set: (v) => { stateProxy.workers = v; } + }, + projects: { + get: () => stateProxy.projects, + set: (v) => { stateProxy.projects = v; } + }, + selectedWorkers: { + get: () => stateProxy.selectedWorkers, + set: (v) => { stateProxy.selectedWorkers = v; } + }, + incompleteTbms: { + get: () => stateProxy.incompleteTbms, + set: (v) => { stateProxy.incompleteTbms = v; } + }, + tempDefects: { + get: () => stateProxy.tempDefects, + set: (v) => { stateProxy.tempDefects = v; } + }, + dailyIssuesCache: { + get: () => stateProxy.dailyIssuesCache, + set: (v) => { stateProxy.dailyIssuesCache = v; } + }, + currentTab: { + get: () => stateProxy.currentTab, + set: (v) => { stateProxy.currentTab = v; } + }, + currentStep: { + get: () => stateProxy.currentStep, + set: (v) => { stateProxy.currentStep = v; } + }, + editingWorkId: { + get: () => stateProxy.editingWorkId, + set: (v) => { stateProxy.editingWorkId = v; } + }, + workEntryCounter: { + get: () => stateProxy.workEntryCounter, + set: (v) => { stateProxy.workEntryCounter = v; } + }, + currentDefectIndex: { + get: () => stateProxy.currentDefectIndex, + set: (v) => { stateProxy.currentDefectIndex = v; } + }, + currentEditingField: { + get: () => stateProxy.currentEditingField, + set: (v) => { stateProxy.currentEditingField = v; } + }, + currentTimeValue: { + get: () => stateProxy.currentTimeValue, + set: (v) => { stateProxy.currentTimeValue = v; } + }, + selectedWorkplace: { + get: () => stateProxy.selectedWorkplace, + set: (v) => { stateProxy.selectedWorkplace = v; } + }, + selectedWorkplaceName: { + get: () => stateProxy.selectedWorkplaceName, + set: (v) => { stateProxy.selectedWorkplaceName = v; } + }, + selectedWorkplaceCategory: { + get: () => stateProxy.selectedWorkplaceCategory, + set: (v) => { stateProxy.selectedWorkplaceCategory = v; } + }, + selectedWorkplaceCategoryName: { + get: () => stateProxy.selectedWorkplaceCategoryName, + set: (v) => { stateProxy.selectedWorkplaceCategoryName = v; } + } +}); diff --git a/deploy/tkfb-package/web-ui/js/daily-work-report/utils.js b/deploy/tkfb-package/web-ui/js/daily-work-report/utils.js new file mode 100644 index 0000000..c6c4db8 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/daily-work-report/utils.js @@ -0,0 +1,470 @@ +/** + * Daily Work Report - Utilities + * 작업보고서 관련 유틸리티 함수들 + */ + +class DailyWorkReportUtils { + constructor() { + console.log('[Utils] DailyWorkReportUtils 초기화'); + } + + /** + * 한국 시간 기준 오늘 날짜 (YYYY-MM-DD) + */ + getKoreaToday() { + const today = new Date(); + const year = today.getFullYear(); + const month = String(today.getMonth() + 1).padStart(2, '0'); + const day = String(today.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; + } + + /** + * 날짜를 API 형식(YYYY-MM-DD)으로 변환 + */ + formatDateForApi(date) { + if (!date) return null; + + let dateObj; + if (date instanceof Date) { + dateObj = date; + } else if (typeof date === 'string') { + dateObj = new Date(date); + } else { + return null; + } + + const year = dateObj.getFullYear(); + const month = String(dateObj.getMonth() + 1).padStart(2, '0'); + const day = String(dateObj.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; + } + + /** + * 날짜 포맷팅 (표시용) + */ + formatDate(date) { + if (!date) return '-'; + + let dateObj; + if (date instanceof Date) { + dateObj = date; + } else if (typeof date === 'string') { + dateObj = new Date(date); + } else { + return '-'; + } + + const year = dateObj.getFullYear(); + const month = String(dateObj.getMonth() + 1).padStart(2, '0'); + const day = String(dateObj.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; + } + + /** + * 시간 포맷팅 (HH:mm) + */ + formatTime(time) { + if (!time) return '-'; + if (typeof time === 'string' && time.includes(':')) { + return time.substring(0, 5); + } + return time; + } + + /** + * 상태 라벨 반환 + */ + getStatusLabel(status) { + const labels = { + 'pending': '접수', + 'in_progress': '처리중', + 'resolved': '해결', + 'completed': '완료', + 'closed': '종료' + }; + return labels[status] || status || '-'; + } + + /** + * 숫자 포맷팅 (천 단위 콤마) + */ + formatNumber(num) { + if (num === null || num === undefined) return '0'; + return num.toLocaleString('ko-KR'); + } + + /** + * 소수점 자리수 포맷팅 + */ + formatDecimal(num, decimals = 1) { + if (num === null || num === undefined) return '0'; + return Number(num).toFixed(decimals); + } + + /** + * 요일 반환 + */ + getDayOfWeek(date) { + const days = ['일', '월', '화', '수', '목', '금', '토']; + const dateObj = date instanceof Date ? date : new Date(date); + return days[dateObj.getDay()]; + } + + /** + * 오늘인지 확인 + */ + isToday(date) { + const today = this.getKoreaToday(); + const targetDate = this.formatDateForApi(date); + return today === targetDate; + } + + /** + * 두 날짜 사이 일수 계산 + */ + daysBetween(date1, date2) { + const d1 = new Date(date1); + const d2 = new Date(date2); + const diffTime = Math.abs(d2 - d1); + return Math.ceil(diffTime / (1000 * 60 * 60 * 24)); + } + + /** + * 디바운스 함수 + */ + debounce(func, wait) { + let timeout; + return function executedFunction(...args) { + const later = () => { + clearTimeout(timeout); + func(...args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; + } + + /** + * 쓰로틀 함수 + */ + throttle(func, limit) { + let inThrottle; + return function(...args) { + if (!inThrottle) { + func.apply(this, args); + inThrottle = true; + setTimeout(() => inThrottle = false, limit); + } + }; + } + + /** + * HTML 이스케이프 + */ + escapeHtml(text) { + if (!text) return ''; + const div = document.createElement('div'); + div.textContent = text; + return div.innerHTML; + } + + /** + * 객체 깊은 복사 + */ + deepClone(obj) { + return JSON.parse(JSON.stringify(obj)); + } + + /** + * 빈 값 확인 + */ + isEmpty(value) { + if (value === null || value === undefined) return true; + if (typeof value === 'string') return value.trim() === ''; + if (Array.isArray(value)) return value.length === 0; + if (typeof value === 'object') return Object.keys(value).length === 0; + return false; + } + + /** + * 숫자 유효성 검사 + */ + isValidNumber(value) { + return !isNaN(value) && isFinite(value); + } + + /** + * 시간 유효성 검사 (0-24) + */ + isValidHours(hours) { + const num = parseFloat(hours); + return this.isValidNumber(num) && num >= 0 && num <= 24; + } + + /** + * 쿼리 스트링 파싱 + */ + parseQueryString(queryString) { + const params = new URLSearchParams(queryString); + const result = {}; + for (const [key, value] of params) { + result[key] = value; + } + return result; + } + + /** + * 쿼리 스트링 생성 + */ + buildQueryString(params) { + return new URLSearchParams(params).toString(); + } + + /** + * 로컬 스토리지 안전하게 가져오기 + */ + getLocalStorage(key, defaultValue = null) { + try { + const item = localStorage.getItem(key); + return item ? JSON.parse(item) : defaultValue; + } catch (error) { + console.error('[Utils] localStorage 읽기 오류:', error); + return defaultValue; + } + } + + /** + * 로컬 스토리지 안전하게 저장하기 + */ + setLocalStorage(key, value) { + try { + localStorage.setItem(key, JSON.stringify(value)); + return true; + } catch (error) { + console.error('[Utils] localStorage 저장 오류:', error); + return false; + } + } + + /** + * 배열 그룹화 + */ + groupBy(array, key) { + return array.reduce((result, item) => { + const groupKey = typeof key === 'function' ? key(item) : item[key]; + if (!result[groupKey]) { + result[groupKey] = []; + } + result[groupKey].push(item); + return result; + }, {}); + } + + /** + * 배열 정렬 (다중 키) + */ + sortBy(array, ...keys) { + return [...array].sort((a, b) => { + for (const key of keys) { + const direction = key.startsWith('-') ? -1 : 1; + const actualKey = key.replace(/^-/, ''); + const aVal = a[actualKey]; + const bVal = b[actualKey]; + + if (aVal < bVal) return -1 * direction; + if (aVal > bVal) return 1 * direction; + } + return 0; + }); + } + + /** + * UUID 생성 + */ + generateUUID() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + const r = Math.random() * 16 | 0; + const v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); + } +} + +// 전역 인스턴스 생성 +window.DailyWorkReportUtils = new DailyWorkReportUtils(); + +// 하위 호환성: 기존 함수들 +window.getKoreaToday = () => window.DailyWorkReportUtils.getKoreaToday(); +window.formatDateForApi = (date) => window.DailyWorkReportUtils.formatDateForApi(date); +window.formatDate = (date) => window.DailyWorkReportUtils.formatDate(date); +window.getStatusLabel = (status) => window.DailyWorkReportUtils.getStatusLabel(status); + +// 메시지 표시 함수들 +window.showMessage = function(message, type = 'info') { + const container = document.getElementById('message-container'); + if (!container) { + console.log(`[Message] ${type}: ${message}`); + return; + } + + container.innerHTML = `
${message}
`; + + if (type === 'success') { + setTimeout(() => window.hideMessage(), 5000); + } +}; + +window.hideMessage = function() { + const container = document.getElementById('message-container'); + if (container) { + container.innerHTML = ''; + } +}; + +// 저장 결과 모달 +window.showSaveResultModal = function(type, title, message, details = null) { + const modal = document.getElementById('saveResultModal'); + const titleElement = document.getElementById('resultModalTitle'); + const contentElement = document.getElementById('resultModalContent'); + + if (!modal || !contentElement) { + alert(`${title}\n\n${message}`); + return; + } + + const icons = { + success: '✅', + error: '❌', + warning: '⚠️', + info: 'ℹ️' + }; + + let content = ` +
${icons[type] || icons.info}
+

${title}

+

${message}

+ `; + + if (details) { + if (Array.isArray(details) && details.length > 0) { + content += ` +
+

상세 정보:

+
    ${details.map(d => `
  • ${d}
  • `).join('')}
+
+ `; + } else if (typeof details === 'string') { + content += `

${details}

`; + } + } + + if (titleElement) titleElement.textContent = '저장 결과'; + contentElement.innerHTML = content; + modal.style.display = 'flex'; + + // ESC 키로 닫기 + const escHandler = (e) => { + if (e.key === 'Escape') { + window.closeSaveResultModal(); + document.removeEventListener('keydown', escHandler); + } + }; + document.addEventListener('keydown', escHandler); + + // 배경 클릭으로 닫기 + modal.onclick = (e) => { + if (e.target === modal) { + window.closeSaveResultModal(); + } + }; +}; + +window.closeSaveResultModal = function() { + const modal = document.getElementById('saveResultModal'); + if (modal) { + modal.style.display = 'none'; + } +}; + +// 단계 이동 함수 +window.goToStep = function(stepNumber) { + const state = window.DailyWorkReportState; + + for (let i = 1; i <= 3; i++) { + const step = document.getElementById(`step${i}`); + if (step) { + step.classList.remove('active', 'completed'); + if (i < stepNumber) { + step.classList.add('completed'); + const stepNum = step.querySelector('.step-number'); + if (stepNum) stepNum.classList.add('completed'); + } else if (i === stepNumber) { + step.classList.add('active'); + } + } + } + + window.updateProgressSteps(stepNumber); + state.currentStep = stepNumber; +}; + +window.updateProgressSteps = function(currentStepNumber) { + for (let i = 1; i <= 3; i++) { + const progressStep = document.getElementById(`progressStep${i}`); + if (progressStep) { + progressStep.classList.remove('active', 'completed'); + if (i < currentStepNumber) { + progressStep.classList.add('completed'); + } else if (i === currentStepNumber) { + progressStep.classList.add('active'); + } + } + } +}; + +// 토스트 메시지 (간단 버전) +window.showToast = function(message, type = 'info', duration = 3000) { + console.log(`[Toast] ${type}: ${message}`); + + // 기존 토스트 제거 + const existingToast = document.querySelector('.toast-message'); + if (existingToast) { + existingToast.remove(); + } + + // 새 토스트 생성 + const toast = document.createElement('div'); + toast.className = `toast-message toast-${type}`; + toast.textContent = message; + toast.style.cssText = ` + position: fixed; + bottom: 20px; + right: 20px; + padding: 12px 20px; + border-radius: 8px; + color: white; + font-size: 14px; + z-index: 10000; + animation: slideIn 0.3s ease; + background-color: ${type === 'success' ? '#10b981' : type === 'error' ? '#ef4444' : type === 'warning' ? '#f59e0b' : '#3b82f6'}; + `; + + document.body.appendChild(toast); + + setTimeout(() => { + toast.style.animation = 'slideOut 0.3s ease'; + setTimeout(() => toast.remove(), 300); + }, duration); +}; + +// 확인 다이얼로그 +window.showConfirmDialog = function(message, onConfirm, onCancel) { + if (confirm(message)) { + onConfirm?.(); + } else { + onCancel?.(); + } +}; diff --git a/deploy/tkfb-package/web-ui/js/department-management.js b/deploy/tkfb-package/web-ui/js/department-management.js new file mode 100644 index 0000000..5207204 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/department-management.js @@ -0,0 +1,339 @@ +// department-management.js +// 부서 관리 페이지 JavaScript + +let departments = []; +let selectedDepartmentId = null; +let selectedWorkers = new Set(); + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', async () => { + await waitForApiConfig(); + await loadDepartments(); +}); + +// API 설정 로드 대기 +async function waitForApiConfig() { + let retryCount = 0; + while (!window.apiCall && retryCount < 50) { + await new Promise(resolve => setTimeout(resolve, 100)); + retryCount++; + } + if (!window.apiCall) { + console.error('API 설정 로드 실패'); + } +} + +// 부서 목록 로드 +async function loadDepartments() { + try { + const result = await window.apiCall('/departments'); + + if (result.success) { + departments = result.data; + renderDepartmentList(); + updateMoveToDepartmentSelect(); + } + } catch (error) { + console.error('부서 목록 로드 실패:', error); + } +} + +// 부서 목록 렌더링 +function renderDepartmentList() { + const container = document.getElementById('departmentList'); + + if (departments.length === 0) { + container.innerHTML = ` +
+ 등록된 부서가 없습니다.
+ +
+ `; + return; + } + + container.innerHTML = departments.map(dept => ` +
+
+ ${dept.department_name} + ${dept.worker_count || 0}명 +
+
+ + +
+
+ `).join(''); +} + +// 부서 선택 +async function selectDepartment(departmentId) { + selectedDepartmentId = departmentId; + selectedWorkers.clear(); + updateBulkActions(); + renderDepartmentList(); + + const dept = departments.find(d => d.department_id === departmentId); + document.getElementById('workerListTitle').textContent = `${dept.department_name} 작업자`; + document.getElementById('addWorkerBtn').style.display = 'inline-flex'; + + await loadWorkers(departmentId); +} + +// 부서별 작업자 로드 +async function loadWorkers(departmentId) { + try { + const result = await window.apiCall(`/departments/${departmentId}/workers`); + + if (result.success) { + renderWorkerList(result.data); + } + } catch (error) { + console.error('작업자 목록 로드 실패:', error); + } +} + +// 작업자 목록 렌더링 +function renderWorkerList(workers) { + const container = document.getElementById('workerList'); + + if (workers.length === 0) { + container.innerHTML = ` +
+ 이 부서에 소속된 작업자가 없습니다. +
+ `; + return; + } + + container.innerHTML = workers.map(worker => ` +
+
+ +
${worker.worker_name.charAt(0)}
+
+ ${worker.worker_name} + ${getJobTypeName(worker.job_type)} +
+
+
+ `).join(''); +} + +// 직책 한글 변환 +function getJobTypeName(jobType) { + const names = { + leader: '그룹장', + worker: '작업자', + admin: '관리자' + }; + return names[jobType] || jobType || '-'; +} + +// 작업자 선택 토글 +function toggleWorkerSelection(workerId) { + if (selectedWorkers.has(workerId)) { + selectedWorkers.delete(workerId); + } else { + selectedWorkers.add(workerId); + } + updateBulkActions(); + + // 선택 상태 업데이트 + const card = document.querySelector(`.worker-card[onclick*="${workerId}"]`); + if (card) { + card.classList.toggle('selected', selectedWorkers.has(workerId)); + const checkbox = card.querySelector('input[type="checkbox"]'); + if (checkbox) checkbox.checked = selectedWorkers.has(workerId); + } +} + +// 일괄 작업 영역 업데이트 +function updateBulkActions() { + const bulkActions = document.getElementById('bulkActions'); + const selectedCount = document.getElementById('selectedCount'); + + if (selectedWorkers.size > 0) { + bulkActions.classList.add('visible'); + selectedCount.textContent = selectedWorkers.size; + } else { + bulkActions.classList.remove('visible'); + } +} + +// 이동 대상 부서 선택 업데이트 +function updateMoveToDepartmentSelect() { + const select = document.getElementById('moveToDepartment'); + select.innerHTML = '' + + departments.map(d => ``).join(''); +} + +// 선택한 작업자 이동 +async function moveSelectedWorkers() { + const targetDepartmentId = document.getElementById('moveToDepartment').value; + + if (!targetDepartmentId) { + alert('이동할 부서를 선택하세요.'); + return; + } + + if (selectedWorkers.size === 0) { + alert('이동할 작업자를 선택하세요.'); + return; + } + + if (parseInt(targetDepartmentId) === selectedDepartmentId) { + alert('같은 부서로는 이동할 수 없습니다.'); + return; + } + + try { + const result = await window.apiCall('/departments/move-workers', 'POST', { + workerIds: Array.from(selectedWorkers), + departmentId: parseInt(targetDepartmentId) + }); + + if (result.success) { + alert(result.message); + selectedWorkers.clear(); + updateBulkActions(); + document.getElementById('moveToDepartment').value = ''; + await loadDepartments(); + await loadWorkers(selectedDepartmentId); + } else { + alert(result.error || '이동 실패'); + } + } catch (error) { + console.error('작업자 이동 실패:', error); + alert('작업자 이동에 실패했습니다.'); + } +} + +// 부서 모달 열기 +function openDepartmentModal(departmentId = null) { + const modal = document.getElementById('departmentModal'); + const title = document.getElementById('departmentModalTitle'); + const form = document.getElementById('departmentForm'); + + // 상위 부서 선택 옵션 업데이트 + const parentSelect = document.getElementById('parentDepartment'); + parentSelect.innerHTML = '' + + departments + .filter(d => d.department_id !== departmentId) + .map(d => ``) + .join(''); + + if (departmentId) { + const dept = departments.find(d => d.department_id === departmentId); + title.textContent = '부서 수정'; + document.getElementById('departmentId').value = dept.department_id; + document.getElementById('departmentName').value = dept.department_name; + document.getElementById('parentDepartment').value = dept.parent_id || ''; + document.getElementById('departmentDescription').value = dept.description || ''; + document.getElementById('displayOrder').value = dept.display_order || 0; + document.getElementById('isActive').checked = dept.is_active; + } else { + title.textContent = '새 부서 등록'; + form.reset(); + document.getElementById('departmentId').value = ''; + document.getElementById('isActive').checked = true; + } + + modal.classList.add('show'); +} + +// 부서 모달 닫기 +function closeDepartmentModal() { + document.getElementById('departmentModal').classList.remove('show'); +} + +// 부서 저장 +async function saveDepartment(event) { + event.preventDefault(); + + const departmentId = document.getElementById('departmentId').value; + const data = { + department_name: document.getElementById('departmentName').value, + parent_id: document.getElementById('parentDepartment').value || null, + description: document.getElementById('departmentDescription').value, + display_order: parseInt(document.getElementById('displayOrder').value) || 0, + is_active: document.getElementById('isActive').checked + }; + + try { + const url = departmentId ? `/departments/${departmentId}` : '/departments'; + const method = departmentId ? 'PUT' : 'POST'; + + const result = await window.apiCall(url, method, data); + + if (result.success) { + alert(result.message); + closeDepartmentModal(); + await loadDepartments(); + } else { + alert(result.error || '저장 실패'); + } + } catch (error) { + console.error('부서 저장 실패:', error); + alert('부서 저장에 실패했습니다.'); + } +} + +// 부서 수정 +function editDepartment(departmentId) { + openDepartmentModal(departmentId); +} + +// 부서 삭제 +async function deleteDepartment(departmentId) { + const dept = departments.find(d => d.department_id === departmentId); + + if (!confirm(`"${dept.department_name}" 부서를 삭제하시겠습니까?\n\n소속 작업자가 있거나 하위 부서가 있으면 삭제할 수 없습니다.`)) { + return; + } + + try { + const result = await window.apiCall(`/departments/${departmentId}`, 'DELETE'); + + if (result.success) { + alert('부서가 삭제되었습니다.'); + if (selectedDepartmentId === departmentId) { + selectedDepartmentId = null; + document.getElementById('workerListTitle').textContent = '부서를 선택하세요'; + document.getElementById('addWorkerBtn').style.display = 'none'; + document.getElementById('workerList').innerHTML = ` +
+ 왼쪽에서 부서를 선택하면 해당 부서의 작업자가 표시됩니다. +
+ `; + } + await loadDepartments(); + } else { + alert(result.error || '삭제 실패'); + } + } catch (error) { + console.error('부서 삭제 실패:', error); + alert('부서 삭제에 실패했습니다.'); + } +} + +// 작업자 추가 모달 (작업자 관리 페이지로 이동) +function openAddWorkerModal() { + alert('작업자 관리 페이지에서 작업자를 등록한 후 이 페이지에서 부서를 배정하세요.'); + // window.location.href = '/pages/admin/workers.html'; +} diff --git a/deploy/tkfb-package/web-ui/js/equipment-detail.js b/deploy/tkfb-package/web-ui/js/equipment-detail.js new file mode 100644 index 0000000..6080674 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/equipment-detail.js @@ -0,0 +1,803 @@ +/** + * equipment-detail.js - 설비 상세 페이지 스크립트 + */ + +// 전역 변수 +let currentEquipment = null; +let equipmentId = null; +let workplaces = []; +let factories = []; +let selectedMovePosition = null; +let repairPhotoBases = []; + +// 상태 라벨 +const STATUS_LABELS = { + active: '정상 가동', + maintenance: '점검 중', + repair_needed: '수리 필요', + inactive: '비활성', + external: '외부 반출', + repair_external: '수리 외주' +}; + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', () => { + // URL에서 equipment_id 추출 + const urlParams = new URLSearchParams(window.location.search); + equipmentId = urlParams.get('id'); + + if (!equipmentId) { + alert('설비 ID가 필요합니다.'); + goBack(); + return; + } + + // API 설정 후 데이터 로드 + waitForApiConfig().then(() => { + loadEquipmentData(); + loadFactories(); + loadRepairCategories(); + }); +}); + +// API 설정 대기 +function waitForApiConfig() { + return new Promise(resolve => { + const check = setInterval(() => { + if (window.API_BASE_URL) { + clearInterval(check); + resolve(); + } + }, 50); + }); +} + +// 뒤로가기 +function goBack() { + if (document.referrer && document.referrer.includes(window.location.host)) { + history.back(); + } else { + window.location.href = '/pages/admin/equipments.html'; + } +} + +// ========================================== +// 설비 데이터 로드 +// ========================================== + +async function loadEquipmentData() { + try { + const response = await axios.get(`/equipments/${equipmentId}`); + if (response.data.success) { + currentEquipment = response.data.data; + renderEquipmentInfo(); + loadPhotos(); + loadRepairHistory(); + loadExternalLogs(); + loadMoveLogs(); + } + } catch (error) { + console.error('설비 정보 로드 실패:', error); + alert('설비 정보를 불러오는데 실패했습니다.'); + } +} + +function renderEquipmentInfo() { + const eq = currentEquipment; + + // 헤더 + document.getElementById('equipmentTitle').textContent = `[${eq.equipment_code}] ${eq.equipment_name}`; + document.getElementById('equipmentMeta').textContent = `${eq.model_name || '-'} | ${eq.manufacturer || '-'}`; + + // 상태 배지 + const statusBadge = document.getElementById('equipmentStatus'); + statusBadge.textContent = STATUS_LABELS[eq.status] || eq.status; + statusBadge.className = `eq-status-badge ${eq.status}`; + + // 기본 정보 카드 + document.getElementById('equipmentInfoCard').innerHTML = ` +
+
+ 관리번호 + ${escapeHtml(eq.equipment_code || '-')} +
+
+ 설비명 + ${escapeHtml(eq.equipment_name || '-')} +
+
+ 모델명 + ${escapeHtml(eq.model_name || '-')} +
+
+ 규격 + ${escapeHtml(eq.specifications || '-')} +
+
+ 제조사 + ${escapeHtml(eq.manufacturer || '-')} +
+
+ 구입처 + ${escapeHtml(eq.supplier || '-')} +
+
+ 구입일 + ${eq.installation_date ? formatDate(eq.installation_date) : '-'} +
+
+ 구입가격 + ${eq.purchase_price ? Number(eq.purchase_price).toLocaleString() + '원' : '-'} +
+
+ 시리얼번호 + ${escapeHtml(eq.serial_number || '-')} +
+
+ 설비유형 + ${escapeHtml(eq.equipment_type || '-')} +
+
+ `; + + // 위치 정보 + const originalLocation = eq.workplace_name + ? `${eq.category_name || ''} > ${eq.workplace_name}` + : '미배정'; + document.getElementById('originalLocation').textContent = originalLocation; + + if (eq.is_temporarily_moved && eq.current_workplace_id) { + document.getElementById('currentLocationRow').style.display = 'flex'; + // 현재 위치 작업장 이름 로드 필요 + loadCurrentWorkplaceName(eq.current_workplace_id); + } + + // 지도 미리보기 (작업장 지도 표시) + renderMapPreview(); +} + +async function loadCurrentWorkplaceName(workplaceId) { + try { + const response = await axios.get(`/workplaces/${workplaceId}`); + if (response.data.success) { + const wp = response.data.data; + document.getElementById('currentLocation').textContent = `${wp.category_name || ''} > ${wp.workplace_name}`; + } + } catch (error) { + console.error('현재 위치 로드 실패:', error); + } +} + +function renderMapPreview() { + const eq = currentEquipment; + const mapPreview = document.getElementById('mapPreview'); + + if (!eq.workplace_id) { + mapPreview.innerHTML = '
위치 미배정
'; + return; + } + + // 작업장 지도 정보 로드 + axios.get(`/workplaces/${eq.workplace_id}`).then(response => { + if (response.data.success && response.data.data.map_image_url) { + const wp = response.data.data; + const xPercent = eq.is_temporarily_moved ? eq.current_map_x_percent : eq.map_x_percent; + const yPercent = eq.is_temporarily_moved ? eq.current_map_y_percent : eq.map_y_percent; + + mapPreview.innerHTML = ` + 작업장 지도 +
+ `; + } else { + mapPreview.innerHTML = '
지도 없음
'; + } + }).catch(() => { + mapPreview.innerHTML = '
지도 로드 실패
'; + }); +} + +// ========================================== +// 사진 관리 +// ========================================== + +async function loadPhotos() { + try { + const response = await axios.get(`/equipments/${equipmentId}/photos`); + if (response.data.success) { + renderPhotos(response.data.data); + } + } catch (error) { + console.error('사진 로드 실패:', error); + } +} + +function renderPhotos(photos) { + const grid = document.getElementById('photoGrid'); + + if (!photos || photos.length === 0) { + grid.innerHTML = '
등록된 사진이 없습니다
'; + return; + } + + grid.innerHTML = photos.map(photo => { + const safePhotoId = parseInt(photo.photo_id) || 0; + const safePhotoPath = encodeURI(photo.photo_path || ''); + const safeDescription = escapeHtml(photo.description || '설비 사진'); + return ` +
+ ${safeDescription} + +
+ `; + }).join(''); +} + +function openPhotoModal() { + document.getElementById('photoInput').value = ''; + document.getElementById('photoDescription').value = ''; + document.getElementById('photoPreviewContainer').style.display = 'none'; + document.getElementById('photoModal').style.display = 'flex'; +} + +function closePhotoModal() { + document.getElementById('photoModal').style.display = 'none'; +} + +function previewPhoto(event) { + const file = event.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onload = e => { + document.getElementById('photoPreview').src = e.target.result; + document.getElementById('photoPreviewContainer').style.display = 'block'; + }; + reader.readAsDataURL(file); + } +} + +async function uploadPhoto() { + const fileInput = document.getElementById('photoInput'); + const description = document.getElementById('photoDescription').value; + + if (!fileInput.files[0]) { + alert('사진을 선택하세요.'); + return; + } + + const reader = new FileReader(); + reader.onload = async e => { + try { + const response = await axios.post(`/equipments/${equipmentId}/photos`, { + photo_base64: e.target.result, + description: description + }); + + if (response.data.success) { + closePhotoModal(); + loadPhotos(); + alert('사진이 추가되었습니다.'); + } + } catch (error) { + console.error('사진 업로드 실패:', error); + alert('사진 업로드에 실패했습니다.'); + } + }; + reader.readAsDataURL(fileInput.files[0]); +} + +async function deletePhoto(photoId) { + if (!confirm('이 사진을 삭제하시겠습니까?')) return; + + try { + const response = await axios.delete(`/equipments/photos/${photoId}`); + if (response.data.success) { + loadPhotos(); + } + } catch (error) { + console.error('사진 삭제 실패:', error); + alert('사진 삭제에 실패했습니다.'); + } +} + +function viewPhoto(url) { + document.getElementById('photoViewImage').src = url; + document.getElementById('photoViewModal').style.display = 'flex'; +} + +function closePhotoView() { + document.getElementById('photoViewModal').style.display = 'none'; +} + +// ========================================== +// 임시 이동 +// ========================================== + +async function loadFactories() { + try { + const response = await axios.get('/workplace-categories'); + if (response.data.success) { + factories = response.data.data; + } + } catch (error) { + console.error('공장 목록 로드 실패:', error); + } +} + +function openMoveModal() { + // 공장 선택 초기화 + const factorySelect = document.getElementById('moveFactorySelect'); + factorySelect.innerHTML = ''; + factories.forEach(f => { + const safeCategoryId = parseInt(f.category_id) || 0; + factorySelect.innerHTML += ``; + }); + + document.getElementById('moveWorkplaceSelect').innerHTML = ''; + document.getElementById('moveStep2').style.display = 'none'; + document.getElementById('moveStep1').style.display = 'block'; + document.getElementById('moveConfirmBtn').disabled = true; + document.getElementById('moveReason').value = ''; + selectedMovePosition = null; + + document.getElementById('moveModal').style.display = 'flex'; +} + +function closeMoveModal() { + document.getElementById('moveModal').style.display = 'none'; +} + +async function loadMoveWorkplaces() { + const categoryId = document.getElementById('moveFactorySelect').value; + const workplaceSelect = document.getElementById('moveWorkplaceSelect'); + + workplaceSelect.innerHTML = ''; + + if (!categoryId) return; + + try { + const response = await axios.get(`/workplaces?category_id=${categoryId}`); + if (response.data.success) { + workplaces = response.data.data; + workplaces.forEach(wp => { + if (wp.map_image_url) { + const safeWorkplaceId = parseInt(wp.workplace_id) || 0; + workplaceSelect.innerHTML += ``; + } + }); + } + } catch (error) { + console.error('작업장 로드 실패:', error); + } +} + +function loadMoveMap() { + const workplaceId = document.getElementById('moveWorkplaceSelect').value; + + if (!workplaceId) { + document.getElementById('moveStep2').style.display = 'none'; + return; + } + + const workplace = workplaces.find(wp => wp.workplace_id == workplaceId); + if (!workplace || !workplace.map_image_url) { + alert('선택한 작업장에 지도가 없습니다.'); + return; + } + + const container = document.getElementById('moveMapContainer'); + container.innerHTML = ``; + + document.getElementById('moveStep2').style.display = 'block'; +} + +function onMoveMapClick(event) { + const img = event.target; + const rect = img.getBoundingClientRect(); + const x = ((event.clientX - rect.left) / rect.width) * 100; + const y = ((event.clientY - rect.top) / rect.height) * 100; + + selectedMovePosition = { x, y }; + + // 기존 마커 제거 + const container = document.getElementById('moveMapContainer'); + const existingMarker = container.querySelector('.move-marker'); + if (existingMarker) existingMarker.remove(); + + // 새 마커 추가 + const marker = document.createElement('div'); + marker.className = 'move-marker'; + marker.style.left = x + '%'; + marker.style.top = y + '%'; + container.appendChild(marker); + + document.getElementById('moveConfirmBtn').disabled = false; +} + +async function confirmMove() { + const targetWorkplaceId = document.getElementById('moveWorkplaceSelect').value; + const reason = document.getElementById('moveReason').value; + + if (!targetWorkplaceId || !selectedMovePosition) { + alert('이동할 위치를 선택하세요.'); + return; + } + + try { + const response = await axios.post(`/equipments/${equipmentId}/move`, { + target_workplace_id: targetWorkplaceId, + target_x_percent: selectedMovePosition.x.toFixed(2), + target_y_percent: selectedMovePosition.y.toFixed(2), + from_workplace_id: currentEquipment.workplace_id, + from_x_percent: currentEquipment.map_x_percent, + from_y_percent: currentEquipment.map_y_percent, + reason: reason + }); + + if (response.data.success) { + closeMoveModal(); + loadEquipmentData(); + loadMoveLogs(); + alert('설비가 임시 이동되었습니다.'); + } + } catch (error) { + console.error('이동 실패:', error); + alert('설비 이동에 실패했습니다.'); + } +} + +async function returnToOriginal() { + if (!confirm('설비를 원래 위치로 복귀시키겠습니까?')) return; + + try { + const response = await axios.post(`/equipments/${equipmentId}/return`); + if (response.data.success) { + loadEquipmentData(); + loadMoveLogs(); + alert('설비가 원위치로 복귀되었습니다.'); + } + } catch (error) { + console.error('복귀 실패:', error); + alert('설비 복귀에 실패했습니다.'); + } +} + +// ========================================== +// 수리 신청 +// ========================================== + +let repairCategories = []; + +async function loadRepairCategories() { + try { + const response = await axios.get('/equipments/repair-categories'); + if (response.data.success) { + repairCategories = response.data.data; + } + } catch (error) { + console.error('수리 항목 로드 실패:', error); + } +} + +function openRepairModal() { + const select = document.getElementById('repairItemSelect'); + select.innerHTML = ''; + repairCategories.forEach(item => { + const safeItemId = parseInt(item.item_id) || 0; + select.innerHTML += ``; + }); + + document.getElementById('repairDescription').value = ''; + document.getElementById('repairPhotoInput').value = ''; + document.getElementById('repairPhotoPreviews').innerHTML = ''; + repairPhotoBases = []; + + document.getElementById('repairModal').style.display = 'flex'; +} + +function closeRepairModal() { + document.getElementById('repairModal').style.display = 'none'; +} + +function previewRepairPhotos(event) { + const files = event.target.files; + const previewContainer = document.getElementById('repairPhotoPreviews'); + previewContainer.innerHTML = ''; + repairPhotoBases = []; + + Array.from(files).forEach(file => { + const reader = new FileReader(); + reader.onload = e => { + repairPhotoBases.push(e.target.result); + const img = document.createElement('img'); + img.src = e.target.result; + img.className = 'repair-photo-preview'; + previewContainer.appendChild(img); + }; + reader.readAsDataURL(file); + }); +} + +async function submitRepairRequest() { + const itemId = document.getElementById('repairItemSelect').value; + const description = document.getElementById('repairDescription').value; + + if (!description) { + alert('수리 내용을 입력하세요.'); + return; + } + + try { + const response = await axios.post(`/equipments/${equipmentId}/repair-request`, { + item_id: itemId || null, + description: description, + photo_base64_list: repairPhotoBases, + workplace_id: currentEquipment.workplace_id + }); + + if (response.data.success) { + closeRepairModal(); + loadEquipmentData(); + loadRepairHistory(); + alert('수리 신청이 접수되었습니다.'); + } + } catch (error) { + console.error('수리 신청 실패:', error); + alert('수리 신청에 실패했습니다.'); + } +} + +async function loadRepairHistory() { + try { + const response = await axios.get(`/equipments/${equipmentId}/repair-history`); + if (response.data.success) { + renderRepairHistory(response.data.data); + } + } catch (error) { + console.error('수리 이력 로드 실패:', error); + } +} + +function renderRepairHistory(history) { + const container = document.getElementById('repairHistory'); + + if (!history || history.length === 0) { + container.innerHTML = '
수리 이력이 없습니다
'; + return; + } + + const validStatuses = ['pending', 'in_progress', 'completed', 'closed']; + container.innerHTML = history.map(h => { + const safeStatus = validStatuses.includes(h.status) ? h.status : 'pending'; + return ` +
+ ${formatDate(h.created_at)} +
+
${escapeHtml(h.item_name || '수리 요청')}
+
${escapeHtml(h.description || '-')}
+
+ ${getRepairStatusLabel(h.status)} +
+ `; + }).join(''); +} + +function getRepairStatusLabel(status) { + const labels = { + pending: '대기중', + in_progress: '처리중', + completed: '완료', + closed: '종료' + }; + return labels[status] || status; +} + +// ========================================== +// 외부 반출 +// ========================================== + +function openExportModal() { + document.getElementById('exportDate').value = new Date().toISOString().slice(0, 10); + document.getElementById('expectedReturnDate').value = ''; + document.getElementById('exportDestination').value = ''; + document.getElementById('exportReason').value = ''; + document.getElementById('exportNotes').value = ''; + document.getElementById('isRepairExport').checked = false; + + document.getElementById('exportModal').style.display = 'flex'; +} + +function closeExportModal() { + document.getElementById('exportModal').style.display = 'none'; +} + +function toggleRepairFields() { + // 현재는 특별한 필드 차이 없음 +} + +async function submitExport() { + const exportDate = document.getElementById('exportDate').value; + const expectedReturnDate = document.getElementById('expectedReturnDate').value; + const destination = document.getElementById('exportDestination').value; + const reason = document.getElementById('exportReason').value; + const notes = document.getElementById('exportNotes').value; + const isRepair = document.getElementById('isRepairExport').checked; + + if (!exportDate) { + alert('반출일을 입력하세요.'); + return; + } + + try { + const response = await axios.post(`/equipments/${equipmentId}/export`, { + export_date: exportDate, + expected_return_date: expectedReturnDate || null, + destination: destination, + reason: reason, + notes: notes, + is_repair: isRepair + }); + + if (response.data.success) { + closeExportModal(); + loadEquipmentData(); + loadExternalLogs(); + alert('외부 반출이 등록되었습니다.'); + } + } catch (error) { + console.error('반출 등록 실패:', error); + alert('반출 등록에 실패했습니다.'); + } +} + +async function loadExternalLogs() { + try { + const response = await axios.get(`/equipments/${equipmentId}/external-logs`); + if (response.data.success) { + renderExternalLogs(response.data.data); + } + } catch (error) { + console.error('외부반출 이력 로드 실패:', error); + } +} + +function renderExternalLogs(logs) { + const container = document.getElementById('externalHistory'); + + if (!logs || logs.length === 0) { + container.innerHTML = '
외부반출 이력이 없습니다
'; + return; + } + + container.innerHTML = logs.map(log => { + const dateRange = log.actual_return_date + ? `${formatDate(log.export_date)} ~ ${formatDate(log.actual_return_date)}` + : `${formatDate(log.export_date)} ~ (미반입)`; + + const isReturned = !!log.actual_return_date; + const statusClass = isReturned ? 'returned' : 'exported'; + const statusLabel = isReturned ? '반입완료' : '반출중'; + const safeLogId = parseInt(log.log_id) || 0; + + return ` +
+ ${dateRange} +
+
${escapeHtml(log.destination || '외부')}
+
${escapeHtml(log.reason || '-')}
+
+ ${statusLabel} + ${!isReturned ? `` : ''} +
+ `; + }).join(''); +} + +function openReturnModal(logId) { + document.getElementById('returnLogId').value = logId; + document.getElementById('returnDate').value = new Date().toISOString().slice(0, 10); + document.getElementById('returnStatus').value = 'active'; + document.getElementById('returnNotes').value = ''; + + document.getElementById('returnModal').style.display = 'flex'; +} + +function closeReturnModal() { + document.getElementById('returnModal').style.display = 'none'; +} + +async function submitReturn() { + const logId = document.getElementById('returnLogId').value; + const returnDate = document.getElementById('returnDate').value; + const newStatus = document.getElementById('returnStatus').value; + const notes = document.getElementById('returnNotes').value; + + if (!returnDate) { + alert('반입일을 입력하세요.'); + return; + } + + try { + const response = await axios.post(`/equipments/external-logs/${logId}/return`, { + return_date: returnDate, + new_status: newStatus, + notes: notes + }); + + if (response.data.success) { + closeReturnModal(); + loadEquipmentData(); + loadExternalLogs(); + alert('반입 처리가 완료되었습니다.'); + } + } catch (error) { + console.error('반입 처리 실패:', error); + alert('반입 처리에 실패했습니다.'); + } +} + +// ========================================== +// 이동 이력 +// ========================================== + +async function loadMoveLogs() { + try { + const response = await axios.get(`/equipments/${equipmentId}/move-logs`); + if (response.data.success) { + renderMoveLogs(response.data.data); + } + } catch (error) { + console.error('이동 이력 로드 실패:', error); + } +} + +function renderMoveLogs(logs) { + const container = document.getElementById('moveHistory'); + + if (!logs || logs.length === 0) { + container.innerHTML = '
이동 이력이 없습니다
'; + return; + } + + container.innerHTML = logs.map(log => { + const typeLabel = log.move_type === 'temporary' ? '임시이동' : '복귀'; + const location = log.move_type === 'temporary' + ? escapeHtml(log.to_workplace_name || '-') + : '원위치 복귀'; + + return ` +
+ ${formatDateTime(log.moved_at)} +
+
${typeLabel}: ${location}
+
${escapeHtml(log.reason || '-')} (${escapeHtml(log.moved_by_name || '시스템')})
+
+
+ `; + }).join(''); +} + +// ========================================== +// 유틸리티 +// ========================================== + +function formatDate(dateStr) { + if (!dateStr) return '-'; + const date = new Date(dateStr); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit' + }).replace(/\. /g, '-').replace('.', ''); +} + +function formatDateTime(dateStr) { + if (!dateStr) return '-'; + const date = new Date(dateStr); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit' + }); +} diff --git a/deploy/tkfb-package/web-ui/js/equipment-management.js b/deploy/tkfb-package/web-ui/js/equipment-management.js new file mode 100644 index 0000000..941a64f --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/equipment-management.js @@ -0,0 +1,469 @@ +// equipment-management.js +// 설비 관리 페이지 JavaScript + +let equipments = []; +let allEquipments = []; // 필터링 전 전체 데이터 +let workplaces = []; +let equipmentTypes = []; +let currentEquipment = null; + +// 페이지 로드 시 초기화 +document.addEventListener('DOMContentLoaded', async () => { + await waitForAxiosConfig(); + await loadInitialData(); +}); + +// axios 설정 대기 함수 +function waitForAxiosConfig() { + return new Promise((resolve) => { + const check = setInterval(() => { + if (axios.defaults.baseURL) { + clearInterval(check); + resolve(); + } + }, 50); + setTimeout(() => { + clearInterval(check); + if (!axios.defaults.baseURL) { + console.error('Axios 설정 시간 초과'); + } + resolve(); + }, 5000); + }); +} + +// 초기 데이터 로드 +async function loadInitialData() { + try { + await Promise.all([ + loadEquipments(), + loadWorkplaces(), + loadEquipmentTypes() + ]); + } catch (error) { + console.error('초기 데이터 로드 실패:', error); + alert('데이터를 불러오는데 실패했습니다.'); + } +} + +// 설비 목록 로드 +async function loadEquipments() { + try { + const response = await axios.get('/equipments'); + if (response.data.success) { + allEquipments = response.data.data; + equipments = [...allEquipments]; + renderStats(); + renderEquipmentList(); + } + } catch (error) { + console.error('설비 목록 로드 실패:', error); + throw error; + } +} + +// 작업장 목록 로드 +async function loadWorkplaces() { + try { + const response = await axios.get('/workplaces'); + if (response.data.success) { + workplaces = response.data.data; + populateWorkplaceFilters(); + } + } catch (error) { + console.error('작업장 목록 로드 실패:', error); + } +} + +// 설비 유형 목록 로드 +async function loadEquipmentTypes() { + try { + const response = await axios.get('/equipments/types'); + if (response.data.success) { + equipmentTypes = response.data.data; + populateTypeFilter(); + } + } catch (error) { + console.error('설비 유형 로드 실패:', error); + } +} + +// 통계 렌더링 +function renderStats() { + const container = document.getElementById('statsSection'); + if (!container) return; + + const totalCount = allEquipments.length; + const activeCount = allEquipments.filter(e => e.status === 'active').length; + const maintenanceCount = allEquipments.filter(e => e.status === 'maintenance').length; + const inactiveCount = allEquipments.filter(e => e.status === 'inactive').length; + + const totalValue = allEquipments.reduce((sum, e) => sum + (Number(e.purchase_price) || 0), 0); + const avgValue = totalCount > 0 ? totalValue / totalCount : 0; + + container.innerHTML = ` +
+
전체 설비
+
${totalCount}대
+
총 자산가치 ${formatPriceShort(totalValue)}
+
+
+
활성
+
${activeCount}대
+
${totalCount > 0 ? Math.round(activeCount / totalCount * 100) : 0}%
+
+
+
정비중
+
${maintenanceCount}대
+
${totalCount > 0 ? Math.round(maintenanceCount / totalCount * 100) : 0}%
+
+
+
비활성
+
${inactiveCount}대
+
${totalCount > 0 ? Math.round(inactiveCount / totalCount * 100) : 0}%
+
+
+
평균 구입가
+
${formatPriceShort(avgValue)}
+
설비당 평균
+
+ `; +} + +// 작업장 필터 채우기 +function populateWorkplaceFilters() { + const filterWorkplace = document.getElementById('filterWorkplace'); + const modalWorkplace = document.getElementById('workplaceId'); + + const workplaceOptions = workplaces.map(w => { + const safeId = parseInt(w.workplace_id) || 0; + const categoryName = escapeHtml(w.category_name || ''); + const workplaceName = escapeHtml(w.workplace_name || ''); + const label = categoryName ? categoryName + ' - ' + workplaceName : workplaceName; + return ``; + }).join(''); + + if (filterWorkplace) filterWorkplace.innerHTML = '' + workplaceOptions; + if (modalWorkplace) modalWorkplace.innerHTML = '' + workplaceOptions; +} + +// 설비 유형 필터 채우기 +function populateTypeFilter() { + const filterType = document.getElementById('filterType'); + if (!filterType) return; + + const typeOptions = equipmentTypes.map(type => { + const safeType = escapeHtml(type || ''); + return ``; + }).join(''); + filterType.innerHTML = '' + typeOptions; +} + +// 설비 목록 렌더링 +function renderEquipmentList() { + const container = document.getElementById('equipmentList'); + + if (equipments.length === 0) { + container.innerHTML = ` +
+

등록된 설비가 없습니다.

+ +
+ `; + return; + } + + const tableHTML = ` +
+ 검색 결과 ${equipments.length}건 +
+
+ + + + + + + + + + + + + + + + + ${equipments.map(eq => { + const safeId = parseInt(eq.equipment_id) || 0; + const safeCode = escapeHtml(eq.equipment_code || '-'); + const safeName = escapeHtml(eq.equipment_name || '-'); + const safeModel = escapeHtml(eq.model_name || '-'); + const safeSpec = escapeHtml(eq.specifications || '-'); + const safeManufacturer = escapeHtml(eq.manufacturer || '-'); + const safeSupplier = escapeHtml(eq.supplier || '-'); + const validStatuses = ['active', 'maintenance', 'inactive']; + const safeStatus = validStatuses.includes(eq.status) ? eq.status : 'inactive'; + return ` + + + + + + + + + + + + + `; + }).join('')} + +
관리번호설비명모델명규격제조사구입처구입가격구입일자상태관리
${safeCode}${safeName}${safeModel}${safeSpec}${safeManufacturer}${safeSupplier}${eq.purchase_price ? formatPrice(eq.purchase_price) : '-'}${eq.installation_date ? formatDate(eq.installation_date) : '-'} + + ${getStatusText(eq.status)} + + +
+ + +
+
+
+ `; + + container.innerHTML = tableHTML; +} + +// 상태 텍스트 변환 +function getStatusText(status) { + const statusMap = { + 'active': '활성', + 'maintenance': '정비중', + 'inactive': '비활성' + }; + return statusMap[status] || status || '-'; +} + +// 가격 포맷팅 (전체) +function formatPrice(price) { + if (!price) return '-'; + return Number(price).toLocaleString('ko-KR') + '원'; +} + +// 가격 포맷팅 (축약) +function formatPriceShort(price) { + if (!price) return '0원'; + const num = Number(price); + if (num >= 100000000) { + return (num / 100000000).toFixed(1).replace(/\.0$/, '') + '억원'; + } else if (num >= 10000) { + return (num / 10000).toFixed(0) + '만원'; + } + return num.toLocaleString('ko-KR') + '원'; +} + +// 날짜 포맷팅 +function formatDate(dateStr) { + if (!dateStr) return '-'; + const date = new Date(dateStr); + return date.toLocaleDateString('ko-KR', { year: 'numeric', month: '2-digit', day: '2-digit' }); +} + +// 필터링 +function filterEquipments() { + const workplaceFilter = document.getElementById('filterWorkplace').value; + const typeFilter = document.getElementById('filterType').value; + const statusFilter = document.getElementById('filterStatus').value; + const searchTerm = document.getElementById('searchInput').value.toLowerCase(); + + equipments = allEquipments.filter(e => { + if (workplaceFilter && e.workplace_id != workplaceFilter) return false; + if (typeFilter && e.equipment_type !== typeFilter) return false; + if (statusFilter && e.status !== statusFilter) return false; + if (searchTerm) { + const searchFields = [ + e.equipment_name, + e.equipment_code, + e.manufacturer, + e.supplier, + e.model_name + ].map(f => (f || '').toLowerCase()); + if (!searchFields.some(f => f.includes(searchTerm))) return false; + } + return true; + }); + + renderEquipmentList(); +} + +// 설비 추가 모달 열기 +async function openEquipmentModal(equipmentId = null) { + currentEquipment = equipmentId; + const modal = document.getElementById('equipmentModal'); + const modalTitle = document.getElementById('modalTitle'); + const form = document.getElementById('equipmentForm'); + + form.reset(); + document.getElementById('equipmentId').value = ''; + + if (equipmentId) { + modalTitle.textContent = '설비 수정'; + loadEquipmentData(equipmentId); + } else { + modalTitle.textContent = '설비 추가'; + // 새 설비일 경우 다음 관리번호 자동 생성 + await loadNextEquipmentCode(); + } + + modal.style.display = 'flex'; +} + +// 다음 관리번호 로드 +async function loadNextEquipmentCode() { + try { + console.log('📋 다음 관리번호 조회 중...'); + const response = await axios.get('/equipments/next-code'); + console.log('📋 다음 관리번호 응답:', response.data); + if (response.data.success) { + document.getElementById('equipmentCode').value = response.data.data.next_code; + console.log('✅ 다음 관리번호 설정:', response.data.data.next_code); + } + } catch (error) { + console.error('❌ 다음 관리번호 조회 실패:', error); + console.error('❌ 에러 상세:', error.response?.data || error.message); + // 오류 시 기본값으로 빈 값 유지 (사용자가 직접 입력) + } +} + +// 설비 데이터 로드 (수정용) +async function loadEquipmentData(equipmentId) { + try { + const response = await axios.get(`/equipments/${equipmentId}`); + if (response.data.success) { + const eq = response.data.data; + + document.getElementById('equipmentId').value = eq.equipment_id; + document.getElementById('equipmentCode').value = eq.equipment_code || ''; + document.getElementById('equipmentName').value = eq.equipment_name || ''; + document.getElementById('equipmentType').value = eq.equipment_type || ''; + document.getElementById('workplaceId').value = eq.workplace_id || ''; + document.getElementById('manufacturer').value = eq.manufacturer || ''; + document.getElementById('supplier').value = eq.supplier || ''; + document.getElementById('purchasePrice').value = eq.purchase_price || ''; + document.getElementById('modelName').value = eq.model_name || ''; + document.getElementById('serialNumber').value = eq.serial_number || ''; + document.getElementById('installationDate').value = eq.installation_date ? eq.installation_date.split('T')[0] : ''; + document.getElementById('equipmentStatus').value = eq.status || 'active'; + document.getElementById('specifications').value = eq.specifications || ''; + document.getElementById('notes').value = eq.notes || ''; + } + } catch (error) { + console.error('설비 데이터 로드 실패:', error); + alert('설비 정보를 불러오는데 실패했습니다.'); + } +} + +// 설비 모달 닫기 +function closeEquipmentModal() { + document.getElementById('equipmentModal').style.display = 'none'; + currentEquipment = null; +} + +// 설비 저장 +async function saveEquipment() { + const equipmentId = document.getElementById('equipmentId').value; + const equipmentData = { + equipment_code: document.getElementById('equipmentCode').value.trim(), + equipment_name: document.getElementById('equipmentName').value.trim(), + equipment_type: document.getElementById('equipmentType').value.trim() || null, + workplace_id: document.getElementById('workplaceId').value || null, + manufacturer: document.getElementById('manufacturer').value.trim() || null, + supplier: document.getElementById('supplier').value.trim() || null, + purchase_price: document.getElementById('purchasePrice').value || null, + model_name: document.getElementById('modelName').value.trim() || null, + serial_number: document.getElementById('serialNumber').value.trim() || null, + installation_date: document.getElementById('installationDate').value || null, + status: document.getElementById('equipmentStatus').value, + specifications: document.getElementById('specifications').value.trim() || null, + notes: document.getElementById('notes').value.trim() || null + }; + + if (!equipmentData.equipment_code) { + alert('관리번호를 입력해주세요.'); + return; + } + + if (!equipmentData.equipment_name) { + alert('설비명을 입력해주세요.'); + return; + } + + try { + let response; + if (equipmentId) { + response = await axios.put(`/equipments/${equipmentId}`, equipmentData); + } else { + response = await axios.post('/equipments', equipmentData); + } + + if (response.data.success) { + alert(equipmentId ? '설비가 수정되었습니다.' : '설비가 추가되었습니다.'); + closeEquipmentModal(); + await loadEquipments(); + await loadEquipmentTypes(); + } + } catch (error) { + console.error('설비 저장 실패:', error); + if (error.response?.data?.message) { + alert(error.response.data.message); + } else { + alert('설비 저장 중 오류가 발생했습니다.'); + } + } +} + +// 설비 수정 +function editEquipment(equipmentId) { + openEquipmentModal(equipmentId); +} + +// 설비 삭제 +async function deleteEquipment(equipmentId) { + const equipment = allEquipments.find(e => e.equipment_id === equipmentId); + if (!equipment) return; + + if (!confirm(`'${equipment.equipment_name}' 설비를 삭제하시겠습니까?`)) { + return; + } + + try { + const response = await axios.delete(`/equipments/${equipmentId}`); + if (response.data.success) { + alert('설비가 삭제되었습니다.'); + await loadEquipments(); + } + } catch (error) { + console.error('설비 삭제 실패:', error); + alert('설비 삭제 중 오류가 발생했습니다.'); + } +} + +// ESC 키로 모달 닫기 +document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') { + closeEquipmentModal(); + } +}); + +// 모달 외부 클릭 시 닫기 +document.getElementById('equipmentModal')?.addEventListener('click', (e) => { + if (e.target.id === 'equipmentModal') { + closeEquipmentModal(); + } +}); diff --git a/deploy/tkfb-package/web-ui/js/factory-upload.js b/deploy/tkfb-package/web-ui/js/factory-upload.js new file mode 100644 index 0000000..e2288ce --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/factory-upload.js @@ -0,0 +1,49 @@ +import { API, getAuthHeaders } from '/js/api-config.js'; + +document.getElementById('uploadForm').addEventListener('submit', async (e) => { + e.preventDefault(); + const formData = new FormData(e.target); + + try { + // FormData를 사용할 때는 Content-Type을 설정하지 않음 (자동 설정됨) + const token = localStorage.getItem('token'); + const res = await fetch(`${API}/factoryinfo`, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${token}` + }, + body: formData + }); + + if (!res.ok) { + const error = await res.json(); + throw new Error(error.message || '등록 실패'); + } + + alert('등록 완료!'); + location.reload(); + } catch (err) { + console.error(err); + alert('등록 실패: ' + err.message); + } +}); + +// 파일 선택 시 미리보기 (선택사항) +const fileInput = document.querySelector('input[name="map_image"]'); +if (fileInput) { + fileInput.addEventListener('change', function(e) { + const file = e.target.files[0]; + + if (file && file.type.startsWith('image/')) { + // 미리보기 요소가 있을 경우에만 동작 + const preview = document.getElementById('file-preview'); + if (preview) { + const reader = new FileReader(); + reader.onload = function(e) { + preview.innerHTML = `미리보기`; + }; + reader.readAsDataURL(file); + } + } + }); +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/factory-view.js b/deploy/tkfb-package/web-ui/js/factory-view.js new file mode 100644 index 0000000..00a6b9c --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/factory-view.js @@ -0,0 +1,38 @@ +import { API, getAuthHeaders } from '/js/api-config.js'; + +(async () => { + const pathParts = location.pathname.split('/'); + const id = pathParts[pathParts.length - 1]; + + try { + const res = await fetch(`${API}/factoryinfo/${id}`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error('조회 실패'); + } + + const data = await res.json(); + + // DOM 요소가 존재하는지 확인 후 설정 + const nameEl = document.getElementById('factoryName'); + if (nameEl) nameEl.textContent = data.factory_name; + + const addressEl = document.getElementById('factoryAddress'); + if (addressEl) addressEl.textContent = '📍 ' + data.address; + + const imageEl = document.getElementById('factoryImage'); + if (imageEl) imageEl.src = data.map_image_url; + + const descEl = document.getElementById('factoryDescription'); + if (descEl) descEl.textContent = data.description; + + } catch (err) { + console.error(err); + const container = document.querySelector('.container'); + if (container) { + container.innerHTML = '

공장 정보를 불러올 수 없습니다.

'; + } + } +})(); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/group-leader-dashboard.js b/deploy/tkfb-package/web-ui/js/group-leader-dashboard.js new file mode 100644 index 0000000..0b1c01a --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/group-leader-dashboard.js @@ -0,0 +1,157 @@ +// /js/group-leader-dashboard.js +// 그룹장 전용 대시보드 - 실시간 근태 및 작업 현황 (Real Data Version) +import { apiCall } from './api-config.js'; + +console.log('📊 그룹장 대시보드 스크립트 로딩 (Live Data)'); + +// 상태별 스타일/텍스트 매핑 +const STATUS_MAP = { + 'incomplete': { text: '미제출', class: 'status-incomplete', icon: '❌', color: '#ff5252' }, + 'partial': { text: '작성중', class: 'status-warning', icon: '📝', color: '#ff9800' }, + 'complete': { text: '제출완료', class: 'status-success', icon: '✅', color: '#4caf50' }, + 'overtime': { text: '초과근무', class: 'status-info', icon: '🌙', color: '#673ab7' }, + 'vacation': { text: '휴가', class: 'status-vacation', icon: '🏖️', color: '#2196f3' } +}; + +// 현재 선택된 날짜 +let currentSelectedDate = new Date().toISOString().split('T')[0]; + +/** + * 📅 날짜 초기화 및 이벤트 리스너 등록 + */ +function initDateSelector() { + const dateInput = document.getElementById('selectedDate'); + const refreshBtn = document.getElementById('refreshBtn'); + + if (dateInput) { + dateInput.value = currentSelectedDate; + dateInput.addEventListener('change', (e) => { + currentSelectedDate = e.target.value; + loadDailyWorkStatus(); + }); + } + + if (refreshBtn) { + refreshBtn.addEventListener('click', () => { + loadDailyWorkStatus(); + showToast('데이터를 새로고침했습니다.', 'success'); + }); + } +} + +/** + * 🔄 일일 근태 현황 로드 (API 호출) + */ +async function loadDailyWorkStatus() { + const container = document.getElementById('workStatusContainer'); + if (!container) return; + + // 로딩 표시 + container.innerHTML = ` +
+
+

작업 현황을 불러오는 중...

+
+ `; + + try { + const result = await apiCall(`/attendance/daily-status?date=${currentSelectedDate}`); + const workers = result.data || []; + + renderWorkStatus(workers); + updateSummaryStats(workers); + + } catch (error) { + console.error('현황 로드 오류:', error); + container.innerHTML = ` +
+

⚠️ 데이터를 불러오는데 실패했습니다.

+ +
+ `; + } +} + +/** + * 📊 통계 요약 업데이트 + */ +function updateSummaryStats(workers) { + // 요약 카드가 있다면 업데이트 (현재 HTML에는 없으므로 생략 가능하거나 동적으로 추가) + // 여기서는 콘솔에만 로그 + const stats = workers.reduce((acc, w) => { + acc[w.status] = (acc[w.status] || 0) + 1; + return acc; + }, {}); + console.log('Daily Stats:', stats); +} + +/** + * 🎨 현황 리스트 렌더링 + */ +function renderWorkStatus(workers) { + const container = document.getElementById('workStatusContainer'); + if (!container) return; + + if (workers.length === 0) { + container.innerHTML = '
등록된 작업자가 없습니다.
'; + return; + } + + // 상태 우선순위 정렬 (미제출 -> 작성중 -> 완료) + const sortOrder = ['incomplete', 'partial', 'vacation', 'complete', 'overtime']; + workers.sort((a, b) => { + return sortOrder.indexOf(a.status) - sortOrder.indexOf(b.status) || a.worker_name.localeCompare(b.worker_name); + }); + + const html = ` +
+ ${workers.map(worker => { + const statusInfo = STATUS_MAP[worker.status] || { text: worker.status, class: '', icon: '❓', color: '#999' }; + + return ` +
+
+ ${worker.worker_name} + ${worker.job_type || '-'} +
+ +
+
+ ${statusInfo.icon} ${statusInfo.text} +
+
+ ${worker.total_work_hours > 0 ? worker.total_work_hours + '시간' : '-'} +
+
+ + ${worker.status === 'incomplete' ? ` + + ` : ''} +
+ `; + }).join('')} +
+ `; + + container.innerHTML = html; +} + +// 🍞 토스트 메시지 (기존 modern-dashboard.js에 있다면 중복 주의, 없으면 사용) +function showToast(message, type = 'info') { + if (window.showToast) { + window.showToast(message, type); + } else { + alert(message); + } +} + +// 초기화 +document.addEventListener('DOMContentLoaded', () => { + initDateSelector(); + loadDailyWorkStatus(); +}); + +// 전역 노출 대신 모듈로 내보내기 +export { loadDailyWorkStatus as refreshTeamStatus }; \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/issue-category-manage.js b/deploy/tkfb-package/web-ui/js/issue-category-manage.js new file mode 100644 index 0000000..b6e0fed --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/issue-category-manage.js @@ -0,0 +1,421 @@ +/** + * 신고 카테고리 관리 JavaScript + */ + +import { API, getAuthHeaders } from '/js/api-config.js'; + +let currentType = 'nonconformity'; +let categories = []; +let items = []; + +// 초기화 +document.addEventListener('DOMContentLoaded', async () => { + await loadCategories(); +}); + +/** + * 유형 탭 전환 + */ +window.switchType = async function(type) { + currentType = type; + + // 탭 상태 업데이트 + document.querySelectorAll('.type-tab').forEach(tab => { + tab.classList.toggle('active', tab.dataset.type === type); + }); + + await loadCategories(); +}; + +/** + * 카테고리 로드 + */ +async function loadCategories() { + const container = document.getElementById('categoryList'); + container.innerHTML = '
카테고리를 불러오는 중...
'; + + try { + const response = await fetch(`${API}/work-issues/categories/type/${currentType}`, { + headers: getAuthHeaders() + }); + + if (!response.ok) throw new Error('카테고리 조회 실패'); + + const data = await response.json(); + + if (data.success && data.data) { + categories = data.data; + + // 항목도 로드 + const itemsResponse = await fetch(`${API}/work-issues/items`, { + headers: getAuthHeaders() + }); + + if (itemsResponse.ok) { + const itemsData = await itemsResponse.json(); + if (itemsData.success) { + items = itemsData.data || []; + } + } + + renderCategories(); + } else { + container.innerHTML = '
카테고리가 없습니다.
'; + } + } catch (error) { + console.error('카테고리 로드 실패:', error); + container.innerHTML = '
카테고리를 불러오지 못했습니다.
'; + } +} + +/** + * 카테고리 렌더링 + */ +function renderCategories() { + const container = document.getElementById('categoryList'); + + if (categories.length === 0) { + container.innerHTML = '
등록된 카테고리가 없습니다.
'; + return; + } + + const severityLabel = { + low: '낮음', + medium: '보통', + high: '높음', + critical: '심각' + }; + + container.innerHTML = categories.map(cat => { + const catItems = items.filter(item => item.category_id === cat.category_id); + + return ` +
+
+
${cat.category_name}
+
+ ${severityLabel[cat.severity] || '보통'} + ${catItems.length}개 항목 + +
+
+
+
+ ${catItems.length > 0 ? catItems.map(item => ` +
+
+
${item.item_name}
+ ${item.description ? `
${item.description}
` : ''} +
+
+ ${severityLabel[item.severity] || '보통'} + +
+
+ `).join('') : '
등록된 항목이 없습니다.
'} +
+
+ + + +
+
+
+ `; + }).join(''); +} + +/** + * 카테고리 토글 + */ +window.toggleCategory = function(categoryId) { + const section = document.querySelector(`.category-section[data-category-id="${categoryId}"]`); + if (section) { + section.classList.toggle('expanded'); + } +}; + +/** + * 카테고리 모달 열기 + */ +window.openCategoryModal = function(categoryId = null) { + const modal = document.getElementById('categoryModal'); + const title = document.getElementById('categoryModalTitle'); + const deleteBtn = document.getElementById('deleteCategoryBtn'); + + document.getElementById('categoryId').value = ''; + document.getElementById('categoryName').value = ''; + document.getElementById('categoryDescription').value = ''; + document.getElementById('categorySeverity').value = 'medium'; + + if (categoryId) { + const category = categories.find(c => c.category_id === categoryId); + if (category) { + title.textContent = '카테고리 수정'; + document.getElementById('categoryId').value = category.category_id; + document.getElementById('categoryName').value = category.category_name; + document.getElementById('categoryDescription').value = category.description || ''; + document.getElementById('categorySeverity').value = category.severity || 'medium'; + deleteBtn.style.display = 'block'; + } + } else { + title.textContent = '새 카테고리'; + deleteBtn.style.display = 'none'; + } + + modal.style.display = 'flex'; +}; + +/** + * 카테고리 모달 닫기 + */ +window.closeCategoryModal = function() { + document.getElementById('categoryModal').style.display = 'none'; +}; + +/** + * 카테고리 저장 + */ +window.saveCategory = async function() { + const categoryId = document.getElementById('categoryId').value; + const name = document.getElementById('categoryName').value.trim(); + const description = document.getElementById('categoryDescription').value.trim(); + const severity = document.getElementById('categorySeverity').value; + + if (!name) { + alert('카테고리 이름을 입력하세요.'); + return; + } + + try { + const url = categoryId + ? `${API}/work-issues/categories/${categoryId}` + : `${API}/work-issues/categories`; + + const response = await fetch(url, { + method: categoryId ? 'PUT' : 'POST', + headers: { + ...getAuthHeaders(), + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + category_name: name, + category_type: currentType, + description, + severity + }) + }); + + const data = await response.json(); + + if (response.ok && data.success) { + alert(categoryId ? '카테고리가 수정되었습니다.' : '카테고리가 추가되었습니다.'); + closeCategoryModal(); + await loadCategories(); + } else { + throw new Error(data.error || '저장 실패'); + } + } catch (error) { + console.error('카테고리 저장 실패:', error); + alert('카테고리 저장에 실패했습니다: ' + error.message); + } +}; + +/** + * 카테고리 삭제 + */ +window.deleteCategory = async function() { + const categoryId = document.getElementById('categoryId').value; + + if (!categoryId) return; + + const catItems = items.filter(item => item.category_id == categoryId); + if (catItems.length > 0) { + alert(`이 카테고리에 ${catItems.length}개의 항목이 있습니다. 먼저 항목을 삭제하세요.`); + return; + } + + if (!confirm('이 카테고리를 삭제하시겠습니까?')) return; + + try { + const response = await fetch(`${API}/work-issues/categories/${categoryId}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + + const data = await response.json(); + + if (response.ok && data.success) { + alert('카테고리가 삭제되었습니다.'); + closeCategoryModal(); + await loadCategories(); + } else { + throw new Error(data.error || '삭제 실패'); + } + } catch (error) { + console.error('카테고리 삭제 실패:', error); + alert('카테고리 삭제에 실패했습니다: ' + error.message); + } +}; + +/** + * 항목 모달 열기 + */ +window.openItemModal = function(categoryId, itemId = null) { + const modal = document.getElementById('itemModal'); + const title = document.getElementById('itemModalTitle'); + const deleteBtn = document.getElementById('deleteItemBtn'); + + document.getElementById('itemId').value = ''; + document.getElementById('itemCategoryId').value = categoryId; + document.getElementById('itemName').value = ''; + document.getElementById('itemDescription').value = ''; + document.getElementById('itemSeverity').value = 'medium'; + + if (itemId) { + const item = items.find(i => i.item_id === itemId); + if (item) { + title.textContent = '항목 수정'; + document.getElementById('itemId').value = item.item_id; + document.getElementById('itemName').value = item.item_name; + document.getElementById('itemDescription').value = item.description || ''; + document.getElementById('itemSeverity').value = item.severity || 'medium'; + deleteBtn.style.display = 'block'; + } + } else { + const category = categories.find(c => c.category_id === categoryId); + title.textContent = `새 항목 (${category?.category_name || ''})`; + deleteBtn.style.display = 'none'; + } + + modal.style.display = 'flex'; +}; + +/** + * 항목 모달 닫기 + */ +window.closeItemModal = function() { + document.getElementById('itemModal').style.display = 'none'; +}; + +/** + * 항목 저장 + */ +window.saveItem = async function() { + const itemId = document.getElementById('itemId').value; + const categoryId = document.getElementById('itemCategoryId').value; + const name = document.getElementById('itemName').value.trim(); + const description = document.getElementById('itemDescription').value.trim(); + const severity = document.getElementById('itemSeverity').value; + + if (!name) { + alert('항목 이름을 입력하세요.'); + return; + } + + try { + const url = itemId + ? `${API}/work-issues/items/${itemId}` + : `${API}/work-issues/items`; + + const response = await fetch(url, { + method: itemId ? 'PUT' : 'POST', + headers: { + ...getAuthHeaders(), + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + category_id: categoryId, + item_name: name, + description, + severity + }) + }); + + const data = await response.json(); + + if (response.ok && data.success) { + alert(itemId ? '항목이 수정되었습니다.' : '항목이 추가되었습니다.'); + closeItemModal(); + await loadCategories(); + } else { + throw new Error(data.error || '저장 실패'); + } + } catch (error) { + console.error('항목 저장 실패:', error); + alert('항목 저장에 실패했습니다: ' + error.message); + } +}; + +/** + * 항목 삭제 + */ +window.deleteItem = async function() { + const itemId = document.getElementById('itemId').value; + + if (!itemId) return; + if (!confirm('이 항목을 삭제하시겠습니까?')) return; + + try { + const response = await fetch(`${API}/work-issues/items/${itemId}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + + const data = await response.json(); + + if (response.ok && data.success) { + alert('항목이 삭제되었습니다.'); + closeItemModal(); + await loadCategories(); + } else { + throw new Error(data.error || '삭제 실패'); + } + } catch (error) { + console.error('항목 삭제 실패:', error); + alert('항목 삭제에 실패했습니다: ' + error.message); + } +}; + +/** + * 빠른 항목 추가 + */ +window.quickAddItem = async function(categoryId) { + const input = document.getElementById(`newItemName_${categoryId}`); + const name = input.value.trim(); + + if (!name) { + alert('항목 이름을 입력하세요.'); + input.focus(); + return; + } + + try { + const response = await fetch(`${API}/work-issues/items`, { + method: 'POST', + headers: { + ...getAuthHeaders(), + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + category_id: categoryId, + item_name: name, + severity: 'medium' + }) + }); + + const data = await response.json(); + + if (response.ok && data.success) { + input.value = ''; + await loadCategories(); + // 카테고리 펼침 유지 + toggleCategory(categoryId); + } else { + throw new Error(data.error || '추가 실패'); + } + } catch (error) { + console.error('항목 추가 실패:', error); + alert('항목 추가에 실패했습니다: ' + error.message); + } +}; diff --git a/deploy/tkfb-package/web-ui/js/issue-detail.js b/deploy/tkfb-package/web-ui/js/issue-detail.js new file mode 100644 index 0000000..e089bbe --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/issue-detail.js @@ -0,0 +1,690 @@ +/** + * 신고 상세 페이지 JavaScript + */ + +const API_BASE = window.API_BASE_URL || 'http://localhost:20005/api'; + +let reportId = null; +let reportData = null; +let currentUser = null; + +// 상태 한글명 +const statusNames = { + reported: '신고', + received: '접수', + in_progress: '처리중', + completed: '완료', + closed: '종료' +}; + +// 유형 한글명 +const typeNames = { + nonconformity: '부적합', + safety: '안전' +}; + +// 심각도 한글명 +const severityNames = { + critical: '심각', + high: '높음', + medium: '보통', + low: '낮음' +}; + +// 초기화 +document.addEventListener('DOMContentLoaded', async () => { + // URL에서 ID 가져오기 + const urlParams = new URLSearchParams(window.location.search); + reportId = urlParams.get('id'); + + if (!reportId) { + alert('신고 ID가 없습니다.'); + goBackToList(); + return; + } + + // 현재 사용자 정보 로드 + await loadCurrentUser(); + + // 상세 데이터 로드 + await loadReportDetail(); +}); + +/** + * 현재 사용자 정보 로드 + */ +async function loadCurrentUser() { + try { + const response = await fetch(`${API_BASE}/users/me`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (response.ok) { + const data = await response.json(); + currentUser = data.data; + } + } catch (error) { + console.error('사용자 정보 로드 실패:', error); + } +} + +/** + * 신고 상세 로드 + */ +async function loadReportDetail() { + try { + const response = await fetch(`${API_BASE}/work-issues/${reportId}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) { + throw new Error('신고를 찾을 수 없습니다.'); + } + + const data = await response.json(); + if (!data.success) { + throw new Error(data.error || '데이터 조회 실패'); + } + + reportData = data.data; + renderDetail(); + await loadStatusLogs(); + + } catch (error) { + console.error('상세 로드 실패:', error); + alert(error.message); + goBackToList(); + } +} + +/** + * 상세 정보 렌더링 + */ +function renderDetail() { + const d = reportData; + + // 헤더 + document.getElementById('reportId').textContent = `#${d.report_id}`; + document.getElementById('reportTitle').textContent = d.issue_item_name || d.issue_category_name || '신고'; + + // 상태 배지 + const statusBadge = document.getElementById('statusBadge'); + statusBadge.className = `status-badge ${d.status}`; + statusBadge.textContent = statusNames[d.status] || d.status; + + // 기본 정보 + renderBasicInfo(d); + + // 신고 내용 + renderIssueContent(d); + + // 사진 + renderPhotos(d); + + // 처리 정보 + renderProcessInfo(d); + + // 액션 버튼 + renderActionButtons(d); +} + +/** + * 기본 정보 렌더링 + */ +function renderBasicInfo(d) { + const container = document.getElementById('basicInfo'); + + const formatDate = (dateStr) => { + if (!dateStr) return '-'; + const date = new Date(dateStr); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit' + }); + }; + + const validTypes = ['nonconformity', 'safety']; + const safeType = validTypes.includes(d.category_type) ? d.category_type : ''; + const reporterName = escapeHtml(d.reporter_full_name || d.reporter_name || '-'); + const locationText = escapeHtml(d.custom_location || d.workplace_name || '-'); + const factoryText = d.factory_name ? ` (${escapeHtml(d.factory_name)})` : ''; + + container.innerHTML = ` +
+
신고 유형
+
+ ${typeNames[d.category_type] || escapeHtml(d.category_type || '-')} +
+
+
+
신고일시
+
${formatDate(d.report_date)}
+
+
+
신고자
+
${reporterName}
+
+
+
위치
+
${locationText}${factoryText}
+
+ `; +} + +/** + * 신고 내용 렌더링 + */ +function renderIssueContent(d) { + const container = document.getElementById('issueContent'); + + const validSeverities = ['critical', 'high', 'medium', 'low']; + const safeSeverity = validSeverities.includes(d.severity) ? d.severity : ''; + + let html = ` +
+
+
카테고리
+
${escapeHtml(d.issue_category_name || '-')}
+
+
+
항목
+
+ ${escapeHtml(d.issue_item_name || '-')} + ${d.severity ? `${severityNames[d.severity] || escapeHtml(d.severity)}` : ''} +
+
+
+ `; + + if (d.additional_description) { + html += ` +
+ ${escapeHtml(d.additional_description)} +
+ `; + } + + container.innerHTML = html; +} + +/** + * 사진 렌더링 + */ +function renderPhotos(d) { + const section = document.getElementById('photoSection'); + const gallery = document.getElementById('photoGallery'); + + const photos = [d.photo_path1, d.photo_path2, d.photo_path3, d.photo_path4, d.photo_path5].filter(Boolean); + + if (photos.length === 0) { + section.style.display = 'none'; + return; + } + + section.style.display = 'block'; + + const baseUrl = (API_BASE).replace('/api', ''); + + gallery.innerHTML = photos.map(photo => { + const fullUrl = photo.startsWith('http') ? photo : `${baseUrl}${photo}`; + return ` +
+ 첨부 사진 +
+ `; + }).join(''); +} + +/** + * 처리 정보 렌더링 + */ +function renderProcessInfo(d) { + const section = document.getElementById('processSection'); + const container = document.getElementById('processInfo'); + + // 담당자 배정 또는 처리 정보가 있는 경우만 표시 + if (!d.assigned_user_id && !d.resolution_notes) { + section.style.display = 'none'; + return; + } + + section.style.display = 'block'; + + const formatDate = (dateStr) => { + if (!dateStr) return '-'; + const date = new Date(dateStr); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit' + }); + }; + + let html = '
'; + + if (d.assigned_user_id) { + html += ` +
+
담당자
+
${escapeHtml(d.assigned_full_name || d.assigned_user_name || '-')}
+
+
+
담당 부서
+
${escapeHtml(d.assigned_department || '-')}
+
+ `; + } + + if (d.resolved_at) { + html += ` +
+
처리 완료일
+
${formatDate(d.resolved_at)}
+
+
+
처리자
+
${escapeHtml(d.resolved_by_name || '-')}
+
+ `; + } + + html += '
'; + + if (d.resolution_notes) { + html += ` +
+
처리 내용
+
${escapeHtml(d.resolution_notes)}
+
+ `; + } + + container.innerHTML = html; +} + +/** + * 액션 버튼 렌더링 + */ +function renderActionButtons(d) { + const container = document.getElementById('actionButtons'); + + if (!currentUser) { + container.innerHTML = ''; + return; + } + + const isAdmin = ['admin', 'system', 'support_team'].includes(currentUser.access_level); + const isOwner = d.reporter_id === currentUser.user_id; + const isAssignee = d.assigned_user_id === currentUser.user_id; + + let buttons = []; + + // 관리자 권한 버튼 + if (isAdmin) { + if (d.status === 'reported') { + buttons.push(``); + } + + if (d.status === 'received' || d.status === 'in_progress') { + buttons.push(``); + } + + if (d.status === 'received') { + buttons.push(``); + } + + if (d.status === 'in_progress') { + buttons.push(``); + } + + if (d.status === 'completed') { + buttons.push(``); + } + } + + // 담당자 버튼 + if (isAssignee && !isAdmin) { + if (d.status === 'received') { + buttons.push(``); + } + + if (d.status === 'in_progress') { + buttons.push(``); + } + } + + // 신고자 버튼 (수정/삭제는 reported 상태에서만) + if (isOwner && d.status === 'reported') { + buttons.push(``); + } + + container.innerHTML = buttons.join(''); +} + +/** + * 상태 변경 이력 로드 + */ +async function loadStatusLogs() { + try { + const response = await fetch(`${API_BASE}/work-issues/${reportId}/status-logs`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) return; + + const data = await response.json(); + if (data.success && data.data) { + renderStatusTimeline(data.data); + } + } catch (error) { + console.error('상태 이력 로드 실패:', error); + } +} + +/** + * 상태 타임라인 렌더링 + */ +function renderStatusTimeline(logs) { + const container = document.getElementById('statusTimeline'); + + if (!logs || logs.length === 0) { + container.innerHTML = '

상태 변경 이력이 없습니다.

'; + return; + } + + const formatDate = (dateStr) => { + const date = new Date(dateStr); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit' + }); + }; + + container.innerHTML = logs.map(log => ` +
+
+ ${log.previous_status ? `${statusNames[log.previous_status] || escapeHtml(log.previous_status)} → ` : ''}${statusNames[log.new_status] || escapeHtml(log.new_status)} +
+
+ ${escapeHtml(log.changed_by_full_name || log.changed_by_name || '-')} | ${formatDate(log.changed_at)} + ${log.change_reason ? `
${escapeHtml(log.change_reason)}` : ''} +
+
+ `).join(''); +} + +// ==================== 액션 함수 ==================== + +/** + * 신고 접수 + */ +async function receiveReport() { + if (!confirm('이 신고를 접수하시겠습니까?')) return; + + try { + const response = await fetch(`${API_BASE}/work-issues/${reportId}/receive`, { + method: 'POST', + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + const data = await response.json(); + + if (data.success) { + alert('신고가 접수되었습니다.'); + location.reload(); + } else { + throw new Error(data.error || '접수 실패'); + } + } catch (error) { + alert('접수 실패: ' + error.message); + } +} + +/** + * 처리 시작 + */ +async function startProcessing() { + if (!confirm('처리를 시작하시겠습니까?')) return; + + try { + const response = await fetch(`${API_BASE}/work-issues/${reportId}/start`, { + method: 'POST', + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + const data = await response.json(); + + if (data.success) { + alert('처리가 시작되었습니다.'); + location.reload(); + } else { + throw new Error(data.error || '처리 시작 실패'); + } + } catch (error) { + alert('처리 시작 실패: ' + error.message); + } +} + +/** + * 신고 종료 + */ +async function closeReport() { + if (!confirm('이 신고를 종료하시겠습니까?')) return; + + try { + const response = await fetch(`${API_BASE}/work-issues/${reportId}/close`, { + method: 'POST', + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + const data = await response.json(); + + if (data.success) { + alert('신고가 종료되었습니다.'); + location.reload(); + } else { + throw new Error(data.error || '종료 실패'); + } + } catch (error) { + alert('종료 실패: ' + error.message); + } +} + +/** + * 신고 삭제 + */ +async function deleteReport() { + if (!confirm('정말 이 신고를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.')) return; + + try { + const response = await fetch(`${API_BASE}/work-issues/${reportId}`, { + method: 'DELETE', + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + const data = await response.json(); + + if (data.success) { + alert('신고가 삭제되었습니다.'); + goBackToList(); + } else { + throw new Error(data.error || '삭제 실패'); + } + } catch (error) { + alert('삭제 실패: ' + error.message); + } +} + +// ==================== 담당자 배정 모달 ==================== + +async function openAssignModal() { + // 사용자 목록 로드 + try { + const response = await fetch(`${API_BASE}/users`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (response.ok) { + const data = await response.json(); + const select = document.getElementById('assignUser'); + select.innerHTML = ''; + + if (data.success && data.data) { + data.data.forEach(user => { + const safeUserId = parseInt(user.user_id) || 0; + select.innerHTML += ``; + }); + } + } + } catch (error) { + console.error('사용자 목록 로드 실패:', error); + } + + document.getElementById('assignModal').classList.add('visible'); +} + +function closeAssignModal() { + document.getElementById('assignModal').classList.remove('visible'); +} + +async function submitAssign() { + const department = document.getElementById('assignDepartment').value; + const userId = document.getElementById('assignUser').value; + + if (!userId) { + alert('담당자를 선택해주세요.'); + return; + } + + try { + const response = await fetch(`${API_BASE}/work-issues/${reportId}/assign`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${localStorage.getItem('token')}` + }, + body: JSON.stringify({ + assigned_department: department, + assigned_user_id: parseInt(userId) + }) + }); + + const data = await response.json(); + + if (data.success) { + alert('담당자가 배정되었습니다.'); + closeAssignModal(); + location.reload(); + } else { + throw new Error(data.error || '배정 실패'); + } + } catch (error) { + alert('담당자 배정 실패: ' + error.message); + } +} + +// ==================== 처리 완료 모달 ==================== + +function openCompleteModal() { + document.getElementById('completeModal').classList.add('visible'); +} + +function closeCompleteModal() { + document.getElementById('completeModal').classList.remove('visible'); +} + +async function submitComplete() { + const notes = document.getElementById('resolutionNotes').value; + + if (!notes.trim()) { + alert('처리 내용을 입력해주세요.'); + return; + } + + try { + const response = await fetch(`${API_BASE}/work-issues/${reportId}/complete`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${localStorage.getItem('token')}` + }, + body: JSON.stringify({ + resolution_notes: notes + }) + }); + + const data = await response.json(); + + if (data.success) { + alert('처리가 완료되었습니다.'); + closeCompleteModal(); + location.reload(); + } else { + throw new Error(data.error || '완료 처리 실패'); + } + } catch (error) { + alert('처리 완료 실패: ' + error.message); + } +} + +// ==================== 사진 모달 ==================== + +function openPhotoModal(src) { + document.getElementById('photoModalImg').src = src; + document.getElementById('photoModal').classList.add('visible'); +} + +function closePhotoModal() { + document.getElementById('photoModal').classList.remove('visible'); +} + +// ==================== 유틸리티 ==================== + +function escapeHtml(text) { + const div = document.createElement('div'); + div.textContent = text; + return div.innerHTML; +} + +/** + * 목록으로 돌아가기 + */ +function goBackToList() { + const urlParams = new URLSearchParams(window.location.search); + const from = urlParams.get('from'); + + if (from === 'nonconformity') { + window.location.href = '/pages/work/nonconformity.html'; + } else if (from === 'safety') { + window.location.href = '/pages/safety/report-status.html'; + } else { + if (window.history.length > 1) { + window.history.back(); + } else { + window.location.href = '/pages/safety/report-status.html'; + } + } +} + +// 전역 함수 노출 +window.goBackToList = goBackToList; +window.receiveReport = receiveReport; +window.startProcessing = startProcessing; +window.closeReport = closeReport; +window.deleteReport = deleteReport; +window.openAssignModal = openAssignModal; +window.closeAssignModal = closeAssignModal; +window.submitAssign = submitAssign; +window.openCompleteModal = openCompleteModal; +window.closeCompleteModal = closeCompleteModal; +window.submitComplete = submitComplete; +window.openPhotoModal = openPhotoModal; +window.closePhotoModal = closePhotoModal; diff --git a/deploy/tkfb-package/web-ui/js/issue-report.js b/deploy/tkfb-package/web-ui/js/issue-report.js new file mode 100644 index 0000000..f9a6330 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/issue-report.js @@ -0,0 +1,926 @@ +/** + * 신고 등록 페이지 JavaScript + * URL 파라미터 ?type=nonconformity 또는 ?type=safety로 유형 사전 선택 지원 + */ + +// API 설정 +const API_BASE = window.API_BASE_URL || 'http://localhost:20005/api'; + +// 상태 변수 +let selectedFactoryId = null; +let selectedWorkplaceId = null; +let selectedWorkplaceName = null; +let selectedType = null; // 'nonconformity' | 'safety' +let selectedCategoryId = null; +let selectedCategoryName = null; +let selectedItemId = null; +let selectedTbmSessionId = null; +let selectedVisitRequestId = null; +let photos = [null, null, null, null, null]; +let customItemName = null; // 직접 입력한 항목명 + +// 지도 관련 변수 +let canvas, ctx, canvasImage; +let mapRegions = []; +let todayWorkers = []; +let todayVisitors = []; + +// DOM 요소 +let factorySelect, issueMapCanvas; +let photoInput, currentPhotoIndex; + +// 초기화 +document.addEventListener('DOMContentLoaded', async () => { + factorySelect = document.getElementById('factorySelect'); + issueMapCanvas = document.getElementById('issueMapCanvas'); + photoInput = document.getElementById('photoInput'); + + canvas = issueMapCanvas; + ctx = canvas.getContext('2d'); + + // 이벤트 리스너 설정 + setupEventListeners(); + + // 공장 목록 로드 + await loadFactories(); + + // URL 파라미터에서 유형 확인 및 자동 선택 + const urlParams = new URLSearchParams(window.location.search); + const preselectedType = urlParams.get('type'); + if (preselectedType === 'nonconformity' || preselectedType === 'safety') { + onTypeSelect(preselectedType); + } +}); + +/** + * 이벤트 리스너 설정 + */ +function setupEventListeners() { + // 공장 선택 + factorySelect.addEventListener('change', onFactoryChange); + + // 지도 클릭 + canvas.addEventListener('click', onMapClick); + + // 기타 위치 토글 + document.getElementById('useCustomLocation').addEventListener('change', (e) => { + const customInput = document.getElementById('customLocationInput'); + customInput.classList.toggle('visible', e.target.checked); + + if (e.target.checked) { + // 지도 선택 초기화 + selectedWorkplaceId = null; + selectedWorkplaceName = null; + selectedTbmSessionId = null; + selectedVisitRequestId = null; + updateLocationInfo(); + } + }); + + // 유형 버튼 클릭 + document.querySelectorAll('.type-btn').forEach(btn => { + btn.addEventListener('click', () => onTypeSelect(btn.dataset.type)); + }); + + // 사진 슬롯 클릭 + document.querySelectorAll('.photo-slot').forEach(slot => { + slot.addEventListener('click', (e) => { + if (e.target.classList.contains('remove-btn')) return; + currentPhotoIndex = parseInt(slot.dataset.index); + photoInput.click(); + }); + }); + + // 사진 삭제 버튼 + document.querySelectorAll('.photo-slot .remove-btn').forEach(btn => { + btn.addEventListener('click', (e) => { + e.stopPropagation(); + const slot = btn.closest('.photo-slot'); + const index = parseInt(slot.dataset.index); + removePhoto(index); + }); + }); + + // 사진 선택 + photoInput.addEventListener('change', onPhotoSelect); +} + +/** + * 공장 목록 로드 + */ +async function loadFactories() { + try { + const response = await fetch(`${API_BASE}/workplaces/categories/active/list`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) throw new Error('공장 목록 조회 실패'); + + const data = await response.json(); + if (data.success && data.data) { + data.data.forEach(factory => { + const option = document.createElement('option'); + option.value = factory.category_id; + option.textContent = factory.category_name; + factorySelect.appendChild(option); + }); + + // 첫 번째 공장 자동 선택 + if (data.data.length > 0) { + factorySelect.value = data.data[0].category_id; + onFactoryChange(); + } + } + } catch (error) { + console.error('공장 목록 로드 실패:', error); + } +} + +/** + * 공장 변경 시 + */ +async function onFactoryChange() { + selectedFactoryId = factorySelect.value; + if (!selectedFactoryId) return; + + // 위치 선택 초기화 + selectedWorkplaceId = null; + selectedWorkplaceName = null; + selectedTbmSessionId = null; + selectedVisitRequestId = null; + updateLocationInfo(); + + // 지도 데이터 로드 + await Promise.all([ + loadMapImage(), + loadMapRegions(), + loadTodayData() + ]); + + renderMap(); +} + +/** + * 배치도 이미지 로드 + */ +async function loadMapImage() { + try { + const response = await fetch(`${API_BASE}/workplaces/categories`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) return; + + const data = await response.json(); + if (data.success && data.data) { + const selectedCategory = data.data.find(c => c.category_id == selectedFactoryId); + if (selectedCategory && selectedCategory.layout_image) { + const baseUrl = (window.API_BASE_URL || 'http://localhost:20005').replace('/api', ''); + const fullImageUrl = selectedCategory.layout_image.startsWith('http') + ? selectedCategory.layout_image + : `${baseUrl}${selectedCategory.layout_image}`; + + canvasImage = new Image(); + canvasImage.onload = () => renderMap(); + canvasImage.src = fullImageUrl; + } + } + } catch (error) { + console.error('배치도 이미지 로드 실패:', error); + } +} + +/** + * 지도 영역 로드 + */ +async function loadMapRegions() { + try { + const response = await fetch(`${API_BASE}/workplaces/categories/${selectedFactoryId}/map-regions`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) return; + + const data = await response.json(); + if (data.success) { + mapRegions = data.data || []; + } + } catch (error) { + console.error('지도 영역 로드 실패:', error); + } +} + +/** + * 오늘 TBM/출입신청 데이터 로드 + */ +async function loadTodayData() { + // 로컬 시간대 기준으로 오늘 날짜 구하기 (UTC가 아닌 한국 시간 기준) + const now = new Date(); + const year = now.getFullYear(); + const month = String(now.getMonth() + 1).padStart(2, '0'); + const day = String(now.getDate()).padStart(2, '0'); + const today = `${year}-${month}-${day}`; + + console.log('[신고페이지] 조회 날짜 (로컬):', today); + + try { + // TBM 세션 로드 + const tbmResponse = await fetch(`${API_BASE}/tbm/sessions/date/${today}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (tbmResponse.ok) { + const tbmData = await tbmResponse.json(); + const sessions = tbmData.data || []; + + // TBM 세션 데이터를 가공하여 member_count 계산 + todayWorkers = sessions.map(session => { + const memberCount = session.team_member_count || 0; + const leaderCount = session.leader_id ? 1 : 0; + return { + ...session, + member_count: memberCount + leaderCount + }; + }); + + console.log('[신고페이지] 로드된 TBM 작업:', todayWorkers.length, '건'); + } + + // 출입 신청 로드 + const visitResponse = await fetch(`${API_BASE}/workplace-visits/requests`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (visitResponse.ok) { + const visitData = await visitResponse.json(); + todayVisitors = (visitData.data || []).filter(v => { + // 로컬 날짜로 비교 + const visitDateObj = new Date(v.visit_date); + const visitYear = visitDateObj.getFullYear(); + const visitMonth = String(visitDateObj.getMonth() + 1).padStart(2, '0'); + const visitDay = String(visitDateObj.getDate()).padStart(2, '0'); + const visitDate = `${visitYear}-${visitMonth}-${visitDay}`; + + return visitDate === today && + (v.status === 'approved' || v.status === 'training_completed'); + }); + + console.log('[신고페이지] 로드된 방문자:', todayVisitors.length, '건'); + } + } catch (error) { + console.error('오늘 데이터 로드 실패:', error); + } +} + +/** + * 둥근 모서리 사각형 그리기 (Canvas roundRect 폴리필) + */ +function drawRoundRect(ctx, x, y, width, height, radius) { + ctx.beginPath(); + ctx.moveTo(x + radius, y); + ctx.lineTo(x + width - radius, y); + ctx.quadraticCurveTo(x + width, y, x + width, y + radius); + ctx.lineTo(x + width, y + height - radius); + ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); + ctx.lineTo(x + radius, y + height); + ctx.quadraticCurveTo(x, y + height, x, y + height - radius); + ctx.lineTo(x, y + radius); + ctx.quadraticCurveTo(x, y, x + radius, y); + ctx.closePath(); +} + +/** + * 지도 렌더링 + */ +function renderMap() { + if (!canvas || !ctx) return; + + // 컨테이너 너비 가져오기 + const container = canvas.parentElement; + const containerWidth = container.clientWidth - 2; // border 고려 + const maxWidth = Math.min(containerWidth, 800); + + // 이미지가 로드된 경우 이미지 비율에 맞춰 캔버스 크기 설정 + if (canvasImage && canvasImage.complete && canvasImage.naturalWidth > 0) { + const imgWidth = canvasImage.naturalWidth; + const imgHeight = canvasImage.naturalHeight; + + // 스케일 계산 (maxWidth에 맞춤) + const scale = imgWidth > maxWidth ? maxWidth / imgWidth : 1; + + canvas.width = imgWidth * scale; + canvas.height = imgHeight * scale; + + // 이미지 그리기 + ctx.drawImage(canvasImage, 0, 0, canvas.width, canvas.height); + } else { + // 이미지가 없는 경우 기본 크기 + canvas.width = maxWidth; + canvas.height = 400; + + // 배경 그리기 + ctx.fillStyle = '#f3f4f6'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + + // 이미지 없음 안내 + ctx.fillStyle = '#9ca3af'; + ctx.font = '14px sans-serif'; + ctx.textAlign = 'center'; + ctx.fillText('배치도 이미지가 없습니다', canvas.width / 2, canvas.height / 2); + } + + // 작업장 영역 그리기 (퍼센트 좌표 사용) + mapRegions.forEach(region => { + const workers = todayWorkers.filter(w => w.workplace_id === region.workplace_id); + const visitors = todayVisitors.filter(v => v.workplace_id === region.workplace_id); + + const workerCount = workers.reduce((sum, w) => sum + (w.member_count || 0), 0); + const visitorCount = visitors.reduce((sum, v) => sum + (v.visitor_count || 0), 0); + + drawWorkplaceRegion(region, workerCount, visitorCount); + }); +} + +/** + * 작업장 영역 그리기 + */ +function drawWorkplaceRegion(region, workerCount, visitorCount) { + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + const width = x2 - x1; + const height = y2 - y1; + + // 선택된 작업장 하이라이트 + const isSelected = region.workplace_id === selectedWorkplaceId; + + // 색상 결정 (더 진하게 조정) + let fillColor, strokeColor, textColor; + if (isSelected) { + fillColor = 'rgba(34, 197, 94, 0.5)'; // 초록색 (선택됨) + strokeColor = 'rgb(22, 163, 74)'; + textColor = '#15803d'; + } else if (workerCount > 0 && visitorCount > 0) { + fillColor = 'rgba(34, 197, 94, 0.4)'; // 초록색 (작업+방문) + strokeColor = 'rgb(22, 163, 74)'; + textColor = '#166534'; + } else if (workerCount > 0) { + fillColor = 'rgba(59, 130, 246, 0.4)'; // 파란색 (작업만) + strokeColor = 'rgb(37, 99, 235)'; + textColor = '#1e40af'; + } else if (visitorCount > 0) { + fillColor = 'rgba(168, 85, 247, 0.4)'; // 보라색 (방문만) + strokeColor = 'rgb(147, 51, 234)'; + textColor = '#7c3aed'; + } else { + fillColor = 'rgba(107, 114, 128, 0.35)'; // 회색 (없음) - 더 진하게 + strokeColor = 'rgb(75, 85, 99)'; + textColor = '#374151'; + } + + ctx.fillStyle = fillColor; + ctx.strokeStyle = strokeColor; + ctx.lineWidth = isSelected ? 4 : 2.5; + + ctx.beginPath(); + ctx.rect(x1, y1, width, height); + ctx.fill(); + ctx.stroke(); + + // 작업장명 표시 (배경 추가로 가독성 향상) + const centerX = x1 + width / 2; + const centerY = y1 + height / 2; + + // 텍스트 배경 + ctx.font = 'bold 13px sans-serif'; + const textMetrics = ctx.measureText(region.workplace_name); + const textWidth = textMetrics.width + 12; + const textHeight = 20; + + ctx.fillStyle = 'rgba(255, 255, 255, 0.9)'; + drawRoundRect(ctx, centerX - textWidth / 2, centerY - textHeight / 2, textWidth, textHeight, 4); + ctx.fill(); + + // 텍스트 + ctx.fillStyle = textColor; + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; + ctx.fillText(region.workplace_name, centerX, centerY); + + // 인원수 표시 + const total = workerCount + visitorCount; + if (total > 0) { + // 인원수 배경 + ctx.font = 'bold 12px sans-serif'; + const countText = `${total}명`; + const countMetrics = ctx.measureText(countText); + const countWidth = countMetrics.width + 10; + const countHeight = 18; + + ctx.fillStyle = strokeColor; + drawRoundRect(ctx, centerX - countWidth / 2, centerY + 12, countWidth, countHeight, 4); + ctx.fill(); + + ctx.fillStyle = '#ffffff'; + ctx.fillText(countText, centerX, centerY + 21); + } +} + +/** + * 지도 클릭 처리 + */ +function onMapClick(e) { + const rect = canvas.getBoundingClientRect(); + const x = e.clientX - rect.left; + const y = e.clientY - rect.top; + + // 클릭된 영역 찾기 + for (const region of mapRegions) { + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + + if (x >= x1 && x <= x2 && y >= y1 && y <= y2) { + selectWorkplace(region); + return; + } + } +} + +/** + * 작업장 선택 + */ +function selectWorkplace(region) { + // 기타 위치 체크박스 해제 + document.getElementById('useCustomLocation').checked = false; + document.getElementById('customLocationInput').classList.remove('visible'); + + selectedWorkplaceId = region.workplace_id; + selectedWorkplaceName = region.workplace_name; + + // 해당 작업장의 TBM/출입신청 확인 + const workers = todayWorkers.filter(w => w.workplace_id === region.workplace_id); + const visitors = todayVisitors.filter(v => v.workplace_id === region.workplace_id); + + if (workers.length > 0 || visitors.length > 0) { + // 작업 선택 모달 표시 + showWorkSelectionModal(workers, visitors); + } else { + selectedTbmSessionId = null; + selectedVisitRequestId = null; + } + + updateLocationInfo(); + renderMap(); + updateStepStatus(); +} + +/** + * 작업 선택 모달 표시 + */ +function showWorkSelectionModal(workers, visitors) { + const modal = document.getElementById('workSelectionModal'); + const optionsList = document.getElementById('workOptionsList'); + + optionsList.innerHTML = ''; + + // TBM 작업 옵션 + workers.forEach(w => { + const option = document.createElement('div'); + option.className = 'work-option'; + const safeTaskName = escapeHtml(w.task_name || '작업'); + const safeProjectName = escapeHtml(w.project_name || ''); + const memberCount = parseInt(w.member_count) || 0; + option.innerHTML = ` +
TBM: ${safeTaskName}
+
${safeProjectName} - ${memberCount}명
+ `; + option.onclick = () => { + selectedTbmSessionId = w.session_id; + selectedVisitRequestId = null; + closeWorkModal(); + updateLocationInfo(); + }; + optionsList.appendChild(option); + }); + + // 출입신청 옵션 + visitors.forEach(v => { + const option = document.createElement('div'); + option.className = 'work-option'; + const safeCompany = escapeHtml(v.visitor_company || '-'); + const safePurpose = escapeHtml(v.purpose_name || '방문'); + const visitorCount = parseInt(v.visitor_count) || 0; + option.innerHTML = ` +
출입: ${safeCompany}
+
${safePurpose} - ${visitorCount}명
+ `; + option.onclick = () => { + selectedVisitRequestId = v.request_id; + selectedTbmSessionId = null; + closeWorkModal(); + updateLocationInfo(); + }; + optionsList.appendChild(option); + }); + + modal.classList.add('visible'); +} + +/** + * 작업 선택 모달 닫기 + */ +function closeWorkModal() { + document.getElementById('workSelectionModal').classList.remove('visible'); +} + +/** + * 선택된 위치 정보 업데이트 + */ +function updateLocationInfo() { + const infoBox = document.getElementById('selectedLocationInfo'); + const customLocation = document.getElementById('customLocation').value; + const useCustom = document.getElementById('useCustomLocation').checked; + + if (useCustom && customLocation) { + infoBox.classList.remove('empty'); + infoBox.innerHTML = `선택된 위치: ${escapeHtml(customLocation)}`; + } else if (selectedWorkplaceName) { + infoBox.classList.remove('empty'); + let html = `선택된 위치: ${escapeHtml(selectedWorkplaceName)}`; + + if (selectedTbmSessionId) { + const worker = todayWorkers.find(w => w.session_id === selectedTbmSessionId); + if (worker) { + html += `
연결 작업: ${escapeHtml(worker.task_name || '-')} (TBM)`; + } + } else if (selectedVisitRequestId) { + const visitor = todayVisitors.find(v => v.request_id === selectedVisitRequestId); + if (visitor) { + html += `
연결 작업: ${escapeHtml(visitor.visitor_company || '-')} (출입)`; + } + } + + infoBox.innerHTML = html; + } else { + infoBox.classList.add('empty'); + infoBox.textContent = '지도에서 작업장을 클릭하여 위치를 선택하세요'; + } +} + +/** + * 유형 선택 + */ +function onTypeSelect(type) { + selectedType = type; + selectedCategoryId = null; + selectedCategoryName = null; + selectedItemId = null; + + // 버튼 상태 업데이트 + document.querySelectorAll('.type-btn').forEach(btn => { + btn.classList.toggle('selected', btn.dataset.type === type); + }); + + // 카테고리 로드 + loadCategories(type); + updateStepStatus(); +} + +/** + * 카테고리 로드 + */ +async function loadCategories(type) { + try { + const response = await fetch(`${API_BASE}/work-issues/categories/type/${type}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) throw new Error('카테고리 조회 실패'); + + const data = await response.json(); + if (data.success && data.data) { + renderCategories(data.data); + } + } catch (error) { + console.error('카테고리 로드 실패:', error); + } +} + +/** + * 카테고리 렌더링 + */ +function renderCategories(categories) { + const container = document.getElementById('categoryContainer'); + const grid = document.getElementById('categoryGrid'); + + grid.innerHTML = ''; + + categories.forEach(cat => { + const btn = document.createElement('button'); + btn.type = 'button'; + btn.className = 'category-btn'; + btn.textContent = cat.category_name; + btn.onclick = () => onCategorySelect(cat); + grid.appendChild(btn); + }); + + container.style.display = 'block'; +} + +/** + * 카테고리 선택 + */ +function onCategorySelect(category) { + selectedCategoryId = category.category_id; + selectedCategoryName = category.category_name; + selectedItemId = null; + + // 버튼 상태 업데이트 + document.querySelectorAll('.category-btn').forEach(btn => { + btn.classList.toggle('selected', btn.textContent === category.category_name); + }); + + // 항목 로드 + loadItems(category.category_id); + updateStepStatus(); +} + +/** + * 항목 로드 + */ +async function loadItems(categoryId) { + try { + const response = await fetch(`${API_BASE}/work-issues/items/category/${categoryId}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) throw new Error('항목 조회 실패'); + + const data = await response.json(); + if (data.success && data.data) { + renderItems(data.data); + } + } catch (error) { + console.error('항목 로드 실패:', error); + } +} + +/** + * 항목 렌더링 + */ +function renderItems(items) { + const grid = document.getElementById('itemGrid'); + grid.innerHTML = ''; + + // 기존 항목들 렌더링 + items.forEach(item => { + const btn = document.createElement('button'); + btn.type = 'button'; + btn.className = 'item-btn'; + btn.textContent = item.item_name; + btn.dataset.severity = item.severity; + btn.onclick = () => onItemSelect(item, btn); + grid.appendChild(btn); + }); + + // 직접 입력 버튼 추가 + const customBtn = document.createElement('button'); + customBtn.type = 'button'; + customBtn.className = 'item-btn custom-input-btn'; + customBtn.textContent = '+ 직접 입력'; + customBtn.onclick = () => showCustomItemInput(); + grid.appendChild(customBtn); + + // 직접 입력 영역 숨기기 + document.getElementById('customItemInput').style.display = 'none'; + document.getElementById('customItemName').value = ''; + customItemName = null; +} + +/** + * 항목 선택 + */ +function onItemSelect(item, btn) { + // 단일 선택 (기존 선택 해제) + document.querySelectorAll('.item-btn').forEach(b => b.classList.remove('selected')); + btn.classList.add('selected'); + + selectedItemId = item.item_id; + customItemName = null; // 기존 항목 선택 시 직접 입력 초기화 + document.getElementById('customItemInput').style.display = 'none'; + updateStepStatus(); +} + +/** + * 직접 입력 영역 표시 + */ +function showCustomItemInput() { + // 기존 선택 해제 + document.querySelectorAll('.item-btn').forEach(b => b.classList.remove('selected')); + document.querySelector('.custom-input-btn').classList.add('selected'); + + selectedItemId = null; + + // 입력 영역 표시 + document.getElementById('customItemInput').style.display = 'flex'; + document.getElementById('customItemName').focus(); +} + +/** + * 직접 입력 확인 + */ +function confirmCustomItem() { + const input = document.getElementById('customItemName'); + const value = input.value.trim(); + + if (!value) { + alert('항목명을 입력해주세요.'); + input.focus(); + return; + } + + customItemName = value; + selectedItemId = null; // 커스텀 항목이므로 ID는 null + + // 입력 완료 표시 + const customBtn = document.querySelector('.custom-input-btn'); + customBtn.textContent = `✓ ${value}`; + customBtn.classList.add('selected'); + + updateStepStatus(); +} + +/** + * 직접 입력 취소 + */ +function cancelCustomItem() { + document.getElementById('customItemInput').style.display = 'none'; + document.getElementById('customItemName').value = ''; + customItemName = null; + + // 직접 입력 버튼 원상복구 + const customBtn = document.querySelector('.custom-input-btn'); + customBtn.textContent = '+ 직접 입력'; + customBtn.classList.remove('selected'); + + updateStepStatus(); +} + +/** + * 사진 선택 + */ +function onPhotoSelect(e) { + const file = e.target.files[0]; + if (!file) return; + + const reader = new FileReader(); + reader.onload = (event) => { + photos[currentPhotoIndex] = event.target.result; + updatePhotoSlot(currentPhotoIndex); + updateStepStatus(); // 제출 버튼 상태 업데이트 + }; + reader.readAsDataURL(file); + + // 입력 초기화 + e.target.value = ''; +} + +/** + * 사진 슬롯 업데이트 + */ +function updatePhotoSlot(index) { + const slot = document.querySelector(`.photo-slot[data-index="${index}"]`); + + if (photos[index]) { + slot.classList.add('has-photo'); + let img = slot.querySelector('img'); + if (!img) { + img = document.createElement('img'); + slot.insertBefore(img, slot.firstChild); + } + img.src = photos[index]; + } else { + slot.classList.remove('has-photo'); + const img = slot.querySelector('img'); + if (img) img.remove(); + } +} + +/** + * 사진 삭제 + */ +function removePhoto(index) { + photos[index] = null; + updatePhotoSlot(index); + updateStepStatus(); // 제출 버튼 상태 업데이트 +} + +/** + * 단계 상태 업데이트 + */ +function updateStepStatus() { + const steps = document.querySelectorAll('.step'); + const customLocation = document.getElementById('customLocation').value; + const useCustom = document.getElementById('useCustomLocation').checked; + + // Step 1: 위치 + const step1Complete = (useCustom && customLocation) || selectedWorkplaceId; + steps[0].classList.toggle('completed', step1Complete); + steps[1].classList.toggle('active', step1Complete); + + // Step 2: 유형 + const step2Complete = selectedType && selectedCategoryId; + steps[1].classList.toggle('completed', step2Complete); + steps[2].classList.toggle('active', step2Complete); + + // Step 3: 항목 (기존 항목 선택 또는 직접 입력) + const step3Complete = selectedItemId || customItemName; + steps[2].classList.toggle('completed', step3Complete); + steps[3].classList.toggle('active', step3Complete); + + // 제출 버튼 활성화 + const submitBtn = document.getElementById('submitBtn'); + const hasPhoto = photos.some(p => p !== null); + submitBtn.disabled = !(step1Complete && step2Complete && step3Complete && hasPhoto); +} + +/** + * 신고 제출 + */ +async function submitReport() { + const submitBtn = document.getElementById('submitBtn'); + submitBtn.disabled = true; + submitBtn.textContent = '제출 중...'; + + try { + const useCustom = document.getElementById('useCustomLocation').checked; + const customLocation = document.getElementById('customLocation').value; + const additionalDescription = document.getElementById('additionalDescription').value; + + const requestBody = { + factory_category_id: useCustom ? null : selectedFactoryId, + workplace_id: useCustom ? null : selectedWorkplaceId, + custom_location: useCustom ? customLocation : null, + tbm_session_id: selectedTbmSessionId, + visit_request_id: selectedVisitRequestId, + issue_category_id: selectedCategoryId, + issue_item_id: selectedItemId, + custom_item_name: customItemName, // 직접 입력한 항목명 + additional_description: additionalDescription || null, + photos: photos.filter(p => p !== null) + }; + + const response = await fetch(`${API_BASE}/work-issues`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${localStorage.getItem('token')}` + }, + body: JSON.stringify(requestBody) + }); + + const data = await response.json(); + + if (data.success) { + alert('신고가 등록되었습니다.'); + // 유형에 따라 다른 페이지로 리다이렉트 + if (selectedType === 'nonconformity') { + window.location.href = '/pages/work/nonconformity.html'; + } else if (selectedType === 'safety') { + window.location.href = '/pages/safety/report-status.html'; + } else { + // 기본: 뒤로가기 + history.back(); + } + } else { + throw new Error(data.error || '신고 등록 실패'); + } + } catch (error) { + console.error('신고 제출 실패:', error); + alert('신고 등록에 실패했습니다: ' + error.message); + } finally { + submitBtn.disabled = false; + submitBtn.textContent = '신고 제출'; + } +} + +// 기타 위치 입력 시 위치 정보 업데이트 +document.addEventListener('DOMContentLoaded', () => { + const customLocationInput = document.getElementById('customLocation'); + if (customLocationInput) { + customLocationInput.addEventListener('input', () => { + updateLocationInfo(); + updateStepStatus(); + }); + } +}); + +// 전역 함수 노출 (HTML onclick에서 호출용) +window.closeWorkModal = closeWorkModal; +window.submitReport = submitReport; +window.showCustomItemInput = showCustomItemInput; +window.confirmCustomItem = confirmCustomItem; +window.cancelCustomItem = cancelCustomItem; diff --git a/deploy/tkfb-package/web-ui/js/load-navbar.js b/deploy/tkfb-package/web-ui/js/load-navbar.js new file mode 100644 index 0000000..efbcf60 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/load-navbar.js @@ -0,0 +1,442 @@ +// /js/load-navbar.js +import { getUser, clearAuthData } from './auth.js'; +import { loadComponent } from './component-loader.js'; +import { config } from './config.js'; + +// 역할 이름을 한글로 변환하는 맵 +const ROLE_NAMES = { + 'system admin': '시스템 관리자', + 'admin': '관리자', + 'system': '시스템 관리자', + 'leader': '그룹장', + 'user': '작업자', + 'support': '지원팀', + 'default': '사용자', +}; + +/** + * 네비게이션 바 DOM을 사용자 정보와 역할에 맞게 수정하는 프로세서입니다. + * @param {Document} doc - 파싱된 HTML 문서 객체 + */ +async function processNavbarDom(doc) { + const currentUser = getUser(); + if (!currentUser) return; + + // 1. 역할 및 페이지 권한 기반 메뉴 필터링 + await filterMenuByPageAccess(doc, currentUser); + + // 2. 사용자 정보 채우기 + populateUserInfo(doc, currentUser); +} + +/** + * 사용자의 페이지 접근 권한에 따라 메뉴 항목을 필터링합니다. + * @param {Document} doc - 파싱된 HTML 문서 객체 + * @param {object} currentUser - 현재 사용자 객체 + */ +async function filterMenuByPageAccess(doc, currentUser) { + const userRole = (currentUser.role || '').toLowerCase(); + + // Admin은 모든 메뉴 표시 + .admin-only 요소 활성화 + if (userRole === 'admin' || userRole === 'system admin') { + doc.querySelectorAll('.admin-only').forEach(el => el.classList.add('visible')); + return; + } + + try { + // 사용자의 페이지 접근 권한 조회 + const cached = localStorage.getItem('userPageAccess'); + let accessiblePages = null; + + if (cached) { + const cacheData = JSON.parse(cached); + // 캐시가 5분 이내인 경우 사용 + if (Date.now() - cacheData.timestamp < 5 * 60 * 1000) { + accessiblePages = cacheData.pages; + } + } + + // 캐시가 없으면 API 호출 + if (!accessiblePages) { + const response = await fetch(`${window.API_BASE_URL}/users/${currentUser.user_id}/page-access`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${localStorage.getItem('token')}` + } + }); + + if (!response.ok) { + console.error('페이지 권한 조회 실패:', response.status); + return; + } + + const data = await response.json(); + accessiblePages = data.data.pageAccess || []; + + // 캐시 저장 + localStorage.setItem('userPageAccess', JSON.stringify({ + pages: accessiblePages, + timestamp: Date.now() + })); + } + + // 접근 가능한 페이지 키 목록 + const accessiblePageKeys = accessiblePages + .filter(p => p.can_access === 1) + .map(p => p.page_key); + + // 메뉴 항목에 data-page-key 속성이 있으면 해당 권한 체크 + const menuItems = doc.querySelectorAll('[data-page-key]'); + menuItems.forEach(item => { + const pageKey = item.getAttribute('data-page-key'); + + // 대시보드와 프로필 페이지는 모든 사용자 접근 가능 + if (pageKey === 'dashboard' || pageKey.startsWith('profile.')) { + return; + } + + // 권한이 없으면 메뉴 항목 제거 + if (!accessiblePageKeys.includes(pageKey)) { + item.remove(); + } + }); + + // Admin 전용 메뉴는 무조건 제거 + doc.querySelectorAll('.admin-only').forEach(el => el.remove()); + + } catch (error) { + console.error('메뉴 필터링 오류:', error); + } +} + +/** + * 네비게이션 바에 사용자 정보를 채웁니다. + * @param {Document} doc - 파싱된 HTML 문서 객체 + * @param {object} user - 현재 사용자 객체 + */ +function populateUserInfo(doc, user) { + const displayName = user.name || user.username; + // 대소문자 구분 없이 처리 + const roleLower = (user.role || '').toLowerCase(); + const roleName = ROLE_NAMES[roleLower] || ROLE_NAMES.default; + + const elements = { + 'userName': displayName, + 'userRole': roleName, + 'userInitial': displayName.charAt(0), + }; + + for (const id in elements) { + const el = doc.getElementById(id); + if (el) el.textContent = elements[id]; + } + + // 메인 대시보드 URL 설정 + const dashboardBtn = doc.getElementById('dashboardBtn'); + if (dashboardBtn) { + dashboardBtn.href = '/pages/dashboard.html'; + } +} + +/** + * 네비게이션 바와 관련된 모든 이벤트를 설정합니다. + */ +function setupNavbarEvents() { + const logoutButton = document.getElementById('logoutBtn'); + if (logoutButton) { + logoutButton.addEventListener('click', () => { + if (confirm('로그아웃 하시겠습니까?')) { + clearAuthData(); + window.location.href = config.paths.loginPage; + } + }); + } +} + +/** + * 현재 날짜와 시간을 업데이트하는 함수 + */ +function updateDateTime() { + const now = new Date(); + + // 시간 업데이트 (시 분 초 형식으로 고정) + const timeElement = document.getElementById('timeValue'); + if (timeElement) { + const hours = String(now.getHours()).padStart(2, '0'); + const minutes = String(now.getMinutes()).padStart(2, '0'); + const seconds = String(now.getSeconds()).padStart(2, '0'); + timeElement.textContent = `${hours}시 ${minutes}분 ${seconds}초`; + } + + // 날짜 업데이트 + const dateElement = document.getElementById('dateValue'); + if (dateElement) { + const days = ['일', '월', '화', '수', '목', '금', '토']; + const month = now.getMonth() + 1; + const date = now.getDate(); + const day = days[now.getDay()]; + dateElement.textContent = `${month}월 ${date}일 (${day})`; + } +} + +// 날씨 아이콘 매핑 +const WEATHER_ICONS = { + clear: '☀️', + rain: '🌧️', + snow: '❄️', + heat: '🔥', + cold: '🥶', + wind: '💨', + fog: '🌫️', + dust: '😷', + cloudy: '⛅', + overcast: '☁️' +}; + +// 날씨 조건명 +const WEATHER_NAMES = { + clear: '맑음', + rain: '비', + snow: '눈', + heat: '폭염', + cold: '한파', + wind: '강풍', + fog: '안개', + dust: '미세먼지', + cloudy: '구름많음', + overcast: '흐림' +}; + +/** + * 날씨 정보를 가져와서 업데이트하는 함수 + */ +async function updateWeather() { + try { + const token = localStorage.getItem('token'); + if (!token) return; + + const response = await fetch(`${window.API_BASE_URL}/tbm/weather/current`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + } + }); + + if (!response.ok) { + throw new Error('날씨 API 호출 실패'); + } + + const result = await response.json(); + + if (result.success && result.data) { + const { temperature, conditions, weatherData } = result.data; + + // 온도 표시 + const tempElement = document.getElementById('weatherTemp'); + if (tempElement && temperature !== null && temperature !== undefined) { + tempElement.textContent = `${Math.round(temperature)}°C`; + } + + // 날씨 아이콘 및 설명 + const iconElement = document.getElementById('weatherIcon'); + const descElement = document.getElementById('weatherDesc'); + + if (conditions && conditions.length > 0) { + const primaryCondition = conditions[0]; + if (iconElement) { + iconElement.textContent = WEATHER_ICONS[primaryCondition] || '🌤️'; + } + if (descElement) { + descElement.textContent = WEATHER_NAMES[primaryCondition] || '맑음'; + } + } else { + if (iconElement) iconElement.textContent = '☀️'; + if (descElement) descElement.textContent = '맑음'; + } + + // 날씨 섹션 표시 + const weatherSection = document.getElementById('weatherSection'); + if (weatherSection) { + weatherSection.style.opacity = '1'; + } + } + } catch (error) { + console.warn('날씨 정보 로드 실패:', error.message); + // 실패해도 기본값 표시 + const descElement = document.getElementById('weatherDesc'); + if (descElement) { + descElement.textContent = '날씨 정보 없음'; + } + } +} + +// ========================================== +// 알림 시스템 +// ========================================== + +/** + * 알림 관련 이벤트 설정 + */ +function setupNotificationEvents() { + const notificationBtn = document.getElementById('notificationBtn'); + const notificationDropdown = document.getElementById('notificationDropdown'); + const notificationWrapper = document.getElementById('notificationWrapper'); + + if (notificationBtn) { + notificationBtn.addEventListener('click', (e) => { + e.stopPropagation(); + notificationDropdown?.classList.toggle('show'); + }); + } + + // 외부 클릭시 드롭다운 닫기 + document.addEventListener('click', (e) => { + if (notificationWrapper && notificationDropdown && !notificationWrapper.contains(e.target)) { + notificationDropdown.classList.remove('show'); + } + }); +} + +/** + * 알림 목록 로드 + */ +async function loadNotifications() { + try { + const token = localStorage.getItem('token'); + if (!token) return; + + const response = await fetch(`${window.API_BASE_URL}/notifications/unread`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + } + }); + + if (!response.ok) return; + + const result = await response.json(); + if (result.success) { + const notifications = result.data || []; + updateNotificationBadge(notifications.length); + renderNotificationList(notifications); + } + } catch (error) { + console.warn('알림 로드 오류:', error.message); + } +} + +/** + * 배지 업데이트 + */ +function updateNotificationBadge(count) { + const badge = document.getElementById('notificationBadge'); + const btn = document.getElementById('notificationBtn'); + if (!badge) return; + + if (count > 0) { + badge.textContent = count > 99 ? '99+' : count; + badge.style.display = 'flex'; + btn?.classList.add('has-notifications'); + } else { + badge.style.display = 'none'; + btn?.classList.remove('has-notifications'); + } +} + +/** + * 알림 목록 렌더링 + */ +function renderNotificationList(notifications) { + const list = document.getElementById('notificationList'); + if (!list) return; + + if (notifications.length === 0) { + list.innerHTML = '
새 알림이 없습니다.
'; + return; + } + + const NOTIF_ICONS = { + repair: '🔧', + safety: '⚠️', + system: '📢', + equipment: '🔩', + maintenance: '🛠️' + }; + + list.innerHTML = notifications.slice(0, 5).map(n => ` +
+
+ ${NOTIF_ICONS[n.type] || '🔔'} +
+
+
${escapeHtml(n.title)}
+
${escapeHtml(n.message || '')}
+
+
${formatTimeAgo(n.created_at)}
+
+ `).join(''); + + // 클릭 이벤트 추가 + list.querySelectorAll('.notification-item').forEach(item => { + item.addEventListener('click', () => { + const linkUrl = item.dataset.url; + // 수리 알림은 클릭해도 읽음 처리 안함 (수리 처리 페이지에서 확인 처리) + window.location.href = linkUrl || '/pages/admin/notifications.html'; + }); + }); +} + +/** + * 시간 포맷팅 + */ +function formatTimeAgo(dateString) { + const date = new Date(dateString); + const now = new Date(); + const diffMs = now - date; + const diffMins = Math.floor(diffMs / 60000); + const diffHours = Math.floor(diffMs / 3600000); + const diffDays = Math.floor(diffMs / 86400000); + + if (diffMins < 1) return '방금 전'; + if (diffMins < 60) return `${diffMins}분 전`; + if (diffHours < 24) return `${diffHours}시간 전`; + if (diffDays < 7) return `${diffDays}일 전`; + return date.toLocaleDateString('ko-KR', { month: 'short', day: 'numeric' }); +} + +/** + * HTML 이스케이프 + */ +function escapeHtml(text) { + if (!text) return ''; + const div = document.createElement('div'); + div.textContent = text; + return div.innerHTML; +} + +// 메인 로직: DOMContentLoaded 시 실행 +document.addEventListener('DOMContentLoaded', async () => { + if (getUser()) { + // 1. 컴포넌트 로드 및 DOM 수정 + await loadComponent('navbar', '#navbar-container', processNavbarDom); + + // 2. DOM에 삽입된 후에 이벤트 리스너 설정 + setupNavbarEvents(); + + // 3. 실시간 날짜/시간 업데이트 시작 + updateDateTime(); + setInterval(updateDateTime, 1000); + + // 4. 날씨 정보 로드 (10분마다 갱신) + updateWeather(); + setInterval(updateWeather, 10 * 60 * 1000); + + // 5. 알림 이벤트 설정 및 로드 (30초마다 갱신) + setupNotificationEvents(); + loadNotifications(); + setInterval(loadNotifications, 30000); + } +}); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/load-sections.js b/deploy/tkfb-package/web-ui/js/load-sections.js new file mode 100644 index 0000000..6b735ff --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/load-sections.js @@ -0,0 +1,104 @@ +// /js/load-sections.js +import { getUser } from './auth.js'; +import { apiGet } from './api-helper.js'; + +// 역할에 따라 불러올 섹션 HTML 파일을 매핑합니다. +const SECTION_MAP = { + admin: '/components/sections/admin-sections.html', + system: '/components/sections/admin-sections.html', // system도 admin과 동일한 섹션을 사용 + leader: '/components/sections/leader-sections.html', + user: '/components/sections/user-sections.html', + default: '/components/sections/user-sections.html', // 역할이 없는 경우 기본값 +}; + +/** + * API를 통해 대시보드 통계 데이터를 가져옵니다. + * @returns {Promise} 통계 데이터 또는 에러 시 null + */ +async function fetchDashboardStats() { + try { + const today = new Date().toISOString().split('T')[0]; + // 실제 백엔드 엔드포인트는 /api/dashboard/stats 와 같은 형태로 구현될 수 있습니다. + const stats = await apiGet(`/workreports?start=${today}&end=${today}`); + // 필요한 데이터 형태로 가공 (예시) + return { + today_reports_count: stats.length, + today_workers_count: new Set(stats.map(d => d.worker_id)).size, + }; + } catch (error) { + console.error('대시보드 통계 데이터 로드 실패:', error); + return null; + } +} + +/** + * 가상 DOM에 통계 데이터를 채워 넣습니다. + * @param {Document} doc - 파싱된 HTML 문서 객체 + * @param {object} stats - 통계 데이터 + */ +function populateStatsData(doc, stats) { + if (!stats) return; + + const todayStatsEl = doc.getElementById('today-stats'); + if (todayStatsEl) { + todayStatsEl.innerHTML = ` +

📝 오늘 등록된 작업: ${stats.today_reports_count}건

+

👥 참여 작업자: ${stats.today_workers_count}명

+ `; + } +} + +/** + * 메인 로직: 페이지에 역할별 섹션을 로드하고 내용을 채웁니다. + */ +async function initializeSections() { + const mainContainer = document.querySelector('main[id$="-sections"]'); + if (!mainContainer) { + console.error('섹션을 담을 메인 컨테이너를 찾을 수 없습니다.'); + return; + } + mainContainer.innerHTML = '
콘텐츠를 불러오는 중...
'; + + const currentUser = getUser(); + if (!currentUser) { + mainContainer.innerHTML = '
사용자 정보를 찾을 수 없습니다.
'; + return; + } + + const sectionFile = SECTION_MAP[currentUser.role] || SECTION_MAP.default; + + try { + // 1. 역할에 맞는 HTML 템플릿과 동적 데이터를 동시에 로드 (Promise.all 활용) + const [htmlResponse, statsData] = await Promise.all([ + fetch(sectionFile), + fetchDashboardStats() + ]); + + if (!htmlResponse.ok) { + throw new Error(`섹션 파일(${sectionFile})을 불러오는 데 실패했습니다.`); + } + const htmlText = await htmlResponse.text(); + + // 2. 텍스트를 가상 DOM으로 파싱 + const parser = new DOMParser(); + const doc = parser.parseFromString(htmlText, 'text/html'); + + // 3. (필요 시) 역할 기반으로 가상 DOM 필터링 - 현재는 파일 자체가 역할별로 나뉘어 불필요 + // filterByRole(doc, currentUser.role); + + // 4. 가상 DOM에 동적 데이터 채우기 + populateStatsData(doc, statsData); + + // 5. 모든 수정이 완료된 HTML을 실제 DOM에 한 번에 삽입 + mainContainer.innerHTML = doc.body.innerHTML; + + console.log(`✅ ${currentUser.role} 역할의 섹션 로딩 완료.`); + + } catch (error) { + console.error('섹션 로딩 중 오류 발생:', error); + mainContainer.innerHTML = `
콘텐츠 로딩에 실패했습니다: ${error.message}
`; + } +} + +// DOM이 로드되면 섹션 초기화를 시작합니다. +document.addEventListener('DOMContentLoaded', initializeSections); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/load-sidebar.js b/deploy/tkfb-package/web-ui/js/load-sidebar.js new file mode 100644 index 0000000..037b7b8 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/load-sidebar.js @@ -0,0 +1,209 @@ +// /js/load-sidebar.js +// 사이드바 네비게이션 로더 및 컨트롤러 + +import { getUser } from './auth.js'; +import { loadComponent } from './component-loader.js'; + +/** + * 사이드바 DOM을 사용자 권한에 맞게 처리 + */ +async function processSidebarDom(doc) { + const currentUser = getUser(); + if (!currentUser) return; + + const userRole = (currentUser.role || '').toLowerCase(); + const accessLevel = (currentUser.access_level || '').toLowerCase(); + // role 또는 access_level로 관리자 확인 + const isAdmin = userRole === 'admin' || userRole === 'system admin' || userRole === 'system' || + accessLevel === 'admin' || accessLevel === 'system'; + + // 1. 관리자 전용 메뉴 표시/숨김 + if (isAdmin) { + doc.querySelectorAll('.admin-only').forEach(el => el.classList.add('visible')); + } else { + // 비관리자: 페이지 접근 권한에 따라 메뉴 필터링 + await filterMenuByPageAccess(doc, currentUser); + } + + // 2. 현재 페이지 활성화 + highlightCurrentPage(doc); + + // 3. 저장된 상태 복원 + restoreSidebarState(doc); +} + +/** + * 사용자의 페이지 접근 권한에 따라 메뉴 필터링 + */ +async function filterMenuByPageAccess(doc, currentUser) { + try { + const cached = localStorage.getItem('userPageAccess'); + let accessiblePages = null; + + if (cached) { + const cacheData = JSON.parse(cached); + if (Date.now() - cacheData.timestamp < 5 * 60 * 1000) { + accessiblePages = cacheData.pages; + } + } + + if (!accessiblePages) { + const response = await fetch(`${window.API_BASE_URL}/users/${currentUser.user_id}/page-access`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${localStorage.getItem('token')}` + } + }); + + if (!response.ok) return; + + const data = await response.json(); + accessiblePages = data.data.pageAccess || []; + + localStorage.setItem('userPageAccess', JSON.stringify({ + pages: accessiblePages, + timestamp: Date.now() + })); + } + + const accessiblePageKeys = accessiblePages + .filter(p => p.can_access === 1) + .map(p => p.page_key); + + // 메뉴 항목 필터링 + const menuItems = doc.querySelectorAll('[data-page-key]'); + menuItems.forEach(item => { + const pageKey = item.getAttribute('data-page-key'); + + // 대시보드와 프로필은 항상 표시 + if (pageKey === 'dashboard' || pageKey.startsWith('profile.')) { + return; + } + + // 권한 없으면 숨김 + if (!accessiblePageKeys.includes(pageKey)) { + item.style.display = 'none'; + } + }); + + // 관리자 전용 카테고리 제거 + doc.querySelectorAll('.nav-category.admin-only').forEach(el => el.remove()); + + } catch (error) { + console.error('사이드바 메뉴 필터링 오류:', error); + } +} + +/** + * 현재 페이지 하이라이트 + */ +function highlightCurrentPage(doc) { + const currentPath = window.location.pathname; + + doc.querySelectorAll('.nav-item').forEach(item => { + const href = item.getAttribute('href'); + if (href && currentPath.includes(href.replace(/^\//, ''))) { + item.classList.add('active'); + + // 부모 카테고리 열기 + const category = item.closest('.nav-category'); + if (category) { + category.classList.add('expanded'); + } + } + }); +} + +/** + * 사이드바 상태 복원 (기본값: 접힌 상태) + */ +function restoreSidebarState(doc) { + const isCollapsed = localStorage.getItem('sidebarCollapsed') !== 'false'; + const sidebar = doc.querySelector('.sidebar-nav'); + + if (isCollapsed && sidebar) { + sidebar.classList.add('collapsed'); + document.body.classList.add('sidebar-collapsed'); + } + + // 확장된 카테고리 복원 + const expandedCategories = JSON.parse(localStorage.getItem('sidebarExpanded') || '[]'); + expandedCategories.forEach(category => { + const el = doc.querySelector(`[data-category="${category}"]`); + if (el) el.classList.add('expanded'); + }); +} + +/** + * 사이드바 이벤트 설정 + */ +function setupSidebarEvents() { + const sidebar = document.getElementById('sidebarNav'); + const toggle = document.getElementById('sidebarToggle'); + + if (!sidebar || !toggle) return; + + // 토글 버튼 클릭 + toggle.addEventListener('click', () => { + sidebar.classList.toggle('collapsed'); + document.body.classList.toggle('sidebar-collapsed'); + + localStorage.setItem('sidebarCollapsed', sidebar.classList.contains('collapsed')); + }); + + // 카테고리 헤더 클릭 + sidebar.querySelectorAll('.nav-category-header').forEach(header => { + header.addEventListener('click', () => { + const category = header.closest('.nav-category'); + category.classList.toggle('expanded'); + + // 상태 저장 + const expanded = []; + sidebar.querySelectorAll('.nav-category.expanded').forEach(cat => { + const categoryName = cat.getAttribute('data-category'); + if (categoryName) expanded.push(categoryName); + }); + localStorage.setItem('sidebarExpanded', JSON.stringify(expanded)); + }); + }); + + // 링크 프리페치 - 마우스 올리면 미리 로드 + const prefetchedUrls = new Set(); + sidebar.querySelectorAll('a.nav-item').forEach(link => { + link.addEventListener('mouseenter', () => { + const href = link.getAttribute('href'); + if (href && !prefetchedUrls.has(href) && !href.startsWith('#')) { + prefetchedUrls.add(href); + const prefetchLink = document.createElement('link'); + prefetchLink.rel = 'prefetch'; + prefetchLink.href = href; + document.head.appendChild(prefetchLink); + } + }, { once: true }); + }); +} + +/** + * 사이드바 초기화 + */ +async function initSidebar() { + // 사이드바 컨테이너가 없으면 생성 + let container = document.getElementById('sidebar-container'); + if (!container) { + container = document.createElement('div'); + container.id = 'sidebar-container'; + document.body.prepend(container); + } + + if (getUser()) { + await loadComponent('sidebar-nav', '#sidebar-container', processSidebarDom); + document.body.classList.add('has-sidebar'); + setupSidebarEvents(); + } +} + +// DOMContentLoaded 시 초기화 +document.addEventListener('DOMContentLoaded', initSidebar); + +export { initSidebar }; \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/login.js b/deploy/tkfb-package/web-ui/js/login.js new file mode 100644 index 0000000..8dedb51 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/login.js @@ -0,0 +1,49 @@ +// /js/login.js +import { saveAuthData, clearAuthData } from './auth.js'; +import { redirectToDefaultDashboard } from './navigation.js'; +// api-helper.js가 ES6 모듈로 변환되면 import를 사용해야 합니다. +// import { login } from './api-helper.js'; + +document.getElementById('loginForm').addEventListener('submit', async function (e) { + e.preventDefault(); + + const username = document.getElementById('username').value; + const password = document.getElementById('password').value; + const errorDiv = document.getElementById('error'); + + const submitBtn = e.target.querySelector('button[type="submit"]'); + const originalText = submitBtn.textContent; + + // 로딩 상태 시작 + submitBtn.disabled = true; + submitBtn.textContent = '로그인 중...'; + errorDiv.style.display = 'none'; + + try { + // 현재는 window 객체를 통해 호출하지만, 향후 모듈화 필요 + const result = await window.login(username, password); + + if (result.success && result.data && result.data.token) { + // auth.js에서 가져온 함수로 인증 정보 저장 + saveAuthData(result.data.token, result.data.user); + + // navigation.js를 통해 리디렉션 + redirectToDefaultDashboard(result.data.redirectUrl); + + } else { + // api-helper가 에러를 throw하므로 이 블록은 실행될 가능성이 낮음 + clearAuthData(); + errorDiv.textContent = result.error || '로그인에 실패했습니다.'; + errorDiv.style.display = 'block'; + } + } catch (err) { + console.error('로그인 오류:', err); + clearAuthData(); + errorDiv.textContent = err.message || '서버 연결에 실패했습니다.'; + errorDiv.style.display = 'block'; + } finally { + // 로딩 상태 해제 + submitBtn.disabled = false; + submitBtn.textContent = originalText; + } +}); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/manage-issue.js b/deploy/tkfb-package/web-ui/js/manage-issue.js new file mode 100644 index 0000000..dba6317 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/manage-issue.js @@ -0,0 +1,86 @@ +import { API, getAuthHeaders } from '/js/api-config.js'; + +function createRow(item, cols, delHandler) { + const tr = document.createElement('tr'); + cols.forEach(key => { + const td = document.createElement('td'); + td.textContent = item[key]; + tr.appendChild(td); + }); + const delBtn = document.createElement('button'); + delBtn.textContent = '삭제'; + delBtn.className = 'btn-delete'; + delBtn.onclick = () => delHandler(item); + const td = document.createElement('td'); + td.appendChild(delBtn); + tr.appendChild(td); + return tr; +} + +const form = document.getElementById('issueTypeForm'); +form?.addEventListener('submit', async e => { + e.preventDefault(); + const body = { + category: document.getElementById('category').value, + subcategory: document.getElementById('subcategory').value + }; + try { + const res = await fetch(`${API}/issue-types`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify(body) + }); + const result = await res.json(); + if (res.ok && result.success) { + alert('✅ 등록 완료'); + form.reset(); + loadIssueTypes(); + } else { + alert('❌ 실패: ' + (result.error || '알 수 없는 오류')); + } + } catch (err) { + alert('🚨 서버 오류: ' + err.message); + } +}); + +async function loadIssueTypes() { + const tbody = document.getElementById('issueTypeTableBody'); + tbody.innerHTML = '불러오는 중...'; + try { + const res = await fetch(`${API}/issue-types`, { + headers: getAuthHeaders() + }); + const list = await res.json(); + tbody.innerHTML = ''; + + if (Array.isArray(list)) { + list.forEach(item => { + const row = createRow(item, ['issue_type_id', 'category', 'subcategory'], async t => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await fetch(`${API}/issue-types/${t.issue_type_id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + if (delRes.ok) { + loadIssueTypes(); + } else { + alert('삭제 실패'); + } + } catch (err) { + alert('삭제 중 오류: ' + err.message); + } + }); + tbody.appendChild(row); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (err) { + tbody.innerHTML = '로드 실패: ' + err.message + ''; + } +} + +document.addEventListener('DOMContentLoaded', () => { + loadIssueTypes(); +}); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/manage-pipespec.js b/deploy/tkfb-package/web-ui/js/manage-pipespec.js new file mode 100644 index 0000000..cceabb4 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/manage-pipespec.js @@ -0,0 +1,93 @@ +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +ensureAuthenticated(); + +// 행 생성 +function createRow(item, delHandler) { + const tr = document.createElement('tr'); + const label = `${item.material} / ${item.diameter_in} / ${item.schedule}`; + tr.innerHTML = ` + ${item.spec_id} + ${label} + + `; + tr.querySelector('.btn-delete').onclick = () => delHandler(item); + return tr; +} + +// 등록 +document.getElementById('specForm')?.addEventListener('submit', async e => { + e.preventDefault(); + const material = document.getElementById('material').value.trim(); + const diameter = document.getElementById('diameter_in').value.trim(); + const schedule = document.getElementById('schedule').value.trim(); + + if (!material || !diameter || !schedule) { + return alert('모든 항목을 입력하세요.'); + } + + try { + const res = await fetch(`${API}/pipespecs`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify({ material, diameter_in: diameter, schedule }) + }); + const result = await res.json(); + if (res.ok && result.success) { + alert('✅ 등록 완료'); + e.target.reset(); + loadSpecs(); + } else { + alert('❌ 실패: ' + (result.error || '등록 실패')); + } + } catch (err) { + alert('🚨 서버 오류: ' + err.message); + } +}); + +// 불러오기 +async function loadSpecs() { + const tbody = document.getElementById('specTableBody'); + tbody.innerHTML = '불러오는 중...'; + try { + const res = await fetch(`${API}/pipespecs`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const list = await res.json(); + tbody.innerHTML = ''; + + if (Array.isArray(list)) { + list.forEach(item => { + const row = createRow(item, async (spec) => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await fetch(`${API}/pipespecs/${spec.spec_id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + if (delRes.ok) { + loadSpecs(); + } else { + alert('삭제 실패'); + } + } catch (err) { + alert('삭제 중 오류: ' + err.message); + } + }); + tbody.appendChild(row); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (err) { + tbody.innerHTML = '로드 실패: ' + err.message + ''; + } +} + +window.addEventListener('DOMContentLoaded', loadSpecs); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/manage-project.js b/deploy/tkfb-package/web-ui/js/manage-project.js new file mode 100644 index 0000000..93d6ebd --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/manage-project.js @@ -0,0 +1,90 @@ +// /js/manage-project.js + +// The ensureAuthenticated, API, and getAuthHeaders functions are now handled by the global api-helper.js + +function createRow(item, cols, delHandler) { + const tr = document.createElement('tr'); + cols.forEach(key => { + const td = document.createElement('td'); + td.textContent = item[key]; + tr.appendChild(td); + }); + const delBtn = document.createElement('button'); + delBtn.textContent = '삭제'; + delBtn.className = 'btn-delete'; + delBtn.onclick = () => delHandler(item); + const td = document.createElement('td'); + td.appendChild(delBtn); + tr.appendChild(td); + return tr; +} + +const projectForm = document.getElementById('projectForm'); +projectForm?.addEventListener('submit', async e => { + e.preventDefault(); + const body = { + job_no: document.getElementById('job_no').value.trim(), + project_name: document.getElementById('project_name').value.trim(), + contract_date: document.getElementById('contract_date').value, + due_date: document.getElementById('due_date').value, + delivery_method: document.getElementById('delivery_method').value.trim(), + site: document.getElementById('site').value.trim(), + pm: document.getElementById('pm').value.trim() + }; + + if (!body.project_name || !body.job_no) { + return alert('필수 항목을 입력하세요.'); + } + + try { + const result = await apiPost('/projects', body); + if (result.success) { + alert('✅ 등록 완료'); + projectForm.reset(); + loadProjects(); + } else { + alert('❌ 실패: ' + (result.error || '알 수 없는 오류')); + } + } catch (err) { + alert('🚨 서버 오류: ' + err.message); + } +}); + +async function loadProjects() { + const tbody = document.getElementById('projectTableBody'); + tbody.innerHTML = '불러오는 중...'; + try { + const result = await apiGet('/projects'); + + tbody.innerHTML = ''; + + if (result.success && Array.isArray(result.data)) { + result.data.forEach(item => { + const row = createRow(item, [ + 'project_id', 'job_no', 'project_name', 'contract_date', + 'due_date', 'delivery_method', 'site', 'pm' + ], async p => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await apiDelete(`/projects/${p.project_id}`); + if (delRes.success) { + alert('✅ 삭제 완료'); + loadProjects(); + } else { + alert('❌ 삭제 실패: ' + (delRes.error || '알 수 없는 오류')); + } + } catch (err) { + alert('🚨 삭제 중 오류: ' + err.message); + } + }); + tbody.appendChild(row); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (err) { + tbody.innerHTML = '로드 실패: ' + err.message + ''; + } +} + +window.addEventListener('DOMContentLoaded', loadProjects); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/manage-user.js b/deploy/tkfb-package/web-ui/js/manage-user.js new file mode 100644 index 0000000..99c671e --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/manage-user.js @@ -0,0 +1,512 @@ +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +const token = ensureAuthenticated(); + +const accessLabels = { + worker: '작업자', + group_leader: '그룹장', + support_team: '지원팀', + admin: '관리자', + system: '시스템' +}; + +// 현재 사용자 정보 가져오기 +const currentUser = JSON.parse(localStorage.getItem('user') || '{}'); +const isSystemUser = currentUser.access_level === 'system'; + +function createRow(item, cols, delHandler) { + const tr = document.createElement('tr'); + cols.forEach(key => { + const td = document.createElement('td'); + td.textContent = item[key] || '-'; + tr.appendChild(td); + }); + const delBtn = document.createElement('button'); + delBtn.textContent = '삭제'; + delBtn.className = 'btn-delete'; + delBtn.onclick = () => delHandler(item); + const td = document.createElement('td'); + td.appendChild(delBtn); + tr.appendChild(td); + return tr; +} + +// 내 비밀번호 변경 +const myPasswordForm = document.getElementById('myPasswordForm'); +myPasswordForm?.addEventListener('submit', async e => { + e.preventDefault(); + + const currentPassword = document.getElementById('currentPassword').value; + const newPassword = document.getElementById('newPassword').value; + const confirmPassword = document.getElementById('confirmPassword').value; + + // 새 비밀번호 확인 + if (newPassword !== confirmPassword) { + alert('❌ 새 비밀번호가 일치하지 않습니다.'); + return; + } + + // 비밀번호 강도 검사 + if (newPassword.length < 6) { + alert('❌ 비밀번호는 최소 6자 이상이어야 합니다.'); + return; + } + + try { + const res = await fetch(`${API}/auth/change-password`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify({ + currentPassword, + newPassword + }) + }); + + const result = await res.json(); + + if (res.ok && result.success) { + showToast('✅ 비밀번호가 변경되었습니다.'); + myPasswordForm.reset(); + + // 3초 후 로그인 페이지로 이동 + setTimeout(() => { + alert('비밀번호가 변경되어 다시 로그인해주세요.'); + localStorage.removeItem('token'); + localStorage.removeItem('user'); + window.location.href = '/index.html'; + }, 2000); + } else { + alert('❌ 비밀번호 변경 실패: ' + (result.error || '현재 비밀번호가 올바르지 않습니다.')); + } + } catch (error) { + console.error('Password change error:', error); + alert('🚨 서버 오류: ' + error.message); + } +}); + +// 시스템 권한자만 볼 수 있는 사용자 비밀번호 변경 섹션 +if (isSystemUser) { + const systemCard = document.getElementById('systemPasswordChangeCard'); + if (systemCard) { + systemCard.style.display = 'block'; + } + + // 사용자 비밀번호 변경 (시스템 권한자) + const userPasswordForm = document.getElementById('userPasswordForm'); + userPasswordForm?.addEventListener('submit', async e => { + e.preventDefault(); + + const targetUserId = document.getElementById('targetUserId').value; + const newPassword = document.getElementById('targetNewPassword').value; + + if (!targetUserId) { + alert('❌ 사용자를 선택해주세요.'); + return; + } + + if (newPassword.length < 6) { + alert('❌ 비밀번호는 최소 6자 이상이어야 합니다.'); + return; + } + + if (!confirm('정말로 이 사용자의 비밀번호를 변경하시겠습니까?')) { + return; + } + + try { + const res = await fetch(`${API}/auth/admin/change-password`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify({ + userId: targetUserId, + newPassword + }) + }); + + const result = await res.json(); + + if (res.ok && result.success) { + showToast('✅ 사용자 비밀번호가 변경되었습니다.'); + userPasswordForm.reset(); + } else { + alert('❌ 비밀번호 변경 실패: ' + (result.error || '권한이 없습니다.')); + } + } catch (error) { + console.error('Admin password change error:', error); + alert('🚨 서버 오류: ' + error.message); + } + }); +} + +// 사용자 등록 +const userForm = document.getElementById('userForm'); +userForm?.addEventListener('submit', async e => { + e.preventDefault(); + const body = { + username: document.getElementById('username').value.trim(), + password: document.getElementById('password').value.trim(), + name: document.getElementById('name').value.trim(), + access_level: document.getElementById('access_level').value, + worker_id: document.getElementById('worker_id').value || null + }; + + try { + const res = await fetch(`${API}/auth/register`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify(body) + }); + const result = await res.json(); + if (res.ok && result.success) { + showToast('✅ 등록 완료'); + userForm.reset(); + loadUsers(); + } else { + alert('❌ 실패: ' + (result.error || '알 수 없는 오류')); + } + } catch (error) { + console.error('Registration error:', error); + alert('🚨 서버 오류: ' + error.message); + } +}); + +async function loadUsers() { + const tbody = document.getElementById('userTableBody'); + tbody.innerHTML = '불러오는 중...'; + + try { + const res = await fetch(`${API}/auth/users`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const list = await res.json(); + tbody.innerHTML = ''; + + if (Array.isArray(list)) { + // 시스템 권한자용 사용자 선택 옵션도 업데이트 + if (isSystemUser) { + const targetUserSelect = document.getElementById('targetUserId'); + if (targetUserSelect) { + targetUserSelect.innerHTML = ''; + list.forEach(user => { + // 본인은 제외 + if (user.user_id !== currentUser.user_id) { + const opt = document.createElement('option'); + opt.value = user.user_id; + opt.textContent = `${user.name} (${user.username})`; + targetUserSelect.appendChild(opt); + } + }); + } + } + + list.forEach(item => { + item.access_level = accessLabels[item.access_level] || item.access_level; + item.worker_id = item.worker_id || '-'; + + // 행 생성 + const tr = document.createElement('tr'); + + // 데이터 컬럼 + ['user_id', 'username', 'name', 'access_level', 'worker_id'].forEach(key => { + const td = document.createElement('td'); + td.textContent = item[key] || '-'; + tr.appendChild(td); + }); + + // 작업 컬럼 (페이지 권한 버튼 + 삭제 버튼) + const actionTd = document.createElement('td'); + + // 페이지 권한 버튼 (Admin/System이 아닌 경우에만) + if (item.access_level !== '관리자' && item.access_level !== '시스템') { + const pageAccessBtn = document.createElement('button'); + pageAccessBtn.textContent = '페이지 권한'; + pageAccessBtn.className = 'btn btn-info btn-sm'; + pageAccessBtn.style.marginRight = '5px'; + pageAccessBtn.onclick = () => openPageAccessModal(item.user_id, item.username, item.name); + actionTd.appendChild(pageAccessBtn); + } + + // 삭제 버튼 + const delBtn = document.createElement('button'); + delBtn.textContent = '삭제'; + delBtn.className = 'btn-delete'; + delBtn.onclick = async () => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await fetch(`${API}/auth/users/${item.user_id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + if (delRes.ok) { + showToast('✅ 삭제 완료'); + loadUsers(); + } else { + alert('❌ 삭제 실패'); + } + } catch (error) { + alert('🚨 삭제 중 오류 발생'); + } + }; + actionTd.appendChild(delBtn); + + tr.appendChild(actionTd); + tbody.appendChild(tr); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (error) { + console.error('Load users error:', error); + tbody.innerHTML = '로드 실패: ' + error.message + ''; + } +} + +async function loadWorkerOptions() { + const select = document.getElementById('worker_id'); + if (!select) return; + + try { + const res = await fetch(`${API}/workers`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const allWorkers = await res.json(); + + // 활성화된 작업자만 필터링 + const workers = allWorkers.filter(worker => { + return worker.status === 'active' || worker.is_active === 1 || worker.is_active === true; + }); + + if (Array.isArray(workers)) { + workers.forEach(w => { + const opt = document.createElement('option'); + opt.value = w.worker_id; + opt.textContent = `${w.worker_name} (${w.worker_id})`; + select.appendChild(opt); + }); + } + } catch (error) { + console.warn('작업자 목록 불러오기 실패:', error); + } +} + +function showToast(message) { + const toast = document.createElement('div'); + toast.textContent = message; + toast.style.position = 'fixed'; + toast.style.bottom = '30px'; + toast.style.left = '50%'; + toast.style.transform = 'translateX(-50%)'; + toast.style.background = '#323232'; + toast.style.color = '#fff'; + toast.style.padding = '10px 20px'; + toast.style.borderRadius = '6px'; + toast.style.fontSize = '14px'; + toast.style.zIndex = 9999; + document.body.appendChild(toast); + setTimeout(() => toast.remove(), 2000); +} + +// ========== 페이지 접근 권한 관리 ========== + +let currentEditingUserId = null; +let currentUserPageAccess = []; + +/** + * 페이지 권한 관리 모달 열기 + */ +async function openPageAccessModal(userId, username, name) { + currentEditingUserId = userId; + + const modal = document.getElementById('pageAccessModal'); + const modalUserInfo = document.getElementById('modalUserInfo'); + const modalUserRole = document.getElementById('modalUserRole'); + + modalUserInfo.textContent = `${name} (${username})`; + modalUserRole.textContent = `사용자 ID: ${userId}`; + + try { + // 사용자의 페이지 접근 권한 조회 + const res = await fetch(`${API}/users/${userId}/page-access`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error('페이지 접근 권한을 불러오는데 실패했습니다.'); + } + + const result = await res.json(); + if (result.success) { + currentUserPageAccess = result.data.pageAccess; + renderPageAccessList(result.data.pageAccess); + modal.style.display = 'block'; + } else { + throw new Error(result.error || '데이터 로드 실패'); + } + } catch (error) { + console.error('페이지 권한 로드 오류:', error); + alert('❌ 페이지 권한을 불러오는데 실패했습니다: ' + error.message); + } +} + +/** + * 페이지 접근 권한 목록 렌더링 + */ +function renderPageAccessList(pageAccess) { + const categories = { + dashboard: document.getElementById('dashboardPageList'), + management: document.getElementById('managementPageList'), + common: document.getElementById('commonPageList') + }; + + // 카테고리별로 초기화 + Object.values(categories).forEach(el => { + if (el) el.innerHTML = ''; + }); + + // 카테고리별로 그룹화 + const grouped = pageAccess.reduce((acc, page) => { + if (!acc[page.category]) acc[page.category] = []; + acc[page.category].push(page); + return acc; + }, {}); + + // 각 카테고리별로 렌더링 + Object.keys(grouped).forEach(category => { + const container = categories[category]; + if (!container) return; + + grouped[category].forEach(page => { + const pageItem = document.createElement('div'); + pageItem.className = 'page-item'; + + const checkbox = document.createElement('input'); + checkbox.type = 'checkbox'; + checkbox.id = `page_${page.page_id}`; + checkbox.checked = page.can_access === 1 || page.can_access === true; + checkbox.dataset.pageId = page.page_id; + + const label = document.createElement('label'); + label.htmlFor = `page_${page.page_id}`; + label.textContent = page.page_name; + + const pathSpan = document.createElement('span'); + pathSpan.className = 'page-path'; + pathSpan.textContent = page.page_path; + + pageItem.appendChild(checkbox); + pageItem.appendChild(label); + pageItem.appendChild(pathSpan); + + container.appendChild(pageItem); + }); + }); +} + +/** + * 페이지 권한 변경 사항 저장 + */ +async function savePageAccessChanges() { + if (!currentEditingUserId) { + alert('사용자 정보가 없습니다.'); + return; + } + + // 모든 체크박스 상태 가져오기 + const checkboxes = document.querySelectorAll('.page-item input[type="checkbox"]'); + const pageAccessUpdates = {}; + + checkboxes.forEach(checkbox => { + const pageId = parseInt(checkbox.dataset.pageId); + const canAccess = checkbox.checked; + pageAccessUpdates[pageId] = canAccess; + }); + + try { + // 변경된 페이지 권한을 서버로 전송 + const pageIds = Object.keys(pageAccessUpdates).map(id => parseInt(id)); + const canAccessValues = pageIds.map(id => pageAccessUpdates[id]); + + // 접근 가능한 페이지 + const accessiblePages = pageIds.filter((id, index) => canAccessValues[index]); + // 접근 불가능한 페이지 + const inaccessiblePages = pageIds.filter((id, index) => !canAccessValues[index]); + + // 접근 가능 페이지 업데이트 + if (accessiblePages.length > 0) { + await fetch(`${API}/users/${currentEditingUserId}/page-access`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify({ + pageIds: accessiblePages, + canAccess: true + }) + }); + } + + // 접근 불가능 페이지 업데이트 + if (inaccessiblePages.length > 0) { + await fetch(`${API}/users/${currentEditingUserId}/page-access`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify({ + pageIds: inaccessiblePages, + canAccess: false + }) + }); + } + + showToast('✅ 페이지 접근 권한이 저장되었습니다.'); + closePageAccessModal(); + } catch (error) { + console.error('페이지 권한 저장 오류:', error); + alert('❌ 페이지 권한 저장에 실패했습니다: ' + error.message); + } +} + +/** + * 페이지 권한 관리 모달 닫기 + */ +function closePageAccessModal() { + const modal = document.getElementById('pageAccessModal'); + modal.style.display = 'none'; + currentEditingUserId = null; + currentUserPageAccess = []; +} + +// 모달 닫기 버튼 이벤트 +document.addEventListener('DOMContentLoaded', () => { + const modal = document.getElementById('pageAccessModal'); + const closeBtn = modal?.querySelector('.close'); + + if (closeBtn) { + closeBtn.onclick = closePageAccessModal; + } + + // 모달 외부 클릭 시 닫기 + window.onclick = (event) => { + if (event.target === modal) { + closePageAccessModal(); + } + }; +}); + +// 전역 함수로 노출 +window.openPageAccessModal = openPageAccessModal; +window.closePageAccessModal = closePageAccessModal; +window.savePageAccessChanges = savePageAccessChanges; + +window.addEventListener('DOMContentLoaded', () => { + loadUsers(); + loadWorkerOptions(); +}); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/manage-worker.js b/deploy/tkfb-package/web-ui/js/manage-worker.js new file mode 100644 index 0000000..bb44577 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/manage-worker.js @@ -0,0 +1,111 @@ +// /js/manage-worker.js + +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +ensureAuthenticated(); + +// ✅ 테이블 행 생성 +function createRow(item, cols, delHandler) { + const tr = document.createElement('tr'); + cols.forEach(key => { + const td = document.createElement('td'); + td.textContent = item[key] || '-'; + tr.appendChild(td); + }); + + const delBtn = document.createElement('button'); + delBtn.textContent = '삭제'; + delBtn.className = 'btn-delete'; + delBtn.onclick = () => delHandler(item); + + const td = document.createElement('td'); + td.appendChild(delBtn); + tr.appendChild(td); + + return tr; +} + +// ✅ 작업자 등록 +const workerForm = document.getElementById('workerForm'); +workerForm?.addEventListener('submit', async e => { + e.preventDefault(); + + const body = { + worker_name: document.getElementById('workerName').value.trim(), + position: document.getElementById('position').value.trim() + }; + + if (!body.worker_name || !body.position) { + return alert('모든 필드를 입력해주세요.'); + } + + try { + const res = await fetch(`${API}/workers`, { + method: 'POST', + headers: getAuthHeaders(), + body: JSON.stringify(body) + }); + const result = await res.json(); + + if (res.ok && result.success) { + alert('✅ 등록 완료'); + workerForm.reset(); + loadWorkers(); + } else { + alert('❌ 실패: ' + (result.error || '알 수 없는 오류')); + } + } catch (err) { + alert('🚨 서버 오류: ' + err.message); + } +}); + +// ✅ 작업자 목록 불러오기 +async function loadWorkers() { + const tbody = document.getElementById('workerTableBody'); + tbody.innerHTML = '불러오는 중...'; + + try { + const res = await fetch(`${API}/workers`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const response = await res.json(); + const list = response.data || response; // 새로운 API 응답 구조 지원 + tbody.innerHTML = ''; + + if (Array.isArray(list)) { + list.forEach(item => { + const row = createRow(item, ['worker_id', 'worker_name', 'position'], async w => { + if (!confirm('삭제하시겠습니까?')) return; + try { + const delRes = await fetch(`${API}/workers/${w.worker_id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + if (delRes.ok) { + alert('✅ 삭제 완료'); + loadWorkers(); + } else { + alert('❌ 삭제 실패'); + } + } catch (err) { + alert('🚨 삭제 중 오류: ' + err.message); + } + }); + tbody.appendChild(row); + }); + } else { + tbody.innerHTML = '데이터 형식 오류'; + } + } catch (err) { + tbody.innerHTML = '로드 실패: ' + err.message + ''; + } +} + +// ✅ 초기 로딩 +window.addEventListener('DOMContentLoaded', loadWorkers); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/management-dashboard.js b/deploy/tkfb-package/web-ui/js/management-dashboard.js new file mode 100644 index 0000000..161aa78 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/management-dashboard.js @@ -0,0 +1,960 @@ +// management-dashboard.js - 관리자 대시보드 전용 스크립트 + +// ================================================================= +// 🌐 통합 API 설정 import +// ================================================================= +import { API, getAuthHeaders, apiCall } from '/js/api-config.js'; + +// 전역 변수 +let workers = []; +let workData = []; +let filteredWorkData = []; +let currentDate = ''; +let currentUser = null; + +// 권한 레벨 매핑 +const ACCESS_LEVELS = { + worker: 1, + group_leader: 2, + support_team: 3, + admin: 4, + system: 5 +}; + +// 한국 시간 기준 오늘 날짜 가져오기 +function getKoreaToday() { + const today = new Date(); + const year = today.getFullYear(); + const month = String(today.getMonth() + 1).padStart(2, '0'); + const day = String(today.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +// 현재 로그인한 사용자 정보 가져오기 +function getCurrentUser() { + try { + const token = localStorage.getItem('token'); + if (!token) return null; + + const payloadBase64 = token.split('.')[1]; + if (payloadBase64) { + const payload = JSON.parse(atob(payloadBase64)); + console.log('토큰에서 추출한 사용자 정보:', payload); + return payload; + } + } catch (error) { + console.log('토큰에서 사용자 정보 추출 실패:', error); + } + + try { + const userInfo = localStorage.getItem('user') || localStorage.getItem('userInfo') || localStorage.getItem('currentUser'); + if (userInfo) { + const parsed = JSON.parse(userInfo); + console.log('localStorage에서 가져온 사용자 정보:', parsed); + return parsed; + } + } catch (error) { + console.log('localStorage에서 사용자 정보 가져오기 실패:', error); + } + + return null; +} + +// 권한 체크 함수 +function checkPermission() { + currentUser = getCurrentUser(); + + if (!currentUser) { + showMessage('로그인이 필요합니다.', 'error'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return false; + } + + const userAccessLevel = currentUser.access_level; + const accessLevelValue = ACCESS_LEVELS[userAccessLevel] || 0; + + console.log('사용자 권한 체크:', { + username: currentUser.username || currentUser.name, + access_level: userAccessLevel, + level_value: accessLevelValue, + required_level: ACCESS_LEVELS.group_leader + }); + + if (accessLevelValue < ACCESS_LEVELS.group_leader) { + showMessage('그룹장 이상의 권한이 필요합니다. 현재 권한: ' + userAccessLevel, 'error'); + setTimeout(() => { + window.location.href = '/'; + }, 3000); + return false; + } + + return true; +} + +// 메시지 표시 +function showMessage(message, type = 'info') { + const container = document.getElementById('message-container'); + container.innerHTML = `
${message}
`; + + if (type === 'success') { + setTimeout(() => { + hideMessage(); + }, 5000); + } +} + +function hideMessage() { + document.getElementById('message-container').innerHTML = ''; +} + +// 로딩 표시 +function showLoading() { + document.getElementById('loadingSpinner').style.display = 'flex'; + document.getElementById('summarySection').style.display = 'none'; + document.getElementById('actionBar').style.display = 'none'; + document.getElementById('workersSection').style.display = 'none'; + document.getElementById('noDataMessage').style.display = 'none'; +} + +function hideLoading() { + document.getElementById('loadingSpinner').style.display = 'none'; +} + +// 작업자 데이터 로드 +async function loadWorkers() { + try { + console.log('작업자 데이터 로딩 중... (통합 API)'); + const data = await apiCall(`${API}/workers`); + const allWorkers = Array.isArray(data) ? data : (data.data || data.workers || []); + + // 활성화된 작업자만 필터링 + workers = allWorkers.filter(worker => { + return worker.status === 'active' || worker.is_active === 1 || worker.is_active === true; + }); + + console.log(`✅ 작업자 로드 성공: ${workers.length}명 (전체: ${allWorkers.length}명)`); + } catch (error) { + console.error('작업자 로딩 오류:', error); + throw error; + } +} + +// 특정 날짜의 작업 데이터 로드 (개선된 버전) +async function loadWorkData(date) { + try { + console.log(`${date} 날짜의 작업 데이터 로딩 중... (통합 API)`); + + // 1차: view_all=true로 전체 데이터 시도 + let queryParams = `date=${date}&view_all=true`; + console.log(`🔍 1차 시도: ${API}/daily-work-reports?${queryParams}`); + + let data = await apiCall(`${API}/daily-work-reports?${queryParams}`); + workData = Array.isArray(data) ? data : (data.data || []); + + // 데이터가 없으면 다른 방법들 시도 + if (workData.length === 0) { + console.log('⚠️ view_all로 데이터 없음, 다른 방법 시도...'); + + // 2차: admin=true로 시도 + queryParams = `date=${date}&admin=true`; + console.log(`🔍 2차 시도: ${API}/daily-work-reports?${queryParams}`); + + data = await apiCall(`${API}/daily-work-reports?${queryParams}`); + workData = Array.isArray(data) ? data : (data.data || []); + + if (workData.length === 0) { + // 3차: 날짜 경로 파라미터로 시도 + console.log(`🔍 3차 시도: ${API}/daily-work-reports/date/${date}`); + + data = await apiCall(`${API}/daily-work-reports/date/${date}`); + workData = Array.isArray(data) ? data : (data.data || []); + + if (workData.length === 0) { + // 4차: 기본 파라미터만으로 시도 + console.log(`🔍 4차 시도: ${API}/daily-work-reports?date=${date}`); + + data = await apiCall(`${API}/daily-work-reports?date=${date}`); + workData = Array.isArray(data) ? data : (data.data || []); + } + } + } + + console.log(`✅ 최종 작업 데이터 로드 결과: ${workData.length}개`); + + // 디버깅을 위한 상세 로그 + if (workData.length > 0) { + console.log('📊 로드된 데이터 샘플:', workData.slice(0, 3)); + const uniqueWorkers = [...new Set(workData.map(w => w.worker_name))]; + console.log('👥 데이터에 포함된 작업자들:', uniqueWorkers); + } else { + console.log('❌ 해당 날짜에 작업 데이터가 없거나 접근 권한이 없습니다.'); + } + + return workData; + } catch (error) { + console.error('작업 데이터 로딩 오류:', error); + + // 에러 시에도 빈 배열 반환하여 앱이 중단되지 않도록 + workData = []; + + // 구체적인 에러 정보 표시 + if (error.message.includes('403')) { + console.log('🔒 권한 부족으로 인한 접근 제한'); + throw new Error('해당 날짜의 데이터에 접근할 권한이 없습니다.'); + } else if (error.message.includes('404')) { + console.log('📭 해당 날짜에 데이터 없음'); + throw new Error('해당 날짜에 입력된 작업 데이터가 없습니다.'); + } else { + throw error; + } + } +} + +// 대시보드 데이터 로드 +async function loadDashboardData() { + const selectedDate = document.getElementById('selectedDate').value; + + if (!selectedDate) { + showMessage('날짜를 선택해주세요.', 'error'); + return; + } + + currentDate = selectedDate; + showLoading(); + hideMessage(); + + try { + // 병렬로 데이터 로드 + await Promise.all([ + loadWorkers(), + loadWorkData(selectedDate) + ]); + + // 데이터 분석 및 표시 + const dashboardData = analyzeDashboardData(); + displayDashboard(dashboardData); + + hideLoading(); + + } catch (error) { + console.error('대시보드 데이터 로드 실패:', error); + hideLoading(); + showMessage('데이터를 불러오는 중 오류가 발생했습니다: ' + error.message, 'error'); + + // 에러 시 데이터 없음 메시지 표시 + document.getElementById('noDataMessage').style.display = 'block'; + } +} + +// 대시보드 데이터 분석 (개선된 버전) +function analyzeDashboardData() { + console.log('대시보드 데이터 분석 시작'); + + // 작업자별 데이터 그룹화 + const workerWorkData = {}; + workData.forEach(work => { + const workerId = work.worker_id; + if (!workerWorkData[workerId]) { + workerWorkData[workerId] = []; + } + workerWorkData[workerId].push(work); + }); + + // 전체 통계 계산 + const totalWorkers = workers.length; + const workersWithData = Object.keys(workerWorkData).length; + const workersWithoutData = totalWorkers - workersWithData; + const totalHours = workData.reduce((sum, work) => sum + parseFloat(work.work_hours || 0), 0); + const totalEntries = workData.length; + const errorCount = workData.filter(work => work.work_status_id === 2).length; + + // 작업자별 상세 분석 (개선된 버전) + const workerAnalysis = workers.map(worker => { + const workerWorks = workerWorkData[worker.worker_id] || []; + const workerHours = workerWorks.reduce((sum, work) => sum + parseFloat(work.work_hours || 0), 0); + + // 작업 유형 분석 (실제 이름으로) + const workTypes = [...new Set(workerWorks.map(work => work.work_type_name).filter(Boolean))]; + + // 프로젝트 분석 + const workerProjects = [...new Set(workerWorks.map(work => work.project_name).filter(Boolean))]; + + // 기여자 분석 + const workerContributors = [...new Set(workerWorks.map(work => work.created_by_name).filter(Boolean))]; + + // 상태 결정 (더 세밀한 기준) + let status = 'missing'; + if (workerWorks.length > 0) { + if (workerHours >= 6) { + status = 'completed'; // 6시간 이상을 완료로 간주 + } else { + status = 'partial'; // 1시간 이상이지만 6시간 미만은 부분입력 + } + } + + // 최근 업데이트 시간 + const lastUpdate = workerWorks.length > 0 + ? new Date(Math.max(...workerWorks.map(work => new Date(work.created_at)))) + : null; + + return { + ...worker, + status, + totalHours: Math.round(workerHours * 10) / 10, // 소수점 1자리로 반올림 + entryCount: workerWorks.length, + workTypes, // 작업 유형 배열 (실제 이름) + projects: workerProjects, + contributors: workerContributors, + lastUpdate, + works: workerWorks + }; + }); + + const summary = { + totalWorkers, + completedWorkers: workerAnalysis.filter(w => w.status === 'completed').length, + missingWorkers: workerAnalysis.filter(w => w.status === 'missing').length, + partialWorkers: workerAnalysis.filter(w => w.status === 'partial').length, + totalHours: Math.round(totalHours * 10) / 10, + totalEntries, + errorCount + }; + + console.log('대시보드 분석 결과:', { summary, workerAnalysis }); + + return { + summary, + workers: workerAnalysis, + date: currentDate + }; +} + +// 대시보드 표시 +function displayDashboard(data) { + displaySummary(data.summary); + displayWorkers(data.workers); + + // 섹션 표시 + document.getElementById('summarySection').style.display = 'block'; + document.getElementById('actionBar').style.display = 'flex'; + document.getElementById('workersSection').style.display = 'block'; + + // 필터링 설정 + filteredWorkData = data.workers; + setupFiltering(); + + console.log('✅ 대시보드 표시 완료'); +} + +// 요약 섹션 표시 +function displaySummary(summary) { + document.getElementById('totalWorkers').textContent = summary.totalWorkers; + document.getElementById('completedWorkers').textContent = summary.completedWorkers; + document.getElementById('missingWorkers').textContent = summary.missingWorkers; + document.getElementById('totalHours').textContent = summary.totalHours + 'h'; + document.getElementById('totalEntries').textContent = summary.totalEntries; + document.getElementById('errorCount').textContent = summary.errorCount; +} + +// 작업자 목록 표시 (테이블 형태로 개선) +function displayWorkers(workersData) { + const tableBody = document.getElementById('workersTableBody'); + tableBody.innerHTML = ''; + + if (workersData.length === 0) { + tableBody.innerHTML = ` + + 표시할 작업자가 없습니다. + + `; + return; + } + + workersData.forEach(worker => { + const row = createWorkerRow(worker); + tableBody.appendChild(row); + }); +} + +// 작업자 테이블 행 생성 (개선된 버전) +function createWorkerRow(worker) { + const row = document.createElement('tr'); + + const statusText = { + completed: '✅ 완료', + missing: '❌ 미입력', + partial: '⚠️ 부분입력' + }; + + const statusClass = { + completed: 'completed', + missing: 'missing', + partial: 'partial' + }; + + // 작업 유형 태그 생성 (실제 이름으로) + const workTypeTags = worker.workTypes && worker.workTypes.length > 0 + ? worker.workTypes.map(type => `${type}`).join('') + : '없음'; + + // 프로젝트 태그 생성 + const projectTags = worker.projects && worker.projects.length > 0 + ? worker.projects.map(project => `${project}`).join('') + : '없음'; + + // 기여자 태그 생성 + const contributorTags = worker.contributors && worker.contributors.length > 0 + ? worker.contributors.map(contributor => `${contributor}`).join('') + : '없음'; + + // 시간에 따른 스타일 클래스 + let hoursClass = 'zero'; + if (worker.totalHours > 0) { + hoursClass = worker.totalHours >= 6 ? 'full' : 'partial'; + } + + // 업데이트 시간 포맷팅 및 스타일 + let updateTimeText = '없음'; + let updateClass = ''; + if (worker.lastUpdate) { + const now = new Date(); + const diff = now - worker.lastUpdate; + const hours = diff / (1000 * 60 * 60); + + updateTimeText = formatDateTime(worker.lastUpdate); + updateClass = hours < 1 ? 'recent' : hours > 24 ? 'old' : ''; + } + + row.innerHTML = ` + +
+ 👤 ${worker.worker_name} +
+ + + ${statusText[worker.status]} + + +
${worker.totalHours}h
+ + + ${worker.entryCount}개 + + +
${workTypeTags}
+ + +
${projectTags}
+ + +
${contributorTags}
+ + +
${updateTimeText}
+ + + + + `; + + return row; +} + +// 날짜/시간 포맷팅 +function formatDateTime(date) { + const d = new Date(date); + const year = d.getFullYear(); + const month = String(d.getMonth() + 1).padStart(2, '0'); + const day = String(d.getDate()).padStart(2, '0'); + const hours = String(d.getHours()).padStart(2, '0'); + const minutes = String(d.getMinutes()).padStart(2, '0'); + + return `${year}-${month}-${day} ${hours}:${minutes}`; +} + +// 작업자 상세 모달 표시 (안전한 버전) +function showWorkerDetailSafe(workerId) { + // 현재 분석된 데이터에서 해당 작업자 찾기 + const worker = filteredWorkData.find(w => w.worker_id == workerId); + if (!worker) { + showMessage('작업자 정보를 찾을 수 없습니다.', 'error'); + return; + } + + showWorkerDetail(worker); +} + +// 작업자 상세 모달 표시 (개선된 버전) +function showWorkerDetail(worker) { + const modal = document.getElementById('workerDetailModal'); + const modalTitle = document.getElementById('modalWorkerName'); + const modalBody = document.getElementById('modalWorkerDetails'); + + modalTitle.textContent = `👤 ${worker.worker_name} 상세 현황`; + + let detailHtml = ` +
+

📊 기본 정보

+

작업자명: ${worker.worker_name}

+

총 작업시간: ${worker.totalHours}시간

+

작업 항목 수: ${worker.entryCount}개

+

상태: ${worker.status === 'completed' ? '✅ 완료' : worker.status === 'missing' ? '❌ 미입력' : '⚠️ 부분입력'}

+

작업 유형: ${worker.workTypes && worker.workTypes.length > 0 ? worker.workTypes.join(', ') : '없음'}

+
+ `; + + if (worker.works && worker.works.length > 0) { + detailHtml += ` +
+

🔧 작업 내역

+
+ `; + + worker.works.forEach((work, index) => { + detailHtml += ` +
+
+

작업 ${index + 1}

+
+ + +
+
+

프로젝트: ${work.project_name || '미지정'}

+

작업 유형: ${work.work_type_name || '미지정'}

+

작업 시간: ${work.work_hours}시간

+

상태: ${work.work_status_name || '미지정'}

+ ${work.error_type_name ? `

에러 유형: ${work.error_type_name}

` : ''} +

입력자: ${work.created_by_name || '미지정'}

+

입력 시간: ${formatDateTime(work.created_at)}

+
+ `; + }); + + detailHtml += ` +
+
+ `; + } else { + detailHtml += ` +
+

📭 작업 내역

+

입력된 작업이 없습니다.

+
+ `; + } + + if (worker.contributors && worker.contributors.length > 0) { + detailHtml += ` +
+

👥 기여자

+

${worker.contributors.join(', ')}

+
+ `; + } + + modalBody.innerHTML = detailHtml; + modal.style.display = 'flex'; +} + +// 작업 항목 수정 함수 (통합 API 사용) +async function editWorkItem(workId) { + try { + console.log('수정할 작업 ID:', workId); + + // 현재 작업 데이터에서 해당 작업 찾기 + let workData = null; + for (const worker of filteredWorkData) { + if (worker.works) { + workData = worker.works.find(work => work.id == workId); + if (workData) break; + } + } + + if (!workData) { + showMessage('수정할 작업을 찾을 수 없습니다.', 'error'); + return; + } + + // 필요한 마스터 데이터 로드 + await loadMasterDataForEdit(); + + // 수정 모달 표시 + showEditModal(workData); + + } catch (error) { + console.error('작업 정보 조회 오류:', error); + showMessage('작업 정보를 불러올 수 없습니다: ' + error.message, 'error'); + } +} + +// 수정용 마스터 데이터 로드 +async function loadMasterDataForEdit() { + try { + if (!window.projects || window.projects.length === 0) { + const projectData = await apiCall(`${API}/projects`); + window.projects = Array.isArray(projectData) ? projectData : (projectData.projects || []); + } + + if (!window.workTypes || window.workTypes.length === 0) { + const workTypeData = await apiCall(`${API}/daily-work-reports/work-types`); + window.workTypes = Array.isArray(workTypeData) ? workTypeData : []; + } + + if (!window.workStatusTypes || window.workStatusTypes.length === 0) { + const statusData = await apiCall(`${API}/daily-work-reports/work-status-types`); + window.workStatusTypes = Array.isArray(statusData) ? statusData : []; + } + + if (!window.errorTypes || window.errorTypes.length === 0) { + const errorData = await apiCall(`${API}/daily-work-reports/error-types`); + window.errorTypes = Array.isArray(errorData) ? errorData : []; + } + + } catch (error) { + console.error('마스터 데이터 로드 오류:', error); + + // 기본값 설정 + window.projects = window.projects || []; + window.workTypes = window.workTypes || [ + {id: 1, name: 'Base'}, + {id: 2, name: 'Vessel'}, + {id: 3, name: 'Piping'} + ]; + window.workStatusTypes = window.workStatusTypes || [ + {id: 1, name: '정규'}, + {id: 2, name: '에러'} + ]; + window.errorTypes = window.errorTypes || [ + {id: 1, name: '설계미스'}, + {id: 2, name: '외주작업 불량'}, + {id: 3, name: '입고지연'}, + {id: 4, name: '작업 불량'} + ]; + } +} + +// 수정 모달 표시 +function showEditModal(workData) { + // 기존 상세 모달 닫기 + closeWorkerDetailModal(); + + const modalHtml = ` +
+
+
+

✏️ 작업 수정

+ +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+ `; + + document.body.insertAdjacentHTML('beforeend', modalHtml); + + // 업무 상태 변경 이벤트 + document.getElementById('editWorkStatus').addEventListener('change', (e) => { + const errorTypeGroup = document.getElementById('editErrorTypeGroup'); + if (e.target.value === '2') { + errorTypeGroup.style.display = 'block'; + } else { + errorTypeGroup.style.display = 'none'; + } + }); +} + +// 수정 모달 닫기 +function closeEditModal() { + const modal = document.getElementById('editModal'); + if (modal) { + modal.remove(); + } +} + +// 수정된 작업 저장 (통합 API 사용) +async function saveEditedWork(workId) { + try { + const projectId = document.getElementById('editProject').value; + const workTypeId = document.getElementById('editWorkType').value; + const workStatusId = document.getElementById('editWorkStatus').value; + const errorTypeId = document.getElementById('editErrorType').value; + const workHours = document.getElementById('editWorkHours').value; + + if (!projectId || !workTypeId || !workStatusId || !workHours) { + showMessage('모든 필수 항목을 입력해주세요.', 'error'); + return; + } + + if (workStatusId === '2' && !errorTypeId) { + showMessage('에러 상태인 경우 에러 유형을 선택해주세요.', 'error'); + return; + } + + const updateData = { + project_id: parseInt(projectId), + work_type_id: parseInt(workTypeId), + work_status_id: parseInt(workStatusId), + error_type_id: errorTypeId ? parseInt(errorTypeId) : null, + work_hours: parseFloat(workHours) + }; + + showMessage('작업을 수정하는 중... (통합 API)', 'loading'); + + const result = await apiCall(`${API}/daily-work-reports/${workId}`, { + method: 'PUT', + body: JSON.stringify(updateData) + }); + + console.log('✅ 수정 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 수정되었습니다!', 'success'); + + closeEditModal(); + closeWorkerDetailModal(); + + // 데이터 새로고침 + await loadDashboardData(); + + } catch (error) { + console.error('❌ 수정 실패:', error); + showMessage('수정 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 작업 항목 삭제 함수 (통합 API 사용) +async function deleteWorkItem(workId) { + if (!confirm('정말로 이 작업을 삭제하시겠습니까?\n삭제된 작업은 복구할 수 없습니다.')) { + return; + } + + try { + console.log('삭제할 작업 ID:', workId); + + showMessage('작업을 삭제하는 중... (통합 API)', 'loading'); + + // 개별 항목 삭제 API 호출 - 통합 API 사용 + const result = await apiCall(`${API}/daily-work-reports/${workId}`, { + method: 'DELETE' + }); + + console.log('✅ 삭제 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 삭제되었습니다!', 'success'); + + closeWorkerDetailModal(); + + // 데이터 새로고침 + await loadDashboardData(); + + } catch (error) { + console.error('❌ 삭제 실패:', error); + showMessage('삭제 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 작업자 상세 모달 닫기 +function closeWorkerDetailModal() { + document.getElementById('workerDetailModal').style.display = 'none'; +} + +// 필터링 설정 +function setupFiltering() { + const showOnlyMissingCheckbox = document.getElementById('showOnlyMissing'); + + showOnlyMissingCheckbox.addEventListener('change', (e) => { + if (e.target.checked) { + // 미입력자만 필터링 + const missingWorkers = filteredWorkData.filter(worker => worker.status === 'missing'); + displayWorkers(missingWorkers); + } else { + // 전체 표시 + displayWorkers(filteredWorkData); + } + }); +} + +// 엑셀 다운로드 (개선된 버전) +function exportToExcel() { + try { + // CSV 형태로 데이터 구성 (개선된 버전) + let csvContent = "작업자명,상태,총시간,작업항목수,작업유형,프로젝트,기여자,최근업데이트\n"; + + filteredWorkData.forEach(worker => { + const statusText = { + completed: '완료', + missing: '미입력', + partial: '부분입력' + }; + + const workTypes = worker.workTypes && worker.workTypes.length > 0 ? worker.workTypes.join('; ') : '없음'; + const projects = worker.projects && worker.projects.length > 0 ? worker.projects.join('; ') : '없음'; + const contributors = worker.contributors && worker.contributors.length > 0 ? worker.contributors.join('; ') : '없음'; + const lastUpdate = worker.lastUpdate ? formatDateTime(worker.lastUpdate) : '없음'; + + csvContent += `"${worker.worker_name}","${statusText[worker.status]}","${worker.totalHours}","${worker.entryCount}","${workTypes}","${projects}","${contributors}","${lastUpdate}"\n`; + }); + + // UTF-8 BOM 추가 (한글 깨짐 방지) + const BOM = '\uFEFF'; + const blob = new Blob([BOM + csvContent], { type: 'text/csv;charset=utf-8;' }); + const link = document.createElement('a'); + const url = URL.createObjectURL(blob); + + link.setAttribute('href', url); + link.setAttribute('download', `작업현황_${currentDate}.csv`); + link.style.visibility = 'hidden'; + + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + + showMessage('✅ 엑셀 파일이 다운로드되었습니다!', 'success'); + + } catch (error) { + console.error('엑셀 다운로드 오류:', error); + showMessage('엑셀 다운로드 중 오류가 발생했습니다.', 'error'); + } +} + +// 새로고침 +function refreshData() { + loadDashboardData(); +} + +// 이벤트 리스너 설정 +function setupEventListeners() { + document.getElementById('loadDataBtn').addEventListener('click', loadDashboardData); + document.getElementById('refreshBtn').addEventListener('click', refreshData); + document.getElementById('exportBtn').addEventListener('click', exportToExcel); + + // 엔터키로 조회 + document.getElementById('selectedDate').addEventListener('keypress', (e) => { + if (e.key === 'Enter') { + loadDashboardData(); + } + }); +} + +// 초기화 +async function init() { + try { + // 권한 체크 + if (!checkPermission()) { + return; + } + + // 권한 체크 메시지 숨기기 + document.getElementById('permission-check-message').style.display = 'none'; + + // 오늘 날짜 설정 + document.getElementById('selectedDate').value = getKoreaToday(); + + // 이벤트 리스너 설정 + setupEventListeners(); + + console.log('✅ 관리자 대시보드 초기화 완료 (통합 API 설정 적용)'); + + // 자동으로 오늘 데이터 로드 + loadDashboardData(); + + } catch (error) { + console.error('초기화 오류:', error); + showMessage('초기화 중 오류가 발생했습니다.', 'error'); + } +} + +// 페이지 로드 시 초기화 +document.addEventListener('DOMContentLoaded', () => { + // 권한 체크 메시지 표시 + document.getElementById('permission-check-message').style.display = 'block'; + + // 토큰 확인 + const token = localStorage.getItem('token'); + if (!token || token === 'undefined') { + showMessage('로그인이 필요합니다.', 'error'); + localStorage.removeItem('token'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return; + } + + // 초기화 실행 + init(); +}); + +// 전역 함수로 노출 +window.closeWorkerDetailModal = closeWorkerDetailModal; +window.refreshData = refreshData; +window.showWorkerDetailSafe = showWorkerDetailSafe; +window.showWorkerDetail = showWorkerDetail; +window.editWorkItem = editWorkItem; +window.deleteWorkItem = deleteWorkItem; +window.closeEditModal = closeEditModal; +window.saveEditedWork = saveEditedWork; \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/modern-dashboard.js b/deploy/tkfb-package/web-ui/js/modern-dashboard.js new file mode 100644 index 0000000..319a80b --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/modern-dashboard.js @@ -0,0 +1,1398 @@ +// ✅ modern-dashboard.js - 모던 대시보드 JavaScript + +// API 설정 및 함수들은 api-config.js에서 로드됨 +// window.API, window.apiCall, window.getAuthHeaders 사용 + +// 인증 관련 함수들 +function getAuthData() { + const token = localStorage.getItem('token'); + const user = localStorage.getItem('user'); + return { + token, + user: user ? JSON.parse(user) : null + }; +} + +// 전역 변수 +let currentUser = null; +let workersData = []; +let workData = []; +let selectedDate = new Date().toISOString().split('T')[0]; + +// 모달 관련 변수 +let currentModalWorker = null; +let modalWorkTypes = []; +let modalWorkStatusTypes = []; +let modalErrorTypes = []; +let modalProjects = []; +let modalExistingWork = []; + +// DOM 요소 +const elements = { + currentTime: document.getElementById('currentTime'), + timeValue: document.getElementById('timeValue'), + userName: document.getElementById('userName'), + userRole: document.getElementById('userRole'), + userInitial: document.getElementById('userInitial'), + selectedDate: document.getElementById('selectedDate'), // 작업장 현황으로 교체되어 없을 수 있음 + refreshBtn: document.getElementById('refreshBtn'), // 작업장 현황으로 교체되어 없을 수 있음 + logoutBtn: document.getElementById('logoutBtn'), + + // 요약 카드 + todayWorkers: document.getElementById('todayWorkers'), + totalHours: document.getElementById('totalHours'), + activeProjects: document.getElementById('activeProjects'), + errorCount: document.getElementById('errorCount'), + + // 컨테이너 + workStatusContainer: document.getElementById('workStatusContainer'), // 작업장 현황으로 교체되어 없을 수 있음 + workersContainer: document.getElementById('workersContainer'), + toastContainer: document.getElementById('toastContainer') +}; + +// ========== 초기화 ========== // +document.addEventListener('DOMContentLoaded', async () => { + // API 함수가 로드될 때까지 기다림 + let retryCount = 0; + const maxRetries = 50; // 5초 대기 + + while (!window.apiCall && retryCount < maxRetries) { + await new Promise(resolve => setTimeout(resolve, 100)); + retryCount++; + } + + if (!window.apiCall) { + console.error('❌ API 함수를 로드할 수 없습니다.'); + showToast('시스템을 초기화할 수 없습니다. 페이지를 새로고침해주세요.', 'error'); + return; + } + + try { + await initializeDashboard(); + } catch (error) { + console.error('대시보드 초기화 오류:', error); + showToast('대시보드를 불러오는 중 오류가 발생했습니다.', 'error'); + } +}); + +async function initializeDashboard() { + console.log('🚀 모던 대시보드 초기화 시작'); + + // 사용자 정보 설정 + setupUserInfo(); + + // 시간 업데이트 시작 + updateCurrentTime(); + setInterval(updateCurrentTime, 1000); + + // 날짜 설정 (요소가 있을 때만) + if (elements.selectedDate) { + elements.selectedDate.value = selectedDate; + } + + // 이벤트 리스너 설정 + setupEventListeners(); + + // 데이터 로드 (작업 현황 컨테이너가 있을 때만) + if (elements.workStatusContainer) { + await loadDashboardData(); + } + + // 관리자 권한 확인 + checkAdminAccess(); + + // TBM 페이지 접근 권한 확인 + checkTbmPageAccess(); + + console.log('✅ 모던 대시보드 초기화 완료'); +} + +// ========== 사용자 정보 설정 ========== // +// navbar/sidebar는 app-init.js에서 공통 처리하므로 여기서는 currentUser만 설정 +function setupUserInfo() { + const authData = getAuthData(); + if (authData && authData.user) { + currentUser = authData.user; + console.log('👤 사용자 정보 로드 완료:', currentUser.name, currentUser.role); + } +} + +// ========== 시간 업데이트 ========== // +function updateCurrentTime() { + // Navbar 컴포넌트가 시간을 처리하므로 여기서는 timeValue가 있을 때만 업데이트 + if (elements.timeValue) { + const now = new Date(); + const hours = String(now.getHours()).padStart(2, '0'); + const minutes = String(now.getMinutes()).padStart(2, '0'); + const seconds = String(now.getSeconds()).padStart(2, '0'); + elements.timeValue.textContent = `${hours}시 ${minutes}분 ${seconds}초`; + } +} + +// ========== 이벤트 리스너 ========== // +function setupEventListeners() { + // 날짜 변경 (요소가 있을 때만) + if (elements.selectedDate) { + elements.selectedDate.addEventListener('change', (e) => { + selectedDate = e.target.value; + loadDashboardData(); + }); + } + + // 새로고침 버튼 (요소가 있을 때만) + if (elements.refreshBtn) { + elements.refreshBtn.addEventListener('click', () => { + loadDashboardData(); + showToast('데이터를 새로고침했습니다.', 'success'); + }); + } + + // 로그아웃 버튼 (navbar 컴포넌트가 이미 처리하므로 버튼이 있을 때만) + if (elements.logoutBtn) { + elements.logoutBtn.addEventListener('click', () => { + if (confirm('로그아웃하시겠습니까?')) { + localStorage.clear(); + window.location.href = '/index.html'; + } + }); + } + + // 뷰 컨트롤 버튼들 + const listViewBtn = document.getElementById('listViewBtn'); + const cardViewBtn = document.getElementById('cardViewBtn'); + + if (listViewBtn) { + listViewBtn.addEventListener('click', () => { + displayWorkers(workersData, 'list'); + updateViewButtons('list'); + }); + } + + if (cardViewBtn) { + cardViewBtn.addEventListener('click', () => { + displayWorkers(workersData, 'card'); + updateViewButtons('card'); + }); + } +} + +// ========== 데이터 로드 ========== // +async function loadDashboardData() { + console.log('📊 대시보드 데이터 로딩 시작'); + + try { + // 로딩 상태 표시 + showLoadingState(); + + // 병렬로 데이터 로드 + const [workersResult, workResult] = await Promise.all([ + loadWorkers(), + loadWorkData(selectedDate) + ]); + + // 요약 데이터 업데이트 + updateSummaryCards(); + + // 작업 현황 표시 + displayWorkStatus(); + + // 작업자 현황 표시 + displayWorkers(workersData, 'card'); + + console.log('✅ 대시보드 데이터 로딩 완료'); + + } catch (error) { + console.error('❌ 대시보드 데이터 로딩 오류:', error); + showErrorState(); + showToast('데이터를 불러오는 중 오류가 발생했습니다.', 'error'); + } +} + +async function loadWorkers() { + try { + console.log('👥 작업자 데이터 로딩...'); + const response = await window.apiCall('/workers'); + const allWorkers = Array.isArray(response) ? response : (response.data || []); + + // 활성화된 작업자만 필터링 + workersData = allWorkers.filter(worker => { + return worker.status === 'active' || worker.is_active === 1 || worker.is_active === true; + }); + + console.log(`✅ 작업자 ${workersData.length}명 로드 완료 (전체: ${allWorkers.length}명)`); + return workersData; + } catch (error) { + console.error('작업자 데이터 로딩 오류:', error); + workersData = []; + throw error; + } +} + +async function loadWorkData(date) { + try { + console.log(`📋 ${date} 작업 데이터 로딩...`); + const response = await window.apiCall(`/daily-work-reports?date=${date}&view_all=true`); + workData = Array.isArray(response) ? response : (response.data || []); + console.log(`✅ 작업 데이터 ${workData.length}건 로드 완료`); + return workData; + } catch (error) { + console.error('작업 데이터 로딩 오류:', error); + workData = []; + throw error; + } +} + +// ========== 요약 카드 업데이트 ========== // +function updateSummaryCards() { + // 오늘 작업자 수 + const todayWorkersCount = new Set(workData.map(w => w.worker_id)).size; + updateSummaryCard(elements.todayWorkers, todayWorkersCount, '명'); + + // 총 작업 시간 + const totalHours = workData.reduce((sum, work) => sum + parseFloat(work.work_hours || 0), 0); + updateSummaryCard(elements.totalHours, totalHours.toFixed(1), '시간'); + + // 진행 중인 프로젝트 + const activeProjectsCount = new Set(workData.map(w => w.project_id)).size; + updateSummaryCard(elements.activeProjects, activeProjectsCount, '개'); + + // 오류 발생 건수 + const errorCount = workData.filter(w => w.work_status_id === 2).length; + updateSummaryCard(elements.errorCount, errorCount, '건'); +} + +function updateSummaryCard(element, value, unit) { + if (element) { + const numberElement = element.querySelector('.value-number'); + const unitElement = element.querySelector('.value-unit'); + + if (numberElement) numberElement.textContent = value; + if (unitElement) unitElement.textContent = unit; + } +} + +// ========== SVG 아이콘 정의 ========== // +const SVG_ICONS = { + complete: ` + + `, + + overtime: ` + + + `, + + vacation: ` + + + `, + + partial: ` + + `, + + incomplete: ` + + + + `, + + warning: ` + + + + ` +}; + +// ========== 작업 현황 표시 (작업자 중심) ========== // +function displayWorkStatus() { + const tableBody = document.getElementById('workStatusTableBody'); + if (!tableBody) return; + + // 모든 작업자 데이터 가져오기 (작업이 없는 작업자도 포함) + const allWorkers = workersData || []; + + if (allWorkers.length === 0) { + tableBody.innerHTML = ` + + +

등록된 작업자가 없습니다

+ + + `; + return; + } + + // 작업자별 상황 분석 + const workerStatusList = allWorkers.map(worker => { + const todayWork = workData.filter(w => w.worker_id === worker.worker_id); + const totalHours = todayWork.reduce((sum, w) => sum + parseFloat(w.work_hours || 0), 0); + + // 휴가/연차 제외한 실제 작업시간 계산 + const actualWorkHours = todayWork + .filter(w => w.project_id !== 13) // 연차/휴무 프로젝트 제외 + .reduce((sum, w) => sum + parseFloat(w.work_hours || 0), 0); + + const hasError = todayWork.some(w => w.work_status_id === 2); + + // 정규 작업과 에러 작업 건수 분리 + const regularWorkCount = todayWork.filter(w => w.project_id !== 13 && w.work_status_id !== 2).length; + const errorWorkCount = todayWork.filter(w => w.project_id !== 13 && w.work_status_id === 2).length; + + // 상태 판단 로직 (개선된 버전) + let status = 'incomplete'; + let statusText = '미입력'; + let statusBadge = '미입력'; + let statusClass = 'incomplete'; + let vacationType = null; + + // 휴가 처리된 경우 확인 (프로젝트 ID 13 = "연차/휴무" 또는 설명에 휴가 키워드) + const hasVacationRecord = todayWork.some(w => + w.project_id === 13 || // 연차/휴무 프로젝트 + (w.description && ( + w.description.includes('연차') || + w.description.includes('반차') || + w.description.includes('휴가') + )) + ); + + // 연차/휴무 프로젝트의 시간 계산 + const vacationHours = todayWork + .filter(w => w.project_id === 13) + .reduce((sum, w) => sum + parseFloat(w.work_hours || 0), 0); + + if (totalHours > 12) { + status = 'overtime-warning'; + statusText = '초과근무 확인필요'; + statusBadge = '확인필요'; + statusClass = 'warning'; + } else if (hasVacationRecord && vacationHours > 0) { + // 연차/휴무 시간에 따른 상태 결정 + if (vacationHours === 8) { + status = 'vacation-full'; + statusText = '연차'; + statusBadge = '연차'; + statusClass = 'vacation'; + } else if (vacationHours === 6) { + status = 'vacation-half-half'; + statusText = '조퇴'; + statusBadge = '조퇴'; + statusClass = 'vacation'; + } else if (vacationHours === 4) { + status = 'vacation-half'; + statusText = '반차'; + statusBadge = '반차'; + statusClass = 'vacation'; + } else if (vacationHours === 2) { + status = 'vacation-quarter'; + statusText = '반반차'; + statusBadge = '반반차'; + statusClass = 'vacation'; + } + } else if (totalHours > 8) { + // 8시간 초과 - 연장근로 + status = 'overtime'; + statusText = '연장근로'; + statusBadge = '연장근로'; + statusClass = 'overtime'; + } else if (totalHours === 8) { + // 정확히 8시간 - 정시근로 + status = 'complete'; + statusText = '정시근로'; + statusBadge = '정시근로'; + statusClass = 'success'; + } else if (totalHours > 0) { + // 0시간 초과 8시간 미만 - 부분 입력 + status = 'partial'; + statusText = '부분 입력'; + statusBadge = '부분입력'; + statusClass = 'info'; + + // 휴가 처리 필요 여부 판단 + if (totalHours === 0) { + vacationType = 'full'; + } else if (totalHours === 4) { + vacationType = 'half'; + } else if (totalHours === 6) { + vacationType = 'half-half'; // 2시간 더 추가해서 조퇴 처리 + } + } else { + // 0시간 - 미입력 + status = 'incomplete'; + statusText = '미입력'; + statusBadge = '미입력'; + statusClass = 'incomplete'; + vacationType = 'full'; + } + + return { + ...worker, + todayWork, + totalHours, + actualWorkHours, + regularWorkCount, + errorWorkCount, + hasError, + status, + statusText, + statusBadge, + statusClass, + vacationType + }; + }); + + // 테이블 행 렌더링 + tableBody.innerHTML = workerStatusList.map(worker => { + // 상태에 따른 SVG 아이콘 선택 + let iconKey = 'incomplete'; + if (worker.status === 'overtime-warning') iconKey = 'warning'; + else if (worker.status.startsWith('vacation')) iconKey = 'vacation'; + else if (worker.status === 'overtime') iconKey = 'overtime'; + else if (worker.status === 'complete') iconKey = 'complete'; + else if (worker.status === 'partial') iconKey = 'partial'; + + return ` + + +
+ ${worker.worker_name.charAt(0)} +
+
+
${worker.worker_name}
+
${worker.job_type || '작업자'}
+
+ + + + + ${SVG_ICONS[iconKey]} + ${worker.statusBadge} + + + + + ${worker.actualWorkHours.toFixed(1)}h + + + +
+ + 정규: + ${worker.regularWorkCount}건 + + ${worker.errorWorkCount > 0 ? ` + + 에러: + ${worker.errorWorkCount}건 + + ` : ''} +
+ + + +
+ + ${worker.vacationType ? ` + + ` : ''} + ${worker.status === 'overtime-warning' ? ` + + ` : ''} +
+ + + `; + }).join(''); +} + +function groupWorkDataByProject() { + const groups = {}; + workData.forEach(work => { + const projectName = work.project_name || '미지정 프로젝트'; + if (!groups[projectName]) { + groups[projectName] = []; + } + groups[projectName].push(work); + }); + return groups; +} + +// ========== 작업자 현황 표시 ========== // +function displayWorkers(workers, viewType = 'card') { + if (!elements.workersContainer) return; + + if (workers.length === 0) { + elements.workersContainer.innerHTML = ` +
+
👥
+

작업자 데이터가 없습니다

+

등록된 작업자가 없습니다.

+
+ `; + return; + } + + if (viewType === 'list') { + displayWorkersAsList(workers); + } else { + displayWorkersAsCards(workers); + } +} + +function displayWorkersAsCards(workers) { + elements.workersContainer.innerHTML = ` +
+ ${workers.map(worker => { + const todayWork = workData.filter(w => w.worker_id === worker.worker_id); + const totalHours = todayWork.reduce((sum, w) => sum + parseFloat(w.work_hours || 0), 0); + + // 휴가/연차 제외한 실제 작업시간 계산 + const actualWorkHours = todayWork + .filter(w => w.project_id !== 13) // 연차/휴무 프로젝트 제외 + .reduce((sum, w) => sum + parseFloat(w.work_hours || 0), 0); + + const hasError = todayWork.some(w => w.work_status_id === 2); + + // 정규 작업과 에러 작업 건수 분리 + const regularWorkCount = todayWork.filter(w => w.project_id !== 13 && w.work_status_id !== 2).length; + const errorWorkCount = todayWork.filter(w => w.project_id !== 13 && w.work_status_id === 2).length; + + return ` +
+
+
+
+ ${worker.worker_name.charAt(0)} +
+
+

${worker.worker_name}

+

${worker.job_type || '작업자'}

+
+
+ +
+
+
+
+ 작업시간 + ${actualWorkHours.toFixed(1)}h +
+
+ 정규 + ${regularWorkCount}건 +
+ ${errorWorkCount > 0 ? ` +
+ 에러 + ${errorWorkCount}건 +
+ ` : ''} +
+
+
+ `; + }).join('')} +
+ `; +} + +function displayWorkersAsList(workers) { + elements.workersContainer.innerHTML = ` +
+ + + + + + + + + + + + ${workers.map(worker => { + const todayWork = workData.filter(w => w.worker_id === worker.worker_id); + const totalHours = todayWork.reduce((sum, w) => sum + parseFloat(w.work_hours || 0), 0); + const hasError = todayWork.some(w => w.work_status_id === 2); + + return ` + + + + + + + + `; + }).join('')} + +
작업자직종오늘 작업작업 시간상태
+
+
+ ${worker.worker_name.charAt(0)} +
+ ${worker.worker_name} +
+
${worker.job_type || '작업자'}${todayWork.length}건${totalHours.toFixed(1)}시간 + + ${todayWork.length > 0 ? '작업 중' : '대기'} + + ${hasError ? '오류' : ''} +
+
+ `; +} + +// ========== 뷰 버튼 업데이트 ========== // +function updateViewButtons(activeView) { + const listBtn = document.getElementById('listViewBtn'); + const cardBtn = document.getElementById('cardViewBtn'); + + if (listBtn && cardBtn) { + listBtn.classList.toggle('btn-primary', activeView === 'list'); + listBtn.classList.toggle('btn-secondary', activeView !== 'list'); + + cardBtn.classList.toggle('btn-primary', activeView === 'card'); + cardBtn.classList.toggle('btn-secondary', activeView !== 'card'); + } +} + +// ========== 관리자 권한 확인 ========== // +function checkAdminAccess() { + const adminElements = document.querySelectorAll('.admin-only'); + const isFullAdmin = currentUser && ['admin', 'system'].includes(currentUser.access_level); + const isGroupLeader = currentUser && currentUser.access_level === 'group_leader'; + + console.log(`🔐 권한 확인: 사용자=${currentUser?.username}, 역할=${currentUser.access_level}, 전체관리자=${isFullAdmin}, 그룹리더=${isGroupLeader}`); + + adminElements.forEach(element => { + const href = element.getAttribute('href'); + + // 작업 분석: 전체 관리자만 접근 가능 + if (href && href.includes('work-analysis.html')) { + if (isFullAdmin) { + element.style.display = ''; + element.classList.add('visible'); + } else { + element.style.display = 'none'; + element.classList.remove('visible'); + } + } + // 작업 관리: 전체 관리자 + 그룹 리더 접근 가능 + else if (href && href.includes('work-management.html')) { + if (isFullAdmin || isGroupLeader) { + element.style.display = ''; + element.classList.add('visible'); + } else { + element.style.display = 'none'; + element.classList.remove('visible'); + } + } + // 기타 관리자 전용 메뉴: 전체 관리자만 접근 가능 + else { + if (isFullAdmin) { + element.style.display = ''; + element.classList.add('visible'); + } else { + element.style.display = 'none'; + element.classList.remove('visible'); + } + } + }); +} + +// ========== TBM 페이지 접근 권한 확인 ========== // +async function checkTbmPageAccess() { + try { + if (!currentUser || !currentUser.user_id) { + console.log('⚠️ TBM 페이지 권한 확인: 사용자 정보 없음'); + return; + } + + const tbmQuickAction = document.getElementById('tbmQuickAction'); + if (!tbmQuickAction) { + console.log('⚠️ TBM 빠른 작업 버튼 요소를 찾을 수 없습니다'); + return; + } + + console.log('🛠️ TBM 페이지 권한 확인 중...', { role: currentUser.role, access_level: currentUser.access_level }); + + // Admin은 모든 페이지 접근 가능 + if (currentUser.role === 'Admin' || currentUser.role === 'System Admin' || currentUser.access_level === 'admin' || currentUser.access_level === 'system') { + tbmQuickAction.style.display = 'block'; + console.log('✅ Admin 사용자 - TBM 빠른 작업 버튼 표시'); + return; + } + + // 일반 사용자는 페이지 접근 권한 조회 + const response = await window.apiCall(`/users/${currentUser.user_id}/page-access`); + + if (response && response.success) { + const pageAccess = response.data?.pageAccess || []; + + // 'work.tbm' 페이지 접근 권한 확인 (마이그레이션에서 work.tbm으로 등록함) + const tbmPage = pageAccess.find(p => p.page_key === 'work.tbm'); + + if (tbmPage && tbmPage.can_access) { + tbmQuickAction.style.display = 'block'; + console.log('✅ TBM 페이지 접근 권한 있음 - 빠른 작업 버튼 표시'); + } else { + console.log('❌ TBM 페이지 접근 권한 없음 - 빠른 작업 버튼 숨김'); + } + } else { + console.log('⚠️ TBM 페이지 권한 확인 실패'); + } + } catch (error) { + console.error('❌ TBM 페이지 권한 확인 오류:', error); + } +} + +// ========== 상태 표시 ========== // +function showLoadingState() { + const loadingHTML = ` +
+
+

데이터를 불러오는 중...

+
+ `; + + if (elements.workStatusContainer) { + elements.workStatusContainer.innerHTML = loadingHTML; + } + + if (elements.workersContainer) { + elements.workersContainer.innerHTML = loadingHTML; + } +} + +function showErrorState() { + const errorHTML = ` +
+
⚠️
+

데이터를 불러올 수 없습니다

+

네트워크 연결을 확인하고 다시 시도해주세요.

+ +
+ `; + + if (elements.workStatusContainer) { + elements.workStatusContainer.innerHTML = errorHTML; + } + + if (elements.workersContainer) { + elements.workersContainer.innerHTML = errorHTML; + } +} + +// ========== 토스트 알림 ========== // +function showToast(message, type = 'info', duration = 3000) { + if (!elements.toastContainer) return; + + const toast = document.createElement('div'); + toast.className = `toast ${type}`; + + const iconMap = { + success: '✅', + error: '❌', + warning: '⚠️', + info: 'ℹ️' + }; + + toast.innerHTML = ` +
${iconMap[type] || 'ℹ️'}
+
${message}
+ + `; + + elements.toastContainer.appendChild(toast); + + // 자동 제거 + setTimeout(() => { + if (toast.parentElement) { + toast.remove(); + } + }, duration); +} + +// ========== 작업자 관련 액션 함수들 ========== // +function openWorkerModal(workerId, workerName) { + console.log(`📝 ${workerName}(ID: ${workerId}) 작업 보고서 모달 열기`); + + // 모달 데이터 설정 + currentModalWorker = { + id: workerId, + name: workerName, + date: selectedDate + }; + + // 모달 표시 + showWorkerModal(); +} + +function handleVacation(workerId, vacationType) { + console.log(`🏖️ 작업자 ${workerId} 휴가 처리: ${vacationType}`); + + const vacationNames = { + 'full': '연차', + 'half': '반차', + 'half-half': '반반차' + }; + + const vacationHours = { + 'full': 8, + 'half': 4, + 'half-half': 2 + }; + + if (confirm(`${vacationNames[vacationType]} 처리하시겠습니까?\n(${vacationHours[vacationType]}시간으로 자동 입력됩니다)`)) { + // 휴가 처리 API 호출 + processVacation(workerId, vacationType, vacationHours[vacationType]); + } +} + +async function processVacation(workerId, vacationType, hours) { + try { + showToast(`휴가 처리 중...`, 'info'); + + // 휴가용 작업 보고서 생성 (특별한 작업 유형으로) + const vacationReport = { + report_date: selectedDate, + worker_id: workerId, + project_id: 1, // 기본 프로젝트 (휴가용) + work_type_id: 999, // 휴가 전용 작업 유형 (DB에 추가 필요) + work_status_id: 1, // 정상 상태 + error_type_id: null, + work_hours: hours, + created_by: currentUser?.user_id || 1 + }; + + const response = await window.apiCall('/daily-work-reports', 'POST', vacationReport); + + showToast(`휴가 처리가 완료되었습니다.`, 'success'); + await loadDashboardData(); // 데이터 새로고침 + + } catch (error) { + console.error('휴가 처리 오류:', error); + showToast(`휴가 처리 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +function confirmOvertime(workerId) { + console.log(`⚠️ 작업자 ${workerId} 초과근무 확인`); + + if (confirm('12시간을 초과한 작업시간이 정상적인 입력인지 확인하시겠습니까?')) { + // 초과근무 확인 처리 + processOvertimeConfirmation(workerId); + } +} + +async function processOvertimeConfirmation(workerId) { + try { + showToast('초과근무 승인 처리 중...', 'info'); + + // 새로운 근태 관리 API 사용 + const overtimeData = { + worker_id: workerId, + date: selectedDate + }; + + const response = await window.apiCall('/attendance/overtime/approve', 'POST', overtimeData); + + if (response.success) { + showToast('초과근무가 정상으로 승인되었습니다.', 'success'); + await loadDashboardData(); // 데이터 새로고침 + } else { + throw new Error(response.message || '초과근무 승인에 실패했습니다.'); + } + + } catch (error) { + console.error('초과근무 승인 오류:', error); + showToast(`초과근무 승인 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +// ========== 모달 시스템 ========== // +function showWorkerModal() { + // 모달이 없으면 생성 + if (!document.getElementById('workerModal')) { + createWorkerModal(); + } + + // 모달 데이터 로드 및 표시 + loadModalData(); + document.getElementById('workerModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; // 배경 스크롤 방지 +} + +function hideWorkerModal() { + document.getElementById('workerModal').style.display = 'none'; + document.body.style.overflow = 'auto'; // 배경 스크롤 복원 + resetModalForm(); +} + +function createWorkerModal() { + const modalHTML = ` + + `; + + document.body.insertAdjacentHTML('beforeend', modalHTML); + setupModalEventListeners(); +} + +function setupModalEventListeners() { + // 모달 외부 클릭 시 닫기 + document.getElementById('workerModal').addEventListener('click', (e) => { + if (e.target.id === 'workerModal') { + hideWorkerModal(); + } + }); + + // 새 작업 추가/취소 버튼 + document.getElementById('modalAddWorkBtn').addEventListener('click', showModalNewWorkForm); + document.getElementById('modalCancelWorkBtn').addEventListener('click', hideModalNewWorkForm); + document.getElementById('modalSaveWorkBtn').addEventListener('click', saveModalNewWork); + + // 업무 상태 변경 시 에러 유형 토글 + document.getElementById('modalWorkStatusSelect').addEventListener('change', toggleModalErrorType); + + // 빠른 시간 버튼 + document.querySelectorAll('.modal-time-btn').forEach(btn => { + btn.addEventListener('click', (e) => { + document.getElementById('modalWorkHours').value = e.target.dataset.hours; + }); + }); + + // 휴가 처리 버튼 + document.querySelectorAll('.modal-vacation-btn').forEach(btn => { + btn.addEventListener('click', (e) => { + const vacationType = e.target.dataset.type; + handleModalVacation(vacationType); + }); + }); +} + +async function loadModalData() { + if (!currentModalWorker) return; + + try { + // 모달 헤더 업데이트 + document.getElementById('modalTitle').textContent = `${currentModalWorker.name} 작업 보고서`; + document.getElementById('modalWorkerName').textContent = currentModalWorker.name; + document.getElementById('modalWorkerDate').textContent = currentModalWorker.date; + document.getElementById('modalWorkerInitial').textContent = currentModalWorker.name.charAt(0); + + // 병렬로 데이터 로드 + await Promise.all([ + loadModalExistingWork(), + loadModalDropdownData() + ]); + + // UI 업데이트 + updateModalSummary(); + renderModalExistingWork(); + populateModalDropdowns(); + + } catch (error) { + console.error('모달 데이터 로드 오류:', error); + showToast('데이터 로드 중 오류가 발생했습니다.', 'error'); + } +} + +async function loadModalExistingWork() { + try { + const response = await window.apiCall(`/daily-work-reports?date=${currentModalWorker.date}&worker_id=${currentModalWorker.id}`); + modalExistingWork = Array.isArray(response) ? response : (response.data || []); + } catch (error) { + console.error('기존 작업 로드 오류:', error); + modalExistingWork = []; + } +} + +async function loadModalDropdownData() { + try { + const [projectsRes, workTypesRes, workStatusRes, errorTypesRes] = await Promise.all([ + window.apiCall('/projects/active/list'), + window.apiCall('/daily-work-reports/work-types'), + window.apiCall('/daily-work-reports/work-status-types'), + window.apiCall('/daily-work-reports/error-types') + ]); + + modalProjects = Array.isArray(projectsRes) ? projectsRes : (projectsRes.data || []); + modalWorkTypes = Array.isArray(workTypesRes) ? workTypesRes : (workTypesRes.data || []); + modalWorkStatusTypes = Array.isArray(workStatusRes) ? workStatusRes : (workStatusRes.data || []); + modalErrorTypes = Array.isArray(errorTypesRes) ? errorTypesRes : (errorTypesRes.data || []); + } catch (error) { + console.error('드롭다운 데이터 로드 오류:', error); + } +} + +function updateModalSummary() { + const totalHours = modalExistingWork.reduce((sum, work) => sum + parseFloat(work.work_hours || 0), 0); + const workCount = modalExistingWork.length; + + document.getElementById('modalTotalHours').textContent = `${totalHours.toFixed(1)}h`; + document.getElementById('modalWorkCount').textContent = `${workCount}건`; + + // 12시간 초과 경고 + if (totalHours > 12) { + document.getElementById('modalTotalHours').classList.add('warning'); + } else { + document.getElementById('modalTotalHours').classList.remove('warning'); + } +} + +function renderModalExistingWork() { + const container = document.getElementById('modalExistingWork'); + + if (modalExistingWork.length === 0) { + container.innerHTML = ` + + `; + return; + } + + container.innerHTML = modalExistingWork.map(work => ` + + `).join(''); +} + +function populateModalDropdowns() { + // 프로젝트 드롭다운 + const projectSelect = document.getElementById('modalProjectSelect'); + projectSelect.innerHTML = ''; + modalProjects.forEach(project => { + projectSelect.innerHTML += ``; + }); + + // 작업 유형 드롭다운 + const workTypeSelect = document.getElementById('modalWorkTypeSelect'); + workTypeSelect.innerHTML = ''; + modalWorkTypes.forEach(type => { + workTypeSelect.innerHTML += ``; + }); + + // 작업 상태 드롭다운 + const workStatusSelect = document.getElementById('modalWorkStatusSelect'); + workStatusSelect.innerHTML = ''; + modalWorkStatusTypes.forEach(status => { + workStatusSelect.innerHTML += ``; + }); + + // 에러 유형 드롭다운 + const errorTypeSelect = document.getElementById('modalErrorTypeSelect'); + errorTypeSelect.innerHTML = ''; + modalErrorTypes.forEach(error => { + errorTypeSelect.innerHTML += ``; + }); +} + +function showModalNewWorkForm() { + document.getElementById('modalNewWorkSection').style.display = 'block'; + document.getElementById('modalAddWorkBtn').style.display = 'none'; +} + +function hideModalNewWorkForm() { + document.getElementById('modalNewWorkSection').style.display = 'none'; + document.getElementById('modalAddWorkBtn').style.display = 'block'; + resetModalForm(); +} + +function resetModalForm() { + document.getElementById('modalProjectSelect').value = ''; + document.getElementById('modalWorkTypeSelect').value = ''; + document.getElementById('modalWorkStatusSelect').value = ''; + document.getElementById('modalErrorTypeSelect').value = ''; + document.getElementById('modalWorkHours').value = '1.00'; + document.getElementById('modalErrorTypeGroup').style.display = 'none'; +} + +function toggleModalErrorType() { + const workStatusSelect = document.getElementById('modalWorkStatusSelect'); + const errorTypeGroup = document.getElementById('modalErrorTypeGroup'); + + if (workStatusSelect.value === '2') { // 에러 상태 + errorTypeGroup.style.display = 'block'; + } else { + errorTypeGroup.style.display = 'none'; + document.getElementById('modalErrorTypeSelect').value = ''; + } +} + +async function saveModalNewWork() { + try { + const projectId = document.getElementById('modalProjectSelect').value; + const workTypeId = document.getElementById('modalWorkTypeSelect').value; + const workStatusId = document.getElementById('modalWorkStatusSelect').value; + const errorTypeId = document.getElementById('modalErrorTypeSelect').value; + const workHours = document.getElementById('modalWorkHours').value; + + // 유효성 검사 + if (!projectId || !workTypeId || !workStatusId || !workHours) { + showToast('모든 필수 필드를 입력해주세요.', 'error'); + return; + } + + if (workStatusId === '2' && !errorTypeId) { + showToast('에러 상태일 때는 에러 유형을 선택해야 합니다.', 'error'); + return; + } + + const workData = { + report_date: currentModalWorker.date, + worker_id: currentModalWorker.id, + work_entries: [{ + project_id: parseInt(projectId), + task_id: parseInt(workTypeId), // work_type_id를 task_id로 매핑 + work_hours: parseFloat(workHours), + work_status_id: parseInt(workStatusId), + error_type_id: workStatusId === '2' ? parseInt(errorTypeId) : null, + description: '' // 기본 설명 + }] + }; + + console.log('📤 전송할 작업 데이터:', workData); + console.log('📋 현재 사용자:', currentUser); + + await window.apiCall('/daily-work-reports', 'POST', workData); + + showToast('작업이 성공적으로 저장되었습니다.', 'success'); + + // 데이터 새로고침 + await loadModalExistingWork(); + updateModalSummary(); + renderModalExistingWork(); + hideModalNewWorkForm(); + + // 대시보드 데이터도 새로고침 + await loadDashboardData(); + + } catch (error) { + console.error('작업 저장 오류:', error); + showToast(`작업 저장 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +async function deleteModalWork(workId) { + if (!confirm('이 작업을 삭제하시겠습니까?')) { + return; + } + + try { + await window.apiCall(`/daily-work-reports/${workId}`, 'DELETE'); + + showToast('작업이 성공적으로 삭제되었습니다.', 'success'); + + // 데이터 새로고침 + await loadModalExistingWork(); + updateModalSummary(); + renderModalExistingWork(); + + // 대시보드 데이터도 새로고침 + await loadDashboardData(); + + } catch (error) { + console.error('작업 삭제 오류:', error); + showToast(`작업 삭제 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +async function handleModalVacation(vacationType) { + const vacationTypeMap = { + 'full': { code: 'ANNUAL_FULL', name: '연차', hours: 8 }, + 'half': { code: 'ANNUAL_HALF', name: '반차', hours: 4 }, + 'half-half': { code: 'ANNUAL_QUARTER', name: '반반차', hours: 2 } + }; + + const vacation = vacationTypeMap[vacationType]; + if (!vacation) return; + + if (!confirm(`${vacation.name} 처리하시겠습니까?\n(${vacation.hours}시간으로 자동 입력됩니다)`)) { + return; + } + + try { + // 새로운 근태 관리 API 사용 + const vacationData = { + worker_id: currentModalWorker.id, + date: currentModalWorker.date, + vacation_type: vacation.code + }; + + const response = await window.apiCall('/attendance/vacation', 'POST', vacationData); + + if (response.success) { + showToast(`${vacation.name} 처리가 완료되었습니다.`, 'success'); + + // 데이터 새로고침 + await loadModalExistingWork(); + updateModalSummary(); + renderModalExistingWork(); + + // 대시보드 데이터도 새로고침 + await loadDashboardData(); + } else { + throw new Error(response.message || '휴가 처리에 실패했습니다.'); + } + + } catch (error) { + console.error('휴가 처리 오류:', error); + showToast(`휴가 처리 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +// ========== 전역 함수 (HTML에서 호출) ========== // +window.loadDashboardData = loadDashboardData; +window.showToast = showToast; +window.updateSummaryCards = updateSummaryCards; +window.displayWorkers = displayWorkers; +window.openWorkerModal = openWorkerModal; +window.hideWorkerModal = hideWorkerModal; +window.deleteModalWork = deleteModalWork; +window.handleVacation = handleVacation; +window.confirmOvertime = confirmOvertime; diff --git a/deploy/tkfb-package/web-ui/js/my-attendance.js b/deploy/tkfb-package/web-ui/js/my-attendance.js new file mode 100644 index 0000000..efe5825 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/my-attendance.js @@ -0,0 +1,390 @@ +/** + * 나의 출근 현황 페이지 + * 본인의 출근 기록과 근태 현황을 조회하고 표시합니다 + */ + +// 전역 상태 +let currentYear = new Date().getFullYear(); +let currentMonth = new Date().getMonth() + 1; +let attendanceData = []; +let vacationBalance = null; +let monthlyStats = null; + +// 페이지 로드 시 초기화 +document.addEventListener('DOMContentLoaded', () => { + initializePage(); +}); + +/** + * 페이지 초기화 + */ +function initializePage() { + initializeYearMonthSelects(); + setupEventListeners(); + loadAttendanceData(); +} + +/** + * 년도/월 선택 옵션 초기화 + */ +function initializeYearMonthSelects() { + const yearSelect = document.getElementById('yearSelect'); + const monthSelect = document.getElementById('monthSelect'); + + // 년도 옵션 (현재 년도 기준 ±2년) + const currentYearValue = new Date().getFullYear(); + for (let year = currentYearValue - 2; year <= currentYearValue + 2; year++) { + const option = document.createElement('option'); + option.value = year; + option.textContent = `${year}년`; + if (year === currentYear) option.selected = true; + yearSelect.appendChild(option); + } + + // 월 옵션 + for (let month = 1; month <= 12; month++) { + const option = document.createElement('option'); + option.value = month; + option.textContent = `${month}월`; + if (month === currentMonth) option.selected = true; + monthSelect.appendChild(option); + } +} + +/** + * 이벤트 리스너 설정 + */ +function setupEventListeners() { + // 조회 버튼 + document.getElementById('loadAttendance').addEventListener('click', () => { + currentYear = parseInt(document.getElementById('yearSelect').value); + currentMonth = parseInt(document.getElementById('monthSelect').value); + loadAttendanceData(); + }); + + // 탭 전환 + document.querySelectorAll('.tab-btn').forEach(btn => { + btn.addEventListener('click', (e) => { + const tabName = e.currentTarget.dataset.tab; + switchTab(tabName); + }); + }); + + // 달력 네비게이션 + document.getElementById('prevMonth').addEventListener('click', () => { + changeMonth(-1); + }); + + document.getElementById('nextMonth').addEventListener('click', () => { + changeMonth(1); + }); +} + +/** + * 출근 데이터 로드 + */ +async function loadAttendanceData() { + try { + showLoading(); + + // 병렬로 데이터 로드 + const [attendanceRes, vacationRes, statsRes] = await Promise.all([ + window.apiGet(`/users/me/attendance-records?year=${currentYear}&month=${currentMonth}`), + window.apiGet(`/users/me/vacation-balance?year=${currentYear}`), + window.apiGet(`/users/me/monthly-stats?year=${currentYear}&month=${currentMonth}`) + ]); + + attendanceData = attendanceRes.data || attendanceRes || []; + vacationBalance = vacationRes.data || vacationRes; + monthlyStats = statsRes.data || statsRes; + + // UI 업데이트 + updateStats(); + renderTable(); + renderCalendar(); + + } catch (error) { + console.error('출근 데이터 로드 실패:', error); + showError('출근 데이터를 불러오는데 실패했습니다.'); + } +} + +/** + * 통계 업데이트 + */ +function updateStats() { + // 총 근무시간 (API는 month_hours 반환) + const totalHours = monthlyStats?.month_hours || monthlyStats?.total_work_hours || 0; + document.getElementById('totalHours').textContent = `${totalHours}시간`; + + // 근무일수 + const totalDays = monthlyStats?.work_days || 0; + document.getElementById('totalDays').textContent = `${totalDays}일`; + + // 잔여 연차 + const remaining = vacationBalance?.remaining_annual_leave || + (vacationBalance?.total_annual_leave || 0) - (vacationBalance?.used_annual_leave || 0); + document.getElementById('remainingLeave').textContent = `${remaining}일`; +} + +/** + * 테이블 렌더링 + */ +function renderTable() { + const tbody = document.getElementById('attendanceTableBody'); + tbody.innerHTML = ''; + + if (!attendanceData || attendanceData.length === 0) { + tbody.innerHTML = '출근 기록이 없습니다.'; + return; + } + + attendanceData.forEach(record => { + const tr = document.createElement('tr'); + tr.className = `attendance-row ${getStatusClass(record.attendance_type_code || record.type_code)}`; + tr.onclick = () => showDetailModal(record); + + const date = new Date(record.record_date); + const dayOfWeek = ['일', '월', '화', '수', '목', '금', '토'][date.getDay()]; + + tr.innerHTML = ` + ${formatDate(record.record_date)} + ${dayOfWeek} + ${record.check_in_time || '-'} + ${record.check_out_time || '-'} + ${record.total_work_hours ? `${record.total_work_hours}h` : '-'} + ${getStatusText(record)} + ${record.notes || '-'} + `; + + tbody.appendChild(tr); + }); +} + +/** + * 달력 렌더링 + */ +function renderCalendar() { + const calendarTitle = document.getElementById('calendarTitle'); + const calendarGrid = document.getElementById('calendarGrid'); + + calendarTitle.textContent = `${currentYear}년 ${currentMonth}월`; + + // 달력 그리드 초기화 + calendarGrid.innerHTML = ''; + + // 요일 헤더 + const weekdays = ['일', '월', '화', '수', '목', '금', '토']; + weekdays.forEach(day => { + const dayHeader = document.createElement('div'); + dayHeader.className = 'calendar-day-header'; + dayHeader.textContent = day; + calendarGrid.appendChild(dayHeader); + }); + + // 해당 월의 첫날과 마지막 날 + const firstDay = new Date(currentYear, currentMonth - 1, 1); + const lastDay = new Date(currentYear, currentMonth, 0); + const daysInMonth = lastDay.getDate(); + const startDayOfWeek = firstDay.getDay(); + + // 출근 데이터를 날짜별로 매핑 + const attendanceMap = {}; + if (attendanceData) { + attendanceData.forEach(record => { + const date = new Date(record.record_date); + const day = date.getDate(); + attendanceMap[day] = record; + }); + } + + // 빈 칸 (이전 달) + for (let i = 0; i < startDayOfWeek; i++) { + const emptyCell = document.createElement('div'); + emptyCell.className = 'calendar-day empty'; + calendarGrid.appendChild(emptyCell); + } + + // 날짜 칸 + for (let day = 1; day <= daysInMonth; day++) { + const dayCell = document.createElement('div'); + dayCell.className = 'calendar-day'; + + const record = attendanceMap[day]; + if (record) { + dayCell.classList.add('has-record', getStatusClass(record.attendance_type_code || record.type_code)); + dayCell.onclick = () => showDetailModal(record); + } + + dayCell.innerHTML = ` +
${day}
+ ${record ? `
${getStatusIcon(record)}
` : ''} + `; + + calendarGrid.appendChild(dayCell); + } +} + +/** + * 탭 전환 + */ +function switchTab(tabName) { + // 탭 버튼 활성화 토글 + document.querySelectorAll('.tab-btn').forEach(btn => { + btn.classList.toggle('active', btn.dataset.tab === tabName); + }); + + // 탭 컨텐츠 토글 + document.querySelectorAll('.tab-content').forEach(content => { + content.classList.remove('active'); + }); + + if (tabName === 'list') { + document.getElementById('listView').classList.add('active'); + } else if (tabName === 'calendar') { + document.getElementById('calendarView').classList.add('active'); + } +} + +/** + * 월 변경 + */ +function changeMonth(offset) { + currentMonth += offset; + + if (currentMonth < 1) { + currentMonth = 12; + currentYear--; + } else if (currentMonth > 12) { + currentMonth = 1; + currentYear++; + } + + // Select 박스 업데이트 + document.getElementById('yearSelect').value = currentYear; + document.getElementById('monthSelect').value = currentMonth; + + loadAttendanceData(); +} + +/** + * 상세 모달 표시 + */ +function showDetailModal(record) { + const modal = document.getElementById('detailModal'); + const modalBody = document.getElementById('modalBody'); + const modalTitle = document.getElementById('modalTitle'); + + const date = new Date(record.record_date); + modalTitle.textContent = `${formatDate(record.record_date)} 출근 상세`; + + modalBody.innerHTML = ` +
+
+ +
${formatDate(record.record_date)}
+
+
+ +
${getStatusText(record)}
+
+
+ +
${record.check_in_time || '기록 없음'}
+
+
+ +
${record.check_out_time || '기록 없음'}
+
+
+ +
${record.total_work_hours ? `${record.total_work_hours} 시간` : '계산 불가'}
+
+ ${record.vacation_type_name ? ` +
+ +
${record.vacation_type_name}
+
+ ` : ''} + ${record.notes ? ` +
+ +
${record.notes}
+
+ ` : ''} +
+ `; + + modal.style.display = 'block'; +} + +/** + * 모달 닫기 + */ +function closeDetailModal() { + document.getElementById('detailModal').style.display = 'none'; +} + +// 모달 외부 클릭 시 닫기 +window.onclick = function(event) { + const modal = document.getElementById('detailModal'); + if (event.target === modal) { + closeDetailModal(); + } +}; + +/** + * 유틸리티 함수들 + */ + +function formatDate(dateString) { + const date = new Date(dateString); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${month}/${day}`; +} + +function getStatusClass(typeCode) { + const typeMap = { + 'NORMAL': 'normal', + 'LATE': 'late', + 'EARLY_LEAVE': 'early', + 'ABSENT': 'absent', + 'VACATION': 'vacation' + }; + return typeMap[typeCode] || 'normal'; +} + +function getStatusText(record) { + if (record.vacation_type_name) { + return record.vacation_type_name; + } + return record.attendance_type_name || record.type_name || '정상'; +} + +function getStatusIcon(record) { + const typeCode = record.attendance_type_code || record.type_code; + const iconMap = { + 'NORMAL': '✓', + 'LATE': '⚠', + 'EARLY_LEAVE': '⏰', + 'ABSENT': '✗', + 'VACATION': '🌴' + }; + return iconMap[typeCode] || '✓'; +} + +function showLoading() { + const tbody = document.getElementById('attendanceTableBody'); + tbody.innerHTML = '데이터를 불러오는 중...'; +} + +function showError(message) { + const tbody = document.getElementById('attendanceTableBody'); + tbody.innerHTML = `${message}`; + + // 통계 초기화 + document.getElementById('totalHours').textContent = '-'; + document.getElementById('totalDays').textContent = '-'; + document.getElementById('remainingLeave').textContent = '-'; +} diff --git a/deploy/tkfb-package/web-ui/js/my-dashboard.js b/deploy/tkfb-package/web-ui/js/my-dashboard.js new file mode 100644 index 0000000..c61a5f5 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/my-dashboard.js @@ -0,0 +1,189 @@ +// My Dashboard - 나의 대시보드 JavaScript + +import './api-config.js'; + +// 전역 변수 +let currentYear = new Date().getFullYear(); +let currentMonth = new Date().getMonth() + 1; + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', async () => { + console.log('📊 나의 대시보드 초기화 시작'); + + await loadUserInfo(); + await loadVacationBalance(); + await loadMonthlyCalendar(); + await loadWorkHoursStats(); + await loadRecentReports(); + + console.log('✅ 나의 대시보드 초기화 완료'); +}); + +// 사용자 정보 로드 +async function loadUserInfo() { + try { + const response = await apiCall('/users/me', 'GET'); + const user = response.data || response; + + document.getElementById('userName').textContent = user.name || '사용자'; + document.getElementById('department').textContent = user.department || '-'; + document.getElementById('jobType').textContent = user.job_type || '-'; + document.getElementById('hireDate').textContent = user.hire_date || '-'; + } catch (error) { + console.error('사용자 정보 로드 실패:', error); + } +} + +// 연차 정보 로드 +async function loadVacationBalance() { + try { + const response = await apiCall('/users/me/vacation-balance', 'GET'); + const balance = response.data || response; + + const total = balance.total_annual_leave || 15; + const used = balance.used_annual_leave || 0; + const remaining = total - used; + + document.getElementById('totalLeave').textContent = total; + document.getElementById('usedLeave').textContent = used; + document.getElementById('remainingLeave').textContent = remaining; + + // 프로그레스 바 업데이트 + const percentage = (used / total) * 100; + document.getElementById('vacationProgress').style.width = `${percentage}%`; + } catch (error) { + console.error('연차 정보 로드 실패:', error); + } +} + +// 월별 캘린더 로드 +async function loadMonthlyCalendar() { + try { + const response = await apiCall( + `/users/me/attendance-records?year=${currentYear}&month=${currentMonth}`, + 'GET' + ); + const records = response.data || response; + + renderCalendar(currentYear, currentMonth, records); + document.getElementById('currentMonth').textContent = `${currentYear}년 ${currentMonth}월`; + } catch (error) { + console.error('캘린더 로드 실패:', error); + renderCalendar(currentYear, currentMonth, []); + } +} + +// 캘린더 렌더링 +function renderCalendar(year, month, records) { + const calendar = document.getElementById('calendar'); + const firstDay = new Date(year, month - 1, 1).getDay(); + const daysInMonth = new Date(year, month, 0).getDate(); + + let html = ''; + + // 요일 헤더 + const weekdays = ['일', '월', '화', '수', '목', '금', '토']; + weekdays.forEach(day => { + html += `
${day}
`; + }); + + // 빈 칸 + for (let i = 0; i < firstDay; i++) { + html += '
'; + } + + // 날짜 + for (let day = 1; day <= daysInMonth; day++) { + const dateStr = `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`; + const record = Array.isArray(records) ? records.find(r => r.record_date === dateStr) : null; + + let statusClass = ''; + if (record) { + const typeCode = record.attendance_type_code || record.type_code || ''; + statusClass = typeCode.toLowerCase(); + } + + html += ` +
+ ${day} +
+ `; + } + + calendar.innerHTML = html; +} + +// 근무 시간 통계 로드 +async function loadWorkHoursStats() { + try { + const response = await apiCall( + `/users/me/monthly-stats?year=${currentYear}&month=${currentMonth}`, + 'GET' + ); + const stats = response.data || response; + + document.getElementById('monthHours').textContent = stats.month_hours || 0; + document.getElementById('workDays').textContent = stats.work_days || 0; + } catch (error) { + console.error('근무 시간 통계 로드 실패:', error); + } +} + +// 최근 작업 보고서 로드 +async function loadRecentReports() { + try { + const endDate = new Date().toISOString().split('T')[0]; + const startDate = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000) + .toISOString().split('T')[0]; + + const response = await apiCall( + `/users/me/work-reports?startDate=${startDate}&endDate=${endDate}`, + 'GET' + ); + const reports = response.data || response; + + const list = document.getElementById('recentReportsList'); + + if (!Array.isArray(reports) || reports.length === 0) { + list.innerHTML = '

최근 7일간의 작업 보고서가 없습니다.

'; + return; + } + + list.innerHTML = reports.map(r => ` +
+ ${r.report_date} + ${r.project_name || 'N/A'} + ${r.work_hours}시간 +
+ `).join(''); + } catch (error) { + console.error('최근 작업 보고서 로드 실패:', error); + } +} + +// 이전 달 +function previousMonth() { + currentMonth--; + if (currentMonth < 1) { + currentMonth = 12; + currentYear--; + } + loadMonthlyCalendar(); + loadWorkHoursStats(); +} + +// 다음 달 +function nextMonth() { + currentMonth++; + if (currentMonth > 12) { + currentMonth = 1; + currentYear++; + } + loadMonthlyCalendar(); + loadWorkHoursStats(); +} + +// 전역 함수 노출 +window.previousMonth = previousMonth; +window.nextMonth = nextMonth; +window.loadMonthlyCalendar = loadMonthlyCalendar; diff --git a/deploy/tkfb-package/web-ui/js/my-profile.js b/deploy/tkfb-package/web-ui/js/my-profile.js new file mode 100644 index 0000000..222ab99 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/my-profile.js @@ -0,0 +1,122 @@ +// js/my-profile.js +// 내 프로필 페이지 JavaScript + +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +const token = ensureAuthenticated(); + +// 권한 레벨 한글 매핑 +const accessLevelMap = { + worker: '작업자', + group_leader: '그룹장', + support_team: '지원팀', + admin: '관리자', + system: '시스템 관리자' +}; + +// 프로필 데이터 로드 +async function loadProfile() { + try { + // 먼저 로컬 스토리지에서 기본 정보 표시 + const storedUser = JSON.parse(localStorage.getItem('user') || '{}'); + if (storedUser) { + updateProfileUI(storedUser); + } + + // API에서 최신 정보 가져오기 + const res = await fetch(`${API}/auth/me`, { + headers: getAuthHeaders() + }); + + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`); + } + + const userData = await res.json(); + + // 로컬 스토리지 업데이트 + const updatedUser = { + ...storedUser, + ...userData + }; + localStorage.setItem('user', JSON.stringify(updatedUser)); + + // UI 업데이트 + updateProfileUI(userData); + + } catch (error) { + console.error('프로필 로딩 실패:', error); + showError('프로필 정보를 불러오는데 실패했습니다.'); + } +} + +// 프로필 UI 업데이트 +function updateProfileUI(user) { + // 헤더 정보 + const avatar = document.getElementById('profileAvatar'); + if (avatar && user.name) { + // 이름의 첫 글자를 아바타로 사용 + const initial = user.name.charAt(0).toUpperCase(); + if (initial.match(/[A-Z가-힣]/)) { + avatar.textContent = initial; + } + } + + document.getElementById('profileName').textContent = user.name || user.username || '사용자'; + document.getElementById('profileRole').textContent = accessLevelMap[user.access_level] || user.access_level || '역할 미지정'; + + // 기본 정보 + document.getElementById('userId').textContent = user.user_id || '-'; + document.getElementById('username').textContent = user.username || '-'; + document.getElementById('fullName').textContent = user.name || '-'; + document.getElementById('accessLevel').textContent = accessLevelMap[user.access_level] || user.access_level || '-'; + document.getElementById('workerId').textContent = user.worker_id || '연결되지 않음'; + + // 날짜 포맷팅 + if (user.created_at) { + const createdDate = new Date(user.created_at); + document.getElementById('createdAt').textContent = formatDate(createdDate); + } + + if (user.last_login_at) { + const lastLoginDate = new Date(user.last_login_at); + document.getElementById('lastLogin').textContent = formatDateTime(lastLoginDate); + } else { + document.getElementById('lastLogin').textContent = '첫 로그인'; + } + + // 이메일 + document.getElementById('email').textContent = user.email || '등록되지 않음'; +} + +// 날짜 포맷팅 함수 +function formatDate(date) { + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: 'long', + day: 'numeric' + }); +} + +function formatDateTime(date) { + return date.toLocaleString('ko-KR', { + year: 'numeric', + month: 'long', + day: 'numeric', + hour: '2-digit', + minute: '2-digit' + }); +} + +// 에러 표시 +function showError(message) { + // 간단한 알림으로 처리 + alert('❌ ' + message); +} + +// 페이지 로드 시 실행 +document.addEventListener('DOMContentLoaded', () => { + console.log('👤 프로필 페이지 로드됨'); + loadProfile(); +}); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/navigation.js b/deploy/tkfb-package/web-ui/js/navigation.js new file mode 100644 index 0000000..18d0012 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/navigation.js @@ -0,0 +1,55 @@ +// /js/navigation.js +import { config } from './config.js'; + +/** + * 지정된 URL로 페이지를 리디렉션합니다. + * @param {string} url - 이동할 URL + */ +function redirect(url) { + window.location.href = url; +} + +/** + * 로그인 페이지로 리디렉션합니다. + */ +export function redirectToLogin() { + console.log(`🔄 로그인 페이지로 이동합니다: ${config.paths.loginPage}`); + redirect(config.paths.loginPage); +} + +/** + * 사용자의 기본 대시보드 페이지로 리디렉션합니다. + * 백엔드가 지정한 URL이 있으면 그곳으로, 없으면 기본 URL로 이동합니다. + * @param {string} [backendRedirectUrl=null] - 백엔드에서 전달받은 리디렉션 URL + */ +export function redirectToDefaultDashboard(backendRedirectUrl = null) { + const destination = backendRedirectUrl || config.paths.defaultDashboard; + console.log(`🔄 대시보드로 이동합니다: ${destination}`); + + // 부드러운 화면 전환 효과 + document.body.style.transition = 'opacity 0.3s ease-out'; + document.body.style.opacity = '0'; + + setTimeout(() => { + redirect(destination); + }, 300); +} + +/** + * 시스템 대시보드 페이지로 리디렉션합니다. + */ +export function redirectToSystemDashboard() { + console.log(`🔄 시스템 대시보드로 이동합니다: ${config.paths.systemDashboard}`); + redirect(config.paths.systemDashboard); +} + +/** + * 그룹 리더 대시보드 페이지로 리디렉션합니다. + */ +export function redirectToGroupLeaderDashboard() { + console.log(`🔄 그룹 리더 대시보드로 이동합니다: ${config.paths.groupLeaderDashboard}`); + redirect(config.paths.groupLeaderDashboard); +} + +// 필요에 따라 더 많은 리디렉션 함수를 추가할 수 있습니다. +// export function redirectToUserProfile() { ... } \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/nonconformity-list.js b/deploy/tkfb-package/web-ui/js/nonconformity-list.js new file mode 100644 index 0000000..b3a1402 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/nonconformity-list.js @@ -0,0 +1,222 @@ +/** + * 부적합 현황 페이지 JavaScript + * category_type=nonconformity 고정 필터 + */ + +const API_BASE = window.API_BASE_URL || 'http://localhost:20005/api'; +const CATEGORY_TYPE = 'nonconformity'; + +// 상태 한글 변환 +const STATUS_LABELS = { + reported: '신고', + received: '접수', + in_progress: '처리중', + completed: '완료', + closed: '종료' +}; + +// DOM 요소 +let issueList; +let filterStatus, filterStartDate, filterEndDate; + +// 초기화 +document.addEventListener('DOMContentLoaded', async () => { + issueList = document.getElementById('issueList'); + filterStatus = document.getElementById('filterStatus'); + filterStartDate = document.getElementById('filterStartDate'); + filterEndDate = document.getElementById('filterEndDate'); + + // 필터 이벤트 리스너 + filterStatus.addEventListener('change', loadIssues); + filterStartDate.addEventListener('change', loadIssues); + filterEndDate.addEventListener('change', loadIssues); + + // 데이터 로드 + await Promise.all([loadStats(), loadIssues()]); +}); + +/** + * 통계 로드 (부적합만) + */ +async function loadStats() { + try { + const response = await fetch(`${API_BASE}/work-issues/stats/summary?category_type=${CATEGORY_TYPE}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) { + document.getElementById('statsGrid').style.display = 'none'; + return; + } + + const data = await response.json(); + if (data.success && data.data) { + document.getElementById('statReported').textContent = data.data.reported || 0; + document.getElementById('statReceived').textContent = data.data.received || 0; + document.getElementById('statProgress').textContent = data.data.in_progress || 0; + document.getElementById('statCompleted').textContent = data.data.completed || 0; + } + } catch (error) { + console.error('통계 로드 실패:', error); + document.getElementById('statsGrid').style.display = 'none'; + } +} + +/** + * 부적합 목록 로드 + */ +async function loadIssues() { + try { + // 필터 파라미터 구성 (category_type 고정) + const params = new URLSearchParams(); + params.append('category_type', CATEGORY_TYPE); + + if (filterStatus.value) params.append('status', filterStatus.value); + if (filterStartDate.value) params.append('start_date', filterStartDate.value); + if (filterEndDate.value) params.append('end_date', filterEndDate.value); + + const response = await fetch(`${API_BASE}/work-issues?${params.toString()}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) throw new Error('목록 조회 실패'); + + const data = await response.json(); + if (data.success) { + renderIssues(data.data || []); + } + } catch (error) { + console.error('부적합 목록 로드 실패:', error); + issueList.innerHTML = ` +
+
목록을 불러올 수 없습니다
+

잠시 후 다시 시도해주세요.

+
+ `; + } +} + +/** + * 부적합 목록 렌더링 + */ +function renderIssues(issues) { + if (issues.length === 0) { + issueList.innerHTML = ` +
+
등록된 부적합 신고가 없습니다
+

새로운 부적합을 신고하려면 '부적합 신고' 버튼을 클릭하세요.

+
+ `; + return; + } + + const baseUrl = (window.API_BASE_URL || 'http://localhost:20005').replace('/api', ''); + + issueList.innerHTML = issues.map(issue => { + const reportDate = new Date(issue.report_date).toLocaleString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit' + }); + + // 위치 정보 (escaped) + let location = escapeHtml(issue.custom_location || ''); + if (issue.factory_name) { + location = escapeHtml(issue.factory_name); + if (issue.workplace_name) { + location += ` - ${escapeHtml(issue.workplace_name)}`; + } + } + + // 신고 제목 (항목명 또는 카테고리명) + const title = escapeHtml(issue.issue_item_name || issue.issue_category_name || '부적합 신고'); + const categoryName = escapeHtml(issue.issue_category_name || '부적합'); + + // 사진 목록 + const photos = [ + issue.photo_path1, + issue.photo_path2, + issue.photo_path3, + issue.photo_path4, + issue.photo_path5 + ].filter(Boolean); + + // 안전한 값들 + const safeReportId = parseInt(issue.report_id) || 0; + const validStatuses = ['reported', 'received', 'in_progress', 'completed', 'closed']; + const safeStatus = validStatuses.includes(issue.status) ? issue.status : 'reported'; + const reporterName = escapeHtml(issue.reporter_full_name || issue.reporter_name || '-'); + const assignedName = issue.assigned_full_name ? escapeHtml(issue.assigned_full_name) : ''; + + return ` +
+
+ #${safeReportId} + ${STATUS_LABELS[issue.status] || escapeHtml(issue.status || '-')} +
+ +
+ ${categoryName} + ${title} +
+ +
+ + + + + + ${reporterName} + + + + + + + + + ${reportDate} + + ${location ? ` + + + + + + ${location} + + ` : ''} + ${assignedName ? ` + + + + + + + + 담당: ${assignedName} + + ` : ''} +
+ + ${photos.length > 0 ? ` +
+ ${photos.slice(0, 3).map(p => ` + 신고 사진 + `).join('')} + ${photos.length > 3 ? `+${photos.length - 3}` : ''} +
+ ` : ''} +
+ `; + }).join(''); +} + +/** + * 상세 보기 + */ +function viewIssue(reportId) { + window.location.href = `/pages/safety/issue-detail.html?id=${reportId}&from=nonconformity`; +} diff --git a/deploy/tkfb-package/web-ui/js/page-access-cache.js b/deploy/tkfb-package/web-ui/js/page-access-cache.js new file mode 100644 index 0000000..bc1cfc2 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/page-access-cache.js @@ -0,0 +1,119 @@ +// /js/page-access-cache.js +// 페이지 권한 캐시 - 중복 API 호출 방지 + +const CACHE_KEY = 'userPageAccess'; +const CACHE_DURATION = 10 * 60 * 1000; // 10분 + +// 진행 중인 API 호출 Promise (중복 방지) +let fetchPromise = null; + +/** + * 페이지 접근 권한 데이터 가져오기 (캐시 우선) + * @param {object} currentUser - 현재 사용자 객체 + * @returns {Promise} 접근 가능한 페이지 목록 + */ +export async function getPageAccess(currentUser) { + if (!currentUser || !currentUser.user_id) { + return null; + } + + // 1. 캐시 확인 + const cached = localStorage.getItem(CACHE_KEY); + if (cached) { + try { + const cacheData = JSON.parse(cached); + if (Date.now() - cacheData.timestamp < CACHE_DURATION) { + return cacheData.pages; + } + } catch (e) { + localStorage.removeItem(CACHE_KEY); + } + } + + // 2. 이미 API 호출 중이면 기존 Promise 반환 + if (fetchPromise) { + return fetchPromise; + } + + // 3. 새로운 API 호출 + fetchPromise = (async () => { + try { + const response = await fetch(`${window.API_BASE_URL}/users/${currentUser.user_id}/page-access`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${localStorage.getItem('token')}` + } + }); + + if (!response.ok) { + console.error('페이지 권한 조회 실패:', response.status); + return null; + } + + const data = await response.json(); + const accessiblePages = data.data.pageAccess || []; + + // 캐시 저장 + localStorage.setItem(CACHE_KEY, JSON.stringify({ + pages: accessiblePages, + timestamp: Date.now() + })); + + return accessiblePages; + } catch (error) { + console.error('페이지 권한 조회 오류:', error); + return null; + } finally { + fetchPromise = null; + } + })(); + + return fetchPromise; +} + +/** + * 특정 페이지에 대한 접근 권한 확인 + * @param {string} pageKey - 페이지 키 + * @param {object} currentUser - 현재 사용자 객체 + * @returns {Promise} + */ +export async function hasPageAccess(pageKey, currentUser) { + // Admin은 모든 페이지 접근 가능 + if (currentUser.role === 'Admin' || currentUser.role === 'System Admin') { + return true; + } + + // 대시보드, 프로필은 모든 사용자 접근 가능 + if (pageKey === 'dashboard' || (pageKey && pageKey.startsWith('profile.'))) { + return true; + } + + const pages = await getPageAccess(currentUser); + if (!pages) return false; + + const pageAccess = pages.find(p => p.page_key === pageKey); + return pageAccess && pageAccess.can_access === 1; +} + +/** + * 접근 가능한 페이지 키 목록 반환 + * @param {object} currentUser + * @returns {Promise} + */ +export async function getAccessiblePageKeys(currentUser) { + const pages = await getPageAccess(currentUser); + if (!pages) return []; + + return pages + .filter(p => p.can_access === 1) + .map(p => p.page_key); +} + +/** + * 캐시 초기화 + */ +export function clearPageAccessCache() { + localStorage.removeItem(CACHE_KEY); + fetchPromise = null; +} diff --git a/deploy/tkfb-package/web-ui/js/project-analysis-api.js b/deploy/tkfb-package/web-ui/js/project-analysis-api.js new file mode 100644 index 0000000..4ee5910 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/project-analysis-api.js @@ -0,0 +1,43 @@ +// /js/project-analysis-api.js +import { apiGet } from './api-helper.js'; + +/** + * 분석 페이지에 필요한 모든 초기 데이터(마스터 데이터)를 병렬로 가져옵니다. + * 이 데이터는 필터 옵션을 채우는 데 사용됩니다. + * @returns {Promise<{workers: Array, projects: Array, tasks: Array}>} + */ +export async function getMasterData() { + try { + const [allWorkers, projects, tasks] = await Promise.all([ + apiGet('/workers'), + apiGet('/projects'), + apiGet('/tasks') + ]); + + // 활성화된 작업자만 필터링 + const workers = allWorkers.filter(worker => { + return worker.status === 'active' || worker.is_active === 1 || worker.is_active === true; + }); + + return { workers, projects, tasks }; + } catch (error) { + console.error('마스터 데이터 로딩 실패:', error); + throw new Error('필터링에 필요한 데이터를 불러오는 데 실패했습니다.'); + } +} + +/** + * 지정된 기간의 모든 분석 데이터를 백엔드에서 직접 가져옵니다. + * @param {string} startDate - 시작일 (YYYY-MM-DD) + * @param {string} endDate - 종료일 (YYYY-MM-DD) + * @returns {Promise} - 요약, 집계, 상세 데이터가 모두 포함된 분석 결과 객체 + */ +export async function getAnalysisReport(startDate, endDate) { + try { + const analysisData = await apiGet(`/analysis?startDate=${startDate}&endDate=${endDate}`); + return analysisData; + } catch (error) { + console.error('분석 보고서 데이터 로딩 실패:', error); + throw new Error(`분석 데이터를 불러오는 데 실패했습니다: ${error.message}`); + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/project-analysis-ui.js b/deploy/tkfb-package/web-ui/js/project-analysis-ui.js new file mode 100644 index 0000000..75c49e6 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/project-analysis-ui.js @@ -0,0 +1,170 @@ +// /js/project-analysis-ui.js + +const DOM = { + // 기간 설정 + startDate: document.getElementById('startDate'), + endDate: document.getElementById('endDate'), + // 카드 및 필터 + analysisCard: document.getElementById('analysisCard'), + summaryCards: document.getElementById('summaryCards'), + projectFilter: document.getElementById('projectFilter'), + workerFilter: document.getElementById('workerFilter'), + taskFilter: document.getElementById('taskFilter'), + // 탭 + tabButtons: document.querySelectorAll('.tab-button'), + tabContents: document.querySelectorAll('.analysis-content'), + // 테이블 본문 + projectTableBody: document.getElementById('projectTableBody'), + workerTableBody: document.getElementById('workerTableBody'), + taskTableBody: document.getElementById('taskTableBody'), + detailTableBody: document.getElementById('detailTableBody'), +}; + +/** + * 날짜 input 값을 YYYY-MM-DD 형식의 문자열로 반환 + * @param {Date} date - 날짜 객체 + * @returns {string} - 포맷된 날짜 문자열 + */ +const formatDate = (date) => date.toISOString().split('T')[0]; + +/** + * UI상의 날짜 선택기를 기본값(이번 달)으로 설정합니다. + */ +export function setDefaultDates() { + const now = new Date(); + const firstDay = new Date(now.getFullYear(), now.getMonth(), 1); + const lastDay = new Date(now.getFullYear(), now.getMonth() + 1, 0); + DOM.startDate.value = formatDate(firstDay); + DOM.endDate.value = formatDate(lastDay); +} + +/** + * 분석 실행 전후의 UI 상태를 관리합니다 (로딩 표시 등) + * @param {'loading' | 'data' | 'no-data' | 'error'} state - UI 상태 + */ +export function setUIState(state) { + const projectCols = 5; + const detailCols = 8; + const messages = { + loading: '📊 데이터 분석 중...', + 'no-data': '해당 기간에 분석할 데이터가 없습니다.', + error: '오류가 발생했습니다. 다시 시도해주세요.', + }; + + if (state === 'data') { + DOM.analysisCard.style.display = 'block'; + } else { + const message = messages[state]; + const html = `${message}`; + const detailHtml = `${message}`; + DOM.projectTableBody.innerHTML = html; + DOM.workerTableBody.innerHTML = html; + DOM.taskTableBody.innerHTML = html; + DOM.detailTableBody.innerHTML = detailHtml; + DOM.summaryCards.innerHTML = ''; + DOM.analysisCard.style.display = 'block'; + } +} + + +/** + * 마스터 데이터를 기반으로 필터 옵션을 채웁니다. + * @param {{workers: Array, projects: Array, tasks: Array}} masterData - 마스터 데이터 + */ +export function updateFilterOptions(masterData) { + const createOptions = (items, key, value) => { + let html = ''; + items.forEach(item => { + html += ``; + }); + return html; + }; + DOM.projectFilter.innerHTML = createOptions(masterData.projects, 'project_id', 'project_name'); + DOM.workerFilter.innerHTML = createOptions(masterData.workers, 'worker_id', 'worker_name'); + DOM.taskFilter.innerHTML = createOptions(masterData.tasks, 'task_id', 'category'); +} + +/** + * 요약 카드 데이터를 렌더링합니다. + * @param {object} summary - 요약 데이터 + */ +export function renderSummary(summary) { + DOM.summaryCards.innerHTML = ` +

총 투입 시간

${(summary.totalHours || 0).toFixed(1)}h
+

참여 프로젝트

${summary.totalProjects || 0}개
+

참여 인원

${summary.totalWorkers || 0}명
+

작업 분류

${summary.totalTasks || 0}개
+ `; +} + +/** + * 집계된 데이터를 받아 테이블을 렌더링하는 범용 함수 + * @param {HTMLElement} tableBodyEl - 렌더링할 테이블의 tbody 요소 + * @param {Array} data - 집계된 데이터 배열 + * @param {function} rowRenderer - 각 행을 렌더링하는 함수 + */ +function renderTable(tableBodyEl, data, rowRenderer) { + if (!data || data.length === 0) { + tableBodyEl.innerHTML = '데이터가 없습니다'; + return; + } + tableBodyEl.innerHTML = data.map(rowRenderer).join(''); +} + +/** + * 집계된 데이터를 기반으로 모든 분석 테이블을 렌더링합니다. + * @param {object} analysis - 프로젝트/작업자/작업별 집계 데이터 + */ +export function renderAnalysisTables(analysis) { + renderTable(DOM.projectTableBody, analysis.byProject, (p, i) => ` + ${i + 1}${p.name}${p.hours}h + ${p.percentage}%${p.participants}명`); + + renderTable(DOM.workerTableBody, analysis.byWorker, (w, i) => ` + ${i + 1}${w.name}${w.hours}h + ${w.percentage}%${w.participants}개`); + + renderTable(DOM.taskTableBody, analysis.byTask, (t, i) => ` + ${i + 1}${t.name}${t.hours}h + ${t.percentage}%${t.participants}명`); +} + +/** + * 상세 내역 테이블을 렌더링합니다. + * @param {Array} detailData - 필터링된 상세 데이터 + */ +export function renderDetailTable(detailData) { + if (!detailData || detailData.length === 0) { + DOM.detailTableBody.innerHTML = '데이터가 없습니다'; + return; + } + DOM.detailTableBody.innerHTML = detailData.map((item, index) => ` + ${index + 1}${formatDate(new Date(item.date))} + ${item.project_name} + ${item.worker_name}${item.task_category} + ${item.work_details || '정상근무'} + ${item.work_hours}h + ${(item.memo || '-').substring(0, 20)}` + ).join(''); +} + +/** + * 탭 UI를 제어합니다. + * @param {string} tabName - 활성화할 탭의 이름 + */ +export function switchTab(tabName) { + DOM.tabButtons.forEach(btn => btn.classList.toggle('active', btn.dataset.tab === tabName)); + DOM.tabContents.forEach(content => content.classList.toggle('active', content.id === `${tabName}Tab`)); +} + +/** + * 사용자로부터 현재 필터 값을 가져옵니다. + * @returns {{project: string, worker: string, task: string}} + */ +export function getCurrentFilters() { + return { + project: DOM.projectFilter.value, + worker: DOM.workerFilter.value, + task: DOM.taskFilter.value, + }; +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/project-analysis.js b/deploy/tkfb-package/web-ui/js/project-analysis.js new file mode 100644 index 0000000..fcad431 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/project-analysis.js @@ -0,0 +1,106 @@ +// /js/project-analysis.js +import { getMasterData, getAnalysisReport } from './project-analysis-api.js'; +import { + setDefaultDates, + setUIState, + updateFilterOptions, + renderSummary, + renderAnalysisTables, + renderDetailTable, + switchTab, +} from './project-analysis-ui.js'; + +// DOM 요소 참조 (이벤트 리스너 설정용) +const DOM = { + startDate: document.getElementById('startDate'), + endDate: document.getElementById('endDate'), + analyzeBtn: document.getElementById('analyzeBtn'), + quickMonthBtn: document.getElementById('quickMonth'), + quickLastMonthBtn: document.getElementById('quickLastMonth'), + // 필터 버튼은 현재 아무 기능도 하지 않으므로 주석 처리 또는 제거 가능 + // applyFilterBtn: document.getElementById('applyFilter'), + tabButtons: document.querySelectorAll('.tab-button'), +}; + +/** + * 분석 실행 버튼 클릭 이벤트 핸들러 + */ +async function handleAnalysis() { + const startDate = DOM.startDate.value; + const endDate = DOM.endDate.value; + + if (!startDate || !endDate || startDate > endDate) { + alert('올바른 분석 기간을 설정해주세요.'); + return; + } + + setUIState('loading'); + try { + const analysisResult = await getAnalysisReport(startDate, endDate); + + if (!analysisResult.summary.totalHours) { + setUIState('no-data'); + return; + } + + renderSummary(analysisResult.summary); + renderAnalysisTables(analysisResult); + renderDetailTable(analysisResult.details); + setUIState('data'); + + } catch (error) { + console.error('분석 처리 중 오류:', error); + setUIState('error'); + alert(error.message); + } +} + +/** + * 빠른 날짜 설정 버튼 핸들러 + */ +function handleQuickDate(monthType) { + const now = new Date(); + const year = now.getFullYear(); + const month = now.getMonth(); + const firstDay = monthType === 'this' ? new Date(year, month, 1) : new Date(year, month - 1, 1); + const lastDay = monthType === 'this' ? new Date(year, month + 1, 0) : new Date(year, month, 0); + + DOM.startDate.value = firstDay.toISOString().split('T')[0]; + DOM.endDate.value = lastDay.toISOString().split('T')[0]; +} + +/** + * 이벤트 리스너 설정 + */ +function setupEventListeners() { + DOM.analyzeBtn.addEventListener('click', handleAnalysis); + DOM.quickMonthBtn.addEventListener('click', () => handleQuickDate('this')); + DOM.quickLastMonthBtn.addEventListener('click', () => handleQuickDate('last')); + + DOM.tabButtons.forEach(btn => { + btn.addEventListener('click', () => switchTab(btn.dataset.tab)); + }); + + // 프론트엔드 필터링은 제거되었으므로 관련 이벤트 리스너는 주석 처리합니다. + // DOM.applyFilterBtn.addEventListener('click', ...); +} + +/** + * 페이지 초기화 함수 + */ +async function initialize() { + setDefaultDates(); + setupEventListeners(); + + try { + const masterData = await getMasterData(); + updateFilterOptions(masterData); + await handleAnalysis(); + } catch (error) { + alert(error.message); + setUIState('error'); + } +} + +// 초기화 실행 +document.addEventListener('DOMContentLoaded', initialize); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/project-management.js b/deploy/tkfb-package/web-ui/js/project-management.js new file mode 100644 index 0000000..b6fbe26 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/project-management.js @@ -0,0 +1,625 @@ +// 프로젝트 관리 페이지 JavaScript + +// 전역 변수 +let allProjects = []; +let filteredProjects = []; +let currentEditingProject = null; +let currentStatusFilter = 'all'; // 'all', 'active', 'inactive' + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', function() { + console.log('📁 프로젝트 관리 페이지 초기화 시작'); + + initializePage(); + loadProjects(); +}); + +// 페이지 초기화 +function initializePage() { + // 시간 업데이트 시작 + updateCurrentTime(); + setInterval(updateCurrentTime, 1000); + + // 사용자 정보 업데이트 + updateUserInfo(); + + // 프로필 메뉴 토글 + setupProfileMenu(); + + // 로그아웃 버튼 + setupLogoutButton(); + + // 검색 입력 이벤트 + setupSearchInput(); +} + +// 현재 시간 업데이트 (시 분 초 형식으로 고정) +function updateCurrentTime() { + const now = new Date(); + const hours = String(now.getHours()).padStart(2, '0'); + const minutes = String(now.getMinutes()).padStart(2, '0'); + const seconds = String(now.getSeconds()).padStart(2, '0'); + const timeString = `${hours}시 ${minutes}분 ${seconds}초`; + + const timeElement = document.getElementById('timeValue'); + if (timeElement) { + timeElement.textContent = timeString; + } +} + +// navbar/sidebar는 app-init.js에서 공통 처리 +function updateUserInfo() { + // app-init.js가 navbar 사용자 정보를 처리 +} + +// 프로필 메뉴 설정 +function setupProfileMenu() { + const userProfile = document.getElementById('userProfile'); + const profileMenu = document.getElementById('profileMenu'); + + if (userProfile && profileMenu) { + userProfile.addEventListener('click', function(e) { + e.stopPropagation(); + const isVisible = profileMenu.style.display === 'block'; + profileMenu.style.display = isVisible ? 'none' : 'block'; + }); + + // 외부 클릭 시 메뉴 닫기 + document.addEventListener('click', function() { + profileMenu.style.display = 'none'; + }); + } +} + +// 로그아웃 버튼 설정 +function setupLogoutButton() { + const logoutBtn = document.getElementById('logoutBtn'); + if (logoutBtn) { + logoutBtn.addEventListener('click', function() { + if (confirm('로그아웃 하시겠습니까?')) { + localStorage.removeItem('token'); + localStorage.removeItem('user'); + localStorage.removeItem('userInfo'); + window.location.href = '/index.html'; + } + }); + } +} + +// 검색 입력 설정 +function setupSearchInput() { + const searchInput = document.getElementById('searchInput'); + if (searchInput) { + searchInput.addEventListener('input', function() { + searchProjects(); + }); + + searchInput.addEventListener('keypress', function(e) { + if (e.key === 'Enter') { + searchProjects(); + } + }); + } +} + +// 프로젝트 목록 로드 +async function loadProjects() { + try { + console.log('📊 프로젝트 목록 로딩 시작'); + + const response = await apiCall('/projects', 'GET'); + + console.log('📊 API 응답 구조:', response); + + // API 응답이 { success: true, data: [...] } 형태인 경우 처리 + let projectData = []; + if (response && response.success && Array.isArray(response.data)) { + projectData = response.data; + } else if (Array.isArray(response)) { + projectData = response; + } else { + console.warn('프로젝트 데이터가 배열이 아닙니다:', response); + projectData = []; + } + + allProjects = projectData; + + console.log(`✅ 프로젝트 ${allProjects.length}개 로드 완료`); + + // 초기 필터 적용 + applyAllFilters(); + updateStatCardActiveState(); + + } catch (error) { + console.error('프로젝트 로딩 오류:', error); + showToast('프로젝트 목록을 불러오는데 실패했습니다.', 'error'); + allProjects = []; + filteredProjects = []; + renderProjects(); + } +} + +// 프로젝트 목록 렌더링 +function renderProjects() { + const projectsGrid = document.getElementById('projectsGrid'); + const emptyState = document.getElementById('emptyState'); + + if (!projectsGrid || !emptyState) return; + + if (filteredProjects.length === 0) { + projectsGrid.style.display = 'none'; + emptyState.style.display = 'block'; + return; + } + + projectsGrid.style.display = 'grid'; + emptyState.style.display = 'none'; + + const projectsHtml = filteredProjects.map(project => { + // 프로젝트 상태 아이콘 및 텍스트 + const statusMap = { + 'planning': { icon: '📋', text: '계획', color: '#6b7280' }, + 'active': { icon: '🚀', text: '진행중', color: '#10b981' }, + 'completed': { icon: '✅', text: '완료', color: '#3b82f6' }, + 'cancelled': { icon: '❌', text: '취소', color: '#ef4444' } + }; + + const validStatuses = ['planning', 'active', 'completed', 'cancelled']; + const safeProjectStatus = validStatuses.includes(project.project_status) ? project.project_status : 'active'; + const status = statusMap[safeProjectStatus]; + // is_active 값 처리 (DB에서 0/1로 오는 경우 대비) + const isInactive = project.is_active === 0 || project.is_active === false || project.is_active === 'false'; + + // XSS 방지를 위한 안전한 값 + const safeProjectId = parseInt(project.project_id) || 0; + const safeJobNo = escapeHtml(project.job_no || 'Job No. 없음'); + const safeProjectName = escapeHtml(project.project_name || '-'); + const safePm = escapeHtml(project.pm || '-'); + const safeSite = escapeHtml(project.site || '-'); + + console.log('🎨 카드 렌더링:', { + project_id: project.project_id, + project_name: project.project_name, + is_active_raw: project.is_active, + isInactive: isInactive + }); + + return ` +
+ ${isInactive ? '
🚫 비활성화됨
' : ''} +
+
+
${safeJobNo}
+

+ ${safeProjectName} + ${isInactive ? '(비활성)' : ''} +

+
+
+ 상태 + ${status.icon} ${status.text} +
+
+ 계약일 + ${project.contract_date ? formatDate(project.contract_date) : '-'} +
+
+ 납기일 + ${project.due_date ? formatDate(project.due_date) : '-'} +
+
+ PM + ${safePm} +
+
+ 현장 + ${safeSite} +
+ ${isInactive ? '
⚠️ 작업보고서에서 숨김
' : ''} +
+
+
+ + +
+
+
+ `; + }).join(''); + + projectsGrid.innerHTML = projectsHtml; +} + +// 프로젝트 통계 업데이트 +function updateProjectStats() { + const activeProjects = filteredProjects.filter(p => p.is_active === 1 || p.is_active === true); + const inactiveProjects = filteredProjects.filter(p => p.is_active === 0 || p.is_active === false); + + const activeProjectsElement = document.getElementById('activeProjects'); + const inactiveProjectsElement = document.getElementById('inactiveProjects'); + const totalProjectsElement = document.getElementById('totalProjects'); + + if (activeProjectsElement) { + activeProjectsElement.textContent = activeProjects.length; + } + + if (inactiveProjectsElement) { + inactiveProjectsElement.textContent = inactiveProjects.length; + } + + if (totalProjectsElement) { + totalProjectsElement.textContent = filteredProjects.length; + } + + console.log('📊 프로젝트 통계:', { + 전체: filteredProjects.length, + 활성: activeProjects.length, + 비활성: inactiveProjects.length + }); +} + +// 날짜 포맷팅 +function formatDate(dateString) { + if (!dateString) return ''; + + const date = new Date(dateString); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit' + }); +} + +// 상태별 필터링 +function filterByStatus(status) { + currentStatusFilter = status; + + // 통계 카드 활성화 상태 업데이트 + updateStatCardActiveState(); + + // 필터링 적용 + applyAllFilters(); + + console.log(`🔍 상태 필터 적용: ${status}`); +} + +// 통계 카드 활성화 상태 업데이트 +function updateStatCardActiveState() { + // 모든 통계 카드에서 active 클래스 제거 + document.querySelectorAll('.stat-item').forEach(item => { + item.classList.remove('active'); + }); + + // 현재 선택된 필터에 active 클래스 추가 + const activeCard = document.querySelector(`.${currentStatusFilter === 'active' ? 'active-stat' : + currentStatusFilter === 'inactive' ? 'inactive-stat' : 'total-stat'}`); + if (activeCard) { + activeCard.classList.add('active'); + } +} + +// 모든 필터 적용 (검색 + 상태) +function applyAllFilters() { + const searchInput = document.getElementById('searchInput'); + const searchTerm = searchInput ? searchInput.value.toLowerCase().trim() : ''; + + // 1단계: 상태 필터링 + let statusFiltered = [...allProjects]; + if (currentStatusFilter === 'active') { + statusFiltered = allProjects.filter(p => p.is_active === 1 || p.is_active === true); + } else if (currentStatusFilter === 'inactive') { + statusFiltered = allProjects.filter(p => p.is_active === 0 || p.is_active === false); + } + + // 2단계: 검색 필터링 + if (!searchTerm) { + filteredProjects = statusFiltered; + } else { + filteredProjects = statusFiltered.filter(project => + project.project_name.toLowerCase().includes(searchTerm) || + (project.job_no && project.job_no.toLowerCase().includes(searchTerm)) || + (project.pm && project.pm.toLowerCase().includes(searchTerm)) || + (project.site && project.site.toLowerCase().includes(searchTerm)) + ); + } + + renderProjects(); + updateProjectStats(); +} + +// 프로젝트 검색 (기존 함수 수정) +function searchProjects() { + applyAllFilters(); +} + +// 프로젝트 필터링 +function filterProjects() { + const statusFilter = document.getElementById('statusFilter'); + const selectedStatus = statusFilter ? statusFilter.value : ''; + + // 현재는 상태 필드가 없으므로 기본 필터링만 적용 + searchProjects(); +} + +// 프로젝트 정렬 +function sortProjects() { + const sortBy = document.getElementById('sortBy'); + const sortField = sortBy ? sortBy.value : 'created_at'; + + filteredProjects.sort((a, b) => { + switch (sortField) { + case 'project_name': + return a.project_name.localeCompare(b.project_name); + case 'due_date': + if (!a.due_date && !b.due_date) return 0; + if (!a.due_date) return 1; + if (!b.due_date) return -1; + return new Date(a.due_date) - new Date(b.due_date); + case 'created_at': + default: + return new Date(b.created_at || 0) - new Date(a.created_at || 0); + } + }); + + renderProjects(); +} + +// 프로젝트 목록 새로고침 +async function refreshProjectList() { + const refreshBtn = document.querySelector('.btn-secondary'); + if (refreshBtn) { + const originalText = refreshBtn.innerHTML; + refreshBtn.innerHTML = '새로고침 중...'; + refreshBtn.disabled = true; + + await loadProjects(); + + refreshBtn.innerHTML = originalText; + refreshBtn.disabled = false; + } else { + await loadProjects(); + } + + showToast('프로젝트 목록이 새로고침되었습니다.', 'success'); +} + +// 프로젝트 모달 열기 +function openProjectModal(project = null) { + const modal = document.getElementById('projectModal'); + const modalTitle = document.getElementById('modalTitle'); + const deleteBtn = document.getElementById('deleteProjectBtn'); + + if (!modal) return; + + currentEditingProject = project; + + if (project) { + // 수정 모드 + modalTitle.textContent = '프로젝트 수정'; + deleteBtn.style.display = 'inline-flex'; + + // 폼에 데이터 채우기 + document.getElementById('projectId').value = project.project_id; + document.getElementById('jobNo').value = project.job_no || ''; + document.getElementById('projectName').value = project.project_name || ''; + document.getElementById('contractDate').value = project.contract_date || ''; + document.getElementById('dueDate').value = project.due_date || ''; + document.getElementById('deliveryMethod').value = project.delivery_method || ''; + document.getElementById('site').value = project.site || ''; + document.getElementById('pm').value = project.pm || ''; + document.getElementById('projectStatus').value = project.project_status || 'active'; + document.getElementById('completedDate').value = project.completed_date || ''; + // is_active 값 처리 (DB에서 0/1로 오는 경우 대비) + const isActiveValue = project.is_active === 1 || project.is_active === true || project.is_active === 'true'; + document.getElementById('isActive').checked = isActiveValue; + + console.log('🔧 프로젝트 로드:', { + project_id: project.project_id, + project_name: project.project_name, + is_active_raw: project.is_active, + is_active_processed: isActiveValue + }); + } else { + // 신규 등록 모드 + modalTitle.textContent = '새 프로젝트 등록'; + deleteBtn.style.display = 'none'; + + // 폼 초기화 + document.getElementById('projectForm').reset(); + document.getElementById('projectId').value = ''; + } + + modal.style.display = 'flex'; + document.body.style.overflow = 'hidden'; + + // 첫 번째 입력 필드에 포커스 + setTimeout(() => { + const firstInput = document.getElementById('jobNo'); + if (firstInput) firstInput.focus(); + }, 100); +} + +// 프로젝트 모달 닫기 +function closeProjectModal() { + const modal = document.getElementById('projectModal'); + if (modal) { + modal.style.display = 'none'; + document.body.style.overflow = ''; + currentEditingProject = null; + } +} + +// 프로젝트 편집 +function editProject(projectId) { + const project = allProjects.find(p => p.project_id === projectId); + if (project) { + openProjectModal(project); + } else { + showToast('프로젝트를 찾을 수 없습니다.', 'error'); + } +} + +// 프로젝트 저장 +async function saveProject() { + try { + const form = document.getElementById('projectForm'); + const formData = new FormData(form); + + const projectData = { + job_no: document.getElementById('jobNo').value.trim(), + project_name: document.getElementById('projectName').value.trim(), + contract_date: document.getElementById('contractDate').value || null, + due_date: document.getElementById('dueDate').value || null, + delivery_method: document.getElementById('deliveryMethod').value || null, + site: document.getElementById('site').value.trim() || null, + pm: document.getElementById('pm').value.trim() || null, + project_status: document.getElementById('projectStatus').value || 'active', + completed_date: document.getElementById('completedDate').value || null, + is_active: document.getElementById('isActive').checked ? 1 : 0 + }; + + console.log('💾 저장할 프로젝트 데이터:', projectData); + + // 필수 필드 검증 + if (!projectData.job_no || !projectData.project_name) { + showToast('Job No.와 프로젝트명은 필수 입력 항목입니다.', 'error'); + return; + } + + const projectId = document.getElementById('projectId').value; + let response; + + if (projectId) { + // 수정 + response = await apiCall(`/projects/${projectId}`, 'PUT', projectData); + } else { + // 신규 등록 + response = await apiCall('/projects', 'POST', projectData); + } + + if (response && (response.success || response.project_id)) { + const action = projectId ? '수정' : '등록'; + showToast(`프로젝트가 성공적으로 ${action}되었습니다.`, 'success'); + + closeProjectModal(); + await loadProjects(); + } else { + throw new Error(response?.message || '저장에 실패했습니다.'); + } + + } catch (error) { + console.error('프로젝트 저장 오류:', error); + showToast(error.message || '프로젝트 저장 중 오류가 발생했습니다.', 'error'); + } +} + +// 프로젝트 삭제 확인 +function confirmDeleteProject(projectId) { + const project = allProjects.find(p => p.project_id === projectId); + if (!project) { + showToast('프로젝트를 찾을 수 없습니다.', 'error'); + return; + } + + if (confirm(`"${project.project_name}" 프로젝트를 정말 삭제하시겠습니까?\n\n⚠️ 삭제된 프로젝트는 복구할 수 없습니다.`)) { + deleteProjectById(projectId); + } +} + +// 프로젝트 삭제 (수정 모드에서) +function deleteProject() { + if (currentEditingProject) { + confirmDeleteProject(currentEditingProject.project_id); + } +} + +// 프로젝트 삭제 실행 +async function deleteProjectById(projectId) { + try { + const response = await apiCall(`/projects/${projectId}`, 'DELETE'); + + if (response && response.success) { + showToast('프로젝트가 성공적으로 삭제되었습니다.', 'success'); + + closeProjectModal(); + await loadProjects(); + } else { + throw new Error(response?.message || '삭제에 실패했습니다.'); + } + + } catch (error) { + console.error('프로젝트 삭제 오류:', error); + showToast(error.message || '프로젝트 삭제 중 오류가 발생했습니다.', 'error'); + } +} + +// 토스트 메시지 표시 +function showToast(message, type = 'info') { + // 기존 토스트 제거 + const existingToast = document.querySelector('.toast'); + if (existingToast) { + existingToast.remove(); + } + + // 새 토스트 생성 + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + toast.textContent = message; + + // 스타일 적용 + Object.assign(toast.style, { + position: 'fixed', + top: '20px', + right: '20px', + padding: '12px 24px', + borderRadius: '8px', + color: 'white', + fontWeight: '500', + zIndex: '1000', + transform: 'translateX(100%)', + transition: 'transform 0.3s ease' + }); + + // 타입별 배경색 + const colors = { + success: '#10b981', + error: '#ef4444', + warning: '#f59e0b', + info: '#3b82f6' + }; + toast.style.backgroundColor = colors[type] || colors.info; + + document.body.appendChild(toast); + + // 애니메이션 + setTimeout(() => { + toast.style.transform = 'translateX(0)'; + }, 100); + + // 자동 제거 + setTimeout(() => { + toast.style.transform = 'translateX(100%)'; + setTimeout(() => { + if (toast.parentNode) { + toast.remove(); + } + }, 300); + }, 3000); +} + +// 전역 함수로 노출 +window.openProjectModal = openProjectModal; +window.closeProjectModal = closeProjectModal; +window.editProject = editProject; +window.saveProject = saveProject; +window.deleteProject = deleteProject; +window.confirmDeleteProject = confirmDeleteProject; +window.searchProjects = searchProjects; +window.filterProjects = filterProjects; +window.sortProjects = sortProjects; +window.refreshProjectList = refreshProjectList; +window.filterByStatus = filterByStatus; diff --git a/deploy/tkfb-package/web-ui/js/safety-checklist-manage.js b/deploy/tkfb-package/web-ui/js/safety-checklist-manage.js new file mode 100644 index 0000000..4529edb --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/safety-checklist-manage.js @@ -0,0 +1,718 @@ +/** + * 안전 체크리스트 관리 페이지 스크립트 + * + * 3가지 유형의 체크리스트 항목을 관리: + * 1. 기본 사항 - 항상 표시 + * 2. 날씨별 - 날씨 조건에 따라 표시 + * 3. 작업별 - 선택한 작업에 따라 표시 + * + * @since 2026-02-02 + */ + +import { apiCall } from './api-config.js'; + +// 전역 상태 +let allChecks = []; +let weatherConditions = []; +let workTypes = []; +let tasks = []; +let currentTab = 'basic'; +let editingCheckId = null; + +// 카테고리 정보 +const CATEGORIES = { + PPE: { name: 'PPE (개인보호장비)', icon: '🦺' }, + EQUIPMENT: { name: 'EQUIPMENT (장비점검)', icon: '🔧' }, + ENVIRONMENT: { name: 'ENVIRONMENT (작업환경)', icon: '🏗️' }, + EMERGENCY: { name: 'EMERGENCY (비상대응)', icon: '🚨' }, + WEATHER: { name: 'WEATHER (날씨)', icon: '🌤️' }, + TASK: { name: 'TASK (작업)', icon: '📋' } +}; + +// 날씨 아이콘 매핑 +const WEATHER_ICONS = { + clear: '☀️', + rain: '🌧️', + snow: '❄️', + heat: '🔥', + cold: '🥶', + wind: '💨', + fog: '🌫️', + dust: '😷' +}; + +/** + * 페이지 초기화 + */ +async function initPage() { + try { + console.log('📋 안전 체크리스트 관리 페이지 초기화...'); + + await Promise.all([ + loadAllChecks(), + loadWeatherConditions(), + loadWorkTypes() + ]); + + renderCurrentTab(); + console.log('✅ 초기화 완료. 체크항목:', allChecks.length, '개'); + } catch (error) { + console.error('초기화 실패:', error); + showToast('데이터를 불러오는데 실패했습니다.', 'error'); + } +} + +// DOMContentLoaded 이벤트 +document.addEventListener('DOMContentLoaded', initPage); + +/** + * 모든 안전 체크 항목 로드 + */ +async function loadAllChecks() { + try { + const response = await apiCall('/tbm/safety-checks'); + if (response && response.success) { + allChecks = response.data || []; + console.log('✅ 체크 항목 로드:', allChecks.length, '개'); + } else { + console.warn('체크 항목 응답 실패:', response); + allChecks = []; + } + } catch (error) { + console.error('체크 항목 로드 실패:', error); + allChecks = []; + } +} + +/** + * 날씨 조건 목록 로드 + */ +async function loadWeatherConditions() { + try { + const response = await apiCall('/tbm/weather/conditions'); + if (response && response.success) { + weatherConditions = response.data || []; + populateWeatherSelects(); + console.log('✅ 날씨 조건 로드:', weatherConditions.length, '개'); + } + } catch (error) { + console.error('날씨 조건 로드 실패:', error); + weatherConditions = []; + } +} + +/** + * 공정(작업 유형) 목록 로드 + */ +async function loadWorkTypes() { + try { + const response = await apiCall('/daily-work-reports/work-types'); + if (response && response.success) { + workTypes = response.data || []; + populateWorkTypeSelects(); + console.log('✅ 공정 목록 로드:', workTypes.length, '개'); + } + } catch (error) { + console.error('공정 목록 로드 실패:', error); + workTypes = []; + } +} + +/** + * 날씨 조건 셀렉트 박스 채우기 + */ +function populateWeatherSelects() { + const filterSelect = document.getElementById('weatherFilter'); + const modalSelect = document.getElementById('weatherCondition'); + + const options = weatherConditions.map(wc => + `` + ).join(''); + + if (filterSelect) { + filterSelect.innerHTML = `${options}`; + } + + if (modalSelect) { + modalSelect.innerHTML = options || ''; + } +} + +/** + * 공정 셀렉트 박스 채우기 + */ +function populateWorkTypeSelects() { + const filterSelect = document.getElementById('workTypeFilter'); + const modalSelect = document.getElementById('modalWorkType'); + + const options = workTypes.map(wt => + `` + ).join(''); + + if (filterSelect) { + filterSelect.innerHTML = `${options}`; + } + + if (modalSelect) { + modalSelect.innerHTML = `${options}`; + } +} + +/** + * 탭 전환 + */ +function switchTab(tabName) { + currentTab = tabName; + + // 탭 버튼 상태 업데이트 + document.querySelectorAll('.tab-btn').forEach(btn => { + btn.classList.toggle('active', btn.dataset.tab === tabName); + }); + + // 탭 콘텐츠 표시/숨김 + document.querySelectorAll('.tab-content').forEach(content => { + content.classList.toggle('active', content.id === `${tabName}Tab`); + }); + + renderCurrentTab(); +} + +/** + * 현재 탭 렌더링 + */ +function renderCurrentTab() { + switch (currentTab) { + case 'basic': + renderBasicChecks(); + break; + case 'weather': + renderWeatherChecks(); + break; + case 'task': + renderTaskChecks(); + break; + } +} + +/** + * 기본 체크 항목 렌더링 + */ +function renderBasicChecks() { + const container = document.getElementById('basicChecklistContainer'); + const basicChecks = allChecks.filter(c => c.check_type === 'basic'); + + console.log('기본 체크항목:', basicChecks.length, '개'); + + if (basicChecks.length === 0) { + container.innerHTML = renderEmptyState('기본 체크 항목이 없습니다.'); + return; + } + + // 카테고리별로 그룹화 + const grouped = groupByCategory(basicChecks); + + container.innerHTML = Object.entries(grouped).map(([category, items]) => + renderChecklistGroup(category, items) + ).join(''); +} + +/** + * 날씨별 체크 항목 렌더링 + */ +function renderWeatherChecks() { + const container = document.getElementById('weatherChecklistContainer'); + const filterValue = document.getElementById('weatherFilter')?.value; + + let weatherChecks = allChecks.filter(c => c.check_type === 'weather'); + + if (filterValue) { + weatherChecks = weatherChecks.filter(c => c.weather_condition === filterValue); + } + + if (weatherChecks.length === 0) { + container.innerHTML = renderEmptyState('날씨별 체크 항목이 없습니다.'); + return; + } + + // 날씨 조건별로 그룹화 + const grouped = groupByWeather(weatherChecks); + + container.innerHTML = Object.entries(grouped).map(([condition, items]) => { + const conditionInfo = weatherConditions.find(wc => wc.condition_code === condition); + const icon = WEATHER_ICONS[condition] || '🌤️'; + const name = conditionInfo?.condition_name || condition; + + return renderChecklistGroup(`${icon} ${name}`, items, condition); + }).join(''); +} + +/** + * 작업별 체크 항목 렌더링 + */ +function renderTaskChecks() { + const container = document.getElementById('taskChecklistContainer'); + const workTypeId = document.getElementById('workTypeFilter')?.value; + const taskId = document.getElementById('taskFilter')?.value; + + let taskChecks = allChecks.filter(c => c.check_type === 'task'); + + if (taskId) { + taskChecks = taskChecks.filter(c => c.task_id == taskId); + } else if (workTypeId && tasks.length > 0) { + const workTypeTasks = tasks.filter(t => t.work_type_id == workTypeId); + const taskIds = workTypeTasks.map(t => t.task_id); + taskChecks = taskChecks.filter(c => taskIds.includes(c.task_id)); + } + + if (taskChecks.length === 0) { + container.innerHTML = renderEmptyState('작업별 체크 항목이 없습니다.'); + return; + } + + // 작업별로 그룹화 + const grouped = groupByTask(taskChecks); + + container.innerHTML = Object.entries(grouped).map(([taskId, items]) => { + const task = tasks.find(t => t.task_id == taskId); + const taskName = task?.task_name || `작업 ${taskId}`; + + return renderChecklistGroup(`📋 ${taskName}`, items, null, taskId); + }).join(''); +} + +/** + * 카테고리별 그룹화 + */ +function groupByCategory(checks) { + return checks.reduce((acc, check) => { + const category = check.check_category || 'OTHER'; + if (!acc[category]) acc[category] = []; + acc[category].push(check); + return acc; + }, {}); +} + +/** + * 날씨 조건별 그룹화 + */ +function groupByWeather(checks) { + return checks.reduce((acc, check) => { + const condition = check.weather_condition || 'other'; + if (!acc[condition]) acc[condition] = []; + acc[condition].push(check); + return acc; + }, {}); +} + +/** + * 작업별 그룹화 + */ +function groupByTask(checks) { + return checks.reduce((acc, check) => { + const taskId = check.task_id || 0; + if (!acc[taskId]) acc[taskId] = []; + acc[taskId].push(check); + return acc; + }, {}); +} + +/** + * 체크리스트 그룹 렌더링 + */ +function renderChecklistGroup(title, items, weatherCondition = null, taskId = null) { + const categoryInfo = CATEGORIES[title] || { name: title, icon: '' }; + const displayTitle = categoryInfo.name !== title ? categoryInfo.name : title; + const icon = categoryInfo.icon || ''; + + // 표시 순서로 정렬 + items.sort((a, b) => (a.display_order || 0) - (b.display_order || 0)); + + return ` +
+
+
+ ${icon} + ${displayTitle} +
+ ${items.length}개 +
+
+ ${items.map(item => renderChecklistItem(item)).join('')} +
+
+ `; +} + +/** + * 체크리스트 항목 렌더링 + */ +function renderChecklistItem(item) { + const requiredBadge = item.is_required + ? '필수' + : '선택'; + + return ` +
+
+
${item.check_item}
+
+ ${requiredBadge} + ${item.description ? `${item.description}` : ''} +
+
+
+ + +
+
+ `; +} + +/** + * 빈 상태 렌더링 + */ +function renderEmptyState(message) { + return ` +
+
📋
+

${message}

+
+ `; +} + +/** + * 날씨 필터 변경 + */ +function filterByWeather() { + renderWeatherChecks(); +} + +/** + * 공정 필터 변경 + */ +async function filterByWorkType() { + const workTypeId = document.getElementById('workTypeFilter')?.value; + const taskSelect = document.getElementById('taskFilter'); + + // workTypeId가 없거나 빈 문자열이면 early return + if (!workTypeId || workTypeId === '' || workTypeId === 'undefined') { + if (taskSelect) { + taskSelect.innerHTML = ''; + } + tasks = []; + renderTaskChecks(); + return; + } + + try { + const response = await apiCall(`/tasks/work-type/${workTypeId}`); + if (response && response.success) { + tasks = response.data || []; + taskSelect.innerHTML = '' + + tasks.map(t => ``).join(''); + } + } catch (error) { + console.error('작업 목록 로드 실패:', error); + tasks = []; + } + + renderTaskChecks(); +} + +/** + * 작업 필터 변경 + */ +function filterByTask() { + renderTaskChecks(); +} + +/** + * 모달의 작업 목록 로드 + */ +async function loadModalTasks() { + const workTypeId = document.getElementById('modalWorkType')?.value; + const taskSelect = document.getElementById('modalTask'); + + // workTypeId가 없거나 빈 문자열이면 early return + if (!workTypeId || workTypeId === '' || workTypeId === 'undefined') { + if (taskSelect) { + taskSelect.innerHTML = ''; + } + return; + } + + try { + const response = await apiCall(`/tasks/work-type/${workTypeId}`); + if (response && response.success) { + const modalTasks = response.data || []; + taskSelect.innerHTML = '' + + modalTasks.map(t => ``).join(''); + } + } catch (error) { + console.error('작업 목록 로드 실패:', error); + } +} + +/** + * 조건부 필드 토글 + */ +function toggleConditionalFields() { + const checkType = document.querySelector('input[name="checkType"]:checked')?.value; + + document.getElementById('basicFields').classList.toggle('show', checkType === 'basic'); + document.getElementById('weatherFields').classList.toggle('show', checkType === 'weather'); + document.getElementById('taskFields').classList.toggle('show', checkType === 'task'); +} + +/** + * 추가 모달 열기 + */ +function openAddModal() { + editingCheckId = null; + document.getElementById('modalTitle').textContent = '체크 항목 추가'; + + // 폼 초기화 + document.getElementById('checkForm').reset(); + document.getElementById('checkId').value = ''; + + // 현재 탭에 맞는 유형 선택 + const typeRadio = document.querySelector(`input[name="checkType"][value="${currentTab}"]`); + if (typeRadio) { + typeRadio.checked = true; + } + + toggleConditionalFields(); + showModal(); +} + +/** + * 수정 모달 열기 + */ +async function openEditModal(checkId) { + editingCheckId = checkId; + const check = allChecks.find(c => c.check_id === checkId); + + if (!check) { + showToast('항목을 찾을 수 없습니다.', 'error'); + return; + } + + document.getElementById('modalTitle').textContent = '체크 항목 수정'; + document.getElementById('checkId').value = checkId; + + // 유형 선택 + const typeRadio = document.querySelector(`input[name="checkType"][value="${check.check_type}"]`); + if (typeRadio) { + typeRadio.checked = true; + } + + toggleConditionalFields(); + + // 카테고리 + if (check.check_type === 'basic') { + document.getElementById('checkCategory').value = check.check_category || 'PPE'; + } + + // 날씨 조건 + if (check.check_type === 'weather') { + document.getElementById('weatherCondition').value = check.weather_condition || ''; + } + + // 작업 + if (check.check_type === 'task' && check.task_id) { + // 먼저 공정 찾기 (task를 통해) + const task = tasks.find(t => t.task_id === check.task_id); + if (task) { + document.getElementById('modalWorkType').value = task.work_type_id; + await loadModalTasks(); + document.getElementById('modalTask').value = check.task_id; + } + } + + // 공통 필드 + document.getElementById('checkItem').value = check.check_item || ''; + document.getElementById('checkDescription').value = check.description || ''; + document.getElementById('isRequired').checked = check.is_required === 1 || check.is_required === true; + document.getElementById('displayOrder').value = check.display_order || 0; + + showModal(); +} + +/** + * 모달 표시 + */ +function showModal() { + document.getElementById('checkModal').style.display = 'flex'; +} + +/** + * 모달 닫기 + */ +function closeModal() { + document.getElementById('checkModal').style.display = 'none'; + editingCheckId = null; +} + +/** + * 체크 항목 저장 + */ +async function saveCheck() { + const checkType = document.querySelector('input[name="checkType"]:checked')?.value; + const checkItem = document.getElementById('checkItem').value.trim(); + + if (!checkItem) { + showToast('체크 항목을 입력해주세요.', 'error'); + return; + } + + const data = { + check_type: checkType, + check_item: checkItem, + description: document.getElementById('checkDescription').value.trim() || null, + is_required: document.getElementById('isRequired').checked, + display_order: parseInt(document.getElementById('displayOrder').value) || 0 + }; + + // 유형별 추가 데이터 + switch (checkType) { + case 'basic': + data.check_category = document.getElementById('checkCategory').value; + break; + case 'weather': + data.check_category = 'WEATHER'; + data.weather_condition = document.getElementById('weatherCondition').value; + if (!data.weather_condition) { + showToast('날씨 조건을 선택해주세요.', 'error'); + return; + } + break; + case 'task': + data.check_category = 'TASK'; + data.task_id = document.getElementById('modalTask').value; + if (!data.task_id) { + showToast('작업을 선택해주세요.', 'error'); + return; + } + break; + } + + try { + let response; + if (editingCheckId) { + // 수정 + response = await apiCall(`/tbm/safety-checks/${editingCheckId}`, 'PUT', data); + } else { + // 추가 + response = await apiCall('/tbm/safety-checks', 'POST', data); + } + + if (response && response.success) { + showToast(editingCheckId ? '항목이 수정되었습니다.' : '항목이 추가되었습니다.', 'success'); + closeModal(); + await loadAllChecks(); + renderCurrentTab(); + } else { + showToast(response?.message || '저장에 실패했습니다.', 'error'); + } + } catch (error) { + console.error('저장 실패:', error); + showToast('저장 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 삭제 확인 + */ +function confirmDelete(checkId) { + const check = allChecks.find(c => c.check_id === checkId); + + if (!check) { + showToast('항목을 찾을 수 없습니다.', 'error'); + return; + } + + if (confirm(`"${check.check_item}" 항목을 삭제하시겠습니까?`)) { + deleteCheck(checkId); + } +} + +/** + * 체크 항목 삭제 + */ +async function deleteCheck(checkId) { + try { + const response = await apiCall(`/tbm/safety-checks/${checkId}`, 'DELETE'); + + if (response && response.success) { + showToast('항목이 삭제되었습니다.', 'success'); + await loadAllChecks(); + renderCurrentTab(); + } else { + showToast(response?.message || '삭제에 실패했습니다.', 'error'); + } + } catch (error) { + console.error('삭제 실패:', error); + showToast('삭제 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 토스트 메시지 표시 + */ +function showToast(message, type = 'info') { + // 기존 토스트 제거 + const existingToast = document.querySelector('.toast-message'); + if (existingToast) { + existingToast.remove(); + } + + const toast = document.createElement('div'); + toast.className = `toast-message toast-${type}`; + toast.textContent = message; + toast.style.cssText = ` + position: fixed; + bottom: 20px; + left: 50%; + transform: translateX(-50%); + padding: 12px 24px; + border-radius: 8px; + font-size: 14px; + font-weight: 500; + z-index: 9999; + animation: fadeInUp 0.3s ease; + ${type === 'success' ? 'background: #10b981; color: white;' : ''} + ${type === 'error' ? 'background: #ef4444; color: white;' : ''} + ${type === 'info' ? 'background: #3b82f6; color: white;' : ''} + `; + + document.body.appendChild(toast); + + setTimeout(() => { + toast.style.animation = 'fadeOut 0.3s ease'; + setTimeout(() => toast.remove(), 300); + }, 3000); +} + +// 모달 외부 클릭 시 닫기 +document.getElementById('checkModal')?.addEventListener('click', function(e) { + if (e.target === this) { + closeModal(); + } +}); + +// HTML onclick에서 호출할 수 있도록 전역에 노출 +window.switchTab = switchTab; +window.openAddModal = openAddModal; +window.openEditModal = openEditModal; +window.closeModal = closeModal; +window.saveCheck = saveCheck; +window.confirmDelete = confirmDelete; +window.filterByWeather = filterByWeather; +window.filterByWorkType = filterByWorkType; +window.filterByTask = filterByTask; +window.loadModalTasks = loadModalTasks; +window.toggleConditionalFields = toggleConditionalFields; diff --git a/deploy/tkfb-package/web-ui/js/safety-management.js b/deploy/tkfb-package/web-ui/js/safety-management.js new file mode 100644 index 0000000..a6fc975 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/safety-management.js @@ -0,0 +1,447 @@ +// 안전관리 대시보드 JavaScript + +let currentStatus = 'pending'; +let requests = []; +let currentRejectRequestId = null; + +// ==================== Toast 알림 ==================== + +function showToast(message, type = 'info', duration = 3000) { + const toastContainer = document.getElementById('toastContainer') || createToastContainer(); + + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + + const iconMap = { + success: '✅', + error: '❌', + warning: '⚠️', + info: 'ℹ️' + }; + + toast.innerHTML = ` + ${iconMap[type] || 'ℹ️'} + ${message} + `; + + toastContainer.appendChild(toast); + + setTimeout(() => toast.classList.add('show'), 10); + + setTimeout(() => { + toast.classList.remove('show'); + setTimeout(() => toast.remove(), 300); + }, duration); +} + +function createToastContainer() { + const container = document.createElement('div'); + container.id = 'toastContainer'; + container.style.cssText = ` + position: fixed; + top: 20px; + right: 20px; + z-index: 9999; + display: flex; + flex-direction: column; + gap: 10px; + `; + + document.body.appendChild(container); + + if (!document.getElementById('toastStyles')) { + const style = document.createElement('style'); + style.id = 'toastStyles'; + style.textContent = ` + .toast { + display: flex; + align-items: center; + gap: 12px; + padding: 12px 20px; + background: white; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + opacity: 0; + transform: translateX(100px); + transition: all 0.3s ease; + min-width: 250px; + max-width: 400px; + } + .toast.show { + opacity: 1; + transform: translateX(0); + } + .toast-success { border-left: 4px solid #10b981; } + .toast-error { border-left: 4px solid #ef4444; } + .toast-warning { border-left: 4px solid #f59e0b; } + .toast-info { border-left: 4px solid #3b82f6; } + .toast-icon { font-size: 20px; } + .toast-message { font-size: 14px; color: #374151; } + `; + document.head.appendChild(style); + } + + return container; +} + +// ==================== 초기화 ==================== + +document.addEventListener('DOMContentLoaded', async () => { + await loadRequests(); + updateStats(); +}); + +// ==================== 데이터 로드 ==================== + +/** + * 출입 신청 목록 로드 + */ +async function loadRequests() { + try { + const filters = currentStatus === 'all' ? {} : { status: currentStatus }; + const queryString = new URLSearchParams(filters).toString(); + + const response = await window.apiCall(`/workplace-visits/requests?${queryString}`, 'GET'); + + if (response && response.success) { + requests = response.data || []; + renderRequestTable(); + updateStats(); + } + } catch (error) { + console.error('출입 신청 목록 로드 오류:', error); + showToast('출입 신청 목록을 불러오는데 실패했습니다.', 'error'); + } +} + +/** + * 통계 업데이트 + */ +async function updateStats() { + try { + const response = await window.apiCall('/workplace-visits/requests', 'GET'); + + if (response && response.success) { + const allRequests = response.data || []; + + const stats = { + pending: allRequests.filter(r => r.status === 'pending').length, + approved: allRequests.filter(r => r.status === 'approved').length, + training_completed: allRequests.filter(r => r.status === 'training_completed').length, + rejected: allRequests.filter(r => r.status === 'rejected').length + }; + + document.getElementById('statPending').textContent = stats.pending; + document.getElementById('statApproved').textContent = stats.approved; + document.getElementById('statTrainingCompleted').textContent = stats.training_completed; + document.getElementById('statRejected').textContent = stats.rejected; + } + } catch (error) { + console.error('통계 업데이트 오류:', error); + } +} + +/** + * 테이블 렌더링 + */ +function renderRequestTable() { + const container = document.getElementById('requestTableContainer'); + + if (requests.length === 0) { + container.innerHTML = ` +
+
📭
+

출입 신청이 없습니다

+

현재 ${getStatusText(currentStatus)} 상태의 신청이 없습니다.

+
+ `; + return; + } + + let html = ` + + + + + + + + + + + + + + + + `; + + requests.forEach(req => { + const statusText = { + 'pending': '승인 대기', + 'approved': '승인됨', + 'rejected': '반려됨', + 'training_completed': '교육 완료' + }[req.status] || req.status; + + html += ` + + + + + + + + + + + + `; + }); + + html += ` + +
신청일신청자방문자인원방문 작업장방문 일시목적상태작업
${new Date(req.created_at).toLocaleDateString()}${req.requester_full_name || req.requester_name}${req.visitor_company}${req.visitor_count}명${req.category_name} - ${req.workplace_name}${req.visit_date} ${req.visit_time}${req.purpose_name}${statusText} +
+ + ${req.status === 'pending' ? ` + + + ` : ''} + ${req.status === 'approved' ? ` + + ` : ''} +
+
+ `; + + container.innerHTML = html; +} + +/** + * 상태 텍스트 변환 + */ +function getStatusText(status) { + const map = { + 'pending': '승인 대기', + 'approved': '승인 완료', + 'rejected': '반려', + 'training_completed': '교육 완료', + 'all': '전체' + }; + return map[status] || status; +} + +// ==================== 탭 전환 ==================== + +/** + * 탭 전환 + */ +async function switchTab(status) { + currentStatus = status; + + // 탭 활성화 상태 변경 + document.querySelectorAll('.status-tab').forEach(tab => { + if (tab.dataset.status === status) { + tab.classList.add('active'); + } else { + tab.classList.remove('active'); + } + }); + + await loadRequests(); +} + +// ==================== 상세보기 ==================== + +/** + * 상세보기 모달 열기 + */ +async function viewDetail(requestId) { + try { + const response = await window.apiCall(`/workplace-visits/requests/${requestId}`, 'GET'); + + if (response && response.success) { + const req = response.data; + const statusText = { + 'pending': '승인 대기', + 'approved': '승인됨', + 'rejected': '반려됨', + 'training_completed': '교육 완료' + }[req.status] || req.status; + + let html = ` +
+
신청 번호
+
#${req.request_id}
+ +
신청일
+
${new Date(req.created_at).toLocaleString()}
+ +
신청자
+
${req.requester_full_name || req.requester_name}
+ +
방문자 소속
+
${req.visitor_company}
+ +
방문 인원
+
${req.visitor_count}명
+ +
방문 구역
+
${req.category_name}
+ +
방문 작업장
+
${req.workplace_name}
+ +
방문 날짜
+
${req.visit_date}
+ +
방문 시간
+
${req.visit_time}
+ +
방문 목적
+
${req.purpose_name}
+ +
상태
+
${statusText}
+
+ `; + + if (req.notes) { + html += ` +
+ 비고:
+ ${req.notes} +
+ `; + } + + if (req.rejection_reason) { + html += ` +
+ 반려 사유:
+ ${req.rejection_reason} +
+ `; + } + + if (req.approved_by) { + html += ` +
+ 처리 정보:
+ 처리자: ${req.approver_name || 'Unknown'}
+ 처리 시간: ${new Date(req.approved_at).toLocaleString()} +
+ `; + } + + document.getElementById('detailContent').innerHTML = html; + document.getElementById('detailModal').style.display = 'flex'; + } + } catch (error) { + console.error('상세 정보 로드 오류:', error); + showToast('상세 정보를 불러오는데 실패했습니다.', 'error'); + } +} + +/** + * 상세보기 모달 닫기 + */ +function closeDetailModal() { + document.getElementById('detailModal').style.display = 'none'; +} + +// ==================== 승인/반려 ==================== + +/** + * 승인 처리 + */ +async function approveRequest(requestId) { + if (!confirm('이 출입 신청을 승인하시겠습니까?')) { + return; + } + + try { + const response = await window.apiCall(`/workplace-visits/requests/${requestId}/approve`, 'PUT'); + + if (response && response.success) { + showToast('출입 신청이 승인되었습니다.', 'success'); + await loadRequests(); + updateStats(); + } else { + throw new Error(response?.message || '승인 실패'); + } + } catch (error) { + console.error('승인 처리 오류:', error); + showToast(error.message || '승인 처리 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 반려 모달 열기 + */ +function openRejectModal(requestId) { + currentRejectRequestId = requestId; + document.getElementById('rejectionReason').value = ''; + document.getElementById('rejectModal').style.display = 'flex'; +} + +/** + * 반려 모달 닫기 + */ +function closeRejectModal() { + currentRejectRequestId = null; + document.getElementById('rejectModal').style.display = 'none'; +} + +/** + * 반려 확정 + */ +async function confirmReject() { + const reason = document.getElementById('rejectionReason').value.trim(); + + if (!reason) { + showToast('반려 사유를 입력해주세요.', 'warning'); + return; + } + + try { + const response = await window.apiCall( + `/workplace-visits/requests/${currentRejectRequestId}/reject`, + 'PUT', + { rejection_reason: reason } + ); + + if (response && response.success) { + showToast('출입 신청이 반려되었습니다.', 'success'); + closeRejectModal(); + await loadRequests(); + updateStats(); + } else { + throw new Error(response?.message || '반려 실패'); + } + } catch (error) { + console.error('반려 처리 오류:', error); + showToast(error.message || '반려 처리 중 오류가 발생했습니다.', 'error'); + } +} + +// ==================== 안전교육 진행 ==================== + +/** + * 안전교육 진행 페이지로 이동 + */ +function startTraining(requestId) { + window.location.href = `/pages/safety/training-conduct.html?request_id=${requestId}`; +} + +// 전역 함수로 노출 +window.showToast = showToast; +window.switchTab = switchTab; +window.viewDetail = viewDetail; +window.closeDetailModal = closeDetailModal; +window.approveRequest = approveRequest; +window.openRejectModal = openRejectModal; +window.closeRejectModal = closeRejectModal; +window.confirmReject = confirmReject; +window.startTraining = startTraining; diff --git a/deploy/tkfb-package/web-ui/js/safety-report-list.js b/deploy/tkfb-package/web-ui/js/safety-report-list.js new file mode 100644 index 0000000..c442504 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/safety-report-list.js @@ -0,0 +1,222 @@ +/** + * 안전신고 현황 페이지 JavaScript + * category_type=safety 고정 필터 + */ + +const API_BASE = window.API_BASE_URL || 'http://localhost:20005/api'; +const CATEGORY_TYPE = 'safety'; + +// 상태 한글 변환 +const STATUS_LABELS = { + reported: '신고', + received: '접수', + in_progress: '처리중', + completed: '완료', + closed: '종료' +}; + +// DOM 요소 +let issueList; +let filterStatus, filterStartDate, filterEndDate; + +// 초기화 +document.addEventListener('DOMContentLoaded', async () => { + issueList = document.getElementById('issueList'); + filterStatus = document.getElementById('filterStatus'); + filterStartDate = document.getElementById('filterStartDate'); + filterEndDate = document.getElementById('filterEndDate'); + + // 필터 이벤트 리스너 + filterStatus.addEventListener('change', loadIssues); + filterStartDate.addEventListener('change', loadIssues); + filterEndDate.addEventListener('change', loadIssues); + + // 데이터 로드 + await Promise.all([loadStats(), loadIssues()]); +}); + +/** + * 통계 로드 (안전만) + */ +async function loadStats() { + try { + const response = await fetch(`${API_BASE}/work-issues/stats/summary?category_type=${CATEGORY_TYPE}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) { + document.getElementById('statsGrid').style.display = 'none'; + return; + } + + const data = await response.json(); + if (data.success && data.data) { + document.getElementById('statReported').textContent = data.data.reported || 0; + document.getElementById('statReceived').textContent = data.data.received || 0; + document.getElementById('statProgress').textContent = data.data.in_progress || 0; + document.getElementById('statCompleted').textContent = data.data.completed || 0; + } + } catch (error) { + console.error('통계 로드 실패:', error); + document.getElementById('statsGrid').style.display = 'none'; + } +} + +/** + * 안전신고 목록 로드 + */ +async function loadIssues() { + try { + // 필터 파라미터 구성 (category_type 고정) + const params = new URLSearchParams(); + params.append('category_type', CATEGORY_TYPE); + + if (filterStatus.value) params.append('status', filterStatus.value); + if (filterStartDate.value) params.append('start_date', filterStartDate.value); + if (filterEndDate.value) params.append('end_date', filterEndDate.value); + + const response = await fetch(`${API_BASE}/work-issues?${params.toString()}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) throw new Error('목록 조회 실패'); + + const data = await response.json(); + if (data.success) { + renderIssues(data.data || []); + } + } catch (error) { + console.error('안전신고 목록 로드 실패:', error); + issueList.innerHTML = ` +
+
목록을 불러올 수 없습니다
+

잠시 후 다시 시도해주세요.

+
+ `; + } +} + +/** + * 안전신고 목록 렌더링 + */ +function renderIssues(issues) { + if (issues.length === 0) { + issueList.innerHTML = ` +
+
등록된 안전 신고가 없습니다
+

새로운 안전 문제를 신고하려면 '안전 신고' 버튼을 클릭하세요.

+
+ `; + return; + } + + const baseUrl = (window.API_BASE_URL || 'http://localhost:20005').replace('/api', ''); + + issueList.innerHTML = issues.map(issue => { + const reportDate = new Date(issue.report_date).toLocaleString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit' + }); + + // 위치 정보 (escaped) + let location = escapeHtml(issue.custom_location || ''); + if (issue.factory_name) { + location = escapeHtml(issue.factory_name); + if (issue.workplace_name) { + location += ` - ${escapeHtml(issue.workplace_name)}`; + } + } + + // 신고 제목 (항목명 또는 카테고리명) + const title = escapeHtml(issue.issue_item_name || issue.issue_category_name || '안전 신고'); + const categoryName = escapeHtml(issue.issue_category_name || '안전'); + + // 사진 목록 + const photos = [ + issue.photo_path1, + issue.photo_path2, + issue.photo_path3, + issue.photo_path4, + issue.photo_path5 + ].filter(Boolean); + + // 안전한 값들 + const safeReportId = parseInt(issue.report_id) || 0; + const validStatuses = ['reported', 'received', 'in_progress', 'completed', 'closed']; + const safeStatus = validStatuses.includes(issue.status) ? issue.status : 'reported'; + const reporterName = escapeHtml(issue.reporter_full_name || issue.reporter_name || '-'); + const assignedName = issue.assigned_full_name ? escapeHtml(issue.assigned_full_name) : ''; + + return ` +
+
+ #${safeReportId} + ${STATUS_LABELS[issue.status] || escapeHtml(issue.status || '-')} +
+ +
+ ${categoryName} + ${title} +
+ +
+ + + + + + ${reporterName} + + + + + + + + + ${reportDate} + + ${location ? ` + + + + + + ${location} + + ` : ''} + ${assignedName ? ` + + + + + + + + 담당: ${assignedName} + + ` : ''} +
+ + ${photos.length > 0 ? ` +
+ ${photos.slice(0, 3).map(p => ` + 신고 사진 + `).join('')} + ${photos.length > 3 ? `+${photos.length - 3}` : ''} +
+ ` : ''} +
+ `; + }).join(''); +} + +/** + * 상세 보기 + */ +function viewIssue(reportId) { + window.location.href = `/pages/safety/issue-detail.html?id=${reportId}&from=safety`; +} diff --git a/deploy/tkfb-package/web-ui/js/safety-training-conduct.js b/deploy/tkfb-package/web-ui/js/safety-training-conduct.js new file mode 100644 index 0000000..23f5e20 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/safety-training-conduct.js @@ -0,0 +1,553 @@ +// 안전교육 진행 페이지 JavaScript + +let requestId = null; +let requestData = null; +let canvas = null; +let ctx = null; +let isDrawing = false; +let hasSignature = false; +let savedSignatures = []; // 저장된 서명 목록 + +// ==================== Toast 알림 ==================== + +function showToast(message, type = 'info', duration = 3000) { + const toastContainer = document.getElementById('toastContainer') || createToastContainer(); + + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + + const iconMap = { + success: '✅', + error: '❌', + warning: '⚠️', + info: 'ℹ️' + }; + + toast.innerHTML = ` + ${iconMap[type] || 'ℹ️'} + ${message} + `; + + toastContainer.appendChild(toast); + + setTimeout(() => toast.classList.add('show'), 10); + + setTimeout(() => { + toast.classList.remove('show'); + setTimeout(() => toast.remove(), 300); + }, duration); +} + +function createToastContainer() { + const container = document.createElement('div'); + container.id = 'toastContainer'; + container.style.cssText = ` + position: fixed; + top: 20px; + right: 20px; + z-index: 9999; + display: flex; + flex-direction: column; + gap: 10px; + `; + + document.body.appendChild(container); + + if (!document.getElementById('toastStyles')) { + const style = document.createElement('style'); + style.id = 'toastStyles'; + style.textContent = ` + .toast { + display: flex; + align-items: center; + gap: 12px; + padding: 12px 20px; + background: white; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + opacity: 0; + transform: translateX(100px); + transition: all 0.3s ease; + min-width: 250px; + max-width: 400px; + } + .toast.show { + opacity: 1; + transform: translateX(0); + } + .toast-success { border-left: 4px solid #10b981; } + .toast-error { border-left: 4px solid #ef4444; } + .toast-warning { border-left: 4px solid #f59e0b; } + .toast-info { border-left: 4px solid #3b82f6; } + .toast-icon { font-size: 20px; } + .toast-message { font-size: 14px; color: #374151; } + `; + document.head.appendChild(style); + } + + return container; +} + +// ==================== 초기화 ==================== + +document.addEventListener('DOMContentLoaded', async () => { + // URL 파라미터에서 request_id 가져오기 + const urlParams = new URLSearchParams(window.location.search); + requestId = urlParams.get('request_id'); + + if (!requestId) { + showToast('출입 신청 ID가 없습니다.', 'error'); + setTimeout(() => { + window.location.href = '/pages/safety/management.html'; + }, 2000); + return; + } + + // 서명 캔버스 초기화 + initSignatureCanvas(); + + // 현재 날짜 표시 + const today = new Date().toLocaleDateString('ko-KR'); + document.getElementById('signatureDate').textContent = today; + + // 출입 신청 정보 로드 + await loadRequestInfo(); +}); + +// ==================== 출입 신청 정보 로드 ==================== + +/** + * 출입 신청 정보 로드 + */ +async function loadRequestInfo() { + try { + const response = await window.apiCall(`/workplace-visits/requests/${requestId}`, 'GET'); + + if (response && response.success) { + requestData = response.data; + + // 상태 확인 - 승인됨 상태만 진행 가능 + if (requestData.status !== 'approved') { + showToast('이미 처리되었거나 승인되지 않은 신청입니다.', 'error'); + setTimeout(() => { + window.location.href = '/pages/safety/management.html'; + }, 2000); + return; + } + + renderRequestInfo(); + } else { + throw new Error(response?.message || '정보를 불러올 수 없습니다.'); + } + } catch (error) { + console.error('출입 신청 정보 로드 오류:', error); + showToast('출입 신청 정보를 불러오는데 실패했습니다.', 'error'); + } +} + +/** + * 출입 신청 정보 렌더링 + */ +function renderRequestInfo() { + const container = document.getElementById('requestInfo'); + + // 날짜 포맷 변환 + const visitDate = new Date(requestData.visit_date); + const formattedDate = visitDate.toLocaleDateString('ko-KR', { + year: 'numeric', + month: 'long', + day: 'numeric', + weekday: 'short' + }); + + const html = ` +
+
신청 번호
+
#${requestData.request_id}
+
+
+
신청자
+
${requestData.requester_full_name || requestData.requester_name}
+
+
+
방문자 소속
+
${requestData.visitor_company}
+
+
+
방문 인원
+
${requestData.visitor_count}명
+
+
+
방문 작업장
+
${requestData.category_name} - ${requestData.workplace_name}
+
+
+
방문 일시
+
${formattedDate} ${requestData.visit_time}
+
+
+
방문 목적
+
${requestData.purpose_name}
+
+ `; + + container.innerHTML = html; +} + +// ==================== 서명 캔버스 ==================== + +/** + * 서명 캔버스 초기화 + */ +function initSignatureCanvas() { + canvas = document.getElementById('signatureCanvas'); + ctx = canvas.getContext('2d'); + + // 캔버스 크기 설정 + const container = canvas.parentElement; + canvas.width = container.clientWidth - 4; // border 제외 + canvas.height = 300; + + // 그리기 설정 + ctx.strokeStyle = '#000'; + ctx.lineWidth = 2; + ctx.lineCap = 'round'; + ctx.lineJoin = 'round'; + + // 마우스 이벤트 + canvas.addEventListener('mousedown', startDrawing); + canvas.addEventListener('mousemove', draw); + canvas.addEventListener('mouseup', stopDrawing); + canvas.addEventListener('mouseout', stopDrawing); + + // 터치 이벤트 (모바일, Apple Pencil) + canvas.addEventListener('touchstart', handleTouchStart, { passive: false }); + canvas.addEventListener('touchmove', handleTouchMove, { passive: false }); + canvas.addEventListener('touchend', stopDrawing); + canvas.addEventListener('touchcancel', stopDrawing); + + // Pointer Events (Apple Pencil 최적화) + if (window.PointerEvent) { + canvas.addEventListener('pointerdown', handlePointerDown); + canvas.addEventListener('pointermove', handlePointerMove); + canvas.addEventListener('pointerup', stopDrawing); + canvas.addEventListener('pointercancel', stopDrawing); + } +} + +/** + * 그리기 시작 (마우스) + */ +function startDrawing(e) { + isDrawing = true; + hasSignature = true; + document.getElementById('signaturePlaceholder').style.display = 'none'; + + const rect = canvas.getBoundingClientRect(); + ctx.beginPath(); + ctx.moveTo(e.clientX - rect.left, e.clientY - rect.top); +} + +/** + * 그리기 (마우스) + */ +function draw(e) { + if (!isDrawing) return; + + const rect = canvas.getBoundingClientRect(); + ctx.lineTo(e.clientX - rect.left, e.clientY - rect.top); + ctx.stroke(); +} + +/** + * 그리기 중지 + */ +function stopDrawing() { + isDrawing = false; + ctx.beginPath(); +} + +/** + * 터치 시작 처리 + */ +function handleTouchStart(e) { + e.preventDefault(); + isDrawing = true; + hasSignature = true; + document.getElementById('signaturePlaceholder').style.display = 'none'; + + const touch = e.touches[0]; + const rect = canvas.getBoundingClientRect(); + ctx.beginPath(); + ctx.moveTo(touch.clientX - rect.left, touch.clientY - rect.top); +} + +/** + * 터치 이동 처리 + */ +function handleTouchMove(e) { + if (!isDrawing) return; + e.preventDefault(); + + const touch = e.touches[0]; + const rect = canvas.getBoundingClientRect(); + ctx.lineTo(touch.clientX - rect.left, touch.clientY - rect.top); + ctx.stroke(); +} + +/** + * Pointer 시작 처리 (Apple Pencil) + */ +function handlePointerDown(e) { + isDrawing = true; + hasSignature = true; + document.getElementById('signaturePlaceholder').style.display = 'none'; + + const rect = canvas.getBoundingClientRect(); + ctx.beginPath(); + ctx.moveTo(e.clientX - rect.left, e.clientY - rect.top); +} + +/** + * Pointer 이동 처리 (Apple Pencil) + */ +function handlePointerMove(e) { + if (!isDrawing) return; + + const rect = canvas.getBoundingClientRect(); + ctx.lineTo(e.clientX - rect.left, e.clientY - rect.top); + ctx.stroke(); +} + +/** + * 서명 지우기 + */ +function clearSignature() { + ctx.clearRect(0, 0, canvas.width, canvas.height); + hasSignature = false; + document.getElementById('signaturePlaceholder').style.display = 'block'; +} + +/** + * 서명을 Base64로 변환 + */ +function getSignatureBase64() { + if (!hasSignature) { + return null; + } + return canvas.toDataURL('image/png'); +} + +/** + * 현재 서명 저장 + */ +function saveSignature() { + if (!hasSignature) { + showToast('서명이 없습니다. 이름과 서명을 작성해주세요.', 'warning'); + return; + } + + const signatureImage = getSignatureBase64(); + const now = new Date(); + + savedSignatures.push({ + id: Date.now(), + image: signatureImage, + timestamp: now.toLocaleString('ko-KR') + }); + + // 서명 카운트 업데이트 + document.getElementById('signatureCount').textContent = savedSignatures.length; + + // 캔버스 초기화 + clearSignature(); + + // 저장된 서명 목록 렌더링 + renderSavedSignatures(); + + // 교육 완료 버튼 활성화 + updateCompleteButton(); + + showToast('서명이 저장되었습니다.', 'success'); +} + +/** + * 저장된 서명 목록 렌더링 + */ +function renderSavedSignatures() { + const container = document.getElementById('savedSignatures'); + + if (savedSignatures.length === 0) { + container.innerHTML = ''; + return; + } + + let html = '

저장된 서명 목록

'; + + savedSignatures.forEach((sig, index) => { + html += ` +
+ 서명 ${index + 1} +
+
방문자 ${index + 1}
+
저장 시간: ${sig.timestamp}
+
+
+ +
+
+ `; + }); + + container.innerHTML = html; +} + +/** + * 서명 삭제 + */ +function deleteSignature(signatureId) { + if (!confirm('이 서명을 삭제하시겠습니까?')) { + return; + } + + savedSignatures = savedSignatures.filter(sig => sig.id !== signatureId); + + // 서명 카운트 업데이트 + document.getElementById('signatureCount').textContent = savedSignatures.length; + + // 목록 다시 렌더링 + renderSavedSignatures(); + + // 교육 완료 버튼 상태 업데이트 + updateCompleteButton(); + + showToast('서명이 삭제되었습니다.', 'success'); +} + +/** + * 교육 완료 버튼 활성화/비활성화 + */ +function updateCompleteButton() { + const completeBtn = document.getElementById('completeBtn'); + + // 체크리스트와 서명이 모두 있어야 활성화 + const checkboxes = document.querySelectorAll('input[name="safety-check"]'); + const checkedItems = Array.from(checkboxes).filter(cb => cb.checked); + const allChecked = checkedItems.length === checkboxes.length; + const hasSignatures = savedSignatures.length > 0; + + completeBtn.disabled = !(allChecked && hasSignatures); +} + +// ==================== 교육 완료 처리 ==================== + +/** + * 교육 완료 처리 + */ +async function completeTraining() { + // 체크리스트 검증 + const checkboxes = document.querySelectorAll('input[name="safety-check"]'); + const checkedItems = Array.from(checkboxes).filter(cb => cb.checked); + + if (checkedItems.length !== checkboxes.length) { + showToast('모든 안전교육 항목을 체크해주세요.', 'warning'); + return; + } + + // 서명 검증 + if (savedSignatures.length === 0) { + showToast('최소 1명 이상의 서명이 필요합니다.', 'warning'); + return; + } + + // 확인 + if (!confirm(`${savedSignatures.length}명의 방문자 안전교육을 완료하시겠습니까?\n완료 후에는 수정할 수 없습니다.`)) { + return; + } + + try { + // 교육 항목 수집 + const trainingItems = checkedItems.map(cb => cb.value).join(', '); + + // API 호출 + const userData = localStorage.getItem('user'); + const currentUser = userData ? JSON.parse(userData) : null; + + if (!currentUser) { + showToast('로그인 정보를 찾을 수 없습니다.', 'error'); + return; + } + + // 현재 시간 + const now = new Date(); + const currentTime = now.toTimeString().split(' ')[0]; // HH:MM:SS + const trainingDate = now.toISOString().split('T')[0]; // YYYY-MM-DD + + // 각 서명에 대해 개별적으로 API 호출 + let successCount = 0; + for (let i = 0; i < savedSignatures.length; i++) { + const sig = savedSignatures[i]; + + const payload = { + request_id: requestId, + conducted_by: currentUser.user_id, + training_date: trainingDate, + training_start_time: currentTime, + training_end_time: currentTime, + training_items: trainingItems, + visitor_name: `방문자 ${i + 1}`, // 순번으로 구분 + signature_image: sig.image, + notes: `교육 완료 - ${checkedItems.length}개 항목 (${i + 1}/${savedSignatures.length})` + }; + + const response = await window.apiCall( + '/workplace-visits/training', + 'POST', + payload + ); + + if (response && response.success) { + successCount++; + } else { + console.error(`서명 ${i + 1} 저장 실패:`, response); + } + } + + if (successCount === savedSignatures.length) { + showToast(`${successCount}명의 안전교육이 완료되었습니다.`, 'success'); + setTimeout(() => { + window.location.href = '/pages/safety/management.html'; + }, 1500); + } else if (successCount > 0) { + showToast(`${successCount}/${savedSignatures.length}명의 교육만 저장되었습니다.`, 'warning'); + } else { + throw new Error('교육 완료 처리 실패'); + } + } catch (error) { + console.error('교육 완료 처리 오류:', error); + showToast(error.message || '교육 완료 처리 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 뒤로 가기 + */ +function goBack() { + if (hasSignature || document.querySelector('input[name="safety-check"]:checked')) { + if (!confirm('작성 중인 내용이 있습니다. 정말 나가시겠습니까?')) { + return; + } + } + window.location.href = '/pages/safety/management.html'; +} + +// 전역 함수로 노출 +window.showToast = showToast; +window.clearSignature = clearSignature; +window.saveSignature = saveSignature; +window.deleteSignature = deleteSignature; +window.updateCompleteButton = updateCompleteButton; +window.completeTraining = completeTraining; +window.goBack = goBack; diff --git a/deploy/tkfb-package/web-ui/js/system-dashboard.js b/deploy/tkfb-package/web-ui/js/system-dashboard.js new file mode 100644 index 0000000..0d08f7c --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/system-dashboard.js @@ -0,0 +1,907 @@ +// System Dashboard JavaScript +console.log('🚀 system-dashboard.js loaded'); + +import { apiRequest } from './api-helper.js'; +import { getCurrentUser } from './auth.js'; + +console.log('📦 modules imported successfully'); + +// 전역 변수 +let systemData = { + users: [], + logs: [], + systemStatus: {} +}; + +// Initialize on page load +document.addEventListener('DOMContentLoaded', function() { + console.log('📄 DOM loaded, starting initialization'); + initializeSystemDashboard(); + setupEventListeners(); +}); + +// Setup event listeners +function setupEventListeners() { + // Add event listeners to all data-action buttons + const actionButtons = document.querySelectorAll('[data-action]'); + + actionButtons.forEach(button => { + const action = button.getAttribute('data-action'); + + switch(action) { + case 'account-management': + button.addEventListener('click', openAccountManagement); + console.log('✅ Account management button listener added'); + break; + case 'system-logs': + button.addEventListener('click', openSystemLogs); + console.log('✅ System logs button listener added'); + break; + case 'database-management': + button.addEventListener('click', openDatabaseManagement); + console.log('✅ Database management button listener added'); + break; + case 'system-settings': + button.addEventListener('click', openSystemSettings); + console.log('✅ System settings button listener added'); + break; + case 'backup-management': + button.addEventListener('click', openBackupManagement); + console.log('✅ Backup management button listener added'); + break; + case 'monitoring': + button.addEventListener('click', openMonitoring); + console.log('✅ Monitoring button listener added'); + break; + case 'close-modal': + button.addEventListener('click', () => closeModal('account-modal')); + console.log('✅ Modal close button listener added'); + break; + } + }); + + console.log(`🎯 Total ${actionButtons.length} event listeners setup completed`); +} + +// Initialize system dashboard +async function initializeSystemDashboard() { + try { + console.log('🚀 Starting system dashboard initialization...'); + + // Load user info + await loadUserInfo(); + console.log('✅ User info loaded'); + + // Load system status + await loadSystemStatus(); + console.log('✅ System status loaded'); + + // Load user statistics + await loadUserStats(); + console.log('✅ User statistics loaded'); + + // Load recent activities + await loadRecentActivities(); + console.log('✅ Recent activities loaded'); + + // Setup auto-refresh (every 30 seconds) + setInterval(refreshSystemStatus, 30000); + + console.log('🎉 System dashboard initialization completed'); + } catch (error) { + console.error('❌ System dashboard initialization error:', error); + showNotification('Error loading system dashboard', 'error'); + } +} + +// 사용자 정보 로드 +async function loadUserInfo() { + try { + const user = getCurrentUser(); + if (user && user.name) { + document.getElementById('user-name').textContent = user.name; + } + } catch (error) { + console.error('사용자 정보 로드 오류:', error); + } +} + +// 시스템 상태 로드 +async function loadSystemStatus() { + try { + // 서버 상태 확인 + const serverStatus = await checkServerStatus(); + updateServerStatus(serverStatus); + + // 데이터베이스 상태 확인 + const dbStatus = await checkDatabaseStatus(); + updateDatabaseStatus(dbStatus); + + // 시스템 알림 확인 + const alerts = await getSystemAlerts(); + updateSystemAlerts(alerts); + + } catch (error) { + console.error('시스템 상태 로드 오류:', error); + } +} + +// 서버 상태 확인 +async function checkServerStatus() { + try { + const response = await apiRequest('/api/system/status', 'GET'); + return response.success ? 'online' : 'offline'; + } catch (error) { + return 'offline'; + } +} + +// 데이터베이스 상태 확인 +async function checkDatabaseStatus() { + try { + const response = await apiRequest('/api/system/db-status', 'GET'); + return response; + } catch (error) { + return { status: 'error', connections: 0 }; + } +} + +// 시스템 알림 가져오기 +async function getSystemAlerts() { + try { + const response = await apiRequest('/api/system/alerts', 'GET'); + return response.alerts || []; + } catch (error) { + return []; + } +} + +// 서버 상태 업데이트 +function updateServerStatus(status) { + const serverCheckTime = document.getElementById('server-check-time'); + const statusElements = document.querySelectorAll('.status-value'); + + if (serverCheckTime) { + serverCheckTime.textContent = new Date().toLocaleTimeString('ko-KR'); + } + + // 서버 상태 표시 업데이트 로직 추가 +} + +// 데이터베이스 상태 업데이트 +function updateDatabaseStatus(dbStatus) { + const dbConnections = document.getElementById('db-connections'); + if (dbConnections && dbStatus.connections !== undefined) { + dbConnections.textContent = dbStatus.connections; + } +} + +// 시스템 알림 업데이트 +function updateSystemAlerts(alerts) { + const systemAlerts = document.getElementById('system-alerts'); + if (systemAlerts) { + systemAlerts.textContent = alerts.length; + systemAlerts.className = `status-value ${alerts.length > 0 ? 'warning' : 'online'}`; + } +} + +// 사용자 통계 로드 +async function loadUserStats() { + try { + const response = await apiRequest('/api/system/users/stats', 'GET'); + + if (response.success) { + const activeUsers = document.getElementById('active-users'); + const totalUsers = document.getElementById('total-users'); + + if (activeUsers) activeUsers.textContent = response.data.active || 0; + if (totalUsers) totalUsers.textContent = response.data.total || 0; + } + } catch (error) { + console.error('사용자 통계 로드 오류:', error); + } +} + +// 최근 활동 로드 +async function loadRecentActivities() { + try { + const response = await apiRequest('/api/system/recent-activities', 'GET'); + + if (response.success && response.data) { + displayRecentActivities(response.data); + } + } catch (error) { + console.error('최근 활동 로드 오류:', error); + displayDefaultActivities(); + } +} + +// 최근 활동 표시 +function displayRecentActivities(activities) { + const container = document.getElementById('recent-activities'); + + if (!container) return; + + if (!activities || activities.length === 0) { + container.innerHTML = '

최근 활동이 없습니다.

'; + return; + } + + const html = activities.map(activity => ` +
+
+ +
+
+

${activity.title}

+

${activity.description}

+
+
+ ${formatTimeAgo(activity.created_at)} +
+
+ `).join(''); + + container.innerHTML = html; +} + +// 기본 활동 표시 (데이터 로드 실패 시) +function displayDefaultActivities() { + const container = document.getElementById('recent-activities'); + if (!container) return; + + const defaultActivities = [ + { + type: 'system', + title: '시스템 시작', + description: '시스템이 정상적으로 시작되었습니다.', + created_at: new Date().toISOString() + } + ]; + + displayRecentActivities(defaultActivities); +} + +// 활동 타입에 따른 아이콘 반환 +function getActivityIcon(type) { + const icons = { + 'login': 'fa-sign-in-alt', + 'user_create': 'fa-user-plus', + 'user_update': 'fa-user-edit', + 'user_delete': 'fa-user-minus', + 'system': 'fa-cog', + 'database': 'fa-database', + 'backup': 'fa-download', + 'error': 'fa-exclamation-triangle' + }; + + return icons[type] || 'fa-info-circle'; +} + +// 시간 포맷팅 (몇 분 전, 몇 시간 전 등) +function formatTimeAgo(dateString) { + const now = new Date(); + const date = new Date(dateString); + const diffInSeconds = Math.floor((now - date) / 1000); + + if (diffInSeconds < 60) { + return '방금 전'; + } else if (diffInSeconds < 3600) { + return `${Math.floor(diffInSeconds / 60)}분 전`; + } else if (diffInSeconds < 86400) { + return `${Math.floor(diffInSeconds / 3600)}시간 전`; + } else { + return `${Math.floor(diffInSeconds / 86400)}일 전`; + } +} + +// 시스템 상태 새로고침 +async function refreshSystemStatus() { + try { + await loadSystemStatus(); + await loadUserStats(); + } catch (error) { + console.error('시스템 상태 새로고침 오류:', error); + } +} + +// Open account management +function openAccountManagement() { + console.log('🎯 Account management button clicked'); + const modal = document.getElementById('account-modal'); + const content = document.getElementById('account-management-content'); + + console.log('Modal element:', modal); + console.log('Content element:', content); + + if (modal && content) { + console.log('✅ Modal and content elements found, loading content...'); + // Load account management content + loadAccountManagementContent(content); + modal.style.display = 'block'; + console.log('✅ Modal displayed'); + } else { + console.error('❌ Modal or content element not found'); + } +} + +// 계정 관리 컨텐츠 로드 +async function loadAccountManagementContent(container) { + try { + container.innerHTML = ` +
+ 로딩 중... +
+ `; + + // 사용자 목록 로드 + const response = await apiRequest('/api/system/users', 'GET'); + + if (response.success) { + displayAccountManagement(container, response.data); + } else { + throw new Error(response.error || '사용자 목록을 불러올 수 없습니다.'); + } + } catch (error) { + console.error('계정 관리 컨텐츠 로드 오류:', error); + container.innerHTML = ` +
+ +

계정 정보를 불러오는 중 오류가 발생했습니다.

+ +
+ `; + } +} + +// 계정 관리 화면 표시 +function displayAccountManagement(container, users) { + const html = ` + + `; + + container.innerHTML = html; + systemData.users = users; +} + +// 사용자 테이블 행 생성 +function generateUsersTableRows(users) { + if (!users || users.length === 0) { + return '등록된 사용자가 없습니다.'; + } + + return users.map(user => ` + + ${user.user_id} + ${user.username} + ${user.name || '-'} + + + ${getRoleDisplayName(user.role)} + + + + + ${user.is_active ? '활성' : '비활성'} + + + ${user.last_login_at ? formatDate(user.last_login_at) : '없음'} + + + + + + `).join(''); +} + +// 권한 표시명 반환 +function getRoleDisplayName(role) { + const roleNames = { + 'system': '시스템', + 'admin': '관리자', + 'leader': '그룹장', + 'user': '사용자' + }; + return roleNames[role] || role; +} + +// 날짜 포맷팅 +function formatDate(dateString) { + if (!dateString) return '-'; + const date = new Date(dateString); + return date.toLocaleString('ko-KR'); +} + +// 시스템 로그 열기 +function openSystemLogs() { + console.log('시스템 로그 버튼 클릭됨'); + const modal = document.getElementById('account-modal'); + const content = document.getElementById('account-management-content'); + + if (modal && content) { + loadSystemLogsContent(content); + modal.style.display = 'block'; + } +} + +// 시스템 로그 컨텐츠 로드 +async function loadSystemLogsContent(container) { + try { + container.innerHTML = ` +
+

시스템 로그

+
+ + + +
+
+
+ 로그 로딩 중... +
+
+
+ `; + + // 로그 데이터 로드 + await loadLogsData(); + + } catch (error) { + console.error('시스템 로그 로드 오류:', error); + container.innerHTML = ` +
+ +

시스템 로그를 불러오는 중 오류가 발생했습니다.

+
+ `; + } +} + +// 로그 데이터 로드 +async function loadLogsData() { + try { + const response = await apiRequest('/api/system/logs/activity', 'GET'); + const logsContainer = document.querySelector('.logs-container'); + + if (response.success && response.data) { + displayLogs(response.data, logsContainer); + } else { + logsContainer.innerHTML = '

로그 데이터가 없습니다.

'; + } + } catch (error) { + console.error('로그 데이터 로드 오류:', error); + document.querySelector('.logs-container').innerHTML = '

로그 데이터를 불러올 수 없습니다.

'; + } +} + +// 로그 표시 +function displayLogs(logs, container) { + if (!logs || logs.length === 0) { + container.innerHTML = '

표시할 로그가 없습니다.

'; + return; + } + + const html = ` + + + + + + + + + + + ${logs.map(log => ` + + + + + + + `).join('')} + +
시간유형사용자내용
${formatDate(log.created_at)}${log.type}${log.username || '-'}${log.description}
+ `; + + container.innerHTML = html; +} + +// 로그 필터링 +function filterLogs() { + console.log('로그 필터링 실행'); + // 실제 구현은 추후 추가 + showNotification('로그 필터링 기능은 개발 중입니다.', 'info'); +} + +// 데이터베이스 관리 열기 +function openDatabaseManagement() { + console.log('데이터베이스 관리 버튼 클릭됨'); + showNotification('데이터베이스 관리 기능은 개발 중입니다.', 'info'); +} + +// 시스템 설정 열기 +function openSystemSettings() { + console.log('시스템 설정 버튼 클릭됨'); + showNotification('시스템 설정 기능은 개발 중입니다.', 'info'); +} + +// 백업 관리 열기 +function openBackupManagement() { + console.log('백업 관리 버튼 클릭됨'); + showNotification('백업 관리 기능은 개발 중입니다.', 'info'); +} + +// 모니터링 열기 +function openMonitoring() { + console.log('모니터링 버튼 클릭됨'); + showNotification('모니터링 기능은 개발 중입니다.', 'info'); +} + +// 모달 닫기 +function closeModal(modalId) { + const modal = document.getElementById(modalId); + if (modal) { + modal.style.display = 'none'; + } +} + +// 로그아웃 +function logout() { + if (confirm('로그아웃 하시겠습니까?')) { + localStorage.removeItem('token'); + localStorage.removeItem('user'); + window.location.href = '/'; + } +} + +// 알림 표시 +function showNotification(message, type = 'info') { + // 간단한 알림 표시 (나중에 토스트 라이브러리로 교체 가능) + const notification = document.createElement('div'); + notification.className = `notification notification-${type}`; + notification.textContent = message; + + document.body.appendChild(notification); + + setTimeout(() => { + notification.remove(); + }, 5000); +} + +// 사용자 편집 +async function editUser(userId) { + try { + // 사용자 정보 가져오기 + const response = await apiRequest(`/api/system/users`, 'GET'); + if (!response.success) { + throw new Error('사용자 정보를 가져올 수 없습니다.'); + } + + const user = response.data.find(u => u.user_id === userId); + if (!user) { + throw new Error('해당 사용자를 찾을 수 없습니다.'); + } + + // 편집 폼 표시 + showUserEditForm(user); + + } catch (error) { + console.error('사용자 편집 오류:', error); + showNotification('사용자 정보를 불러오는 중 오류가 발생했습니다.', 'error'); + } +} + +// 사용자 편집 폼 표시 +function showUserEditForm(user) { + const formHtml = ` +
+

사용자 정보 수정

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ `; + + const container = document.getElementById('account-management-content'); + container.innerHTML = formHtml; + + // 폼 제출 이벤트 리스너 + document.getElementById('edit-user-form').addEventListener('submit', async (e) => { + e.preventDefault(); + await updateUser(user.user_id); + }); +} + +// 사용자 정보 업데이트 +async function updateUser(userId) { + try { + const formData = { + name: document.getElementById('edit-name').value, + email: document.getElementById('edit-email').value || null, + role: document.getElementById('edit-role').value, + access_level: document.getElementById('edit-role').value, + is_active: parseInt(document.getElementById('edit-is-active').value), + worker_id: document.getElementById('edit-worker-id').value || null + }; + + const response = await apiRequest(`/api/system/users/${userId}`, 'PUT', formData); + + if (response.success) { + showNotification('사용자 정보가 성공적으로 업데이트되었습니다.', 'success'); + closeModal('account-modal'); + // 계정 관리 다시 로드 + setTimeout(() => openAccountManagement(), 500); + } else { + throw new Error(response.error || '업데이트에 실패했습니다.'); + } + + } catch (error) { + console.error('사용자 업데이트 오류:', error); + showNotification('사용자 정보 업데이트 중 오류가 발생했습니다.', 'error'); + } +} + +// 사용자 삭제 +async function deleteUser(userId) { + try { + // 사용자 정보 가져오기 + const response = await apiRequest(`/api/system/users`, 'GET'); + if (!response.success) { + throw new Error('사용자 정보를 가져올 수 없습니다.'); + } + + const user = response.data.find(u => u.user_id === userId); + if (!user) { + throw new Error('해당 사용자를 찾을 수 없습니다.'); + } + + // 삭제 확인 + if (!confirm(`정말로 사용자 '${user.username}'를 삭제하시겠습니까?\n\n이 작업은 되돌릴 수 없습니다.`)) { + return; + } + + // 사용자 삭제 요청 + const deleteResponse = await apiRequest(`/api/system/users/${userId}`, 'DELETE'); + + if (deleteResponse.success) { + showNotification('사용자가 성공적으로 삭제되었습니다.', 'success'); + // 계정 관리 다시 로드 + setTimeout(() => { + const container = document.getElementById('account-management-content'); + if (container) { + loadAccountManagementContent(container); + } + }, 500); + } else { + throw new Error(deleteResponse.error || '삭제에 실패했습니다.'); + } + + } catch (error) { + console.error('사용자 삭제 오류:', error); + showNotification('사용자 삭제 중 오류가 발생했습니다.', 'error'); + } +} + +// 새 사용자 생성 폼 열기 +function openCreateUserForm() { + const formHtml = ` +
+

새 사용자 생성

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ `; + + const container = document.getElementById('account-management-content'); + container.innerHTML = formHtml; + + // 폼 제출 이벤트 리스너 + document.getElementById('create-user-form').addEventListener('submit', async (e) => { + e.preventDefault(); + await createUser(); + }); +} + +// 새 사용자 생성 +async function createUser() { + try { + const formData = { + username: document.getElementById('create-username').value, + password: document.getElementById('create-password').value, + name: document.getElementById('create-name').value, + email: document.getElementById('create-email').value || null, + role: document.getElementById('create-role').value, + access_level: document.getElementById('create-role').value, + worker_id: document.getElementById('create-worker-id').value || null + }; + + const response = await apiRequest('/api/system/users', 'POST', formData); + + if (response.success) { + showNotification('새 사용자가 성공적으로 생성되었습니다.', 'success'); + // 계정 관리 목록으로 돌아가기 + setTimeout(() => { + const container = document.getElementById('account-management-content'); + loadAccountManagementContent(container); + }, 500); + } else { + throw new Error(response.error || '사용자 생성에 실패했습니다.'); + } + + } catch (error) { + console.error('사용자 생성 오류:', error); + showNotification('사용자 생성 중 오류가 발생했습니다.', 'error'); + } +} + +// 사용자 필터링 +function filterUsers() { + const searchTerm = document.getElementById('user-search').value.toLowerCase(); + const roleFilter = document.getElementById('role-filter').value; + const rows = document.querySelectorAll('#users-tbody tr'); + + rows.forEach(row => { + const username = row.cells[1].textContent.toLowerCase(); + const name = row.cells[2].textContent.toLowerCase(); + const role = row.querySelector('.role-badge').textContent.toLowerCase(); + + const matchesSearch = username.includes(searchTerm) || name.includes(searchTerm); + const matchesRole = !roleFilter || role.includes(roleFilter); + + row.style.display = matchesSearch && matchesRole ? '' : 'none'; + }); +} + +// 모달 관련 함수들만 전역으로 노출 (동적으로 생성되는 HTML에서 사용) +window.closeModal = closeModal; +window.editUser = editUser; +window.deleteUser = deleteUser; +window.openCreateUserForm = openCreateUserForm; +window.filterUsers = filterUsers; +window.filterLogs = filterLogs; + +// 테스트용 전역 함수 +window.testFunction = function() { + console.log('🧪 테스트 함수 호출됨!'); + alert('테스트 함수가 정상적으로 작동합니다!'); +}; + +console.log('🌐 전역 함수들 노출 완료'); + +// 모달 외부 클릭 시 닫기 +window.onclick = function(event) { + const modals = document.querySelectorAll('.modal'); + modals.forEach(modal => { + if (event.target === modal) { + modal.style.display = 'none'; + } + }); +}; diff --git a/deploy/tkfb-package/web-ui/js/task-management.js b/deploy/tkfb-package/web-ui/js/task-management.js new file mode 100644 index 0000000..917ceb9 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/task-management.js @@ -0,0 +1,508 @@ +// task-management.js - 작업 관리 페이지 JavaScript + +// 전역 변수 +let workTypes = []; // 공정 목록 +let tasks = []; // 작업 목록 +let currentWorkTypeId = ''; // 현재 선택된 공정 ID +let currentEditingTask = null; + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', async () => { + console.log('📋 작업 관리 페이지 초기화'); + + // API 함수가 로드될 때까지 대기 + let retryCount = 0; + while (!window.apiCall && retryCount < 50) { + await new Promise(resolve => setTimeout(resolve, 100)); + retryCount++; + } + + if (!window.apiCall) { + showToast('시스템을 초기화할 수 없습니다. 페이지를 새로고침해주세요.', 'error'); + return; + } + + await loadAllData(); +}); + +// 전체 데이터 로드 +async function loadAllData() { + try { + // 공정 목록 로드 (work_types 조회 - 코드 관리 API 사용) + await loadWorkTypes(); + // 작업 목록 로드 + await loadTasks(); + } catch (error) { + console.error('❌ 데이터 로드 오류:', error); + showToast('데이터를 불러오는 중 오류가 발생했습니다.', 'error'); + } +} +window.loadAllData = loadAllData; + +// 공정 목록 로드 +async function loadWorkTypes() { + try { + // 작업 유형(공정) 목록 조회 + const response = await window.apiCall('/daily-work-reports/work-types'); + + if (response && response.success) { + workTypes = response.data || []; + } else { + workTypes = []; + } + + console.log('✅ 공정 목록 로드:', workTypes.length + '개'); + renderWorkTypeTabs(); + populateWorkTypeSelect(); + } catch (error) { + console.error('❌ 공정 목록 조회 오류:', error); + // API 오류 시에도 빈 배열로 처리 + workTypes = []; + renderWorkTypeTabs(); + } +} + +// 작업 목록 로드 +async function loadTasks() { + try { + const response = await window.apiCall('/tasks'); + + if (response && response.success) { + tasks = response.data || []; + console.log('✅ 작업 목록 로드:', tasks.length + '개'); + } else { + tasks = []; + } + + renderTasks(); + updateStatistics(); + } catch (error) { + console.error('❌ 작업 목록 조회 오류:', error); + showToast('작업 목록을 불러오는 중 오류가 발생했습니다.', 'error'); + tasks = []; + renderTasks(); + } +} + +// 공정 탭 렌더링 +function renderWorkTypeTabs() { + const tabsContainer = document.getElementById('workTypeTabs'); + + let tabsHtml = ` + + `; + + workTypes.forEach(workType => { + const count = tasks.filter(t => t.work_type_id === workType.id).length; + const isActive = currentWorkTypeId === workType.id; + + const safeId = parseInt(workType.id) || 0; + tabsHtml += ` + + `; + }); + + tabsContainer.innerHTML = tabsHtml; +} + +// 공정 전환 +function switchWorkType(workTypeId) { + currentWorkTypeId = workTypeId === '' ? '' : parseInt(workTypeId); + renderWorkTypeTabs(); + renderTasks(); + updateStatistics(); +} +window.switchWorkType = switchWorkType; + +// 작업 목록 렌더링 +function renderTasks() { + const grid = document.getElementById('taskGrid'); + + // 현재 선택된 공정으로 필터링 + let filteredTasks = tasks; + if (currentWorkTypeId !== '') { + filteredTasks = tasks.filter(t => t.work_type_id === currentWorkTypeId); + } + + if (filteredTasks.length === 0) { + grid.innerHTML = ` +
+
📋
+

등록된 작업이 없습니다

+

"작업 추가" 버튼을 눌러 새로운 작업을 등록하세요

+
+ `; + return; + } + + grid.innerHTML = filteredTasks.map(task => createTaskCard(task)).join(''); +} + +// 작업 카드 생성 +function createTaskCard(task) { + const statusBadge = task.is_active + ? '활성' + : '비활성'; + const safeTaskId = parseInt(task.task_id) || 0; + + return ` +
+
+

${escapeHtml(task.task_name)}

+ ${statusBadge} +
+ +
+
+ 소속 공정 + ${escapeHtml(task.work_type_name || '-')} +
+ ${task.category ? ` +
+ 카테고리 + ${escapeHtml(task.category)} +
+ ` : ''} +
+ + ${task.description ? ` +
+ ${escapeHtml(task.description)} +
+ ` : ''} + +
+ 등록: ${escapeHtml(formatDate(task.created_at))} +
+
+ `; +} + +// 통계 업데이트 +function updateStatistics() { + let filteredTasks = tasks; + if (currentWorkTypeId !== '') { + filteredTasks = tasks.filter(t => t.work_type_id === currentWorkTypeId); + } + + const activeCount = filteredTasks.filter(t => t.is_active).length; + + document.getElementById('totalCount').textContent = filteredTasks.length; + document.getElementById('activeCount').textContent = activeCount; +} + +// 새로고침 +function refreshTasks() { + loadAllData(); + showToast('데이터를 새로고침했습니다.', 'success'); +} +window.refreshTasks = refreshTasks; + +// ==================== 작업 모달 ==================== + +// 작업 모달 열기 (신규) +function openTaskModal() { + currentEditingTask = null; + document.getElementById('taskModalTitle').textContent = '작업 추가'; + document.getElementById('taskForm').reset(); + document.getElementById('taskId').value = ''; + document.getElementById('taskIsActive').checked = true; + + // 공정 선택 드롭다운 채우기 + populateWorkTypeSelect(); + + // 현재 선택된 공정이 있으면 자동 선택 + if (currentWorkTypeId !== '') { + document.getElementById('taskWorkTypeId').value = currentWorkTypeId; + } + + document.getElementById('deleteTaskBtn').style.display = 'none'; + document.getElementById('taskModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; +} +window.openTaskModal = openTaskModal; + +// 작업 편집 +async function editTask(taskId) { + try { + const response = await window.apiCall(`/tasks/${taskId}`); + + if (response && response.success) { + currentEditingTask = response.data; + + document.getElementById('taskModalTitle').textContent = '작업 수정'; + document.getElementById('taskId').value = currentEditingTask.task_id; + document.getElementById('taskWorkTypeId').value = currentEditingTask.work_type_id || ''; + document.getElementById('taskName').value = currentEditingTask.task_name; + document.getElementById('taskDescription').value = currentEditingTask.description || ''; + document.getElementById('taskIsActive').checked = currentEditingTask.is_active; + + document.getElementById('deleteTaskBtn').style.display = 'block'; + document.getElementById('taskModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; + } + } catch (error) { + console.error('❌ 작업 조회 오류:', error); + showToast('작업 정보를 불러올 수 없습니다.', 'error'); + } +} +window.editTask = editTask; + +// 작업 모달 닫기 +function closeTaskModal() { + document.getElementById('taskModal').style.display = 'none'; + document.body.style.overflow = 'auto'; + currentEditingTask = null; +} +window.closeTaskModal = closeTaskModal; + +// 공정 선택 드롭다운 채우기 +function populateWorkTypeSelect() { + const select = document.getElementById('taskWorkTypeId'); + + select.innerHTML = '' + + workTypes.map(wt => ` + + `).join(''); +} + +// 작업 저장 +async function saveTask() { + const taskId = document.getElementById('taskId').value; + const taskData = { + work_type_id: parseInt(document.getElementById('taskWorkTypeId').value) || null, + task_name: document.getElementById('taskName').value.trim(), + description: document.getElementById('taskDescription').value.trim() || null, + is_active: document.getElementById('taskIsActive').checked ? 1 : 0 + }; + + if (!taskData.task_name) { + showToast('작업명을 입력해주세요.', 'error'); + return; + } + + try { + let response; + if (taskId) { + // 수정 + response = await window.apiCall(`/tasks/${taskId}`, 'PUT', taskData); + } else { + // 신규 + response = await window.apiCall('/tasks', 'POST', taskData); + } + + if (response && response.success) { + showToast(taskId ? '작업이 수정되었습니다.' : '작업이 추가되었습니다.', 'success'); + closeTaskModal(); + await loadAllData(); + } else { + throw new Error(response.message || '저장에 실패했습니다.'); + } + } catch (error) { + console.error('❌ 작업 저장 오류:', error); + showToast('작업 저장 중 오류가 발생했습니다.', 'error'); + } +} +window.saveTask = saveTask; + +// 작업 삭제 +async function deleteTask() { + if (!currentEditingTask) return; + + if (!confirm(`"${currentEditingTask.task_name}" 작업을 삭제하시겠습니까?`)) { + return; + } + + try { + const response = await window.apiCall(`/tasks/${currentEditingTask.task_id}`, 'DELETE'); + + if (response && response.success) { + showToast('작업이 삭제되었습니다.', 'success'); + closeTaskModal(); + await loadAllData(); + } else { + throw new Error(response.message || '삭제에 실패했습니다.'); + } + } catch (error) { + console.error('❌ 작업 삭제 오류:', error); + showToast('작업 삭제 중 오류가 발생했습니다.', 'error'); + } +} +window.deleteTask = deleteTask; + +// ==================== 유틸리티 ==================== + +// 날짜 포맷 +function formatDate(dateString) { + if (!dateString) return '-'; + const date = new Date(dateString); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit' + }); +} + +// 토스트 알림 +function showToast(message, type = 'info') { + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + toast.textContent = message; + toast.style.cssText = ` + position: fixed; + top: 20px; + right: 20px; + padding: 1rem 1.5rem; + background: ${type === 'success' ? '#10b981' : type === 'error' ? '#ef4444' : '#3b82f6'}; + color: white; + border-radius: 0.5rem; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + z-index: 10000; + animation: slideIn 0.3s ease-out; + `; + + document.body.appendChild(toast); + + setTimeout(() => { + toast.style.animation = 'slideOut 0.3s ease-out'; + setTimeout(() => toast.remove(), 300); + }, 3000); +} + +// ==================== 공정 관리 ==================== + +let currentEditingWorkType = null; + +// 공정 모달 열기 (신규) +function openWorkTypeModal() { + currentEditingWorkType = null; + document.getElementById('workTypeModalTitle').textContent = '공정 추가'; + document.getElementById('workTypeId').value = ''; + document.getElementById('workTypeName').value = ''; + document.getElementById('workTypeCategory').value = ''; + document.getElementById('workTypeDescription').value = ''; + document.getElementById('deleteWorkTypeBtn').style.display = 'none'; + + document.getElementById('workTypeModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; +} +window.openWorkTypeModal = openWorkTypeModal; + +// 공정 수정 모달 열기 +async function editWorkType(workTypeId) { + try { + const workType = workTypes.find(wt => wt.id === workTypeId); + if (!workType) { + showToast('공정 정보를 찾을 수 없습니다.', 'error'); + return; + } + + currentEditingWorkType = workType; + document.getElementById('workTypeModalTitle').textContent = '공정 수정'; + document.getElementById('workTypeId').value = workType.id; + document.getElementById('workTypeName').value = workType.name || ''; + document.getElementById('workTypeCategory').value = workType.category || ''; + document.getElementById('workTypeDescription').value = workType.description || ''; + document.getElementById('deleteWorkTypeBtn').style.display = 'block'; + + document.getElementById('workTypeModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; + } catch (error) { + console.error('❌ 공정 조회 오류:', error); + showToast('공정 정보를 불러올 수 없습니다.', 'error'); + } +} +window.editWorkType = editWorkType; + +// 공정 모달 닫기 +function closeWorkTypeModal() { + document.getElementById('workTypeModal').style.display = 'none'; + document.body.style.overflow = 'auto'; + currentEditingWorkType = null; +} +window.closeWorkTypeModal = closeWorkTypeModal; + +// 공정 저장 +async function saveWorkType() { + const workTypeId = document.getElementById('workTypeId').value; + const workTypeData = { + name: document.getElementById('workTypeName').value.trim(), + category: document.getElementById('workTypeCategory').value.trim() || null, + description: document.getElementById('workTypeDescription').value.trim() || null + }; + + if (!workTypeData.name) { + showToast('공정명을 입력해주세요.', 'error'); + return; + } + + try { + let response; + if (workTypeId) { + // 수정 + response = await window.apiCall(`/daily-work-reports/work-types/${workTypeId}`, 'PUT', workTypeData); + } else { + // 신규 + response = await window.apiCall('/daily-work-reports/work-types', 'POST', workTypeData); + } + + if (response && response.success) { + showToast(workTypeId ? '공정이 수정되었습니다.' : '공정이 추가되었습니다.', 'success'); + closeWorkTypeModal(); + await loadAllData(); + } else { + throw new Error(response.message || '저장에 실패했습니다.'); + } + } catch (error) { + console.error('❌ 공정 저장 오류:', error); + showToast('공정 저장 중 오류가 발생했습니다.', 'error'); + } +} +window.saveWorkType = saveWorkType; + +// 공정 삭제 +async function deleteWorkType() { + if (!currentEditingWorkType) return; + + // 이 공정에 속한 작업이 있는지 확인 + const relatedTasks = tasks.filter(t => t.work_type_id === currentEditingWorkType.id); + if (relatedTasks.length > 0) { + showToast(`이 공정에 ${relatedTasks.length}개의 작업이 연결되어 있어 삭제할 수 없습니다.`, 'error'); + return; + } + + if (!confirm(`"${currentEditingWorkType.name}" 공정을 삭제하시겠습니까?`)) { + return; + } + + try { + const response = await window.apiCall(`/daily-work-reports/work-types/${currentEditingWorkType.id}`, 'DELETE'); + + if (response && response.success) { + showToast('공정이 삭제되었습니다.', 'success'); + closeWorkTypeModal(); + await loadAllData(); + } else { + throw new Error(response.message || '삭제에 실패했습니다.'); + } + } catch (error) { + console.error('❌ 공정 삭제 오류:', error); + showToast('공정 삭제 중 오류가 발생했습니다.', 'error'); + } +} +window.deleteWorkType = deleteWorkType; diff --git a/deploy/tkfb-package/web-ui/js/tbm.js b/deploy/tkfb-package/web-ui/js/tbm.js new file mode 100644 index 0000000..c0befbb --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/tbm.js @@ -0,0 +1,2570 @@ +// tbm.js - TBM 관리 페이지 JavaScript + +// 전역 변수 +let allSessions = []; +let todaySessions = []; +let allWorkers = []; +let allProjects = []; +let allWorkTypes = []; +let allTasks = []; +let allSafetyChecks = []; +let allWorkplaces = []; +let allWorkplaceCategories = []; +let currentUser = null; +let currentSessionId = null; +let selectedWorkers = new Set(); +let currentTab = 'tbm-input'; + +// 새로운 TBM 입력 방식 관련 변수 +let workerTaskList = []; // [{worker_id, worker_name, job_type, tasks: [{task_line_id, project_id, ...}]}] +let selectedWorkersInModal = new Set(); // 모달에서 선택된 작업자 ID 세트 +let currentEditingTaskLine = null; // 현재 편집 중인 작업 라인 정보 {workerIndex, taskIndex} +let selectedCategory = null; +let selectedWorkplace = null; +let selectedCategoryName = ''; +let selectedWorkplaceName = ''; +let isBulkMode = false; // 일괄 설정 모드인지 여부 +let bulkSelectedWorkers = new Set(); // 일괄 설정에서 선택된 작업자 인덱스 + +// TBM 관리 탭용 변수 +let loadedDaysCount = 7; // 처음에 로드할 일수 +let dateGroupedSessions = {}; // 날짜별로 그룹화된 세션 +let allLoadedSessions = []; // 전체 로드된 세션 + +// ==================== 유틸리티 함수 ==================== + +/** + * 서울 시간대(Asia/Seoul, UTC+9) 기준 오늘 날짜를 YYYY-MM-DD 형식으로 반환 + */ +function getTodayKST() { + const now = new Date(); + // 한국 시간대로 변환 (UTC+9) + const kstOffset = 9 * 60; // 9시간을 분 단위로 + const utc = now.getTime() + (now.getTimezoneOffset() * 60000); // UTC 시간 + const kstTime = new Date(utc + (kstOffset * 60000)); // KST 시간 + + const year = kstTime.getFullYear(); + const month = String(kstTime.getMonth() + 1).padStart(2, '0'); + const day = String(kstTime.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; +} + +/** + * ISO 날짜 문자열을 YYYY-MM-DD 형식으로 변환 + * @param {string} dateString - ISO 형식 날짜 문자열 또는 YYYY-MM-DD 형식 + * @returns {string} YYYY-MM-DD 형식 날짜 + */ +function formatDate(dateString) { + if (!dateString) return ''; + + // 이미 YYYY-MM-DD 형식이면 그대로 반환 + if (/^\d{4}-\d{2}-\d{2}$/.test(dateString)) { + return dateString; + } + + // ISO 형식 또는 다른 형식이면 변환 + const date = new Date(dateString); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; +} + +// ==================== 페이지 초기화 ==================== + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', async () => { + console.log('🛠️ TBM 관리 페이지 초기화'); + + // API 함수가 로드될 때까지 대기 + let retryCount = 0; + while (!window.apiCall && retryCount < 50) { + await new Promise(resolve => setTimeout(resolve, 100)); + retryCount++; + } + + if (!window.apiCall) { + showToast('시스템을 초기화할 수 없습니다. 페이지를 새로고침해주세요.', 'error'); + return; + } + + // 오늘 날짜 설정 (서울 시간대 기준) + const today = getTodayKST(); + const tbmDateEl = document.getElementById('tbmDate'); + const sessionDateEl = document.getElementById('sessionDate'); + if (tbmDateEl) tbmDateEl.value = today; + if (sessionDateEl) sessionDateEl.value = today; + + // 이벤트 리스너 설정 + setupEventListeners(); + + // 초기 데이터 로드 + await loadInitialData(); + await loadTodayOnlyTbm(); +}); + +// 이벤트 리스너 설정 +function setupEventListeners() { + // 날짜 선택기 제거됨 - 날짜별 그룹 뷰 사용 +} + +// 초기 데이터 로드 +async function loadInitialData() { + try { + // 현재 로그인한 사용자 정보 가져오기 + const userInfo = JSON.parse(localStorage.getItem('user') || '{}'); + currentUser = userInfo; + console.log('👤 로그인 사용자:', currentUser, 'worker_id:', currentUser?.worker_id); + + // 작업자 목록 로드 (생산팀 소속만) + const workersResponse = await window.apiCall('/workers?limit=1000&department_id=1'); + if (workersResponse) { + allWorkers = Array.isArray(workersResponse) ? workersResponse : (workersResponse.data || []); + // 활성 상태인 작업자만 필터링 + allWorkers = allWorkers.filter(w => w.status === 'active' && w.employment_status === 'employed'); + console.log('✅ 작업자 목록 로드:', allWorkers.length + '명'); + } + + // 프로젝트 목록 로드 (활성 프로젝트만) + const projectsResponse = await window.apiCall('/projects?is_active=1'); + if (projectsResponse) { + const projects = Array.isArray(projectsResponse) ? projectsResponse : (projectsResponse.data || []); + // 활성 프로젝트만 필터링 (is_active가 1 또는 true인 경우) + allProjects = projects.filter(p => p.is_active === 1 || p.is_active === true || p.is_active === '1'); + console.log('✅ 프로젝트 목록 로드:', allProjects.length + '개 (활성)'); + populateProjectSelect(); + } + + // 안전 체크리스트 로드 + const safetyResponse = await window.apiCall('/tbm/safety-checks'); + if (safetyResponse && safetyResponse.success) { + allSafetyChecks = safetyResponse.data; + console.log('✅ 안전 체크리스트 로드:', allSafetyChecks.length + '개'); + } + + // 공정(Work Types) 목록 로드 + const workTypesResponse = await window.apiCall('/daily-work-reports/work-types'); + if (workTypesResponse && workTypesResponse.success) { + allWorkTypes = workTypesResponse.data || []; + console.log('✅ 공정 목록 로드:', allWorkTypes.length + '개'); + } + + // 작업(Tasks) 목록 로드 + const tasksResponse = await window.apiCall('/tasks/active/list'); + if (tasksResponse && tasksResponse.success) { + allTasks = tasksResponse.data || []; + console.log('✅ 작업 목록 로드:', allTasks.length + '개'); + } + + // 작업장 목록 로드 + const workplacesResponse = await window.apiCall('/workplaces?is_active=true'); + if (workplacesResponse && workplacesResponse.success) { + allWorkplaces = workplacesResponse.data || []; + console.log('✅ 작업장 목록 로드:', allWorkplaces.length + '개'); + } + + // 작업장 카테고리 로드 + const categoriesResponse = await window.apiCall('/workplaces/categories/active/list'); + if (categoriesResponse && categoriesResponse.success) { + allWorkplaceCategories = categoriesResponse.data || []; + console.log('✅ 작업장 카테고리 로드:', allWorkplaceCategories.length + '개'); + } + + } catch (error) { + console.error('❌ 초기 데이터 로드 오류:', error); + showToast('데이터를 불러오는 중 오류가 발생했습니다.', 'error'); + } +} + +// ==================== 탭 전환 ==================== + +// 탭 전환 +function switchTbmTab(tabName) { + currentTab = tabName; + + // 탭 버튼 활성화 상태 변경 + document.querySelectorAll('.tbm-tab-btn').forEach(btn => { + if (btn.dataset.tab === tabName) { + btn.classList.add('active'); + } else { + btn.classList.remove('active'); + } + }); + + // 탭 컨텐츠 표시 변경 + document.querySelectorAll('.tbm-tab-content').forEach(content => { + content.classList.remove('active'); + }); + document.getElementById(`${tabName}-tab`).classList.add('active'); + + // 탭에 따라 데이터 로드 + if (tabName === 'tbm-input') { + loadTodayOnlyTbm(); + } else if (tabName === 'tbm-manage') { + loadRecentTbmGroupedByDate(); + } +} +window.switchTbmTab = switchTbmTab; + +// ==================== TBM 입력 탭 ==================== + +// 오늘의 TBM만 로드 (TBM 입력 탭용) +async function loadTodayOnlyTbm() { + const today = getTodayKST(); + + try { + const response = await window.apiCall(`/tbm/sessions/date/${today}`); + + if (response && response.success) { + todaySessions = response.data || []; + displayTodayTbmSessions(); + } else { + todaySessions = []; + displayTodayTbmSessions(); + } + } catch (error) { + console.error('❌ 오늘 TBM 조회 오류:', error); + showToast('오늘 TBM을 불러오는 중 오류가 발생했습니다.', 'error'); + todaySessions = []; + displayTodayTbmSessions(); + } +} +window.loadTodayOnlyTbm = loadTodayOnlyTbm; + +// 오늘의 TBM 세션 표시 +function displayTodayTbmSessions() { + const grid = document.getElementById('todayTbmGrid'); + const emptyState = document.getElementById('todayEmptyState'); + const todayTotalEl = document.getElementById('todayTotalSessions'); + const todayCompletedEl = document.getElementById('todayCompletedSessions'); + const todayActiveEl = document.getElementById('todayActiveSessions'); + + if (todaySessions.length === 0) { + grid.innerHTML = ''; + emptyState.style.display = 'flex'; + todayTotalEl.textContent = '0'; + todayCompletedEl.textContent = '0'; + todayActiveEl.textContent = '0'; + return; + } + + emptyState.style.display = 'none'; + + const completedCount = todaySessions.filter(s => s.status === 'completed').length; + const activeCount = todaySessions.filter(s => s.status === 'draft').length; + + todayTotalEl.textContent = todaySessions.length; + todayCompletedEl.textContent = completedCount; + todayActiveEl.textContent = activeCount; + + grid.innerHTML = todaySessions.map(session => createSessionCard(session)).join(''); +} + +// ==================== TBM 관리 탭 ==================== + +// 오늘 TBM 로드 (TBM 관리 탭용) - 레거시 호환 +async function loadTodayTbm() { + await loadRecentTbmGroupedByDate(); +} +window.loadTodayTbm = loadTodayTbm; + +// 전체 TBM 로드 - 레거시 호환 +async function loadAllTbm() { + loadedDaysCount = 30; // 30일치 로드 + await loadRecentTbmGroupedByDate(); +} +window.loadAllTbm = loadAllTbm; + +// ==================== 날짜별 그룹 TBM 로드 (새 기능) ==================== + +/** + * 사용자가 Admin인지 확인 + */ +function isAdminUser() { + if (!currentUser) return false; + return currentUser.role === 'Admin' || currentUser.role === 'System Admin'; +} + +/** + * 최근 TBM을 날짜별로 그룹화하여 로드 + */ +async function loadRecentTbmGroupedByDate() { + try { + const today = new Date(); + const dates = []; + + // 최근 N일의 날짜 생성 + for (let i = 0; i < loadedDaysCount; i++) { + const date = new Date(today); + date.setDate(date.getDate() - i); + const dateStr = date.toISOString().split('T')[0]; + dates.push(dateStr); + } + + // 각 날짜의 TBM 로드 + dateGroupedSessions = {}; + allLoadedSessions = []; + + const promises = dates.map(date => window.apiCall(`/tbm/sessions/date/${date}`)); + const results = await Promise.all(promises); + + results.forEach((response, index) => { + const date = dates[index]; + if (response && response.success && response.data && response.data.length > 0) { + let sessions = response.data; + + // admin이 아니면 본인이 작성한 TBM만 필터링 + if (!isAdminUser()) { + const userId = currentUser?.user_id; + const workerId = currentUser?.worker_id; + sessions = sessions.filter(s => { + return s.created_by === userId || + s.leader_id === workerId || + s.created_by_name === currentUser?.name; + }); + } + + if (sessions.length > 0) { + dateGroupedSessions[date] = sessions; + allLoadedSessions = allLoadedSessions.concat(sessions); + } + } + }); + + // 날짜별 그룹 표시 + displayTbmGroupedByDate(); + + // 뷰 모드 표시 + updateViewModeIndicator(); + + } catch (error) { + console.error('❌ TBM 날짜별 로드 오류:', error); + showToast('TBM을 불러오는 중 오류가 발생했습니다.', 'error'); + dateGroupedSessions = {}; + displayTbmGroupedByDate(); + } +} +window.loadRecentTbmGroupedByDate = loadRecentTbmGroupedByDate; + +/** + * 뷰 모드 표시 업데이트 + */ +function updateViewModeIndicator() { + const indicator = document.getElementById('viewModeIndicator'); + const text = document.getElementById('viewModeText'); + + if (indicator && text) { + if (isAdminUser()) { + indicator.style.display = 'none'; // Admin은 표시 안 함 (전체가 기본) + } else { + indicator.style.display = 'inline-flex'; + text.textContent = '내 TBM'; + } + } +} + +/** + * 날짜별 그룹으로 TBM 표시 + */ +function displayTbmGroupedByDate() { + const container = document.getElementById('tbmDateGroupsContainer'); + const emptyState = document.getElementById('emptyState'); + const totalSessionsEl = document.getElementById('totalSessions'); + const completedSessionsEl = document.getElementById('completedSessions'); + + if (!container) return; + + // 날짜별로 정렬 (최신순) + const sortedDates = Object.keys(dateGroupedSessions).sort((a, b) => new Date(b) - new Date(a)); + + if (sortedDates.length === 0 || allLoadedSessions.length === 0) { + container.innerHTML = ''; + if (emptyState) emptyState.style.display = 'flex'; + if (totalSessionsEl) totalSessionsEl.textContent = '0'; + if (completedSessionsEl) completedSessionsEl.textContent = '0'; + return; + } + + if (emptyState) emptyState.style.display = 'none'; + + // 통계 업데이트 + const completedCount = allLoadedSessions.filter(s => s.status === 'completed').length; + if (totalSessionsEl) totalSessionsEl.textContent = allLoadedSessions.length; + if (completedSessionsEl) completedSessionsEl.textContent = completedCount; + + // 날짜별 그룹 HTML 생성 + const today = getTodayKST(); + const dayNames = ['일', '월', '화', '수', '목', '금', '토']; + + container.innerHTML = sortedDates.map(date => { + const sessions = dateGroupedSessions[date]; + const dateObj = new Date(date + 'T00:00:00'); + const dayName = dayNames[dateObj.getDay()]; + const isToday = date === today; + + // 날짜 포맷팅 (YYYY-MM-DD → MM월 DD일) + const [year, month, day] = date.split('-'); + const displayDate = `${parseInt(month)}월 ${parseInt(day)}일`; + + return ` +
+
+ + ${displayDate} + ${dayName}요일 + ${isToday ? '오늘' : ''} + ${sessions.length}건 +
+
+
+ ${sessions.map(session => createSessionCard(session)).join('')} +
+
+
+ `; + }).join(''); +} + +// 날짜 그룹 토글 +function toggleDateGroup(date) { + const group = document.querySelector(`.tbm-date-group[data-date="${date}"]`); + if (group) { + group.classList.toggle('collapsed'); + } +} +window.toggleDateGroup = toggleDateGroup; + +/** + * 더 많은 날짜 로드 + */ +async function loadMoreTbmDays() { + loadedDaysCount += 7; // 7일씩 추가 + await loadRecentTbmGroupedByDate(); + showToast(`최근 ${loadedDaysCount}일의 TBM을 로드했습니다.`, 'success'); +} +window.loadMoreTbmDays = loadMoreTbmDays; + +// 특정 날짜의 TBM 세션 목록 로드 +async function loadTbmSessionsByDate(date) { + try { + const response = await window.apiCall(`/tbm/sessions/date/${date}`); + + if (response && response.success) { + allSessions = response.data || []; + displayTbmSessions(); + } else { + allSessions = []; + displayTbmSessions(); + } + } catch (error) { + console.error('❌ TBM 세션 조회 오류:', error); + showToast('TBM 세션을 불러오는 중 오류가 발생했습니다.', 'error'); + allSessions = []; + displayTbmSessions(); + } +} + +// TBM 세션 목록 표시 (관리 탭용) - 레거시 호환 (날짜별 그룹 뷰 사용) +function displayTbmSessions() { + // 새 날짜별 그룹 뷰로 리다이렉트 + if (allSessions.length > 0) { + // allSessions를 날짜별로 그룹화 + dateGroupedSessions = {}; + allSessions.forEach(session => { + const date = formatDate(session.session_date); + if (!dateGroupedSessions[date]) { + dateGroupedSessions[date] = []; + } + dateGroupedSessions[date].push(session); + }); + allLoadedSessions = allSessions; + } + displayTbmGroupedByDate(); +} + +// TBM 세션 카드 생성 (공통) +function createSessionCard(session) { + const statusBadge = { + 'draft': '진행중', + 'completed': '완료', + 'cancelled': '취소' + }[session.status] || ''; + + // 작업 책임자 표시 (leader_name이 있으면 표시, 없으면 created_by_name 표시) + const leaderName = escapeHtml(session.leader_name || session.created_by_name || '작업 책임자'); + const leaderRole = escapeHtml(session.leader_name + ? (session.leader_job_type || '작업자') + : '관리자'); + const safeSessionId = parseInt(session.session_id) || 0; + + return ` +
+
+
+
+

+ ${leaderName} + ${leaderRole} +

+
+ ${statusBadge} +
+
+ 📅 + ${escapeHtml(formatDate(session.session_date))} ${session.start_time ? '| ' + escapeHtml(session.start_time) : ''} +
+
+ +
+
+
+ 프로젝트 + ${escapeHtml(session.project_name || '-')} +
+
+ 공정 + ${escapeHtml(session.work_type_name || '-')} +
+
+ 작업장 + ${escapeHtml(session.work_location || '-')} +
+
+ 팀원 + ${parseInt(session.team_member_count) || 0}명 +
+
+
+ + ${session.status === 'draft' ? ` + + ` : ''} +
+ `; +} + +// 새 TBM 모달 열기 +function openNewTbmModal() { + currentSessionId = null; + workerTaskList = []; // 작업자 목록 초기화 + + document.getElementById('modalTitle').innerHTML = '📝 새 TBM 시작'; + document.getElementById('sessionId').value = ''; + document.getElementById('tbmForm').reset(); + + const today = getTodayKST(); + document.getElementById('sessionDate').value = today; + + // 날짜 표시 업데이트 + const [year, month, day] = today.split('-'); + const dayNames = ['일', '월', '화', '수', '목', '금', '토']; + const dateObj = new Date(today); + const dayName = dayNames[dateObj.getDay()]; + const sessionDateDisplay = document.getElementById('sessionDateDisplay'); + if (sessionDateDisplay) { + sessionDateDisplay.textContent = `${year}년 ${parseInt(month)}월 ${parseInt(day)}일 (${dayName})`; + } + + // 입력자 자동 설정 (readonly) + if (currentUser && currentUser.worker_id) { + const worker = allWorkers.find(w => w.worker_id === currentUser.worker_id); + if (worker) { + document.getElementById('leaderName').textContent = worker.worker_name; + document.getElementById('leaderId').value = worker.worker_id; + } + } else if (currentUser && currentUser.name) { + // 관리자: 이름만 표시 + document.getElementById('leaderName').textContent = currentUser.name; + document.getElementById('leaderId').value = ''; + } + + // 작업자 목록 UI 초기화 + renderWorkerTaskList(); + + document.getElementById('tbmModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; +} +window.openNewTbmModal = openNewTbmModal; + +// 입력자 선택 드롭다운 채우기 +function populateLeaderSelect() { + const leaderSelect = document.getElementById('leaderId'); + if (!leaderSelect) return; + + // 로그인한 사용자가 작업자와 연결되어 있는지 확인 + if (currentUser && currentUser.worker_id) { + // 작업자와 연결된 경우: 자동으로 선택하고 비활성화 + const worker = allWorkers.find(w => w.worker_id === currentUser.worker_id); + if (worker) { + const jobTypeText = worker.job_type ? ` (${escapeHtml(worker.job_type)})` : ''; + leaderSelect.innerHTML = ``; + leaderSelect.disabled = true; + console.log('✅ 입력자 자동 설정:', worker.worker_name); + } else { + // 작업자를 찾을 수 없는 경우 + leaderSelect.innerHTML = ''; + leaderSelect.disabled = true; + } + } else { + // 관리자 계정 (worker_id가 없음): 드롭다운으로 선택 가능 + const leaders = allWorkers.filter(w => + w.job_type === 'leader' || w.job_type === '그룹장' || w.job_type === 'admin' + ); + + leaderSelect.innerHTML = '' + + leaders.map(w => { + const jobTypeText = w.job_type ? ` (${escapeHtml(w.job_type)})` : ''; + return ``; + }).join(''); + leaderSelect.disabled = false; + console.log('✅ 관리자: 입력자 선택 가능'); + } +} + +// 프로젝트 선택 드롭다운 채우기 +function populateProjectSelect() { + const projectSelect = document.getElementById('projectId'); + if (!projectSelect) return; + + projectSelect.innerHTML = '' + + allProjects.map(p => ` + + `).join(''); +} + +// 공정(Work Type) 선택 드롭다운 채우기 +function populateWorkTypeSelect() { + const workTypeSelect = document.getElementById('workTypeId'); + if (!workTypeSelect) return; + + workTypeSelect.innerHTML = '' + + allWorkTypes.map(wt => ` + + `).join(''); +} + +// 작업장 선택 드롭다운 채우기 +function populateWorkplaceSelect() { + const workLocationSelect = document.getElementById('workLocation'); + if (!workLocationSelect) return; + + workLocationSelect.innerHTML = '' + + allWorkplaces.map(wp => ` + + `).join(''); +} + +// 작업(Task) 선택 드롭다운 채우기 (공정 선택 시 호출) +function loadTasksByWorkType() { + const workTypeId = document.getElementById('workTypeId').value; + const taskSelect = document.getElementById('taskId'); + + if (!taskSelect) return; + + if (!workTypeId) { + taskSelect.innerHTML = ''; + taskSelect.disabled = true; + return; + } + + // 선택한 공정에 해당하는 작업만 필터링 + const filteredTasks = allTasks.filter(task => + task.work_type_id === parseInt(workTypeId) + ); + + taskSelect.disabled = false; + taskSelect.innerHTML = '' + + filteredTasks.map(task => ` + + `).join(''); + + if (filteredTasks.length === 0) { + taskSelect.innerHTML = ''; + taskSelect.disabled = true; + } +} +window.loadTasksByWorkType = loadTasksByWorkType; + +// TBM 모달 닫기 +function closeTbmModal() { + document.getElementById('tbmModal').style.display = 'none'; + document.body.style.overflow = 'auto'; +} +window.closeTbmModal = closeTbmModal; + +// TBM 세션 저장 (작업자별 상세 정보 포함) +async function saveTbmSession() { + console.log('💾 TBM 저장 시작...'); + + let leaderId = parseInt(document.getElementById('leaderId').value); + + // 관리자 계정인 경우 leader_id를 null로 설정 + if (!leaderId || isNaN(leaderId)) { + if (!currentUser.worker_id) { + console.log('📝 관리자 계정: leader_id를 NULL로 설정'); + leaderId = null; + } else { + console.error('❌ 입력자 설정 오류'); + showToast('입력자 정보가 올바르지 않습니다.', 'error'); + return; + } + } + + const sessionData = { + session_date: document.getElementById('sessionDate').value, + leader_id: leaderId + }; + + console.log('📅 세션 데이터:', sessionData); + console.log('👥 작업자 리스트:', workerTaskList); + console.log('👤 현재 사용자:', currentUser); + + if (!sessionData.session_date) { + console.error('❌ 날짜 누락'); + showToast('TBM 날짜를 확인해주세요.', 'error'); + return; + } + + if (workerTaskList.length === 0) { + console.error('❌ 작업자 리스트가 비어있음'); + showToast('최소 1명 이상의 작업자를 추가해주세요.', 'error'); + return; + } + + // 필수 항목 검증 (공정, 작업, 작업장) + let hasError = false; + for (const workerData of workerTaskList) { + for (const taskLine of workerData.tasks) { + if (!taskLine.work_type_id || !taskLine.task_id || !taskLine.workplace_id) { + showToast(`${workerData.worker_name}의 공정, 작업, 작업장을 모두 선택해주세요.`, 'error'); + hasError = true; + break; + } + } + if (hasError) break; + } + if (hasError) return; + + // 작업자-작업 데이터를 평평하게 변환 + const members = []; + for (const workerData of workerTaskList) { + for (const taskLine of workerData.tasks) { + members.push({ + worker_id: workerData.worker_id, + project_id: taskLine.project_id || null, + work_type_id: taskLine.work_type_id, + task_id: taskLine.task_id, + workplace_category_id: taskLine.workplace_category_id || null, + workplace_id: taskLine.workplace_id, + work_detail: taskLine.work_detail || null, + is_present: taskLine.is_present !== undefined ? taskLine.is_present : true + }); + } + } + + console.log('📤 전송할 팀 데이터:', members); + + try { + const editingSessionId = document.getElementById('sessionId').value; + + if (editingSessionId) { + // 수정 모드: 기존 팀원 삭제 후 재등록 + console.log('📝 TBM 수정 모드:', editingSessionId); + + // 기존 팀원 삭제 + await window.apiCall(`/tbm/sessions/${editingSessionId}/team/clear`, 'DELETE'); + + // 새 팀원 일괄 추가 + const teamResponse = await window.apiCall( + `/tbm/sessions/${editingSessionId}/team/batch`, + 'POST', + { members } + ); + + if (teamResponse && teamResponse.success) { + showToast(`TBM이 수정되었습니다 (작업자 ${workerTaskList.length}명, 작업 ${members.length}건)`, 'success'); + closeTbmModal(); + + // 목록 새로고침 + if (currentTab === 'tbm-input') { + await loadTodayOnlyTbm(); + } else { + await loadTbmSessionsByDate(sessionData.session_date); + } + } else { + throw new Error(teamResponse.message || '팀원 수정에 실패했습니다.'); + } + } else { + // 생성 모드: 새 TBM 세션 생성 + console.log('✨ TBM 생성 모드'); + + const response = await window.apiCall('/tbm/sessions', 'POST', sessionData); + + if (response && response.success) { + const createdSessionId = response.data.session_id; + console.log('✅ TBM 세션 생성 완료:', createdSessionId); + + // 작업자 일괄 추가 + const teamResponse = await window.apiCall( + `/tbm/sessions/${createdSessionId}/team/batch`, + 'POST', + { members } + ); + + if (teamResponse && teamResponse.success) { + showToast(`TBM이 생성되었습니다 (작업자 ${workerTaskList.length}명, 작업 ${members.length}건)`, 'success'); + closeTbmModal(); + + // 목록 새로고침 + if (currentTab === 'tbm-input') { + await loadTodayOnlyTbm(); + } else { + await loadTbmSessionsByDate(sessionData.session_date); + } + } else { + throw new Error(teamResponse.message || '팀원 추가에 실패했습니다.'); + } + } else { + throw new Error(response.message || '저장에 실패했습니다.'); + } + } + } catch (error) { + console.error('❌ TBM 세션 저장 오류:', error); + showToast('TBM 세션 저장 중 오류가 발생했습니다.', 'error'); + } +} +window.saveTbmSession = saveTbmSession; + +// ==================== 작업자 관리 ==================== + +// UUID 생성 함수 +function generateUUID() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + const r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); +} + +// 작업자 카드 리스트 렌더링 +function renderWorkerTaskList() { + const listContainer = document.getElementById('workerTaskList'); + const emptyState = document.getElementById('workerListEmpty'); + + if (workerTaskList.length === 0) { + if (emptyState) emptyState.style.display = 'flex'; + listContainer.innerHTML = ''; + return; + } + + if (emptyState) emptyState.style.display = 'none'; + + listContainer.innerHTML = workerTaskList.map((workerData, workerIndex) => { + return ` +
+ +
+
+ 👤 ${escapeHtml(workerData.worker_name)} + + ${escapeHtml(workerData.job_type || '작업자')} + +
+ +
+ + + ${workerData.tasks.map((taskLine, taskIndex) => renderTaskLine(workerData, workerIndex, taskLine, taskIndex)).join('')} + + +
+ +
+
+ `; + }).join(''); +} + +// 작업 라인 렌더링 +function renderTaskLine(workerData, workerIndex, taskLine, taskIndex) { + const project = allProjects.find(p => p.project_id === taskLine.project_id); + const workType = allWorkTypes.find(wt => wt.id === taskLine.work_type_id); + const task = allTasks.find(t => t.task_id === taskLine.task_id); + const safeWorkerIndex = parseInt(workerIndex) || 0; + const safeTaskIndex = parseInt(taskIndex) || 0; + + const projectText = escapeHtml(project ? project.project_name : '프로젝트 선택'); + const workTypeText = escapeHtml(workType ? workType.name : '공정 선택 *'); + const taskText = escapeHtml(task ? task.task_name : '작업 선택 *'); + const workplaceText = taskLine.workplace_name + ? escapeHtml(`${taskLine.workplace_category_name || ''} → ${taskLine.workplace_name}`) + : '작업장 선택 *'; + + return ` +
+
+ + + + + + + + + + + +
+ + + ${workerData.tasks.length > 1 ? ` + + ` : ''} +
+ `; +} +window.renderWorkerTaskList = renderWorkerTaskList; + +// 작업자 선택 모달 열기 +function openWorkerSelectionModal() { + selectedWorkersInModal.clear(); + + const workerCardGrid = document.getElementById('workerCardGrid'); + if (!workerCardGrid) return; + + // 이미 추가된 작업자 ID 세트 + const addedWorkerIds = new Set(workerTaskList.map(w => w.worker_id)); + + workerCardGrid.innerHTML = allWorkers.map(worker => { + const isAdded = addedWorkerIds.has(worker.worker_id); + const safeWorkerId = parseInt(worker.worker_id) || 0; + return ` +
+
+ ${isAdded ? '✓' : '☐'} + ${escapeHtml(worker.worker_name)} +
+
+ ${escapeHtml(worker.job_type || '작업자')}${worker.department ? ' · ' + escapeHtml(worker.department) : ''} +
+ ${isAdded ? '
이미 추가됨
' : ''} +
+ `; + }).join(''); + + document.getElementById('workerSelectionModal').style.display = 'flex'; +} +window.openWorkerSelectionModal = openWorkerSelectionModal; + +// 작업자 선택 토글 +function toggleWorkerSelection(workerId) { + // 이미 추가된 작업자는 선택 불가 + const alreadyAdded = workerTaskList.some(w => w.worker_id === workerId); + if (alreadyAdded) return; + + const card = document.getElementById(`worker-card-${workerId}`); + if (!card) return; + + if (selectedWorkersInModal.has(workerId)) { + selectedWorkersInModal.delete(workerId); + card.style.borderColor = '#e5e7eb'; + card.style.background = 'white'; + card.innerHTML = card.innerHTML.replace('☑', '☐'); + } else { + selectedWorkersInModal.add(workerId); + card.style.borderColor = '#3b82f6'; + card.style.background = '#eff6ff'; + card.innerHTML = card.innerHTML.replace('☐', '☑'); + } +} +window.toggleWorkerSelection = toggleWorkerSelection; + +// 전체 선택 +function selectAllWorkersInModal() { + const addedWorkerIds = new Set(workerTaskList.map(w => w.worker_id)); + allWorkers.forEach(worker => { + if (!addedWorkerIds.has(worker.worker_id)) { + selectedWorkersInModal.add(worker.worker_id); + const card = document.getElementById(`worker-card-${worker.worker_id}`); + if (card) { + card.style.borderColor = '#3b82f6'; + card.style.background = '#eff6ff'; + card.innerHTML = card.innerHTML.replace('☐', '☑'); + } + } + }); +} +window.selectAllWorkersInModal = selectAllWorkersInModal; + +// 전체 해제 +function deselectAllWorkersInModal() { + selectedWorkersInModal.forEach(workerId => { + const card = document.getElementById(`worker-card-${workerId}`); + if (card) { + card.style.borderColor = '#e5e7eb'; + card.style.background = 'white'; + card.innerHTML = card.innerHTML.replace('☑', '☐'); + } + }); + selectedWorkersInModal.clear(); +} +window.deselectAllWorkersInModal = deselectAllWorkersInModal; + +// 작업자 선택 확정 +function confirmWorkerSelection() { + if (selectedWorkersInModal.size === 0) { + showToast('작업자를 선택해주세요.', 'error'); + return; + } + + selectedWorkersInModal.forEach(workerId => { + const worker = allWorkers.find(w => w.worker_id === workerId); + if (worker) { + workerTaskList.push({ + worker_id: worker.worker_id, + worker_name: worker.worker_name, + job_type: worker.job_type, + tasks: [ + { + task_line_id: generateUUID(), + project_id: null, + work_type_id: null, + task_id: null, + workplace_category_id: null, + workplace_id: null, + workplace_category_name: '', + workplace_name: '', + work_detail: null, + is_present: true + } + ] + }); + } + }); + + renderWorkerTaskList(); + closeWorkerSelectionModal(); + showToast(`${selectedWorkersInModal.size}명의 작업자가 추가되었습니다.`, 'success'); +} +window.confirmWorkerSelection = confirmWorkerSelection; + +// 작업자 선택 모달 닫기 +function closeWorkerSelectionModal() { + document.getElementById('workerSelectionModal').style.display = 'none'; + selectedWorkersInModal.clear(); +} +window.closeWorkerSelectionModal = closeWorkerSelectionModal; + +// 작업자에 작업 라인 추가 +function addTaskLineToWorker(workerIndex) { + workerTaskList[workerIndex].tasks.push({ + task_line_id: generateUUID(), + project_id: null, + work_type_id: null, + task_id: null, + workplace_category_id: null, + workplace_id: null, + workplace_category_name: '', + workplace_name: '', + work_detail: null, + is_present: true + }); + renderWorkerTaskList(); + showToast('작업 라인이 추가되었습니다.', 'success'); +} +window.addTaskLineToWorker = addTaskLineToWorker; + +// 작업 라인 제거 +function removeTaskLine(workerIndex, taskIndex) { + workerTaskList[workerIndex].tasks.splice(taskIndex, 1); + renderWorkerTaskList(); + showToast('작업 라인이 제거되었습니다.', 'info'); +} +window.removeTaskLine = removeTaskLine; + +// 작업자 제거 +function removeWorkerFromList(workerIndex) { + const workerName = workerTaskList[workerIndex].worker_name; + workerTaskList.splice(workerIndex, 1); + renderWorkerTaskList(); + showToast(`${workerName}이(가) 제거되었습니다.`, 'info'); +} +window.removeWorkerFromList = removeWorkerFromList; + +// ==================== 일괄 설정 ==================== + +// 일괄 설정 모달 열기 +function openBulkSettingModal() { + if (workerTaskList.length === 0) { + showToast('먼저 작업자를 선택해주세요.', 'error'); + return; + } + + // 작업자 선택 영역 초기화 + bulkSelectedWorkers.clear(); + renderBulkWorkerSelection(); + + // 작업 정보 초기화 + document.getElementById('bulkProjectId').value = ''; + document.getElementById('bulkWorkTypeId').value = ''; + document.getElementById('bulkTaskId').value = ''; + document.getElementById('bulkWorkplaceCategoryId').value = ''; + document.getElementById('bulkWorkplaceId').value = ''; + + document.getElementById('bulkProjectBtn').textContent = '📁 프로젝트 선택'; + document.getElementById('bulkProjectBtn').classList.remove('btn-primary'); + document.getElementById('bulkProjectBtn').classList.add('btn-secondary'); + + document.getElementById('bulkWorkTypeBtn').textContent = '⚙️ 공정 선택'; + document.getElementById('bulkWorkTypeBtn').classList.remove('btn-primary'); + document.getElementById('bulkWorkTypeBtn').classList.add('btn-secondary'); + + document.getElementById('bulkTaskBtn').textContent = '🔧 작업 선택'; + document.getElementById('bulkTaskBtn').classList.remove('btn-primary'); + document.getElementById('bulkTaskBtn').classList.add('btn-secondary'); + document.getElementById('bulkTaskBtn').disabled = true; + + document.getElementById('bulkWorkplaceBtn').textContent = '📍 작업장 선택'; + document.getElementById('bulkWorkplaceBtn').classList.remove('btn-primary'); + document.getElementById('bulkWorkplaceBtn').classList.add('btn-secondary'); + + document.getElementById('bulkSettingModal').style.display = 'flex'; +} +window.openBulkSettingModal = openBulkSettingModal; + +// 일괄 설정용 작업자 선택 영역 렌더링 +function renderBulkWorkerSelection() { + const container = document.getElementById('bulkWorkerSelection'); + if (!container) return; + + container.innerHTML = workerTaskList.map((workerData, index) => { + const isSelected = bulkSelectedWorkers.has(index); + return ` +
+ + + ${workerData.worker_name} + +
+ `; + }).join(''); +} +window.renderBulkWorkerSelection = renderBulkWorkerSelection; + +// 일괄 설정용 작업자 선택 토글 +function toggleBulkWorkerSelection(workerIndex) { + if (bulkSelectedWorkers.has(workerIndex)) { + bulkSelectedWorkers.delete(workerIndex); + } else { + bulkSelectedWorkers.add(workerIndex); + } + renderBulkWorkerSelection(); +} +window.toggleBulkWorkerSelection = toggleBulkWorkerSelection; + +// 일괄 설정용 전체 선택 +function selectAllForBulk() { + workerTaskList.forEach((_, index) => { + bulkSelectedWorkers.add(index); + }); + renderBulkWorkerSelection(); +} +window.selectAllForBulk = selectAllForBulk; + +// 일괄 설정용 전체 해제 +function deselectAllForBulk() { + bulkSelectedWorkers.clear(); + renderBulkWorkerSelection(); +} +window.deselectAllForBulk = deselectAllForBulk; + +// 일괄 설정 모달 닫기 +function closeBulkSettingModal() { + document.getElementById('bulkSettingModal').style.display = 'none'; + isBulkMode = false; +} +window.closeBulkSettingModal = closeBulkSettingModal; + +// 일괄 설정용 항목 선택 +function openBulkItemSelect(type) { + isBulkMode = true; + const modal = document.getElementById('itemSelectModal'); + const titleEl = document.getElementById('itemSelectModalTitle'); + const listEl = document.getElementById('itemSelectList'); + + let title = ''; + let items = []; + + if (type === 'project') { + title = '프로젝트 선택'; + // 활성 프로젝트만 표시 + const activeProjects = allProjects.filter(p => + p.is_active === 1 || p.is_active === true || p.is_active === '1' + ); + items = activeProjects.map(p => ({ + id: p.project_id, + name: p.project_name, + icon: '📁' + })); + } else if (type === 'workType') { + title = '공정 선택'; + items = allWorkTypes.map(wt => ({ + id: wt.id, + name: wt.name, + icon: '⚙️' + })); + } else if (type === 'task') { + title = '작업 선택'; + const currentWorkTypeId = parseInt(document.getElementById('bulkWorkTypeId').value); + if (!currentWorkTypeId) { + showToast('공정을 먼저 선택해주세요.', 'error'); + return; + } + const filteredTasks = allTasks.filter(t => t.work_type_id === currentWorkTypeId); + items = filteredTasks.map(t => ({ + id: t.task_id, + name: t.task_name, + icon: '🔧' + })); + } + + titleEl.textContent = title; + listEl.innerHTML = items.length > 0 ? items.map(item => ` + + `).join('') : '
선택 가능한 항목이 없습니다
'; + + modal.style.display = 'flex'; +} +window.openBulkItemSelect = openBulkItemSelect; + +// 일괄 설정용 항목 선택 처리 +function selectBulkItem(type, itemId, itemName) { + if (type === 'project') { + document.getElementById('bulkProjectId').value = itemId; + document.getElementById('bulkProjectBtn').textContent = `📁 ${itemName}`; + document.getElementById('bulkProjectBtn').classList.remove('btn-secondary'); + document.getElementById('bulkProjectBtn').classList.add('btn-primary'); + } else if (type === 'workType') { + document.getElementById('bulkWorkTypeId').value = itemId; + document.getElementById('bulkWorkTypeBtn').textContent = `⚙️ ${itemName}`; + document.getElementById('bulkWorkTypeBtn').classList.remove('btn-secondary'); + document.getElementById('bulkWorkTypeBtn').classList.add('btn-primary'); + + // 공정 변경 시 작업 초기화 + document.getElementById('bulkTaskId').value = ''; + document.getElementById('bulkTaskBtn').textContent = '🔧 작업 선택'; + document.getElementById('bulkTaskBtn').classList.remove('btn-primary'); + document.getElementById('bulkTaskBtn').classList.add('btn-secondary'); + document.getElementById('bulkTaskBtn').disabled = false; + } else if (type === 'task') { + document.getElementById('bulkTaskId').value = itemId; + document.getElementById('bulkTaskBtn').textContent = `🔧 ${itemName}`; + document.getElementById('bulkTaskBtn').classList.remove('btn-secondary'); + document.getElementById('bulkTaskBtn').classList.add('btn-primary'); + } + + closeItemSelectModal(); + isBulkMode = false; +} +window.selectBulkItem = selectBulkItem; + +// 일괄 설정용 작업장 선택 +function openBulkWorkplaceSelect() { + isBulkMode = true; + loadWorkplaceCategories(); + document.getElementById('workplaceSelectModal').style.display = 'flex'; +} +window.openBulkWorkplaceSelect = openBulkWorkplaceSelect; + +// 일괄 설정 적용 +function applyBulkSettings() { + if (bulkSelectedWorkers.size === 0) { + showToast('작업자를 선택해주세요.', 'error'); + return; + } + + const projectId = document.getElementById('bulkProjectId').value; + const workTypeId = document.getElementById('bulkWorkTypeId').value; + const taskId = document.getElementById('bulkTaskId').value; + const workplaceCategoryId = document.getElementById('bulkWorkplaceCategoryId').value; + const workplaceId = document.getElementById('bulkWorkplaceId').value; + + if (!workTypeId || !taskId || !workplaceId) { + showToast('공정, 작업, 작업장은 필수 항목입니다.', 'error'); + return; + } + + // 선택된 작업자들의 첫 번째 작업 라인에 적용 + let appliedCount = 0; + bulkSelectedWorkers.forEach(workerIndex => { + const workerData = workerTaskList[workerIndex]; + if (workerData && workerData.tasks.length > 0) { + workerData.tasks[0].project_id = projectId ? parseInt(projectId) : null; + workerData.tasks[0].work_type_id = parseInt(workTypeId); + workerData.tasks[0].task_id = parseInt(taskId); + workerData.tasks[0].workplace_category_id = workplaceCategoryId ? parseInt(workplaceCategoryId) : null; + workerData.tasks[0].workplace_id = parseInt(workplaceId); + workerData.tasks[0].workplace_category_name = selectedCategoryName; + workerData.tasks[0].workplace_name = selectedWorkplaceName; + appliedCount++; + } + }); + + renderWorkerTaskList(); + closeBulkSettingModal(); + showToast(`${appliedCount}명의 작업자에게 일괄 설정이 적용되었습니다.`, 'success'); +} +window.applyBulkSettings = applyBulkSettings; + +// ==================== 항목 선택 (프로젝트/공정/작업) ==================== + +// 항목 선택 모달 열기 +function openItemSelect(type, workerIndex, taskIndex) { + currentEditingTaskLine = { workerIndex, taskIndex }; + + const modal = document.getElementById('itemSelectModal'); + const titleEl = document.getElementById('itemSelectModalTitle'); + const listEl = document.getElementById('itemSelectList'); + + let title = ''; + let items = []; + + if (type === 'project') { + title = '프로젝트 선택'; + // 활성 프로젝트만 표시 + const activeProjects = allProjects.filter(p => + p.is_active === 1 || p.is_active === true || p.is_active === '1' + ); + items = activeProjects.map(p => ({ + id: p.project_id, + name: p.project_name, + icon: '📁' + })); + } else if (type === 'workType') { + title = '공정 선택'; + items = allWorkTypes.map(wt => ({ + id: wt.id, + name: wt.name, + icon: '⚙️' + })); + } else if (type === 'task') { + title = '작업 선택'; + const currentWorkTypeId = workerTaskList[workerIndex].tasks[taskIndex].work_type_id; + if (!currentWorkTypeId) { + showToast('공정을 먼저 선택해주세요.', 'error'); + return; + } + const filteredTasks = allTasks.filter(t => t.work_type_id === currentWorkTypeId); + items = filteredTasks.map(t => ({ + id: t.task_id, + name: t.task_name, + icon: '🔧' + })); + } + + titleEl.textContent = title; + listEl.innerHTML = items.length > 0 ? items.map(item => ` + + `).join('') : '
선택 가능한 항목이 없습니다
'; + + modal.style.display = 'flex'; +} +window.openItemSelect = openItemSelect; + +// 항목 선택 +function selectItem(type, itemId) { + // 일괄 모드면 여기서 처리하지 않음 + if (isBulkMode) return; + + if (!currentEditingTaskLine) return; + + const { workerIndex, taskIndex } = currentEditingTaskLine; + const taskLine = workerTaskList[workerIndex].tasks[taskIndex]; + + if (type === 'project') { + taskLine.project_id = itemId; + } else if (type === 'workType') { + taskLine.work_type_id = itemId; + // 공정 변경 시 작업 초기화 + taskLine.task_id = null; + } else if (type === 'task') { + taskLine.task_id = itemId; + } + + renderWorkerTaskList(); + closeItemSelectModal(); +} +window.selectItem = selectItem; + +// 항목 선택 모달 닫기 +function closeItemSelectModal() { + document.getElementById('itemSelectModal').style.display = 'none'; + currentEditingTaskLine = null; +} +window.closeItemSelectModal = closeItemSelectModal; + +// ==================== 작업장 2단계 선택 ==================== + +// 작업장 선택 모달 열기 (작업 라인용) +async function openWorkplaceSelect(workerIndex, taskIndex) { + currentEditingTaskLine = { workerIndex, taskIndex }; + await loadWorkplaceCategories(); + document.getElementById('workplaceSelectModal').style.display = 'flex'; +} +window.openWorkplaceSelect = openWorkplaceSelect; + +// 작업장 선택 모달 닫기 +function closeWorkplaceSelectModal() { + document.getElementById('workplaceSelectModal').style.display = 'none'; + document.getElementById('workplaceSelectionArea').style.display = 'none'; + document.getElementById('layoutMapArea').style.display = 'none'; + document.getElementById('workplaceList').style.display = 'none'; + currentEditingTaskLine = null; + selectedCategory = null; + selectedWorkplace = null; + selectedCategoryName = ''; + selectedWorkplaceName = ''; + mapCanvas = null; + mapCtx = null; + mapImage = null; + mapRegions = []; +} +window.closeWorkplaceSelectModal = closeWorkplaceSelectModal; + +// 공장 카테고리 로드 +async function loadWorkplaceCategories() { + const categoryList = document.getElementById('categoryList'); + if (!categoryList) return; + + if (allWorkplaceCategories.length === 0) { + categoryList.innerHTML = '
등록된 공장이 없습니다
'; + return; + } + + categoryList.innerHTML = allWorkplaceCategories.map(category => ` + + `).join(''); +} +window.loadWorkplaceCategories = loadWorkplaceCategories; + +// 공장 카테고리 선택 +async function selectCategory(categoryId, categoryName) { + selectedCategory = categoryId; + selectedCategoryName = categoryName; + selectedWorkplace = null; + selectedWorkplaceName = ''; + + // 카테고리 버튼 스타일 업데이트 + document.querySelectorAll('[id^="category-"]').forEach(btn => { + btn.classList.remove('btn-primary'); + btn.classList.add('btn-secondary'); + }); + const selectedBtn = document.getElementById(`category-${categoryId}`); + if (selectedBtn) { + selectedBtn.classList.remove('btn-secondary'); + selectedBtn.classList.add('btn-primary'); + } + + // 작업장 선택 영역 표시 + document.getElementById('workplaceSelectionArea').style.display = 'block'; + + // 해당 카테고리 정보 가져오기 + const category = allWorkplaceCategories.find(c => c.category_id === categoryId); + + // 지도 또는 리스트 로드 + if (category && category.layout_image) { + // 지도가 있는 경우 - 지도 영역 표시 + await loadWorkplaceMap(categoryId, category.layout_image); + document.getElementById('layoutMapArea').style.display = 'block'; + } else { + // 지도가 없는 경우 - 리스트만 표시 + document.getElementById('layoutMapArea').style.display = 'none'; + document.getElementById('workplaceList').style.display = 'flex'; + document.getElementById('toggleListBtn').style.display = 'none'; + } + + // 해당 카테고리의 작업장 리스트 로드 (오류 대비용) + await loadWorkplacesByCategory(categoryId); + + // 선택 완료 버튼 비활성화 (작업장 선택 필요) + document.getElementById('confirmWorkplaceBtn').disabled = true; +} +window.selectCategory = selectCategory; + +// 카테고리별 작업장 로드 +async function loadWorkplacesByCategory(categoryId) { + const workplaceList = document.getElementById('workplaceList'); + if (!workplaceList) return; + + try { + const response = await window.apiCall(`/workplaces?category_id=${categoryId}`); + if (!response || !response.success || !response.data || response.data.length === 0) { + workplaceList.innerHTML = '
등록된 작업장이 없습니다
'; + return; + } + + const workplaces = response.data; + workplaceList.innerHTML = workplaces.map(workplace => ` + + `).join(''); + } catch (error) { + console.error('❌ 작업장 로드 오류:', error); + workplaceList.innerHTML = '
작업장을 불러오는 중 오류가 발생했습니다
'; + } +} +window.loadWorkplacesByCategory = loadWorkplacesByCategory; + +// 작업장 선택 +function selectWorkplace(workplaceId, workplaceName) { + selectedWorkplace = workplaceId; + selectedWorkplaceName = workplaceName; + + // 작업장 버튼 스타일 업데이트 (리스트) + document.querySelectorAll('[id^="workplace-"]').forEach(btn => { + btn.classList.remove('btn-primary'); + btn.classList.add('btn-secondary'); + }); + const selectedBtn = document.getElementById(`workplace-${workplaceId}`); + if (selectedBtn) { + selectedBtn.classList.remove('btn-secondary'); + selectedBtn.classList.add('btn-primary'); + } + + // 지도 업데이트 (지도가 로드되어 있는 경우) + if (mapCanvas && mapCtx && mapImage) { + drawWorkplaceMap(); + } + + // 선택 완료 버튼 활성화 + document.getElementById('confirmWorkplaceBtn').disabled = false; +} +window.selectWorkplace = selectWorkplace; + +// 작업장 선택 확정 +function confirmWorkplaceSelection() { + if (!selectedCategory || !selectedWorkplace) { + showToast('공장과 작업장을 모두 선택해주세요.', 'error'); + return; + } + + // 일괄 모드인 경우 + if (isBulkMode) { + document.getElementById('bulkWorkplaceCategoryId').value = selectedCategory; + document.getElementById('bulkWorkplaceId').value = selectedWorkplace; + document.getElementById('bulkWorkplaceBtn').textContent = `📍 ${selectedCategoryName} → ${selectedWorkplaceName}`; + document.getElementById('bulkWorkplaceBtn').classList.remove('btn-secondary'); + document.getElementById('bulkWorkplaceBtn').classList.add('btn-primary'); + closeWorkplaceSelectModal(); + isBulkMode = false; + showToast('작업장이 선택되었습니다.', 'success'); + return; + } + + // 현재 편집 중인 작업 라인에 저장 + if (currentEditingTaskLine) { + const { workerIndex, taskIndex } = currentEditingTaskLine; + const taskLine = workerTaskList[workerIndex].tasks[taskIndex]; + taskLine.workplace_category_id = selectedCategory; + taskLine.workplace_id = selectedWorkplace; + taskLine.workplace_category_name = selectedCategoryName; + taskLine.workplace_name = selectedWorkplaceName; + renderWorkerTaskList(); + } + + closeWorkplaceSelectModal(); + showToast('작업장이 선택되었습니다.', 'success'); +} +window.confirmWorkplaceSelection = confirmWorkplaceSelection; + +// 리스트 토글 함수 +function toggleWorkplaceList() { + const list = document.getElementById('workplaceList'); + const icon = document.getElementById('toggleListIcon'); + const btn = document.getElementById('toggleListBtn'); + + if (list.style.display === 'none' || list.style.display === '') { + list.style.display = 'flex'; + icon.textContent = '▲'; + btn.textContent = ' 리스트 닫기'; + btn.insertBefore(icon, btn.firstChild); + } else { + list.style.display = 'none'; + icon.textContent = '▼'; + btn.textContent = ' 리스트 보기'; + btn.insertBefore(icon, btn.firstChild); + } +} +window.toggleWorkplaceList = toggleWorkplaceList; + +// 작업장 지도 로드 및 렌더링 +let mapRegions = []; // 현재 로드된 지도 영역들 +let mapCanvas = null; +let mapCtx = null; +let mapImage = null; + +async function loadWorkplaceMap(categoryId, layoutImagePath) { + try { + mapCanvas = document.getElementById('workplaceMapCanvas'); + if (!mapCanvas) return; + + mapCtx = mapCanvas.getContext('2d'); + + // 이미지 URL 생성 + const baseUrl = window.API_BASE_URL || 'http://localhost:20005'; + const apiBaseUrl = baseUrl.replace('/api', ''); // /api 제거 + const fullImageUrl = layoutImagePath.startsWith('http') + ? layoutImagePath + : `${apiBaseUrl}${layoutImagePath}`; + + console.log('🖼️ 이미지 로드 시도:', fullImageUrl); + + // 지도 영역 데이터 로드 + const regionsResponse = await window.apiCall(`/workplaces/categories/${categoryId}/map-regions`); + if (regionsResponse && regionsResponse.success) { + mapRegions = regionsResponse.data || []; + } else { + mapRegions = []; + } + + // 이미지 로드 + mapImage = new Image(); + mapImage.crossOrigin = 'anonymous'; + + mapImage.onload = function() { + // 캔버스 크기 설정 (최대 너비 800px) + const maxWidth = 800; + const scale = mapImage.width > maxWidth ? maxWidth / mapImage.width : 1; + + mapCanvas.width = mapImage.width * scale; + mapCanvas.height = mapImage.height * scale; + + // 이미지와 영역 그리기 + drawWorkplaceMap(); + + // 클릭 이벤트 리스너 추가 + mapCanvas.onclick = handleMapClick; + + console.log(`✅ 작업장 지도 로드 완료: ${mapRegions.length}개 영역`); + }; + + mapImage.onerror = function() { + console.error('❌ 지도 이미지 로드 실패'); + document.getElementById('layoutMapArea').style.display = 'none'; + document.getElementById('workplaceList').style.display = 'flex'; + document.getElementById('toggleListBtn').style.display = 'none'; + showToast('지도를 불러올 수 없어 리스트로 표시합니다.', 'warning'); + }; + + mapImage.src = fullImageUrl; + + } catch (error) { + console.error('❌ 작업장 지도 로드 오류:', error); + document.getElementById('layoutMapArea').style.display = 'none'; + document.getElementById('workplaceList').style.display = 'flex'; + } +} +window.loadWorkplaceMap = loadWorkplaceMap; + +// 지도 그리기 (이미지 + 영역 + 라벨) +function drawWorkplaceMap() { + if (!mapCanvas || !mapCtx || !mapImage) return; + + // 이미지 그리기 + mapCtx.drawImage(mapImage, 0, 0, mapCanvas.width, mapCanvas.height); + + // 각 영역 그리기 + mapRegions.forEach((region, index) => { + // 퍼센트를 픽셀로 변환 + const x1 = (region.x_start / 100) * mapCanvas.width; + const y1 = (region.y_start / 100) * mapCanvas.height; + const x2 = (region.x_end / 100) * mapCanvas.width; + const y2 = (region.y_end / 100) * mapCanvas.height; + + const width = x2 - x1; + const height = y2 - y1; + + // 선택된 영역인지 확인 + const isSelected = region.workplace_id === selectedWorkplace; + + // 영역 테두리 + mapCtx.strokeStyle = isSelected ? '#3b82f6' : '#10b981'; + mapCtx.lineWidth = isSelected ? 4 : 2; + mapCtx.strokeRect(x1, y1, width, height); + + // 영역 배경 (반투명) + mapCtx.fillStyle = isSelected ? 'rgba(59, 130, 246, 0.25)' : 'rgba(16, 185, 129, 0.15)'; + mapCtx.fillRect(x1, y1, width, height); + + // 작업장 이름 표시 + if (region.workplace_name) { + mapCtx.font = 'bold 14px sans-serif'; + + // 텍스트 배경 + const textMetrics = mapCtx.measureText(region.workplace_name); + const textPadding = 6; + mapCtx.fillStyle = isSelected ? 'rgba(59, 130, 246, 0.95)' : 'rgba(16, 185, 129, 0.95)'; + mapCtx.fillRect(x1 + 5, y1 + 5, textMetrics.width + textPadding * 2, 24); + + // 텍스트 + mapCtx.fillStyle = '#ffffff'; + mapCtx.fillText(region.workplace_name, x1 + 5 + textPadding, y1 + 22); + } + }); +} + +// 지도 클릭 이벤트 처리 +function handleMapClick(event) { + if (!mapCanvas || mapRegions.length === 0) return; + + const rect = mapCanvas.getBoundingClientRect(); + const x = event.clientX - rect.left; + const y = event.clientY - rect.top; + + // 클릭한 위치에 있는 영역 찾기 + for (let i = mapRegions.length - 1; i >= 0; i--) { + const region = mapRegions[i]; + const x1 = (region.x_start / 100) * mapCanvas.width; + const y1 = (region.y_start / 100) * mapCanvas.height; + const x2 = (region.x_end / 100) * mapCanvas.width; + const y2 = (region.y_end / 100) * mapCanvas.height; + + if (x >= x1 && x <= x2 && y >= y1 && y <= y2) { + // 영역 클릭됨 + selectWorkplace(region.workplace_id, region.workplace_name); + + // 지도 다시 그리기 (선택 효과 표시) + drawWorkplaceMap(); + + // 리스트에서도 동기화 + syncWorkplaceListSelection(region.workplace_id); + + return; + } + } +} + +// 리스트 선택 동기화 +function syncWorkplaceListSelection(workplaceId) { + // 리스트의 버튼들도 업데이트 + document.querySelectorAll('[id^="workplace-"]').forEach(btn => { + if (btn.id === `workplace-${workplaceId}`) { + btn.classList.remove('btn-secondary'); + btn.classList.add('btn-primary'); + } else { + btn.classList.remove('btn-primary'); + btn.classList.add('btn-secondary'); + } + }); +} +window.syncWorkplaceListSelection = syncWorkplaceListSelection; + +// ==================== 기존 팀 구성 모달 (백업) ==================== + +// 팀 구성 모달 열기 +// 팀 구성 수정 (TBM 수정 모달 열기) +async function openTeamCompositionModal(sessionId) { + currentSessionId = sessionId; + + try { + // 세션 정보 로드 + const sessionResponse = await window.apiCall(`/tbm/sessions/${sessionId}`); + if (!sessionResponse || !sessionResponse.success) { + showToast('TBM 정보를 불러올 수 없습니다.', 'error'); + return; + } + + const session = sessionResponse.data; // data는 이미 객체 + + // 팀원 정보 로드 + const teamResponse = await window.apiCall(`/tbm/sessions/${sessionId}/team`); + if (!teamResponse || !teamResponse.success) { + showToast('팀원 정보를 불러올 수 없습니다.', 'error'); + return; + } + + const teamMembers = teamResponse.data; + + // workerTaskList 구성 + workerTaskList = []; + const workerMap = new Map(); + + // 팀원별로 작업 그룹화 + teamMembers.forEach(member => { + if (!workerMap.has(member.worker_id)) { + workerMap.set(member.worker_id, { + worker_id: member.worker_id, + worker_name: member.worker_name, + job_type: member.job_type, + tasks: [] + }); + } + + workerMap.get(member.worker_id).tasks.push({ + task_line_id: generateUUID(), + project_id: member.project_id, + work_type_id: member.work_type_id, + task_id: member.task_id, + workplace_category_id: member.workplace_category_id, + workplace_id: member.workplace_id, + workplace_category_name: member.workplace_category_name, + workplace_name: member.workplace_name, + work_detail: member.work_detail, + is_present: member.is_present !== undefined ? member.is_present : true + }); + }); + + workerTaskList = Array.from(workerMap.values()); + + // 모달 열기 + document.getElementById('modalTitle').textContent = '팀 구성 수정'; + document.getElementById('sessionId').value = sessionId; + document.getElementById('sessionDate').value = session.session_date; + + // 입력자 표시 + if (session.leader_name) { + document.getElementById('leaderName').value = `${session.leader_name} (${session.leader_job_type || ''})`; + document.getElementById('leaderId').value = session.leader_id; + } else if (session.created_by_name) { + document.getElementById('leaderName').value = `${session.created_by_name} (관리자)`; + document.getElementById('leaderId').value = ''; + } + + renderWorkerTaskList(); + + document.getElementById('tbmModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; + + } catch (error) { + console.error('❌ 팀 구성 로드 오류:', error); + showToast('팀 구성을 불러오는 중 오류가 발생했습니다.', 'error'); + } +} +window.openTeamCompositionModal = openTeamCompositionModal; + +// 선택된 작업자 업데이트 +function updateSelectedWorkers() { + selectedWorkers.clear(); + + document.querySelectorAll('.worker-checkbox:checked').forEach(cb => { + selectedWorkers.add(parseInt(cb.dataset.workerId)); + }); + + const selectedCount = document.getElementById('selectedCount'); + const selectedList = document.getElementById('selectedWorkersList'); + + selectedCount.textContent = selectedWorkers.size; + + if (selectedWorkers.size === 0) { + selectedList.innerHTML = '

작업자를 선택해주세요

'; + } else { + const selectedWorkersArray = Array.from(selectedWorkers).map(id => { + const worker = allWorkers.find(w => w.worker_id === id); + return worker ? ` + + ${worker.worker_name} + + + ` : ''; + }); + selectedList.innerHTML = selectedWorkersArray.join(''); + } +} +window.updateSelectedWorkers = updateSelectedWorkers; + +// 작업자 제거 +function removeWorker(workerId) { + const checkbox = document.querySelector(`.worker-checkbox[data-worker-id="${workerId}"]`); + if (checkbox) { + checkbox.checked = false; + updateSelectedWorkers(); + } +} +window.removeWorker = removeWorker; + +// 전체 선택 +function selectAllWorkers() { + document.querySelectorAll('.worker-checkbox').forEach(cb => { + cb.checked = true; + }); + updateSelectedWorkers(); +} +window.selectAllWorkers = selectAllWorkers; + +// 전체 해제 +function deselectAllWorkers() { + document.querySelectorAll('.worker-checkbox').forEach(cb => { + cb.checked = false; + }); + updateSelectedWorkers(); +} +window.deselectAllWorkers = deselectAllWorkers; + +// 팀 구성 모달 닫기 +function closeTeamModal() { + document.getElementById('teamModal').style.display = 'none'; + document.body.style.overflow = 'auto'; +} +window.closeTeamModal = closeTeamModal; + +// 팀 구성 저장 +async function saveTeamComposition() { + if (selectedWorkers.size === 0) { + showToast('최소 1명 이상의 작업자를 선택해주세요.', 'error'); + return; + } + + const members = Array.from(selectedWorkers).map(workerId => ({ + worker_id: workerId + })); + + try { + const response = await window.apiCall( + `/tbm/sessions/${currentSessionId}/team/batch`, + 'POST', + { members } + ); + + if (response && response.success) { + showToast(`${selectedWorkers.size}명의 팀원이 추가되었습니다.`, 'success'); + closeTeamModal(); + + // 목록 새로고침 + if (currentTab === 'tbm-input') { + await loadTodayOnlyTbm(); + } else { + const date = document.getElementById('tbmDate').value; + await loadTbmSessionsByDate(date); + } + } else { + throw new Error(response.message || '저장에 실패했습니다.'); + } + } catch (error) { + console.error('❌ 팀 구성 저장 오류:', error); + showToast('팀 구성 저장 중 오류가 발생했습니다.', 'error'); + } +} +window.saveTeamComposition = saveTeamComposition; + +// 안전 체크 모달 열기 (기본 + 날씨별 + 작업별) +async function openSafetyCheckModal(sessionId) { + currentSessionId = sessionId; + + try { + // 필터링된 체크리스트 조회 (기본 + 날씨 + 작업별) + const response = await window.apiCall(`/tbm/sessions/${sessionId}/safety-checks/filtered`); + + if (!response || !response.success) { + throw new Error(response?.message || '체크리스트를 불러올 수 없습니다.'); + } + + const { basic, weather, task, weatherInfo } = response.data; + + const categoryNames = { + 'PPE': '개인 보호 장비', + 'EQUIPMENT': '장비 점검', + 'ENVIRONMENT': '작업 환경', + 'EMERGENCY': '비상 대응', + 'WEATHER': '날씨', + 'TASK': '작업' + }; + + const weatherIcons = { + clear: '☀️', rain: '🌧️', snow: '❄️', heat: '🔥', + cold: '🥶', wind: '💨', fog: '🌫️', dust: '😷' + }; + + const container = document.getElementById('safetyChecklistContainer'); + let html = ''; + + // 1. 기본 사항 섹션 + if (basic && basic.length > 0) { + const basicGrouped = groupChecksByCategory(basic); + html += ` +
+
+ 📋 기본 안전 사항 (${basic.length}개) +
+ ${renderCategoryGroups(basicGrouped, categoryNames)} +
+ `; + } + + // 2. 날씨별 섹션 + if (weather && weather.length > 0) { + const weatherConditions = weatherInfo?.weather_conditions || []; + const conditionNames = weatherConditions.map(c => { + const icon = weatherIcons[c] || '🌤️'; + return `${icon} ${getWeatherConditionName(c)}`; + }).join(', ') || '맑음'; + + html += ` +
+
+ 🌤️ 오늘 날씨 관련 (${conditionNames}) - ${weather.length}개 +
+ ${renderCheckItems(weather)} +
+ `; + } + + // 3. 작업별 섹션 + if (task && task.length > 0) { + const taskGrouped = groupChecksByTask(task); + html += ` +
+
+ 🔧 작업별 안전 사항 - ${task.length}개 +
+ ${renderTaskGroups(taskGrouped)} +
+ `; + } + + // 체크리스트가 없는 경우 + if ((!basic || basic.length === 0) && (!weather || weather.length === 0) && (!task || task.length === 0)) { + html = ` +
+
📋
+

등록된 안전 체크 항목이 없습니다.

+
+ `; + } + + container.innerHTML = html; + document.getElementById('safetyModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; + + } catch (error) { + console.error('❌ 안전 체크 조회 오류:', error); + showToast('안전 체크 정보를 불러오는 중 오류가 발생했습니다.', 'error'); + } +} +window.openSafetyCheckModal = openSafetyCheckModal; + +// 카테고리별 그룹화 +function groupChecksByCategory(checks) { + return checks.reduce((acc, check) => { + const category = check.check_category || 'OTHER'; + if (!acc[category]) acc[category] = []; + acc[category].push(check); + return acc; + }, {}); +} + +// 작업별 그룹화 +function groupChecksByTask(checks) { + return checks.reduce((acc, check) => { + const taskId = check.task_id || 0; + const taskName = check.task_name || '기타 작업'; + if (!acc[taskId]) acc[taskId] = { name: taskName, items: [] }; + acc[taskId].items.push(check); + return acc; + }, {}); +} + +// 날씨 조건명 반환 +function getWeatherConditionName(code) { + const names = { + clear: '맑음', rain: '비', snow: '눈', heat: '폭염', + cold: '한파', wind: '강풍', fog: '안개', dust: '미세먼지' + }; + return names[code] || code; +} + +// 카테고리 그룹 렌더링 +function renderCategoryGroups(grouped, categoryNames) { + return Object.keys(grouped).map(category => ` +
+
+ ${categoryNames[category] || category} +
+ ${renderCheckItems(grouped[category])} +
+ `).join(''); +} + +// 작업 그룹 렌더링 +function renderTaskGroups(grouped) { + return Object.values(grouped).map(group => ` +
+
+ 📋 ${group.name} +
+ ${renderCheckItems(group.items)} +
+ `).join(''); +} + +// 체크 항목 렌더링 +function renderCheckItems(items) { + return items.map(check => ` +
+ +
+ `).join(''); +} + +// 안전 체크 모달 닫기 +function closeSafetyModal() { + document.getElementById('safetyModal').style.display = 'none'; + document.body.style.overflow = 'auto'; +} +window.closeSafetyModal = closeSafetyModal; + +// 안전 체크리스트 저장 +async function saveSafetyChecklist() { + const records = []; + + document.querySelectorAll('.safety-check').forEach(cb => { + records.push({ + check_id: parseInt(cb.dataset.checkId), + is_checked: cb.checked + }); + }); + + try { + const response = await window.apiCall( + `/tbm/sessions/${currentSessionId}/safety`, + 'POST', + { records } + ); + + if (response && response.success) { + showToast('안전 체크가 완료되었습니다.', 'success'); + closeSafetyModal(); + } else { + throw new Error(response.message || '저장에 실패했습니다.'); + } + } catch (error) { + console.error('❌ 안전 체크 저장 오류:', error); + showToast('안전 체크 저장 중 오류가 발생했습니다.', 'error'); + } +} +window.saveSafetyChecklist = saveSafetyChecklist; + +// TBM 완료 모달 열기 +function openCompleteTbmModal(sessionId) { + currentSessionId = sessionId; + const now = new Date(); + const timeString = now.toTimeString().slice(0, 5); + document.getElementById('endTime').value = timeString; + + document.getElementById('completeModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; +} +window.openCompleteTbmModal = openCompleteTbmModal; + +// 완료 모달 닫기 +function closeCompleteModal() { + document.getElementById('completeModal').style.display = 'none'; + document.body.style.overflow = 'auto'; +} +window.closeCompleteModal = closeCompleteModal; + +// TBM 세션 완료 +async function completeTbmSession() { + const endTime = document.getElementById('endTime').value; + + try { + const response = await window.apiCall( + `/tbm/sessions/${currentSessionId}/complete`, + 'POST', + { end_time: endTime } + ); + + if (response && response.success) { + showToast('TBM이 완료되었습니다.', 'success'); + closeCompleteModal(); + + // 목록 새로고침 + if (currentTab === 'tbm-input') { + await loadTodayOnlyTbm(); + } else { + const date = document.getElementById('tbmDate').value; + await loadTbmSessionsByDate(date); + } + } else { + throw new Error(response.message || '완료 처리에 실패했습니다.'); + } + } catch (error) { + console.error('❌ TBM 완료 처리 오류:', error); + showToast('TBM 완료 처리 중 오류가 발생했습니다.', 'error'); + } +} +window.completeTbmSession = completeTbmSession; + +// TBM 세션 상세 보기 +async function viewTbmSession(sessionId) { + try { + // 세션 정보, 팀 구성, 안전 체크 동시 조회 + const [sessionRes, teamRes, safetyRes] = await Promise.all([ + window.apiCall(`/tbm/sessions/${sessionId}`), + window.apiCall(`/tbm/sessions/${sessionId}/team`), + window.apiCall(`/tbm/sessions/${sessionId}/safety`) + ]); + + const session = sessionRes?.data; + const team = teamRes?.data || []; + const safety = safetyRes?.data || []; + + if (!session) { + showToast('세션 정보를 불러올 수 없습니다.', 'error'); + return; + } + + // 기본 정보 표시 + const basicInfo = document.getElementById('detailBasicInfo'); + basicInfo.innerHTML = ` +
+
팀장
+
${session.leader_name}
+
+
+
날짜
+
${session.session_date}
+
+
+
프로젝트
+
${session.project_name || '-'}
+
+
+
작업 장소
+
${session.work_location || '-'}
+
+
+
작업 내용
+
${session.work_description || '-'}
+
+ ${session.safety_notes ? ` +
+
⚠️ 안전 특이사항
+
${session.safety_notes}
+
+ ` : ''} + `; + + // 팀 구성 표시 + const teamMembers = document.getElementById('detailTeamMembers'); + if (team.length === 0) { + teamMembers.innerHTML = '

등록된 팀원이 없습니다.

'; + } else { + teamMembers.innerHTML = team.map(member => ` +
+
${member.worker_name}
+
${member.job_type || ''}
+ ${member.is_present ? '' : '
결석
'} +
+ `).join(''); + } + + // 안전 체크 표시 + const safetyChecks = document.getElementById('detailSafetyChecks'); + if (safety.length === 0) { + safetyChecks.innerHTML = '

안전 체크 기록이 없습니다.

'; + } else { + // 카테고리별 그룹화 + const grouped = {}; + safety.forEach(check => { + if (!grouped[check.check_category]) { + grouped[check.check_category] = []; + } + grouped[check.check_category].push(check); + }); + + const categoryNames = { + 'PPE': '개인 보호 장비', + 'EQUIPMENT': '장비 점검', + 'ENVIRONMENT': '작업 환경', + 'EMERGENCY': '비상 대응' + }; + + safetyChecks.innerHTML = Object.keys(grouped).map(category => ` +
+
+ ${categoryNames[category] || category} +
+
+ ${grouped[category].map(check => ` +
+ ${check.is_checked ? '✅' : '❌'} + ${check.check_item} +
+ `).join('')} +
+
+ `).join(''); + } + + document.getElementById('detailModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; + + } catch (error) { + console.error('❌ TBM 상세 조회 오류:', error); + showToast('상세 정보를 불러오는 중 오류가 발생했습니다.', 'error'); + } +} +window.viewTbmSession = viewTbmSession; + +// 상세보기 모달 닫기 +function closeDetailModal() { + document.getElementById('detailModal').style.display = 'none'; + document.body.style.overflow = 'auto'; +} +window.closeDetailModal = closeDetailModal; + +// 작업 인계 모달 열기 +async function openHandoverModal(sessionId) { + currentSessionId = sessionId; + + // 세션 정보와 팀 구성 조회 + try { + const [sessionRes, teamRes] = await Promise.all([ + window.apiCall(`/tbm/sessions/${sessionId}`), + window.apiCall(`/tbm/sessions/${sessionId}/team`) + ]); + + const session = sessionRes?.data; + const team = teamRes?.data || []; + + if (!session) { + showToast('세션 정보를 불러올 수 없습니다.', 'error'); + return; + } + + // 현재 세션의 팀장을 제외한 리더 목록 + const toLeaderSelect = document.getElementById('toLeaderId'); + const otherLeaders = allWorkers.filter(w => + (w.job_type === 'leader' || w.job_type === '그룹장' || w.job_type === 'admin') && + w.worker_id !== session.leader_id + ); + + toLeaderSelect.innerHTML = '' + + otherLeaders.map(w => ` + + `).join(''); + + // 인계할 팀원 목록 + const handoverTeamList = document.getElementById('handoverTeamList'); + if (team.length === 0) { + handoverTeamList.innerHTML = '

팀 구성이 없습니다.

'; + } else { + handoverTeamList.innerHTML = team.map(member => ` + + `).join(''); + } + + // 기본값 설정 + document.getElementById('handoverSessionId').value = sessionId; + const today = getTodayKST(); + const now = new Date().toTimeString().slice(0, 5); + document.getElementById('handoverDate').value = today; + document.getElementById('handoverTime').value = now; + document.getElementById('handoverReason').value = ''; + document.getElementById('handoverNotes').value = ''; + + document.getElementById('handoverModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; + + } catch (error) { + console.error('❌ 인계 모달 열기 오류:', error); + showToast('인계 정보를 불러오는 중 오류가 발생했습니다.', 'error'); + } +} +window.openHandoverModal = openHandoverModal; + +// 인계 모달 닫기 +function closeHandoverModal() { + document.getElementById('handoverModal').style.display = 'none'; + document.body.style.overflow = 'auto'; +} +window.closeHandoverModal = closeHandoverModal; + +// 작업 인계 저장 +async function saveHandover() { + const sessionId = currentSessionId; + const toLeaderId = parseInt(document.getElementById('toLeaderId').value); + const reason = document.getElementById('handoverReason').value; + const handoverDate = document.getElementById('handoverDate').value; + const handoverTime = document.getElementById('handoverTime').value; + const handoverNotes = document.getElementById('handoverNotes').value; + + if (!toLeaderId || !reason || !handoverDate) { + showToast('필수 항목을 입력해주세요.', 'error'); + return; + } + + // 인계할 작업자 목록 + const workerIds = []; + document.querySelectorAll('.handover-worker-checkbox:checked').forEach(cb => { + workerIds.push(parseInt(cb.value)); + }); + + if (workerIds.length === 0) { + showToast('인계할 팀원을 최소 1명 이상 선택해주세요.', 'error'); + return; + } + + try { + // 세션 정보 조회 (from_leader_id 가져오기) + const sessionRes = await window.apiCall(`/tbm/sessions/${sessionId}`); + const fromLeaderId = sessionRes?.data?.leader_id; + + if (!fromLeaderId) { + showToast('세션 정보를 찾을 수 없습니다.', 'error'); + return; + } + + const handoverData = { + session_id: sessionId, + from_leader_id: fromLeaderId, + to_leader_id: toLeaderId, + handover_date: handoverDate, + handover_time: handoverTime, + reason: reason, + handover_notes: handoverNotes, + worker_ids: workerIds + }; + + const response = await window.apiCall('/tbm/handovers', 'POST', handoverData); + + if (response && response.success) { + showToast('작업 인계가 요청되었습니다.', 'success'); + closeHandoverModal(); + } else { + throw new Error(response.message || '인계 요청에 실패했습니다.'); + } + } catch (error) { + console.error('❌ 작업 인계 저장 오류:', error); + showToast('작업 인계 중 오류가 발생했습니다.', 'error'); + } +} +window.saveHandover = saveHandover; + +// 토스트 알림 +function showToast(message, type = 'info', duration = 3000) { + const container = document.getElementById('toastContainer'); + if (!container) return; + + const toast = document.createElement('div'); + toast.className = `toast ${type}`; + + const iconMap = { + success: '✅', + error: '❌', + warning: '⚠️', + info: 'ℹ️' + }; + + toast.innerHTML = ` +
${iconMap[type] || 'ℹ️'}
+
${message}
+ + `; + + toast.style.cssText = ` + display: flex; + align-items: center; + gap: 0.75rem; + padding: 1rem 1.25rem; + background: white; + border-radius: 0.5rem; + box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1); + margin-bottom: 0.75rem; + min-width: 300px; + animation: slideIn 0.3s ease-out; + `; + + container.appendChild(toast); + + setTimeout(() => { + if (toast.parentElement) { + toast.style.animation = 'slideOut 0.3s ease-out'; + setTimeout(() => toast.remove(), 300); + } + }, duration); +} diff --git a/deploy/tkfb-package/web-ui/js/tbm/api.js b/deploy/tkfb-package/web-ui/js/tbm/api.js new file mode 100644 index 0000000..f59f41c --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/tbm/api.js @@ -0,0 +1,489 @@ +/** + * TBM - API Client + * TBM 관련 모든 API 호출을 관리 + */ + +class TbmAPI { + constructor() { + this.state = window.TbmState; + this.utils = window.TbmUtils; + console.log('[TbmAPI] 초기화 완료'); + } + + /** + * 초기 데이터 로드 (작업자, 프로젝트, 안전 체크리스트, 공정, 작업, 작업장) + */ + async loadInitialData() { + try { + // 현재 로그인한 사용자 정보 가져오기 + const userInfo = JSON.parse(localStorage.getItem('user') || '{}'); + this.state.currentUser = userInfo; + console.log('👤 로그인 사용자:', this.state.currentUser, 'worker_id:', this.state.currentUser?.worker_id); + + // 병렬로 데이터 로드 + await Promise.all([ + this.loadWorkers(), + this.loadProjects(), + this.loadSafetyChecks(), + this.loadWorkTypes(), + this.loadTasks(), + this.loadWorkplaces(), + this.loadWorkplaceCategories() + ]); + + console.log('✅ 초기 데이터 로드 완료'); + } catch (error) { + console.error('❌ 초기 데이터 로드 오류:', error); + window.showToast?.('데이터를 불러오는 중 오류가 발생했습니다.', 'error'); + } + } + + /** + * 작업자 목록 로드 (생산팀 소속만) + */ + async loadWorkers() { + try { + const response = await window.apiCall('/workers?limit=1000&department_id=1'); + if (response) { + let workers = Array.isArray(response) ? response : (response.data || []); + // 활성 상태인 작업자만 필터링 + workers = workers.filter(w => w.status === 'active' && w.employment_status === 'employed'); + this.state.allWorkers = workers; + console.log('✅ 작업자 목록 로드:', workers.length + '명'); + return workers; + } + } catch (error) { + console.error('❌ 작업자 로딩 오류:', error); + throw error; + } + } + + /** + * 프로젝트 목록 로드 (활성 프로젝트만) + */ + async loadProjects() { + try { + const response = await window.apiCall('/projects?is_active=1'); + if (response) { + const projects = Array.isArray(response) ? response : (response.data || []); + this.state.allProjects = projects.filter(p => + p.is_active === 1 || p.is_active === true || p.is_active === '1' + ); + console.log('✅ 프로젝트 목록 로드:', this.state.allProjects.length + '개 (활성)'); + return this.state.allProjects; + } + } catch (error) { + console.error('❌ 프로젝트 로딩 오류:', error); + throw error; + } + } + + /** + * 안전 체크리스트 로드 + */ + async loadSafetyChecks() { + try { + const response = await window.apiCall('/tbm/safety-checks'); + if (response && response.success) { + this.state.allSafetyChecks = response.data; + console.log('✅ 안전 체크리스트 로드:', this.state.allSafetyChecks.length + '개'); + return this.state.allSafetyChecks; + } + } catch (error) { + console.error('❌ 안전 체크리스트 로딩 오류:', error); + } + } + + /** + * 공정(Work Types) 목록 로드 + */ + async loadWorkTypes() { + try { + const response = await window.apiCall('/daily-work-reports/work-types'); + if (response && response.success) { + this.state.allWorkTypes = response.data || []; + console.log('✅ 공정 목록 로드:', this.state.allWorkTypes.length + '개'); + return this.state.allWorkTypes; + } + } catch (error) { + console.error('❌ 공정 로딩 오류:', error); + } + } + + /** + * 작업(Tasks) 목록 로드 + */ + async loadTasks() { + try { + const response = await window.apiCall('/tasks/active/list'); + if (response && response.success) { + this.state.allTasks = response.data || []; + console.log('✅ 작업 목록 로드:', this.state.allTasks.length + '개'); + return this.state.allTasks; + } + } catch (error) { + console.error('❌ 작업 로딩 오류:', error); + } + } + + /** + * 작업장 목록 로드 + */ + async loadWorkplaces() { + try { + const response = await window.apiCall('/workplaces?is_active=true'); + if (response && response.success) { + this.state.allWorkplaces = response.data || []; + console.log('✅ 작업장 목록 로드:', this.state.allWorkplaces.length + '개'); + return this.state.allWorkplaces; + } + } catch (error) { + console.error('❌ 작업장 로딩 오류:', error); + } + } + + /** + * 작업장 카테고리 로드 + */ + async loadWorkplaceCategories() { + try { + const response = await window.apiCall('/workplaces/categories/active/list'); + if (response && response.success) { + this.state.allWorkplaceCategories = response.data || []; + console.log('✅ 작업장 카테고리 로드:', this.state.allWorkplaceCategories.length + '개'); + return this.state.allWorkplaceCategories; + } + } catch (error) { + console.error('❌ 작업장 카테고리 로딩 오류:', error); + } + } + + /** + * 오늘의 TBM만 로드 (TBM 입력 탭용) + */ + async loadTodayOnlyTbm() { + const today = this.utils.getTodayKST(); + + try { + const response = await window.apiCall(`/tbm/sessions/date/${today}`); + + if (response && response.success) { + this.state.todaySessions = response.data || []; + } else { + this.state.todaySessions = []; + } + console.log('✅ 오늘 TBM 로드:', this.state.todaySessions.length + '건'); + return this.state.todaySessions; + } catch (error) { + console.error('❌ 오늘 TBM 조회 오류:', error); + window.showToast?.('오늘 TBM을 불러오는 중 오류가 발생했습니다.', 'error'); + this.state.todaySessions = []; + return []; + } + } + + /** + * 최근 TBM을 날짜별로 그룹화하여 로드 + */ + async loadRecentTbmGroupedByDate() { + try { + const today = new Date(); + const dates = []; + + // 최근 N일의 날짜 생성 + for (let i = 0; i < this.state.loadedDaysCount; i++) { + const date = new Date(today); + date.setDate(date.getDate() - i); + const dateStr = date.toISOString().split('T')[0]; + dates.push(dateStr); + } + + // 각 날짜의 TBM 로드 + this.state.dateGroupedSessions = {}; + this.state.allLoadedSessions = []; + + const promises = dates.map(date => window.apiCall(`/tbm/sessions/date/${date}`)); + const results = await Promise.all(promises); + + results.forEach((response, index) => { + const date = dates[index]; + if (response && response.success && response.data && response.data.length > 0) { + let sessions = response.data; + + // admin이 아니면 본인이 작성한 TBM만 필터링 + if (!this.state.isAdminUser()) { + const userId = this.state.currentUser?.user_id; + const workerId = this.state.currentUser?.worker_id; + sessions = sessions.filter(s => { + return s.created_by === userId || + s.leader_id === workerId || + s.created_by_name === this.state.currentUser?.name; + }); + } + + if (sessions.length > 0) { + this.state.dateGroupedSessions[date] = sessions; + this.state.allLoadedSessions = this.state.allLoadedSessions.concat(sessions); + } + } + }); + + console.log('✅ 날짜별 TBM 로드 완료:', this.state.allLoadedSessions.length + '건'); + return this.state.dateGroupedSessions; + + } catch (error) { + console.error('❌ TBM 날짜별 로드 오류:', error); + window.showToast?.('TBM을 불러오는 중 오류가 발생했습니다.', 'error'); + this.state.dateGroupedSessions = {}; + return {}; + } + } + + /** + * 특정 날짜의 TBM 세션 목록 로드 + */ + async loadTbmSessionsByDate(date) { + try { + const response = await window.apiCall(`/tbm/sessions/date/${date}`); + + if (response && response.success) { + this.state.allSessions = response.data || []; + } else { + this.state.allSessions = []; + } + return this.state.allSessions; + } catch (error) { + console.error('❌ TBM 세션 조회 오류:', error); + window.showToast?.('TBM 세션을 불러오는 중 오류가 발생했습니다.', 'error'); + this.state.allSessions = []; + return []; + } + } + + /** + * TBM 세션 생성 + */ + async createTbmSession(sessionData) { + try { + const response = await window.apiCall('/tbm/sessions', 'POST', sessionData); + if (!response || !response.success) { + throw new Error(response?.message || '세션 생성 실패'); + } + console.log('✅ TBM 세션 생성 완료:', response.data?.session_id); + return response; + } catch (error) { + console.error('❌ TBM 세션 생성 오류:', error); + throw error; + } + } + + /** + * TBM 세션 정보 조회 + */ + async getSession(sessionId) { + try { + const response = await window.apiCall(`/tbm/sessions/${sessionId}`); + if (!response || !response.success) { + throw new Error(response?.message || '세션 조회 실패'); + } + return response.data; + } catch (error) { + console.error('❌ TBM 세션 조회 오류:', error); + throw error; + } + } + + /** + * TBM 팀원 조회 + */ + async getTeamMembers(sessionId) { + try { + const response = await window.apiCall(`/tbm/sessions/${sessionId}/team`); + if (!response || !response.success) { + throw new Error(response?.message || '팀원 조회 실패'); + } + return response.data || []; + } catch (error) { + console.error('❌ TBM 팀원 조회 오류:', error); + throw error; + } + } + + /** + * TBM 팀원 일괄 추가 + */ + async addTeamMembers(sessionId, members) { + try { + const response = await window.apiCall( + `/tbm/sessions/${sessionId}/team/batch`, + 'POST', + { members } + ); + if (!response || !response.success) { + throw new Error(response?.message || '팀원 추가 실패'); + } + console.log('✅ TBM 팀원 추가 완료:', members.length + '명'); + return response; + } catch (error) { + console.error('❌ TBM 팀원 추가 오류:', error); + throw error; + } + } + + /** + * TBM 팀원 전체 삭제 + */ + async clearTeamMembers(sessionId) { + try { + const response = await window.apiCall(`/tbm/sessions/${sessionId}/team/clear`, 'DELETE'); + return response; + } catch (error) { + console.error('❌ TBM 팀원 삭제 오류:', error); + throw error; + } + } + + /** + * TBM 안전 체크 조회 + */ + async getSafetyChecks(sessionId) { + try { + const response = await window.apiCall(`/tbm/sessions/${sessionId}/safety`); + return response?.data || []; + } catch (error) { + console.error('❌ 안전 체크 조회 오류:', error); + return []; + } + } + + /** + * TBM 안전 체크 (필터링된) 조회 + */ + async getFilteredSafetyChecks(sessionId) { + try { + const response = await window.apiCall(`/tbm/sessions/${sessionId}/safety-checks/filtered`); + if (!response || !response.success) { + throw new Error(response?.message || '체크리스트를 불러올 수 없습니다.'); + } + return response.data; + } catch (error) { + console.error('❌ 필터링된 안전 체크 조회 오류:', error); + throw error; + } + } + + /** + * TBM 안전 체크 저장 + */ + async saveSafetyChecks(sessionId, records) { + try { + const response = await window.apiCall( + `/tbm/sessions/${sessionId}/safety`, + 'POST', + { records } + ); + if (!response || !response.success) { + throw new Error(response?.message || '저장 실패'); + } + return response; + } catch (error) { + console.error('❌ 안전 체크 저장 오류:', error); + throw error; + } + } + + /** + * TBM 세션 완료 처리 + */ + async completeTbmSession(sessionId, endTime) { + try { + const response = await window.apiCall( + `/tbm/sessions/${sessionId}/complete`, + 'POST', + { end_time: endTime } + ); + if (!response || !response.success) { + throw new Error(response?.message || '완료 처리 실패'); + } + console.log('✅ TBM 완료 처리:', sessionId); + return response; + } catch (error) { + console.error('❌ TBM 완료 처리 오류:', error); + throw error; + } + } + + /** + * 작업 인계 저장 + */ + async saveHandover(handoverData) { + try { + const response = await window.apiCall('/tbm/handovers', 'POST', handoverData); + if (!response || !response.success) { + throw new Error(response?.message || '인계 요청 실패'); + } + return response; + } catch (error) { + console.error('❌ 작업 인계 저장 오류:', error); + throw error; + } + } + + /** + * 카테고리별 작업장 로드 + */ + async loadWorkplacesByCategory(categoryId) { + try { + const response = await window.apiCall(`/workplaces?category_id=${categoryId}`); + if (!response || !response.success || !response.data) { + return []; + } + return response.data; + } catch (error) { + console.error('❌ 작업장 로드 오류:', error); + return []; + } + } + + /** + * 작업장 지도 영역 로드 + */ + async loadMapRegions(categoryId) { + try { + const response = await window.apiCall(`/workplaces/categories/${categoryId}/map-regions`); + if (response && response.success) { + this.state.mapRegions = response.data || []; + return this.state.mapRegions; + } + return []; + } catch (error) { + console.error('❌ 지도 영역 로드 오류:', error); + return []; + } + } +} + +// 전역 인스턴스 생성 +window.TbmAPI = new TbmAPI(); + +// 하위 호환성: 기존 함수들 +window.loadInitialData = () => window.TbmAPI.loadInitialData(); +window.loadTodayOnlyTbm = () => window.TbmAPI.loadTodayOnlyTbm(); +window.loadTodayTbm = () => window.TbmAPI.loadRecentTbmGroupedByDate(); +window.loadAllTbm = () => { + window.TbmState.loadedDaysCount = 30; + return window.TbmAPI.loadRecentTbmGroupedByDate(); +}; +window.loadRecentTbmGroupedByDate = () => window.TbmAPI.loadRecentTbmGroupedByDate(); +window.loadTbmSessionsByDate = (date) => window.TbmAPI.loadTbmSessionsByDate(date); +window.loadWorkplaceCategories = () => window.TbmAPI.loadWorkplaceCategories(); +window.loadWorkplacesByCategory = (categoryId) => window.TbmAPI.loadWorkplacesByCategory(categoryId); + +// 더 많은 날짜 로드 +window.loadMoreTbmDays = async function() { + window.TbmState.loadedDaysCount += 7; + await window.TbmAPI.loadRecentTbmGroupedByDate(); + window.showToast?.(`최근 ${window.TbmState.loadedDaysCount}일의 TBM을 로드했습니다.`, 'success'); +}; + +console.log('[Module] tbm/api.js 로드 완료'); diff --git a/deploy/tkfb-package/web-ui/js/tbm/index.js b/deploy/tkfb-package/web-ui/js/tbm/index.js new file mode 100644 index 0000000..a295074 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/tbm/index.js @@ -0,0 +1,325 @@ +/** + * TBM - Module Loader + * TBM 모듈을 초기화하고 연결하는 메인 진입점 + * + * 로드 순서: + * 1. state.js - 전역 상태 관리 + * 2. utils.js - 유틸리티 함수 + * 3. api.js - API 클라이언트 + * 4. index.js - 이 파일 (메인 컨트롤러) + */ + +class TbmController { + constructor() { + this.state = window.TbmState; + this.api = window.TbmAPI; + this.utils = window.TbmUtils; + this.initialized = false; + + console.log('[TbmController] 생성'); + } + + /** + * 초기화 + */ + async init() { + if (this.initialized) { + console.log('[TbmController] 이미 초기화됨'); + return; + } + + console.log('🛠️ TBM 관리 페이지 초기화'); + + // API 함수가 로드될 때까지 대기 + let retryCount = 0; + while (!window.apiCall && retryCount < 50) { + await new Promise(resolve => setTimeout(resolve, 100)); + retryCount++; + } + + if (!window.apiCall) { + window.showToast?.('시스템을 초기화할 수 없습니다. 페이지를 새로고침해주세요.', 'error'); + return; + } + + // 오늘 날짜 설정 (서울 시간대 기준) + const today = this.utils.getTodayKST(); + const tbmDateEl = document.getElementById('tbmDate'); + const sessionDateEl = document.getElementById('sessionDate'); + if (tbmDateEl) tbmDateEl.value = today; + if (sessionDateEl) sessionDateEl.value = today; + + // 이벤트 리스너 설정 + this.setupEventListeners(); + + // 초기 데이터 로드 + await this.api.loadInitialData(); + await this.api.loadTodayOnlyTbm(); + + // 렌더링 + this.displayTodayTbmSessions(); + + this.initialized = true; + console.log('[TbmController] 초기화 완료'); + } + + /** + * 이벤트 리스너 설정 + */ + setupEventListeners() { + // 탭 버튼들 + document.querySelectorAll('.tbm-tab-btn').forEach(btn => { + btn.addEventListener('click', () => { + const tabName = btn.dataset.tab; + if (tabName) this.switchTbmTab(tabName); + }); + }); + } + + /** + * 탭 전환 + */ + async switchTbmTab(tabName) { + this.state.setCurrentTab(tabName); + + // 탭 버튼 활성화 상태 변경 + document.querySelectorAll('.tbm-tab-btn').forEach(btn => { + if (btn.dataset.tab === tabName) { + btn.classList.add('active'); + } else { + btn.classList.remove('active'); + } + }); + + // 탭 컨텐츠 표시 변경 + document.querySelectorAll('.tbm-tab-content').forEach(content => { + content.classList.remove('active'); + }); + const tabContent = document.getElementById(`${tabName}-tab`); + if (tabContent) tabContent.classList.add('active'); + + // 탭에 따라 데이터 로드 + if (tabName === 'tbm-input') { + await this.api.loadTodayOnlyTbm(); + this.displayTodayTbmSessions(); + } else if (tabName === 'tbm-manage') { + await this.api.loadRecentTbmGroupedByDate(); + this.displayTbmGroupedByDate(); + this.updateViewModeIndicator(); + } + } + + /** + * 오늘의 TBM 세션 표시 + */ + displayTodayTbmSessions() { + const grid = document.getElementById('todayTbmGrid'); + const emptyState = document.getElementById('todayEmptyState'); + const todayTotalEl = document.getElementById('todayTotalSessions'); + const todayCompletedEl = document.getElementById('todayCompletedSessions'); + const todayActiveEl = document.getElementById('todayActiveSessions'); + + const sessions = this.state.todaySessions; + + if (sessions.length === 0) { + if (grid) grid.innerHTML = ''; + if (emptyState) emptyState.style.display = 'flex'; + if (todayTotalEl) todayTotalEl.textContent = '0'; + if (todayCompletedEl) todayCompletedEl.textContent = '0'; + if (todayActiveEl) todayActiveEl.textContent = '0'; + return; + } + + if (emptyState) emptyState.style.display = 'none'; + + const completedCount = sessions.filter(s => s.status === 'completed').length; + const activeCount = sessions.filter(s => s.status === 'draft').length; + + if (todayTotalEl) todayTotalEl.textContent = sessions.length; + if (todayCompletedEl) todayCompletedEl.textContent = completedCount; + if (todayActiveEl) todayActiveEl.textContent = activeCount; + + if (grid) { + grid.innerHTML = sessions.map(session => this.createSessionCard(session)).join(''); + } + } + + /** + * 날짜별 그룹으로 TBM 표시 + */ + displayTbmGroupedByDate() { + const container = document.getElementById('tbmDateGroupsContainer'); + const emptyState = document.getElementById('emptyState'); + const totalSessionsEl = document.getElementById('totalSessions'); + const completedSessionsEl = document.getElementById('completedSessions'); + + if (!container) return; + + const sortedDates = Object.keys(this.state.dateGroupedSessions).sort((a, b) => + new Date(b) - new Date(a) + ); + + if (sortedDates.length === 0 || this.state.allLoadedSessions.length === 0) { + container.innerHTML = ''; + if (emptyState) emptyState.style.display = 'flex'; + if (totalSessionsEl) totalSessionsEl.textContent = '0'; + if (completedSessionsEl) completedSessionsEl.textContent = '0'; + return; + } + + if (emptyState) emptyState.style.display = 'none'; + + // 통계 업데이트 + const completedCount = this.state.allLoadedSessions.filter(s => s.status === 'completed').length; + if (totalSessionsEl) totalSessionsEl.textContent = this.state.allLoadedSessions.length; + if (completedSessionsEl) completedSessionsEl.textContent = completedCount; + + // 날짜별 그룹 HTML 생성 + const today = this.utils.getTodayKST(); + const dayNames = ['일', '월', '화', '수', '목', '금', '토']; + + container.innerHTML = sortedDates.map(date => { + const sessions = this.state.dateGroupedSessions[date]; + const dateObj = new Date(date + 'T00:00:00'); + const dayName = dayNames[dateObj.getDay()]; + const isToday = date === today; + + const [year, month, day] = date.split('-'); + const displayDate = `${parseInt(month)}월 ${parseInt(day)}일`; + + return ` +
+
+ + ${displayDate} + ${dayName}요일 + ${isToday ? '오늘' : ''} + ${sessions.length}건 +
+
+
+ ${sessions.map(session => this.createSessionCard(session)).join('')} +
+
+
+ `; + }).join(''); + } + + /** + * 뷰 모드 표시 업데이트 + */ + updateViewModeIndicator() { + const indicator = document.getElementById('viewModeIndicator'); + const text = document.getElementById('viewModeText'); + + if (indicator && text) { + if (this.state.isAdminUser()) { + indicator.style.display = 'none'; + } else { + indicator.style.display = 'inline-flex'; + text.textContent = '내 TBM'; + } + } + } + + /** + * TBM 세션 카드 생성 + */ + createSessionCard(session) { + const statusBadge = this.utils.getStatusBadge(session.status); + + const leaderName = session.leader_name || session.created_by_name || '작업 책임자'; + const leaderRole = session.leader_name + ? (session.leader_job_type || '작업자') + : '관리자'; + + return ` +
+
+
+
+

+ ${leaderName} + ${leaderRole} +

+
+ ${statusBadge} +
+
+ 📅 + ${this.utils.formatDate(session.session_date)} ${session.start_time ? '| ' + session.start_time : ''} +
+
+ +
+
+
+ 프로젝트 + ${session.project_name || '-'} +
+
+ 공정 + ${session.work_type_name || '-'} +
+
+ 작업장 + ${session.work_location || '-'} +
+
+ 팀원 + ${session.team_member_count || 0}명 +
+
+
+ + ${session.status === 'draft' ? ` + + ` : ''} +
+ `; + } + + /** + * 디버그 + */ + debug() { + console.log('[TbmController] 상태 디버그:'); + this.state.debug(); + } +} + +// 전역 인스턴스 생성 +window.TbmController = new TbmController(); + +// 하위 호환성: 기존 전역 함수들 +window.switchTbmTab = (tabName) => window.TbmController.switchTbmTab(tabName); +window.displayTodayTbmSessions = () => window.TbmController.displayTodayTbmSessions(); +window.displayTbmGroupedByDate = () => window.TbmController.displayTbmGroupedByDate(); +window.displayTbmSessions = () => window.TbmController.displayTbmGroupedByDate(); +window.createSessionCard = (session) => window.TbmController.createSessionCard(session); +window.updateViewModeIndicator = () => window.TbmController.updateViewModeIndicator(); + +// 날짜 그룹 토글 +window.toggleDateGroup = function(date) { + const group = document.querySelector(`.tbm-date-group[data-date="${date}"]`); + if (group) { + group.classList.toggle('collapsed'); + } +}; + +// DOMContentLoaded 이벤트에서 초기화 +document.addEventListener('DOMContentLoaded', () => { + setTimeout(() => { + window.TbmController.init(); + }, 100); +}); + +console.log('[Module] tbm/index.js 로드 완료'); diff --git a/deploy/tkfb-package/web-ui/js/tbm/state.js b/deploy/tkfb-package/web-ui/js/tbm/state.js new file mode 100644 index 0000000..aacdc9f --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/tbm/state.js @@ -0,0 +1,392 @@ +/** + * TBM - State Manager + * TBM 페이지의 전역 상태 관리 + */ + +class TbmState { + constructor() { + // 세션 데이터 + this.allSessions = []; + this.todaySessions = []; + this.dateGroupedSessions = {}; + this.allLoadedSessions = []; + this.loadedDaysCount = 7; + + // 마스터 데이터 + this.allWorkers = []; + this.allProjects = []; + this.allWorkTypes = []; + this.allTasks = []; + this.allSafetyChecks = []; + this.allWorkplaces = []; + this.allWorkplaceCategories = []; + + // 현재 상태 + this.currentUser = null; + this.currentSessionId = null; + this.currentTab = 'tbm-input'; + + // 작업자 관련 + this.selectedWorkers = new Set(); + this.workerTaskList = []; + this.selectedWorkersInModal = new Set(); + this.currentEditingTaskLine = null; + + // 작업장 선택 관련 + this.selectedCategory = null; + this.selectedWorkplace = null; + this.selectedCategoryName = ''; + this.selectedWorkplaceName = ''; + + // 일괄 설정 관련 + this.isBulkMode = false; + this.bulkSelectedWorkers = new Set(); + + // 지도 관련 + this.mapCanvas = null; + this.mapCtx = null; + this.mapImage = null; + this.mapRegions = []; + + // 리스너 + this.listeners = new Map(); + + console.log('[TbmState] 초기화 완료'); + } + + /** + * 상태 업데이트 + */ + update(key, value) { + const prevValue = this[key]; + this[key] = value; + this.notifyListeners(key, value, prevValue); + } + + /** + * 리스너 등록 + */ + subscribe(key, callback) { + if (!this.listeners.has(key)) { + this.listeners.set(key, []); + } + this.listeners.get(key).push(callback); + } + + /** + * 리스너 알림 + */ + notifyListeners(key, newValue, prevValue) { + const keyListeners = this.listeners.get(key) || []; + keyListeners.forEach(callback => { + try { + callback(newValue, prevValue); + } catch (error) { + console.error(`[TbmState] 리스너 오류 (${key}):`, error); + } + }); + } + + /** + * 현재 사용자 정보 가져오기 + */ + getUser() { + if (!this.currentUser) { + const userInfo = localStorage.getItem('user'); + this.currentUser = userInfo ? JSON.parse(userInfo) : null; + } + return this.currentUser; + } + + /** + * Admin 여부 확인 + */ + isAdminUser() { + const user = this.getUser(); + if (!user) return false; + return user.role === 'Admin' || user.role === 'System Admin'; + } + + /** + * 탭 변경 + */ + setCurrentTab(tab) { + const prevTab = this.currentTab; + this.currentTab = tab; + this.notifyListeners('currentTab', tab, prevTab); + } + + /** + * 작업자 목록에 추가 + */ + addWorkerToList(worker) { + this.workerTaskList.push({ + worker_id: worker.worker_id, + worker_name: worker.worker_name, + job_type: worker.job_type, + tasks: [this.createEmptyTaskLine()] + }); + this.notifyListeners('workerTaskList', this.workerTaskList, null); + } + + /** + * 빈 작업 라인 생성 + */ + createEmptyTaskLine() { + return { + task_line_id: this.generateUUID(), + project_id: null, + work_type_id: null, + task_id: null, + workplace_category_id: null, + workplace_id: null, + workplace_category_name: '', + workplace_name: '', + work_detail: null, + is_present: true + }; + } + + /** + * 작업자에 작업 라인 추가 + */ + addTaskLineToWorker(workerIndex) { + if (this.workerTaskList[workerIndex]) { + this.workerTaskList[workerIndex].tasks.push(this.createEmptyTaskLine()); + this.notifyListeners('workerTaskList', this.workerTaskList, null); + } + } + + /** + * 작업 라인 제거 + */ + removeTaskLine(workerIndex, taskIndex) { + if (this.workerTaskList[workerIndex]?.tasks) { + this.workerTaskList[workerIndex].tasks.splice(taskIndex, 1); + this.notifyListeners('workerTaskList', this.workerTaskList, null); + } + } + + /** + * 작업자 제거 + */ + removeWorkerFromList(workerIndex) { + const removed = this.workerTaskList.splice(workerIndex, 1); + this.notifyListeners('workerTaskList', this.workerTaskList, null); + return removed[0]; + } + + /** + * 작업장 선택 초기화 + */ + resetWorkplaceSelection() { + this.selectedCategory = null; + this.selectedWorkplace = null; + this.selectedCategoryName = ''; + this.selectedWorkplaceName = ''; + this.mapCanvas = null; + this.mapCtx = null; + this.mapImage = null; + this.mapRegions = []; + } + + /** + * 일괄 설정 초기화 + */ + resetBulkSettings() { + this.isBulkMode = false; + this.bulkSelectedWorkers.clear(); + } + + /** + * 날짜별 세션 그룹화 + */ + groupSessionsByDate(sessions) { + this.dateGroupedSessions = {}; + this.allLoadedSessions = []; + + sessions.forEach(session => { + const date = this.formatDate(session.session_date); + if (!this.dateGroupedSessions[date]) { + this.dateGroupedSessions[date] = []; + } + this.dateGroupedSessions[date].push(session); + this.allLoadedSessions.push(session); + }); + } + + /** + * 날짜 포맷팅 + */ + formatDate(dateString) { + if (!dateString) return ''; + if (/^\d{4}-\d{2}-\d{2}$/.test(dateString)) { + return dateString; + } + const date = new Date(dateString); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; + } + + /** + * UUID 생성 + */ + generateUUID() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + const r = Math.random() * 16 | 0; + const v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); + } + + /** + * 상태 초기화 + */ + reset() { + this.workerTaskList = []; + this.selectedWorkers.clear(); + this.selectedWorkersInModal.clear(); + this.currentEditingTaskLine = null; + this.resetWorkplaceSelection(); + this.resetBulkSettings(); + } + + /** + * 디버그 출력 + */ + debug() { + console.log('[TbmState] 현재 상태:', { + allSessions: this.allSessions.length, + todaySessions: this.todaySessions.length, + allWorkers: this.allWorkers.length, + allProjects: this.allProjects.length, + workerTaskList: this.workerTaskList.length, + currentTab: this.currentTab + }); + } +} + +// 전역 인스턴스 생성 +window.TbmState = new TbmState(); + +// 하위 호환성을 위한 전역 변수 프록시 +const tbmStateProxy = window.TbmState; + +Object.defineProperties(window, { + allSessions: { + get: () => tbmStateProxy.allSessions, + set: (v) => { tbmStateProxy.allSessions = v; } + }, + todaySessions: { + get: () => tbmStateProxy.todaySessions, + set: (v) => { tbmStateProxy.todaySessions = v; } + }, + allWorkers: { + get: () => tbmStateProxy.allWorkers, + set: (v) => { tbmStateProxy.allWorkers = v; } + }, + allProjects: { + get: () => tbmStateProxy.allProjects, + set: (v) => { tbmStateProxy.allProjects = v; } + }, + allWorkTypes: { + get: () => tbmStateProxy.allWorkTypes, + set: (v) => { tbmStateProxy.allWorkTypes = v; } + }, + allTasks: { + get: () => tbmStateProxy.allTasks, + set: (v) => { tbmStateProxy.allTasks = v; } + }, + allSafetyChecks: { + get: () => tbmStateProxy.allSafetyChecks, + set: (v) => { tbmStateProxy.allSafetyChecks = v; } + }, + allWorkplaces: { + get: () => tbmStateProxy.allWorkplaces, + set: (v) => { tbmStateProxy.allWorkplaces = v; } + }, + allWorkplaceCategories: { + get: () => tbmStateProxy.allWorkplaceCategories, + set: (v) => { tbmStateProxy.allWorkplaceCategories = v; } + }, + currentUser: { + get: () => tbmStateProxy.currentUser, + set: (v) => { tbmStateProxy.currentUser = v; } + }, + currentSessionId: { + get: () => tbmStateProxy.currentSessionId, + set: (v) => { tbmStateProxy.currentSessionId = v; } + }, + selectedWorkers: { + get: () => tbmStateProxy.selectedWorkers, + set: (v) => { tbmStateProxy.selectedWorkers = v; } + }, + workerTaskList: { + get: () => tbmStateProxy.workerTaskList, + set: (v) => { tbmStateProxy.workerTaskList = v; } + }, + selectedWorkersInModal: { + get: () => tbmStateProxy.selectedWorkersInModal, + set: (v) => { tbmStateProxy.selectedWorkersInModal = v; } + }, + currentEditingTaskLine: { + get: () => tbmStateProxy.currentEditingTaskLine, + set: (v) => { tbmStateProxy.currentEditingTaskLine = v; } + }, + selectedCategory: { + get: () => tbmStateProxy.selectedCategory, + set: (v) => { tbmStateProxy.selectedCategory = v; } + }, + selectedWorkplace: { + get: () => tbmStateProxy.selectedWorkplace, + set: (v) => { tbmStateProxy.selectedWorkplace = v; } + }, + selectedCategoryName: { + get: () => tbmStateProxy.selectedCategoryName, + set: (v) => { tbmStateProxy.selectedCategoryName = v; } + }, + selectedWorkplaceName: { + get: () => tbmStateProxy.selectedWorkplaceName, + set: (v) => { tbmStateProxy.selectedWorkplaceName = v; } + }, + isBulkMode: { + get: () => tbmStateProxy.isBulkMode, + set: (v) => { tbmStateProxy.isBulkMode = v; } + }, + bulkSelectedWorkers: { + get: () => tbmStateProxy.bulkSelectedWorkers, + set: (v) => { tbmStateProxy.bulkSelectedWorkers = v; } + }, + dateGroupedSessions: { + get: () => tbmStateProxy.dateGroupedSessions, + set: (v) => { tbmStateProxy.dateGroupedSessions = v; } + }, + allLoadedSessions: { + get: () => tbmStateProxy.allLoadedSessions, + set: (v) => { tbmStateProxy.allLoadedSessions = v; } + }, + loadedDaysCount: { + get: () => tbmStateProxy.loadedDaysCount, + set: (v) => { tbmStateProxy.loadedDaysCount = v; } + }, + mapRegions: { + get: () => tbmStateProxy.mapRegions, + set: (v) => { tbmStateProxy.mapRegions = v; } + }, + mapCanvas: { + get: () => tbmStateProxy.mapCanvas, + set: (v) => { tbmStateProxy.mapCanvas = v; } + }, + mapCtx: { + get: () => tbmStateProxy.mapCtx, + set: (v) => { tbmStateProxy.mapCtx = v; } + }, + mapImage: { + get: () => tbmStateProxy.mapImage, + set: (v) => { tbmStateProxy.mapImage = v; } + } +}); + +console.log('[Module] tbm/state.js 로드 완료'); diff --git a/deploy/tkfb-package/web-ui/js/tbm/utils.js b/deploy/tkfb-package/web-ui/js/tbm/utils.js new file mode 100644 index 0000000..7926a43 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/tbm/utils.js @@ -0,0 +1,253 @@ +/** + * TBM - Utilities + * TBM 관련 유틸리티 함수들 + */ + +class TbmUtils { + constructor() { + console.log('[TbmUtils] 초기화 완료'); + } + + /** + * 서울 시간대(Asia/Seoul, UTC+9) 기준 오늘 날짜를 YYYY-MM-DD 형식으로 반환 + */ + getTodayKST() { + const now = new Date(); + const kstOffset = 9 * 60; + const utc = now.getTime() + (now.getTimezoneOffset() * 60000); + const kstTime = new Date(utc + (kstOffset * 60000)); + + const year = kstTime.getFullYear(); + const month = String(kstTime.getMonth() + 1).padStart(2, '0'); + const day = String(kstTime.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; + } + + /** + * ISO 날짜 문자열을 YYYY-MM-DD 형식으로 변환 + */ + formatDate(dateString) { + if (!dateString) return ''; + + if (/^\d{4}-\d{2}-\d{2}$/.test(dateString)) { + return dateString; + } + + const date = new Date(dateString); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; + } + + /** + * 날짜 표시용 포맷 (MM월 DD일) + */ + formatDateDisplay(dateString) { + if (!dateString) return ''; + const [year, month, day] = dateString.split('-'); + return `${parseInt(month)}월 ${parseInt(day)}일`; + } + + /** + * 날짜를 연/월/일/요일 형식으로 포맷 + */ + formatDateFull(dateString) { + if (!dateString) return ''; + const dayNames = ['일', '월', '화', '수', '목', '금', '토']; + const [year, month, day] = dateString.split('-'); + const dateObj = new Date(dateString); + const dayName = dayNames[dateObj.getDay()]; + return `${year}년 ${parseInt(month)}월 ${parseInt(day)}일 (${dayName})`; + } + + /** + * 요일 반환 + */ + getDayOfWeek(dateString) { + const dayNames = ['일', '월', '화', '수', '목', '금', '토']; + const dateObj = new Date(dateString + 'T00:00:00'); + return dayNames[dateObj.getDay()]; + } + + /** + * 오늘인지 확인 + */ + isToday(dateString) { + const today = this.getTodayKST(); + return this.formatDate(dateString) === today; + } + + /** + * 현재 시간을 HH:MM 형식으로 반환 + */ + getCurrentTime() { + return new Date().toTimeString().slice(0, 5); + } + + /** + * UUID 생성 + */ + generateUUID() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + const r = Math.random() * 16 | 0; + const v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); + } + + /** + * HTML 이스케이프 + */ + escapeHtml(text) { + if (!text) return ''; + const div = document.createElement('div'); + div.textContent = text; + return div.innerHTML; + } + + /** + * 날씨 조건명 반환 + */ + getWeatherConditionName(code) { + const names = { + clear: '맑음', + rain: '비', + snow: '눈', + heat: '폭염', + cold: '한파', + wind: '강풍', + fog: '안개', + dust: '미세먼지' + }; + return names[code] || code; + } + + /** + * 날씨 아이콘 반환 + */ + getWeatherIcon(code) { + const icons = { + clear: '☀️', + rain: '🌧️', + snow: '❄️', + heat: '🔥', + cold: '🥶', + wind: '💨', + fog: '🌫️', + dust: '😷' + }; + return icons[code] || '🌤️'; + } + + /** + * 카테고리명 반환 + */ + getCategoryName(category) { + const names = { + 'PPE': '개인 보호 장비', + 'EQUIPMENT': '장비 점검', + 'ENVIRONMENT': '작업 환경', + 'EMERGENCY': '비상 대응', + 'WEATHER': '날씨', + 'TASK': '작업' + }; + return names[category] || category; + } + + /** + * 상태 배지 HTML 반환 + */ + getStatusBadge(status) { + const badges = { + 'draft': '진행중', + 'completed': '완료', + 'cancelled': '취소' + }; + return badges[status] || ''; + } +} + +// 전역 인스턴스 생성 +window.TbmUtils = new TbmUtils(); + +// 하위 호환성: 기존 함수들 +window.getTodayKST = () => window.TbmUtils.getTodayKST(); +window.formatDate = (dateString) => window.TbmUtils.formatDate(dateString); + +// 토스트 알림 +window.showToast = function(message, type = 'info', duration = 3000) { + const container = document.getElementById('toastContainer'); + if (!container) { + console.log(`[Toast] ${type}: ${message}`); + return; + } + + const toast = document.createElement('div'); + toast.className = `toast ${type}`; + + const iconMap = { + success: '✅', + error: '❌', + warning: '⚠️', + info: 'ℹ️' + }; + + toast.innerHTML = ` +
${iconMap[type] || 'ℹ️'}
+
${message}
+ + `; + + toast.style.cssText = ` + display: flex; + align-items: center; + gap: 0.75rem; + padding: 1rem 1.25rem; + background: white; + border-radius: 0.5rem; + box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1); + margin-bottom: 0.75rem; + min-width: 300px; + animation: slideIn 0.3s ease-out; + `; + + container.appendChild(toast); + + setTimeout(() => { + if (toast.parentElement) { + toast.style.animation = 'slideOut 0.3s ease-out'; + setTimeout(() => toast.remove(), 300); + } + }, duration); +}; + +// 카테고리별 그룹화 +window.groupChecksByCategory = function(checks) { + return checks.reduce((acc, check) => { + const category = check.check_category || 'OTHER'; + if (!acc[category]) acc[category] = []; + acc[category].push(check); + return acc; + }, {}); +}; + +// 작업별 그룹화 +window.groupChecksByTask = function(checks) { + return checks.reduce((acc, check) => { + const taskId = check.task_id || 0; + const taskName = check.task_name || '기타 작업'; + if (!acc[taskId]) acc[taskId] = { name: taskName, items: [] }; + acc[taskId].items.push(check); + return acc; + }, {}); +}; + +// Admin 사용자 확인 +window.isAdminUser = function() { + return window.TbmState?.isAdminUser() || false; +}; + +console.log('[Module] tbm/utils.js 로드 완료'); diff --git a/deploy/tkfb-package/web-ui/js/user-dashboard.js b/deploy/tkfb-package/web-ui/js/user-dashboard.js new file mode 100644 index 0000000..fee8d7a --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/user-dashboard.js @@ -0,0 +1,93 @@ +// /js/user-dashboard.js +import { getUser } from './auth.js'; +import { apiGet } from './api-helper.js'; // 개선된 api-helper를 사용합니다. + +/** + * API를 호출하여 오늘의 작업 일정을 불러와 화면에 표시합니다. + */ +async function loadTodaySchedule() { + const scheduleContainer = document.getElementById('today-schedule'); + scheduleContainer.innerHTML = '

📅 오늘의 작업 일정을 불러오는 중...

'; + + try { + // 예시: /api/dashboard/today-schedule 엔드포인트에서 데이터를 가져옵니다. + // 실제 엔드포인트는 백엔드 구현에 따라 달라질 수 있습니다. + const scheduleData = await apiGet('/dashboard/today-schedule'); + + if (scheduleData && scheduleData.length > 0) { + const scheduleHtml = scheduleData.map(item => ` +
+ ${item.time} + ${item.task_name} + ${item.status_kor} +
+ `).join(''); + scheduleContainer.innerHTML = scheduleHtml; + } else { + scheduleContainer.innerHTML = '

오늘 예정된 작업이 없습니다.

'; + } + } catch (error) { + console.error('오늘의 작업 일정 로드 실패:', error); + scheduleContainer.innerHTML = '

일정 정보를 불러오는 데 실패했습니다.

'; + } +} + +/** + * API를 호출하여 현재 사용자의 작업 통계를 불러와 화면에 표시합니다. + */ +async function loadWorkStats() { + const statsContainer = document.getElementById('work-stats'); + statsContainer.innerHTML = '

📈 내 작업 현황을 불러오는 중...

'; + + try { + // 예시: /api/dashboard/my-stats 엔드포인트에서 데이터를 가져옵니다. + const statsData = await apiGet('/dashboard/my-stats'); + + if (statsData) { + const statsHtml = ` +
+ 이번 주 작업 시간: + ${statsData.weekly_hours || 0} 시간 +
+
+ 이번 달 작업 시간: + ${statsData.monthly_hours || 0} 시간 +
+
+ 완료한 작업 수: + ${statsData.completed_tasks || 0} 건 +
+ `; + statsContainer.innerHTML = statsHtml; + } else { + statsContainer.innerHTML = '

표시할 통계 정보가 없습니다.

'; + } + } catch (error) { + console.error('작업 통계 로드 실패:', error); + statsContainer.innerHTML = '

통계 정보를 불러오는 데 실패했습니다.

'; + } +} + +/** + * 환영 메시지를 사용자 이름으로 개인화합니다. + */ +function personalizeWelcome() { + // 전역 변수 대신 auth.js 모듈을 통해 사용자 정보를 가져옵니다. + const user = getUser(); + if (user) { + const welcomeEl = document.getElementById('welcome-message'); + if (welcomeEl) { + welcomeEl.textContent = `${user.name || user.username}님, 환영합니다! 오늘 하루도 안전하게 작업하세요.`; + } + } +} + +// 페이지 초기화 함수 +function initializeDashboard() { + personalizeWelcome(); + loadTodaySchedule(); + loadWorkStats(); +} + +// DOM이 로드되면 대시보드 초기화를 시작합니다. +document.addEventListener('DOMContentLoaded', initializeDashboard); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/vacation-allocation.js b/deploy/tkfb-package/web-ui/js/vacation-allocation.js new file mode 100644 index 0000000..cb2a04b --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/vacation-allocation.js @@ -0,0 +1,864 @@ +/** + * vacation-allocation.js + * 휴가 발생 입력 페이지 로직 + */ + +import { API_BASE_URL } from './api-config.js'; + +// 전역 변수 +let workers = []; +let vacationTypes = []; +let currentWorkerBalances = []; + +/** + * 페이지 초기화 + */ +document.addEventListener('DOMContentLoaded', async () => { + // 관리자 권한 체크 + const user = JSON.parse(localStorage.getItem('user') || '{}'); + console.log('Current user:', user); + console.log('Role ID:', user.role_id, 'Role:', user.role); + + // role이 'Admin'이거나 role_id가 1 또는 2인 경우 허용 + const isAdmin = user.role === 'Admin' || [1, 2].includes(user.role_id); + + if (!isAdmin) { + console.error('Access denied. User:', user); + alert('관리자만 접근할 수 있습니다'); + window.location.href = '/pages/dashboard.html'; + return; + } + + await loadInitialData(); + initializeYearSelectors(); + initializeTabNavigation(); + initializeEventListeners(); +}); + +/** + * 초기 데이터 로드 + */ +async function loadInitialData() { + await Promise.all([ + loadWorkers(), + loadVacationTypes() + ]); +} + +/** + * 작업자 목록 로드 + */ +async function loadWorkers() { + try { + const token = localStorage.getItem('token'); + console.log('Loading workers... Token:', token ? 'exists' : 'missing'); + + const response = await fetch(`${API_BASE_URL}/api/workers`, { + headers: { + 'Authorization': `Bearer ${token}` + } + }); + + console.log('Workers API Response status:', response.status); + + if (!response.ok) { + const errorData = await response.json(); + console.error('Workers API Error:', errorData); + throw new Error(errorData.message || '작업자 목록 로드 실패'); + } + + const result = await response.json(); + console.log('Workers data:', result); + workers = result.data || []; + + if (workers.length === 0) { + console.warn('No workers found in database'); + showToast('등록된 작업자가 없습니다', 'warning'); + return; + } + + // 개별 입력 탭 - 작업자 셀렉트 박스 + const selectWorker = document.getElementById('individualWorker'); + workers.forEach(worker => { + const option = document.createElement('option'); + option.value = worker.worker_id; + option.textContent = `${worker.worker_name} (${worker.employment_status === 'employed' ? '재직' : '퇴사'})`; + selectWorker.appendChild(option); + }); + console.log(`Loaded ${workers.length} workers successfully`); + } catch (error) { + console.error('작업자 로드 오류:', error); + showToast(`작업자 목록을 불러오는데 실패했습니다: ${error.message}`, 'error'); + } +} + +/** + * 휴가 유형 목록 로드 + */ +async function loadVacationTypes() { + try { + const token = localStorage.getItem('token'); + const response = await fetch(`${API_BASE_URL}/api/vacation-types`, { + headers: { + 'Authorization': `Bearer ${token}` + } + }); + + if (!response.ok) throw new Error('휴가 유형 로드 실패'); + + const result = await response.json(); + vacationTypes = result.data || []; + + // 개별 입력 탭 - 휴가 유형 셀렉트 박스 + const selectType = document.getElementById('individualVacationType'); + vacationTypes.forEach(type => { + const option = document.createElement('option'); + option.value = type.id; + option.textContent = `${type.type_name} ${type.is_special ? '(특별)' : ''}`; + selectType.appendChild(option); + }); + + // 특별 휴가 관리 탭 테이블 로드 + loadSpecialTypesTable(); + } catch (error) { + console.error('휴가 유형 로드 오류:', error); + showToast('휴가 유형을 불러오는데 실패했습니다', 'error'); + } +} + +/** + * 연도 셀렉터 초기화 + */ +function initializeYearSelectors() { + const currentYear = new Date().getFullYear(); + const yearSelectors = ['individualYear', 'bulkYear']; + + yearSelectors.forEach(selectorId => { + const select = document.getElementById(selectorId); + for (let year = currentYear - 1; year <= currentYear + 2; year++) { + const option = document.createElement('option'); + option.value = year; + option.textContent = `${year}년`; + if (year === currentYear) { + option.selected = true; + } + select.appendChild(option); + } + }); +} + +/** + * 탭 네비게이션 초기화 + */ +function initializeTabNavigation() { + const tabButtons = document.querySelectorAll('.tab-button'); + tabButtons.forEach(button => { + button.addEventListener('click', () => { + const tabName = button.dataset.tab; + switchTab(tabName); + }); + }); +} + +/** + * 탭 전환 + */ +function switchTab(tabName) { + // 탭 버튼 활성화 + document.querySelectorAll('.tab-button').forEach(btn => { + btn.classList.remove('active'); + }); + document.querySelector(`[data-tab="${tabName}"]`).classList.add('active'); + + // 탭 콘텐츠 표시 + document.querySelectorAll('.tab-content').forEach(content => { + content.classList.remove('active'); + }); + document.getElementById(`tab-${tabName}`).classList.add('active'); +} + +/** + * 이벤트 리스너 초기화 + */ +function initializeEventListeners() { + // === 탭 1: 개별 입력 === + document.getElementById('individualWorker').addEventListener('change', loadWorkerBalances); + document.getElementById('autoCalculateBtn').addEventListener('click', autoCalculateAnnualLeave); + document.getElementById('individualSubmitBtn').addEventListener('click', submitIndividualVacation); + document.getElementById('individualResetBtn').addEventListener('click', resetIndividualForm); + + // === 탭 2: 일괄 입력 === + document.getElementById('bulkPreviewBtn').addEventListener('click', previewBulkAllocation); + document.getElementById('bulkSubmitBtn').addEventListener('click', submitBulkAllocation); + + // === 탭 3: 특별 휴가 관리 === + document.getElementById('addSpecialTypeBtn').addEventListener('click', () => openVacationTypeModal()); + + // 모달 닫기 + document.querySelectorAll('.modal-close').forEach(btn => { + btn.addEventListener('click', closeModals); + }); + + // 모달 폼 제출 + document.getElementById('vacationTypeForm').addEventListener('submit', submitVacationType); + document.getElementById('editBalanceForm').addEventListener('submit', submitEditBalance); +} + +// ============================================================================= +// 탭 1: 개별 입력 +// ============================================================================= + +/** + * 작업자의 기존 휴가 잔액 로드 + */ +async function loadWorkerBalances() { + const workerId = document.getElementById('individualWorker').value; + const year = document.getElementById('individualYear').value; + + if (!workerId) { + document.getElementById('individualTableBody').innerHTML = ` +

작업자를 선택하세요

+ `; + return; + } + + try { + const token = localStorage.getItem('token'); + const response = await fetch(`${API_BASE_URL}/api/vacation-balances/worker/${workerId}/year/${year}`, { + headers: { + 'Authorization': `Bearer ${token}` + } + }); + + if (!response.ok) throw new Error('휴가 잔액 로드 실패'); + + const result = await response.json(); + currentWorkerBalances = result.data || []; + + updateWorkerBalancesTable(); + } catch (error) { + console.error('휴가 잔액 로드 오류:', error); + showToast('휴가 잔액을 불러오는데 실패했습니다', 'error'); + } +} + +/** + * 작업자 휴가 잔액 테이블 업데이트 + */ +function updateWorkerBalancesTable() { + const tbody = document.getElementById('individualTableBody'); + + if (currentWorkerBalances.length === 0) { + tbody.innerHTML = ` +

등록된 휴가가 없습니다

+ `; + return; + } + + tbody.innerHTML = currentWorkerBalances.map(balance => ` + + ${balance.worker_name || '-'} + ${balance.year} + ${balance.type_name} ${balance.is_special ? '특별' : ''} + ${balance.total_days}일 + ${balance.used_days}일 + ${balance.remaining_days}일 + ${balance.notes || '-'} + + + + + + `).join(''); +} + +/** + * 자동 계산 (연차만 해당) + */ +async function autoCalculateAnnualLeave() { + const workerId = document.getElementById('individualWorker').value; + const year = document.getElementById('individualYear').value; + const typeId = document.getElementById('individualVacationType').value; + + if (!workerId) { + showToast('작업자를 선택하세요', 'warning'); + return; + } + + // 선택한 휴가 유형이 ANNUAL인지 확인 + const selectedType = vacationTypes.find(t => t.id == typeId); + if (!selectedType || selectedType.type_code !== 'ANNUAL') { + showToast('연차(ANNUAL) 유형만 자동 계산이 가능합니다', 'warning'); + return; + } + + // 작업자의 입사일 조회 + const worker = workers.find(w => w.worker_id == workerId); + if (!worker || !worker.hire_date) { + showToast('작업자의 입사일 정보가 없습니다', 'error'); + return; + } + + try { + const token = localStorage.getItem('token'); + const response = await fetch(`${API_BASE_URL}/api/vacation-balances/auto-calculate`, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + worker_id: workerId, + hire_date: worker.hire_date, + year: year + }) + }); + + const result = await response.json(); + + if (!response.ok) { + throw new Error(result.message || '자동 계산 실패'); + } + + // 계산 결과 표시 + const resultDiv = document.getElementById('autoCalculateResult'); + resultDiv.innerHTML = ` + 자동 계산 완료
+ 입사일: ${worker.hire_date}
+ 계산된 연차: ${result.data.calculated_days}일
+ 아래 "총 부여 일수"에 자동으로 입력됩니다. + `; + resultDiv.style.display = 'block'; + + // 폼에 자동 입력 + document.getElementById('individualTotalDays').value = result.data.calculated_days; + document.getElementById('individualNotes').value = `근속년수 기반 자동 계산 (입사일: ${worker.hire_date})`; + + showToast(result.message, 'success'); + + // 기존 데이터 새로고침 + await loadWorkerBalances(); + } catch (error) { + console.error('자동 계산 오류:', error); + showToast(error.message, 'error'); + } +} + +/** + * 개별 휴가 제출 + */ +async function submitIndividualVacation() { + const workerId = document.getElementById('individualWorker').value; + const year = document.getElementById('individualYear').value; + const typeId = document.getElementById('individualVacationType').value; + const totalDays = document.getElementById('individualTotalDays').value; + const usedDays = document.getElementById('individualUsedDays').value || 0; + const notes = document.getElementById('individualNotes').value; + + if (!workerId || !year || !typeId || !totalDays) { + showToast('필수 항목을 모두 입력하세요', 'warning'); + return; + } + + try { + const token = localStorage.getItem('token'); + const response = await fetch(`${API_BASE_URL}/api/vacation-balances`, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + worker_id: workerId, + vacation_type_id: typeId, + year: year, + total_days: parseFloat(totalDays), + used_days: parseFloat(usedDays), + notes: notes + }) + }); + + const result = await response.json(); + + if (!response.ok) { + throw new Error(result.message || '저장 실패'); + } + + showToast('휴가가 등록되었습니다', 'success'); + resetIndividualForm(); + await loadWorkerBalances(); + } catch (error) { + console.error('휴가 등록 오류:', error); + showToast(error.message, 'error'); + } +} + +/** + * 개별 입력 폼 초기화 + */ +function resetIndividualForm() { + document.getElementById('individualVacationType').value = ''; + document.getElementById('individualTotalDays').value = ''; + document.getElementById('individualUsedDays').value = '0'; + document.getElementById('individualNotes').value = ''; + document.getElementById('autoCalculateResult').style.display = 'none'; +} + +/** + * 휴가 수정 (전역 함수로 노출) + */ +window.editBalance = function(balanceId) { + const balance = currentWorkerBalances.find(b => b.id === balanceId); + if (!balance) return; + + document.getElementById('editBalanceId').value = balance.id; + document.getElementById('editTotalDays').value = balance.total_days; + document.getElementById('editUsedDays').value = balance.used_days; + document.getElementById('editNotes').value = balance.notes || ''; + + document.getElementById('editBalanceModal').classList.add('active'); +}; + +/** + * 휴가 삭제 (전역 함수로 노출) + */ +window.deleteBalance = async function(balanceId) { + if (!confirm('정말 삭제하시겠습니까?')) return; + + try { + const token = localStorage.getItem('token'); + const response = await fetch(`${API_BASE_URL}/api/vacation-balances/${balanceId}`, { + method: 'DELETE', + headers: { + 'Authorization': `Bearer ${token}` + } + }); + + const result = await response.json(); + + if (!response.ok) { + throw new Error(result.message || '삭제 실패'); + } + + showToast('삭제되었습니다', 'success'); + await loadWorkerBalances(); + } catch (error) { + console.error('삭제 오류:', error); + showToast(error.message, 'error'); + } +}; + +/** + * 휴가 수정 제출 + */ +async function submitEditBalance(e) { + e.preventDefault(); + + const balanceId = document.getElementById('editBalanceId').value; + const totalDays = document.getElementById('editTotalDays').value; + const usedDays = document.getElementById('editUsedDays').value; + const notes = document.getElementById('editNotes').value; + + try { + const token = localStorage.getItem('token'); + const response = await fetch(`${API_BASE_URL}/api/vacation-balances/${balanceId}`, { + method: 'PUT', + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + total_days: parseFloat(totalDays), + used_days: parseFloat(usedDays), + notes: notes + }) + }); + + const result = await response.json(); + + if (!response.ok) { + throw new Error(result.message || '수정 실패'); + } + + showToast('수정되었습니다', 'success'); + closeModals(); + await loadWorkerBalances(); + } catch (error) { + console.error('수정 오류:', error); + showToast(error.message, 'error'); + } +} + +// ============================================================================= +// 탭 2: 일괄 입력 +// ============================================================================= + +let bulkPreviewData = []; + +/** + * 일괄 할당 미리보기 + */ +async function previewBulkAllocation() { + const year = document.getElementById('bulkYear').value; + const employmentStatus = document.getElementById('bulkEmploymentStatus').value; + + // 필터링된 작업자 목록 + let targetWorkers = workers; + if (employmentStatus === 'employed') { + targetWorkers = workers.filter(w => w.employment_status === 'employed'); + } + + // ANNUAL 유형 찾기 + const annualType = vacationTypes.find(t => t.type_code === 'ANNUAL'); + if (!annualType) { + showToast('ANNUAL 휴가 유형이 없습니다', 'error'); + return; + } + + // 미리보기 데이터 생성 + bulkPreviewData = targetWorkers.map(worker => { + const hireDate = worker.hire_date; + if (!hireDate) { + return { + worker_id: worker.worker_id, + worker_name: worker.worker_name, + hire_date: '-', + years_worked: '-', + calculated_days: 0, + reason: '입사일 정보 없음', + status: 'error' + }; + } + + const calculatedDays = calculateAnnualLeaveDays(hireDate, year); + const yearsWorked = calculateYearsWorked(hireDate, year); + + return { + worker_id: worker.worker_id, + worker_name: worker.worker_name, + hire_date: hireDate, + years_worked: yearsWorked, + calculated_days: calculatedDays, + reason: getCalculationReason(yearsWorked, calculatedDays), + status: 'ready' + }; + }); + + updateBulkPreviewTable(); + document.getElementById('bulkPreviewSection').style.display = 'block'; + document.getElementById('bulkSubmitBtn').disabled = false; +} + +/** + * 연차 일수 계산 (한국 근로기준법) + */ +function calculateAnnualLeaveDays(hireDate, targetYear) { + const hire = new Date(hireDate); + const targetDate = new Date(targetYear, 0, 1); + + const monthsDiff = (targetDate.getFullYear() - hire.getFullYear()) * 12 + + (targetDate.getMonth() - hire.getMonth()); + + // 1년 미만: 월 1일 + if (monthsDiff < 12) { + return Math.floor(monthsDiff); + } + + // 1년 이상: 15일 기본 + 2년마다 1일 추가 (최대 25일) + const yearsWorked = Math.floor(monthsDiff / 12); + const additionalDays = Math.floor((yearsWorked - 1) / 2); + + return Math.min(15 + additionalDays, 25); +} + +/** + * 근속년수 계산 + */ +function calculateYearsWorked(hireDate, targetYear) { + const hire = new Date(hireDate); + const targetDate = new Date(targetYear, 0, 1); + + const monthsDiff = (targetDate.getFullYear() - hire.getFullYear()) * 12 + + (targetDate.getMonth() - hire.getMonth()); + + return (monthsDiff / 12).toFixed(1); +} + +/** + * 계산 근거 생성 + */ +function getCalculationReason(yearsWorked, days) { + const years = parseFloat(yearsWorked); + if (years < 1) { + return `입사 ${Math.floor(years * 12)}개월 (월 1일)`; + } + if (days === 25) { + return '최대 25일 (근속 3년 이상)'; + } + return `근속 ${Math.floor(years)}년 (15일 + ${days - 15}일)`; +} + +/** + * 일괄 미리보기 테이블 업데이트 + */ +function updateBulkPreviewTable() { + const tbody = document.getElementById('bulkPreviewTableBody'); + + tbody.innerHTML = bulkPreviewData.map(item => { + const statusBadge = item.status === 'error' + ? '오류' + : '준비'; + + return ` + + ${item.worker_name} + ${item.hire_date} + ${item.years_worked}년 + ${item.calculated_days}일 + ${item.reason} + ${statusBadge} + + `; + }).join(''); +} + +/** + * 일괄 할당 제출 + */ +async function submitBulkAllocation() { + const year = document.getElementById('bulkYear').value; + + // 오류가 없는 항목만 필터링 + const validItems = bulkPreviewData.filter(item => item.status !== 'error' && item.calculated_days > 0); + + if (validItems.length === 0) { + showToast('생성할 항목이 없습니다', 'warning'); + return; + } + + if (!confirm(`${validItems.length}명의 연차를 생성하시겠습니까?`)) { + return; + } + + // ANNUAL 유형 찾기 + const annualType = vacationTypes.find(t => t.type_code === 'ANNUAL'); + + let successCount = 0; + let failCount = 0; + + for (const item of validItems) { + try { + const token = localStorage.getItem('token'); + const response = await fetch(`${API_BASE_URL}/api/vacation-balances/auto-calculate`, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + worker_id: item.worker_id, + hire_date: item.hire_date, + year: year + }) + }); + + if (response.ok) { + successCount++; + } else { + failCount++; + } + } catch (error) { + failCount++; + } + } + + showToast(`완료: ${successCount}건 성공, ${failCount}건 실패`, successCount > 0 ? 'success' : 'error'); + + // 미리보기 초기화 + document.getElementById('bulkPreviewSection').style.display = 'none'; + document.getElementById('bulkSubmitBtn').disabled = true; + bulkPreviewData = []; +} + +// ============================================================================= +// 탭 3: 특별 휴가 관리 +// ============================================================================= + +/** + * 특별 휴가 유형 테이블 로드 + */ +function loadSpecialTypesTable() { + const tbody = document.getElementById('specialTypesTableBody'); + + if (vacationTypes.length === 0) { + tbody.innerHTML = ` +

등록된 휴가 유형이 없습니다

+ `; + return; + } + + tbody.innerHTML = vacationTypes.map(type => ` + + ${type.type_name} + ${type.type_code} + ${type.priority} + ${type.is_special ? '특별' : '-'} + ${type.is_system ? '시스템' : '-'} + ${type.description || '-'} + + + + + + `).join(''); +} + +/** + * 휴가 유형 모달 열기 + */ +function openVacationTypeModal(typeId = null) { + const modal = document.getElementById('vacationTypeModal'); + const form = document.getElementById('vacationTypeForm'); + form.reset(); + + if (typeId) { + const type = vacationTypes.find(t => t.id === typeId); + if (!type) return; + + document.getElementById('modalTitle').textContent = '휴가 유형 수정'; + document.getElementById('modalTypeId').value = type.id; + document.getElementById('modalTypeName').value = type.type_name; + document.getElementById('modalTypeCode').value = type.type_code; + document.getElementById('modalPriority').value = type.priority; + document.getElementById('modalIsSpecial').checked = type.is_special === 1; + document.getElementById('modalDescription').value = type.description || ''; + } else { + document.getElementById('modalTitle').textContent = '휴가 유형 추가'; + document.getElementById('modalTypeId').value = ''; + } + + modal.classList.add('active'); +} + +/** + * 휴가 유형 수정 (전역 함수) + */ +window.editVacationType = function(typeId) { + openVacationTypeModal(typeId); +}; + +/** + * 휴가 유형 삭제 (전역 함수) + */ +window.deleteVacationType = async function(typeId) { + if (!confirm('정말 삭제하시겠습니까?')) return; + + try { + const token = localStorage.getItem('token'); + const response = await fetch(`${API_BASE_URL}/api/vacation-types/${typeId}`, { + method: 'DELETE', + headers: { + 'Authorization': `Bearer ${token}` + } + }); + + const result = await response.json(); + + if (!response.ok) { + throw new Error(result.message || '삭제 실패'); + } + + showToast('삭제되었습니다', 'success'); + await loadVacationTypes(); + } catch (error) { + console.error('삭제 오류:', error); + showToast(error.message, 'error'); + } +}; + +/** + * 휴가 유형 제출 + */ +async function submitVacationType(e) { + e.preventDefault(); + + const typeId = document.getElementById('modalTypeId').value; + const typeName = document.getElementById('modalTypeName').value; + const typeCode = document.getElementById('modalTypeCode').value; + const priority = document.getElementById('modalPriority').value; + const isSpecial = document.getElementById('modalIsSpecial').checked ? 1 : 0; + const description = document.getElementById('modalDescription').value; + + const data = { + type_name: typeName, + type_code: typeCode.toUpperCase(), + priority: parseInt(priority), + is_special: isSpecial, + description: description + }; + + try { + const token = localStorage.getItem('token'); + const url = typeId + ? `${API_BASE_URL}/api/vacation-types/${typeId}` + : `${API_BASE_URL}/api/vacation-types`; + + const response = await fetch(url, { + method: typeId ? 'PUT' : 'POST', + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }, + body: JSON.stringify(data) + }); + + const result = await response.json(); + + if (!response.ok) { + throw new Error(result.message || '저장 실패'); + } + + showToast(typeId ? '수정되었습니다' : '추가되었습니다', 'success'); + closeModals(); + await loadVacationTypes(); + } catch (error) { + console.error('저장 오류:', error); + showToast(error.message, 'error'); + } +} + +// ============================================================================= +// 공통 함수 +// ============================================================================= + +/** + * 모달 닫기 + */ +function closeModals() { + document.querySelectorAll('.modal').forEach(modal => { + modal.classList.remove('active'); + }); +} + +/** + * 토스트 메시지 + */ +function showToast(message, type = 'info') { + const container = document.getElementById('toastContainer'); + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + toast.textContent = message; + + container.appendChild(toast); + + setTimeout(() => { + toast.classList.add('show'); + }, 10); + + setTimeout(() => { + toast.classList.remove('show'); + setTimeout(() => { + container.removeChild(toast); + }, 300); + }, 3000); +} diff --git a/deploy/tkfb-package/web-ui/js/vacation-common.js b/deploy/tkfb-package/web-ui/js/vacation-common.js new file mode 100644 index 0000000..89a0d3e --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/vacation-common.js @@ -0,0 +1,241 @@ +/** + * 휴가 관리 공통 함수 + * 모든 휴가 관련 페이지에서 사용하는 공통 함수 모음 + */ + +// 전역 변수 +window.VacationCommon = { + workers: [], + vacationTypes: [], + currentUser: null +}; + +/** + * 작업자 목록 로드 + */ +async function loadWorkers() { + try { + const response = await axios.get('/workers?limit=100'); + if (response.data.success) { + window.VacationCommon.workers = response.data.data.filter(w => w.employment_status === 'employed'); + return window.VacationCommon.workers; + } + } catch (error) { + console.error('작업자 목록 로드 오류:', error); + throw error; + } +} + +/** + * 휴가 유형 목록 로드 + */ +async function loadVacationTypes() { + try { + const response = await axios.get('/attendance/vacation-types'); + if (response.data.success) { + window.VacationCommon.vacationTypes = response.data.data; + return window.VacationCommon.vacationTypes; + } + } catch (error) { + console.error('휴가 유형 로드 오류:', error); + throw error; + } +} + +/** + * 현재 사용자 정보 가져오기 + */ +function getCurrentUser() { + if (!window.VacationCommon.currentUser) { + window.VacationCommon.currentUser = JSON.parse(localStorage.getItem('user')); + } + return window.VacationCommon.currentUser; +} + +/** + * 휴가 신청 목록 렌더링 + */ +function renderVacationRequests(requests, containerId, showActions = false, actionType = 'approval') { + const container = document.getElementById(containerId); + + if (!requests || requests.length === 0) { + container.innerHTML = ` +
+

휴가 신청 내역이 없습니다.

+
+ `; + return; + } + + const tableHTML = ` + + + + + + + + + + + ${showActions ? '' : ''} + + + + ${requests.map(request => { + const validStatuses = ['pending', 'approved', 'rejected']; + const safeStatus = validStatuses.includes(request.status) ? request.status : 'pending'; + const statusClass = safeStatus === 'pending' ? 'status-pending' : + safeStatus === 'approved' ? 'status-approved' : 'status-rejected'; + const statusText = safeStatus === 'pending' ? '대기' : + safeStatus === 'approved' ? '승인' : '거부'; + const workerName = escapeHtml(request.worker_name || '알 수 없음'); + const typeName = escapeHtml(request.vacation_type_name || request.type_name || '알 수 없음'); + const reasonText = escapeHtml(request.reason || '-'); + const daysUsed = parseFloat(request.days_used) || 0; + + return ` + + + + + + + + + ${showActions ? renderActionButtons(request, actionType) : ''} + + `; + }).join('')} + +
작업자휴가 유형시작일종료일일수상태사유관리
${workerName}${typeName}${escapeHtml(request.start_date || '-')}${escapeHtml(request.end_date || '-')}${daysUsed}일 + + ${statusText} + + + ${reasonText} +
+ `; + + container.innerHTML = tableHTML; +} + +/** + * 액션 버튼 렌더링 + */ +function renderActionButtons(request, actionType) { + const safeRequestId = parseInt(request.request_id) || 0; + if (actionType === 'approval' && request.status === 'pending') { + return ` + +
+ + +
+ + `; + } else if (actionType === 'delete' && request.status === 'pending') { + return ` + + + + `; + } + return '-'; +} + +/** + * 휴가 신청 승인 + */ +async function approveVacationRequest(requestId) { + if (!confirm('이 휴가 신청을 승인하시겠습니까?')) { + return; + } + + try { + const response = await axios.patch(`/vacation-requests/${requestId}/approve`); + if (response.data.success) { + alert('휴가 신청이 승인되었습니다.'); + // 페이지 새로고침 이벤트 발생 + window.dispatchEvent(new Event('vacation-updated')); + return true; + } + } catch (error) { + console.error('승인 오류:', error); + alert(error.response?.data?.message || '승인 중 오류가 발생했습니다.'); + return false; + } +} + +/** + * 휴가 신청 거부 + */ +async function rejectVacationRequest(requestId) { + const reason = prompt('거부 사유를 입력하세요:'); + if (!reason) { + return; + } + + try { + const response = await axios.patch(`/vacation-requests/${requestId}/reject`, { + review_note: reason + }); + if (response.data.success) { + alert('휴가 신청이 거부되었습니다.'); + // 페이지 새로고침 이벤트 발생 + window.dispatchEvent(new Event('vacation-updated')); + return true; + } + } catch (error) { + console.error('거부 오류:', error); + alert(error.response?.data?.message || '거부 중 오류가 발생했습니다.'); + return false; + } +} + +/** + * 휴가 신청 삭제 + */ +async function deleteVacationRequest(requestId) { + if (!confirm('이 휴가 신청을 삭제하시겠습니까?')) { + return; + } + + try { + const response = await axios.delete(`/vacation-requests/${requestId}`); + if (response.data.success) { + alert('휴가 신청이 삭제되었습니다.'); + // 페이지 새로고침 이벤트 발생 + window.dispatchEvent(new Event('vacation-updated')); + return true; + } + } catch (error) { + console.error('삭제 오류:', error); + alert(error.response?.data?.message || '삭제 중 오류가 발생했습니다.'); + return false; + } +} + +/** + * axios 설정 대기 + */ +function waitForAxiosConfig() { + return new Promise((resolve) => { + const check = setInterval(() => { + if (axios.defaults.baseURL) { + clearInterval(check); + resolve(); + } + }, 50); + setTimeout(() => { + clearInterval(check); + resolve(); + }, 5000); + }); +} diff --git a/deploy/tkfb-package/web-ui/js/visit-request.js b/deploy/tkfb-package/web-ui/js/visit-request.js new file mode 100644 index 0000000..5fb6724 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/visit-request.js @@ -0,0 +1,531 @@ +// 출입 신청 페이지 JavaScript + +let categories = []; +let workplaces = []; +let mapRegions = []; +let visitPurposes = []; +let selectedWorkplace = null; +let selectedCategory = null; +let canvas = null; +let ctx = null; +let layoutImage = null; + +// ==================== Toast 알림 ==================== + +/** + * Toast 메시지 표시 + */ +function showToast(message, type = 'info', duration = 3000) { + const toastContainer = document.getElementById('toastContainer') || createToastContainer(); + + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + + const iconMap = { + success: '✅', + error: '❌', + warning: '⚠️', + info: 'ℹ️' + }; + + toast.innerHTML = ` + ${iconMap[type] || 'ℹ️'} + ${message} + `; + + toastContainer.appendChild(toast); + + // 애니메이션 + setTimeout(() => toast.classList.add('show'), 10); + + // 자동 제거 + setTimeout(() => { + toast.classList.remove('show'); + setTimeout(() => toast.remove(), 300); + }, duration); +} + +/** + * Toast 컨테이너 생성 + */ +function createToastContainer() { + const container = document.createElement('div'); + container.id = 'toastContainer'; + container.style.cssText = ` + position: fixed; + top: 20px; + right: 20px; + z-index: 9999; + display: flex; + flex-direction: column; + gap: 10px; + `; + + document.body.appendChild(container); + + // Toast 스타일 추가 + if (!document.getElementById('toastStyles')) { + const style = document.createElement('style'); + style.id = 'toastStyles'; + style.textContent = ` + .toast { + display: flex; + align-items: center; + gap: 12px; + padding: 12px 20px; + background: white; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + opacity: 0; + transform: translateX(100px); + transition: all 0.3s ease; + min-width: 250px; + max-width: 400px; + } + .toast.show { + opacity: 1; + transform: translateX(0); + } + .toast-success { border-left: 4px solid #10b981; } + .toast-error { border-left: 4px solid #ef4444; } + .toast-warning { border-left: 4px solid #f59e0b; } + .toast-info { border-left: 4px solid #3b82f6; } + .toast-icon { font-size: 20px; } + .toast-message { font-size: 14px; color: #374151; } + `; + document.head.appendChild(style); + } + + return container; +} + +// ==================== 초기화 ==================== + +document.addEventListener('DOMContentLoaded', async () => { + // 오늘 날짜 기본값 설정 + const today = new Date().toISOString().split('T')[0]; + document.getElementById('visitDate').value = today; + document.getElementById('visitDate').min = today; + + // 현재 시간 + 1시간 기본값 설정 + const now = new Date(); + now.setHours(now.getHours() + 1); + const timeString = now.toTimeString().slice(0, 5); + document.getElementById('visitTime').value = timeString; + + // 데이터 로드 + await loadCategories(); + await loadVisitPurposes(); + await loadMyRequests(); + + // 폼 제출 이벤트 + document.getElementById('visitRequestForm').addEventListener('submit', handleSubmit); + + // 캔버스 초기화 + canvas = document.getElementById('workplaceMapCanvas'); + ctx = canvas.getContext('2d'); +}); + +// ==================== 데이터 로드 ==================== + +/** + * 카테고리(공장) 목록 로드 + */ +async function loadCategories() { + try { + const response = await window.apiCall('/workplaces/categories', 'GET'); + if (response && response.success) { + categories = response.data || []; + + const categorySelect = document.getElementById('categorySelect'); + categorySelect.innerHTML = ''; + + categories.forEach(cat => { + if (cat.is_active) { + const option = document.createElement('option'); + option.value = cat.category_id; + option.textContent = cat.category_name; + categorySelect.appendChild(option); + } + }); + } + } catch (error) { + console.error('카테고리 로드 오류:', error); + window.showToast('카테고리 로드 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 방문 목적 목록 로드 + */ +async function loadVisitPurposes() { + try { + const response = await window.apiCall('/workplace-visits/purposes/active', 'GET'); + if (response && response.success) { + visitPurposes = response.data || []; + + const purposeSelect = document.getElementById('visitPurpose'); + purposeSelect.innerHTML = ''; + + visitPurposes.forEach(purpose => { + const option = document.createElement('option'); + option.value = purpose.purpose_id; + option.textContent = purpose.purpose_name; + purposeSelect.appendChild(option); + }); + } + } catch (error) { + console.error('방문 목적 로드 오류:', error); + window.showToast('방문 목적 로드 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 내 출입 신청 목록 로드 + */ +async function loadMyRequests() { + try { + // localStorage에서 사용자 정보 가져오기 + const userData = localStorage.getItem('user'); + const currentUser = userData ? JSON.parse(userData) : null; + + if (!currentUser || !currentUser.user_id) { + console.log('사용자 정보 없음'); + return; + } + + const response = await window.apiCall(`/workplace-visits/requests?requester_id=${currentUser.user_id}`, 'GET'); + + if (response && response.success) { + const requests = response.data || []; + renderMyRequests(requests); + } + } catch (error) { + console.error('내 신청 목록 로드 오류:', error); + } +} + +/** + * 내 신청 목록 렌더링 + */ +function renderMyRequests(requests) { + const listDiv = document.getElementById('myRequestsList'); + + if (requests.length === 0) { + listDiv.innerHTML = '

신청 내역이 없습니다

'; + return; + } + + let html = ''; + requests.forEach(req => { + const statusText = { + 'pending': '승인 대기', + 'approved': '승인됨', + 'rejected': '반려됨', + 'training_completed': '교육 완료' + }[req.status] || req.status; + + html += ` +
+
+

${req.visitor_company} (${req.visitor_count}명)

+ ${statusText} +
+
+
+ 방문 작업장 + ${req.category_name} - ${req.workplace_name} +
+
+ 방문 일시 + ${req.visit_date} ${req.visit_time} +
+
+ 방문 목적 + ${req.purpose_name} +
+
+ 신청일 + ${new Date(req.created_at).toLocaleDateString()} +
+
+ ${req.rejection_reason ? `

반려 사유: ${req.rejection_reason}

` : ''} + ${req.notes ? `

비고: ${req.notes}

` : ''} +
+ `; + }); + + listDiv.innerHTML = html; +} + +// ==================== 작업장 지도 모달 ==================== + +/** + * 지도 모달 열기 + */ +function openMapModal() { + document.getElementById('mapModal').style.display = 'flex'; + document.body.style.overflow = 'hidden'; +} + +/** + * 지도 모달 닫기 + */ +function closeMapModal() { + document.getElementById('mapModal').style.display = 'none'; + document.body.style.overflow = ''; +} + +/** + * 작업장 지도 로드 + */ +async function loadWorkplaceMap() { + const categoryId = document.getElementById('categorySelect').value; + if (!categoryId) { + document.getElementById('mapCanvasContainer').style.display = 'none'; + return; + } + + selectedCategory = categories.find(c => c.category_id == categoryId); + + try { + // 작업장 목록 로드 + const workplacesResponse = await window.apiCall(`/workplaces/categories/${categoryId}`, 'GET'); + if (workplacesResponse && workplacesResponse.success) { + workplaces = workplacesResponse.data || []; + } + + // 지도 영역 로드 + const regionsResponse = await window.apiCall(`/workplaces/categories/${categoryId}/map-regions`, 'GET'); + if (regionsResponse && regionsResponse.success) { + mapRegions = regionsResponse.data || []; + } + + // 레이아웃 이미지가 있으면 표시 + if (selectedCategory && selectedCategory.layout_image) { + // API_BASE_URL에서 /api 제거하고 이미지 경로 생성 + const baseUrl = (window.API_BASE_URL || 'http://localhost:20005').replace('/api', ''); + const fullImageUrl = selectedCategory.layout_image.startsWith('http') + ? selectedCategory.layout_image + : `${baseUrl}${selectedCategory.layout_image}`; + + console.log('이미지 URL:', fullImageUrl); + loadImageToCanvas(fullImageUrl); + document.getElementById('mapCanvasContainer').style.display = 'block'; + } else { + window.showToast('선택한 구역에 레이아웃 지도가 없습니다.', 'warning'); + document.getElementById('mapCanvasContainer').style.display = 'none'; + } + } catch (error) { + console.error('작업장 지도 로드 오류:', error); + window.showToast('작업장 지도 로드 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 이미지를 캔버스에 로드 + */ +function loadImageToCanvas(imagePath) { + const img = new Image(); + // crossOrigin 제거 - 같은 도메인이므로 불필요 + img.onload = function() { + // 캔버스 크기 설정 + const maxWidth = 800; + const scale = img.width > maxWidth ? maxWidth / img.width : 1; + + canvas.width = img.width * scale; + canvas.height = img.height * scale; + + // 이미지 그리기 + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + + layoutImage = img; + + // 영역 표시 + drawRegions(); + + // 클릭 이벤트 등록 + canvas.onclick = handleCanvasClick; + }; + img.onerror = function() { + window.showToast('지도 이미지를 불러올 수 없습니다.', 'error'); + }; + img.src = imagePath; +} + +/** + * 지도 영역 그리기 + */ +function drawRegions() { + mapRegions.forEach(region => { + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + + // 영역 박스 + ctx.strokeStyle = '#10b981'; + ctx.lineWidth = 2; + ctx.strokeRect(x1, y1, x2 - x1, y2 - y1); + + ctx.fillStyle = 'rgba(16, 185, 129, 0.1)'; + ctx.fillRect(x1, y1, x2 - x1, y2 - y1); + + // 작업장 이름 + ctx.fillStyle = '#10b981'; + ctx.font = 'bold 14px sans-serif'; + ctx.fillText(region.workplace_name || '', x1 + 5, y1 + 20); + }); +} + +/** + * 캔버스 클릭 핸들러 + */ +function handleCanvasClick(event) { + const rect = canvas.getBoundingClientRect(); + const x = event.clientX - rect.left; + const y = event.clientY - rect.top; + + // 클릭한 위치의 영역 찾기 + for (const region of mapRegions) { + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + + if (x >= x1 && x <= x2 && y >= y1 && y <= y2) { + // 작업장 선택 + selectWorkplace(region); + return; + } + } + + window.showToast('작업장 영역을 클릭해주세요.', 'warning'); +} + +/** + * 작업장 선택 + */ +function selectWorkplace(region) { + selectedWorkplace = { + workplace_id: region.workplace_id, + workplace_name: region.workplace_name, + category_id: selectedCategory.category_id, + category_name: selectedCategory.category_name + }; + + // 선택 표시 + const selectionDiv = document.getElementById('workplaceSelection'); + selectionDiv.classList.add('selected'); + selectionDiv.innerHTML = ` +
+
${selectedCategory.category_name} - ${region.workplace_name}
+ `; + + // 상세 정보 카드 표시 + const infoDiv = document.getElementById('selectedWorkplaceInfo'); + infoDiv.style.display = 'block'; + infoDiv.innerHTML = ` +
+
📍
+
+
${region.workplace_name}
+
${selectedCategory.category_name}
+
+ +
+ `; + + // 모달 닫기 + closeMapModal(); + + window.showToast(`${region.workplace_name} 작업장이 선택되었습니다.`, 'success'); +} + +/** + * 작업장 선택 초기화 + */ +function clearWorkplaceSelection() { + selectedWorkplace = null; + + const selectionDiv = document.getElementById('workplaceSelection'); + selectionDiv.classList.remove('selected'); + selectionDiv.innerHTML = ` +
📍
+
지도에서 작업장을 선택하세요
+ `; + + document.getElementById('selectedWorkplaceInfo').style.display = 'none'; +} + +// ==================== 폼 제출 ==================== + +/** + * 출입 신청 제출 + */ +async function handleSubmit(event) { + event.preventDefault(); + + if (!selectedWorkplace) { + window.showToast('작업장을 선택해주세요.', 'warning'); + openMapModal(); + return; + } + + const formData = { + visitor_company: document.getElementById('visitorCompany').value.trim(), + visitor_count: parseInt(document.getElementById('visitorCount').value), + category_id: selectedWorkplace.category_id, + workplace_id: selectedWorkplace.workplace_id, + visit_date: document.getElementById('visitDate').value, + visit_time: document.getElementById('visitTime').value, + purpose_id: parseInt(document.getElementById('visitPurpose').value), + notes: document.getElementById('notes').value.trim() || null + }; + + try { + const response = await window.apiCall('/workplace-visits/requests', 'POST', formData); + + if (response && response.success) { + window.showToast('출입 신청 및 안전교육 신청이 완료되었습니다. 안전관리자의 승인을 기다려주세요.', 'success'); + + // 폼 초기화 + resetForm(); + + // 내 신청 목록 새로고침 + await loadMyRequests(); + } else { + throw new Error(response?.message || '신청 실패'); + } + } catch (error) { + console.error('출입 신청 오류:', error); + window.showToast(error.message || '출입 신청 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 폼 초기화 + */ +function resetForm() { + document.getElementById('visitRequestForm').reset(); + clearWorkplaceSelection(); + + // 오늘 날짜와 시간 다시 설정 + const today = new Date().toISOString().split('T')[0]; + document.getElementById('visitDate').value = today; + + const now = new Date(); + now.setHours(now.getHours() + 1); + const timeString = now.toTimeString().slice(0, 5); + document.getElementById('visitTime').value = timeString; + + document.getElementById('visitorCount').value = 1; +} + +// 전역 함수로 노출 +window.showToast = showToast; +window.openMapModal = openMapModal; +window.closeMapModal = closeMapModal; +window.loadWorkplaceMap = loadWorkplaceMap; +window.clearWorkplaceSelection = clearWorkplaceSelection; +window.resetForm = resetForm; diff --git a/deploy/tkfb-package/web-ui/js/work-analysis.js b/deploy/tkfb-package/web-ui/js/work-analysis.js new file mode 100644 index 0000000..9b309d6 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-analysis.js @@ -0,0 +1,801 @@ +// 작업 분석 페이지 JavaScript + +// API 설정 import +import './api-config.js'; + +// 전역 변수 +let currentMode = 'period'; +let currentTab = 'worker'; +let analysisData = null; +let projectChart = null; +let errorByProjectChart = null; +let errorTimelineChart = null; + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', function() { + console.log('📈 작업 분석 페이지 초기화 시작'); + + initializePage(); + loadInitialData(); +}); + +// 페이지 초기화 +function initializePage() { + // 시간 업데이트 시작 + updateCurrentTime(); + setInterval(updateCurrentTime, 1000); + + // 사용자 정보 업데이트 + updateUserInfo(); + + // 프로필 메뉴 토글 + setupProfileMenu(); + + // 로그아웃 버튼 + setupLogoutButton(); + + // 기본 날짜 설정은 HTML에서 처리됨 (새로운 UI) + console.log('✅ 작업 분석 페이지 초기화 완료'); +} + +// 현재 시간 업데이트 (시 분 초 형식으로 고정) +function updateCurrentTime() { + const now = new Date(); + const hours = String(now.getHours()).padStart(2, '0'); + const minutes = String(now.getMinutes()).padStart(2, '0'); + const seconds = String(now.getSeconds()).padStart(2, '0'); + const timeString = `${hours}시 ${minutes}분 ${seconds}초`; + + const timeElement = document.getElementById('timeValue'); + if (timeElement) { + timeElement.textContent = timeString; + } +} + +// 사용자 정보 업데이트 - navbar/sidebar는 app-init.js에서 공통 처리 +function updateUserInfo() { + // app-init.js가 navbar 사용자 정보를 처리하므로 여기서는 아무것도 하지 않음 +} + +// 프로필 메뉴 설정 +function setupProfileMenu() { + const userProfile = document.getElementById('userProfile'); + const profileMenu = document.getElementById('profileMenu'); + + if (userProfile && profileMenu) { + userProfile.addEventListener('click', function(e) { + e.stopPropagation(); + const isVisible = profileMenu.style.display === 'block'; + profileMenu.style.display = isVisible ? 'none' : 'block'; + }); + + // 외부 클릭 시 메뉴 닫기 + document.addEventListener('click', function() { + profileMenu.style.display = 'none'; + }); + } +} + +// 로그아웃 버튼 설정 +function setupLogoutButton() { + const logoutBtn = document.getElementById('logoutBtn'); + if (logoutBtn) { + logoutBtn.addEventListener('click', function() { + if (confirm('로그아웃 하시겠습니까?')) { + localStorage.removeItem('token'); + localStorage.removeItem('user'); + localStorage.removeItem('userInfo'); + window.location.href = '/index.html'; + } + }); + } +} + +// 초기 데이터 로드 +async function loadInitialData() { + try { + console.log('📊 초기 데이터 로딩 시작'); + + // 프로젝트 목록 로드 + const projects = await apiCall('/projects/active/list', 'GET'); + const projectData = Array.isArray(projects) ? projects : (projects.data || []); + + // 프로젝트 필터 옵션 업데이트 + updateProjectFilters(projectData); + + console.log('✅ 초기 데이터 로딩 완료'); + + } catch (error) { + console.error('초기 데이터 로딩 오류:', error); + showToast('초기 데이터를 불러오는데 실패했습니다.', 'error'); + } +} + +// 프로젝트 필터 업데이트 +function updateProjectFilters(projects) { + const projectFilter = document.getElementById('projectFilter'); + const projectModeSelect = document.getElementById('projectModeSelect'); + + if (projectFilter) { + projectFilter.innerHTML = ''; + projects.forEach(project => { + projectFilter.innerHTML += ``; + }); + } + + if (projectModeSelect) { + projectModeSelect.innerHTML = ''; + projects.forEach(project => { + projectModeSelect.innerHTML += ``; + }); + } +} + +// 분석 모드 전환 +function switchAnalysisMode(mode) { + currentMode = mode; + + // 탭 버튼 활성화 상태 변경 + document.querySelectorAll('.mode-tab').forEach(tab => { + tab.classList.remove('active'); + }); + document.querySelector(`[data-mode="${mode}"]`).classList.add('active'); + + // 모드 콘텐츠 표시/숨김 + document.querySelectorAll('.analysis-mode').forEach(content => { + content.classList.remove('active'); + }); + document.getElementById(`${mode}-mode`).classList.add('active'); + + console.log(`🔄 분석 모드 전환: ${mode}`); +} + +// 분석 탭 전환 +function switchAnalysisTab(tab) { + currentTab = tab; + + // 탭 버튼 활성화 상태 변경 + document.querySelectorAll('.analysis-tab').forEach(tabBtn => { + tabBtn.classList.remove('active'); + }); + document.querySelector(`[data-tab="${tab}"]`).classList.add('active'); + + // 탭 콘텐츠 표시/숨김 + document.querySelectorAll('.analysis-content').forEach(content => { + content.classList.remove('active'); + }); + document.getElementById(`${tab}-analysis`).classList.add('active'); + + console.log(`🔄 분석 탭 전환: ${tab}`); +} + +// 기간별 분석 로드 +async function loadPeriodAnalysis() { + const startDate = document.getElementById('startDate').value; + const endDate = document.getElementById('endDate').value; + const projectId = document.getElementById('projectFilter').value; + + if (!startDate || !endDate) { + showToast('시작일과 종료일을 모두 선택해주세요.', 'error'); + return; + } + + if (new Date(startDate) > new Date(endDate)) { + showToast('시작일이 종료일보다 늦을 수 없습니다.', 'error'); + return; + } + + showLoading(true); + + try { + console.log('📊 기간별 분석 데이터 로딩 시작'); + + // API 호출 파라미터 구성 + const params = new URLSearchParams({ + start: startDate, + end: endDate + }); + + if (projectId) { + params.append('project_id', projectId); + } + + // 여러 API를 병렬로 호출하여 종합 분석 데이터 구성 + console.log('📡 API 파라미터:', params.toString()); + + const [statsRes, workerStatsRes, projectStatsRes, errorAnalysisRes] = await Promise.all([ + apiCall(`/work-analysis/stats?${params}`, 'GET').catch(err => { + console.error('❌ stats API 오류:', err); + return { data: null }; + }), + apiCall(`/work-analysis/worker-stats?${params}`, 'GET').catch(err => { + console.error('❌ worker-stats API 오류:', err); + return { data: [] }; + }), + apiCall(`/work-analysis/project-stats?${params}`, 'GET').catch(err => { + console.error('❌ project-stats API 오류:', err); + return { data: [] }; + }), + apiCall(`/work-analysis/error-analysis?${params}`, 'GET').catch(err => { + console.error('❌ error-analysis API 오류:', err); + return { data: {} }; + }) + ]); + + console.log('📊 개별 API 응답:'); + console.log(' - stats:', statsRes); + console.log(' - worker-stats:', workerStatsRes); + console.log(' - project-stats:', projectStatsRes); + console.log(' - error-analysis:', errorAnalysisRes); + + // 종합 분석 데이터 구성 + analysisData = { + summary: statsRes.data || statsRes, + workerStats: workerStatsRes.data || workerStatsRes, + projectStats: projectStatsRes.data || projectStatsRes, + errorStats: errorAnalysisRes.data || errorAnalysisRes + }; + + console.log('📊 분석 데이터:', analysisData); + console.log('📊 요약 통계:', analysisData.summary); + console.log('👥 작업자 통계:', analysisData.workerStats); + console.log('📁 프로젝트 통계:', analysisData.projectStats); + console.log('⚠️ 오류 통계:', analysisData.errorStats); + + // 결과 표시 + displayPeriodAnalysis(analysisData); + + // 결과 섹션 표시 + document.getElementById('periodResults').style.display = 'block'; + + showToast('분석이 완료되었습니다.', 'success'); + + } catch (error) { + console.error('기간별 분석 오류:', error); + showToast('분석 중 오류가 발생했습니다.', 'error'); + } finally { + showLoading(false); + } +} + +// 기간별 분석 결과 표시 +function displayPeriodAnalysis(data) { + // 요약 통계 업데이트 + updateSummaryStats(data.summary || {}); + + // 작업자별 분석 표시 + displayWorkerAnalysis(data.workerStats || []); + + // 프로젝트별 분석 표시 + displayProjectAnalysis(data.projectStats || []); + + // 오류 분석 표시 (전체 분석 데이터도 함께 전달) + displayErrorAnalysis(data.errorStats || {}, data); +} + +// 요약 통계 업데이트 +function updateSummaryStats(summary) { + // API 응답 구조에 맞게 필드명 조정 + document.getElementById('totalHours').textContent = `${summary.totalHours || summary.total_hours || 0}h`; + document.getElementById('totalWorkers').textContent = `${summary.activeworkers || summary.activeWorkers || summary.total_workers || 0}명`; + document.getElementById('totalProjects').textContent = `${summary.activeProjects || summary.active_projects || summary.total_projects || 0}개`; + document.getElementById('errorRate').textContent = `${summary.errorRate || summary.error_rate || 0}%`; +} + +// 작업자별 분석 표시 +function displayWorkerAnalysis(workerStats) { + const grid = document.getElementById('workerAnalysisGrid'); + + console.log('👥 작업자 분석 데이터 확인:', workerStats); + console.log('👥 데이터 타입:', typeof workerStats); + console.log('👥 배열 여부:', Array.isArray(workerStats)); + console.log('👥 길이:', workerStats ? workerStats.length : 'undefined'); + + if (!workerStats || (Array.isArray(workerStats) && workerStats.length === 0)) { + console.log('👥 빈 데이터로 인한 empty-state 표시'); + grid.innerHTML = ` +
+
👥
+

분석할 작업자 데이터가 없습니다.

+

선택한 기간에 등록된 작업이 없습니다.

+
+ `; + return; + } + + let gridHtml = ''; + + workerStats.forEach(worker => { + const workerName = worker.worker_name || worker.name || '알 수 없음'; + const totalHours = worker.total_hours || worker.totalHours || 0; + + gridHtml += ` +
+
+
+
${workerName.charAt(0)}
+
${workerName}
+
+
${totalHours}h
+
+
+ `; + + // API 응답 구조에 따라 프로젝트 데이터 처리 + const projects = worker.projects || worker.project_details || []; + if (projects.length > 0) { + projects.forEach(project => { + const projectName = project.project_name || project.name || '프로젝트'; + gridHtml += ` +
+
${projectName}
+
+ `; + + const works = project.works || project.work_details || project.tasks || []; + if (works.length > 0) { + works.forEach(work => { + const workName = work.work_name || work.task_name || work.name || '작업'; + const workHours = work.hours || work.total_hours || work.work_hours || 0; + gridHtml += ` +
+
${workName}
+
${workHours}h
+
+ `; + }); + } else { + gridHtml += ` +
+
총 작업시간
+
${project.total_hours || project.hours || 0}h
+
+ `; + } + + gridHtml += ` +
+
+ `; + }); + } else { + gridHtml += ` +
+
전체 작업
+
+
+
총 작업시간
+
${totalHours}h
+
+
+
+ `; + } + + gridHtml += ` +
+
+ `; + }); + + grid.innerHTML = gridHtml; +} + +// 프로젝트별 분석 표시 +function displayProjectAnalysis(projectStats) { + const detailsContainer = document.getElementById('projectDetails'); + + console.log('📁 프로젝트 분석 데이터 확인:', projectStats); + console.log('📁 데이터 타입:', typeof projectStats); + console.log('📁 배열 여부:', Array.isArray(projectStats)); + console.log('📁 길이:', projectStats ? projectStats.length : 'undefined'); + + if (projectStats && projectStats.length > 0) { + console.log('📁 첫 번째 프로젝트 데이터:', projectStats[0]); + } + + if (!projectStats || projectStats.length === 0) { + console.log('📁 빈 데이터로 인한 empty-state 표시'); + detailsContainer.innerHTML = ` +
+
📁
+

분석할 프로젝트 데이터가 없습니다.

+
+ `; + return; + } + + // 프로젝트 상세 정보 표시 + let detailsHtml = ''; + + // 전체 시간 계산 (퍼센트 계산용) + const totalAllHours = projectStats.reduce((sum, p) => { + return sum + (p.totalHours || p.total_hours || p.hours || 0); + }, 0); + + projectStats.forEach(project => { + console.log('📁 개별 프로젝트 처리:', project); + + const projectName = project.project_name || project.name || project.projectName || '프로젝트'; + const totalHours = project.totalHours || project.total_hours || project.hours || 0; + + // 퍼센트 계산 + let percentage = project.percentage || project.percent || 0; + if (percentage === 0 && totalAllHours > 0) { + percentage = Math.round((totalHours / totalAllHours) * 100); + } + + detailsHtml += ` +
+
+
${projectName}
+
${percentage}%
+
+
${totalHours}시간
+
+ `; + }); + + detailsContainer.innerHTML = detailsHtml; + + // 차트 업데이트 + updateProjectChart(projectStats); +} + +// 프로젝트 차트 업데이트 +function updateProjectChart(projectStats) { + const ctx = document.getElementById('projectChart'); + + if (projectChart) { + projectChart.destroy(); + } + + const labels = projectStats.map(p => p.project_name || p.name || p.projectName || '프로젝트'); + const data = projectStats.map(p => p.totalHours || p.total_hours || p.hours || 0); + + console.log('📊 차트 라벨:', labels); + console.log('📊 차트 데이터:', data); + const colors = [ + '#3b82f6', '#10b981', '#f59e0b', '#ef4444', '#8b5cf6', + '#06b6d4', '#84cc16', '#f97316', '#ec4899', '#6366f1' + ]; + + projectChart = new Chart(ctx, { + type: 'doughnut', + data: { + labels: labels, + datasets: [{ + data: data, + backgroundColor: colors.slice(0, data.length), + borderWidth: 2, + borderColor: '#ffffff' + }] + }, + options: { + responsive: true, + maintainAspectRatio: false, + plugins: { + legend: { + position: 'bottom', + labels: { + padding: 20, + usePointStyle: true + } + } + } + } + }); +} + +// 오류 분석 표시 +function displayErrorAnalysis(errorStats, allData) { + console.log('⚠️ 오류 분석 데이터 확인:', errorStats); + console.log('⚠️ 데이터 타입:', typeof errorStats); + console.log('⚠️ 배열 여부:', Array.isArray(errorStats)); + + // errorStats가 배열인 경우 첫 번째 요소 사용 + let errorData = errorStats; + if (Array.isArray(errorStats) && errorStats.length > 0) { + errorData = errorStats[0]; + console.log('⚠️ 배열에서 첫 번째 요소 사용:', errorData); + } + + // 오류 요약 업데이트 - 실제 데이터 구조에 맞게 수정 + const errorHours = errorData.totalHours || errorData.total_hours || errorData.error_hours || 0; + + // 전체 작업 시간에서 오류 시간을 빼서 정규 시간 계산 + // 요약 통계에서 전체 시간을 가져와서 계산 + const totalHours = allData && allData.summary ? allData.summary.totalHours : 0; + const normalHours = Math.max(0, totalHours - errorHours); + + console.log('⚠️ 정규 시간:', normalHours, '오류 시간:', errorHours); + + document.getElementById('normalHours').textContent = `${normalHours}h`; + document.getElementById('errorHours').textContent = `${errorHours}h`; + + // 프로젝트별 에러율 차트 + if (errorStats.projectErrorRates) { + updateErrorByProjectChart(errorStats.projectErrorRates); + } + + // 일별 오류 추이 차트 + if (errorStats.dailyErrorTrend) { + updateErrorTimelineChart(errorStats.dailyErrorTrend); + } + + // 오류 유형별 분석 + if (errorStats.errorTypes) { + displayErrorTypes(errorStats.errorTypes); + } +} + +// 프로젝트별 에러율 차트 업데이트 +function updateErrorByProjectChart(projectErrorRates) { + const ctx = document.getElementById('errorByProjectChart'); + + if (errorByProjectChart) { + errorByProjectChart.destroy(); + } + + const labels = projectErrorRates.map(p => p.project_name); + const data = projectErrorRates.map(p => p.error_rate); + + errorByProjectChart = new Chart(ctx, { + type: 'bar', + data: { + labels: labels, + datasets: [{ + label: '에러율 (%)', + data: data, + backgroundColor: 'rgba(239, 68, 68, 0.8)', + borderColor: 'rgba(239, 68, 68, 1)', + borderWidth: 1 + }] + }, + options: { + responsive: true, + maintainAspectRatio: false, + scales: { + y: { + beginAtZero: true, + max: 100, + ticks: { + callback: function(value) { + return value + '%'; + } + } + } + }, + plugins: { + legend: { + display: false + } + } + } + }); +} + +// 일별 오류 추이 차트 업데이트 +function updateErrorTimelineChart(dailyErrorTrend) { + const ctx = document.getElementById('errorTimelineChart'); + + if (errorTimelineChart) { + errorTimelineChart.destroy(); + } + + const labels = dailyErrorTrend.map(d => formatDate(new Date(d.date))); + const errorData = dailyErrorTrend.map(d => d.error_count); + const totalData = dailyErrorTrend.map(d => d.total_count); + + errorTimelineChart = new Chart(ctx, { + type: 'line', + data: { + labels: labels, + datasets: [ + { + label: '총 작업', + data: totalData, + borderColor: 'rgba(59, 130, 246, 1)', + backgroundColor: 'rgba(59, 130, 246, 0.1)', + fill: true + }, + { + label: '오류 작업', + data: errorData, + borderColor: 'rgba(239, 68, 68, 1)', + backgroundColor: 'rgba(239, 68, 68, 0.1)', + fill: true + } + ] + }, + options: { + responsive: true, + maintainAspectRatio: false, + scales: { + y: { + beginAtZero: true + } + }, + plugins: { + legend: { + position: 'top' + } + } + } + }); +} + +// 오류 유형별 분석 표시 +function displayErrorTypes(errorTypes) { + const container = document.getElementById('errorTypesAnalysis'); + + if (!errorTypes || errorTypes.length === 0) { + container.innerHTML = ` +
+
⚠️
+

오류 유형 데이터가 없습니다.

+
+ `; + return; + } + + let html = '

🔍 오류 유형별 상세 분석

'; + + errorTypes.forEach(errorType => { + html += ` +
+
+
⚠️
+
${errorType.error_name}
+
+
+
${errorType.count}건
+
${errorType.percentage}%
+
+
+ `; + }); + + container.innerHTML = html; +} + +// 프로젝트별 분석 로드 +async function loadProjectAnalysis() { + const projectId = document.getElementById('projectModeSelect').value; + const startDate = document.getElementById('projectStartDate').value; + const endDate = document.getElementById('projectEndDate').value; + + if (!projectId) { + showToast('프로젝트를 선택해주세요.', 'error'); + return; + } + + showLoading(true); + + try { + console.log('📁 프로젝트별 분석 데이터 로딩 시작'); + + // API 호출 파라미터 구성 + const params = new URLSearchParams({ + project_id: projectId + }); + + if (startDate) params.append('start', startDate); + if (endDate) params.append('end', endDate); + + // 프로젝트별 상세 분석 데이터 로드 + const response = await apiCall(`/work-analysis/project-worktype-analysis?${params}`, 'GET'); + const projectAnalysisData = response.data || response; + + console.log('📁 프로젝트 분석 데이터:', projectAnalysisData); + + // 결과 표시 + displayProjectModeAnalysis(projectAnalysisData); + + // 결과 섹션 표시 + document.getElementById('projectModeResults').style.display = 'block'; + + showToast('프로젝트 분석이 완료되었습니다.', 'success'); + + } catch (error) { + console.error('프로젝트별 분석 오류:', error); + showToast('프로젝트 분석 중 오류가 발생했습니다.', 'error'); + } finally { + showLoading(false); + } +} + +// 프로젝트별 분석 결과 표시 +function displayProjectModeAnalysis(data) { + const container = document.getElementById('projectModeResults'); + + // 프로젝트별 분석 결과 HTML 생성 + let html = ` +
+

📁 ${data.project_name} 분석 결과

+ +
+ `; + + container.innerHTML = html; +} + +// 로딩 상태 표시/숨김 +function showLoading(show) { + const overlay = document.getElementById('loadingOverlay'); + if (overlay) { + overlay.style.display = show ? 'flex' : 'none'; + } +} + +// 날짜 포맷팅 +function formatDate(date) { + if (!date) return ''; + + const d = new Date(date); + const year = d.getFullYear(); + const month = String(d.getMonth() + 1).padStart(2, '0'); + const day = String(d.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; +} + +// 토스트 메시지 표시 +function showToast(message, type = 'info') { + // 기존 토스트 제거 + const existingToast = document.querySelector('.toast'); + if (existingToast) { + existingToast.remove(); + } + + // 새 토스트 생성 + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + toast.textContent = message; + + // 스타일 적용 + Object.assign(toast.style, { + position: 'fixed', + top: '20px', + right: '20px', + padding: '12px 24px', + borderRadius: '8px', + color: 'white', + fontWeight: '500', + zIndex: '10000', + transform: 'translateX(100%)', + transition: 'transform 0.3s ease' + }); + + // 타입별 배경색 + const colors = { + success: '#10b981', + error: '#ef4444', + warning: '#f59e0b', + info: '#3b82f6' + }; + toast.style.backgroundColor = colors[type] || colors.info; + + document.body.appendChild(toast); + + // 애니메이션 + setTimeout(() => { + toast.style.transform = 'translateX(0)'; + }, 100); + + // 자동 제거 + setTimeout(() => { + toast.style.transform = 'translateX(100%)'; + setTimeout(() => { + if (toast.parentNode) { + toast.remove(); + } + }, 300); + }, 3000); +} + +// 전역 함수로 노출 +window.switchAnalysisMode = switchAnalysisMode; +window.switchAnalysisTab = switchAnalysisTab; +window.loadPeriodAnalysis = loadPeriodAnalysis; +window.loadProjectAnalysis = loadProjectAnalysis; diff --git a/deploy/tkfb-package/web-ui/js/work-analysis/api-client.js b/deploy/tkfb-package/web-ui/js/work-analysis/api-client.js new file mode 100644 index 0000000..9ede593 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-analysis/api-client.js @@ -0,0 +1,231 @@ +/** + * Work Analysis API Client Module + * 작업 분석 관련 모든 API 호출을 관리하는 모듈 + */ + +class WorkAnalysisAPIClient { + constructor() { + this.baseURL = window.API_BASE_URL || 'http://localhost:20005/api'; + } + + /** + * 기본 API 호출 메서드 + * @param {string} endpoint - API 엔드포인트 + * @param {string} method - HTTP 메서드 + * @param {Object} data - 요청 데이터 + * @returns {Promise} API 응답 + */ + async apiCall(endpoint, method = 'GET', data = null) { + try { + const config = { + method, + headers: { + 'Content-Type': 'application/json', + } + }; + + if (data && method !== 'GET') { + config.body = JSON.stringify(data); + } + + console.log(`📡 API 호출: ${this.baseURL}${endpoint} (${method})`); + + const response = await fetch(`${this.baseURL}${endpoint}`, config); + const result = await response.json(); + + if (!response.ok) { + throw new Error(result.message || `HTTP ${response.status}`); + } + + console.log(`✅ API 성공: ${this.baseURL}${endpoint}`); + return result; + + } catch (error) { + console.error(`❌ API 실패: ${this.baseURL}${endpoint}`, error); + throw error; + } + } + + /** + * 날짜 범위 파라미터 생성 + * @param {string} startDate - 시작일 + * @param {string} endDate - 종료일 + * @param {Object} additionalParams - 추가 파라미터 + * @returns {URLSearchParams} URL 파라미터 + */ + createDateParams(startDate, endDate, additionalParams = {}) { + const params = new URLSearchParams({ + start: startDate, + end: endDate, + ...additionalParams + }); + return params; + } + + // ========== 기본 통계 API ========== + + /** + * 기본 통계 조회 + */ + async getBasicStats(startDate, endDate, projectId = null) { + console.log('🔍 getBasicStats 호출:', startDate, '~', endDate, projectId ? `(프로젝트: ${projectId})` : ''); + const params = this.createDateParams(startDate, endDate, + projectId ? { project_id: projectId } : {} + ); + console.log('🌐 API 요청 URL:', `/work-analysis/stats?${params}`); + return await this.apiCall(`/work-analysis/stats?${params}`); + } + + /** + * 일별 추이 조회 + */ + async getDailyTrend(startDate, endDate, projectId = null) { + const params = this.createDateParams(startDate, endDate, + projectId ? { project_id: projectId } : {} + ); + return await this.apiCall(`/work-analysis/daily-trend?${params}`); + } + + /** + * 작업자별 통계 조회 + */ + async getWorkerStats(startDate, endDate, projectId = null) { + const params = this.createDateParams(startDate, endDate, + projectId ? { project_id: projectId } : {} + ); + return await this.apiCall(`/work-analysis/worker-stats?${params}`); + } + + /** + * 프로젝트별 통계 조회 + */ + async getProjectStats(startDate, endDate) { + const params = this.createDateParams(startDate, endDate); + return await this.apiCall(`/work-analysis/project-stats?${params}`); + } + + // ========== 상세 분석 API ========== + + /** + * 프로젝트별-작업유형별 분석 + */ + async getProjectWorkTypeAnalysis(startDate, endDate, limit = 2000) { + const params = this.createDateParams(startDate, endDate, { limit }); + return await this.apiCall(`/work-analysis/project-worktype-analysis?${params}`); + } + + /** + * 최근 작업 데이터 조회 + */ + async getRecentWork(startDate, endDate, limit = 2000) { + const params = this.createDateParams(startDate, endDate, { limit }); + return await this.apiCall(`/work-analysis/recent-work?${params}`); + } + + /** + * 오류 분석 데이터 조회 + */ + async getErrorAnalysis(startDate, endDate) { + const params = this.createDateParams(startDate, endDate); + return await this.apiCall(`/work-analysis/error-analysis?${params}`); + } + + // ========== 배치 API 호출 ========== + + /** + * 여러 API를 병렬로 호출 + * @param {Array} apiCalls - API 호출 배열 + * @returns {Promise} 결과 배열 + */ + async batchCall(apiCalls) { + console.log('🔄 배치 API 호출 시작:', apiCalls.length, '개'); + + const promises = apiCalls.map(async ({ name, method, ...args }) => { + try { + const result = await this[method](...args); + return { name, success: true, data: result }; + } catch (error) { + console.warn(`⚠️ ${name} API 오류:`, error); + return { name, success: false, error: error.message, data: null }; + } + }); + + const results = await Promise.all(promises); + console.log('✅ 배치 API 호출 완료'); + + return results.reduce((acc, result) => { + acc[result.name] = result; + return acc; + }, {}); + } + + /** + * 차트 데이터를 위한 배치 호출 + */ + async getChartData(startDate, endDate, projectId = null) { + return await this.batchCall([ + { + name: 'dailyTrend', + method: 'getDailyTrend', + startDate, + endDate, + projectId + }, + { + name: 'workerStats', + method: 'getWorkerStats', + startDate, + endDate, + projectId + }, + { + name: 'projectStats', + method: 'getProjectStats', + startDate, + endDate + }, + { + name: 'errorAnalysis', + method: 'getErrorAnalysis', + startDate, + endDate + } + ]); + } + + /** + * 프로젝트 분포 분석을 위한 배치 호출 + */ + async getProjectDistributionData(startDate, endDate) { + return await this.batchCall([ + { + name: 'projectWorkType', + method: 'getProjectWorkTypeAnalysis', + startDate, + endDate + }, + { + name: 'workerStats', + method: 'getWorkerStats', + startDate, + endDate + }, + { + name: 'recentWork', + method: 'getRecentWork', + startDate, + endDate + } + ]); + } +} + +// 전역 인스턴스 생성 +window.WorkAnalysisAPI = new WorkAnalysisAPIClient(); + +// 하위 호환성을 위한 전역 함수 +window.apiCall = (endpoint, method, data) => { + return window.WorkAnalysisAPI.apiCall(endpoint, method, data); +}; + +// Export는 브라우저 환경에서 제거됨 diff --git a/deploy/tkfb-package/web-ui/js/work-analysis/chart-renderer.js b/deploy/tkfb-package/web-ui/js/work-analysis/chart-renderer.js new file mode 100644 index 0000000..f1d2911 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-analysis/chart-renderer.js @@ -0,0 +1,455 @@ +/** + * Work Analysis Chart Renderer Module + * 작업 분석 차트 렌더링을 담당하는 모듈 + */ + +class WorkAnalysisChartRenderer { + constructor() { + this.charts = new Map(); // 차트 인스턴스 관리 + this.dataProcessor = window.WorkAnalysisDataProcessor; + this.defaultColors = [ + '#3b82f6', '#10b981', '#f59e0b', '#ef4444', '#8b5cf6', + '#06b6d4', '#84cc16', '#f97316', '#ec4899', '#6366f1' + ]; + } + + // ========== 차트 관리 ========== + + /** + * 기존 차트 제거 + * @param {string} chartId - 차트 ID + */ + destroyChart(chartId) { + if (this.charts.has(chartId)) { + this.charts.get(chartId).destroy(); + this.charts.delete(chartId); + console.log('🗑️ 차트 제거:', chartId); + } + } + + /** + * 모든 차트 제거 + */ + destroyAllCharts() { + this.charts.forEach((chart, id) => { + chart.destroy(); + console.log('🗑️ 차트 제거:', id); + }); + this.charts.clear(); + } + + /** + * 차트 생성 및 등록 + * @param {string} chartId - 차트 ID + * @param {HTMLCanvasElement} canvas - 캔버스 요소 + * @param {Object} config - 차트 설정 + * @returns {Chart} 생성된 차트 인스턴스 + */ + createChart(chartId, canvas, config) { + // 기존 차트가 있으면 제거 + this.destroyChart(chartId); + + const chart = new Chart(canvas, config); + this.charts.set(chartId, chart); + + console.log('📊 차트 생성:', chartId); + return chart; + } + + // ========== 시계열 차트 ========== + + /** + * 시계열 차트 렌더링 (기간별 작업 현황) + * @param {string} startDate - 시작일 + * @param {string} endDate - 종료일 + * @param {string} projectId - 프로젝트 ID (선택사항) + */ + async renderTimeSeriesChart(startDate, endDate, projectId = '') { + console.log('📈 시계열 차트 렌더링 시작'); + + try { + const api = window.WorkAnalysisAPI; + const dailyTrendResponse = await api.getDailyTrend(startDate, endDate, projectId); + + if (!dailyTrendResponse.success || !dailyTrendResponse.data) { + throw new Error('일별 추이 데이터를 가져올 수 없습니다'); + } + + const canvas = document.getElementById('workStatusChart'); + if (!canvas) { + console.error('❌ workStatusChart 캔버스를 찾을 수 없습니다'); + return; + } + + const chartData = this.dataProcessor.processTimeSeriesData(dailyTrendResponse.data); + + const config = { + type: 'line', + data: chartData, + options: { + responsive: true, + maintainAspectRatio: false, + aspectRatio: 2, + scales: { + y: { + beginAtZero: true, + title: { + display: true, + text: '작업시간 (h)' + } + }, + y1: { + type: 'linear', + display: true, + position: 'right', + title: { + display: true, + text: '작업자 수 (명)' + }, + grid: { + drawOnChartArea: false, + }, + } + }, + plugins: { + title: { + display: true, + text: '일별 작업 현황' + }, + legend: { + display: true, + position: 'top' + } + } + } + }; + + this.createChart('workStatus', canvas, config); + console.log('✅ 시계열 차트 렌더링 완료'); + + } catch (error) { + console.error('❌ 시계열 차트 렌더링 실패:', error); + this._showChartError('workStatusChart', '시계열 차트를 불러올 수 없습니다'); + } + } + + // ========== 스택 바 차트 ========== + + /** + * 스택 바 차트 렌더링 (프로젝트별 → 작업유형별) + * @param {Array} projectData - 프로젝트 데이터 + */ + renderStackedBarChart(projectData) { + console.log('📊 스택 바 차트 렌더링 시작'); + + const canvas = document.getElementById('projectDistributionChart'); + if (!canvas) { + console.error('❌ projectDistributionChart 캔버스를 찾을 수 없습니다'); + return; + } + + if (!projectData || !projectData.projects || projectData.projects.length === 0) { + this._showChartError('projectDistributionChart', '프로젝트 데이터가 없습니다'); + return; + } + + // 데이터 변환 + const { labels, datasets } = this._processStackedBarData(projectData.projects); + + const config = { + type: 'bar', + data: { + labels, + datasets + }, + options: { + responsive: true, + maintainAspectRatio: false, + aspectRatio: 2, + scales: { + x: { + stacked: true, + title: { + display: true, + text: '프로젝트' + } + }, + y: { + stacked: true, + beginAtZero: true, + title: { + display: true, + text: '작업시간 (h)' + } + } + }, + plugins: { + title: { + display: true, + text: '프로젝트별 작업유형 분포' + }, + legend: { + display: true, + position: 'top' + }, + tooltip: { + mode: 'index', + intersect: false, + callbacks: { + title: function(context) { + return `${context[0].label}`; + }, + label: function(context) { + const workType = context.dataset.label; + const hours = context.parsed.y; + const percentage = ((hours / projectData.totalHours) * 100).toFixed(1); + return `${workType}: ${hours}h (${percentage}%)`; + } + } + } + } + } + }; + + this.createChart('projectDistribution', canvas, config); + console.log('✅ 스택 바 차트 렌더링 완료'); + } + + /** + * 스택 바 차트 데이터 처리 + */ + _processStackedBarData(projects) { + // 모든 작업유형 수집 + const allWorkTypes = new Set(); + projects.forEach(project => { + project.workTypes.forEach(wt => { + allWorkTypes.add(wt.work_type_name); + }); + }); + + const workTypeArray = Array.from(allWorkTypes); + const labels = projects.map(p => p.project_name); + + // 작업유형별 데이터셋 생성 + const datasets = workTypeArray.map((workTypeName, index) => { + const data = projects.map(project => { + const workType = project.workTypes.find(wt => wt.work_type_name === workTypeName); + return workType ? workType.totalHours : 0; + }); + + return { + label: workTypeName, + data, + backgroundColor: this.defaultColors[index % this.defaultColors.length], + borderColor: this.defaultColors[index % this.defaultColors.length], + borderWidth: 1 + }; + }); + + return { labels, datasets }; + } + + // ========== 도넛 차트 ========== + + /** + * 도넛 차트 렌더링 (작업자별 성과) + * @param {Array} workerData - 작업자 데이터 + */ + renderWorkerPerformanceChart(workerData) { + console.log('👤 작업자별 성과 차트 렌더링 시작'); + + const canvas = document.getElementById('workerPerformanceChart'); + if (!canvas) { + console.error('❌ workerPerformanceChart 캔버스를 찾을 수 없습니다'); + return; + } + + if (!workerData || workerData.length === 0) { + this._showChartError('workerPerformanceChart', '작업자 데이터가 없습니다'); + return; + } + + const chartData = this.dataProcessor.processDonutChartData( + workerData.map(worker => ({ + name: worker.worker_name, + hours: worker.totalHours + })) + ); + + const config = { + type: 'doughnut', + data: chartData, + options: { + responsive: true, + maintainAspectRatio: false, + aspectRatio: 1, + plugins: { + title: { + display: true, + text: '작업자별 작업시간 분포' + }, + legend: { + display: true, + position: 'right' + }, + tooltip: { + callbacks: { + label: function(context) { + const label = context.label; + const value = context.parsed; + const total = context.dataset.data.reduce((a, b) => a + b, 0); + const percentage = ((value / total) * 100).toFixed(1); + return `${label}: ${value}h (${percentage}%)`; + } + } + } + } + } + }; + + this.createChart('workerPerformance', canvas, config); + console.log('✅ 작업자별 성과 차트 렌더링 완료'); + } + + // ========== 오류 분석 차트 ========== + + /** + * 오류 분석 차트 렌더링 + * @param {Array} errorData - 오류 데이터 + */ + renderErrorAnalysisChart(errorData) { + console.log('⚠️ 오류 분석 차트 렌더링 시작'); + + const canvas = document.getElementById('errorAnalysisChart'); + if (!canvas) { + console.error('❌ errorAnalysisChart 캔버스를 찾을 수 없습니다'); + return; + } + + if (!errorData || errorData.length === 0) { + this._showChartError('errorAnalysisChart', '오류 데이터가 없습니다'); + return; + } + + // 오류가 있는 데이터만 필터링 + const errorItems = errorData.filter(item => + item.error_count > 0 || (item.errorDetails && item.errorDetails.length > 0) + ); + + if (errorItems.length === 0) { + this._showChartError('errorAnalysisChart', '오류가 발생한 항목이 없습니다'); + return; + } + + const chartData = this.dataProcessor.processDonutChartData( + errorItems.map(item => ({ + name: item.project_name || item.name, + hours: item.errorHours || item.error_count + })) + ); + + const config = { + type: 'doughnut', + data: chartData, + options: { + responsive: true, + maintainAspectRatio: false, + aspectRatio: 1, + plugins: { + title: { + display: true, + text: '프로젝트별 오류 분포' + }, + legend: { + display: true, + position: 'bottom' + }, + tooltip: { + callbacks: { + label: function(context) { + const label = context.label; + const value = context.parsed; + const total = context.dataset.data.reduce((a, b) => a + b, 0); + const percentage = ((value / total) * 100).toFixed(1); + return `${label}: ${value}h (${percentage}%)`; + } + } + } + } + } + }; + + this.createChart('errorAnalysis', canvas, config); + console.log('✅ 오류 분석 차트 렌더링 완료'); + } + + // ========== 유틸리티 ========== + + /** + * 차트 오류 표시 + * @param {string} canvasId - 캔버스 ID + * @param {string} message - 오류 메시지 + */ + _showChartError(canvasId, message) { + const canvas = document.getElementById(canvasId); + if (!canvas) return; + + const container = canvas.parentElement; + if (container) { + container.innerHTML = ` +
+
📊
+
차트를 표시할 수 없습니다
+
${message}
+
+ `; + } + } + + /** + * 차트 리사이즈 + */ + resizeCharts() { + this.charts.forEach((chart, id) => { + try { + chart.resize(); + console.log('📏 차트 리사이즈:', id); + } catch (error) { + console.warn('⚠️ 차트 리사이즈 실패:', id, error); + } + }); + } + + /** + * 차트 상태 확인 + */ + getChartStatus() { + const status = {}; + this.charts.forEach((chart, id) => { + status[id] = { + type: chart.config.type, + datasetCount: chart.data.datasets.length, + dataPointCount: chart.data.labels ? chart.data.labels.length : 0 + }; + }); + return status; + } +} + +// 전역 인스턴스 생성 +window.WorkAnalysisChartRenderer = new WorkAnalysisChartRenderer(); + +// 윈도우 리사이즈 이벤트 리스너 +window.addEventListener('resize', () => { + window.WorkAnalysisChartRenderer.resizeCharts(); +}); + +// Export는 브라우저 환경에서 제거됨 diff --git a/deploy/tkfb-package/web-ui/js/work-analysis/data-processor.js b/deploy/tkfb-package/web-ui/js/work-analysis/data-processor.js new file mode 100644 index 0000000..bd0e9c1 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-analysis/data-processor.js @@ -0,0 +1,355 @@ +/** + * Work Analysis Data Processor Module + * 작업 분석 데이터 가공 및 변환을 담당하는 모듈 + */ + +class WorkAnalysisDataProcessor { + + // ========== 유틸리티 함수 ========== + + /** + * 주말 여부 확인 + * @param {string} dateString - 날짜 문자열 + * @returns {boolean} 주말 여부 + */ + isWeekendDate(dateString) { + const date = new Date(dateString); + const dayOfWeek = date.getDay(); + return dayOfWeek === 0 || dayOfWeek === 6; // 일요일(0) 또는 토요일(6) + } + + /** + * 연차/휴무 프로젝트 여부 확인 + * @param {string} projectName - 프로젝트명 + * @returns {boolean} 연차/휴무 여부 + */ + isVacationProject(projectName) { + if (!projectName) return false; + const vacationKeywords = ['연차', '휴무', '휴가', '병가', '특별휴가']; + return vacationKeywords.some(keyword => projectName.includes(keyword)); + } + + /** + * 날짜 포맷팅 (간단한 형식) + * @param {string} dateString - 날짜 문자열 + * @returns {string} 포맷된 날짜 + */ + formatSimpleDate(dateString) { + if (!dateString) return ''; + return dateString.split('T')[0]; // 시간 부분 제거 + } + + // ========== 프로젝트 분포 데이터 처리 ========== + + /** + * 프로젝트별 데이터 집계 + * @param {Array} recentWorkData - 최근 작업 데이터 + * @returns {Object} 집계된 프로젝트 데이터 + */ + aggregateProjectData(recentWorkData) { + console.log('📊 프로젝트 데이터 집계 시작'); + + if (!recentWorkData || recentWorkData.length === 0) { + return { projects: [], totalHours: 0 }; + } + + const projectMap = new Map(); + let vacationData = null; + + recentWorkData.forEach(work => { + const isWeekend = this.isWeekendDate(work.report_date); + const isVacation = this.isVacationProject(work.project_name); + + // 주말 연차는 제외 + if (isWeekend && isVacation) { + console.log('🏖️ 주말 연차/휴무 제외:', work.report_date, work.project_name); + return; + } + + if (isVacation) { + // 연차/휴무 통합 처리 + if (!vacationData) { + vacationData = { + project_id: 'vacation', + project_name: '연차/휴무', + job_no: null, + totalHours: 0, + workTypes: new Map() + }; + } + this._addWorkToProject(vacationData, work, '연차/휴무'); + } else { + // 일반 프로젝트 처리 + const projectKey = work.project_id || 'unknown'; + + if (!projectMap.has(projectKey)) { + projectMap.set(projectKey, { + project_id: projectKey, + project_name: work.project_name || `프로젝트 ${projectKey}`, + job_no: work.job_no, + totalHours: 0, + workTypes: new Map() + }); + } + + const project = projectMap.get(projectKey); + this._addWorkToProject(project, work); + } + }); + + // 결과 배열 생성 + const projects = Array.from(projectMap.values()); + if (vacationData && vacationData.totalHours > 0) { + projects.push(vacationData); + } + + // 작업유형을 배열로 변환하고 정렬 + projects.forEach(project => { + project.workTypes = Array.from(project.workTypes.values()) + .sort((a, b) => b.totalHours - a.totalHours); + }); + + // 프로젝트를 총 시간 순으로 정렬 (연차/휴무는 맨 아래) + projects.sort((a, b) => { + if (a.project_id === 'vacation') return 1; + if (b.project_id === 'vacation') return -1; + return b.totalHours - a.totalHours; + }); + + const totalHours = projects.reduce((sum, p) => sum + p.totalHours, 0); + + console.log('✅ 프로젝트 데이터 집계 완료:', projects.length, '개 프로젝트'); + return { projects, totalHours }; + } + + /** + * 프로젝트에 작업 데이터 추가 (내부 헬퍼) + */ + _addWorkToProject(project, work, overrideWorkTypeName = null) { + const hours = parseFloat(work.work_hours) || 0; + project.totalHours += hours; + + const workTypeKey = work.work_type_id || 'unknown'; + const workTypeName = overrideWorkTypeName || work.work_type_name || `작업유형 ${workTypeKey}`; + + if (!project.workTypes.has(workTypeKey)) { + project.workTypes.set(workTypeKey, { + work_type_id: workTypeKey, + work_type_name: workTypeName, + totalHours: 0 + }); + } + + project.workTypes.get(workTypeKey).totalHours += hours; + } + + // ========== 오류 분석 데이터 처리 ========== + + /** + * 작업 형태별 오류 데이터 집계 + * @param {Array} recentWorkData - 최근 작업 데이터 + * @returns {Array} 집계된 오류 데이터 + */ + aggregateErrorData(recentWorkData) { + console.log('📊 오류 분석 데이터 집계 시작'); + + if (!recentWorkData || recentWorkData.length === 0) { + return []; + } + + const workTypeMap = new Map(); + let vacationData = null; + + recentWorkData.forEach(work => { + const isWeekend = this.isWeekendDate(work.report_date); + const isVacation = this.isVacationProject(work.project_name); + + // 주말 연차는 완전히 제외 + if (isWeekend && isVacation) { + console.log('🏖️ 주말 연차/휴무 제외:', work.report_date, work.project_name); + return; + } + + if (isVacation) { + // 모든 연차/휴무를 하나로 통합 + if (!vacationData) { + vacationData = { + project_id: 'vacation', + project_name: '연차/휴무', + job_no: null, + work_type_id: 'vacation', + work_type_name: '연차/휴무', + regularHours: 0, + errorHours: 0, + errorDetails: new Map(), + isVacation: true + }; + } + + this._addWorkToErrorData(vacationData, work); + } else { + // 일반 프로젝트 처리 + const workTypeKey = work.work_type_id || 'unknown'; + const combinedKey = `${work.project_id || 'unknown'}_${workTypeKey}`; + + if (!workTypeMap.has(combinedKey)) { + workTypeMap.set(combinedKey, { + project_id: work.project_id, + project_name: work.project_name || `프로젝트 ${work.project_id}`, + job_no: work.job_no, + work_type_id: workTypeKey, + work_type_name: work.work_type_name || `작업유형 ${workTypeKey}`, + regularHours: 0, + errorHours: 0, + errorDetails: new Map(), + isVacation: false + }); + } + + const workTypeData = workTypeMap.get(combinedKey); + this._addWorkToErrorData(workTypeData, work); + } + }); + + // 결과 배열 생성 + const result = Array.from(workTypeMap.values()); + + // 연차/휴무 데이터가 있으면 추가 + if (vacationData && (vacationData.regularHours > 0 || vacationData.errorHours > 0)) { + result.push(vacationData); + } + + // 최종 데이터 처리 + const processedResult = result.map(wt => ({ + ...wt, + totalHours: wt.regularHours + wt.errorHours, + errorRate: wt.regularHours + wt.errorHours > 0 ? + ((wt.errorHours / (wt.regularHours + wt.errorHours)) * 100).toFixed(1) : '0.0', + errorDetails: Array.from(wt.errorDetails.entries()).map(([type, hours]) => ({ + type, hours + })) + })).filter(wt => wt.totalHours > 0) // 시간이 있는 것만 표시 + .sort((a, b) => { + // 연차/휴무를 맨 아래로 + if (a.isVacation && !b.isVacation) return 1; + if (!a.isVacation && b.isVacation) return -1; + + // 같은 프로젝트 내에서는 오류 시간 순으로 정렬 + if (a.project_id === b.project_id) { + return b.errorHours - a.errorHours; + } + + // 다른 프로젝트는 프로젝트명 순으로 정렬 + return (a.project_name || '').localeCompare(b.project_name || ''); + }); + + console.log('✅ 오류 분석 데이터 집계 완료:', processedResult.length, '개 항목'); + return processedResult; + } + + /** + * 작업 데이터를 오류 분석 데이터에 추가 (내부 헬퍼) + */ + _addWorkToErrorData(workTypeData, work) { + const hours = parseFloat(work.work_hours) || 0; + + if (work.work_status === 'error' || work.error_type_id) { + workTypeData.errorHours += hours; + + // 오류 유형별 세분화 + const errorTypeName = work.error_type_name || work.error_description || '설계미스'; + if (!workTypeData.errorDetails.has(errorTypeName)) { + workTypeData.errorDetails.set(errorTypeName, 0); + } + workTypeData.errorDetails.set(errorTypeName, + workTypeData.errorDetails.get(errorTypeName) + hours + ); + } else { + workTypeData.regularHours += hours; + } + } + + // ========== 차트 데이터 처리 ========== + + /** + * 시계열 차트 데이터 변환 + * @param {Array} dailyData - 일별 데이터 + * @returns {Object} 차트 데이터 + */ + processTimeSeriesData(dailyData) { + if (!dailyData || dailyData.length === 0) { + return { labels: [], datasets: [] }; + } + + const labels = dailyData.map(item => this.formatSimpleDate(item.date)); + const hours = dailyData.map(item => item.total_hours || 0); + const workers = dailyData.map(item => item.worker_count || 0); + + return { + labels, + datasets: [ + { + label: '총 작업시간', + data: hours, + borderColor: '#3b82f6', + backgroundColor: 'rgba(59, 130, 246, 0.1)', + tension: 0.4 + }, + { + label: '참여 작업자 수', + data: workers, + borderColor: '#10b981', + backgroundColor: 'rgba(16, 185, 129, 0.1)', + tension: 0.4, + yAxisID: 'y1' + } + ] + }; + } + + /** + * 도넛 차트 데이터 변환 + * @param {Array} projectData - 프로젝트 데이터 + * @returns {Object} 차트 데이터 + */ + processDonutChartData(projectData) { + if (!projectData || projectData.length === 0) { + return { labels: [], datasets: [] }; + } + + const labels = projectData.map(item => item.project_name || item.name); + const data = projectData.map(item => item.total_hours || item.hours || 0); + const colors = this._generateColors(data.length); + + return { + labels, + datasets: [{ + data, + backgroundColor: colors, + borderWidth: 2, + borderColor: '#ffffff' + }] + }; + } + + /** + * 색상 생성 헬퍼 + */ + _generateColors(count) { + const baseColors = [ + '#3b82f6', '#10b981', '#f59e0b', '#ef4444', '#8b5cf6', + '#06b6d4', '#84cc16', '#f97316', '#ec4899', '#6366f1' + ]; + + const colors = []; + for (let i = 0; i < count; i++) { + colors.push(baseColors[i % baseColors.length]); + } + return colors; + } +} + +// 전역 인스턴스 생성 +window.WorkAnalysisDataProcessor = new WorkAnalysisDataProcessor(); + +// Export는 브라우저 환경에서 제거됨 diff --git a/deploy/tkfb-package/web-ui/js/work-analysis/main-controller.js b/deploy/tkfb-package/web-ui/js/work-analysis/main-controller.js new file mode 100644 index 0000000..9dd7074 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-analysis/main-controller.js @@ -0,0 +1,612 @@ +/** + * Work Analysis Main Controller Module + * 작업 분석 페이지의 메인 컨트롤러 - 모든 모듈을 조율하고 사용자 상호작용을 처리 + */ + +class WorkAnalysisMainController { + constructor() { + this.api = window.WorkAnalysisAPI; + this.state = window.WorkAnalysisState; + this.dataProcessor = window.WorkAnalysisDataProcessor; + this.tableRenderer = window.WorkAnalysisTableRenderer; + this.chartRenderer = window.WorkAnalysisChartRenderer; + + this.init(); + } + + /** + * 초기화 + */ + init() { + console.log('🚀 작업 분석 메인 컨트롤러 초기화'); + + this.setupEventListeners(); + this.setupStateListeners(); + this.initializeUI(); + + console.log('✅ 작업 분석 메인 컨트롤러 초기화 완료'); + } + + /** + * 이벤트 리스너 설정 + */ + setupEventListeners() { + // 기간 확정 버튼 + const confirmButton = document.getElementById('confirmPeriodBtn'); + if (confirmButton) { + confirmButton.addEventListener('click', () => this.handlePeriodConfirm()); + } + + // 분석 모드 탭 + document.querySelectorAll('[data-mode]').forEach(button => { + button.addEventListener('click', (e) => { + const mode = e.target.dataset.mode; + this.handleModeChange(mode); + }); + }); + + // 분석 탭 네비게이션 + document.querySelectorAll('[data-tab]').forEach(button => { + button.addEventListener('click', (e) => { + const tabId = e.target.dataset.tab; + this.handleTabChange(tabId); + }); + }); + + // 개별 분석 실행 버튼들 + this.setupAnalysisButtons(); + + // 날짜 입력 필드 + const startDateInput = document.getElementById('startDate'); + const endDateInput = document.getElementById('endDate'); + + if (startDateInput && endDateInput) { + [startDateInput, endDateInput].forEach(input => { + input.addEventListener('change', () => this.handleDateChange()); + }); + } + } + + /** + * 개별 분석 버튼 설정 + */ + setupAnalysisButtons() { + const buttons = [ + { selector: 'button[onclick*="analyzeWorkStatus"]', handler: () => this.analyzeWorkStatus() }, + { selector: 'button[onclick*="analyzeProjectDistribution"]', handler: () => this.analyzeProjectDistribution() }, + { selector: 'button[onclick*="analyzeWorkerPerformance"]', handler: () => this.analyzeWorkerPerformance() }, + { selector: 'button[onclick*="analyzeErrorAnalysis"]', handler: () => this.analyzeErrorAnalysis() } + ]; + + buttons.forEach(({ selector, handler }) => { + const button = document.querySelector(selector); + if (button) { + // 기존 onclick 제거하고 새 이벤트 리스너 추가 + button.removeAttribute('onclick'); + button.addEventListener('click', handler); + } + }); + } + + /** + * 상태 리스너 설정 + */ + setupStateListeners() { + // 기간 확정 상태 변경 시 UI 업데이트 + this.state.subscribe('periodConfirmed', (newState, prevState) => { + this.updateAnalysisButtons(newState.isAnalysisEnabled); + + if (newState.confirmedPeriod.confirmed && !prevState.confirmedPeriod.confirmed) { + this.showAnalysisTabs(); + } + }); + + // 로딩 상태 변경 시 UI 업데이트 + this.state.subscribe('loadingState', (newState) => { + if (newState.isLoading) { + this.showLoading(newState.loadingMessage); + } else { + this.hideLoading(); + } + }); + + // 탭 변경 시 UI 업데이트 + this.state.subscribe('tabChange', (newState) => { + this.updateActiveTab(newState.currentTab); + }); + + // 에러 발생 시 처리 + this.state.subscribe('errorOccurred', (newState) => { + if (newState.lastError) { + this.handleError(newState.lastError); + } + }); + } + + /** + * UI 초기화 + */ + initializeUI() { + // 기본 날짜 설정 + const currentState = this.state.getState(); + const startDateInput = document.getElementById('startDate'); + const endDateInput = document.getElementById('endDate'); + + if (startDateInput && currentState.confirmedPeriod.start) { + startDateInput.value = currentState.confirmedPeriod.start; + } + + if (endDateInput && currentState.confirmedPeriod.end) { + endDateInput.value = currentState.confirmedPeriod.end; + } + + // 분석 버튼 초기 상태 설정 + this.updateAnalysisButtons(false); + + // 분석 탭 숨김 + this.hideAnalysisTabs(); + } + + // ========== 이벤트 핸들러 ========== + + /** + * 기간 확정 처리 + */ + async handlePeriodConfirm() { + try { + const startDate = document.getElementById('startDate').value; + const endDate = document.getElementById('endDate').value; + + console.log('🔄 기간 확정 처리 시작:', startDate, '~', endDate); + + this.state.confirmPeriod(startDate, endDate); + + this.showToast('기간이 확정되었습니다', 'success'); + + console.log('✅ 기간 확정 완료 - 각 분석 버튼을 눌러서 데이터를 확인하세요'); + + } catch (error) { + console.error('❌ 기간 확정 처리 오류:', error); + this.state.setError(error); + this.showToast(error.message, 'error'); + } + } + + /** + * 분석 모드 변경 처리 + */ + handleModeChange(mode) { + try { + this.state.setAnalysisMode(mode); + this.updateModeButtons(mode); + + // 캐시 초기화 + this.state.clearCache(); + + } catch (error) { + this.state.setError(error); + } + } + + /** + * 탭 변경 처리 + */ + handleTabChange(tabId) { + this.state.setCurrentTab(tabId); + } + + /** + * 날짜 변경 처리 + */ + handleDateChange() { + // 날짜가 변경되면 기간 확정 상태 해제 + this.state.updateState({ + confirmedPeriod: { + ...this.state.getState().confirmedPeriod, + confirmed: false + }, + isAnalysisEnabled: false + }); + + this.updateAnalysisButtons(false); + this.hideAnalysisTabs(); + } + + // ========== 분석 실행 ========== + + /** + * 기본 통계 로드 + */ + async loadBasicStats() { + const currentState = this.state.getState(); + const { start, end } = currentState.confirmedPeriod; + + try { + console.log('📊 기본 통계 로딩 시작 - 기간:', start, '~', end); + this.state.startLoading('기본 통계를 로딩 중입니다...'); + + console.log('🌐 API 호출 전 - getBasicStats 호출...'); + const statsResponse = await this.api.getBasicStats(start, end); + + console.log('📊 기본 통계 API 응답:', statsResponse); + + if (statsResponse.success && statsResponse.data) { + const stats = statsResponse.data; + + // 정상/오류 시간 계산 + const totalHours = stats.totalHours || 0; + const errorReports = stats.errorRate || 0; + const errorHours = Math.round(totalHours * (errorReports / 100)); + const normalHours = totalHours - errorHours; + + const cardData = { + totalHours: totalHours, + normalHours: normalHours, + errorHours: errorHours, + workerCount: stats.activeWorkers || stats.activeworkers || 0, + errorRate: errorReports + }; + + this.state.setCache('basicStats', cardData); + this.updateResultCards(cardData); + + console.log('✅ 기본 통계 로딩 완료:', cardData); + } else { + // 기본값으로 카드 업데이트 + const defaultData = { + totalHours: 0, + normalHours: 0, + errorHours: 0, + workerCount: 0, + errorRate: 0 + }; + this.updateResultCards(defaultData); + console.warn('⚠️ 기본 통계 데이터가 없어서 기본값으로 설정'); + } + + } catch (error) { + console.error('❌ 기본 통계 로드 실패:', error); + // 에러 시에도 기본값으로 카드 업데이트 + const defaultData = { + totalHours: 0, + normalHours: 0, + errorHours: 0, + workerCount: 0, + errorRate: 0 + }; + this.updateResultCards(defaultData); + } finally { + this.state.stopLoading(); + } + } + + /** + * 기간별 작업 현황 분석 + */ + async analyzeWorkStatus() { + if (!this.state.canAnalyze()) { + this.showToast('기간을 먼저 확정해주세요', 'warning'); + return; + } + + const currentState = this.state.getState(); + const { start, end } = currentState.confirmedPeriod; + + try { + this.state.startLoading('기간별 작업 현황을 분석 중입니다...'); + + // 실제 API 호출 + const batchData = await this.api.batchCall([ + { + name: 'projectWorkType', + method: 'getProjectWorkTypeAnalysis', + startDate: start, + endDate: end + }, + { + name: 'workerStats', + method: 'getWorkerStats', + startDate: start, + endDate: end + }, + { + name: 'recentWork', + method: 'getRecentWork', + startDate: start, + endDate: end, + limit: 2000 + } + ]); + + console.log('🔍 기간별 작업 현황 API 응답:', batchData); + + // 데이터 처리 + const recentWorkData = batchData.recentWork?.success ? batchData.recentWork.data.data : []; + const workerData = batchData.workerStats?.success ? batchData.workerStats.data.data : []; + + const projectData = this.dataProcessor.aggregateProjectData(recentWorkData); + + // 테이블 렌더링 + this.tableRenderer.renderWorkStatusTable(projectData, workerData, recentWorkData); + + this.showToast('기간별 작업 현황 분석이 완료되었습니다', 'success'); + + } catch (error) { + console.error('❌ 기간별 작업 현황 분석 오류:', error); + this.state.setError(error); + this.showToast('기간별 작업 현황 분석에 실패했습니다', 'error'); + } finally { + this.state.stopLoading(); + } + } + + /** + * 프로젝트별 분포 분석 + */ + async analyzeProjectDistribution() { + if (!this.state.canAnalyze()) { + this.showToast('기간을 먼저 확정해주세요', 'warning'); + return; + } + + const currentState = this.state.getState(); + const { start, end } = currentState.confirmedPeriod; + + try { + this.state.startLoading('프로젝트별 분포를 분석 중입니다...'); + + // 실제 API 호출 + const distributionData = await this.api.getProjectDistributionData(start, end); + + console.log('🔍 프로젝트별 분포 API 응답:', distributionData); + + // 데이터 처리 + const recentWorkData = distributionData.recentWork?.success ? distributionData.recentWork.data.data : []; + const workerData = distributionData.workerStats?.success ? distributionData.workerStats.data.data : []; + + const projectData = this.dataProcessor.aggregateProjectData(recentWorkData); + + console.log('📊 취합된 프로젝트 데이터:', projectData); + + // 테이블 렌더링 + this.tableRenderer.renderProjectDistributionTable(projectData, workerData); + + this.showToast('프로젝트별 분포 분석이 완료되었습니다', 'success'); + + } catch (error) { + console.error('❌ 프로젝트별 분포 분석 오류:', error); + this.state.setError(error); + this.showToast('프로젝트별 분포 분석에 실패했습니다', 'error'); + } finally { + this.state.stopLoading(); + } + } + + /** + * 작업자별 성과 분석 + */ + async analyzeWorkerPerformance() { + if (!this.state.canAnalyze()) { + this.showToast('기간을 먼저 확정해주세요', 'warning'); + return; + } + + const currentState = this.state.getState(); + const { start, end } = currentState.confirmedPeriod; + + try { + this.state.startLoading('작업자별 성과를 분석 중입니다...'); + + const workerStatsResponse = await this.api.getWorkerStats(start, end); + + console.log('👤 작업자 통계 API 응답:', workerStatsResponse); + + if (workerStatsResponse.success && workerStatsResponse.data) { + this.chartRenderer.renderWorkerPerformanceChart(workerStatsResponse.data); + this.showToast('작업자별 성과 분석이 완료되었습니다', 'success'); + } else { + throw new Error('작업자 데이터를 가져올 수 없습니다'); + } + + } catch (error) { + console.error('❌ 작업자별 성과 분석 오류:', error); + this.state.setError(error); + this.showToast('작업자별 성과 분석에 실패했습니다', 'error'); + } finally { + this.state.stopLoading(); + } + } + + /** + * 오류 분석 + */ + async analyzeErrorAnalysis() { + if (!this.state.canAnalyze()) { + this.showToast('기간을 먼저 확정해주세요', 'warning'); + return; + } + + const currentState = this.state.getState(); + const { start, end } = currentState.confirmedPeriod; + + try { + this.state.startLoading('오류 분석을 진행 중입니다...'); + + // 병렬로 API 호출 + const [recentWorkResponse, errorAnalysisResponse] = await Promise.all([ + this.api.getRecentWork(start, end, 2000), + this.api.getErrorAnalysis(start, end) + ]); + + console.log('🔍 오류 분석 API 응답:', recentWorkResponse); + + if (recentWorkResponse.success && recentWorkResponse.data) { + this.tableRenderer.renderErrorAnalysisTable(recentWorkResponse.data); + this.showToast('오류 분석이 완료되었습니다', 'success'); + } else { + throw new Error('작업 데이터를 가져올 수 없습니다'); + } + + } catch (error) { + console.error('❌ 오류 분석 실패:', error); + this.state.setError(error); + this.showToast('오류 분석에 실패했습니다', 'error'); + } finally { + this.state.stopLoading(); + } + } + + // ========== UI 업데이트 ========== + + /** + * 결과 카드 업데이트 + */ + updateResultCards(stats) { + const cards = { + totalHours: stats.totalHours || 0, + normalHours: stats.normalHours || 0, + errorHours: stats.errorHours || 0, + workerCount: stats.activeWorkers || 0, + errorRate: stats.errorRate || 0 + }; + + Object.entries(cards).forEach(([key, value]) => { + const element = document.getElementById(key); + if (element) { + element.textContent = typeof value === 'number' ? + (key.includes('Rate') ? `${value}%` : value.toLocaleString()) : value; + } + }); + } + + /** + * 분석 버튼 상태 업데이트 + */ + updateAnalysisButtons(enabled) { + const buttons = document.querySelectorAll('.chart-analyze-btn'); + buttons.forEach(button => { + button.disabled = !enabled; + button.style.opacity = enabled ? '1' : '0.5'; + }); + } + + /** + * 분석 탭 표시 + */ + showAnalysisTabs() { + const tabNavigation = document.getElementById('analysisTabNavigation'); + if (tabNavigation) { + tabNavigation.style.display = 'block'; + } + } + + /** + * 분석 탭 숨김 + */ + hideAnalysisTabs() { + const tabNavigation = document.getElementById('analysisTabNavigation'); + if (tabNavigation) { + tabNavigation.style.display = 'none'; + } + } + + /** + * 활성 탭 업데이트 + */ + updateActiveTab(tabId) { + // 탭 버튼 업데이트 + document.querySelectorAll('.tab-button').forEach(button => { + button.classList.remove('active'); + if (button.dataset.tab === tabId) { + button.classList.add('active'); + } + }); + + // 탭 컨텐츠 업데이트 + document.querySelectorAll('.tab-content').forEach(content => { + content.classList.remove('active'); + if (content.id === `${tabId}-tab`) { + content.classList.add('active'); + } + }); + } + + /** + * 모드 버튼 업데이트 + */ + updateModeButtons(mode) { + document.querySelectorAll('[data-mode]').forEach(button => { + button.classList.remove('active'); + if (button.dataset.mode === mode) { + button.classList.add('active'); + } + }); + } + + /** + * 로딩 표시 + */ + showLoading(message = '분석 중입니다...') { + const loadingElement = document.getElementById('loadingState'); + if (loadingElement) { + const textElement = loadingElement.querySelector('.loading-text'); + if (textElement) { + textElement.textContent = message; + } + loadingElement.style.display = 'flex'; + } + } + + /** + * 로딩 숨김 + */ + hideLoading() { + const loadingElement = document.getElementById('loadingState'); + if (loadingElement) { + loadingElement.style.display = 'none'; + } + } + + /** + * 토스트 메시지 표시 + */ + showToast(message, type = 'info') { + console.log(`📢 ${type.toUpperCase()}: ${message}`); + + // 간단한 토스트 구현 (실제로는 더 정교한 토스트 라이브러리 사용 권장) + if (type === 'error') { + alert(`❌ ${message}`); + } else if (type === 'success') { + console.log(`✅ ${message}`); + } else if (type === 'warning') { + alert(`⚠️ ${message}`); + } + } + + /** + * 에러 처리 + */ + handleError(errorInfo) { + console.error('❌ 에러 발생:', errorInfo); + this.showToast(errorInfo.message, 'error'); + } + + // ========== 유틸리티 ========== + + /** + * 컨트롤러 상태 디버그 + */ + debug() { + console.log('🔍 메인 컨트롤러 상태:'); + console.log('- API 클라이언트:', this.api); + console.log('- 상태 관리자:', this.state.getState()); + console.log('- 차트 상태:', this.chartRenderer.getChartStatus()); + } +} + +// 전역 인스턴스 생성 및 초기화 +document.addEventListener('DOMContentLoaded', () => { + window.WorkAnalysisMainController = new WorkAnalysisMainController(); +}); + +// Export는 브라우저 환경에서 제거됨 diff --git a/deploy/tkfb-package/web-ui/js/work-analysis/module-loader.js b/deploy/tkfb-package/web-ui/js/work-analysis/module-loader.js new file mode 100644 index 0000000..b68ac64 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-analysis/module-loader.js @@ -0,0 +1,267 @@ +/** + * Work Analysis Module Loader + * 작업 분석 모듈들을 순서대로 로드하고 초기화하는 로더 + */ + +class WorkAnalysisModuleLoader { + constructor() { + this.modules = [ + { name: 'API Client', path: '/js/work-analysis/api-client.js', loaded: false }, + { name: 'Data Processor', path: '/js/work-analysis/data-processor.js', loaded: false }, + { name: 'State Manager', path: '/js/work-analysis/state-manager.js', loaded: false }, + { name: 'Table Renderer', path: '/js/work-analysis/table-renderer.js', loaded: false }, + { name: 'Chart Renderer', path: '/js/work-analysis/chart-renderer.js', loaded: false }, + { name: 'Main Controller', path: '/js/work-analysis/main-controller.js', loaded: false } + ]; + + this.loadingPromise = null; + } + + /** + * 모든 모듈 로드 + * @returns {Promise} 로딩 완료 Promise + */ + async loadAll() { + if (this.loadingPromise) { + return this.loadingPromise; + } + + this.loadingPromise = this._loadModules(); + return this.loadingPromise; + } + + /** + * 모듈들을 순차적으로 로드 + */ + async _loadModules() { + console.log('🚀 작업 분석 모듈 로딩 시작'); + + try { + // 의존성 순서대로 로드 + for (const module of this.modules) { + await this._loadModule(module); + } + + console.log('✅ 모든 작업 분석 모듈 로딩 완료'); + this._onAllModulesLoaded(); + + } catch (error) { + console.error('❌ 모듈 로딩 실패:', error); + this._onLoadingError(error); + throw error; + } + } + + /** + * 개별 모듈 로드 + * @param {Object} module - 모듈 정보 + */ + async _loadModule(module) { + return new Promise((resolve, reject) => { + console.log(`📦 로딩 중: ${module.name}`); + + const script = document.createElement('script'); + script.src = module.path; + script.type = 'text/javascript'; + + script.onload = () => { + module.loaded = true; + console.log(`✅ 로딩 완료: ${module.name}`); + resolve(); + }; + + script.onerror = (error) => { + console.error(`❌ 로딩 실패: ${module.name}`, error); + reject(new Error(`Failed to load ${module.name}: ${module.path}`)); + }; + + document.head.appendChild(script); + }); + } + + /** + * 모든 모듈 로딩 완료 시 호출 + */ + _onAllModulesLoaded() { + // 전역 변수 확인 + const requiredGlobals = [ + 'WorkAnalysisAPI', + 'WorkAnalysisDataProcessor', + 'WorkAnalysisState', + 'WorkAnalysisTableRenderer', + 'WorkAnalysisChartRenderer' + ]; + + const missingGlobals = requiredGlobals.filter(name => !window[name]); + + if (missingGlobals.length > 0) { + console.warn('⚠️ 일부 전역 객체가 누락됨:', missingGlobals); + } + + // 하위 호환성을 위한 전역 함수들 설정 + this._setupLegacyFunctions(); + + // 모듈 로딩 완료 이벤트 발생 + window.dispatchEvent(new CustomEvent('workAnalysisModulesLoaded', { + detail: { modules: this.modules } + })); + + console.log('🎉 작업 분석 시스템 준비 완료'); + } + + /** + * 하위 호환성을 위한 전역 함수 설정 + */ + _setupLegacyFunctions() { + // 기존 HTML에서 사용하던 함수들을 새 모듈 시스템으로 연결 + const legacyFunctions = { + // 기간 확정 + confirmPeriod: () => { + if (window.WorkAnalysisMainController) { + window.WorkAnalysisMainController.handlePeriodConfirm(); + } + }, + + // 분석 모드 변경 + switchAnalysisMode: (mode) => { + if (window.WorkAnalysisState) { + window.WorkAnalysisState.setAnalysisMode(mode); + } + }, + + // 탭 변경 + switchTab: (tabId) => { + if (window.WorkAnalysisState) { + window.WorkAnalysisState.setCurrentTab(tabId); + } + }, + + // 개별 분석 함수들 + analyzeWorkStatus: () => { + if (window.WorkAnalysisMainController) { + window.WorkAnalysisMainController.analyzeWorkStatus(); + } + }, + + analyzeProjectDistribution: () => { + if (window.WorkAnalysisMainController) { + window.WorkAnalysisMainController.analyzeProjectDistribution(); + } + }, + + analyzeWorkerPerformance: () => { + if (window.WorkAnalysisMainController) { + window.WorkAnalysisMainController.analyzeWorkerPerformance(); + } + }, + + analyzeErrorAnalysis: () => { + if (window.WorkAnalysisMainController) { + window.WorkAnalysisMainController.analyzeErrorAnalysis(); + } + } + }; + + // 전역 함수로 등록 + Object.assign(window, legacyFunctions); + + console.log('🔗 하위 호환성 함수 설정 완료'); + } + + /** + * 로딩 에러 처리 + */ + _onLoadingError(error) { + // 에러 UI 표시 + const container = document.querySelector('.analysis-container'); + if (container) { + const errorHTML = ` +
+
⚠️
+

모듈 로딩 실패

+

+ 작업 분석 시스템을 로드하는 중 오류가 발생했습니다.
+ 페이지를 새로고침하거나 관리자에게 문의하세요. +

+ +
+ 기술적 세부사항 +
${error.message}
+
+
+ `; + + container.innerHTML = errorHTML; + } + } + + /** + * 로딩 상태 확인 + * @returns {Object} 로딩 상태 정보 + */ + getLoadingStatus() { + const total = this.modules.length; + const loaded = this.modules.filter(m => m.loaded).length; + + return { + total, + loaded, + percentage: Math.round((loaded / total) * 100), + isComplete: loaded === total, + modules: this.modules.map(m => ({ + name: m.name, + loaded: m.loaded + })) + }; + } + + /** + * 특정 모듈 로딩 상태 확인 + * @param {string} moduleName - 모듈명 + * @returns {boolean} 로딩 완료 여부 + */ + isModuleLoaded(moduleName) { + const module = this.modules.find(m => m.name === moduleName); + return module ? module.loaded : false; + } +} + +// 전역 인스턴스 생성 +window.WorkAnalysisModuleLoader = new WorkAnalysisModuleLoader(); + +// 자동 로딩 시작 (DOM이 준비되면) +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', () => { + window.WorkAnalysisModuleLoader.loadAll(); + }); +} else { + // DOM이 이미 준비된 경우 즉시 로딩 + window.WorkAnalysisModuleLoader.loadAll(); +} + +// Export는 브라우저 환경에서 제거됨 diff --git a/deploy/tkfb-package/web-ui/js/work-analysis/state-manager.js b/deploy/tkfb-package/web-ui/js/work-analysis/state-manager.js new file mode 100644 index 0000000..0668bdf --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-analysis/state-manager.js @@ -0,0 +1,382 @@ +/** + * Work Analysis State Manager Module + * 작업 분석 페이지의 상태 관리를 담당하는 모듈 + */ + +class WorkAnalysisStateManager { + constructor() { + this.state = { + // 분석 설정 + analysisMode: 'period', // 'period' | 'project' + confirmedPeriod: { + start: null, + end: null, + confirmed: false + }, + + // UI 상태 + currentTab: 'work-status', + isAnalysisEnabled: false, + isLoading: false, + + // 데이터 캐시 + cache: { + basicStats: null, + chartData: null, + projectDistribution: null, + errorAnalysis: null + }, + + // 에러 상태 + lastError: null + }; + + this.listeners = new Map(); + this.init(); + } + + /** + * 초기화 + */ + init() { + console.log('🔧 상태 관리자 초기화'); + + // 기본 날짜 설정 (현재 월) + const now = new Date(); + const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1); + const endOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0); + + this.updateState({ + confirmedPeriod: { + start: this.formatDate(startOfMonth), + end: this.formatDate(endOfMonth), + confirmed: false + } + }); + } + + /** + * 상태 업데이트 + * @param {Object} updates - 업데이트할 상태 + */ + updateState(updates) { + const prevState = { ...this.state }; + this.state = { ...this.state, ...updates }; + + console.log('🔄 상태 업데이트:', updates); + + // 리스너들에게 상태 변경 알림 + this.notifyListeners(prevState, this.state); + } + + /** + * 상태 리스너 등록 + * @param {string} key - 리스너 키 + * @param {Function} callback - 콜백 함수 + */ + subscribe(key, callback) { + this.listeners.set(key, callback); + } + + /** + * 상태 리스너 제거 + * @param {string} key - 리스너 키 + */ + unsubscribe(key) { + this.listeners.delete(key); + } + + /** + * 리스너들에게 알림 + */ + notifyListeners(prevState, newState) { + this.listeners.forEach((callback, key) => { + try { + callback(newState, prevState); + } catch (error) { + console.error(`❌ 리스너 ${key} 오류:`, error); + } + }); + } + + // ========== 분석 설정 관리 ========== + + /** + * 분석 모드 변경 + * @param {string} mode - 분석 모드 ('period' | 'project') + */ + setAnalysisMode(mode) { + if (mode !== 'period' && mode !== 'project') { + throw new Error('유효하지 않은 분석 모드입니다.'); + } + + this.updateState({ + analysisMode: mode, + currentTab: 'work-status' // 모드 변경 시 첫 번째 탭으로 리셋 + }); + } + + /** + * 기간 확정 + * @param {string} startDate - 시작일 + * @param {string} endDate - 종료일 + */ + confirmPeriod(startDate, endDate) { + // 날짜 유효성 검사 + if (!startDate || !endDate) { + throw new Error('시작일과 종료일을 모두 입력해주세요.'); + } + + const start = new Date(startDate); + const end = new Date(endDate); + + if (start > end) { + throw new Error('시작일이 종료일보다 늦을 수 없습니다.'); + } + + // 최대 1년 제한 + const maxDays = 365; + const daysDiff = Math.ceil((end - start) / (1000 * 60 * 60 * 24)); + if (daysDiff > maxDays) { + throw new Error(`분석 기간은 최대 ${maxDays}일까지 가능합니다.`); + } + + this.updateState({ + confirmedPeriod: { + start: startDate, + end: endDate, + confirmed: true + }, + isAnalysisEnabled: true, + // 기간 변경 시 캐시 초기화 + cache: { + basicStats: null, + chartData: null, + projectDistribution: null, + errorAnalysis: null + } + }); + + console.log('✅ 기간 확정:', startDate, '~', endDate); + } + + /** + * 현재 탭 변경 + * @param {string} tabId - 탭 ID + */ + setCurrentTab(tabId) { + const validTabs = ['work-status', 'project-distribution', 'worker-performance', 'error-analysis']; + + if (!validTabs.includes(tabId)) { + console.warn('유효하지 않은 탭 ID:', tabId); + return; + } + + this.updateState({ currentTab: tabId }); + + // DOM 업데이트 직접 수행 + this.updateTabDOM(tabId); + + console.log('🔄 탭 전환:', tabId); + } + + /** + * 탭 DOM 업데이트 + * @param {string} tabId - 탭 ID + */ + updateTabDOM(tabId) { + // 탭 버튼 업데이트 + document.querySelectorAll('.tab-button').forEach(button => { + button.classList.remove('active'); + if (button.dataset.tab === tabId) { + button.classList.add('active'); + } + }); + + // 탭 컨텐츠 업데이트 + document.querySelectorAll('.tab-content').forEach(content => { + content.classList.remove('active'); + if (content.id === `${tabId}-tab`) { + content.classList.add('active'); + } + }); + } + + // ========== 로딩 상태 관리 ========== + + /** + * 로딩 시작 + * @param {string} message - 로딩 메시지 + */ + startLoading(message = '분석 중입니다...') { + this.updateState({ + isLoading: true, + loadingMessage: message + }); + } + + /** + * 로딩 종료 + */ + stopLoading() { + this.updateState({ + isLoading: false, + loadingMessage: null + }); + } + + // ========== 데이터 캐시 관리 ========== + + /** + * 캐시 데이터 저장 + * @param {string} key - 캐시 키 + * @param {*} data - 저장할 데이터 + */ + setCache(key, data) { + this.updateState({ + cache: { + ...this.state.cache, + [key]: { + data, + timestamp: Date.now() + } + } + }); + } + + /** + * 캐시 데이터 조회 + * @param {string} key - 캐시 키 + * @param {number} maxAge - 최대 유효 시간 (밀리초) + * @returns {*} 캐시된 데이터 또는 null + */ + getCache(key, maxAge = 5 * 60 * 1000) { // 기본 5분 + const cached = this.state.cache[key]; + + if (!cached) { + return null; + } + + const age = Date.now() - cached.timestamp; + if (age > maxAge) { + console.log('🗑️ 캐시 만료:', key); + return null; + } + + console.log('📦 캐시 히트:', key); + return cached.data; + } + + /** + * 캐시 초기화 + * @param {string} key - 특정 키만 초기화 (선택사항) + */ + clearCache(key = null) { + if (key) { + this.updateState({ + cache: { + ...this.state.cache, + [key]: null + } + }); + } else { + this.updateState({ + cache: { + basicStats: null, + chartData: null, + projectDistribution: null, + errorAnalysis: null + } + }); + } + } + + // ========== 에러 관리 ========== + + /** + * 에러 설정 + * @param {Error|string} error - 에러 객체 또는 메시지 + */ + setError(error) { + const errorInfo = { + message: error instanceof Error ? error.message : error, + timestamp: Date.now(), + stack: error instanceof Error ? error.stack : null + }; + + this.updateState({ + lastError: errorInfo, + isLoading: false + }); + + console.error('❌ 에러 발생:', errorInfo); + } + + /** + * 에러 초기화 + */ + clearError() { + this.updateState({ lastError: null }); + } + + // ========== 유틸리티 ========== + + /** + * 날짜 포맷팅 + * @param {Date} date - 날짜 객체 + * @returns {string} YYYY-MM-DD 형식 + */ + formatDate(date) { + return date.toISOString().split('T')[0]; + } + + /** + * 현재 상태 조회 + * @returns {Object} 현재 상태 + */ + getState() { + return { ...this.state }; + } + + /** + * 분석 가능 여부 확인 + * @returns {boolean} 분석 가능 여부 + */ + canAnalyze() { + return this.state.confirmedPeriod.confirmed && + this.state.confirmedPeriod.start && + this.state.confirmedPeriod.end && + !this.state.isLoading; + } + + /** + * 상태 디버그 정보 출력 + */ + debug() { + console.log('🔍 현재 상태:', this.state); + console.log('👂 등록된 리스너:', Array.from(this.listeners.keys())); + } +} + +// 전역 인스턴스 생성 +window.WorkAnalysisState = new WorkAnalysisStateManager(); + +// 하위 호환성을 위한 전역 변수들 +Object.defineProperty(window, 'currentAnalysisMode', { + get: () => window.WorkAnalysisState.state.analysisMode, + set: (value) => window.WorkAnalysisState.setAnalysisMode(value) +}); + +Object.defineProperty(window, 'confirmedStartDate', { + get: () => window.WorkAnalysisState.state.confirmedPeriod.start +}); + +Object.defineProperty(window, 'confirmedEndDate', { + get: () => window.WorkAnalysisState.state.confirmedPeriod.end +}); + +Object.defineProperty(window, 'isAnalysisEnabled', { + get: () => window.WorkAnalysisState.state.isAnalysisEnabled +}); + +// Export는 브라우저 환경에서 제거됨 diff --git a/deploy/tkfb-package/web-ui/js/work-analysis/table-renderer.js b/deploy/tkfb-package/web-ui/js/work-analysis/table-renderer.js new file mode 100644 index 0000000..6572f04 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-analysis/table-renderer.js @@ -0,0 +1,510 @@ +/** + * Work Analysis Table Renderer Module + * 작업 분석 테이블 렌더링을 담당하는 모듈 + */ + +class WorkAnalysisTableRenderer { + constructor() { + this.dataProcessor = window.WorkAnalysisDataProcessor; + } + + // ========== 프로젝트 분포 테이블 ========== + + /** + * 프로젝트 분포 테이블 렌더링 (Production Report 스타일) + * @param {Array} projectData - 프로젝트 데이터 + * @param {Array} workerData - 작업자 데이터 + */ + renderProjectDistributionTable(projectData, workerData) { + console.log('📋 프로젝트별 분포 테이블 렌더링 시작'); + + const tbody = document.getElementById('projectDistributionTableBody'); + const tfoot = document.getElementById('projectDistributionTableFooter'); + + if (!tbody) { + console.error('❌ projectDistributionTableBody 요소를 찾을 수 없습니다'); + return; + } + + // 프로젝트 데이터가 없으면 작업자 데이터로 대체 + if (!projectData || !projectData.projects || projectData.projects.length === 0) { + console.log('⚠️ 프로젝트 데이터가 없어서 작업자 데이터로 대체합니다.'); + this._renderFallbackTable(workerData, tbody, tfoot); + return; + } + + let tableRows = []; + let grandTotalHours = 0; + let grandTotalManDays = 0; + let grandTotalLaborCost = 0; + + // 공수당 인건비 (350,000원) + const manDayRate = 350000; + + // 먼저 전체 시간을 계산 (부하율 계산용) + projectData.projects.forEach(project => { + project.workTypes.forEach(workType => { + grandTotalHours += workType.totalHours; + }); + }); + + // 프로젝트별로 렌더링 + projectData.projects.forEach(project => { + const projectName = project.project_name || '알 수 없는 프로젝트'; + const jobNo = project.job_no || 'N/A'; + const workTypes = project.workTypes || []; + + if (workTypes.length === 0) { + // 작업유형이 없는 경우 + const projectHours = project.totalHours || 0; + const manDays = Math.round((projectHours / 8) * 100) / 100; + const laborCost = manDays * manDayRate; + const loadRate = grandTotalHours > 0 ? ((projectHours / grandTotalHours) * 100).toFixed(2) : '0.00'; + + grandTotalManDays += manDays; + grandTotalLaborCost += laborCost; + + const isVacation = project.project_id === 'vacation'; + const displayText = isVacation ? projectName : jobNo; + + tableRows.push(` + + ${displayText} + 데이터 없음 + ${manDays} + ${loadRate}% + ₩${laborCost.toLocaleString()} + + `); + } else { + // 작업유형별 렌더링 + workTypes.forEach((workType, index) => { + const isFirstWorkType = index === 0; + const rowspan = workTypes.length; + const workTypeHours = workType.totalHours || 0; + const manDays = Math.round((workTypeHours / 8) * 100) / 100; + const laborCost = manDays * manDayRate; + const loadRate = grandTotalHours > 0 ? ((workTypeHours / grandTotalHours) * 100).toFixed(2) : '0.00'; + + grandTotalManDays += manDays; + grandTotalLaborCost += laborCost; + + const isVacation = project.project_id === 'vacation'; + const displayText = isVacation ? projectName : jobNo; + + tableRows.push(` + + ${isFirstWorkType ? `${displayText}` : ''} + ${workType.work_type_name} + ${manDays} + ${loadRate}% + ₩${laborCost.toLocaleString()} + + `); + }); + + // 프로젝트 소계 행 추가 + const projectTotalHours = workTypes.reduce((sum, wt) => sum + (wt.totalHours || 0), 0); + const projectTotalManDays = Math.round((projectTotalHours / 8) * 100) / 100; + const projectTotalLaborCost = projectTotalManDays * manDayRate; + const projectLoadRate = grandTotalHours > 0 ? ((projectTotalHours / grandTotalHours) * 100).toFixed(2) : '0.00'; + + tableRows.push(` + + ${projectName} 소계 + ${projectTotalManDays} + ${projectLoadRate}% + ₩${projectTotalLaborCost.toLocaleString()} + + `); + } + }); + + // 테이블 업데이트 + tbody.innerHTML = tableRows.join(''); + + // 총계 업데이트 + if (tfoot) { + document.getElementById('totalManDays').textContent = grandTotalManDays.toFixed(2); + document.getElementById('totalLaborCost').textContent = `₩${grandTotalLaborCost.toLocaleString()}`; + tfoot.style.display = 'table-footer-group'; + } + + console.log('✅ 프로젝트별 분포 테이블 렌더링 완료'); + } + + /** + * 대체 테이블 렌더링 (작업자 데이터 기반) + */ + _renderFallbackTable(workerData, tbody, tfoot) { + if (!workerData || workerData.length === 0) { + tbody.innerHTML = ` + + + 해당 기간에 데이터가 없습니다 + + + `; + if (tfoot) tfoot.style.display = 'none'; + return; + } + + const manDayRate = 350000; + let totalManDays = 0; + let totalLaborCost = 0; + + const tableRows = workerData.map(worker => { + const hours = worker.totalHours || 0; + const manDays = Math.round((hours / 8) * 100) / 100; + const laborCost = manDays * manDayRate; + + totalManDays += manDays; + totalLaborCost += laborCost; + + return ` + + 작업자 기반 + ${worker.worker_name} + ${manDays} + - + ₩${laborCost.toLocaleString()} + + `; + }); + + tbody.innerHTML = tableRows.join(''); + + // 총계 업데이트 + if (tfoot) { + document.getElementById('totalManDays').textContent = totalManDays.toFixed(2); + document.getElementById('totalLaborCost').textContent = `₩${totalLaborCost.toLocaleString()}`; + tfoot.style.display = 'table-footer-group'; + } + } + + // ========== 오류 분석 테이블 ========== + + /** + * 오류 분석 테이블 렌더링 + * @param {Array} recentWorkData - 최근 작업 데이터 + */ + renderErrorAnalysisTable(recentWorkData) { + console.log('📊 오류 분석 테이블 렌더링 시작'); + console.log('📊 받은 데이터:', recentWorkData); + + const tableBody = document.getElementById('errorAnalysisTableBody'); + const tableFooter = document.getElementById('errorAnalysisTableFooter'); + + console.log('📊 DOM 요소 확인:', { tableBody, tableFooter }); + + // DOM 요소 존재 확인 + if (!tableBody) { + console.error('❌ errorAnalysisTableBody 요소를 찾을 수 없습니다'); + return; + } + + if (!recentWorkData || recentWorkData.length === 0) { + tableBody.innerHTML = ` + + + 해당 기간에 오류 데이터가 없습니다 + + + `; + if (tableFooter) { + tableFooter.style.display = 'none'; + } + return; + } + + // 작업 형태별 오류 데이터 집계 + const errorData = this.dataProcessor.aggregateErrorData(recentWorkData); + + let tableRows = []; + let grandTotalHours = 0; + let grandTotalRegularHours = 0; + let grandTotalErrorHours = 0; + + // 프로젝트별로 그룹화 + const projectGroups = new Map(); + errorData.forEach(workType => { + const projectKey = workType.isVacation ? 'vacation' : workType.project_id; + if (!projectGroups.has(projectKey)) { + projectGroups.set(projectKey, []); + } + projectGroups.get(projectKey).push(workType); + }); + + // 프로젝트별로 렌더링 + Array.from(projectGroups.entries()).forEach(([projectKey, workTypes]) => { + workTypes.forEach((workType, index) => { + grandTotalHours += workType.totalHours; + grandTotalRegularHours += workType.regularHours; + grandTotalErrorHours += workType.errorHours; + + const rowClass = workType.isVacation ? 'vacation-project' : 'project-group'; + const isFirstWorkType = index === 0; + const rowspan = workTypes.length; + + // 세부시간 구성 + let detailHours = []; + if (workType.regularHours > 0) { + detailHours.push(`정규: ${workType.regularHours}h`); + } + + // 오류 세부사항 추가 + workType.errorDetails.forEach(error => { + detailHours.push(`오류: ${error.type} ${error.hours}h`); + }); + + // 작업 타입 구성 (단순화) + let workTypeDisplay = ''; + if (workType.regularHours > 0) { + workTypeDisplay += ` +
+ 정규시간 +
+ `; + } + + workType.errorDetails.forEach(error => { + workTypeDisplay += ` +
+ 오류: ${error.type} +
+ `; + }); + + tableRows.push(` + + ${isFirstWorkType ? `${workType.isVacation ? '연차/휴무' : (workType.project_name || 'N/A')}` : ''} + ${workType.work_type_name} + ${workType.totalHours}h + + ${detailHours.join('
')} + + +
+ ${workTypeDisplay} +
+ + ${workType.errorRate}% + + `); + }); + }); + + if (tableRows.length === 0) { + tableBody.innerHTML = ` + + + 해당 기간에 작업 데이터가 없습니다 + + + `; + if (tableFooter) { + tableFooter.style.display = 'none'; + } + } else { + tableBody.innerHTML = tableRows.join(''); + + // 총계 업데이트 + const totalErrorRate = grandTotalHours > 0 ? ((grandTotalErrorHours / grandTotalHours) * 100).toFixed(1) : '0.0'; + + // 안전한 DOM 요소 접근 + const totalErrorHoursElement = document.getElementById('totalErrorHours'); + if (totalErrorHoursElement) { + totalErrorHoursElement.textContent = `${grandTotalHours}h`; + } + + if (tableFooter) { + const detailHoursCell = tableFooter.querySelector('.total-row td:nth-child(4)'); + const errorRateCell = tableFooter.querySelector('.total-row td:nth-child(6)'); + + if (detailHoursCell) { + detailHoursCell.innerHTML = ` + 정규: ${grandTotalRegularHours}h
오류: ${grandTotalErrorHours}h
+ `; + } + + if (errorRateCell) { + errorRateCell.innerHTML = `${totalErrorRate}%`; + } + + tableFooter.style.display = 'table-footer-group'; + } + } + + console.log('✅ 오류 분석 테이블 렌더링 완료'); + } + + // ========== 기간별 작업 현황 테이블 ========== + + /** + * 기간별 작업 현황 테이블 렌더링 + * @param {Array} projectData - 프로젝트 데이터 + * @param {Array} workerData - 작업자 데이터 + * @param {Array} recentWorkData - 최근 작업 데이터 + */ + renderWorkStatusTable(projectData, workerData, recentWorkData) { + console.log('📈 기간별 작업 현황 테이블 렌더링 시작'); + + const tableContainer = document.querySelector('#work-status-tab .table-container'); + if (!tableContainer) { + console.error('❌ 작업 현황 테이블 컨테이너를 찾을 수 없습니다'); + return; + } + + // 데이터가 없는 경우 처리 + if (!workerData || workerData.length === 0) { + tableContainer.innerHTML = ` +
+
📊
+
데이터가 없습니다
+
선택한 기간에 작업 데이터가 없습니다.
+
+ `; + return; + } + + // 작업자별 데이터 처리 + const workerStats = this._processWorkerStats(workerData, recentWorkData); + + let tableHTML = ` + + + + + + + + + + + + + + `; + + let totalHours = 0; + let totalManDays = 0; + + workerStats.forEach(worker => { + worker.projects.forEach((project, projectIndex) => { + project.workTypes.forEach((workType, workTypeIndex) => { + const isFirstProject = projectIndex === 0 && workTypeIndex === 0; + const workerRowspan = worker.totalRowspan; + + totalHours += workType.hours; + totalManDays += workType.manDays; + + tableHTML += ` + + ${isFirstProject ? ` + + ` : ''} + + + + ${isFirstProject ? ` + + + ` : ''} + + + `; + }); + }); + }); + + tableHTML += ` + + + + + + + + + +
작업자분류(프로젝트)작업내용투입시간작업공수작업일/일평균시간비고
${worker.name}${project.name}${workType.name}${workType.hours}h${worker.totalManDays.toFixed(1)}${worker.workDays}일 / ${worker.avgHours.toFixed(1)}h${workType.remarks}
총 공수${totalHours}h${totalManDays.toFixed(1)}
+ `; + + tableContainer.innerHTML = tableHTML; + console.log('✅ 기간별 작업 현황 테이블 렌더링 완료'); + } + + /** + * 작업자별 통계 처리 (내부 헬퍼) + */ + _processWorkerStats(workerData, recentWorkData) { + if (!workerData || workerData.length === 0) { + return []; + } + + return workerData.map(worker => { + // 해당 작업자의 작업 데이터 필터링 + const workerWork = recentWorkData ? + recentWorkData.filter(work => work.worker_id === worker.worker_id) : []; + + // 프로젝트별로 그룹화 + const projectMap = new Map(); + workerWork.forEach(work => { + const projectKey = work.project_id || 'unknown'; + if (!projectMap.has(projectKey)) { + projectMap.set(projectKey, { + name: work.project_name || `프로젝트 ${projectKey}`, + workTypes: new Map() + }); + } + + const project = projectMap.get(projectKey); + const workTypeKey = work.work_type_id || 'unknown'; + const workTypeName = work.work_type_name || `작업유형 ${workTypeKey}`; + + if (!project.workTypes.has(workTypeKey)) { + project.workTypes.set(workTypeKey, { + name: workTypeName, + hours: 0, + remarks: '정상' + }); + } + + const workType = project.workTypes.get(workTypeKey); + workType.hours += parseFloat(work.work_hours) || 0; + + // 오류가 있으면 비고 업데이트 + if (work.work_status === 'error' || work.error_type_id) { + workType.remarks = work.error_type_name || work.error_description || '오류'; + } + }); + + // 프로젝트 배열로 변환 + const projects = Array.from(projectMap.values()).map(project => ({ + ...project, + workTypes: Array.from(project.workTypes.values()).map(wt => ({ + ...wt, + manDays: Math.round((wt.hours / 8) * 10) / 10 + })) + })); + + // 전체 행 수 계산 + const totalRowspan = projects.reduce((sum, p) => sum + p.workTypes.length, 0); + + return { + name: worker.worker_name, + totalHours: worker.totalHours || 0, + totalManDays: (worker.totalHours || 0) / 8, + workDays: worker.workingDays || 0, + avgHours: worker.avgHours || 0, + projects, + totalRowspan: Math.max(totalRowspan, 1) + }; + }); + } +} + +// 전역 인스턴스 생성 +window.WorkAnalysisTableRenderer = new WorkAnalysisTableRenderer(); + +// Export는 브라우저 환경에서 제거됨 diff --git a/deploy/tkfb-package/web-ui/js/work-issue-report.js b/deploy/tkfb-package/web-ui/js/work-issue-report.js new file mode 100644 index 0000000..1cb49bc --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-issue-report.js @@ -0,0 +1,740 @@ +/** + * 문제 신고 등록 페이지 JavaScript + */ + +// API 설정 +const API_BASE = window.API_BASE_URL || 'http://localhost:20005/api'; + +// 상태 변수 +let selectedFactoryId = null; +let selectedWorkplaceId = null; +let selectedWorkplaceName = null; +let selectedType = null; // 'nonconformity' | 'safety' +let selectedCategoryId = null; +let selectedCategoryName = null; +let selectedItemId = null; +let selectedTbmSessionId = null; +let selectedVisitRequestId = null; +let photos = [null, null, null, null, null]; + +// 지도 관련 변수 +let canvas, ctx, canvasImage; +let mapRegions = []; +let todayWorkers = []; +let todayVisitors = []; + +// DOM 요소 +let factorySelect, issueMapCanvas; +let photoInput, currentPhotoIndex; + +// 초기화 +document.addEventListener('DOMContentLoaded', async () => { + factorySelect = document.getElementById('factorySelect'); + issueMapCanvas = document.getElementById('issueMapCanvas'); + photoInput = document.getElementById('photoInput'); + + canvas = issueMapCanvas; + ctx = canvas.getContext('2d'); + + // 이벤트 리스너 설정 + setupEventListeners(); + + // 공장 목록 로드 + await loadFactories(); +}); + +/** + * 이벤트 리스너 설정 + */ +function setupEventListeners() { + // 공장 선택 + factorySelect.addEventListener('change', onFactoryChange); + + // 지도 클릭 + canvas.addEventListener('click', onMapClick); + + // 기타 위치 토글 + document.getElementById('useCustomLocation').addEventListener('change', (e) => { + const customInput = document.getElementById('customLocationInput'); + customInput.classList.toggle('visible', e.target.checked); + + if (e.target.checked) { + // 지도 선택 초기화 + selectedWorkplaceId = null; + selectedWorkplaceName = null; + selectedTbmSessionId = null; + selectedVisitRequestId = null; + updateLocationInfo(); + } + }); + + // 유형 버튼 클릭 + document.querySelectorAll('.type-btn').forEach(btn => { + btn.addEventListener('click', () => onTypeSelect(btn.dataset.type)); + }); + + // 사진 슬롯 클릭 + document.querySelectorAll('.photo-slot').forEach(slot => { + slot.addEventListener('click', (e) => { + if (e.target.classList.contains('remove-btn')) return; + currentPhotoIndex = parseInt(slot.dataset.index); + photoInput.click(); + }); + }); + + // 사진 삭제 버튼 + document.querySelectorAll('.photo-slot .remove-btn').forEach(btn => { + btn.addEventListener('click', (e) => { + e.stopPropagation(); + const slot = btn.closest('.photo-slot'); + const index = parseInt(slot.dataset.index); + removePhoto(index); + }); + }); + + // 사진 선택 + photoInput.addEventListener('change', onPhotoSelect); +} + +/** + * 공장 목록 로드 + */ +async function loadFactories() { + try { + const response = await fetch(`${API_BASE}/workplaces/categories/active/list`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) throw new Error('공장 목록 조회 실패'); + + const data = await response.json(); + if (data.success && data.data) { + data.data.forEach(factory => { + const option = document.createElement('option'); + option.value = factory.category_id; + option.textContent = factory.category_name; + factorySelect.appendChild(option); + }); + + // 첫 번째 공장 자동 선택 + if (data.data.length > 0) { + factorySelect.value = data.data[0].category_id; + onFactoryChange(); + } + } + } catch (error) { + console.error('공장 목록 로드 실패:', error); + } +} + +/** + * 공장 변경 시 + */ +async function onFactoryChange() { + selectedFactoryId = factorySelect.value; + if (!selectedFactoryId) return; + + // 위치 선택 초기화 + selectedWorkplaceId = null; + selectedWorkplaceName = null; + selectedTbmSessionId = null; + selectedVisitRequestId = null; + updateLocationInfo(); + + // 지도 데이터 로드 + await Promise.all([ + loadMapImage(), + loadMapRegions(), + loadTodayData() + ]); + + renderMap(); +} + +/** + * 배치도 이미지 로드 + */ +async function loadMapImage() { + try { + const response = await fetch(`${API_BASE}/workplaces/categories`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) return; + + const data = await response.json(); + if (data.success && data.data) { + const selectedCategory = data.data.find(c => c.category_id == selectedFactoryId); + if (selectedCategory && selectedCategory.layout_image) { + const baseUrl = (window.API_BASE_URL || 'http://localhost:20005').replace('/api', ''); + const fullImageUrl = selectedCategory.layout_image.startsWith('http') + ? selectedCategory.layout_image + : `${baseUrl}${selectedCategory.layout_image}`; + + canvasImage = new Image(); + canvasImage.onload = () => renderMap(); + canvasImage.src = fullImageUrl; + } + } + } catch (error) { + console.error('배치도 이미지 로드 실패:', error); + } +} + +/** + * 지도 영역 로드 + */ +async function loadMapRegions() { + try { + const response = await fetch(`${API_BASE}/workplaces/categories/${selectedFactoryId}/map-regions`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) return; + + const data = await response.json(); + if (data.success) { + mapRegions = data.data || []; + } + } catch (error) { + console.error('지도 영역 로드 실패:', error); + } +} + +/** + * 오늘 TBM/출입신청 데이터 로드 + */ +async function loadTodayData() { + const today = new Date().toISOString().split('T')[0]; + + try { + // TBM 세션 로드 + const tbmResponse = await fetch(`${API_BASE}/tbm/sessions/date/${today}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (tbmResponse.ok) { + const tbmData = await tbmResponse.json(); + todayWorkers = tbmData.data || []; + } + + // 출입 신청 로드 + const visitResponse = await fetch(`${API_BASE}/workplace-visits/requests`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (visitResponse.ok) { + const visitData = await visitResponse.json(); + todayVisitors = (visitData.data || []).filter(v => + v.visit_date === today && + (v.status === 'approved' || v.status === 'training_completed') + ); + } + } catch (error) { + console.error('오늘 데이터 로드 실패:', error); + } +} + +/** + * 지도 렌더링 + */ +function renderMap() { + if (!canvas || !ctx) return; + + // 캔버스 크기 설정 + const container = canvas.parentElement; + canvas.width = container.clientWidth; + canvas.height = 400; + + // 배경 그리기 + ctx.fillStyle = '#f3f4f6'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + + // 배치도 이미지 + if (canvasImage && canvasImage.complete) { + const scale = Math.min(canvas.width / canvasImage.width, canvas.height / canvasImage.height); + const x = (canvas.width - canvasImage.width * scale) / 2; + const y = (canvas.height - canvasImage.height * scale) / 2; + ctx.drawImage(canvasImage, x, y, canvasImage.width * scale, canvasImage.height * scale); + } + + // 작업장 영역 그리기 + mapRegions.forEach(region => { + const workers = todayWorkers.filter(w => w.workplace_id === region.workplace_id); + const visitors = todayVisitors.filter(v => v.workplace_id === region.workplace_id); + + const workerCount = workers.reduce((sum, w) => sum + (w.member_count || 0), 0); + const visitorCount = visitors.reduce((sum, v) => sum + (v.visitor_count || 0), 0); + + drawWorkplaceRegion(region, workerCount, visitorCount); + }); +} + +/** + * 작업장 영역 그리기 + */ +function drawWorkplaceRegion(region, workerCount, visitorCount) { + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + const width = x2 - x1; + const height = y2 - y1; + + // 선택된 작업장 하이라이트 + const isSelected = region.workplace_id === selectedWorkplaceId; + + // 색상 결정 + let fillColor, strokeColor; + if (isSelected) { + fillColor = 'rgba(34, 197, 94, 0.3)'; // 초록색 + strokeColor = 'rgb(34, 197, 94)'; + } else if (workerCount > 0 && visitorCount > 0) { + fillColor = 'rgba(34, 197, 94, 0.2)'; // 초록색 (작업+방문) + strokeColor = 'rgb(34, 197, 94)'; + } else if (workerCount > 0) { + fillColor = 'rgba(59, 130, 246, 0.2)'; // 파란색 (작업만) + strokeColor = 'rgb(59, 130, 246)'; + } else if (visitorCount > 0) { + fillColor = 'rgba(168, 85, 247, 0.2)'; // 보라색 (방문만) + strokeColor = 'rgb(168, 85, 247)'; + } else { + fillColor = 'rgba(156, 163, 175, 0.2)'; // 회색 (없음) + strokeColor = 'rgb(156, 163, 175)'; + } + + ctx.fillStyle = fillColor; + ctx.strokeStyle = strokeColor; + ctx.lineWidth = isSelected ? 3 : 2; + + ctx.beginPath(); + ctx.rect(x1, y1, width, height); + ctx.fill(); + ctx.stroke(); + + // 작업장명 표시 + const centerX = x1 + width / 2; + const centerY = y1 + height / 2; + + ctx.fillStyle = '#374151'; + ctx.font = '12px sans-serif'; + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; + ctx.fillText(region.workplace_name, centerX, centerY); + + // 인원수 표시 + const total = workerCount + visitorCount; + if (total > 0) { + ctx.fillStyle = strokeColor; + ctx.font = 'bold 14px sans-serif'; + ctx.fillText(`(${total}명)`, centerX, centerY + 16); + } +} + +/** + * 지도 클릭 처리 + */ +function onMapClick(e) { + const rect = canvas.getBoundingClientRect(); + const x = e.clientX - rect.left; + const y = e.clientY - rect.top; + + // 클릭된 영역 찾기 + for (const region of mapRegions) { + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + + if (x >= x1 && x <= x2 && y >= y1 && y <= y2) { + selectWorkplace(region); + return; + } + } +} + +/** + * 작업장 선택 + */ +function selectWorkplace(region) { + // 기타 위치 체크박스 해제 + document.getElementById('useCustomLocation').checked = false; + document.getElementById('customLocationInput').classList.remove('visible'); + + selectedWorkplaceId = region.workplace_id; + selectedWorkplaceName = region.workplace_name; + + // 해당 작업장의 TBM/출입신청 확인 + const workers = todayWorkers.filter(w => w.workplace_id === region.workplace_id); + const visitors = todayVisitors.filter(v => v.workplace_id === region.workplace_id); + + if (workers.length > 0 || visitors.length > 0) { + // 작업 선택 모달 표시 + showWorkSelectionModal(workers, visitors); + } else { + selectedTbmSessionId = null; + selectedVisitRequestId = null; + } + + updateLocationInfo(); + renderMap(); + updateStepStatus(); +} + +/** + * 작업 선택 모달 표시 + */ +function showWorkSelectionModal(workers, visitors) { + const modal = document.getElementById('workSelectionModal'); + const optionsList = document.getElementById('workOptionsList'); + + optionsList.innerHTML = ''; + + // TBM 작업 옵션 + workers.forEach(w => { + const option = document.createElement('div'); + option.className = 'work-option'; + option.innerHTML = ` +
TBM: ${w.task_name || '작업'}
+
${w.project_name || ''} - ${w.member_count || 0}명
+ `; + option.onclick = () => { + selectedTbmSessionId = w.session_id; + selectedVisitRequestId = null; + closeWorkModal(); + updateLocationInfo(); + }; + optionsList.appendChild(option); + }); + + // 출입신청 옵션 + visitors.forEach(v => { + const option = document.createElement('div'); + option.className = 'work-option'; + option.innerHTML = ` +
출입: ${v.visitor_company}
+
${v.purpose_name || '방문'} - ${v.visitor_count || 0}명
+ `; + option.onclick = () => { + selectedVisitRequestId = v.request_id; + selectedTbmSessionId = null; + closeWorkModal(); + updateLocationInfo(); + }; + optionsList.appendChild(option); + }); + + modal.classList.add('visible'); +} + +/** + * 작업 선택 모달 닫기 + */ +function closeWorkModal() { + document.getElementById('workSelectionModal').classList.remove('visible'); +} + +/** + * 선택된 위치 정보 업데이트 + */ +function updateLocationInfo() { + const infoBox = document.getElementById('selectedLocationInfo'); + const customLocation = document.getElementById('customLocation').value; + const useCustom = document.getElementById('useCustomLocation').checked; + + if (useCustom && customLocation) { + infoBox.classList.remove('empty'); + infoBox.innerHTML = `선택된 위치: ${customLocation}`; + } else if (selectedWorkplaceName) { + infoBox.classList.remove('empty'); + let html = `선택된 위치: ${selectedWorkplaceName}`; + + if (selectedTbmSessionId) { + const worker = todayWorkers.find(w => w.session_id === selectedTbmSessionId); + if (worker) { + html += `
연결 작업: ${worker.task_name} (TBM)`; + } + } else if (selectedVisitRequestId) { + const visitor = todayVisitors.find(v => v.request_id === selectedVisitRequestId); + if (visitor) { + html += `
연결 작업: ${visitor.visitor_company} (출입)`; + } + } + + infoBox.innerHTML = html; + } else { + infoBox.classList.add('empty'); + infoBox.textContent = '지도에서 작업장을 클릭하여 위치를 선택하세요'; + } +} + +/** + * 유형 선택 + */ +function onTypeSelect(type) { + selectedType = type; + selectedCategoryId = null; + selectedCategoryName = null; + selectedItemId = null; + + // 버튼 상태 업데이트 + document.querySelectorAll('.type-btn').forEach(btn => { + btn.classList.toggle('selected', btn.dataset.type === type); + }); + + // 카테고리 로드 + loadCategories(type); + updateStepStatus(); +} + +/** + * 카테고리 로드 + */ +async function loadCategories(type) { + try { + const response = await fetch(`${API_BASE}/work-issues/categories/type/${type}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) throw new Error('카테고리 조회 실패'); + + const data = await response.json(); + if (data.success && data.data) { + renderCategories(data.data); + } + } catch (error) { + console.error('카테고리 로드 실패:', error); + } +} + +/** + * 카테고리 렌더링 + */ +function renderCategories(categories) { + const container = document.getElementById('categoryContainer'); + const grid = document.getElementById('categoryGrid'); + + grid.innerHTML = ''; + + categories.forEach(cat => { + const btn = document.createElement('button'); + btn.type = 'button'; + btn.className = 'category-btn'; + btn.textContent = cat.category_name; + btn.onclick = () => onCategorySelect(cat); + grid.appendChild(btn); + }); + + container.style.display = 'block'; +} + +/** + * 카테고리 선택 + */ +function onCategorySelect(category) { + selectedCategoryId = category.category_id; + selectedCategoryName = category.category_name; + selectedItemId = null; + + // 버튼 상태 업데이트 + document.querySelectorAll('.category-btn').forEach(btn => { + btn.classList.toggle('selected', btn.textContent === category.category_name); + }); + + // 항목 로드 + loadItems(category.category_id); + updateStepStatus(); +} + +/** + * 항목 로드 + */ +async function loadItems(categoryId) { + try { + const response = await fetch(`${API_BASE}/work-issues/items/category/${categoryId}`, { + headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } + }); + + if (!response.ok) throw new Error('항목 조회 실패'); + + const data = await response.json(); + if (data.success && data.data) { + renderItems(data.data); + } + } catch (error) { + console.error('항목 로드 실패:', error); + } +} + +/** + * 항목 렌더링 + */ +function renderItems(items) { + const grid = document.getElementById('itemGrid'); + grid.innerHTML = ''; + + if (items.length === 0) { + grid.innerHTML = '

등록된 항목이 없습니다

'; + return; + } + + items.forEach(item => { + const btn = document.createElement('button'); + btn.type = 'button'; + btn.className = 'item-btn'; + btn.textContent = item.item_name; + btn.dataset.severity = item.severity; + btn.onclick = () => onItemSelect(item, btn); + grid.appendChild(btn); + }); +} + +/** + * 항목 선택 + */ +function onItemSelect(item, btn) { + // 단일 선택 (기존 선택 해제) + document.querySelectorAll('.item-btn').forEach(b => b.classList.remove('selected')); + btn.classList.add('selected'); + + selectedItemId = item.item_id; + updateStepStatus(); +} + +/** + * 사진 선택 + */ +function onPhotoSelect(e) { + const file = e.target.files[0]; + if (!file) return; + + const reader = new FileReader(); + reader.onload = (event) => { + photos[currentPhotoIndex] = event.target.result; + updatePhotoSlot(currentPhotoIndex); + }; + reader.readAsDataURL(file); + + // 입력 초기화 + e.target.value = ''; +} + +/** + * 사진 슬롯 업데이트 + */ +function updatePhotoSlot(index) { + const slot = document.querySelector(`.photo-slot[data-index="${index}"]`); + + if (photos[index]) { + slot.classList.add('has-photo'); + let img = slot.querySelector('img'); + if (!img) { + img = document.createElement('img'); + slot.insertBefore(img, slot.firstChild); + } + img.src = photos[index]; + } else { + slot.classList.remove('has-photo'); + const img = slot.querySelector('img'); + if (img) img.remove(); + } +} + +/** + * 사진 삭제 + */ +function removePhoto(index) { + photos[index] = null; + updatePhotoSlot(index); +} + +/** + * 단계 상태 업데이트 + */ +function updateStepStatus() { + const steps = document.querySelectorAll('.step'); + const customLocation = document.getElementById('customLocation').value; + const useCustom = document.getElementById('useCustomLocation').checked; + + // Step 1: 위치 + const step1Complete = (useCustom && customLocation) || selectedWorkplaceId; + steps[0].classList.toggle('completed', step1Complete); + steps[1].classList.toggle('active', step1Complete); + + // Step 2: 유형 + const step2Complete = selectedType && selectedCategoryId; + steps[1].classList.toggle('completed', step2Complete); + steps[2].classList.toggle('active', step2Complete); + + // Step 3: 항목 + const step3Complete = selectedItemId; + steps[2].classList.toggle('completed', step3Complete); + steps[3].classList.toggle('active', step3Complete); + + // 제출 버튼 활성화 + const submitBtn = document.getElementById('submitBtn'); + const hasPhoto = photos.some(p => p !== null); + submitBtn.disabled = !(step1Complete && step2Complete && hasPhoto); +} + +/** + * 신고 제출 + */ +async function submitReport() { + const submitBtn = document.getElementById('submitBtn'); + submitBtn.disabled = true; + submitBtn.textContent = '제출 중...'; + + try { + const useCustom = document.getElementById('useCustomLocation').checked; + const customLocation = document.getElementById('customLocation').value; + const additionalDescription = document.getElementById('additionalDescription').value; + + const requestBody = { + factory_category_id: useCustom ? null : selectedFactoryId, + workplace_id: useCustom ? null : selectedWorkplaceId, + custom_location: useCustom ? customLocation : null, + tbm_session_id: selectedTbmSessionId, + visit_request_id: selectedVisitRequestId, + issue_category_id: selectedCategoryId, + issue_item_id: selectedItemId, + additional_description: additionalDescription || null, + photos: photos.filter(p => p !== null) + }; + + const response = await fetch(`${API_BASE}/work-issues`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${localStorage.getItem('token')}` + }, + body: JSON.stringify(requestBody) + }); + + const data = await response.json(); + + if (data.success) { + alert('문제 신고가 등록되었습니다.'); + window.location.href = '/pages/safety/issue-list.html'; + } else { + throw new Error(data.error || '신고 등록 실패'); + } + } catch (error) { + console.error('신고 제출 실패:', error); + alert('신고 등록에 실패했습니다: ' + error.message); + } finally { + submitBtn.disabled = false; + submitBtn.textContent = '신고 제출'; + } +} + +// 기타 위치 입력 시 위치 정보 업데이트 +document.addEventListener('DOMContentLoaded', () => { + const customLocationInput = document.getElementById('customLocation'); + if (customLocationInput) { + customLocationInput.addEventListener('input', () => { + updateLocationInfo(); + updateStepStatus(); + }); + } +}); diff --git a/deploy/tkfb-package/web-ui/js/work-management.js b/deploy/tkfb-package/web-ui/js/work-management.js new file mode 100644 index 0000000..35e6bf9 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-management.js @@ -0,0 +1,230 @@ +// 작업 관리 페이지 JavaScript + +// 전역 변수 +let statsData = { + projects: 0, + workers: 0, + tasks: 0, + codeTypes: 0 +}; + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', function() { + console.log('🔧 작업 관리 페이지 초기화 시작'); + + initializePage(); + loadStatistics(); +}); + +// 페이지 초기화 +function initializePage() { + // 시간 업데이트 시작 + updateCurrentTime(); + setInterval(updateCurrentTime, 1000); + + // 사용자 정보 업데이트 + updateUserInfo(); + + // 프로필 메뉴 토글 + setupProfileMenu(); + + // 로그아웃 버튼 + setupLogoutButton(); +} + +// 현재 시간 업데이트 (시 분 초 형식으로 고정) +function updateCurrentTime() { + const now = new Date(); + const hours = String(now.getHours()).padStart(2, '0'); + const minutes = String(now.getMinutes()).padStart(2, '0'); + const seconds = String(now.getSeconds()).padStart(2, '0'); + const timeString = `${hours}시 ${minutes}분 ${seconds}초`; + + const timeElement = document.getElementById('timeValue'); + if (timeElement) { + timeElement.textContent = timeString; + } +} + +// navbar/sidebar는 app-init.js에서 공통 처리 +function updateUserInfo() { + // app-init.js가 navbar 사용자 정보를 처리 +} + +// 프로필 메뉴 설정 +function setupProfileMenu() { + const userProfile = document.getElementById('userProfile'); + const profileMenu = document.getElementById('profileMenu'); + + if (userProfile && profileMenu) { + userProfile.addEventListener('click', function(e) { + e.stopPropagation(); + const isVisible = profileMenu.style.display === 'block'; + profileMenu.style.display = isVisible ? 'none' : 'block'; + }); + + // 외부 클릭 시 메뉴 닫기 + document.addEventListener('click', function() { + profileMenu.style.display = 'none'; + }); + } +} + +// 로그아웃 버튼 설정 +function setupLogoutButton() { + const logoutBtn = document.getElementById('logoutBtn'); + if (logoutBtn) { + logoutBtn.addEventListener('click', function() { + if (confirm('로그아웃 하시겠습니까?')) { + localStorage.removeItem('token'); + localStorage.removeItem('user'); + localStorage.removeItem('userInfo'); + window.location.href = '/index.html'; + } + }); + } +} + +// 통계 데이터 로드 +async function loadStatistics() { + try { + console.log('📊 통계 데이터 로딩 시작'); + + // 프로젝트 수 조회 + try { + const projectsResponse = await apiCall('/projects', 'GET'); + if (projectsResponse && Array.isArray(projectsResponse)) { + statsData.projects = projectsResponse.length; + updateStatDisplay('projectCount', statsData.projects); + } + } catch (error) { + console.warn('프로젝트 통계 로드 실패:', error); + updateStatDisplay('projectCount', '오류'); + } + + // 작업자 수 조회 + try { + const workersResponse = await apiCall('/workers', 'GET'); + if (workersResponse && Array.isArray(workersResponse)) { + const activeWorkers = workersResponse.filter(w => w.status === 'active'); + statsData.workers = activeWorkers.length; + updateStatDisplay('workerCount', statsData.workers); + } + } catch (error) { + console.warn('작업자 통계 로드 실패:', error); + updateStatDisplay('workerCount', '오류'); + } + + // 작업 유형 수 조회 + try { + const tasksResponse = await apiCall('/tasks', 'GET'); + if (tasksResponse && Array.isArray(tasksResponse)) { + const activeTasks = tasksResponse.filter(t => t.is_active); + statsData.tasks = activeTasks.length; + updateStatDisplay('taskCount', statsData.tasks); + } + } catch (error) { + console.warn('작업 유형 통계 로드 실패:', error); + updateStatDisplay('taskCount', '오류'); + } + + // 코드 타입 수 조회 (임시로 고정값) + statsData.codeTypes = 3; // ISSUE_TYPE, ERROR_TYPE, WORK_STATUS + updateStatDisplay('codeTypeCount', statsData.codeTypes); + + console.log('✅ 통계 데이터 로딩 완료:', statsData); + + } catch (error) { + console.error('통계 데이터 로딩 오류:', error); + } +} + +// 통계 표시 업데이트 +function updateStatDisplay(elementId, value) { + const element = document.getElementById(elementId); + if (element) { + element.textContent = value; + + // 애니메이션 효과 + element.style.transform = 'scale(1.1)'; + setTimeout(() => { + element.style.transform = 'scale(1)'; + }, 200); + } +} + +// 최근 활동 관련 함수들 제거됨 + +// 페이지 네비게이션 +function navigateToPage(url) { + console.log(`🔗 페이지 이동: ${url}`); + + // 로딩 효과 + const card = event.currentTarget; + const originalContent = card.innerHTML; + + card.style.opacity = '0.7'; + card.style.pointerEvents = 'none'; + + // 잠시 후 페이지 이동 + setTimeout(() => { + window.location.href = url; + }, 300); +} + +// 토스트 메시지 표시 +function showToast(message, type = 'info') { + // 기존 토스트 제거 + const existingToast = document.querySelector('.toast'); + if (existingToast) { + existingToast.remove(); + } + + // 새 토스트 생성 + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + toast.textContent = message; + + // 스타일 적용 + Object.assign(toast.style, { + position: 'fixed', + top: '20px', + right: '20px', + padding: '12px 24px', + borderRadius: '8px', + color: 'white', + fontWeight: '500', + zIndex: '1000', + transform: 'translateX(100%)', + transition: 'transform 0.3s ease' + }); + + // 타입별 배경색 + const colors = { + success: '#10b981', + error: '#ef4444', + warning: '#f59e0b', + info: '#3b82f6' + }; + toast.style.backgroundColor = colors[type] || colors.info; + + document.body.appendChild(toast); + + // 애니메이션 + setTimeout(() => { + toast.style.transform = 'translateX(0)'; + }, 100); + + // 자동 제거 + setTimeout(() => { + toast.style.transform = 'translateX(100%)'; + setTimeout(() => { + if (toast.parentNode) { + toast.remove(); + } + }, 300); + }, 3000); +} + +// 전역 함수로 노출 +window.navigateToPage = navigateToPage; diff --git a/deploy/tkfb-package/web-ui/js/work-report-api.js b/deploy/tkfb-package/web-ui/js/work-report-api.js new file mode 100644 index 0000000..4adc18d --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-report-api.js @@ -0,0 +1,51 @@ +// /js/work-report-api.js +import { apiGet, apiPost } from './api-helper.js'; + +/** + * 작업 보고서 작성을 위해 필요한 초기 데이터(작업자, 프로젝트, 태스크)를 가져옵니다. + * Promise.all을 사용하여 병렬로 API를 호출합니다. + * @returns {Promise<{workers: Array, projects: Array, tasks: Array}>} + */ +export async function getInitialData() { + try { + const [allWorkers, projects, tasks] = await Promise.all([ + apiGet('/workers'), + apiGet('/projects'), + apiGet('/tasks') + ]); + + // 활성화된 작업자만 필터링 + const workers = allWorkers.filter(worker => { + return worker.status === 'active' || worker.is_active === 1 || worker.is_active === true; + }); + + // 데이터 형식 검증 + if (!Array.isArray(workers) || !Array.isArray(projects) || !Array.isArray(tasks)) { + throw new Error('서버에서 받은 데이터 형식이 올바르지 않습니다.'); + } + + // 작업자 목록은 ID 기준으로 정렬 + workers.sort((a, b) => a.worker_id - b.worker_id); + + return { workers, projects, tasks }; + } catch (error) { + console.error('초기 데이터 로딩 중 오류 발생:', error); + // 에러를 다시 던져서 호출한 쪽에서 처리할 수 있도록 함 + throw error; + } +} + +/** + * 작성된 작업 보고서 데이터를 서버에 전송합니다. + * @param {Array} reportData - 전송할 작업 보고서 데이터 배열 + * @returns {Promise} - 서버의 응답 결과 + */ +export async function createWorkReport(reportData) { + try { + const result = await apiPost('/workreports', reportData); + return result; + } catch (error) { + console.error('작업 보고서 생성 요청 실패:', error); + throw error; + } +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/work-report-create.js b/deploy/tkfb-package/web-ui/js/work-report-create.js new file mode 100644 index 0000000..d61ed79 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-report-create.js @@ -0,0 +1,79 @@ +// /js/work-report-create.js +import { renderCalendar } from './calendar.js'; +import { getInitialData, createWorkReport } from './work-report-api.js'; +import { initializeReportTable, getReportData } from './work-report-ui.js'; + +// 전역 상태 변수 +let selectedDate = ''; + +/** + * 날짜가 선택되었을 때 실행되는 콜백 함수. + * 초기 데이터를 로드하고 테이블을 렌더링합니다. + * @param {string} date - 선택된 날짜 (YYYY-MM-DD 형식) + */ +async function onDateSelect(date) { + selectedDate = date; + const tableBody = document.getElementById('reportBody'); + tableBody.innerHTML = '데이터를 불러오는 중...'; + + try { + const initialData = await getInitialData(); + initializeReportTable(initialData); + } catch (error) { + alert('데이터를 불러오는 데 실패했습니다: ' + error.message); + tableBody.innerHTML = '오류 발생! 데이터를 불러올 수 없습니다.'; + } +} + +/** + * '전체 등록' 버튼 클릭 시 실행되는 이벤트 핸들러. + * 폼 데이터를 서버에 전송합니다. + */ +async function handleSubmit() { + if (!selectedDate) { + alert('먼저 달력에서 날짜를 선택해주세요.'); + return; + } + + const reportData = getReportData(); + if (!reportData) { + // getReportData 내부에서 이미 alert으로 사용자에게 알림 + return; + } + + // 각 항목에 선택된 날짜 추가 + const payload = reportData.map(item => ({ ...item, date: selectedDate })); + + const submitBtn = document.getElementById('submitBtn'); + submitBtn.disabled = true; + submitBtn.textContent = '등록 중...'; + + try { + const result = await createWorkReport(payload); + if (result.success) { + alert('✅ 작업 보고서가 성공적으로 등록되었습니다!'); + // 성공 후 폼을 다시 로드하거나, 다른 페이지로 이동 등의 로직 추가 가능 + onDateSelect(selectedDate); // 현재 날짜의 폼을 다시 로드 + } else { + throw new Error(result.error || '알 수 없는 오류로 등록에 실패했습니다.'); + } + } catch (error) { + alert('❌ 등록 실패: ' + error.message); + } finally { + submitBtn.disabled = false; + submitBtn.textContent = '전체 등록'; + } +} + +/** + * 페이지 초기화 함수 + */ +function initializePage() { + renderCalendar('calendar', onDateSelect); + + const submitBtn = document.getElementById('submitBtn'); + submitBtn.addEventListener('click', handleSubmit); +} + +// DOM이 로드되면 페이지 초기화를 시작합니다. +document.addEventListener('DOMContentLoaded', initializePage); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/work-report-manage.js b/deploy/tkfb-package/web-ui/js/work-report-manage.js new file mode 100644 index 0000000..a628878 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-report-manage.js @@ -0,0 +1,213 @@ +import { renderCalendar } from '/js/calendar.js'; +import { API, getAuthHeaders, ensureAuthenticated } from '/js/api-config.js'; + +// 인증 확인 +ensureAuthenticated(); + +const calendarEl = document.getElementById('calendar'); +const reportBody = document.getElementById('reportBody'); +let selectedDate = ''; + +// 캘린더 렌더링 +renderCalendar('calendar', (dateStr) => { + selectedDate = dateStr; + loadReports(); +}); + +// 보고서 로딩 +async function loadReports() { + if (!selectedDate) return; + reportBody.innerHTML = '불러오는 중...'; + + try { + const [wRes, pRes, rRes] = await Promise.all([ + fetch(`${API}/workers`, { headers: getAuthHeaders() }), + fetch(`${API}/projects/active/list`, { headers: getAuthHeaders() }), + fetch(`${API}/workreports?start=${selectedDate}&end=${selectedDate}`, { headers: getAuthHeaders() }) + ]); + + if (![wRes, pRes, rRes].every(res => res.ok)) throw new Error('불러오기 실패'); + + const [allWorkers, projects, reports] = await Promise.all([ + wRes.json(), pRes.json(), rRes.json() + ]); + + // 활성화된 작업자만 필터링 + const workers = allWorkers.filter(worker => { + return worker.status === 'active' || worker.is_active === 1 || worker.is_active === true; + }); + + // 배열 체크 + if (!Array.isArray(workers) || !Array.isArray(projects) || !Array.isArray(reports)) { + throw new Error('잘못된 데이터 형식'); + } + + if (!reports.length) { + reportBody.innerHTML = '등록된 보고서가 없습니다.'; + return; + } + + const nameMap = Object.fromEntries(workers.map(w => [w.worker_id, w.worker_name])); + const projMap = Object.fromEntries(projects.map(p => [p.project_id, p.project_name])); + // const taskMap = Object.fromEntries(tasks.map(t => [t.task_id, `${t.category}:${t.subcategory}`])); // tasks 테이블 삭제됨 + + reportBody.innerHTML = ''; + reports.forEach((r, i) => { + const tr = document.createElement('tr'); + tr.innerHTML = ` + ${i + 1} + ${nameMap[r.worker_id] || r.worker_id} + + + + + + + + + `; + + // 저장 버튼 + tr.querySelector('.save-btn').onclick = async () => { + // 입력값 검증 + const projectId = tr.querySelector('[data-id="project"]').value; + const taskId = tr.querySelector('[data-id="task"]').value; + const overtimeHours = tr.querySelector('[data-id="overtime"]').value; + + if (!projectId || !taskId) { + alert('❌ 프로젝트와 작업을 선택해주세요.'); + return; + } + + // 날짜 형식 처리 - MySQL DATE 형식으로 변환 + const formatDate = (dateStr) => { + if (!dateStr) return selectedDate; + + // 이미 YYYY-MM-DD 형식인지 확인 + if (/^\d{4}-\d{2}-\d{2}$/.test(dateStr)) { + return dateStr; + } + + // ISO 형식이나 다른 형식을 YYYY-MM-DD로 변환 + const date = new Date(dateStr); + if (isNaN(date.getTime())) { + return selectedDate; // 잘못된 날짜면 선택된 날짜 사용 + } + + return date.toISOString().split('T')[0]; // YYYY-MM-DD 형식으로 변환 + }; + + const payload = { + date: formatDate(r.date), // 날짜 형식 변환 + worker_id: r.worker_id, // 기존 작업자 ID 유지 + project_id: Number(projectId), + task_id: Number(taskId), + overtime_hours: overtimeHours ? Number(overtimeHours) : null, + work_details: tr.querySelector('[data-id="work_details"]').value, + memo: tr.querySelector('[data-id="memo"]').value.trim() || null + }; + + // 저장 버튼 상태 변경 (로딩 중) + const saveBtn = tr.querySelector('.save-btn'); + const originalText = saveBtn.textContent; + const originalColor = saveBtn.style.backgroundColor; + + saveBtn.textContent = '저장 중...'; + saveBtn.style.backgroundColor = '#ffc107'; + saveBtn.disabled = true; + + try { + const res = await fetch(`${API}/workreports/${r.id}`, { + method: 'PUT', + headers: { + ...getAuthHeaders(), + 'Content-Type': 'application/json' + }, + body: JSON.stringify(payload) + }); + + const result = await res.json(); + + if (res.ok && result.success) { + // 성공 상태 표시 + saveBtn.textContent = '✅ 완료'; + saveBtn.style.backgroundColor = '#28a745'; + saveBtn.style.color = 'white'; + + setTimeout(() => { + saveBtn.textContent = originalText; + saveBtn.style.backgroundColor = originalColor; + saveBtn.style.color = ''; + saveBtn.disabled = false; + }, 2000); + + // alert 대신 조용한 알림 + console.log('저장 완료:', result); + } else { + console.error('저장 실패:', result); + alert(`❌ 저장 실패: ${result.error || result.message || '알 수 없는 오류'}`); + + // 실패 시 버튼 복원 + saveBtn.textContent = originalText; + saveBtn.style.backgroundColor = originalColor; + saveBtn.disabled = false; + } + } catch (err) { + console.error('저장 요청 에러:', err); + alert('❌ 저장 요청 실패: ' + err.message); + + // 에러 시 버튼 복원 + saveBtn.textContent = originalText; + saveBtn.style.backgroundColor = originalColor; + saveBtn.disabled = false; + } + }; + + // 삭제 버튼 + tr.querySelector('.delete-btn').onclick = async () => { + if (!confirm('정말 삭제하시겠습니까?')) return; + + try { + const res = await fetch(`${API}/workreports/${r.id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + + if (res.ok) { + tr.remove(); + // 행 번호 다시 매기기 + updateRowNumbers(); + alert('✅ 삭제 완료'); + } else { + const result = await res.json(); + alert(`❌ 삭제 실패: ${result.error || result.message || '알 수 없는 오류'}`); + } + } catch (err) { + console.error('삭제 요청 에러:', err); + alert('❌ 삭제 요청 실패: ' + err.message); + } + }; + + reportBody.appendChild(tr); + }); + } catch (err) { + console.error('데이터 로딩 에러:', err); + reportBody.innerHTML = '❌ 불러오기 실패: ' + err.message + ''; + } +} + +// 행 번호 다시 매기기 +function updateRowNumbers() { + reportBody.querySelectorAll('tr').forEach((tr, i) => { + const firstTd = tr.querySelector('td:first-child'); + if (firstTd) firstTd.textContent = i + 1; + }); +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/work-report-review.js b/deploy/tkfb-package/web-ui/js/work-report-review.js new file mode 100644 index 0000000..7bd3ff4 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-report-review.js @@ -0,0 +1,1061 @@ +// js/work-report-review.js - 휴가 연동 완전판 +import { API, getAuthHeaders } from '/js/api-config.js'; + +class WorkReportReviewManager { + constructor() { + this.workers = []; + this.projects = []; + this.workTypes = []; + this.workStatusTypes = []; + this.errorTypes = []; + this.reports = []; + this.filteredReports = []; + this.attendanceData = []; // 휴가 정보 + this.reviewedReports = new Set(); // 검토완료된 보고서 ID + this.selectedReport = null; + this.init(); + } + + async init() { + try { + // 필수 DOM 요소 확인 + const requiredElements = ['reportsTableBody', 'editPanelContent', 'totalReports']; + const missingElements = requiredElements.filter(id => !document.getElementById(id)); + + if (missingElements.length > 0) { + console.error('필수 DOM 요소가 없습니다:', missingElements); + return; + } + + this.showLoading(true); + await this.loadData(); + this.setupEventListeners(); + this.setDefaultDates(); + await this.loadReports(); + this.showLoading(false); + } catch (error) { + this.showMessage('데이터 로드 중 오류가 발생했습니다.', 'error'); + console.error('초기화 오류:', error); + this.showLoading(false); + } + } + + async loadData() { + try { + // 기본 데이터 로딩 + const [workersRes, projectsRes, workTypesRes, workStatusRes, errorTypesRes] = await Promise.all([ + fetch(`${API}/workers`, { headers: getAuthHeaders() }), + fetch(`${API}/projects/active/list`, { headers: getAuthHeaders() }), + fetch(`${API}/daily-work-reports/work-types`, { headers: getAuthHeaders() }), + fetch(`${API}/daily-work-reports/work-status-types`, { headers: getAuthHeaders() }), + fetch(`${API}/daily-work-reports/error-types`, { headers: getAuthHeaders() }) + ]); + + if (!workersRes.ok || !projectsRes.ok) { + throw new Error(`API 응답 오류: Workers(${workersRes.status}), Projects(${projectsRes.status})`); + } + + const allWorkers = await workersRes.json(); + + // 활성화된 작업자만 필터링 + this.workers = allWorkers.filter(worker => { + return worker.status === 'active' || worker.is_active === 1 || worker.is_active === true; + }); + + this.projects = await projectsRes.json(); + + // 새로운 API들 로드 (실패해도 기본값 사용) + try { + this.workTypes = workTypesRes.ok ? await workTypesRes.json() : [ + {id: 1, name: 'Base'}, {id: 2, name: 'Vessel'}, {id: 3, name: 'Piping'} + ]; + this.workStatusTypes = workStatusRes.ok ? await workStatusRes.json() : [ + {id: 1, name: '정규'}, {id: 2, name: '에러'} + ]; + this.errorTypes = errorTypesRes.ok ? await errorTypesRes.json() : [ + {id: 1, name: '설계미스'}, {id: 2, name: '외주작업 불량'}, + {id: 3, name: '입고지연'}, {id: 4, name: '작업 불량'} + ]; + } catch (error) { + console.log('⚠️ 일부 API 사용 불가, 기본값 사용'); + } + + // 휴가 정보 로드 + await this.loadAttendanceData(); + + this.populateFilters(); + console.log('기본 데이터 로드 완료'); + } catch (error) { + console.error('기본 데이터 로드 오류:', error); + throw error; + } + } + + async loadAttendanceData() { + try { + const startDate = document.getElementById('startDate').value; + const endDate = document.getElementById('endDate').value; + + if (!startDate || !endDate) return; + + // 휴가 정보 API 호출 (예상 엔드포인트) + const response = await fetch(`${API}/attendance?start_date=${startDate}&end_date=${endDate}`, { + headers: getAuthHeaders() + }); + + if (response.ok) { + this.attendanceData = await response.json(); + console.log('휴가 정보 로드 완료:', this.attendanceData.length); + } else if (response.status === 404) { + console.log('⚠️ 휴가 API 없음, 더미 데이터 생성'); + this.attendanceData = this.generateDummyAttendance(); + } else { + throw new Error(`휴가 정보 로드 실패: ${response.status}`); + } + } catch (error) { + console.log('⚠️ 휴가 정보 로드 오류, 더미 데이터 사용:', error.message); + this.attendanceData = this.generateDummyAttendance(); + } + } + + generateDummyAttendance() { + const startDate = document.getElementById('startDate').value; + const endDate = document.getElementById('endDate').value; + if (!startDate || !endDate) return []; + + const dummyAttendance = []; + const start = new Date(startDate); + const end = new Date(endDate); + + // 날짜별로 작업자들의 출근 상태 생성 + for (let d = new Date(start); d <= end; d.setDate(d.getDate() + 1)) { + const dateStr = d.toISOString().split('T')[0]; + + this.workers.forEach(worker => { + const rand = Math.random(); + let attendanceType = 'NORMAL'; // 기본값 + + // 5% 확률로 휴가 + if (rand < 0.05) { + const types = ['HALF_DAY', 'HALF_HALF_DAY', 'EARLY_LEAVE']; + attendanceType = types[Math.floor(Math.random() * types.length)]; + } + + dummyAttendance.push({ + id: `att_${worker.worker_id}_${dateStr}`, + worker_id: worker.worker_id, + worker_name: worker.worker_name, + date: dateStr, + attendance_type: attendanceType, + expected_hours: this.getExpectedHours(attendanceType) + }); + }); + } + + return dummyAttendance; + } + + getExpectedHours(attendanceType) { + switch (attendanceType) { + case 'HALF_DAY': return 4; // 반차 + case 'HALF_HALF_DAY': return 6; // 반반차 + case 'EARLY_LEAVE': return 2; // 조퇴 + case 'NORMAL': + default: return 8; // 일반근무 + } + } + + getAttendanceTypeName(attendanceType) { + switch (attendanceType) { + case 'HALF_DAY': return '반차'; + case 'HALF_HALF_DAY': return '반반차'; + case 'EARLY_LEAVE': return '조퇴'; + case 'NORMAL': + default: return '정상근무'; + } + } + + async loadReports() { + try { + const startDate = document.getElementById('startDate').value; + const endDate = document.getElementById('endDate').value; + const workerId = document.getElementById('workerFilter').value; + const projectId = document.getElementById('projectFilter').value; + + // 필수 조건 체크 + if (!startDate || !endDate) { + this.showMessage('시작 날짜와 종료 날짜는 필수입니다.', 'error'); + return; + } + + // 휴가 정보 먼저 로드 + await this.loadAttendanceData(); + + let url = `${API}/daily-work-reports/search?`; + const params = new URLSearchParams(); + + if (startDate) params.append('start_date', startDate); + if (endDate) params.append('end_date', endDate); + if (workerId) params.append('worker_id', workerId); + if (projectId) params.append('project_id', projectId); + + // 페이지네이션 (일단 많이 가져오기) + params.append('page', '1'); + params.append('limit', '1000'); + + url += params.toString(); + + const response = await fetch(url, { headers: getAuthHeaders() }); + + if (response.status === 404 || response.status === 500) { + // API가 아직 준비되지 않은 경우 더미 데이터 사용 + this.reports = this.generateDummyData(); + console.log('⚠️ API 응답 오류, 더미 데이터 사용:', response.status); + if (response.status === 404) { + this.showMessage('⚠️ 검토 API가 준비되지 않아 더미 데이터를 표시합니다.', 'warning'); + } else { + this.showMessage('⚠️ 서버 오류로 더미 데이터를 표시합니다.', 'warning'); + } + } else if (response.ok) { + const result = await response.json(); + this.reports = result.reports || []; + console.log('검색 결과:', result.summary); + } else { + throw new Error(`보고서 로드 실패: ${response.status}`); + } + + // 근무시간 검증 추가 + this.validateWorkHours(); + + this.filteredReports = [...this.reports]; + this.updateDashboard(); + this.updateAlertsSection(); + this.updateTable(); + + } catch (error) { + console.log('⚠️ 네트워크 오류로 더미 데이터 사용:', error.message); + // 더미 데이터로 대체 + this.reports = this.generateDummyData(); + this.validateWorkHours(); + this.filteredReports = [...this.reports]; + this.updateDashboard(); + this.updateAlertsSection(); + this.updateTable(); + // 사용자에게는 부드러운 메시지 표시 + this.showMessage('💡 데모 데이터로 화면을 구성했습니다.', 'info'); + } + } + + validateWorkHours() { + // 각 보고서에 대해 근무시간 검증 + this.reports.forEach(report => { + const attendance = this.attendanceData.find(att => + att.worker_id === report.worker_id && att.date === report.report_date + ); + + if (attendance) { + const expectedHours = attendance.expected_hours; + const actualHours = this.getWorkerDailyHours(report.worker_id, report.report_date); + + report.expected_hours = expectedHours; + report.actual_hours = actualHours; + report.attendance_type = attendance.attendance_type; + report.hours_status = this.getHoursStatus(actualHours, expectedHours); + report.is_reviewed = this.reviewedReports.has(`${report.worker_id}_${report.report_date}`); + } else { + // 휴가 정보가 없으면 기본 8시간으로 가정 + const actualHours = this.getWorkerDailyHours(report.worker_id, report.report_date); + report.expected_hours = 8; + report.actual_hours = actualHours; + report.attendance_type = 'NORMAL'; + report.hours_status = this.getHoursStatus(actualHours, 8); + report.is_reviewed = this.reviewedReports.has(`${report.worker_id}_${report.report_date}`); + } + }); + } + + getWorkerDailyHours(workerId, date) { + // 해당 작업자의 특정 날짜 총 작업시간 계산 + return this.reports + .filter(r => r.worker_id === workerId && r.report_date === date) + .reduce((sum, r) => sum + (r.work_hours || 0), 0); + } + + getHoursStatus(actualHours, expectedHours) { + const tolerance = 0.5; // 30분 허용 오차 + + if (Math.abs(actualHours - expectedHours) <= tolerance) { + return 'NORMAL'; // 정상 + } else if (actualHours < expectedHours) { + return 'UNDER'; // 부족 + } else { + return 'OVER'; // 초과 + } + } + + generateDummyData() { + const today = new Date(); + const dummyData = []; + + // 더미 데이터 생성 (최근 7일) + for (let i = 0; i < 7; i++) { + const date = new Date(today); + date.setDate(date.getDate() - i); + const dateStr = date.toISOString().split('T')[0]; + + this.workers.forEach(worker => { + // 80% 확률로 보고서 생성 + if (Math.random() > 0.2) { + const numEntries = Math.floor(Math.random() * 3) + 1; // 1-3개 작업 + + for (let j = 0; j < numEntries; j++) { + const workStatus = Math.random() > 0.9 ? 2 : 1; // 10% 확률로 에러 + const workHours = Math.random() > 0.95 ? + (Math.random() * 4 + 10) : // 5% 확률로 이상 시간 (10-14시간) + (Math.random() * 6 + 2); // 정상 시간 (2-8시간) + + dummyData.push({ + id: 1000000 + i * 100 + worker.worker_id * 10 + j, // 고유 정수 ID + report_date: dateStr, + worker_id: worker.worker_id, + worker_name: worker.worker_name, + project_id: this.projects[Math.floor(Math.random() * this.projects.length)]?.project_id || 1, + project_name: this.projects[Math.floor(Math.random() * this.projects.length)]?.project_name || 'Unknown', + work_type_id: Math.floor(Math.random() * 3) + 1, + work_type_name: this.workTypes[Math.floor(Math.random() * 3)]?.name || 'Base', + work_status_id: workStatus, + work_status_name: workStatus === 2 ? '에러' : '정규', + error_type_id: workStatus === 2 ? Math.floor(Math.random() * 4) + 1 : null, + error_type_name: workStatus === 2 ? this.errorTypes[Math.floor(Math.random() * 4)]?.name : null, + work_hours: Math.round(workHours * 2) / 2, // 0.5시간 단위 + created_at: `${dateStr}T${String(Math.floor(Math.random() * 24)).padStart(2, '0')}:${String(Math.floor(Math.random() * 60)).padStart(2, '0')}:00` + }); + } + } + }); + } + + return dummyData.sort((a, b) => new Date(b.created_at) - new Date(a.created_at)); + } + + populateFilters() { + // 작업자 필터 + const workerSelect = document.getElementById('workerFilter'); + if (workerSelect) { + workerSelect.innerHTML = ''; + this.workers.forEach(worker => { + workerSelect.innerHTML += ``; + }); + } + + // 프로젝트 필터 + const projectSelect = document.getElementById('projectFilter'); + if (projectSelect) { + projectSelect.innerHTML = ''; + this.projects.forEach(project => { + projectSelect.innerHTML += ``; + }); + } + } + + setDefaultDates() { + const today = new Date(); + const weekAgo = new Date(today); + weekAgo.setDate(weekAgo.getDate() - 7); + + const startDateInput = document.getElementById('startDate'); + const endDateInput = document.getElementById('endDate'); + + if (startDateInput) startDateInput.value = weekAgo.toISOString().split('T')[0]; + if (endDateInput) endDateInput.value = today.toISOString().split('T')[0]; + } + + updateDashboard() { + // 날짜별, 작업자별로 그룹화하여 계산 + const groupedReports = this.groupReportsByWorkerAndDate(); + const groups = Object.values(groupedReports); + + const total = groups.length; + const errors = groups.filter(group => group.some(r => r.work_status_id === 2)).length; + const warnings = groups.filter(group => { + const firstReport = group[0]; + return firstReport.hours_status === 'UNDER' || firstReport.hours_status === 'OVER'; + }).length; + const reviewed = groups.filter(group => group[0].is_reviewed).length; + + document.getElementById('totalReports').textContent = total; + document.getElementById('errorReports').textContent = errors; + document.getElementById('warningReports').textContent = warnings; + document.getElementById('missingReports').textContent = total - reviewed; // 미검토 건수 + } + + updateAlertsSection() { + const alertsList = document.getElementById('alertsList'); + if (!alertsList) return; + + const alerts = []; + const groupedReports = this.groupReportsByWorkerAndDate(); + + // 각 그룹별로 알림 체크 + Object.values(groupedReports).forEach(group => { + const firstReport = group[0]; + const hasError = group.some(r => r.work_status_id === 2); + const workerName = firstReport.worker_name; + const date = firstReport.report_date; + + // 에러 발생 건 + if (hasError) { + const errorReports = group.filter(r => r.work_status_id === 2); + alerts.push({ + type: 'error', + text: `${workerName} (${date}) - 에러 ${errorReports.length}건`, + time: this.formatDate(date), + priority: 1 + }); + } + + // 시간 불일치 + if (firstReport.hours_status === 'UNDER' || firstReport.hours_status === 'OVER') { + const statusText = firstReport.hours_status === 'UNDER' ? '부족' : '초과'; + alerts.push({ + type: 'warning', + text: `${workerName} (${date}) - 시간 ${statusText} (${firstReport.actual_hours}h/${firstReport.expected_hours}h)`, + time: this.formatDate(date), + priority: 2 + }); + } + + // 검토 대기 (정상이지만 아직 검토되지 않음) + if (!firstReport.is_reviewed && firstReport.hours_status === 'NORMAL' && !hasError) { + alerts.push({ + type: 'pending', + text: `${workerName} (${date}) - 검토 대기`, + time: this.formatDate(date), + priority: 3 + }); + } + }); + + // 우선순위별 정렬 + alerts.sort((a, b) => a.priority - b.priority); + + // 알림 표시 + if (alerts.length === 0) { + alertsList.innerHTML = ` +
+
+ ✅ 모든 항목이 정상이거나 검토 완료되었습니다 +
+
+ `; + } else { + alertsList.innerHTML = alerts.map(alert => ` +
+
+
+ ${this.getAlertTypeLabel(alert.type)} + ${alert.text} +
+
${alert.time}
+
+
+ `).join(''); + } + } + + getAlertTypeLabel(type) { + switch (type) { + case 'error': return '에러'; + case 'warning': return '주의'; + case 'pending': return '대기'; + case 'missing': return '미입력'; + default: return '알림'; + } + } + + updateTable() { + const tbody = document.getElementById('reportsTableBody'); + if (!tbody) return; + + if (this.filteredReports.length === 0) { + tbody.innerHTML = ` + + + 조회된 데이터가 없습니다 + + + `; + return; + } + + // 날짜별, 작업자별로 그룹화 + const groupedReports = this.groupReportsByWorkerAndDate(); + + tbody.innerHTML = Object.entries(groupedReports).map(([key, group]) => { + const [workerId, date] = key.split('_'); + const firstReport = group[0]; + const totalHours = group.reduce((sum, r) => sum + (r.work_hours || 0), 0); + const hasError = group.some(r => r.work_status_id === 2); + const rowClass = this.getGroupRowClass(firstReport, hasError); + + return ` + + ${this.formatDate(firstReport.report_date)} + ${firstReport.worker_name} + + + ${this.getAttendanceTypeName(firstReport.attendance_type)} + + + ${firstReport.expected_hours}h + ${totalHours}h + + + ${this.getHoursStatusName(firstReport.hours_status)} + + + ${group.map(r => r.project_name).join(', ')} + ${group.map(r => r.work_type_name).join(', ')} + + ${hasError ? '에러 포함' : '정상'} + + + ${firstReport.is_reviewed ? + '검토완료' : + '검토대기' + } + + + ${!firstReport.is_reviewed && firstReport.hours_status === 'NORMAL' && !hasError ? + `` : + '-' + } + + + `; + }).join(''); + } + + groupReportsByWorkerAndDate() { + const grouped = {}; + + this.filteredReports.forEach(report => { + const key = `${report.worker_id}_${report.report_date}`; + if (!grouped[key]) { + grouped[key] = []; + } + grouped[key].push(report); + }); + + return grouped; + } + + getGroupRowClass(report, hasError) { + if (report.is_reviewed) return 'row-reviewed'; + if (hasError || report.work_status_id === 2) return 'row-error'; + if (report.hours_status === 'UNDER' || report.hours_status === 'OVER') return 'row-warning'; + return 'row-normal'; + } + + getHoursStatusName(status) { + switch (status) { + case 'NORMAL': return '정상'; + case 'UNDER': return '부족'; + case 'OVER': return '초과'; + default: return '확인필요'; + } + } + + selectWorkerDate(workerId, date) { + // 해당 작업자의 특정 날짜 보고서들을 선택 + const reports = this.filteredReports.filter(r => + r.worker_id == workerId && r.report_date === date + ); + + if (reports.length > 0) { + this.selectedReport = reports[0]; // 첫 번째 보고서를 대표로 선택 + this.selectedReport.allReports = reports; // 전체 보고서 목록 추가 + this.updateEditPanel(); + + // 테이블에서 선택 표시 + document.querySelectorAll('.data-table tr.selected').forEach(tr => { + tr.classList.remove('selected'); + }); + + // 해당 행 선택 표시 + const rows = document.querySelectorAll('.data-table tr'); + rows.forEach(row => { + if (row.onclick && row.onclick.toString().includes(`'${workerId}', '${date}'`)) { + row.classList.add('selected'); + } + }); + } + } + + async markAsReviewed(workerId, date) { + try { + const key = `${workerId}_${date}`; + + // API 호출 (준비되면) + // const response = await fetch(`${API}/daily-work-reports/review`, { + // method: 'POST', + // headers: { ...getAuthHeaders(), 'Content-Type': 'application/json' }, + // body: JSON.stringify({ worker_id: workerId, report_date: date, reviewed: true }) + // }); + + // 현재는 로컬 상태만 업데이트 + this.reviewedReports.add(key); + + // 해당 보고서들의 검토 상태 업데이트 + this.reports.forEach(report => { + if (report.worker_id == workerId && report.report_date === date) { + report.is_reviewed = true; + } + }); + + this.filteredReports = [...this.reports]; + this.updateDashboard(); + this.updateAlertsSection(); + this.updateTable(); + + this.showMessage(`✅ ${this.getWorkerName(workerId)}의 ${date} 보고서가 검토완료 처리되었습니다.`, 'success'); + + } catch (error) { + this.showMessage('❌ 검토완료 처리 중 오류가 발생했습니다.', 'error'); + console.error('검토완료 오류:', error); + } + } + + getWorkerName(workerId) { + const worker = this.workers.find(w => w.worker_id == workerId); + return worker ? worker.worker_name : `작업자${workerId}`; + } + + updateEditPanel() { + const panelContent = document.getElementById('editPanelContent'); + if (!panelContent || !this.selectedReport) return; + + const report = this.selectedReport; + const allReports = report.allReports || [report]; + + panelContent.innerHTML = ` +
+

${report.worker_name} - ${this.formatDate(report.report_date)}

+
+
+ 출근형태:
+ + ${this.getAttendanceTypeName(report.attendance_type)} + +
+
+ 시간상태:
+ + ${this.getHoursStatusName(report.hours_status)} + +
+
기대시간: ${report.expected_hours}시간
+
실제시간: ${report.actual_hours}시간
+
+
+ +
+
작업 상세 (${allReports.length}건)
+ ${allReports.map((r, index) => ` +
+
+
프로젝트: ${r.project_name}
+
작업유형: ${r.work_type_name}
+
작업시간: ${r.work_hours}시간
+
상태: ${r.work_status_name}
+ ${r.error_type_name ? `
에러유형: ${r.error_type_name}
` : ''} +
+ +
+ `).join('')} +
+ +
+ ${!report.is_reviewed && report.hours_status === 'NORMAL' && !allReports.some(r => r.work_status_id === 2) ? + `` : '' + } + +
+ `; + } + + editSingleReport(reportId) { + // 개별 보고서 수정을 위해 기존 로직 사용 + this.selectedReport = this.filteredReports.find(r => r.id == reportId); + if (this.selectedReport) { + // 기존 수정 폼 표시 + this.showEditForm(); + } + } + + showEditForm() { + const panelContent = document.getElementById('editPanelContent'); + if (!panelContent || !this.selectedReport) return; + + const report = this.selectedReport; + + panelContent.innerHTML = ` +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ + + +
+ `; + + // 업무 상태 변경 시 에러 유형 표시/숨김 + const workStatusSelect = document.getElementById('editWorkStatus'); + const errorTypeGroup = document.getElementById('editErrorTypeGroup'); + + if (workStatusSelect && errorTypeGroup) { + workStatusSelect.addEventListener('change', (e) => { + if (e.target.value === '2') { + errorTypeGroup.style.display = 'block'; + } else { + errorTypeGroup.style.display = 'none'; + document.getElementById('editErrorType').value = ''; + } + }); + } + } + + async saveReport() { + if (!this.selectedReport) return; + + try { + this.showLoading(true); + + const formData = { + report_date: document.getElementById('editReportDate').value, + project_id: parseInt(document.getElementById('editProject').value), + work_type_id: parseInt(document.getElementById('editWorkType').value), + work_status_id: parseInt(document.getElementById('editWorkStatus').value), + error_type_id: document.getElementById('editErrorType').value ? + parseInt(document.getElementById('editErrorType').value) : null, + work_hours: parseFloat(document.getElementById('editWorkHours').value) + }; + + const response = await fetch(`${API}/daily-work-reports/${this.selectedReport.id}`, { + method: 'PUT', + headers: { + ...getAuthHeaders(), + 'Content-Type': 'application/json' + }, + body: JSON.stringify(formData) + }); + + if (response.status === 404 || response.status === 500) { + if (response.status === 404) { + this.showMessage('⚠️ 수정 API가 아직 준비되지 않았습니다.', 'warning'); + } else { + this.showMessage('⚠️ 서버 오류가 발생했습니다. 더미 데이터를 수정합니다.', 'warning'); + } + // 더미 데이터 업데이트 + this.updateDummyData(formData); + } else if (response.ok) { + this.showMessage('✅ 성공적으로 수정되었습니다.', 'success'); + await this.loadReports(); + } else { + const result = await response.json(); + throw new Error(result.error || '수정 중 오류가 발생했습니다.'); + } + + this.clearSelection(); + + } catch (error) { + this.showMessage(`❌ ${error.message}`, 'error'); + console.error('수정 오류:', error); + } finally { + this.showLoading(false); + } + } + + updateDummyData(formData) { + // 더미 데이터에서 수정 + const reportIndex = this.reports.findIndex(r => r.id === this.selectedReport.id); + if (reportIndex !== -1) { + this.reports[reportIndex] = { + ...this.reports[reportIndex], + ...formData, + project_name: this.projects.find(p => p.project_id === formData.project_id)?.project_name, + work_type_name: this.workTypes.find(wt => wt.id === formData.work_type_id)?.name, + work_status_name: this.workStatusTypes.find(ws => ws.id === formData.work_status_id)?.name, + error_type_name: formData.error_type_id ? + this.errorTypes.find(et => et.id === formData.error_type_id)?.name : null + }; + + // 시간 검증 다시 실행 + this.validateWorkHours(); + + this.filteredReports = [...this.reports]; + this.updateDashboard(); + this.updateAlertsSection(); + this.updateTable(); + } + } + + async deleteReport() { + if (!this.selectedReport) return; + + if (!confirm('정말로 이 보고서를 삭제하시겠습니까?')) return; + + try { + this.showLoading(true); + + const response = await fetch(`${API}/daily-work-reports/${this.selectedReport.id}`, { + method: 'DELETE', + headers: getAuthHeaders() + }); + + if (response.status === 404 || response.status === 500) { + if (response.status === 404) { + this.showMessage('⚠️ 삭제 API가 아직 준비되지 않았습니다.', 'warning'); + } else { + this.showMessage('⚠️ 서버 오류가 발생했습니다. 더미 데이터를 삭제합니다.', 'warning'); + } + // 더미 데이터에서 삭제 + this.reports = this.reports.filter(r => r.id !== this.selectedReport.id); + this.filteredReports = [...this.reports]; + this.updateDashboard(); + this.updateAlertsSection(); + this.updateTable(); + } else if (response.ok) { + this.showMessage('✅ 성공적으로 삭제되었습니다.', 'success'); + await this.loadReports(); + } else { + const result = await response.json(); + throw new Error(result.error || '삭제 중 오류가 발생했습니다.'); + } + + this.clearSelection(); + + } catch (error) { + this.showMessage(`❌ ${error.message}`, 'error'); + console.error('삭제 오류:', error); + } finally { + this.showLoading(false); + } + } + + clearSelection() { + this.selectedReport = null; + + // 테이블 선택 해제 + document.querySelectorAll('.data-table tr.selected').forEach(tr => { + tr.classList.remove('selected'); + }); + + // 패널 초기화 + const panelContent = document.getElementById('editPanelContent'); + if (panelContent) { + panelContent.innerHTML = ` +
+
📝
+
수정할 항목을 선택해주세요
+
+ `; + } + } + + setupEventListeners() { + // 필터 적용 버튼 + const applyFilterBtn = document.getElementById('applyFilter'); + if (applyFilterBtn) { + applyFilterBtn.addEventListener('click', () => { + this.loadReports(); + }); + } + + // 새로고침 버튼 + const refreshBtn = document.getElementById('refreshBtn'); + if (refreshBtn) { + refreshBtn.addEventListener('click', () => { + this.loadReports(); + }); + } + + // 내보내기 버튼 + const exportBtn = document.getElementById('exportBtn'); + if (exportBtn) { + exportBtn.addEventListener('click', () => { + this.exportData(); + }); + } + + // 엔터키로 필터 적용 + ['startDate', 'endDate', 'workerFilter', 'projectFilter'].forEach(id => { + const element = document.getElementById(id); + if (element) { + element.addEventListener('change', () => { + this.loadReports(); + }); + } + }); + } + + exportData() { + if (this.filteredReports.length === 0) { + this.showMessage('내보낼 데이터가 없습니다.', 'warning'); + return; + } + + // CSV 생성 + const headers = ['날짜', '작업자', '출근형태', '기대시간', '실제시간', '시간상태', '프로젝트', '작업유형', '상태', '검토상태']; + + // 그룹화된 데이터로 CSV 생성 + const groupedReports = this.groupReportsByWorkerAndDate(); + const csvContent = [ + headers.join(','), + ...Object.entries(groupedReports).map(([key, group]) => { + const firstReport = group[0]; + const totalHours = group.reduce((sum, r) => sum + (r.work_hours || 0), 0); + const hasError = group.some(r => r.work_status_id === 2); + + return [ + firstReport.report_date, + firstReport.worker_name, + this.getAttendanceTypeName(firstReport.attendance_type), + firstReport.expected_hours, + totalHours, + this.getHoursStatusName(firstReport.hours_status), + group.map(r => r.project_name).join('; '), + group.map(r => r.work_type_name).join('; '), + hasError ? '에러 포함' : '정상', + firstReport.is_reviewed ? '검토완료' : '검토대기' + ].join(','); + }) + ].join('\n'); + + // 파일 다운로드 + const blob = new Blob(['\uFEFF' + csvContent], { type: 'text/csv;charset=utf-8;' }); + const link = document.createElement('a'); + link.href = URL.createObjectURL(blob); + link.download = `작업보고서_검토_${new Date().toISOString().split('T')[0]}.csv`; + link.click(); + + this.showMessage('✅ 데이터가 내보내졌습니다.', 'success'); + } + + formatDate(dateStr) { + return new Date(dateStr).toLocaleDateString('ko-KR'); + } + + formatTime(dateTimeStr) { + return new Date(dateTimeStr).toLocaleString('ko-KR', { + month: 'short', + day: 'numeric', + hour: '2-digit', + minute: '2-digit' + }); + } + + showLoading(show) { + const overlay = document.getElementById('loadingOverlay'); + if (overlay) { + overlay.style.display = show ? 'flex' : 'none'; + } + } + + showMessage(message, type) { + const container = document.getElementById('message-container'); + if (container) { + container.innerHTML = `
${message}
`; + + if (type === 'success') { + setTimeout(() => { + container.innerHTML = ''; + }, 5000); + } + } + } +} + +// 전역 인스턴스 생성 +let workReportReview; + +// DOM 준비 후 초기화 +document.addEventListener('DOMContentLoaded', () => { + workReportReview = new WorkReportReviewManager(); + // 전역 접근을 위해 window에 할당 + window.workReportReview = workReportReview; +}); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/work-report-ui.js b/deploy/tkfb-package/web-ui/js/work-report-ui.js new file mode 100644 index 0000000..bdc6042 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-report-ui.js @@ -0,0 +1,141 @@ +// /js/work-report-ui.js + +const DEFAULT_PROJECT_ID = '13'; // 나중에는 API나 설정에서 받아오는 것이 좋음 +const DEFAULT_TASK_ID = '15'; + +/** + * 주어진 데이터를 바탕으로 + ${worker.worker_name} + + + + + + + + + + + + `; + + // 이벤트 리스너 설정 + const workTypeSelect = tr.querySelector('[name="work_type"]'); + const projectSelect = tr.querySelector('[name="project_id"]'); + const taskSelect = tr.querySelector('[name="task_id"]'); + + workTypeSelect.addEventListener('change', () => { + const isDisabled = ['연차', '휴무', '유급'].includes(workTypeSelect.value); + projectSelect.disabled = isDisabled; + taskSelect.disabled = isDisabled; + if (isDisabled) { + projectSelect.value = DEFAULT_PROJECT_ID; + taskSelect.value = DEFAULT_TASK_ID; + } + }); + + tr.querySelector('.remove-btn').addEventListener('click', () => { + tr.remove(); + updateRowNumbers(tr.parentElement); + }); + + return tr; +} + +/** + * 작업 보고서 테이블을 초기화하고 데이터를 채웁니다. + * @param {{workers: Array, projects: Array, tasks: Array}} initialData - 초기 데이터 + */ +export function initializeReportTable(initialData) { + const tableBody = document.getElementById('reportBody'); + if (!tableBody) return; + + tableBody.innerHTML = ''; // 기존 내용 초기화 + const { workers, projects, tasks } = initialData; + + if (!workers || workers.length === 0) { + tableBody.innerHTML = '등록할 작업자 정보가 없습니다.'; + return; + } + + workers.forEach((worker, index) => { + const row = createReportRow(worker, projects, tasks, index); + tableBody.appendChild(row); + }); +} + +/** + * 테이블에서 폼 데이터를 추출하여 배열로 반환합니다. + * @returns {Array|null} - 추출된 데이터 배열 또는 유효성 검사 실패 시 null + */ +export function getReportData() { + const tableBody = document.getElementById('reportBody'); + const rows = tableBody.querySelectorAll('tr'); + + if (rows.length === 0 || (rows.length === 1 && rows[0].cells.length < 2)) { + alert('등록할 내용이 없습니다.'); + return null; + } + + const reportData = []; + const workerIds = new Set(); + + for (const tr of rows) { + const workerId = tr.querySelector('[name="worker_id"]').value; + if (workerIds.has(workerId)) { + alert(`오류: 작업자 '${tr.cells[1].textContent.trim()}'가 중복 등록되었습니다.`); + return null; + } + workerIds.add(workerId); + + reportData.push({ + worker_id: workerId, + project_id: tr.querySelector('[name="project_id"]').value, + task_id: tr.querySelector('[name="task_id"]').value, + overtime_hours: tr.querySelector('[name="overtime"]').value || 0, + work_details: tr.querySelector('[name="work_type"]').value, + memo: tr.querySelector('[name="memo"]').value + }); + } + + return reportData; +} \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/work-review.js b/deploy/tkfb-package/web-ui/js/work-review.js new file mode 100644 index 0000000..22f1577 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/work-review.js @@ -0,0 +1,776 @@ +// work-review.js - 통합 API 설정 적용 버전 + +// ================================================================= +// 🌐 통합 API 설정 import +// ================================================================= +import { API, getAuthHeaders, apiCall } from '/js/api-config.js'; + +// 전역 변수 +let currentDate = new Date(); +let selectedDate = null; +let selectedDateData = null; +let basicData = { + workTypes: [], + workStatusTypes: [], + errorTypes: [], + projects: [] +}; + +// 현재 사용자 정보 가져오기 +function getCurrentUser() { + try { + const token = localStorage.getItem('token'); + if (!token) return null; + + const payloadBase64 = token.split('.')[1]; + if (payloadBase64) { + const payload = JSON.parse(atob(payloadBase64)); + return payload; + } + } catch (error) { + console.log('토큰에서 사용자 정보 추출 실패:', error); + } + return null; +} + +// 메시지 표시 +function showMessage(message, type = 'info') { + const container = document.getElementById('message-container'); + container.innerHTML = `
${message}
`; + + if (type !== 'loading') { + setTimeout(() => { + container.innerHTML = ''; + }, 5000); + } +} + +// 날짜 포맷팅 +function formatDate(date) { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +} + +// 월 표시 업데이트 +function updateMonthDisplay() { + const monthElement = document.getElementById('currentMonth'); + const year = currentDate.getFullYear(); + const month = currentDate.getMonth() + 1; + monthElement.textContent = `${year}년 ${month}월`; +} + +// 근무 유형 분류 +function classifyWorkType(totalHours) { + if (totalHours === 0) return { type: 'vacation', label: '휴무' }; + if (totalHours === 2) return { type: 'vacation', label: '조퇴' }; + if (totalHours === 4) return { type: 'vacation', label: '반차' }; + if (totalHours === 6) return { type: 'vacation', label: '반반차' }; + if (totalHours === 8) return { type: 'normal-work', label: '정시근무' }; + if (totalHours > 8) return { type: 'overtime', label: '잔업' }; + return { type: 'vacation', label: '기타' }; +} + +// 캘린더 렌더링 (데이터 로드 없이) +function renderCalendar() { + const calendar = document.getElementById('calendar'); + + // 기존 날짜 셀들 제거 (헤더는 유지) + const dayHeaders = calendar.querySelectorAll('.day-header'); + calendar.innerHTML = ''; + dayHeaders.forEach(header => calendar.appendChild(header)); + + const year = currentDate.getFullYear(); + const month = currentDate.getMonth(); + + // 해당 월의 첫째 날과 마지막 날 + const firstDay = new Date(year, month, 1); + const lastDay = new Date(year, month + 1, 0); + + // 첫째 주의 시작 (일요일부터 시작) + const startDate = new Date(firstDay); + startDate.setDate(startDate.getDate() - firstDay.getDay()); + + // 마지막 주의 끝 + const endDate = new Date(lastDay); + endDate.setDate(endDate.getDate() + (6 - lastDay.getDay())); + + // 오늘 날짜 + const today = new Date(); + const todayStr = formatDate(today); + + // 날짜 셀 생성 + let currentCalendarDate = new Date(startDate); + + while (currentCalendarDate <= endDate) { + const dateStr = formatDate(currentCalendarDate); + const isCurrentMonth = currentCalendarDate.getMonth() === month; + const isToday = dateStr === todayStr; + const isSelected = selectedDate === dateStr; + + const dayCell = document.createElement('div'); + dayCell.className = 'day-cell'; + + if (!isCurrentMonth) { + dayCell.classList.add('other-month'); + } + + if (isToday) { + dayCell.classList.add('today'); + } + + if (isSelected) { + dayCell.classList.add('selected'); + } + + // 날짜 번호 + const dayNumber = document.createElement('div'); + dayNumber.className = 'day-number'; + dayNumber.textContent = currentCalendarDate.getDate(); + dayCell.appendChild(dayNumber); + + // 클릭 이벤트 - 현재 월의 날짜만 클릭 가능 + if (isCurrentMonth) { + dayCell.style.cursor = 'pointer'; + dayCell.addEventListener('click', () => { + selectedDate = dateStr; + loadDayData(dateStr); + renderCalendar(); // 선택 상태 업데이트를 위해 재렌더링 + }); + } + + calendar.appendChild(dayCell); + currentCalendarDate.setDate(currentCalendarDate.getDate() + 1); + } +} + +// 특정 날짜 데이터 로드 (통합 API 사용) +async function loadDayData(dateStr) { + try { + showMessage(`${dateStr} 데이터를 불러오는 중... (통합 API)`, 'loading'); + + const data = await apiCall(`${API}/daily-work-reports?date=${dateStr}`); + const dataArray = Array.isArray(data) ? data : (data.data || []); + + // 데이터 처리 + processDayData(dateStr, dataArray); + renderDayInfo(); + + document.getElementById('message-container').innerHTML = ''; + + } catch (error) { + console.error('날짜 데이터 로드 실패:', error); + showMessage('데이터를 불러올 수 없습니다: ' + error.message, 'error'); + selectedDateData = null; + renderDayInfo(); + } +} + +// 일별 데이터 처리 +function processDayData(dateStr, works) { + const dayData = { + date: dateStr, + totalHours: 0, + workers: new Set(), + reviewed: Math.random() > 0.3, // 임시: 70% 확률로 검토 완료 + details: works + }; + + works.forEach(work => { + dayData.totalHours += parseFloat(work.work_hours || 0); + dayData.workers.add(work.worker_name || work.worker_id); + }); + + const workType = classifyWorkType(dayData.totalHours); + dayData.workType = workType.type; + dayData.workLabel = workType.label; + + selectedDateData = dayData; +} + +// 선택된 날짜 정보 렌더링 +function renderDayInfo() { + const dayInfoContainer = document.getElementById('day-info-container'); + + if (!selectedDate) { + dayInfoContainer.innerHTML = ` +
+

📅 날짜를 선택하세요

+

캘린더에서 날짜를 클릭하면 해당 날짜의 작업 정보를 확인할 수 있습니다.

+
+ `; + return; + } + + if (!selectedDateData) { + dayInfoContainer.innerHTML = ` +
+

📅 ${selectedDate}

+

해당 날짜에 등록된 작업이 없습니다.

+
+ `; + return; + } + + const data = selectedDateData; + + // 작업자별 상세 정보 생성 + const workerDetailsHtml = Array.from(data.workers).map(worker => { + const workerWorks = data.details.filter(w => (w.worker_name || w.worker_id) === worker); + const workerHours = workerWorks.reduce((sum, w) => sum + parseFloat(w.work_hours || 0), 0); + + const workerWorkItemsHtml = workerWorks.map(work => ` +
+
+ ${work.project_name || '프로젝트'} - ${work.work_hours}시간
+ 작업: ${work.work_type_name || '미지정'} | 상태: ${work.work_status_name || '미지정'} + ${work.error_type_name ? `
에러: ${work.error_type_name}` : ''} +
+
+ + +
+
+ `).join(''); + + return ` +
+
+ 👤 ${worker} - 총 ${workerHours}시간 + +
+
+ ${workerWorkItemsHtml} +
+
+ `; + }).join(''); + + dayInfoContainer.innerHTML = ` +
+
+

📅 ${selectedDate} 작업 정보

+
+ + +
+
+ +
+
+ 총 작업시간: + ${data.totalHours}시간 +
+
+ 근무 유형: + ${data.workLabel} +
+
+ 작업자 수: + ${data.workers.size}명 +
+
+ 검토 상태: + + ${data.reviewed ? '✅ 검토완료' : '⏳ 미검토'} + +
+
+ +
+

👥 작업자별 상세

+ ${workerDetailsHtml} +
+
+ `; +} + +// 검토 상태 토글 +function toggleReview() { + if (selectedDateData) { + selectedDateData.reviewed = !selectedDateData.reviewed; + renderDayInfo(); + + // TODO: 실제로는 여기서 API 호출해서 DB에 저장해야 함 + console.log(`검토 상태 변경: ${selectedDate} - ${selectedDateData.reviewed ? '검토완료' : '미검토'}`); + + showMessage(`검토 상태가 ${selectedDateData.reviewed ? '완료' : '미완료'}로 변경되었습니다.`, 'success'); + } +} + +// 현재 날짜 새로고침 +function refreshCurrentDay() { + if (selectedDate) { + loadDayData(selectedDate); + } +} + +// 🛠️ 작업 항목 수정 함수 (통합 API 사용) +async function editWorkItem(workId) { + try { + console.log('수정할 작업 ID:', workId); + + if (!selectedDateData) { + showMessage('작업 데이터를 찾을 수 없습니다.', 'error'); + return; + } + + const workData = selectedDateData.details.find(work => work.id == workId); + if (!workData) { + showMessage('수정할 작업 데이터를 찾을 수 없습니다.', 'error'); + return; + } + + // 기본 데이터가 없으면 로드 + if (basicData.workTypes.length === 0) { + showMessage('기본 데이터를 불러오는 중... (통합 API)', 'loading'); + await loadBasicData(); + } + + showEditModal(workData); + document.getElementById('message-container').innerHTML = ''; + + } catch (error) { + console.error('작업 정보 조회 오류:', error); + showMessage('작업 정보를 불러올 수 없습니다: ' + error.message, 'error'); + } +} + +// 🛠️ 수정 모달 표시 (개선된 버전) +function showEditModal(workData) { + const modalHtml = ` +
+
+
+

✏️ 작업 수정

+ +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+ `; + + document.body.insertAdjacentHTML('beforeend', modalHtml); + + // 업무 상태 변경 이벤트 + document.getElementById('editWorkStatus').addEventListener('change', (e) => { + const errorTypeGroup = document.getElementById('editErrorTypeGroup'); + if (e.target.value === '2') { + errorTypeGroup.style.display = 'block'; + } else { + errorTypeGroup.style.display = 'none'; + } + }); +} + +// 🛠️ 수정 모달 닫기 +function closeEditModal() { + const modal = document.getElementById('editModal'); + if (modal) { + modal.remove(); + } +} + +// 🛠️ 수정된 작업 저장 (통합 API 사용) +async function saveEditedWork(workId) { + try { + // 입력값 검증 + const projectId = document.getElementById('editProject').value; + const workTypeId = document.getElementById('editWorkType').value; + const workStatusId = document.getElementById('editWorkStatus').value; + const errorTypeId = document.getElementById('editErrorType').value; + const workHours = document.getElementById('editWorkHours').value; + + // 필수값 체크 + if (!projectId) { + showMessage('프로젝트를 선택해주세요.', 'error'); + document.getElementById('editProject').focus(); + return; + } + + if (!workTypeId) { + showMessage('작업 유형을 선택해주세요.', 'error'); + document.getElementById('editWorkType').focus(); + return; + } + + if (!workStatusId) { + showMessage('업무 상태를 선택해주세요.', 'error'); + document.getElementById('editWorkStatus').focus(); + return; + } + + if (!workHours || workHours <= 0) { + showMessage('작업 시간을 올바르게 입력해주세요.', 'error'); + document.getElementById('editWorkHours').focus(); + return; + } + + if (workStatusId === '2' && !errorTypeId) { + showMessage('에러 상태인 경우 에러 유형을 선택해주세요.', 'error'); + document.getElementById('editErrorType').focus(); + return; + } + + const updateData = { + project_id: parseInt(projectId), + work_type_id: parseInt(workTypeId), + work_status_id: parseInt(workStatusId), + error_type_id: errorTypeId ? parseInt(errorTypeId) : null, + work_hours: parseFloat(workHours) + }; + + showMessage('작업을 수정하는 중... (통합 API)', 'loading'); + + // 저장 버튼 비활성화 + const saveBtn = document.querySelector('.btn-success'); + const originalText = saveBtn.textContent; + saveBtn.textContent = '저장 중...'; + saveBtn.disabled = true; + + const result = await apiCall(`${API}/daily-work-reports/my-entry/${workId}`, { + method: 'PUT', + body: JSON.stringify(updateData) + }); + + console.log('✅ 수정 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 수정되었습니다!', 'success'); + + closeEditModal(); + refreshCurrentDay(); // 현재 날짜 데이터 새로고침 + + } catch (error) { + console.error('❌ 수정 실패:', error); + showMessage('수정 중 오류가 발생했습니다: ' + error.message, 'error'); + + // 버튼 복원 + const saveBtn = document.querySelector('.btn-success'); + if (saveBtn) { + saveBtn.textContent = '💾 저장'; + saveBtn.disabled = false; + } + } +} + +// 🗑️ 작업 항목 삭제 (통합 API 사용) +async function deleteWorkItem(workId) { + // 확인 대화상자 + const confirmDelete = await showConfirmDialog( + '작업 삭제 확인', + '정말로 이 작업을 삭제하시겠습니까?', + '삭제된 작업은 복구할 수 없습니다.' + ); + + if (!confirmDelete) return; + + try { + console.log('삭제할 작업 ID:', workId); + + showMessage('작업을 삭제하는 중... (통합 API)', 'loading'); + + const result = await apiCall(`${API}/daily-work-reports/my-entry/${workId}`, { + method: 'DELETE' + }); + + console.log('✅ 삭제 성공 (통합 API):', result); + showMessage('✅ 작업이 성공적으로 삭제되었습니다!', 'success'); + + refreshCurrentDay(); // 현재 날짜 데이터 새로고침 + + } catch (error) { + console.error('❌ 삭제 실패:', error); + showMessage('삭제 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 🗑️ 작업자의 모든 작업 삭제 (통합 API 사용) +async function deleteWorkerAllWorks(date, workerName) { + // 확인 대화상자 + const confirmDelete = await showConfirmDialog( + '전체 작업 삭제 확인', + `정말로 ${workerName}님의 ${date} 모든 작업을 삭제하시겠습니까?`, + '삭제된 작업들은 복구할 수 없습니다.' + ); + + if (!confirmDelete) return; + + try { + if (!selectedDateData) return; + + const workerWorks = selectedDateData.details.filter(w => (w.worker_name || w.worker_id) === workerName); + + if (workerWorks.length === 0) { + showMessage('삭제할 작업이 없습니다.', 'error'); + return; + } + + showMessage(`${workerName}님의 작업들을 삭제하는 중... (통합 API)`, 'loading'); + + // 순차적으로 삭제 (병렬 처리하면 서버 부하 발생 가능) + let successCount = 0; + let failCount = 0; + + for (const work of workerWorks) { + try { + await apiCall(`${API}/daily-work-reports/my-entry/${work.id}`, { + method: 'DELETE' + }); + successCount++; + } catch (error) { + console.error(`작업 ${work.id} 삭제 실패:`, error); + failCount++; + } + } + + if (failCount === 0) { + showMessage(`✅ ${workerName}님의 모든 작업(${successCount}개)이 삭제되었습니다!`, 'success'); + } else { + showMessage(`⚠️ ${successCount}개 삭제 완료, ${failCount}개 삭제 실패`, 'warning'); + } + + refreshCurrentDay(); // 현재 날짜 데이터 새로고침 + + } catch (error) { + console.error('❌ 전체 삭제 실패:', error); + showMessage('작업 삭제 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +// 확인 대화상자 표시 +function showConfirmDialog(title, message, warning) { + return new Promise((resolve) => { + const modalHtml = ` +
+
+
+

⚠️ ${title}

+
+
+

${message}

+

${warning}

+
+ +
+
+ `; + + document.body.insertAdjacentHTML('beforeend', modalHtml); + + // 전역 함수로 resolve 함수 노출 + window.resolveConfirm = (result) => { + const modal = document.getElementById('confirmModal'); + if (modal) modal.remove(); + delete window.resolveConfirm; + resolve(result); + }; + }); +} + +// 기본 데이터 로드 (통합 API 사용) +async function loadBasicData() { + try { + console.log('🔗 통합 API 설정을 사용한 기본 데이터 로딩...'); + + const promises = [ + // 활성 프로젝트 로드 + apiCall(`${API}/projects/active/list`) + .then(data => Array.isArray(data) ? data : (data.projects || [])) + .catch(() => []), + + // 작업 유형 로드 + apiCall(`${API}/daily-work-reports/work-types`) + .then(data => Array.isArray(data) ? data : [ + {id: 1, name: 'Base'}, + {id: 2, name: 'Vessel'}, + {id: 3, name: 'Piping'} + ]) + .catch(() => [ + {id: 1, name: 'Base'}, + {id: 2, name: 'Vessel'}, + {id: 3, name: 'Piping'} + ]), + + // 업무 상태 유형 로드 + apiCall(`${API}/daily-work-reports/work-status-types`) + .then(data => Array.isArray(data) ? data : [ + {id: 1, name: '정규'}, + {id: 2, name: '에러'} + ]) + .catch(() => [ + {id: 1, name: '정규'}, + {id: 2, name: '에러'} + ]), + + // 에러 유형 로드 + apiCall(`${API}/daily-work-reports/error-types`) + .then(data => Array.isArray(data) ? data : [ + {id: 1, name: '설계미스'}, + {id: 2, name: '외주작업 불량'}, + {id: 3, name: '입고지연'}, + {id: 4, name: '작업 불량'} + ]) + .catch(() => [ + {id: 1, name: '설계미스'}, + {id: 2, name: '외주작업 불량'}, + {id: 3, name: '입고지연'}, + {id: 4, name: '작업 불량'} + ]) + ]; + + const [projects, workTypes, workStatusTypes, errorTypes] = await Promise.all(promises); + + basicData = { + projects, + workTypes, + workStatusTypes, + errorTypes + }; + + console.log('✅ 기본 데이터 로드 완료 (통합 API):', basicData); + } catch (error) { + console.error('기본 데이터 로드 실패:', error); + } +} + +// 이벤트 리스너 설정 +function setupEventListeners() { + document.getElementById('prevMonth').addEventListener('click', () => { + currentDate.setMonth(currentDate.getMonth() - 1); + updateMonthDisplay(); + selectedDate = null; + selectedDateData = null; + renderCalendar(); + renderDayInfo(); + }); + + document.getElementById('nextMonth').addEventListener('click', () => { + currentDate.setMonth(currentDate.getMonth() + 1); + updateMonthDisplay(); + selectedDate = null; + selectedDateData = null; + renderCalendar(); + renderDayInfo(); + }); + + // 오늘 날짜로 이동 버튼 추가 + document.getElementById('goToday')?.addEventListener('click', () => { + const today = new Date(); + currentDate = new Date(today); + updateMonthDisplay(); + renderCalendar(); + + // 오늘 날짜 자동 선택 + const todayStr = formatDate(today); + selectedDate = todayStr; + loadDayData(todayStr); + }); +} + +// 전역 함수로 노출 +window.toggleReview = toggleReview; +window.refreshCurrentDay = refreshCurrentDay; +window.editWorkItem = editWorkItem; +window.deleteWorkItem = deleteWorkItem; +window.deleteWorkerAllWorks = deleteWorkerAllWorks; +window.closeEditModal = closeEditModal; +window.saveEditedWork = saveEditedWork; + +// 초기화 +async function init() { + try { + const token = localStorage.getItem('token'); + if (!token || token === 'undefined') { + showMessage('로그인이 필요합니다.', 'error'); + setTimeout(() => { + window.location.href = '/'; + }, 2000); + return; + } + + updateMonthDisplay(); + setupEventListeners(); + renderCalendar(); + renderDayInfo(); + + // 기본 데이터 미리 로드 + await loadBasicData(); + + console.log('✅ 검토 페이지 초기화 완료 (통합 API 설정 적용)'); + + } catch (error) { + console.error('초기화 오류:', error); + showMessage('초기화 중 오류가 발생했습니다.', 'error'); + } +} + +// 페이지 로드 시 초기화 +document.addEventListener('DOMContentLoaded', init); \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/js/worker-individual-report.js b/deploy/tkfb-package/web-ui/js/worker-individual-report.js new file mode 100644 index 0000000..d40bd26 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/worker-individual-report.js @@ -0,0 +1,509 @@ +// worker-individual-report.js - 작업자별 개별 보고서 관리 + +// 전역 변수 +let currentWorkerId = null; +let currentWorkerName = ''; +let selectedDate = ''; +let currentUser = null; +let workTypes = []; +let workStatusTypes = []; +let errorTypes = []; +let projects = []; +let existingWork = []; + +// URL 파라미터에서 정보 추출 +function getUrlParams() { + const urlParams = new URLSearchParams(window.location.search); + return { + worker_id: urlParams.get('worker_id'), + worker_name: decodeURIComponent(urlParams.get('worker_name') || ''), + date: urlParams.get('date') || new Date().toISOString().split('T')[0] + }; +} + +// 현재 로그인한 사용자 정보 가져오기 +function getCurrentUser() { + try { + const token = localStorage.getItem('token'); + if (!token) return null; + + const payloadBase64 = token.split('.')[1]; + if (payloadBase64) { + const payload = JSON.parse(atob(payloadBase64)); + return payload; + } + } catch (error) { + console.log('토큰에서 사용자 정보 추출 실패:', error); + } + + try { + const userInfo = localStorage.getItem('user'); + if (userInfo) { + return JSON.parse(userInfo); + } + } catch (error) { + console.log('localStorage에서 사용자 정보 파싱 실패:', error); + } + return null; +} + +// 메시지 표시 함수 +function showMessage(msg, type = 'info') { + const container = document.getElementById('message-container'); + if (container) { + container.innerHTML = `
${msg}
`; + setTimeout(() => { + container.innerHTML = ''; + }, 5000); + } +} + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', async () => { + // API 함수가 로드될 때까지 기다림 + let retryCount = 0; + const maxRetries = 50; + + while (!window.apiCall && retryCount < maxRetries) { + await new Promise(resolve => setTimeout(resolve, 100)); + retryCount++; + } + + if (!window.apiCall) { + console.error('❌ API 함수를 로드할 수 없습니다.'); + showMessage('시스템을 초기화할 수 없습니다. 페이지를 새로고침해주세요.', 'error'); + return; + } + + try { + await initializePage(); + } catch (error) { + console.error('페이지 초기화 오류:', error); + showMessage('페이지를 불러오는 중 오류가 발생했습니다.', 'error'); + } +}); + +async function initializePage() { + console.log('🚀 개별 작업 보고서 페이지 초기화 시작'); + + // URL 파라미터 추출 + const params = getUrlParams(); + currentWorkerId = parseInt(params.worker_id); + currentWorkerName = params.worker_name; + selectedDate = params.date; + + // 사용자 정보 설정 + currentUser = getCurrentUser(); + + if (!currentWorkerId || !currentWorkerName) { + showMessage('잘못된 접근입니다. 작업자 정보가 없습니다.', 'error'); + setTimeout(() => { + window.history.back(); + }, 2000); + return; + } + + // 페이지 제목 설정 + updatePageHeader(); + + // 이벤트 리스너 설정 + setupEventListeners(); + + // 초기 데이터 로드 + await loadInitialData(); + + console.log('✅ 개별 작업 보고서 페이지 초기화 완료'); +} + +function updatePageHeader() { + document.getElementById('pageTitle').textContent = `👤 ${currentWorkerName} 작업 보고서`; + document.getElementById('pageSubtitle').textContent = `${selectedDate} 작업 내용을 관리합니다.`; + + // 작업자 정보 카드 업데이트 + document.getElementById('workerInitial').textContent = currentWorkerName.charAt(0); + document.getElementById('workerName').textContent = currentWorkerName; + document.getElementById('selectedDate').textContent = selectedDate; +} + +function setupEventListeners() { + // 새 작업 추가 버튼 + document.getElementById('addNewWorkBtn').addEventListener('click', showNewWorkForm); + document.getElementById('cancelNewWorkBtn').addEventListener('click', hideNewWorkForm); + document.getElementById('saveNewWorkBtn').addEventListener('click', saveNewWork); + + // 업무 상태 변경 시 에러 유형 섹션 토글 + document.getElementById('newWorkStatusSelect').addEventListener('change', toggleErrorTypeSection); + + // 빠른 시간 버튼 + document.querySelectorAll('.quick-time-btn').forEach(btn => { + btn.addEventListener('click', (e) => { + document.getElementById('newWorkHours').value = e.target.dataset.hours; + }); + }); + + // 휴가 처리 버튼들 + document.querySelectorAll('.vacation-process-btn').forEach(btn => { + btn.addEventListener('click', (e) => { + const vacationType = e.target.dataset.type; + handleVacationProcess(vacationType); + }); + }); +} + +async function loadInitialData() { + try { + showMessage('데이터를 불러오는 중...', 'loading'); + + // 병렬로 데이터 로드 + await Promise.all([ + loadWorkerInfo(), + loadExistingWork(), + loadProjects(), + loadWorkTypes(), + loadWorkStatusTypes(), + loadErrorTypes() + ]); + + // UI 업데이트 + updateWorkerSummary(); + renderExistingWork(); + populateDropdowns(); + + showMessage('데이터 로드 완료', 'success'); + + } catch (error) { + console.error('초기 데이터 로드 실패:', error); + showMessage('데이터 로드 중 오류가 발생했습니다: ' + error.message, 'error'); + } +} + +async function loadWorkerInfo() { + try { + const response = await window.apiCall(`/workers/${currentWorkerId}`); + const worker = response.data || response; + document.getElementById('workerJob').textContent = worker.job_type || '작업자'; + } catch (error) { + console.error('작업자 정보 로드 오류:', error); + } +} + +async function loadExistingWork() { + try { + const response = await window.apiCall(`/daily-work-reports?date=${selectedDate}&worker_id=${currentWorkerId}`); + existingWork = Array.isArray(response) ? response : (response.data || []); + console.log(`✅ 기존 작업 ${existingWork.length}건 로드 완료`); + } catch (error) { + console.error('기존 작업 로드 오류:', error); + existingWork = []; + } +} + +async function loadProjects() { + try { + const response = await window.apiCall(`/projects/active/list`); + projects = Array.isArray(response) ? response : (response.data || []); + } catch (error) { + console.error('프로젝트 로드 오류:', error); + projects = []; + } +} + +async function loadWorkTypes() { + try { + const response = await window.apiCall(`/daily-work-reports/work-types`); + workTypes = Array.isArray(response) ? response : (response.data || []); + } catch (error) { + console.error('작업 유형 로드 오류:', error); + workTypes = []; + } +} + +async function loadWorkStatusTypes() { + try { + const response = await window.apiCall(`/daily-work-reports/work-status-types`); + workStatusTypes = Array.isArray(response) ? response : (response.data || []); + } catch (error) { + console.error('작업 상태 유형 로드 오류:', error); + workStatusTypes = []; + } +} + +async function loadErrorTypes() { + try { + const response = await window.apiCall(`/daily-work-reports/error-types`); + errorTypes = Array.isArray(response) ? response : (response.data || []); + } catch (error) { + console.error('에러 유형 로드 오류:', error); + errorTypes = []; + } +} + +function updateWorkerSummary() { + const totalHours = existingWork.reduce((sum, work) => sum + parseFloat(work.work_hours || 0), 0); + const workCount = existingWork.length; + + document.getElementById('totalHours').textContent = `${totalHours.toFixed(1)}h`; + document.getElementById('workCount').textContent = `${workCount}건`; + + // 12시간 초과 경고 + if (totalHours > 12) { + document.getElementById('totalHours').classList.add('warning'); + showMessage(`⚠️ 총 작업시간이 ${totalHours.toFixed(1)}시간으로 12시간을 초과했습니다.`, 'warning'); + } +} + +function renderExistingWork() { + const container = document.getElementById('existingWorkList'); + + if (existingWork.length === 0) { + container.innerHTML = ` +
+
📭
+

등록된 작업이 없습니다

+

${selectedDate}에 ${currentWorkerName}님의 작업이 등록되지 않았습니다.

+
+ `; + return; + } + + container.innerHTML = existingWork.map(work => ` +
+
+
+

${work.project_name || '미지정 프로젝트'}

+

${work.work_type_name || '미지정 작업'}

+
+
+ + ${work.work_status_name || '정상'} + + ${work.work_hours}h +
+
+ ${work.work_status_id === 2 && work.error_type_name ? ` +
+ 오류: + ${work.error_type_name} +
+ ` : ''} +
+ + +
+
+ `).join(''); +} + +function populateDropdowns() { + // 프로젝트 드롭다운 + const projectSelect = document.getElementById('newProjectSelect'); + projectSelect.innerHTML = ''; + projects.forEach(project => { + const option = document.createElement('option'); + option.value = project.project_id; + option.textContent = project.project_name; + projectSelect.appendChild(option); + }); + + // 작업 유형 드롭다운 + const workTypeSelect = document.getElementById('newWorkTypeSelect'); + workTypeSelect.innerHTML = ''; + workTypes.forEach(type => { + const option = document.createElement('option'); + option.value = type.id; + option.textContent = type.name; + workTypeSelect.appendChild(option); + }); + + // 작업 상태 드롭다운 + const workStatusSelect = document.getElementById('newWorkStatusSelect'); + workStatusSelect.innerHTML = ''; + workStatusTypes.forEach(status => { + const option = document.createElement('option'); + option.value = status.id; + option.textContent = status.name; + workStatusSelect.appendChild(option); + }); + + // 에러 유형 드롭다운 + const errorTypeSelect = document.getElementById('newErrorTypeSelect'); + errorTypeSelect.innerHTML = ''; + errorTypes.forEach(error => { + const option = document.createElement('option'); + option.value = error.id; + option.textContent = error.name; + errorTypeSelect.appendChild(option); + }); +} + +function showNewWorkForm() { + document.getElementById('newWorkSection').style.display = 'block'; + document.getElementById('addNewWorkBtn').style.display = 'none'; +} + +function hideNewWorkForm() { + document.getElementById('newWorkSection').style.display = 'none'; + document.getElementById('addNewWorkBtn').style.display = 'block'; + resetNewWorkForm(); +} + +function resetNewWorkForm() { + document.getElementById('newProjectSelect').value = ''; + document.getElementById('newWorkTypeSelect').value = ''; + document.getElementById('newWorkStatusSelect').value = ''; + document.getElementById('newErrorTypeSelect').value = ''; + document.getElementById('newWorkHours').value = '1.00'; + document.getElementById('newErrorTypeSection').classList.remove('visible'); +} + +function toggleErrorTypeSection() { + const workStatusSelect = document.getElementById('newWorkStatusSelect'); + const errorSection = document.getElementById('newErrorTypeSection'); + const errorTypeSelect = document.getElementById('newErrorTypeSelect'); + + if (workStatusSelect.value === '2') { // 에러 상태 + errorSection.classList.add('visible'); + errorTypeSelect.setAttribute('required', 'true'); + } else { + errorSection.classList.remove('visible'); + errorTypeSelect.removeAttribute('required'); + errorTypeSelect.value = ''; + } +} + +async function saveNewWork() { + try { + const projectId = document.getElementById('newProjectSelect').value; + const workTypeId = document.getElementById('newWorkTypeSelect').value; + const workStatusId = document.getElementById('newWorkStatusSelect').value; + const errorTypeId = document.getElementById('newErrorTypeSelect').value; + const workHours = document.getElementById('newWorkHours').value; + + // 유효성 검사 + if (!projectId || !workTypeId || !workStatusId || !workHours) { + showMessage('모든 필수 필드를 입력해주세요.', 'error'); + return; + } + + if (workStatusId === '2' && !errorTypeId) { + showMessage('에러 상태일 때는 에러 유형을 선택해야 합니다.', 'error'); + return; + } + + showMessage('작업을 저장하는 중...', 'loading'); + + const workData = { + report_date: selectedDate, + worker_id: currentWorkerId, + project_id: parseInt(projectId), + work_type_id: parseInt(workTypeId), + work_status_id: parseInt(workStatusId), + error_type_id: workStatusId === '2' ? parseInt(errorTypeId) : null, + work_hours: parseFloat(workHours), + created_by: currentUser?.user_id || 1 + }; + + const response = await window.apiCall(`/daily-work-reports`, 'POST', workData); + + showMessage('작업이 성공적으로 저장되었습니다.', 'success'); + + // 데이터 새로고침 + await loadExistingWork(); + updateWorkerSummary(); + renderExistingWork(); + hideNewWorkForm(); + + } catch (error) { + console.error('작업 저장 오류:', error); + showMessage(`작업 저장 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +async function editWork(workId) { + // TODO: 작업 수정 모달 또는 인라인 편집 구현 + console.log(`작업 ${workId} 수정`); + showMessage('작업 수정 기능은 곧 구현될 예정입니다.', 'info'); +} + +async function deleteWork(workId) { + if (!confirm('이 작업을 삭제하시겠습니까?')) { + return; + } + + try { + showMessage('작업을 삭제하는 중...', 'loading'); + + await window.apiCall(`/daily-work-reports/${workId}`, { + method: 'DELETE' + }); + + showMessage('작업이 성공적으로 삭제되었습니다.', 'success'); + + // 데이터 새로고침 + await loadExistingWork(); + updateWorkerSummary(); + renderExistingWork(); + + } catch (error) { + console.error('작업 삭제 오류:', error); + showMessage(`작업 삭제 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +async function handleVacationProcess(vacationType) { + const vacationNames = { + 'full': '연차', + 'half-half': '반반차', + 'half': '반차' + }; + + const vacationHours = { + 'full': 8, + 'half-half': 6, + 'half': 4 + }; + + if (!confirm(`${vacationNames[vacationType]} 처리하시겠습니까?\n(${vacationHours[vacationType]}시간으로 자동 입력됩니다)`)) { + return; + } + + try { + showMessage(`${vacationNames[vacationType]} 처리 중...`, 'loading'); + + // 휴가용 작업 보고서 생성 + const vacationWork = { + report_date: selectedDate, + worker_id: currentWorkerId, + project_id: 1, // 기본 프로젝트 (휴가용) + work_type_id: 999, // 휴가 전용 작업 유형 (DB에 추가 필요) + work_status_id: 1, // 정상 상태 + error_type_id: null, + work_hours: vacationHours[vacationType], + created_by: currentUser?.user_id || 1 + }; + + const response = await window.apiCall(`/daily-work-reports`, { + method: 'POST', + body: JSON.stringify(vacationWork) + }); + + showMessage(`${vacationNames[vacationType]} 처리가 완료되었습니다.`, 'success'); + + // 데이터 새로고침 + await loadExistingWork(); + updateWorkerSummary(); + renderExistingWork(); + + } catch (error) { + console.error('휴가 처리 오류:', error); + showMessage(`휴가 처리 중 오류가 발생했습니다: ${error.message}`, 'error'); + } +} + +// 전역 함수로 등록 +window.editWork = editWork; +window.deleteWork = deleteWork; diff --git a/deploy/tkfb-package/web-ui/js/worker-management.js b/deploy/tkfb-package/web-ui/js/worker-management.js new file mode 100644 index 0000000..8908fdb --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/worker-management.js @@ -0,0 +1,641 @@ +// 작업자 관리 페이지 JavaScript (부서 기반) + +// 전역 변수 +let departments = []; +let currentDepartmentId = null; +let allWorkers = []; +let filteredWorkers = []; +let currentEditingWorker = null; + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', async () => { + console.log('👥 작업자 관리 페이지 초기화 시작'); + await waitForApiConfig(); + await loadDepartments(); +}); + +// API 설정 로드 대기 +async function waitForApiConfig() { + let retryCount = 0; + while (!window.apiCall && retryCount < 50) { + await new Promise(resolve => setTimeout(resolve, 100)); + retryCount++; + } + if (!window.apiCall) { + console.error('API 설정 로드 실패'); + } +} + +// ============================================ +// 부서 관련 함수 +// ============================================ + +// 부서 목록 로드 +async function loadDepartments() { + try { + const response = await window.apiCall('/departments'); + const result = response; + + if (result && result.success) { + departments = result.data; + renderDepartmentList(); + updateParentDepartmentSelect(); + console.log('✅ 부서 목록 로드 완료:', departments.length + '개'); + } else if (Array.isArray(result)) { + departments = result; + renderDepartmentList(); + updateParentDepartmentSelect(); + } + } catch (error) { + console.error('부서 목록 로드 실패:', error); + showToast('부서 목록을 불러오는데 실패했습니다.', 'error'); + } +} + +// 부서 목록 렌더링 +function renderDepartmentList() { + const container = document.getElementById('departmentList'); + if (!container) return; + + if (departments.length === 0) { + container.innerHTML = ` +
+ 등록된 부서가 없습니다.
+ +
+ `; + return; + } + + container.innerHTML = departments.map(dept => { + const safeDeptId = parseInt(dept.department_id) || 0; + const safeDeptName = escapeHtml(dept.department_name || '-'); + const workerCount = parseInt(dept.worker_count) || 0; + return ` +
+
+ ${safeDeptName} + ${workerCount}명 +
+
+ + +
+
+ `; + }).join(''); +} + +// 부서 선택 +async function selectDepartment(departmentId) { + currentDepartmentId = departmentId; + renderDepartmentList(); + + const dept = departments.find(d => d.department_id === departmentId); + document.getElementById('workerListTitle').textContent = `${dept.department_name} 작업자`; + document.getElementById('addWorkerBtn').style.display = 'inline-flex'; + document.getElementById('workerToolbar').style.display = 'flex'; + + await loadWorkersByDepartment(departmentId); +} + +// 상위 부서 선택 옵션 업데이트 +function updateParentDepartmentSelect() { + const select = document.getElementById('parentDepartment'); + if (!select) return; + + const currentId = document.getElementById('departmentId')?.value; + + select.innerHTML = '' + + departments + .filter(d => d.department_id !== parseInt(currentId)) + .map(d => { + const safeDeptId = parseInt(d.department_id) || 0; + return ``; + }) + .join(''); +} + +// 부서 모달 열기 +function openDepartmentModal(departmentId = null) { + const modal = document.getElementById('departmentModal'); + const title = document.getElementById('departmentModalTitle'); + const form = document.getElementById('departmentForm'); + const deleteBtn = document.getElementById('deleteDeptBtn'); + + updateParentDepartmentSelect(); + + if (departmentId) { + const dept = departments.find(d => d.department_id === departmentId); + title.textContent = '부서 수정'; + deleteBtn.style.display = 'inline-flex'; + document.getElementById('departmentId').value = dept.department_id; + document.getElementById('departmentName').value = dept.department_name; + document.getElementById('parentDepartment').value = dept.parent_id || ''; + document.getElementById('departmentDescription').value = dept.description || ''; + document.getElementById('displayOrder').value = dept.display_order || 0; + document.getElementById('isActiveDept').checked = dept.is_active !== 0 && dept.is_active !== false; + } else { + title.textContent = '새 부서 등록'; + deleteBtn.style.display = 'none'; + form.reset(); + document.getElementById('departmentId').value = ''; + document.getElementById('isActiveDept').checked = true; + } + + modal.style.display = 'flex'; + document.body.style.overflow = 'hidden'; + + setTimeout(() => { + document.getElementById('departmentName').focus(); + }, 100); +} + +// 부서 모달 닫기 +function closeDepartmentModal() { + const modal = document.getElementById('departmentModal'); + if (modal) { + modal.style.display = 'none'; + document.body.style.overflow = ''; + } +} + +// 부서 저장 +async function saveDepartment() { + const departmentId = document.getElementById('departmentId').value; + const data = { + department_name: document.getElementById('departmentName').value.trim(), + parent_id: document.getElementById('parentDepartment').value || null, + description: document.getElementById('departmentDescription').value.trim(), + display_order: parseInt(document.getElementById('displayOrder').value) || 0, + is_active: document.getElementById('isActiveDept').checked + }; + + if (!data.department_name) { + showToast('부서명은 필수 입력 항목입니다.', 'error'); + return; + } + + try { + const url = departmentId ? `/departments/${departmentId}` : '/departments'; + const method = departmentId ? 'PUT' : 'POST'; + + const response = await window.apiCall(url, method, data); + + if (response && response.success) { + showToast(response.message || '부서가 저장되었습니다.', 'success'); + closeDepartmentModal(); + await loadDepartments(); + } else { + throw new Error(response?.error || '저장 실패'); + } + } catch (error) { + console.error('부서 저장 실패:', error); + showToast('부서 저장에 실패했습니다.', 'error'); + } +} + +// 부서 수정 +function editDepartment(departmentId) { + openDepartmentModal(departmentId); +} + +// 부서 삭제 확인 +function confirmDeleteDepartment(departmentId) { + const dept = departments.find(d => d.department_id === departmentId); + if (!dept) return; + + const workerCount = dept.worker_count || 0; + let message = `"${dept.department_name}" 부서를 삭제하시겠습니까?`; + + if (workerCount > 0) { + message += `\n\n⚠️ 이 부서에는 ${workerCount}명의 작업자가 있습니다.\n삭제하면 작업자들의 부서 정보가 제거됩니다.`; + } + + if (confirm(message)) { + deleteDepartment(departmentId); + } +} + +// 부서 삭제 +async function deleteDepartment(departmentId = null) { + const id = departmentId || document.getElementById('departmentId').value; + if (!id) return; + + try { + const response = await window.apiCall(`/departments/${id}`, 'DELETE'); + + if (response && response.success) { + showToast('부서가 삭제되었습니다.', 'success'); + closeDepartmentModal(); + + if (currentDepartmentId === parseInt(id)) { + currentDepartmentId = null; + document.getElementById('workerListTitle').textContent = '부서를 선택하세요'; + document.getElementById('addWorkerBtn').style.display = 'none'; + document.getElementById('workerToolbar').style.display = 'none'; + document.getElementById('workerList').innerHTML = ` +
+

부서를 선택해주세요

+

왼쪽에서 부서를 선택하면 해당 부서의 작업자가 표시됩니다.

+
+ `; + } + + await loadDepartments(); + } else { + throw new Error(response?.error || '삭제 실패'); + } + } catch (error) { + console.error('부서 삭제 실패:', error); + showToast(error.message || '부서 삭제에 실패했습니다.', 'error'); + } +} + +// ============================================ +// 작업자 관련 함수 +// ============================================ + +// 부서별 작업자 로드 +async function loadWorkersByDepartment(departmentId) { + try { + const response = await window.apiCall(`/departments/${departmentId}/workers`); + + if (response && response.success) { + allWorkers = response.data; + filteredWorkers = [...allWorkers]; + renderWorkerList(); + console.log(`✅ ${departmentId} 부서 작업자 로드: ${allWorkers.length}명`); + } else if (Array.isArray(response)) { + allWorkers = response; + filteredWorkers = [...allWorkers]; + renderWorkerList(); + } + } catch (error) { + console.error('작업자 목록 로드 실패:', error); + showToast('작업자 목록을 불러오는데 실패했습니다.', 'error'); + } +} + +// 작업자 목록 렌더링 +function renderWorkerList() { + const container = document.getElementById('workerList'); + if (!container) return; + + if (filteredWorkers.length === 0) { + container.innerHTML = ` +
+

작업자가 없습니다

+

"+ 작업자 추가" 버튼을 눌러 작업자를 등록하세요.

+
+ `; + return; + } + + const tableHtml = ` + + + + + + + + + + + + + ${filteredWorkers.map(worker => { + const jobTypeMap = { + 'worker': '작업자', + 'leader': '그룹장', + 'admin': '관리자' + }; + const safeJobType = ['worker', 'leader', 'admin'].includes(worker.job_type) ? worker.job_type : ''; + const jobType = jobTypeMap[safeJobType] || escapeHtml(worker.job_type || '-'); + + const isInactive = worker.status === 'inactive'; + const isResigned = worker.employment_status === 'resigned'; + const hasAccount = worker.user_id !== null && worker.user_id !== undefined; + + let statusClass = 'active'; + let statusText = '현장직'; + if (isResigned) { + statusClass = 'resigned'; + statusText = '퇴사'; + } else if (isInactive) { + statusClass = 'inactive'; + statusText = '사무직'; + } + + const safeWorkerId = parseInt(worker.worker_id) || 0; + const safeWorkerName = escapeHtml(worker.worker_name || ''); + const firstChar = safeWorkerName ? safeWorkerName.charAt(0) : '?'; + + return ` + + + + + + + + + `; + }).join('')} + +
이름직책상태입사일계정관리
+
+
${firstChar}
+ ${safeWorkerName} +
+
${jobType}${statusText}${worker.join_date ? formatDate(worker.join_date) : '-'} + + +
+ + +
+
+ `; + + container.innerHTML = tableHtml; +} + +// 작업자 필터링 +function filterWorkers() { + const searchTerm = document.getElementById('workerSearch')?.value.toLowerCase().trim() || ''; + const statusValue = document.getElementById('statusFilter')?.value || ''; + + filteredWorkers = allWorkers.filter(worker => { + // 검색 필터 + const matchesSearch = !searchTerm || + worker.worker_name.toLowerCase().includes(searchTerm) || + (worker.job_type && worker.job_type.toLowerCase().includes(searchTerm)); + + // 상태 필터 + let matchesStatus = true; + if (statusValue === 'active') { + matchesStatus = worker.status !== 'inactive' && worker.employment_status !== 'resigned'; + } else if (statusValue === 'inactive') { + matchesStatus = worker.status === 'inactive'; + } else if (statusValue === 'resigned') { + matchesStatus = worker.employment_status === 'resigned'; + } + + return matchesSearch && matchesStatus; + }); + + renderWorkerList(); +} + +// 작업자 모달 열기 +function openWorkerModal(workerId = null) { + const modal = document.getElementById('workerModal'); + const title = document.getElementById('workerModalTitle'); + const deleteBtn = document.getElementById('deleteWorkerBtn'); + + if (!currentDepartmentId) { + showToast('먼저 부서를 선택해주세요.', 'error'); + return; + } + + if (workerId) { + const worker = allWorkers.find(w => w.worker_id === workerId); + if (!worker) { + showToast('작업자를 찾을 수 없습니다.', 'error'); + return; + } + + currentEditingWorker = worker; + title.textContent = '작업자 정보 수정'; + deleteBtn.style.display = 'inline-flex'; + + document.getElementById('workerId').value = worker.worker_id; + document.getElementById('workerName').value = worker.worker_name || ''; + document.getElementById('jobType').value = worker.job_type || 'worker'; + document.getElementById('joinDate').value = worker.join_date ? worker.join_date.split('T')[0] : ''; + document.getElementById('salary').value = worker.salary || ''; + document.getElementById('annualLeave').value = worker.annual_leave || 0; + document.getElementById('isActiveWorker').checked = worker.status !== 'inactive'; + document.getElementById('createAccount').checked = worker.user_id !== null && worker.user_id !== undefined; + document.getElementById('isResigned').checked = worker.employment_status === 'resigned'; + } else { + currentEditingWorker = null; + title.textContent = '새 작업자 등록'; + deleteBtn.style.display = 'none'; + + document.getElementById('workerForm').reset(); + document.getElementById('workerId').value = ''; + document.getElementById('isActiveWorker').checked = true; + document.getElementById('createAccount').checked = false; + document.getElementById('isResigned').checked = false; + } + + modal.style.display = 'flex'; + document.body.style.overflow = 'hidden'; + + setTimeout(() => { + document.getElementById('workerName').focus(); + }, 100); +} + +// 작업자 모달 닫기 +function closeWorkerModal() { + const modal = document.getElementById('workerModal'); + if (modal) { + modal.style.display = 'none'; + document.body.style.overflow = ''; + currentEditingWorker = null; + } +} + +// 작업자 편집 +function editWorker(workerId) { + openWorkerModal(workerId); +} + +// 작업자 저장 +async function saveWorker() { + const workerId = document.getElementById('workerId').value; + + const workerData = { + worker_name: document.getElementById('workerName').value.trim(), + job_type: document.getElementById('jobType').value || 'worker', + join_date: document.getElementById('joinDate').value || null, + salary: document.getElementById('salary').value || null, + annual_leave: document.getElementById('annualLeave').value || 0, + status: document.getElementById('isActiveWorker').checked ? 'active' : 'inactive', + employment_status: document.getElementById('isResigned').checked ? 'resigned' : 'employed', + create_account: document.getElementById('createAccount').checked, + department_id: currentDepartmentId + }; + + if (!workerData.worker_name) { + showToast('작업자명은 필수 입력 항목입니다.', 'error'); + return; + } + + try { + let response; + + if (workerId) { + response = await window.apiCall(`/workers/${workerId}`, 'PUT', workerData); + } else { + response = await window.apiCall('/workers', 'POST', workerData); + } + + if (response && (response.success || response.data)) { + const action = workerId ? '수정' : '등록'; + showToast(`작업자가 성공적으로 ${action}되었습니다.`, 'success'); + + closeWorkerModal(); + await loadDepartments(); + await loadWorkersByDepartment(currentDepartmentId); + } else { + throw new Error(response?.message || '저장에 실패했습니다.'); + } + } catch (error) { + console.error('작업자 저장 오류:', error); + showToast(error.message || '작업자 저장 중 오류가 발생했습니다.', 'error'); + } +} + +// 작업자 삭제 확인 +function confirmDeleteWorker(workerId) { + const worker = allWorkers.find(w => w.worker_id === workerId); + if (!worker) { + showToast('작업자를 찾을 수 없습니다.', 'error'); + return; + } + + const confirmMessage = `"${worker.worker_name}" 작업자를 삭제하시겠습니까?\n\n⚠️ 관련된 모든 데이터(작업보고서, 이슈 등)가 함께 삭제됩니다.`; + + if (confirm(confirmMessage)) { + deleteWorkerById(workerId); + } +} + +// 작업자 삭제 (모달에서) +function deleteWorker() { + if (currentEditingWorker) { + confirmDeleteWorker(currentEditingWorker.worker_id); + } +} + +// 작업자 삭제 실행 +async function deleteWorkerById(workerId) { + try { + const response = await window.apiCall(`/workers/${workerId}`, 'DELETE'); + + if (response && (response.success || response.message)) { + showToast('작업자가 삭제되었습니다.', 'success'); + + closeWorkerModal(); + await loadDepartments(); + await loadWorkersByDepartment(currentDepartmentId); + } else { + throw new Error(response?.error || '삭제 실패'); + } + } catch (error) { + console.error('작업자 삭제 오류:', error); + showToast(error.message || '작업자 삭제에 실패했습니다.', 'error'); + } +} + +// ============================================ +// 유틸리티 함수 +// ============================================ + +// 날짜 포맷팅 +function formatDate(dateString) { + if (!dateString) return ''; + const date = new Date(dateString); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit' + }); +} + +// 토스트 메시지 표시 +function showToast(message, type = 'info') { + const existingToast = document.querySelector('.toast'); + if (existingToast) { + existingToast.remove(); + } + + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + toast.textContent = message; + + Object.assign(toast.style, { + position: 'fixed', + top: '20px', + right: '20px', + padding: '12px 24px', + borderRadius: '8px', + color: 'white', + fontWeight: '500', + zIndex: '10000', + transform: 'translateX(100%)', + transition: 'transform 0.3s ease' + }); + + const colors = { + success: '#10b981', + error: '#ef4444', + warning: '#f59e0b', + info: '#3b82f6' + }; + toast.style.backgroundColor = colors[type] || colors.info; + + document.body.appendChild(toast); + + setTimeout(() => { + toast.style.transform = 'translateX(0)'; + }, 100); + + setTimeout(() => { + toast.style.transform = 'translateX(100%)'; + setTimeout(() => { + if (toast.parentNode) { + toast.remove(); + } + }, 300); + }, 3000); +} + +// ============================================ +// 전역 함수 노출 +// ============================================ +window.openDepartmentModal = openDepartmentModal; +window.closeDepartmentModal = closeDepartmentModal; +window.saveDepartment = saveDepartment; +window.editDepartment = editDepartment; +window.deleteDepartment = deleteDepartment; +window.confirmDeleteDepartment = confirmDeleteDepartment; +window.selectDepartment = selectDepartment; + +window.openWorkerModal = openWorkerModal; +window.closeWorkerModal = closeWorkerModal; +window.saveWorker = saveWorker; +window.editWorker = editWorker; +window.deleteWorker = deleteWorker; +window.confirmDeleteWorker = confirmDeleteWorker; +window.filterWorkers = filterWorkers; diff --git a/deploy/tkfb-package/web-ui/js/workplace-layout-map.js b/deploy/tkfb-package/web-ui/js/workplace-layout-map.js new file mode 100644 index 0000000..35e0209 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/workplace-layout-map.js @@ -0,0 +1,494 @@ +// 작업장 레이아웃 지도 관리 + +// 전역 변수 +let layoutMapImage = null; +let mapRegions = []; +let canvas = null; +let ctx = null; +let isDrawing = false; +let startX = 0; +let startY = 0; +let currentRect = null; + +// ==================== 레이아웃 지도 모달 ==================== + +/** + * 레이아웃 지도 모달 열기 + */ +async function openLayoutMapModal() { + // window 객체에서 currentCategoryId 가져오기 + const currentCategoryId = window.currentCategoryId; + + if (!currentCategoryId) { + window.window.showToast('공장을 먼저 선택해주세요.', 'warning'); + return; + } + + const modal = document.getElementById('layoutMapModal'); + if (!modal) return; + + // 캔버스 초기화 + canvas = document.getElementById('regionCanvas'); + ctx = canvas.getContext('2d'); + + // 현재 카테고리의 레이아웃 이미지 및 영역 로드 + await loadLayoutMapData(); + + // 작업장 선택 옵션 업데이트 + updateWorkplaceSelect(); + + modal.style.display = 'flex'; + document.body.style.overflow = 'hidden'; +} + +/** + * 레이아웃 지도 모달 닫기 + */ +function closeLayoutMapModal() { + const modal = document.getElementById('layoutMapModal'); + if (modal) { + modal.style.display = 'none'; + document.body.style.overflow = ''; + } + + // 캔버스 이벤트 리스너 제거 + if (canvas) { + canvas.removeEventListener('mousedown', startDrawing); + canvas.removeEventListener('mousemove', draw); + canvas.removeEventListener('mouseup', stopDrawing); + } + + // 메인 페이지의 레이아웃 미리보기 업데이트 + const currentCategoryId = window.currentCategoryId; + const categories = window.categories; + + if (currentCategoryId && categories) { + const category = categories.find(c => c.category_id == currentCategoryId); + if (category && window.updateLayoutPreview) { + window.updateLayoutPreview(category); + } + } +} + +/** + * 레이아웃 지도 데이터 로드 + */ +async function loadLayoutMapData() { + try { + const currentCategoryId = window.currentCategoryId; + const categories = window.categories; + + // 현재 카테고리 정보 가져오기 + const category = categories.find(c => c.category_id == currentCategoryId); + if (!category) return; + + // 레이아웃 이미지 표시 + const currentImageDiv = document.getElementById('currentLayoutImage'); + if (category.layout_image) { + // 이미지 경로를 전체 URL로 변환 + const fullImageUrl = category.layout_image.startsWith('http') + ? category.layout_image + : `${window.API_BASE_URL || 'http://localhost:20005/api'}${category.layout_image}`.replace('/api/', '/'); + + currentImageDiv.innerHTML = ` + 현재 레이아웃 이미지 + `; + + // 캔버스에도 이미지 로드 + loadImageToCanvas(fullImageUrl); + } else { + currentImageDiv.innerHTML = '업로드된 이미지가 없습니다'; + } + + // 영역 데이터 로드 + const regionsResponse = await window.apiCall(`/workplaces/categories/${currentCategoryId}/map-regions`, 'GET'); + if (regionsResponse && regionsResponse.success) { + mapRegions = regionsResponse.data || []; + } else { + mapRegions = []; + } + + renderRegionList(); + } catch (error) { + console.error('레이아웃 지도 데이터 로딩 오류:', error); + window.window.showToast('레이아웃 지도 데이터를 불러오는데 실패했습니다.', 'error'); + } +} + +/** + * 이미지를 캔버스에 로드 + */ +function loadImageToCanvas(imagePath) { + const img = new Image(); + img.onload = function() { + // 캔버스 크기를 이미지 크기에 맞춤 (최대 800px) + const maxWidth = 800; + const scale = img.width > maxWidth ? maxWidth / img.width : 1; + + canvas.width = img.width * scale; + canvas.height = img.height * scale; + + // 이미지 그리기 + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + + layoutMapImage = img; + + // 기존 영역들 그리기 + drawExistingRegions(); + + // 캔버스 이벤트 리스너 등록 + setupCanvasEvents(); + }; + img.src = imagePath; +} + +/** + * 작업장 선택 옵션 업데이트 + */ +function updateWorkplaceSelect() { + const select = document.getElementById('regionWorkplaceSelect'); + if (!select) return; + + const currentCategoryId = window.currentCategoryId; + const workplaces = window.workplaces; + + // 현재 카테고리의 작업장만 필터링 + const categoryWorkplaces = workplaces.filter(w => w.category_id == currentCategoryId); + + let options = ''; + categoryWorkplaces.forEach(wp => { + // 이미 영역이 정의된 작업장은 표시 + const hasRegion = mapRegions.some(r => r.workplace_id === wp.workplace_id); + options += ``; + }); + + select.innerHTML = options; +} + +// ==================== 이미지 업로드 ==================== + +/** + * 이미지 미리보기 + */ +function previewLayoutImage(event) { + const file = event.target.files[0]; + if (!file) return; + + const reader = new FileReader(); + reader.onload = function(e) { + const currentImageDiv = document.getElementById('currentLayoutImage'); + currentImageDiv.innerHTML = ` + 미리보기 +

미리보기 (저장하려면 "이미지 업로드" 버튼을 클릭하세요)

+ `; + }; + reader.readAsDataURL(file); +} + +/** + * 레이아웃 이미지 업로드 + */ +async function uploadLayoutImage() { + const fileInput = document.getElementById('layoutImageFile'); + const file = fileInput.files[0]; + + if (!file) { + window.showToast('이미지 파일을 선택해주세요.', 'warning'); + return; + } + + const currentCategoryId = window.currentCategoryId; + + if (!currentCategoryId) { + window.showToast('공장을 먼저 선택해주세요.', 'error'); + return; + } + + try { + // FormData 생성 + const formData = new FormData(); + formData.append('image', file); + + // 업로드 요청 + const response = await fetch(`${window.API_BASE_URL || 'http://localhost:20005/api'}/workplaces/categories/${currentCategoryId}/layout-image`, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${localStorage.getItem('token')}` + }, + body: formData + }); + + const result = await response.json(); + + if (result.success) { + window.showToast('이미지가 성공적으로 업로드되었습니다.', 'success'); + + // 이미지 경로를 전체 URL로 변환 + const fullImageUrl = `${window.API_BASE_URL || 'http://localhost:20005/api'}${result.data.image_path}`.replace('/api/', '/'); + + // 이미지를 캔버스에 로드 + loadImageToCanvas(fullImageUrl); + + // 현재 이미지 미리보기도 업데이트 + const currentImageDiv = document.getElementById('currentLayoutImage'); + if (currentImageDiv) { + currentImageDiv.innerHTML = ` + 현재 레이아웃 이미지 + `; + } + + // 카테고리 데이터 새로고침 (workplace-management.js의 loadCategories 함수 호출) + if (window.loadCategories) { + await window.loadCategories(); + + // 메인 페이지 미리보기도 업데이트 + const currentCategoryId = window.currentCategoryId; + const categories = window.categories; + if (currentCategoryId && categories && window.updateLayoutPreview) { + const category = categories.find(c => c.category_id == currentCategoryId); + if (category) { + window.updateLayoutPreview(category); + } + } + } + } else { + throw new Error(result.message || '업로드 실패'); + } + } catch (error) { + console.error('이미지 업로드 오류:', error); + window.showToast(error.message || '이미지 업로드 중 오류가 발생했습니다.', 'error'); + } +} + +// ==================== 영역 그리기 ==================== + +/** + * 캔버스 이벤트 설정 + */ +function setupCanvasEvents() { + canvas.addEventListener('mousedown', startDrawing); + canvas.addEventListener('mousemove', draw); + canvas.addEventListener('mouseup', stopDrawing); + canvas.addEventListener('mouseleave', stopDrawing); +} + +/** + * 그리기 시작 + */ +function startDrawing(e) { + const rect = canvas.getBoundingClientRect(); + startX = e.clientX - rect.left; + startY = e.clientY - rect.top; + isDrawing = true; +} + +/** + * 그리기 + */ +function draw(e) { + if (!isDrawing) return; + + const rect = canvas.getBoundingClientRect(); + const currentX = e.clientX - rect.left; + const currentY = e.clientY - rect.top; + + // 캔버스 다시 그리기 + ctx.clearRect(0, 0, canvas.width, canvas.height); + if (layoutMapImage) { + ctx.drawImage(layoutMapImage, 0, 0, canvas.width, canvas.height); + } + + // 기존 영역들 그리기 + drawExistingRegions(); + + // 현재 그리는 사각형 + const width = currentX - startX; + const height = currentY - startY; + + ctx.strokeStyle = '#3b82f6'; + ctx.lineWidth = 3; + ctx.strokeRect(startX, startY, width, height); + + ctx.fillStyle = 'rgba(59, 130, 246, 0.2)'; + ctx.fillRect(startX, startY, width, height); + + currentRect = { startX, startY, endX: currentX, endY: currentY }; +} + +/** + * 그리기 종료 + */ +function stopDrawing() { + isDrawing = false; +} + +/** + * 기존 영역들 그리기 + */ +function drawExistingRegions() { + mapRegions.forEach(region => { + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + + ctx.strokeStyle = '#10b981'; + ctx.lineWidth = 2; + ctx.strokeRect(x1, y1, x2 - x1, y2 - y1); + + ctx.fillStyle = 'rgba(16, 185, 129, 0.15)'; + ctx.fillRect(x1, y1, x2 - x1, y2 - y1); + + // 작업장 이름 표시 + ctx.fillStyle = '#10b981'; + ctx.font = '14px sans-serif'; + ctx.fillText(region.workplace_name || '', x1 + 5, y1 + 20); + }); +} + +/** + * 현재 영역 지우기 + */ +function clearCurrentRegion() { + currentRect = null; + + // 캔버스 다시 그리기 + ctx.clearRect(0, 0, canvas.width, canvas.height); + if (layoutMapImage) { + ctx.drawImage(layoutMapImage, 0, 0, canvas.width, canvas.height); + } + drawExistingRegions(); +} + +/** + * 영역 저장 + */ +async function saveRegion() { + const workplaceId = document.getElementById('regionWorkplaceSelect').value; + + if (!workplaceId) { + window.showToast('작업장을 선택해주세요.', 'warning'); + return; + } + + if (!currentRect) { + window.showToast('영역을 그려주세요.', 'warning'); + return; + } + + const currentCategoryId = window.currentCategoryId; + + try { + // 비율로 변환 (0~100%) + const xStart = Math.min(currentRect.startX, currentRect.endX) / canvas.width * 100; + const yStart = Math.min(currentRect.startY, currentRect.endY) / canvas.height * 100; + const xEnd = Math.max(currentRect.startX, currentRect.endX) / canvas.width * 100; + const yEnd = Math.max(currentRect.startY, currentRect.endY) / canvas.height * 100; + + // 기존 영역이 있는지 확인 + const existingRegion = mapRegions.find(r => r.workplace_id == workplaceId); + + const regionData = { + workplace_id: parseInt(workplaceId), + category_id: parseInt(currentCategoryId), + x_start: xStart.toFixed(2), + y_start: yStart.toFixed(2), + x_end: xEnd.toFixed(2), + y_end: yEnd.toFixed(2), + shape: 'rect' + }; + + let response; + if (existingRegion) { + // 수정 + response = await window.apiCall(`/workplaces/map-regions/${existingRegion.region_id}`, 'PUT', regionData); + } else { + // 신규 등록 + response = await window.apiCall('/workplaces/map-regions', 'POST', regionData); + } + + if (response && response.success) { + window.showToast('영역이 성공적으로 저장되었습니다.', 'success'); + + // 데이터 새로고침 + await loadLayoutMapData(); + + // 현재 그림 초기화 + clearCurrentRegion(); + + // 작업장 선택 초기화 + document.getElementById('regionWorkplaceSelect').value = ''; + } else { + throw new Error(response?.message || '저장 실패'); + } + } catch (error) { + console.error('영역 저장 오류:', error); + window.showToast(error.message || '영역 저장 중 오류가 발생했습니다.', 'error'); + } +} + +/** + * 영역 목록 렌더링 + */ +function renderRegionList() { + const listDiv = document.getElementById('regionList'); + if (!listDiv) return; + + if (mapRegions.length === 0) { + listDiv.innerHTML = '

정의된 영역이 없습니다

'; + return; + } + + let listHtml = '
'; + + mapRegions.forEach(region => { + listHtml += ` +
+
+ ${region.workplace_name} + + (${region.x_start}%, ${region.y_start}%) ~ (${region.x_end}%, ${region.y_end}%) + +
+ +
+ `; + }); + + listHtml += '
'; + listDiv.innerHTML = listHtml; +} + +/** + * 영역 삭제 + */ +async function deleteRegion(regionId) { + if (!confirm('이 영역을 삭제하시겠습니까?')) { + return; + } + + try { + const response = await window.apiCall(`/workplaces/map-regions/${regionId}`, 'DELETE'); + + if (response && response.success) { + window.showToast('영역이 삭제되었습니다.', 'success'); + await loadLayoutMapData(); + } else { + throw new Error(response?.message || '삭제 실패'); + } + } catch (error) { + console.error('영역 삭제 오류:', error); + window.showToast(error.message || '영역 삭제 중 오류가 발생했습니다.', 'error'); + } +} + +// 전역 함수로 노출 +window.openLayoutMapModal = openLayoutMapModal; +window.closeLayoutMapModal = closeLayoutMapModal; +window.previewLayoutImage = previewLayoutImage; +window.uploadLayoutImage = uploadLayoutImage; +window.clearCurrentRegion = clearCurrentRegion; +window.saveRegion = saveRegion; +window.deleteRegion = deleteRegion; diff --git a/deploy/tkfb-package/web-ui/js/workplace-management.js b/deploy/tkfb-package/web-ui/js/workplace-management.js new file mode 100644 index 0000000..2fbcff4 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/workplace-management.js @@ -0,0 +1,2254 @@ +// 작업장 관리 페이지 JavaScript +// +// 참고: 이 파일은 점진적 마이그레이션 중입니다. +// 새로운 모듈 시스템: /js/workplace-management/ +// - state.js: 전역 상태 관리 +// - utils.js: 유틸리티 함수 +// - api.js: API 클라이언트 +// - index.js: 메인 컨트롤러 + +// 전역 변수 (모듈 시스템이 없을 때만 사용) +let categories = window.WorkplaceState?.categories || []; +let workplaces = window.WorkplaceState?.workplaces || []; +let currentCategoryId = window.WorkplaceState?.currentCategoryId || ''; +let currentEditingCategory = null; +let currentEditingWorkplace = null; + +// 페이지 초기화 (모듈 시스템이 없을 때만) +document.addEventListener('DOMContentLoaded', function() { + // 모듈 시스템이 이미 로드되어 있으면 초기화 건너뜀 + if (window.WorkplaceController) { + console.log('[workplace-management.js] 모듈 시스템 감지 - 기존 초기화 건너뜀'); + return; + } + + console.log('🏗️ 작업장 관리 페이지 초기화 시작 (레거시)'); + loadAllData(); +}); + +// 모든 데이터 로드 +async function loadAllData() { + // 모듈 시스템이 있으면 위임 + if (window.WorkplaceController) { + return window.WorkplaceController.loadAllData(); + } + + try { + await Promise.all([ + loadCategories(), + loadWorkplaces() + ]); + + renderCategoryTabs(); + renderWorkplaces(); + updateStatistics(); + } catch (error) { + console.error('데이터 로딩 오류:', error); + showToast('데이터를 불러오는데 실패했습니다.', 'error'); + } +} + +// ==================== 카테고리(공장) 관련 ==================== + +// 카테고리 목록 로드 +async function loadCategories() { + // 모듈 시스템이 있으면 위임 + if (window.WorkplaceAPI) { + const result = await window.WorkplaceAPI.loadCategories(); + categories = window.WorkplaceState?.categories || result; + return result; + } + + try { + const response = await window.apiCall('/workplaces/categories', 'GET'); + + let categoryData = []; + if (response && response.success && Array.isArray(response.data)) { + categoryData = response.data; + } else if (Array.isArray(response)) { + categoryData = response; + } + + categories = categoryData; + console.log(`✅ 카테고리 ${categories.length}개 로드 완료`); + } catch (error) { + console.error('카테고리 로딩 오류:', error); + categories = []; + } +} + +// 카테고리 탭 렌더링 +function renderCategoryTabs() { + const tabsContainer = document.getElementById('categoryTabs'); + if (!tabsContainer) return; + + // 전체 탭은 항상 표시 + let tabsHtml = ` + + `; + + // 각 카테고리 탭 추가 + categories.forEach(category => { + const count = workplaces.filter(w => w.category_id === category.category_id).length; + const isActive = currentCategoryId === category.category_id; + + tabsHtml += ` + + `; + }); + + tabsContainer.innerHTML = tabsHtml; +} + +// 카테고리 전환 +function switchCategory(categoryId) { + currentCategoryId = categoryId === '' ? '' : categoryId; + renderCategoryTabs(); + renderWorkplaces(); + + // 레이아웃 지도 섹션 표시/숨김 + const layoutMapSection = document.getElementById('layoutMapSection'); + const selectedCategoryName = document.getElementById('selectedCategoryName'); + + if (currentCategoryId && layoutMapSection) { + const category = categories.find(c => c.category_id == currentCategoryId); + if (category) { + layoutMapSection.style.display = 'block'; + if (selectedCategoryName) { + selectedCategoryName.textContent = category.category_name; + } + + // 레이아웃 미리보기 업데이트 + updateLayoutPreview(category); + } + } else if (layoutMapSection) { + layoutMapSection.style.display = 'none'; + } +} + +// 레이아웃 미리보기 업데이트 +async function updateLayoutPreview(category) { + const previewDiv = document.getElementById('layoutMapPreview'); + if (!previewDiv) return; + + if (category.layout_image) { + // 이미지 경로를 전체 URL로 변환 + const fullImageUrl = category.layout_image.startsWith('http') + ? category.layout_image + : `${window.API_BASE_URL || 'http://localhost:20005/api'}${category.layout_image}`.replace('/api/', '/'); + + // Canvas 컨테이너 생성 + previewDiv.innerHTML = ` +
+ +

+ 클릭하여 작업장 영역을 수정하려면 "지도 설정" 버튼을 누르세요 +

+
+ `; + + // 이미지와 영역 로드 + await loadImageWithRegions(fullImageUrl, category.category_id); + } else { + previewDiv.innerHTML = ` +
+ 🗺️ +

+ 이 공장의 레이아웃 이미지가 아직 등록되지 않았습니다 +

+

+ "지도 설정" 버튼을 눌러 레이아웃 이미지를 업로드하고 작업장 위치를 지정하세요 +

+
+ `; + } +} + +// 이미지와 영역을 캔버스에 로드 +async function loadImageWithRegions(imageUrl, categoryId) { + const canvas = document.getElementById('previewCanvas'); + if (!canvas) return; + + const ctx = canvas.getContext('2d'); + const img = new Image(); + + img.onload = async function() { + // 최대 너비 설정 (반응형) + const maxWidth = 800; + const scale = img.width > maxWidth ? maxWidth / img.width : 1; + + canvas.width = img.width * scale; + canvas.height = img.height * scale; + + // 이미지 그리기 + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + + // 영역 데이터 로드 및 그리기 + try { + const response = await window.apiCall(`/workplaces/categories/${categoryId}/map-regions`, 'GET'); + + let regions = []; + if (response && response.success && Array.isArray(response.data)) { + regions = response.data; + } else if (Array.isArray(response)) { + regions = response; + } + + // 각 영역 그리기 + regions.forEach(region => { + // 퍼센트를 픽셀로 변환 + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + + const width = x2 - x1; + const height = y2 - y1; + + // 영역 테두리 그리기 + ctx.strokeStyle = '#10b981'; + ctx.lineWidth = 2; + ctx.strokeRect(x1, y1, width, height); + + // 영역 배경 (반투명) + ctx.fillStyle = 'rgba(16, 185, 129, 0.15)'; + ctx.fillRect(x1, y1, width, height); + + // 작업장 이름 표시 + if (region.workplace_name) { + ctx.fillStyle = '#10b981'; + ctx.font = 'bold 14px sans-serif'; + + // 텍스트 배경 + const textMetrics = ctx.measureText(region.workplace_name); + const textPadding = 4; + ctx.fillStyle = 'rgba(255, 255, 255, 0.9)'; + ctx.fillRect(x1 + 5, y1 + 5, textMetrics.width + textPadding * 2, 20); + + // 텍스트 + ctx.fillStyle = '#10b981'; + ctx.fillText(region.workplace_name, x1 + 5 + textPadding, y1 + 20); + } + }); + + if (regions.length > 0) { + console.log(`✅ 레이아웃 미리보기에 ${regions.length}개 영역 표시 완료`); + } + } catch (error) { + console.error('영역 로드 오류:', error); + } + }; + + img.onerror = function() { + console.error('이미지 로드 실패:', imageUrl); + }; + + img.src = imageUrl; +} + +// 작업장 카드에 지도 썸네일 로드 +async function loadWorkplaceMapThumbnail(workplace) { + const thumbnailDiv = document.getElementById(`workplace-map-${workplace.workplace_id}`); + if (!thumbnailDiv) return; + + // 작업장 자체에 레이아웃 이미지가 있는 경우 + if (workplace.layout_image) { + const fullImageUrl = workplace.layout_image.startsWith('http') + ? workplace.layout_image + : `${window.API_BASE_URL || 'http://localhost:20005/api'}${workplace.layout_image}`.replace('/api/', '/'); + + // 설비 정보 로드 + let equipmentCount = 0; + try { + const eqResponse = await window.apiCall(`/equipments/workplace/${workplace.workplace_id}`, 'GET'); + if (eqResponse && eqResponse.success && Array.isArray(eqResponse.data)) { + equipmentCount = eqResponse.data.filter(eq => eq.map_x_percent != null).length; + } + } catch (e) { + console.debug('설비 정보 로드 실패'); + } + + const canvasId = `layout-canvas-${workplace.workplace_id}`; + thumbnailDiv.innerHTML = ` +
+
+ 📍 작업장 지도 + ${equipmentCount > 0 ? `설비 ${equipmentCount}개` : ''} +
+ +
클릭하여 지도 관리
+
+ `; + + // 캔버스에 이미지 및 설비 영역 그리기 + await loadWorkplaceCanvasWithEquipments(workplace.workplace_id, fullImageUrl, canvasId); + return; + } + + // 작업장에 이미지가 없으면 카테고리 지도의 영역 표시 + try { + // 해당 작업장의 지도 영역 정보 가져오기 + const response = await window.apiCall(`/workplaces/map-regions/workplace/${workplace.workplace_id}`, 'GET'); + + if (!response || (!response.success && !response.region_id)) { + // 영역이 정의되지 않은 경우 지도 업로드 안내 표시 + thumbnailDiv.innerHTML = ` +
+
🗺️
+
클릭하여 지도 설정
+
+ `; + return; + } + + const region = response.success ? response.data : response; + + // 영역 좌표 데이터가 없으면 종료 + if (!region || region.x_start === undefined || region.y_start === undefined || + region.x_end === undefined || region.y_end === undefined) { + return; + } + + // 카테고리 정보에서 레이아웃 이미지 가져오기 + const category = categories.find(c => c.category_id === workplace.category_id); + if (!category || !category.layout_image) return; + + const fullImageUrl = category.layout_image.startsWith('http') + ? category.layout_image + : `${window.API_BASE_URL || 'http://localhost:20005/api'}${category.layout_image}`.replace('/api/', '/'); + + // 캔버스 생성 + const canvasId = `thumbnail-canvas-${workplace.workplace_id}`; + thumbnailDiv.innerHTML = ` +
+
📍 공장 지도 내 위치
+ +
클릭하여 상세 지도 설정
+
+ `; + + // 이미지 로드 + const img = new Image(); + img.onload = function() { + const canvas = document.getElementById(canvasId); + if (!canvas) return; + + const ctx = canvas.getContext('2d'); + + // 원본 이미지에서 영역 좌표 계산 (퍼센트를 픽셀로) + const x1 = (region.x_start / 100) * img.width; + const y1 = (region.y_start / 100) * img.height; + const x2 = (region.x_end / 100) * img.width; + const y2 = (region.y_end / 100) * img.height; + + const regionWidth = x2 - x1; + const regionHeight = y2 - y1; + + // 썸네일 크기 설정 (최대 너비 350px) + const maxThumbWidth = 350; + const scale = regionWidth > maxThumbWidth ? maxThumbWidth / regionWidth : 1; + + canvas.width = regionWidth * scale; + canvas.height = regionHeight * scale; + + // 영역만 잘라서 그리기 + ctx.drawImage( + img, + x1, y1, regionWidth, regionHeight, // 원본에서 잘라낼 영역 + 0, 0, canvas.width, canvas.height // 캔버스에 그릴 위치와 크기 + ); + + // 테두리 그리기 + ctx.strokeStyle = '#10b981'; + ctx.lineWidth = 3; + ctx.strokeRect(0, 0, canvas.width, canvas.height); + }; + + img.onerror = function() { + thumbnailDiv.innerHTML = ''; + }; + + img.src = fullImageUrl; + } catch (error) { + // 오류 시 조용히 처리 (지도가 없는 작업장도 많을 수 있으므로) + console.debug(`작업장 ${workplace.workplace_id}의 지도 영역 없음`); + } +} + +// 작업장 캔버스에 설비 영역 함께 그리기 +async function loadWorkplaceCanvasWithEquipments(workplaceId, imageUrl, canvasId) { + const img = new Image(); + img.onload = async function() { + const canvas = document.getElementById(canvasId); + if (!canvas) return; + + const ctx = canvas.getContext('2d'); + + // 썸네일 크기 설정 (최대 너비 400px) + const maxThumbWidth = 400; + const scale = img.width > maxThumbWidth ? maxThumbWidth / img.width : 1; + + canvas.width = img.width * scale; + canvas.height = img.height * scale; + + // 이미지 그리기 + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + + // 설비 영역 로드 및 그리기 + try { + const response = await window.apiCall(`/equipments/workplace/${workplaceId}`, 'GET'); + let equipments = []; + if (response && response.success && Array.isArray(response.data)) { + equipments = response.data.filter(eq => eq.map_x_percent != null); + } + + // 설비 영역 그리기 + equipments.forEach(eq => { + const x = (parseFloat(eq.map_x_percent) / 100) * canvas.width; + const y = (parseFloat(eq.map_y_percent) / 100) * canvas.height; + const width = (parseFloat(eq.map_width_percent || 10) / 100) * canvas.width; + const height = (parseFloat(eq.map_height_percent || 10) / 100) * canvas.height; + + // 영역 배경 + ctx.fillStyle = 'rgba(16, 185, 129, 0.2)'; + ctx.fillRect(x, y, width, height); + + // 영역 테두리 + ctx.strokeStyle = '#10b981'; + ctx.lineWidth = 2; + ctx.strokeRect(x, y, width, height); + + // 설비 코드 표시 + if (eq.equipment_code) { + ctx.font = 'bold 10px sans-serif'; + const textMetrics = ctx.measureText(eq.equipment_code); + ctx.fillStyle = 'rgba(255, 255, 255, 0.9)'; + ctx.fillRect(x + 2, y + 2, textMetrics.width + 6, 14); + ctx.fillStyle = '#047857'; + ctx.fillText(eq.equipment_code, x + 5, y + 12); + } + }); + } catch (error) { + console.debug('설비 영역 로드 실패'); + } + }; + img.src = imageUrl; +} + +// 카테고리 모달 열기 +function openCategoryModal(categoryData = null) { + const modal = document.getElementById('categoryModal'); + const modalTitle = document.getElementById('categoryModalTitle'); + const deleteBtn = document.getElementById('deleteCategoryBtn'); + + if (!modal) return; + + currentEditingCategory = categoryData; + + if (categoryData) { + // 수정 모드 + modalTitle.textContent = '공장 수정'; + deleteBtn.style.display = 'inline-flex'; + + document.getElementById('categoryId').value = categoryData.category_id; + document.getElementById('categoryName').value = categoryData.category_name || ''; + document.getElementById('categoryDescription').value = categoryData.description || ''; + document.getElementById('categoryOrder').value = categoryData.display_order || 0; + } else { + // 신규 등록 모드 + modalTitle.textContent = '공장 추가'; + deleteBtn.style.display = 'none'; + + document.getElementById('categoryForm').reset(); + document.getElementById('categoryId').value = ''; + } + + modal.style.display = 'flex'; + document.body.style.overflow = 'hidden'; + + setTimeout(() => { + document.getElementById('categoryName').focus(); + }, 100); +} + +// 카테고리 모달 닫기 +function closeCategoryModal() { + const modal = document.getElementById('categoryModal'); + if (modal) { + modal.style.display = 'none'; + document.body.style.overflow = ''; + currentEditingCategory = null; + } +} + +// 카테고리 저장 +async function saveCategory() { + try { + const categoryId = document.getElementById('categoryId').value; + + const categoryData = { + category_name: document.getElementById('categoryName').value.trim(), + description: document.getElementById('categoryDescription').value.trim() || null, + display_order: parseInt(document.getElementById('categoryOrder').value) || 0, + is_active: true + }; + + if (!categoryData.category_name) { + showToast('공장명은 필수 입력 항목입니다.', 'error'); + return; + } + + console.log('💾 저장할 카테고리 데이터:', categoryData); + + let response; + if (categoryId) { + // 수정 + response = await window.apiCall(`/workplaces/categories/${categoryId}`, 'PUT', categoryData); + } else { + // 신규 등록 + response = await window.apiCall('/workplaces/categories', 'POST', categoryData); + } + + if (response && (response.success || response.category_id)) { + const action = categoryId ? '수정' : '등록'; + showToast(`공장이 성공적으로 ${action}되었습니다.`, 'success'); + + closeCategoryModal(); + await loadAllData(); + } else { + throw new Error(response?.message || '저장에 실패했습니다.'); + } + } catch (error) { + console.error('카테고리 저장 오류:', error); + showToast(error.message || '카테고리 저장 중 오류가 발생했습니다.', 'error'); + } +} + +// 카테고리 삭제 +async function deleteCategory() { + if (!currentEditingCategory) return; + + if (!confirm(`"${currentEditingCategory.category_name}" 공장을 정말 삭제하시겠습니까?\n\n⚠️ 이 공장에 속한 모든 작업장의 공장 정보가 제거됩니다.`)) { + return; + } + + try { + const response = await window.apiCall(`/workplaces/categories/${currentEditingCategory.category_id}`, 'DELETE'); + + if (response && response.success) { + showToast('공장이 성공적으로 삭제되었습니다.', 'success'); + + closeCategoryModal(); + await loadAllData(); + } else { + throw new Error(response?.message || '삭제에 실패했습니다.'); + } + } catch (error) { + console.error('카테고리 삭제 오류:', error); + showToast(error.message || '카테고리 삭제 중 오류가 발생했습니다.', 'error'); + } +} + +// ==================== 작업장 관련 ==================== + +// 작업장 목록 로드 +async function loadWorkplaces() { + try { + const response = await window.apiCall('/workplaces', 'GET'); + + let workplaceData = []; + if (response && response.success && Array.isArray(response.data)) { + workplaceData = response.data; + } else if (Array.isArray(response)) { + workplaceData = response; + } + + workplaces = workplaceData; + console.log(`✅ 작업장 ${workplaces.length}개 로드 완료`); + } catch (error) { + console.error('작업장 로딩 오류:', error); + workplaces = []; + } +} + +// 작업장 렌더링 +function renderWorkplaces() { + const grid = document.getElementById('workplaceGrid'); + if (!grid) return; + + // 현재 카테고리별 필터링 + const filtered = currentCategoryId === '' + ? workplaces + : workplaces.filter(w => w.category_id == currentCategoryId); + + if (filtered.length === 0) { + grid.innerHTML = ` +
+
🏗️
+

등록된 작업장이 없습니다

+

"작업장 추가" 버튼을 눌러 작업장을 등록해보세요

+ +
+ `; + return; + } + + let gridHtml = ''; + + filtered.forEach(workplace => { + const categoryName = workplace.category_name || '미분류'; + const isActive = workplace.is_active === 1 || workplace.is_active === true; + + // 작업장 용도 아이콘 매핑 + const purposeIcons = { + '작업구역': '🔧', + '설비': '⚙️', + '휴게시설': '☕', + '회의실': '💼', + '창고': '📦', + '기타': '📍' + }; + const purposeIcon = workplace.workplace_purpose ? purposeIcons[workplace.workplace_purpose] || '📍' : '🏗️'; + + gridHtml += ` +
+
+
${purposeIcon}
+
+

${workplace.workplace_name}

+
+ ${workplace.category_id ? `🏭 ${categoryName}` : ''} + ${workplace.workplace_purpose ? `${workplace.workplace_purpose}` : ''} +
+
+
+ + + +
+
+ ${workplace.description ? `

${workplace.description}

` : ''} +
+
+ 등록: ${formatDate(workplace.created_at)} + ${workplace.updated_at !== workplace.created_at ? `수정: ${formatDate(workplace.updated_at)}` : ''} +
+
+ `; + }); + + grid.innerHTML = gridHtml; + + // 각 작업장의 지도 미리보기 로드 + filtered.forEach(workplace => { + if (workplace.category_id) { + loadWorkplaceMapThumbnail(workplace); + } + }); +} + +// 작업장 모달 열기 +function openWorkplaceModal(workplaceData = null) { + const modal = document.getElementById('workplaceModal'); + const modalTitle = document.getElementById('workplaceModalTitle'); + const deleteBtn = document.getElementById('deleteWorkplaceBtn'); + const categorySelect = document.getElementById('workplaceCategoryId'); + + if (!modal) return; + + currentEditingWorkplace = workplaceData; + + // 카테고리 선택 옵션 업데이트 + let categoryOptions = ''; + categories.forEach(cat => { + categoryOptions += ``; + }); + categorySelect.innerHTML = categoryOptions; + + if (workplaceData) { + // 수정 모드 + modalTitle.textContent = '작업장 수정'; + deleteBtn.style.display = 'inline-flex'; + + document.getElementById('workplaceId').value = workplaceData.workplace_id; + document.getElementById('workplaceCategoryId').value = workplaceData.category_id || ''; + document.getElementById('workplaceName').value = workplaceData.workplace_name || ''; + document.getElementById('workplacePurpose').value = workplaceData.workplace_purpose || ''; + document.getElementById('displayPriority').value = workplaceData.display_priority || 0; + document.getElementById('workplaceDescription').value = workplaceData.description || ''; + } else { + // 신규 등록 모드 + modalTitle.textContent = '작업장 추가'; + deleteBtn.style.display = 'none'; + + document.getElementById('workplaceForm').reset(); + document.getElementById('workplaceId').value = ''; + + // 현재 선택된 카테고리가 있으면 자동 선택 + if (currentCategoryId) { + document.getElementById('workplaceCategoryId').value = currentCategoryId; + } + } + + modal.style.display = 'flex'; + document.body.style.overflow = 'hidden'; + + setTimeout(() => { + document.getElementById('workplaceName').focus(); + }, 100); +} + +// 작업장 모달 닫기 +function closeWorkplaceModal() { + const modal = document.getElementById('workplaceModal'); + if (modal) { + modal.style.display = 'none'; + document.body.style.overflow = ''; + currentEditingWorkplace = null; + } +} + +// 작업장 편집 +function editWorkplace(workplaceId) { + const workplace = workplaces.find(w => w.workplace_id === workplaceId); + if (workplace) { + openWorkplaceModal(workplace); + } else { + showToast('작업장을 찾을 수 없습니다.', 'error'); + } +} + +// 작업장 저장 +async function saveWorkplace() { + try { + const workplaceId = document.getElementById('workplaceId').value; + + const workplaceData = { + category_id: document.getElementById('workplaceCategoryId').value || null, + workplace_name: document.getElementById('workplaceName').value.trim(), + workplace_purpose: document.getElementById('workplacePurpose').value || null, + display_priority: parseInt(document.getElementById('displayPriority').value) || 0, + description: document.getElementById('workplaceDescription').value.trim() || null, + is_active: true + }; + + if (!workplaceData.workplace_name) { + showToast('작업장명은 필수 입력 항목입니다.', 'error'); + return; + } + + console.log('💾 저장할 작업장 데이터:', workplaceData); + + let response; + if (workplaceId) { + // 수정 + response = await window.apiCall(`/workplaces/${workplaceId}`, 'PUT', workplaceData); + } else { + // 신규 등록 + response = await window.apiCall('/workplaces', 'POST', workplaceData); + } + + if (response && (response.success || response.workplace_id)) { + const action = workplaceId ? '수정' : '등록'; + showToast(`작업장이 성공적으로 ${action}되었습니다.`, 'success'); + + closeWorkplaceModal(); + await loadAllData(); + } else { + throw new Error(response?.message || '저장에 실패했습니다.'); + } + } catch (error) { + console.error('작업장 저장 오류:', error); + showToast(error.message || '작업장 저장 중 오류가 발생했습니다.', 'error'); + } +} + +// 작업장 삭제 확인 +function confirmDeleteWorkplace(workplaceId) { + const workplace = workplaces.find(w => w.workplace_id === workplaceId); + + if (!workplace) { + showToast('작업장을 찾을 수 없습니다.', 'error'); + return; + } + + if (confirm(`"${workplace.workplace_name}" 작업장을 정말 삭제하시겠습니까?\n\n⚠️ 삭제된 작업장은 복구할 수 없습니다.`)) { + deleteWorkplaceById(workplaceId); + } +} + +// 작업장 삭제 (수정 모드에서) +function deleteWorkplace() { + if (currentEditingWorkplace) { + confirmDeleteWorkplace(currentEditingWorkplace.workplace_id); + } +} + +// 작업장 삭제 실행 +async function deleteWorkplaceById(workplaceId) { + try { + const response = await window.apiCall(`/workplaces/${workplaceId}`, 'DELETE'); + + if (response && response.success) { + showToast('작업장이 성공적으로 삭제되었습니다.', 'success'); + + closeWorkplaceModal(); + await loadAllData(); + } else { + throw new Error(response?.message || '삭제에 실패했습니다.'); + } + } catch (error) { + console.error('작업장 삭제 오류:', error); + showToast(error.message || '작업장 삭제 중 오류가 발생했습니다.', 'error'); + } +} + +// ==================== 유틸리티 ==================== + +// 전체 새로고침 +async function refreshWorkplaces() { + const refreshBtn = document.querySelector('.btn-secondary'); + if (refreshBtn) { + const originalText = refreshBtn.innerHTML; + refreshBtn.innerHTML = '새로고침 중...'; + refreshBtn.disabled = true; + + await loadAllData(); + + refreshBtn.innerHTML = originalText; + refreshBtn.disabled = false; + } else { + await loadAllData(); + } + + showToast('데이터가 새로고침되었습니다.', 'success'); +} + +// 통계 업데이트 +async function updateStatistics() { + const total = workplaces.length; + const active = workplaces.filter(w => w.is_active === 1 || w.is_active === true).length; + const factoryTotal = categories.length; + + // 상단 통계 카드 업데이트 + const factoryCountEl = document.getElementById('factoryCount'); + const totalCountEl = document.getElementById('totalCount'); + const activeCountEl = document.getElementById('activeCount'); + const equipmentCountEl = document.getElementById('equipmentCount'); + + if (factoryCountEl) factoryCountEl.textContent = factoryTotal; + if (totalCountEl) totalCountEl.textContent = total; + if (activeCountEl) activeCountEl.textContent = active; + + // 설비 수 조회 및 업데이트 + if (equipmentCountEl) { + try { + const response = await window.apiCall('/equipments', 'GET'); + let equipmentCount = 0; + if (response && response.success && Array.isArray(response.data)) { + equipmentCount = response.data.length; + } else if (Array.isArray(response)) { + equipmentCount = response.length; + } + equipmentCountEl.textContent = equipmentCount; + } catch (e) { + equipmentCountEl.textContent = '-'; + } + } + + // 섹션 통계 업데이트 + const sectionTotalEl = document.getElementById('sectionTotalCount'); + const sectionActiveEl = document.getElementById('sectionActiveCount'); + + // 현재 필터링된 작업장 기준 + const filtered = currentCategoryId === '' + ? workplaces + : workplaces.filter(w => w.category_id == currentCategoryId); + const filteredActive = filtered.filter(w => w.is_active === 1 || w.is_active === true).length; + + if (sectionTotalEl) sectionTotalEl.textContent = filtered.length; + if (sectionActiveEl) sectionActiveEl.textContent = filteredActive; +} + +// 날짜 포맷팅 +function formatDate(dateString) { + if (!dateString) return ''; + + const date = new Date(dateString); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit' + }); +} + +// 토스트 메시지 표시 +function showToast(message, type = 'info') { + // 기존 토스트 제거 + const existingToast = document.querySelector('.toast'); + if (existingToast) { + existingToast.remove(); + } + + // 새 토스트 생성 + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + toast.textContent = message; + + // 스타일 적용 + Object.assign(toast.style, { + position: 'fixed', + top: '20px', + right: '20px', + padding: '12px 24px', + borderRadius: '8px', + color: 'white', + fontWeight: '500', + zIndex: '1000', + transform: 'translateX(100%)', + transition: 'transform 0.3s ease' + }); + + // 타입별 배경색 + const colors = { + success: '#10b981', + error: '#ef4444', + warning: '#f59e0b', + info: '#3b82f6' + }; + toast.style.backgroundColor = colors[type] || colors.info; + + document.body.appendChild(toast); + + // 애니메이션 + setTimeout(() => { + toast.style.transform = 'translateX(0)'; + }, 100); + + // 자동 제거 + setTimeout(() => { + toast.style.transform = 'translateX(100%)'; + setTimeout(() => { + if (toast.parentNode) { + toast.remove(); + } + }, 300); + }, 3000); +} + +// 전역 함수 및 변수로 노출 (다른 모듈에서 접근 가능하도록) +// 모듈 시스템이 이미 정의했으면 건너뜀 +if (!window.WorkplaceState) { + // getter/setter를 사용하여 항상 최신 값을 반환 + Object.defineProperty(window, 'categories', { + get: function() { + return categories; + } + }); + + Object.defineProperty(window, 'workplaces', { + get: function() { + return workplaces; + } + }); + + Object.defineProperty(window, 'currentCategoryId', { + get: function() { + return currentCategoryId; + }, + set: function(value) { + currentCategoryId = value; + } + }); +} + +// ==================== 작업장 지도 관리 ==================== + +// 작업장 지도 관련 전역 변수 +let workplaceCanvas = null; +let workplaceCtx = null; +let workplaceImage = null; +let workplaceIsDrawing = false; +let workplaceStartX = 0; +let workplaceStartY = 0; +let workplaceCurrentRect = null; +let workplaceEquipmentRegions = []; +let existingEquipments = []; // DB에서 로드한 기존 설비 목록 +let allEquipments = []; // 시스템 전체 설비 목록 (드롭다운 선택용) + +// 작업장 지도 모달 열기 +async function openWorkplaceMapModal(workplaceId) { + const workplace = workplaces.find(w => w.workplace_id === workplaceId); + if (!workplace) { + showToast('작업장 정보를 찾을 수 없습니다.', 'error'); + return; + } + + // 작업장 이름 설정 + const modalTitle = document.getElementById('workplaceMapModalTitle'); + if (modalTitle) { + modalTitle.textContent = `${workplace.workplace_name} - 지도 관리`; + } + + // 현재 작업장 ID 저장 + window.currentWorkplaceMapId = workplaceId; + + // 레이아웃 이미지 미리보기 영역 초기화 + const preview = document.getElementById('workplaceLayoutPreview'); + if (preview && workplace.layout_image) { + const fullImageUrl = workplace.layout_image.startsWith('http') + ? workplace.layout_image + : `${window.API_BASE_URL || 'http://localhost:20005/api'}${workplace.layout_image}`.replace('/api/', '/'); + preview.innerHTML = `작업장 레이아웃`; + + // 캔버스 초기화 + initWorkplaceCanvas(fullImageUrl); + } else if (preview) { + preview.innerHTML = '

레이아웃 이미지를 업로드해주세요

'; + } + + // 설비 영역 목록 로드 (API 연동) + await Promise.all([ + loadWorkplaceEquipments(workplaceId), + loadAllEquipments() + ]); + renderWorkplaceEquipmentList(); + + // 모달 표시 + const modal = document.getElementById('workplaceMapModal'); + if (modal) { + modal.style.display = 'flex'; + } +} + +// 작업장의 설비 목록 로드 +async function loadWorkplaceEquipments(workplaceId) { + try { + const response = await window.apiCall(`/equipments/workplace/${workplaceId}`, 'GET'); + + let equipments = []; + if (response && response.success && Array.isArray(response.data)) { + equipments = response.data; + } else if (Array.isArray(response)) { + equipments = response; + } + + // 지도 영역이 있는 설비만 workplaceEquipmentRegions에 추가 + workplaceEquipmentRegions = equipments + .filter(eq => eq.map_x_percent != null && eq.map_y_percent != null) + .map(eq => ({ + equipment_id: eq.equipment_id, + equipment_name: eq.equipment_name, + equipment_code: eq.equipment_code, + x_percent: parseFloat(eq.map_x_percent), + y_percent: parseFloat(eq.map_y_percent), + width_percent: parseFloat(eq.map_width_percent) || 10, + height_percent: parseFloat(eq.map_height_percent) || 10 + })); + + // 해당 작업장에 할당된 설비 목록 저장 + existingEquipments = equipments; + + console.log(`✅ 작업장 ${workplaceId}의 설비 ${equipments.length}개 로드 완료 (지도 영역: ${workplaceEquipmentRegions.length}개)`); + } catch (error) { + console.error('설비 로드 오류:', error); + workplaceEquipmentRegions = []; + existingEquipments = []; + } +} + +// 시스템 전체 설비 목록 로드 (드롭다운 선택용) +async function loadAllEquipments() { + try { + const response = await window.apiCall('/equipments', 'GET'); + + let equipments = []; + if (response && response.success && Array.isArray(response.data)) { + equipments = response.data; + } else if (Array.isArray(response)) { + equipments = response; + } + + allEquipments = equipments; + console.log(`✅ 전체 설비 ${allEquipments.length}개 로드 완료`); + } catch (error) { + console.error('전체 설비 로드 오류:', error); + allEquipments = []; + } +} + +// 작업장 지도 모달 닫기 +function closeWorkplaceMapModal() { + const modal = document.getElementById('workplaceMapModal'); + if (modal) { + modal.style.display = 'none'; + } + window.currentWorkplaceMapId = null; +} + +// 작업장 레이아웃 이미지 업로드 +async function uploadWorkplaceLayout() { + const fileInput = document.getElementById('workplaceLayoutFile'); + if (!fileInput || !fileInput.files || !fileInput.files[0]) { + showToast('파일을 선택해주세요.', 'warning'); + return; + } + + if (!window.currentWorkplaceMapId) { + showToast('작업장 정보를 찾을 수 없습니다.', 'error'); + return; + } + + const formData = new FormData(); + formData.append('image', fileInput.files[0]); + + try { + showToast('이미지 업로드 중...', 'info'); + + const response = await fetch(`${window.API_BASE_URL || 'http://localhost:20005/api'}/workplaces/${window.currentWorkplaceMapId}/layout-image`, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${localStorage.getItem('token')}` + }, + body: formData + }); + + const result = await response.json(); + + if (result.success) { + showToast('레이아웃 이미지가 업로드되었습니다.', 'success'); + + // 작업장 목록 새로고침 + await loadWorkplaces(); + renderWorkplaces(); + + // 미리보기 업데이트 및 캔버스 초기화 + const preview = document.getElementById('workplaceLayoutPreview'); + if (preview && result.data.image_path) { + const fullImageUrl = result.data.image_path.startsWith('http') + ? result.data.image_path + : `${window.API_BASE_URL || 'http://localhost:20005/api'}${result.data.image_path}`.replace('/api/', '/'); + preview.innerHTML = `작업장 레이아웃`; + + // 캔버스 초기화 (설비 영역 편집용) + initWorkplaceCanvas(fullImageUrl); + } + + // 파일 입력 초기화 + fileInput.value = ''; + } else { + showToast(result.message || '업로드 실패', 'error'); + } + } catch (error) { + console.error('레이아웃 이미지 업로드 오류:', error); + showToast('레이아웃 이미지 업로드 중 오류가 발생했습니다.', 'error'); + } +} + +// 작업장 캔버스 초기화 +function initWorkplaceCanvas(imageUrl) { + const img = new Image(); + img.onload = function() { + workplaceImage = img; + workplaceCanvas = document.getElementById('workplaceRegionCanvas'); + if (!workplaceCanvas) return; + + workplaceCtx = workplaceCanvas.getContext('2d'); + + // 캔버스 크기 설정 (최대 너비를 모달 크기에 맞게) + const container = document.getElementById('workplaceCanvasContainer'); + const maxWidth = container ? Math.min(container.clientWidth - 20, 900) : 800; + const scale = img.width > maxWidth ? maxWidth / img.width : 1; + + workplaceCanvas.width = img.width * scale; + workplaceCanvas.height = img.height * scale; + + // 이미지 그리기 + workplaceCtx.drawImage(img, 0, 0, workplaceCanvas.width, workplaceCanvas.height); + + // 기존 영역들 표시 + drawWorkplaceRegions(); + + // 이벤트 리스너 등록 (기존 리스너 제거 후 등록) + workplaceCanvas.onmousedown = startWorkplaceDraw; + workplaceCanvas.onmousemove = drawWorkplace; + workplaceCanvas.onmouseup = endWorkplaceDraw; + workplaceCanvas.onmouseleave = endWorkplaceDraw; + + // 터치 이벤트 지원 + workplaceCanvas.ontouchstart = handleWorkplaceTouchStart; + workplaceCanvas.ontouchmove = handleWorkplaceTouchMove; + workplaceCanvas.ontouchend = endWorkplaceDraw; + }; + img.onerror = function() { + console.error('작업장 이미지 로드 실패:', imageUrl); + }; + img.src = imageUrl; +} + +// 터치 이벤트 핸들러 +function handleWorkplaceTouchStart(e) { + e.preventDefault(); + const touch = e.touches[0]; + const rect = workplaceCanvas.getBoundingClientRect(); + workplaceIsDrawing = true; + workplaceStartX = touch.clientX - rect.left; + workplaceStartY = touch.clientY - rect.top; +} + +function handleWorkplaceTouchMove(e) { + e.preventDefault(); + if (!workplaceIsDrawing) return; + + const touch = e.touches[0]; + const rect = workplaceCanvas.getBoundingClientRect(); + const currentX = touch.clientX - rect.left; + const currentY = touch.clientY - rect.top; + + // 캔버스 초기화 및 이미지 다시 그리기 + workplaceCtx.drawImage(workplaceImage, 0, 0, workplaceCanvas.width, workplaceCanvas.height); + drawWorkplaceRegions(); + + // 현재 그리는 사각형 + workplaceCtx.strokeStyle = '#3b82f6'; + workplaceCtx.lineWidth = 3; + workplaceCtx.setLineDash([5, 5]); + workplaceCtx.strokeRect( + workplaceStartX, + workplaceStartY, + currentX - workplaceStartX, + currentY - workplaceStartY + ); + workplaceCtx.setLineDash([]); + + workplaceCurrentRect = { + x: workplaceStartX, + y: workplaceStartY, + width: currentX - workplaceStartX, + height: currentY - workplaceStartY + }; +} + +// 드래그 시작 +function startWorkplaceDraw(e) { + workplaceIsDrawing = true; + const rect = workplaceCanvas.getBoundingClientRect(); + workplaceStartX = e.clientX - rect.left; + workplaceStartY = e.clientY - rect.top; +} + +// 드래그 중 +function drawWorkplace(e) { + if (!workplaceIsDrawing) return; + + const rect = workplaceCanvas.getBoundingClientRect(); + const currentX = e.clientX - rect.left; + const currentY = e.clientY - rect.top; + + // 캔버스 초기화 및 이미지 다시 그리기 + workplaceCtx.drawImage(workplaceImage, 0, 0, workplaceCanvas.width, workplaceCanvas.height); + + // 기존 영역들 표시 + drawWorkplaceRegions(); + + // 현재 그리는 사각형 (점선으로) + workplaceCtx.strokeStyle = '#3b82f6'; + workplaceCtx.lineWidth = 3; + workplaceCtx.setLineDash([5, 5]); + workplaceCtx.strokeRect( + workplaceStartX, + workplaceStartY, + currentX - workplaceStartX, + currentY - workplaceStartY + ); + workplaceCtx.setLineDash([]); + + // 선택 영역 배경 (반투명) + workplaceCtx.fillStyle = 'rgba(59, 130, 246, 0.1)'; + workplaceCtx.fillRect( + workplaceStartX, + workplaceStartY, + currentX - workplaceStartX, + currentY - workplaceStartY + ); + + workplaceCurrentRect = { + x: workplaceStartX, + y: workplaceStartY, + width: currentX - workplaceStartX, + height: currentY - workplaceStartY + }; +} + +// 드래그 종료 +function endWorkplaceDraw(e) { + workplaceIsDrawing = false; +} + +// 기존 영역들 그리기 +function drawWorkplaceRegions() { + workplaceEquipmentRegions.forEach((region, index) => { + // 퍼센트를 픽셀로 변환 + const x = (region.x_percent / 100) * workplaceCanvas.width; + const y = (region.y_percent / 100) * workplaceCanvas.height; + const width = (region.width_percent / 100) * workplaceCanvas.width; + const height = (region.height_percent / 100) * workplaceCanvas.height; + + // 영역 배경 (반투명) + workplaceCtx.fillStyle = 'rgba(16, 185, 129, 0.15)'; + workplaceCtx.fillRect(x, y, width, height); + + // 영역 테두리 + workplaceCtx.strokeStyle = '#10b981'; + workplaceCtx.lineWidth = 2; + workplaceCtx.strokeRect(x, y, width, height); + + // 영역 이름 표시 (배경 포함) + const displayName = region.equipment_code ? `[${region.equipment_code}] ${region.equipment_name}` : region.equipment_name; + workplaceCtx.font = 'bold 12px sans-serif'; + const textMetrics = workplaceCtx.measureText(displayName); + const textPadding = 4; + + // 텍스트 배경 + workplaceCtx.fillStyle = 'rgba(255, 255, 255, 0.9)'; + workplaceCtx.fillRect(x + 3, y + 3, textMetrics.width + textPadding * 2, 18); + + // 텍스트 + workplaceCtx.fillStyle = '#047857'; + workplaceCtx.fillText(displayName, x + 3 + textPadding, y + 16); + }); +} + +// 현재 영역 지우기 +function clearWorkplaceCurrentRegion() { + workplaceCurrentRect = null; + if (workplaceCanvas && workplaceImage) { + workplaceCtx.drawImage(workplaceImage, 0, 0, workplaceCanvas.width, workplaceCanvas.height); + drawWorkplaceRegions(); + } +} + +// 설비 위치 저장 +async function saveWorkplaceEquipmentRegion() { + const equipmentSelect = document.getElementById('equipmentSelectInput'); + const equipmentNameInput = document.getElementById('equipmentNameInput'); + const equipmentCodeInput = document.getElementById('equipmentCodeInput'); + + const selectedEquipmentId = equipmentSelect?.value; + const newEquipmentName = equipmentNameInput?.value.trim(); + const newEquipmentCode = equipmentCodeInput?.value.trim(); + + // 기존 설비 선택 또는 새 설비 입력 확인 + if (!selectedEquipmentId && (!newEquipmentName || !newEquipmentCode)) { + showToast('기존 설비를 선택하거나 새 설비 코드와 이름을 입력해주세요.', 'warning'); + return; + } + + if (!workplaceCurrentRect) { + showToast('영역을 드래그하여 선택해주세요.', 'warning'); + return; + } + + // 퍼센트로 변환 (음수 영역 처리) + let xPercent = (Math.min(workplaceCurrentRect.x, workplaceCurrentRect.x + workplaceCurrentRect.width) / workplaceCanvas.width) * 100; + let yPercent = (Math.min(workplaceCurrentRect.y, workplaceCurrentRect.y + workplaceCurrentRect.height) / workplaceCanvas.height) * 100; + let widthPercent = (Math.abs(workplaceCurrentRect.width) / workplaceCanvas.width) * 100; + let heightPercent = (Math.abs(workplaceCurrentRect.height) / workplaceCanvas.height) * 100; + + try { + let equipmentId = selectedEquipmentId; + let equipmentName = ''; + + if (selectedEquipmentId) { + // 기존 설비 - 위치 및 작업장 업데이트 + const response = await window.apiCall(`/equipments/${selectedEquipmentId}/map-position`, 'PATCH', { + workplace_id: window.currentWorkplaceMapId, + map_x_percent: xPercent, + map_y_percent: yPercent, + map_width_percent: widthPercent, + map_height_percent: heightPercent + }); + + if (!response || !response.success) { + throw new Error(response?.message || '위치 저장 실패'); + } + + const eq = allEquipments.find(e => e.equipment_id == selectedEquipmentId); + equipmentName = eq?.equipment_name || '설비'; + } else { + // 새 설비 생성 + const response = await window.apiCall('/equipments', 'POST', { + equipment_code: newEquipmentCode, + equipment_name: newEquipmentName, + workplace_id: window.currentWorkplaceMapId, + map_x_percent: xPercent, + map_y_percent: yPercent, + map_width_percent: widthPercent, + map_height_percent: heightPercent, + status: 'active' + }); + + if (!response || !response.success) { + throw new Error(response?.message || '설비 생성 실패'); + } + + equipmentId = response.data.equipment_id; + equipmentName = newEquipmentName; + } + + // 로컬 배열 업데이트 + const newRegion = { + equipment_id: equipmentId, + equipment_name: equipmentName, + equipment_code: newEquipmentCode || existingEquipments.find(e => e.equipment_id == selectedEquipmentId)?.equipment_code, + x_percent: xPercent, + y_percent: yPercent, + width_percent: widthPercent, + height_percent: heightPercent + }; + + // 기존 영역이 있으면 교체, 없으면 추가 + const existingIndex = workplaceEquipmentRegions.findIndex(r => r.equipment_id == equipmentId); + if (existingIndex >= 0) { + workplaceEquipmentRegions[existingIndex] = newRegion; + } else { + workplaceEquipmentRegions.push(newRegion); + } + + // 설비 목록 새로고침 (현재 작업장 + 전체) + await Promise.all([ + loadWorkplaceEquipments(window.currentWorkplaceMapId), + loadAllEquipments() + ]); + + // UI 업데이트 + renderWorkplaceEquipmentList(); + clearWorkplaceCurrentRegion(); + if (equipmentNameInput) equipmentNameInput.value = ''; + if (equipmentCodeInput) equipmentCodeInput.value = ''; + if (equipmentSelect) equipmentSelect.value = ''; + + showToast(`설비 "${equipmentName}" 위치가 저장되었습니다.`, 'success'); + } catch (error) { + console.error('설비 위치 저장 오류:', error); + showToast(error.message || '설비 위치 저장 중 오류가 발생했습니다.', 'error'); + } +} + +// 설비 목록 렌더링 +function renderWorkplaceEquipmentList() { + const listDiv = document.getElementById('workplaceEquipmentList'); + + // 등록된 설비 목록 렌더링 + if (listDiv) { + if (workplaceEquipmentRegions.length === 0) { + listDiv.innerHTML = '

아직 정의된 설비가 없습니다

'; + } else { + let html = ''; + workplaceEquipmentRegions.forEach((region, index) => { + html += ` +
+
+ ${region.equipment_name} + [${region.equipment_code || '-'}] +
+ 위치: (${region.x_percent.toFixed(1)}%, ${region.y_percent.toFixed(1)}%) | 크기: ${region.width_percent.toFixed(1)}% × ${region.height_percent.toFixed(1)}% +
+
+ +
+ `; + }); + listDiv.innerHTML = html; + } + } + + // 설비 선택 드롭다운 업데이트 (항상 호출되어야 함!) + updateEquipmentSelectDropdown(); +} + +// 설비 선택 드롭다운 업데이트 +function updateEquipmentSelectDropdown() { + const selectEl = document.getElementById('equipmentSelectInput'); + if (!selectEl) { + console.warn('⚠️ equipmentSelectInput 요소를 찾을 수 없습니다'); + return; + } + + console.log(`📋 드롭다운 업데이트: 전체 설비 ${allEquipments.length}개`); + + // 전체 설비 중에서 아직 어떤 지도에도 배치되지 않은 설비만 표시 + // map_x_percent가 null이면 지도에 배치되지 않은 설비 + const availableEquipments = allEquipments.filter(eq => + eq.map_x_percent == null || eq.map_x_percent === '' + ); + + console.log(`📋 지도에 미배치된 설비: ${availableEquipments.length}개`); + + // 이 작업장에 이미 배치된 설비는 제외 (현재 작업장에서 방금 배치한 경우) + const registeredIds = workplaceEquipmentRegions.map(r => r.equipment_id); + const unregisteredEquipments = availableEquipments.filter(eq => !registeredIds.includes(eq.equipment_id)); + + console.log(`📋 선택 가능한 설비: ${unregisteredEquipments.length}개`); + + let options = ''; + + if (unregisteredEquipments.length === 0) { + options += ''; + } else { + unregisteredEquipments.forEach(eq => { + const workplaceInfo = eq.workplace_name ? ` (${eq.workplace_name})` : ' (미배정)'; + options += ``; + }); + } + + selectEl.innerHTML = options; + + // 배치 가능한 설비 수 표시 + const countEl = document.getElementById('availableEquipmentCount'); + if (countEl) { + countEl.textContent = `배치 가능: ${unregisteredEquipments.length}개`; + } +} + +// 설비 영역 삭제 (지도에서만 제거, 설비 자체는 유지) +async function removeWorkplaceEquipmentRegion(equipmentId) { + if (!confirm('이 설비의 지도 위치 정보를 삭제하시겠습니까?\n(설비 자체는 삭제되지 않습니다)')) { + return; + } + + try { + // API로 지도 위치 초기화 + const response = await window.apiCall(`/equipments/${equipmentId}/map-position`, 'PATCH', { + map_x_percent: null, + map_y_percent: null, + map_width_percent: null, + map_height_percent: null + }); + + if (!response || !response.success) { + throw new Error(response?.message || '위치 삭제 실패'); + } + + // 로컬 배열에서 제거 + workplaceEquipmentRegions = workplaceEquipmentRegions.filter(r => r.equipment_id != equipmentId); + + // 설비 목록 새로고침 (현재 작업장 + 전체) + await Promise.all([ + loadWorkplaceEquipments(window.currentWorkplaceMapId), + loadAllEquipments() + ]); + + renderWorkplaceEquipmentList(); + + // 캔버스 다시 그리기 + if (workplaceCanvas && workplaceImage) { + workplaceCtx.drawImage(workplaceImage, 0, 0, workplaceCanvas.width, workplaceCanvas.height); + drawWorkplaceRegions(); + } + + showToast('설비 위치가 삭제되었습니다.', 'success'); + } catch (error) { + console.error('설비 위치 삭제 오류:', error); + showToast(error.message || '설비 위치 삭제 중 오류가 발생했습니다.', 'error'); + } +} + +// 작업장 레이아웃 이미지 미리보기 +function previewWorkplaceLayoutImage(event) { + const file = event.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onload = function(e) { + const preview = document.getElementById('workplaceLayoutPreview'); + if (preview) { + preview.innerHTML = `미리보기`; + } + }; + reader.readAsDataURL(file); + } +} + +window.switchCategory = switchCategory; +window.openCategoryModal = openCategoryModal; +window.closeCategoryModal = closeCategoryModal; +window.saveCategory = saveCategory; +window.deleteCategory = deleteCategory; +window.openWorkplaceModal = openWorkplaceModal; +window.closeWorkplaceModal = closeWorkplaceModal; +window.editWorkplace = editWorkplace; +window.saveWorkplace = saveWorkplace; +window.deleteWorkplace = deleteWorkplace; +window.confirmDeleteWorkplace = confirmDeleteWorkplace; +window.refreshWorkplaces = refreshWorkplaces; +window.showToast = showToast; +window.loadCategories = loadCategories; +window.updateLayoutPreview = updateLayoutPreview; +window.openWorkplaceMapModal = openWorkplaceMapModal; +window.closeWorkplaceMapModal = closeWorkplaceMapModal; +window.uploadWorkplaceLayout = uploadWorkplaceLayout; +window.clearWorkplaceCurrentRegion = clearWorkplaceCurrentRegion; +window.saveWorkplaceEquipmentRegion = saveWorkplaceEquipmentRegion; +window.removeWorkplaceEquipmentRegion = removeWorkplaceEquipmentRegion; +window.previewWorkplaceLayoutImage = previewWorkplaceLayoutImage; +window.toggleNewEquipmentFields = toggleNewEquipmentFields; + +// 새 설비 필드 토글 (기존 설비 선택 시 숨김) +function toggleNewEquipmentFields() { + const selectEl = document.getElementById('equipmentSelectInput'); + const fieldsDiv = document.getElementById('newEquipmentFields'); + + if (selectEl && fieldsDiv) { + if (selectEl.value) { + fieldsDiv.style.display = 'none'; + } else { + fieldsDiv.style.display = 'block'; + } + } +} + +// ==================== 전체화면 설비 배치 편집기 ==================== + +// 전체화면 편집기 관련 전역 변수 +let fsCanvas = null; +let fsCtx = null; +let fsImage = null; +let fsIsDrawing = false; +let fsStartX = 0; +let fsStartY = 0; +let fsCurrentRect = null; +let fsSidebarVisible = true; + +// 전체화면 편집기 열기 +async function openFullscreenEquipmentEditor() { + const workplaceId = window.currentWorkplaceMapId; + if (!workplaceId) { + showToast('작업장을 먼저 선택해주세요.', 'warning'); + return; + } + + const workplace = workplaces.find(w => w.workplace_id === workplaceId); + if (!workplace) { + showToast('작업장 정보를 찾을 수 없습니다.', 'error'); + return; + } + + // 레이아웃 이미지 확인 + if (!workplace.layout_image) { + showToast('작업장 레이아웃 이미지를 먼저 업로드해주세요.', 'warning'); + return; + } + + // 전체화면 에디터 타이틀 설정 + const titleEl = document.getElementById('fullscreenEditorTitle'); + if (titleEl) { + titleEl.textContent = `${workplace.workplace_name} - 설비 위치 편집`; + } + + // 전체화면 에디터 표시 + const editor = document.getElementById('fullscreenEquipmentEditor'); + if (editor) { + editor.style.display = 'flex'; + document.body.style.overflow = 'hidden'; + } + + // 이미지 URL 생성 + const fullImageUrl = workplace.layout_image.startsWith('http') + ? workplace.layout_image + : `${window.API_BASE_URL || 'http://localhost:20005/api'}${workplace.layout_image}`.replace('/api/', '/'); + + // 캔버스 초기화 + initFullscreenCanvas(fullImageUrl); + + // 설비 목록 로드 및 드롭다운 업데이트 + await Promise.all([ + loadWorkplaceEquipments(workplaceId), + loadAllEquipments() + ]); + updateFsEquipmentUI(); +} + +// 전체화면 편집기 닫기 +function closeFullscreenEditor() { + const editor = document.getElementById('fullscreenEquipmentEditor'); + if (editor) { + editor.style.display = 'none'; + document.body.style.overflow = ''; + } + + // 전역 상태 초기화 + fsCanvas = null; + fsCtx = null; + fsImage = null; + fsIsDrawing = false; + fsCurrentRect = null; + + // 작업장 지도 모달의 설비 목록도 업데이트 + renderWorkplaceEquipmentList(); + + // 작업장 카드 목록 새로고침 (썸네일 업데이트) + renderWorkplaces(); +} + +// 사이드바 토글 +function toggleEditorSidebar() { + const sidebar = document.getElementById('fullscreenSidebar'); + const canvasArea = document.getElementById('fullscreenCanvasArea'); + const toggleIcon = document.getElementById('sidebarToggleIcon'); + + if (!sidebar || !canvasArea) return; + + fsSidebarVisible = !fsSidebarVisible; + + if (fsSidebarVisible) { + sidebar.style.display = 'flex'; + toggleIcon.textContent = '▶'; + } else { + sidebar.style.display = 'none'; + toggleIcon.textContent = '◀'; + } + + // 캔버스 크기 재조정 + if (fsImage) { + setTimeout(() => { + resizeFullscreenCanvas(); + }, 100); + } +} + +// 전체화면 캔버스 초기화 +function initFullscreenCanvas(imageUrl) { + const img = new Image(); + img.onload = function() { + fsImage = img; + fsCanvas = document.getElementById('fullscreenRegionCanvas'); + if (!fsCanvas) return; + + fsCtx = fsCanvas.getContext('2d'); + + // 캔버스 크기 조정 + resizeFullscreenCanvas(); + + // 이벤트 리스너 등록 + fsCanvas.onmousedown = startFsDraw; + fsCanvas.onmousemove = drawFsRegion; + fsCanvas.onmouseup = endFsDraw; + fsCanvas.onmouseleave = endFsDraw; + + // 터치 이벤트 지원 + fsCanvas.ontouchstart = handleFsTouchStart; + fsCanvas.ontouchmove = handleFsTouchMove; + fsCanvas.ontouchend = endFsDraw; + + console.log('✅ 전체화면 캔버스 초기화 완료'); + }; + + img.onerror = function() { + console.error('전체화면 이미지 로드 실패:', imageUrl); + showToast('이미지를 불러올 수 없습니다.', 'error'); + }; + + img.src = imageUrl; +} + +// 캔버스 크기 조정 (화면에 맞게) +function resizeFullscreenCanvas() { + if (!fsImage || !fsCanvas) return; + + const wrapper = document.getElementById('fullscreenCanvasWrapper'); + if (!wrapper) return; + + // 사용 가능한 영역 계산 + const maxWidth = wrapper.clientWidth - 40; + const maxHeight = wrapper.clientHeight - 40; + + // 이미지 비율 유지하면서 크기 조정 + const imgRatio = fsImage.width / fsImage.height; + const containerRatio = maxWidth / maxHeight; + + let scale; + if (imgRatio > containerRatio) { + // 이미지가 더 넓음 - 너비 기준 + scale = maxWidth / fsImage.width; + } else { + // 이미지가 더 높음 - 높이 기준 + scale = maxHeight / fsImage.height; + } + + // 최소/최대 스케일 제한 + scale = Math.min(Math.max(scale, 0.1), 2); + + fsCanvas.width = fsImage.width * scale; + fsCanvas.height = fsImage.height * scale; + + // 이미지 그리기 + fsCtx.drawImage(fsImage, 0, 0, fsCanvas.width, fsCanvas.height); + + // 기존 영역 그리기 + drawFsRegions(); + + // 줌 정보 업데이트 + const zoomInfo = document.getElementById('canvasZoomInfo'); + if (zoomInfo) { + zoomInfo.textContent = `${Math.round(scale * 100)}%`; + } +} + +// 드래그 시작 +function startFsDraw(e) { + fsIsDrawing = true; + const rect = fsCanvas.getBoundingClientRect(); + fsStartX = e.clientX - rect.left; + fsStartY = e.clientY - rect.top; +} + +// 드래그 중 +function drawFsRegion(e) { + if (!fsIsDrawing) return; + + const rect = fsCanvas.getBoundingClientRect(); + const currentX = e.clientX - rect.left; + const currentY = e.clientY - rect.top; + + // 캔버스 초기화 및 이미지 다시 그리기 + fsCtx.drawImage(fsImage, 0, 0, fsCanvas.width, fsCanvas.height); + + // 기존 영역들 표시 + drawFsRegions(); + + // 현재 그리는 사각형 (점선) + fsCtx.strokeStyle = '#3b82f6'; + fsCtx.lineWidth = 3; + fsCtx.setLineDash([8, 4]); + fsCtx.strokeRect( + fsStartX, + fsStartY, + currentX - fsStartX, + currentY - fsStartY + ); + fsCtx.setLineDash([]); + + // 선택 영역 배경 + fsCtx.fillStyle = 'rgba(59, 130, 246, 0.15)'; + fsCtx.fillRect( + fsStartX, + fsStartY, + currentX - fsStartX, + currentY - fsStartY + ); + + // 영역 정보 표시 + const width = Math.abs(currentX - fsStartX); + const height = Math.abs(currentY - fsStartY); + fsCtx.font = 'bold 12px sans-serif'; + fsCtx.fillStyle = '#3b82f6'; + fsCtx.fillText(`${Math.round(width)} × ${Math.round(height)}px`, Math.min(fsStartX, currentX) + 5, Math.min(fsStartY, currentY) - 5); + + fsCurrentRect = { + x: fsStartX, + y: fsStartY, + width: currentX - fsStartX, + height: currentY - fsStartY + }; +} + +// 드래그 종료 +function endFsDraw(e) { + fsIsDrawing = false; +} + +// 터치 이벤트 핸들러 +function handleFsTouchStart(e) { + e.preventDefault(); + const touch = e.touches[0]; + const rect = fsCanvas.getBoundingClientRect(); + fsIsDrawing = true; + fsStartX = touch.clientX - rect.left; + fsStartY = touch.clientY - rect.top; +} + +function handleFsTouchMove(e) { + e.preventDefault(); + if (!fsIsDrawing) return; + + const touch = e.touches[0]; + const rect = fsCanvas.getBoundingClientRect(); + const currentX = touch.clientX - rect.left; + const currentY = touch.clientY - rect.top; + + // 캔버스 초기화 및 이미지 다시 그리기 + fsCtx.drawImage(fsImage, 0, 0, fsCanvas.width, fsCanvas.height); + drawFsRegions(); + + // 현재 그리는 사각형 + fsCtx.strokeStyle = '#3b82f6'; + fsCtx.lineWidth = 3; + fsCtx.setLineDash([8, 4]); + fsCtx.strokeRect( + fsStartX, + fsStartY, + currentX - fsStartX, + currentY - fsStartY + ); + fsCtx.setLineDash([]); + + fsCtx.fillStyle = 'rgba(59, 130, 246, 0.15)'; + fsCtx.fillRect( + fsStartX, + fsStartY, + currentX - fsStartX, + currentY - fsStartY + ); + + fsCurrentRect = { + x: fsStartX, + y: fsStartY, + width: currentX - fsStartX, + height: currentY - fsStartY + }; +} + +// 기존 영역들 그리기 +function drawFsRegions() { + workplaceEquipmentRegions.forEach((region, index) => { + // 퍼센트를 픽셀로 변환 + const x = (region.x_percent / 100) * fsCanvas.width; + const y = (region.y_percent / 100) * fsCanvas.height; + const width = (region.width_percent / 100) * fsCanvas.width; + const height = (region.height_percent / 100) * fsCanvas.height; + + // 영역 배경 (반투명) + fsCtx.fillStyle = 'rgba(16, 185, 129, 0.2)'; + fsCtx.fillRect(x, y, width, height); + + // 영역 테두리 + fsCtx.strokeStyle = '#10b981'; + fsCtx.lineWidth = 2; + fsCtx.strokeRect(x, y, width, height); + + // 영역 이름 표시 + const displayName = region.equipment_code + ? `[${region.equipment_code}] ${region.equipment_name}` + : region.equipment_name; + fsCtx.font = 'bold 13px sans-serif'; + const textMetrics = fsCtx.measureText(displayName); + const textPadding = 6; + + // 텍스트 배경 + fsCtx.fillStyle = 'rgba(255, 255, 255, 0.95)'; + fsCtx.fillRect(x + 4, y + 4, textMetrics.width + textPadding * 2, 22); + + // 텍스트 + fsCtx.fillStyle = '#047857'; + fsCtx.fillText(displayName, x + 4 + textPadding, y + 19); + }); +} + +// 현재 영역 지우기 +function fsClearCurrentRegion() { + fsCurrentRect = null; + if (fsCanvas && fsImage) { + fsCtx.drawImage(fsImage, 0, 0, fsCanvas.width, fsCanvas.height); + drawFsRegions(); + } + showToast('영역이 초기화되었습니다.', 'info'); +} + +// 설비 영역 저장 (전체화면 편집기용) +async function fsSaveEquipmentRegion() { + const equipmentSelect = document.getElementById('fsEquipmentSelect'); + const equipmentNameInput = document.getElementById('fsEquipmentName'); + const equipmentCodeInput = document.getElementById('fsEquipmentCode'); + + const selectedEquipmentId = equipmentSelect?.value; + const newEquipmentName = equipmentNameInput?.value.trim(); + const newEquipmentCode = equipmentCodeInput?.value.trim(); + + // 기존 설비 선택 또는 새 설비 입력 확인 + if (!selectedEquipmentId && (!newEquipmentName || !newEquipmentCode)) { + showToast('기존 설비를 선택하거나 새 설비 코드와 이름을 입력해주세요.', 'warning'); + return; + } + + if (!fsCurrentRect) { + showToast('지도에서 영역을 드래그하여 선택해주세요.', 'warning'); + return; + } + + // 퍼센트로 변환 (음수 영역 처리) + let xPercent = (Math.min(fsCurrentRect.x, fsCurrentRect.x + fsCurrentRect.width) / fsCanvas.width) * 100; + let yPercent = (Math.min(fsCurrentRect.y, fsCurrentRect.y + fsCurrentRect.height) / fsCanvas.height) * 100; + let widthPercent = (Math.abs(fsCurrentRect.width) / fsCanvas.width) * 100; + let heightPercent = (Math.abs(fsCurrentRect.height) / fsCanvas.height) * 100; + + try { + let equipmentId = selectedEquipmentId; + let equipmentName = ''; + let equipmentCode = ''; + + if (selectedEquipmentId) { + // 기존 설비 - 위치 및 작업장 업데이트 + const response = await window.apiCall(`/equipments/${selectedEquipmentId}/map-position`, 'PATCH', { + workplace_id: window.currentWorkplaceMapId, + map_x_percent: xPercent, + map_y_percent: yPercent, + map_width_percent: widthPercent, + map_height_percent: heightPercent + }); + + if (!response || !response.success) { + throw new Error(response?.message || '위치 저장 실패'); + } + + const eq = allEquipments.find(e => e.equipment_id == selectedEquipmentId); + equipmentName = eq?.equipment_name || '설비'; + equipmentCode = eq?.equipment_code || ''; + } else { + // 새 설비 생성 + const response = await window.apiCall('/equipments', 'POST', { + equipment_code: newEquipmentCode, + equipment_name: newEquipmentName, + workplace_id: window.currentWorkplaceMapId, + map_x_percent: xPercent, + map_y_percent: yPercent, + map_width_percent: widthPercent, + map_height_percent: heightPercent, + status: 'active' + }); + + if (!response || !response.success) { + throw new Error(response?.message || '설비 생성 실패'); + } + + equipmentId = response.data.equipment_id; + equipmentName = newEquipmentName; + equipmentCode = newEquipmentCode; + } + + // 로컬 배열 업데이트 + const newRegion = { + equipment_id: equipmentId, + equipment_name: equipmentName, + equipment_code: equipmentCode, + x_percent: xPercent, + y_percent: yPercent, + width_percent: widthPercent, + height_percent: heightPercent + }; + + // 기존 영역이 있으면 교체, 없으면 추가 + const existingIndex = workplaceEquipmentRegions.findIndex(r => r.equipment_id == equipmentId); + if (existingIndex >= 0) { + workplaceEquipmentRegions[existingIndex] = newRegion; + } else { + workplaceEquipmentRegions.push(newRegion); + } + + // 설비 목록 새로고침 + await Promise.all([ + loadWorkplaceEquipments(window.currentWorkplaceMapId), + loadAllEquipments() + ]); + + // 입력 필드 초기화 (UI 업데이트 전에 먼저) + if (equipmentNameInput) equipmentNameInput.value = ''; + if (equipmentCodeInput) equipmentCodeInput.value = ''; // 비워야 다음 코드 자동 로드됨 + if (equipmentSelect) equipmentSelect.value = ''; + + // UI 업데이트 및 다음 관리번호 로드 + await updateFsEquipmentUI(); + fsClearCurrentRegion(); + + showToast(`설비 "${equipmentName}" 위치가 저장되었습니다.`, 'success'); + } catch (error) { + console.error('설비 위치 저장 오류:', error); + showToast(error.message || '설비 위치 저장 중 오류가 발생했습니다.', 'error'); + } +} + +// 새 설비 필드 토글 (전체화면 편집기용) +function fsToggleNewEquipmentFields() { + const selectEl = document.getElementById('fsEquipmentSelect'); + const fieldsDiv = document.getElementById('fsNewEquipmentFields'); + + if (selectEl && fieldsDiv) { + if (selectEl.value) { + fieldsDiv.style.opacity = '0.5'; + fieldsDiv.querySelector('input')?.setAttribute('disabled', 'true'); + document.getElementById('fsEquipmentCode')?.setAttribute('disabled', 'true'); + document.getElementById('fsEquipmentName')?.setAttribute('disabled', 'true'); + } else { + fieldsDiv.style.opacity = '1'; + document.getElementById('fsEquipmentCode')?.removeAttribute('disabled'); + document.getElementById('fsEquipmentName')?.removeAttribute('disabled'); + } + } +} + +// 다음 관리번호 로드 (전체화면 편집기용) +async function loadNextEquipmentCodeForFs() { + try { + const response = await window.apiCall('/equipments/next-code', 'GET'); + if (response && response.success) { + const codeInput = document.getElementById('fsEquipmentCode'); + if (codeInput && !codeInput.value) { + codeInput.value = response.data.next_code; + } + } + } catch (error) { + console.error('다음 관리번호 조회 실패:', error); + // 오류 시 무시 (사용자가 직접 입력) + } +} + +// 전체화면 편집기 UI 업데이트 +async function updateFsEquipmentUI() { + // 설비 선택 드롭다운 업데이트 + const selectEl = document.getElementById('fsEquipmentSelect'); + if (selectEl) { + // 지도에 미배치된 설비만 표시 + const availableEquipments = allEquipments.filter(eq => + eq.map_x_percent == null || eq.map_x_percent === '' + ); + + // 이미 이 작업장에 배치된 설비 제외 + const registeredIds = workplaceEquipmentRegions.map(r => r.equipment_id); + const unregisteredEquipments = availableEquipments.filter(eq => !registeredIds.includes(eq.equipment_id)); + + let options = ''; + + if (unregisteredEquipments.length === 0) { + options += ''; + } else { + unregisteredEquipments.forEach(eq => { + options += ``; + }); + } + + selectEl.innerHTML = options; + + // 배치 가능한 설비 수 표시 + const countEl = document.getElementById('fsAvailableEquipmentCount'); + if (countEl) { + countEl.textContent = `${unregisteredEquipments.length}개`; + } + } + + // 새 설비 코드 자동 생성 + await loadNextEquipmentCodeForFs(); + + // 등록된 설비 목록 업데이트 + const listEl = document.getElementById('fsEquipmentList'); + if (listEl) { + if (workplaceEquipmentRegions.length === 0) { + listEl.innerHTML = '

등록된 설비가 없습니다

'; + } else { + let html = ''; + workplaceEquipmentRegions.forEach((region) => { + html += ` +
+
+ ${region.equipment_name} + [${region.equipment_code || '-'}] +
+ 위치: (${region.x_percent.toFixed(1)}%, ${region.y_percent.toFixed(1)}%) +
+
+ +
+ `; + }); + listEl.innerHTML = html; + } + + // 등록된 설비 수 표시 + const registeredCountEl = document.getElementById('fsRegisteredCount'); + if (registeredCountEl) { + registeredCountEl.textContent = `${workplaceEquipmentRegions.length}개`; + } + } + + // 작업장 지도 모달의 설비 수도 업데이트 + const modalCountEl = document.getElementById('workplaceEquipmentCount'); + if (modalCountEl) { + modalCountEl.textContent = `${workplaceEquipmentRegions.length}개`; + } +} + +// 설비 영역 삭제 (전체화면 편집기용) +async function fsRemoveEquipmentRegion(equipmentId) { + if (!confirm('이 설비의 지도 위치를 삭제하시겠습니까?')) { + return; + } + + try { + // API로 지도 위치 초기화 + const response = await window.apiCall(`/equipments/${equipmentId}/map-position`, 'PATCH', { + map_x_percent: null, + map_y_percent: null, + map_width_percent: null, + map_height_percent: null + }); + + if (!response || !response.success) { + throw new Error(response?.message || '위치 삭제 실패'); + } + + // 로컬 배열에서 제거 + workplaceEquipmentRegions = workplaceEquipmentRegions.filter(r => r.equipment_id != equipmentId); + + // 설비 목록 새로고침 + await Promise.all([ + loadWorkplaceEquipments(window.currentWorkplaceMapId), + loadAllEquipments() + ]); + + // UI 업데이트 + updateFsEquipmentUI(); + + // 캔버스 다시 그리기 + if (fsCanvas && fsImage) { + fsCtx.drawImage(fsImage, 0, 0, fsCanvas.width, fsCanvas.height); + drawFsRegions(); + } + + showToast('설비 위치가 삭제되었습니다.', 'success'); + } catch (error) { + console.error('설비 위치 삭제 오류:', error); + showToast(error.message || '삭제 중 오류가 발생했습니다.', 'error'); + } +} + +// 전체화면 편집기 함수들 전역 노출 +window.openFullscreenEquipmentEditor = openFullscreenEquipmentEditor; +window.closeFullscreenEditor = closeFullscreenEditor; +window.toggleEditorSidebar = toggleEditorSidebar; +window.fsClearCurrentRegion = fsClearCurrentRegion; +window.fsSaveEquipmentRegion = fsSaveEquipmentRegion; +window.fsToggleNewEquipmentFields = fsToggleNewEquipmentFields; +window.fsRemoveEquipmentRegion = fsRemoveEquipmentRegion; diff --git a/deploy/tkfb-package/web-ui/js/workplace-management/api.js b/deploy/tkfb-package/web-ui/js/workplace-management/api.js new file mode 100644 index 0000000..d4880d6 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/workplace-management/api.js @@ -0,0 +1,329 @@ +/** + * Workplace Management - API Client + * 작업장 관리 관련 모든 API 호출을 관리 + */ + +class WorkplaceAPI { + constructor() { + this.state = window.WorkplaceState; + this.utils = window.WorkplaceUtils; + console.log('[WorkplaceAPI] 초기화 완료'); + } + + /** + * 모든 데이터 로드 + */ + async loadAllData() { + try { + await Promise.all([ + this.loadCategories(), + this.loadWorkplaces() + ]); + console.log('✅ 모든 데이터 로드 완료'); + } catch (error) { + console.error('데이터 로딩 오류:', error); + window.showToast?.('데이터를 불러오는데 실패했습니다.', 'error'); + } + } + + /** + * 카테고리 목록 로드 + */ + async loadCategories() { + try { + const response = await window.apiCall('/workplaces/categories', 'GET'); + + let categoryData = []; + if (response && response.success && Array.isArray(response.data)) { + categoryData = response.data; + } else if (Array.isArray(response)) { + categoryData = response; + } + + this.state.categories = categoryData; + console.log(`✅ 카테고리 ${this.state.categories.length}개 로드 완료`); + return categoryData; + } catch (error) { + console.error('카테고리 로딩 오류:', error); + this.state.categories = []; + return []; + } + } + + /** + * 카테고리 저장 (생성/수정) + */ + async saveCategory(categoryId, categoryData) { + try { + let response; + if (categoryId) { + response = await window.apiCall(`/workplaces/categories/${categoryId}`, 'PUT', categoryData); + } else { + response = await window.apiCall('/workplaces/categories', 'POST', categoryData); + } + + if (response && (response.success || response.category_id)) { + return response; + } + throw new Error(response?.message || '저장에 실패했습니다.'); + } catch (error) { + console.error('카테고리 저장 오류:', error); + throw error; + } + } + + /** + * 카테고리 삭제 + */ + async deleteCategory(categoryId) { + try { + const response = await window.apiCall(`/workplaces/categories/${categoryId}`, 'DELETE'); + if (response && response.success) { + return response; + } + throw new Error(response?.message || '삭제에 실패했습니다.'); + } catch (error) { + console.error('카테고리 삭제 오류:', error); + throw error; + } + } + + /** + * 작업장 목록 로드 + */ + async loadWorkplaces() { + try { + const response = await window.apiCall('/workplaces', 'GET'); + + let workplaceData = []; + if (response && response.success && Array.isArray(response.data)) { + workplaceData = response.data; + } else if (Array.isArray(response)) { + workplaceData = response; + } + + this.state.workplaces = workplaceData; + console.log(`✅ 작업장 ${this.state.workplaces.length}개 로드 완료`); + return workplaceData; + } catch (error) { + console.error('작업장 로딩 오류:', error); + this.state.workplaces = []; + return []; + } + } + + /** + * 작업장 저장 (생성/수정) + */ + async saveWorkplace(workplaceId, workplaceData) { + try { + let response; + if (workplaceId) { + response = await window.apiCall(`/workplaces/${workplaceId}`, 'PUT', workplaceData); + } else { + response = await window.apiCall('/workplaces', 'POST', workplaceData); + } + + if (response && (response.success || response.workplace_id)) { + return response; + } + throw new Error(response?.message || '저장에 실패했습니다.'); + } catch (error) { + console.error('작업장 저장 오류:', error); + throw error; + } + } + + /** + * 작업장 삭제 + */ + async deleteWorkplace(workplaceId) { + try { + const response = await window.apiCall(`/workplaces/${workplaceId}`, 'DELETE'); + if (response && response.success) { + return response; + } + throw new Error(response?.message || '삭제에 실패했습니다.'); + } catch (error) { + console.error('작업장 삭제 오류:', error); + throw error; + } + } + + /** + * 카테고리의 지도 영역 로드 + */ + async loadMapRegions(categoryId) { + try { + const response = await window.apiCall(`/workplaces/categories/${categoryId}/map-regions`, 'GET'); + + let regions = []; + if (response && response.success && Array.isArray(response.data)) { + regions = response.data; + } else if (Array.isArray(response)) { + regions = response; + } + return regions; + } catch (error) { + console.error('지도 영역 로드 오류:', error); + return []; + } + } + + /** + * 작업장의 지도 영역 로드 + */ + async loadWorkplaceMapRegion(workplaceId) { + try { + const response = await window.apiCall(`/workplaces/map-regions/workplace/${workplaceId}`, 'GET'); + return response; + } catch (error) { + console.error('작업장 지도 영역 로드 오류:', error); + return null; + } + } + + /** + * 작업장의 설비 목록 로드 + */ + async loadWorkplaceEquipments(workplaceId) { + try { + const response = await window.apiCall(`/equipments/workplace/${workplaceId}`, 'GET'); + + let equipments = []; + if (response && response.success && Array.isArray(response.data)) { + equipments = response.data; + } else if (Array.isArray(response)) { + equipments = response; + } + + // 지도 영역이 있는 설비만 workplaceEquipmentRegions에 추가 + this.state.workplaceEquipmentRegions = equipments + .filter(eq => eq.map_x_percent != null && eq.map_y_percent != null) + .map(eq => ({ + equipment_id: eq.equipment_id, + equipment_name: eq.equipment_name, + equipment_code: eq.equipment_code, + x_percent: parseFloat(eq.map_x_percent), + y_percent: parseFloat(eq.map_y_percent), + width_percent: parseFloat(eq.map_width_percent) || 10, + height_percent: parseFloat(eq.map_height_percent) || 10 + })); + + this.state.existingEquipments = equipments; + + console.log(`✅ 작업장 ${workplaceId}의 설비 ${equipments.length}개 로드 완료`); + return equipments; + } catch (error) { + console.error('설비 로드 오류:', error); + this.state.workplaceEquipmentRegions = []; + this.state.existingEquipments = []; + return []; + } + } + + /** + * 전체 설비 목록 로드 + */ + async loadAllEquipments() { + try { + const response = await window.apiCall('/equipments', 'GET'); + + let equipments = []; + if (response && response.success && Array.isArray(response.data)) { + equipments = response.data; + } else if (Array.isArray(response)) { + equipments = response; + } + + this.state.allEquipments = equipments; + console.log(`✅ 전체 설비 ${this.state.allEquipments.length}개 로드 완료`); + return equipments; + } catch (error) { + console.error('전체 설비 로드 오류:', error); + this.state.allEquipments = []; + return []; + } + } + + /** + * 설비 지도 위치 업데이트 + */ + async updateEquipmentMapPosition(equipmentId, positionData) { + try { + const response = await window.apiCall(`/equipments/${equipmentId}/map-position`, 'PATCH', positionData); + if (!response || !response.success) { + throw new Error(response?.message || '위치 저장 실패'); + } + return response; + } catch (error) { + console.error('설비 위치 업데이트 오류:', error); + throw error; + } + } + + /** + * 새 설비 생성 + */ + async createEquipment(equipmentData) { + try { + const response = await window.apiCall('/equipments', 'POST', equipmentData); + if (!response || !response.success) { + throw new Error(response?.message || '설비 생성 실패'); + } + return response; + } catch (error) { + console.error('설비 생성 오류:', error); + throw error; + } + } + + /** + * 다음 관리번호 조회 + */ + async getNextEquipmentCode() { + try { + const response = await window.apiCall('/equipments/next-code', 'GET'); + if (response && response.success) { + return response.data.next_code; + } + return null; + } catch (error) { + console.error('다음 관리번호 조회 실패:', error); + return null; + } + } + + /** + * 작업장 레이아웃 이미지 업로드 + */ + async uploadWorkplaceLayout(workplaceId, formData) { + try { + const response = await fetch( + `${this.utils.getApiBaseUrl()}/workplaces/${workplaceId}/layout-image`, + { + method: 'POST', + headers: { + 'Authorization': `Bearer ${localStorage.getItem('token')}` + }, + body: formData + } + ); + return await response.json(); + } catch (error) { + console.error('레이아웃 이미지 업로드 오류:', error); + throw error; + } + } +} + +// 전역 인스턴스 생성 +window.WorkplaceAPI = new WorkplaceAPI(); + +// 하위 호환성: 기존 함수들 +window.loadCategories = () => window.WorkplaceAPI.loadCategories(); +window.loadWorkplaces = () => window.WorkplaceAPI.loadWorkplaces(); +window.loadWorkplaceEquipments = (id) => window.WorkplaceAPI.loadWorkplaceEquipments(id); +window.loadAllEquipments = () => window.WorkplaceAPI.loadAllEquipments(); + +console.log('[Module] workplace-management/api.js 로드 완료'); diff --git a/deploy/tkfb-package/web-ui/js/workplace-management/index.js b/deploy/tkfb-package/web-ui/js/workplace-management/index.js new file mode 100644 index 0000000..dde85da --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/workplace-management/index.js @@ -0,0 +1,553 @@ +/** + * Workplace Management - Module Loader + * 작업장 관리 모듈을 초기화하고 연결하는 메인 진입점 + * + * 로드 순서: + * 1. state.js - 전역 상태 관리 + * 2. utils.js - 유틸리티 함수 + * 3. api.js - API 클라이언트 + * 4. index.js - 이 파일 (메인 컨트롤러) + */ + +class WorkplaceController { + constructor() { + this.state = window.WorkplaceState; + this.api = window.WorkplaceAPI; + this.utils = window.WorkplaceUtils; + this.initialized = false; + + console.log('[WorkplaceController] 생성'); + } + + /** + * 초기화 + */ + async init() { + if (this.initialized) { + console.log('[WorkplaceController] 이미 초기화됨'); + return; + } + + console.log('🏗️ 작업장 관리 페이지 초기화 시작'); + + // API 함수가 로드될 때까지 대기 + let retryCount = 0; + while (!window.apiCall && retryCount < 50) { + await new Promise(resolve => setTimeout(resolve, 100)); + retryCount++; + } + + if (!window.apiCall) { + window.showToast?.('시스템을 초기화할 수 없습니다. 페이지를 새로고침해주세요.', 'error'); + return; + } + + // 모든 데이터 로드 + await this.loadAllData(); + + this.initialized = true; + console.log('[WorkplaceController] 초기화 완료'); + } + + /** + * 모든 데이터 로드 + */ + async loadAllData() { + try { + await this.api.loadAllData(); + this.renderCategoryTabs(); + this.renderWorkplaces(); + this.updateStatistics(); + } catch (error) { + console.error('데이터 로딩 오류:', error); + window.showToast?.('데이터를 불러오는데 실패했습니다.', 'error'); + } + } + + /** + * 카테고리 탭 렌더링 + */ + renderCategoryTabs() { + const tabsContainer = document.getElementById('categoryTabs'); + if (!tabsContainer) return; + + const categories = this.state.categories; + const workplaces = this.state.workplaces; + const currentCategoryId = this.state.currentCategoryId; + + let tabsHtml = ` + + `; + + categories.forEach(category => { + const count = workplaces.filter(w => w.category_id === category.category_id).length; + const isActive = currentCategoryId === category.category_id; + + tabsHtml += ` + + `; + }); + + tabsContainer.innerHTML = tabsHtml; + } + + /** + * 카테고리 전환 + */ + async switchCategory(categoryId) { + this.state.setCurrentCategory(categoryId); + this.renderCategoryTabs(); + this.renderWorkplaces(); + + const layoutMapSection = document.getElementById('layoutMapSection'); + const selectedCategoryName = document.getElementById('selectedCategoryName'); + + if (categoryId && layoutMapSection) { + const category = this.state.getCurrentCategory(); + if (category) { + layoutMapSection.style.display = 'block'; + if (selectedCategoryName) { + selectedCategoryName.textContent = category.category_name; + } + await this.updateLayoutPreview(category); + } + } else if (layoutMapSection) { + layoutMapSection.style.display = 'none'; + } + } + + /** + * 레이아웃 미리보기 업데이트 + */ + async updateLayoutPreview(category) { + const previewDiv = document.getElementById('layoutMapPreview'); + if (!previewDiv) return; + + if (category.layout_image) { + const fullImageUrl = this.utils.getFullImageUrl(category.layout_image); + + previewDiv.innerHTML = ` +
+ +

+ 클릭하여 작업장 영역을 수정하려면 "지도 설정" 버튼을 누르세요 +

+
+ `; + + await this.loadImageWithRegions(fullImageUrl, category.category_id); + } else { + previewDiv.innerHTML = ` +
+ 🗺️ +

+ 이 공장의 레이아웃 이미지가 아직 등록되지 않았습니다 +

+

+ "지도 설정" 버튼을 눌러 레이아웃 이미지를 업로드하고 작업장 위치를 지정하세요 +

+
+ `; + } + } + + /** + * 이미지와 영역을 캔버스에 로드 + */ + async loadImageWithRegions(imageUrl, categoryId) { + const canvas = document.getElementById('previewCanvas'); + if (!canvas) return; + + const ctx = canvas.getContext('2d'); + const img = new Image(); + const self = this; + + img.onload = async function() { + const maxWidth = 800; + const scale = img.width > maxWidth ? maxWidth / img.width : 1; + + canvas.width = img.width * scale; + canvas.height = img.height * scale; + + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + + try { + const regions = await self.api.loadMapRegions(categoryId); + + regions.forEach(region => { + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + + const width = x2 - x1; + const height = y2 - y1; + + ctx.strokeStyle = '#10b981'; + ctx.lineWidth = 2; + ctx.strokeRect(x1, y1, width, height); + + ctx.fillStyle = 'rgba(16, 185, 129, 0.15)'; + ctx.fillRect(x1, y1, width, height); + + if (region.workplace_name) { + ctx.font = 'bold 14px sans-serif'; + const textMetrics = ctx.measureText(region.workplace_name); + const textPadding = 4; + + ctx.fillStyle = 'rgba(255, 255, 255, 0.9)'; + ctx.fillRect(x1 + 5, y1 + 5, textMetrics.width + textPadding * 2, 20); + + ctx.fillStyle = '#10b981'; + ctx.fillText(region.workplace_name, x1 + 5 + textPadding, y1 + 20); + } + }); + + if (regions.length > 0) { + console.log(`✅ 레이아웃 미리보기에 ${regions.length}개 영역 표시 완료`); + } + } catch (error) { + console.error('영역 로드 오류:', error); + } + }; + + img.onerror = function() { + console.error('이미지 로드 실패:', imageUrl); + }; + + img.src = imageUrl; + } + + /** + * 작업장 렌더링 + */ + renderWorkplaces() { + const grid = document.getElementById('workplaceGrid'); + if (!grid) return; + + const filtered = this.state.getFilteredWorkplaces(); + + if (filtered.length === 0) { + grid.innerHTML = ` +
+
🏗️
+

등록된 작업장이 없습니다

+

"작업장 추가" 버튼을 눌러 작업장을 등록해보세요

+ +
+ `; + return; + } + + let gridHtml = ''; + + filtered.forEach(workplace => { + const categoryName = workplace.category_name || '미분류'; + const isActive = workplace.is_active === 1 || workplace.is_active === true; + const purposeIcon = this.utils.getPurposeIcon(workplace.workplace_purpose); + + gridHtml += ` +
+
+
${purposeIcon}
+
+

${workplace.workplace_name}

+
+ ${workplace.category_id ? `🏭 ${categoryName}` : ''} + ${workplace.workplace_purpose ? `${workplace.workplace_purpose}` : ''} +
+
+
+ + + +
+
+ ${workplace.description ? `

${workplace.description}

` : ''} +
+
+ 등록: ${this.utils.formatDate(workplace.created_at)} + ${workplace.updated_at !== workplace.created_at ? `수정: ${this.utils.formatDate(workplace.updated_at)}` : ''} +
+
+ `; + }); + + grid.innerHTML = gridHtml; + + filtered.forEach(workplace => { + if (workplace.category_id) { + this.loadWorkplaceMapThumbnail(workplace); + } + }); + } + + /** + * 작업장 카드에 지도 썸네일 로드 + */ + async loadWorkplaceMapThumbnail(workplace) { + const thumbnailDiv = document.getElementById(`workplace-map-${workplace.workplace_id}`); + if (!thumbnailDiv) return; + + if (workplace.layout_image) { + const fullImageUrl = this.utils.getFullImageUrl(workplace.layout_image); + + let equipmentCount = 0; + try { + const eqResponse = await window.apiCall(`/equipments/workplace/${workplace.workplace_id}`, 'GET'); + if (eqResponse && eqResponse.success && Array.isArray(eqResponse.data)) { + equipmentCount = eqResponse.data.filter(eq => eq.map_x_percent != null).length; + } + } catch (e) { + console.debug('설비 정보 로드 실패'); + } + + const canvasId = `layout-canvas-${workplace.workplace_id}`; + thumbnailDiv.innerHTML = ` +
+
+ 📍 작업장 지도 + ${equipmentCount > 0 ? `설비 ${equipmentCount}개` : ''} +
+ +
클릭하여 지도 관리
+
+ `; + + await this.loadWorkplaceCanvasWithEquipments(workplace.workplace_id, fullImageUrl, canvasId); + return; + } + + try { + const response = await this.api.loadWorkplaceMapRegion(workplace.workplace_id); + + if (!response || (!response.success && !response.region_id)) { + thumbnailDiv.innerHTML = ` +
+
🗺️
+
클릭하여 지도 설정
+
+ `; + return; + } + + const region = response.success ? response.data : response; + + if (!region || region.x_start === undefined || region.y_start === undefined || + region.x_end === undefined || region.y_end === undefined) { + return; + } + + const category = this.state.categories.find(c => c.category_id === workplace.category_id); + if (!category || !category.layout_image) return; + + const fullImageUrl = this.utils.getFullImageUrl(category.layout_image); + + const canvasId = `thumbnail-canvas-${workplace.workplace_id}`; + thumbnailDiv.innerHTML = ` +
+
📍 공장 지도 내 위치
+ +
클릭하여 상세 지도 설정
+
+ `; + + const img = new Image(); + img.onload = function() { + const canvas = document.getElementById(canvasId); + if (!canvas) return; + + const ctx = canvas.getContext('2d'); + + const x1 = (region.x_start / 100) * img.width; + const y1 = (region.y_start / 100) * img.height; + const x2 = (region.x_end / 100) * img.width; + const y2 = (region.y_end / 100) * img.height; + + const regionWidth = x2 - x1; + const regionHeight = y2 - y1; + + const maxThumbWidth = 350; + const scale = regionWidth > maxThumbWidth ? maxThumbWidth / regionWidth : 1; + + canvas.width = regionWidth * scale; + canvas.height = regionHeight * scale; + + ctx.drawImage( + img, + x1, y1, regionWidth, regionHeight, + 0, 0, canvas.width, canvas.height + ); + + ctx.strokeStyle = '#10b981'; + ctx.lineWidth = 3; + ctx.strokeRect(0, 0, canvas.width, canvas.height); + }; + + img.onerror = function() { + thumbnailDiv.innerHTML = ''; + }; + + img.src = fullImageUrl; + } catch (error) { + console.debug(`작업장 ${workplace.workplace_id}의 지도 영역 없음`); + } + } + + /** + * 작업장 캔버스에 설비 영역 함께 그리기 + */ + async loadWorkplaceCanvasWithEquipments(workplaceId, imageUrl, canvasId) { + const img = new Image(); + img.onload = async function() { + const canvas = document.getElementById(canvasId); + if (!canvas) return; + + const ctx = canvas.getContext('2d'); + + const maxThumbWidth = 400; + const scale = img.width > maxThumbWidth ? maxThumbWidth / img.width : 1; + + canvas.width = img.width * scale; + canvas.height = img.height * scale; + + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + + try { + const response = await window.apiCall(`/equipments/workplace/${workplaceId}`, 'GET'); + let equipments = []; + if (response && response.success && Array.isArray(response.data)) { + equipments = response.data.filter(eq => eq.map_x_percent != null); + } + + equipments.forEach(eq => { + const x = (parseFloat(eq.map_x_percent) / 100) * canvas.width; + const y = (parseFloat(eq.map_y_percent) / 100) * canvas.height; + const width = (parseFloat(eq.map_width_percent || 10) / 100) * canvas.width; + const height = (parseFloat(eq.map_height_percent || 10) / 100) * canvas.height; + + ctx.fillStyle = 'rgba(16, 185, 129, 0.2)'; + ctx.fillRect(x, y, width, height); + + ctx.strokeStyle = '#10b981'; + ctx.lineWidth = 2; + ctx.strokeRect(x, y, width, height); + + if (eq.equipment_code) { + ctx.font = 'bold 10px sans-serif'; + const textMetrics = ctx.measureText(eq.equipment_code); + ctx.fillStyle = 'rgba(255, 255, 255, 0.9)'; + ctx.fillRect(x + 2, y + 2, textMetrics.width + 6, 14); + ctx.fillStyle = '#047857'; + ctx.fillText(eq.equipment_code, x + 5, y + 12); + } + }); + } catch (error) { + console.debug('설비 영역 로드 실패'); + } + }; + img.src = imageUrl; + } + + /** + * 통계 업데이트 + */ + async updateStatistics() { + const stats = this.state.getStatistics(); + + const factoryCountEl = document.getElementById('factoryCount'); + const totalCountEl = document.getElementById('totalCount'); + const activeCountEl = document.getElementById('activeCount'); + const equipmentCountEl = document.getElementById('equipmentCount'); + + if (factoryCountEl) factoryCountEl.textContent = stats.factoryTotal; + if (totalCountEl) totalCountEl.textContent = stats.total; + if (activeCountEl) activeCountEl.textContent = stats.active; + + if (equipmentCountEl) { + try { + const equipments = await this.api.loadAllEquipments(); + equipmentCountEl.textContent = equipments.length; + } catch (e) { + equipmentCountEl.textContent = '-'; + } + } + + const sectionTotalEl = document.getElementById('sectionTotalCount'); + const sectionActiveEl = document.getElementById('sectionActiveCount'); + + if (sectionTotalEl) sectionTotalEl.textContent = stats.filteredTotal; + if (sectionActiveEl) sectionActiveEl.textContent = stats.filteredActive; + } + + /** + * 전체 새로고침 + */ + async refreshWorkplaces() { + const refreshBtn = document.querySelector('.btn-secondary'); + if (refreshBtn) { + const originalText = refreshBtn.innerHTML; + refreshBtn.innerHTML = '새로고침 중...'; + refreshBtn.disabled = true; + + await this.loadAllData(); + + refreshBtn.innerHTML = originalText; + refreshBtn.disabled = false; + } else { + await this.loadAllData(); + } + + window.showToast?.('데이터가 새로고침되었습니다.', 'success'); + } + + /** + * 디버그 + */ + debug() { + console.log('[WorkplaceController] 상태 디버그:'); + this.state.debug(); + } +} + +// 전역 인스턴스 생성 +window.WorkplaceController = new WorkplaceController(); + +// 하위 호환성: 기존 전역 함수들 +window.switchCategory = (categoryId) => window.WorkplaceController.switchCategory(categoryId); +window.renderCategoryTabs = () => window.WorkplaceController.renderCategoryTabs(); +window.renderWorkplaces = () => window.WorkplaceController.renderWorkplaces(); +window.updateStatistics = () => window.WorkplaceController.updateStatistics(); +window.refreshWorkplaces = () => window.WorkplaceController.refreshWorkplaces(); +window.loadAllData = () => window.WorkplaceController.loadAllData(); +window.updateLayoutPreview = (category) => window.WorkplaceController.updateLayoutPreview(category); + +// DOMContentLoaded 이벤트에서 초기화 +document.addEventListener('DOMContentLoaded', () => { + setTimeout(() => { + window.WorkplaceController.init(); + }, 100); +}); + +console.log('[Module] workplace-management/index.js 로드 완료'); diff --git a/deploy/tkfb-package/web-ui/js/workplace-management/state.js b/deploy/tkfb-package/web-ui/js/workplace-management/state.js new file mode 100644 index 0000000..80986d1 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/workplace-management/state.js @@ -0,0 +1,284 @@ +/** + * Workplace Management - State Manager + * 작업장 관리 페이지의 전역 상태 관리 + */ + +class WorkplaceState { + constructor() { + // 마스터 데이터 + this.categories = []; + this.workplaces = []; + this.allEquipments = []; + this.existingEquipments = []; + + // 현재 상태 + this.currentCategoryId = ''; + this.currentEditingCategory = null; + this.currentEditingWorkplace = null; + this.currentWorkplaceMapId = null; + + // 작업장 지도 관련 + this.workplaceCanvas = null; + this.workplaceCtx = null; + this.workplaceImage = null; + this.workplaceIsDrawing = false; + this.workplaceStartX = 0; + this.workplaceStartY = 0; + this.workplaceCurrentRect = null; + this.workplaceEquipmentRegions = []; + + // 전체화면 편집기 관련 + this.fsCanvas = null; + this.fsCtx = null; + this.fsImage = null; + this.fsIsDrawing = false; + this.fsStartX = 0; + this.fsStartY = 0; + this.fsCurrentRect = null; + this.fsSidebarVisible = true; + + // 리스너 + this.listeners = new Map(); + + console.log('[WorkplaceState] 초기화 완료'); + } + + /** + * 상태 업데이트 + */ + update(key, value) { + const prevValue = this[key]; + this[key] = value; + this.notifyListeners(key, value, prevValue); + } + + /** + * 리스너 등록 + */ + subscribe(key, callback) { + if (!this.listeners.has(key)) { + this.listeners.set(key, []); + } + this.listeners.get(key).push(callback); + } + + /** + * 리스너 알림 + */ + notifyListeners(key, newValue, prevValue) { + const keyListeners = this.listeners.get(key) || []; + keyListeners.forEach(callback => { + try { + callback(newValue, prevValue); + } catch (error) { + console.error(`[WorkplaceState] 리스너 오류 (${key}):`, error); + } + }); + } + + /** + * 현재 카테고리 변경 + */ + setCurrentCategory(categoryId) { + const prevId = this.currentCategoryId; + this.currentCategoryId = categoryId === '' ? '' : categoryId; + this.notifyListeners('currentCategoryId', this.currentCategoryId, prevId); + } + + /** + * 현재 카테고리 정보 가져오기 + */ + getCurrentCategory() { + if (!this.currentCategoryId) return null; + return this.categories.find(c => c.category_id == this.currentCategoryId); + } + + /** + * 현재 카테고리별 작업장 가져오기 + */ + getFilteredWorkplaces() { + if (this.currentCategoryId === '') { + return this.workplaces; + } + return this.workplaces.filter(w => w.category_id == this.currentCategoryId); + } + + /** + * 작업장 지도 상태 초기화 + */ + resetWorkplaceMapState() { + this.workplaceCanvas = null; + this.workplaceCtx = null; + this.workplaceImage = null; + this.workplaceIsDrawing = false; + this.workplaceCurrentRect = null; + } + + /** + * 전체화면 편집기 상태 초기화 + */ + resetFullscreenState() { + this.fsCanvas = null; + this.fsCtx = null; + this.fsImage = null; + this.fsIsDrawing = false; + this.fsCurrentRect = null; + } + + /** + * 통계 계산 + */ + getStatistics() { + const total = this.workplaces.length; + const active = this.workplaces.filter(w => + w.is_active === 1 || w.is_active === true + ).length; + const factoryTotal = this.categories.length; + + const filtered = this.getFilteredWorkplaces(); + const filteredActive = filtered.filter(w => + w.is_active === 1 || w.is_active === true + ).length; + + return { + total, + active, + factoryTotal, + filteredTotal: filtered.length, + filteredActive + }; + } + + /** + * 상태 초기화 + */ + reset() { + this.currentEditingCategory = null; + this.currentEditingWorkplace = null; + this.currentWorkplaceMapId = null; + this.resetWorkplaceMapState(); + this.resetFullscreenState(); + } + + /** + * 디버그 출력 + */ + debug() { + console.log('[WorkplaceState] 현재 상태:', { + categories: this.categories.length, + workplaces: this.workplaces.length, + currentCategoryId: this.currentCategoryId, + allEquipments: this.allEquipments.length, + workplaceEquipmentRegions: this.workplaceEquipmentRegions.length + }); + } +} + +// 전역 인스턴스 생성 +window.WorkplaceState = new WorkplaceState(); + +// 하위 호환성을 위한 전역 변수 프록시 +const wpStateProxy = window.WorkplaceState; + +Object.defineProperties(window, { + categories: { + get: () => wpStateProxy.categories, + set: (v) => { wpStateProxy.categories = v; } + }, + workplaces: { + get: () => wpStateProxy.workplaces, + set: (v) => { wpStateProxy.workplaces = v; } + }, + currentCategoryId: { + get: () => wpStateProxy.currentCategoryId, + set: (v) => { wpStateProxy.currentCategoryId = v; } + }, + currentEditingCategory: { + get: () => wpStateProxy.currentEditingCategory, + set: (v) => { wpStateProxy.currentEditingCategory = v; } + }, + currentEditingWorkplace: { + get: () => wpStateProxy.currentEditingWorkplace, + set: (v) => { wpStateProxy.currentEditingWorkplace = v; } + }, + workplaceCanvas: { + get: () => wpStateProxy.workplaceCanvas, + set: (v) => { wpStateProxy.workplaceCanvas = v; } + }, + workplaceCtx: { + get: () => wpStateProxy.workplaceCtx, + set: (v) => { wpStateProxy.workplaceCtx = v; } + }, + workplaceImage: { + get: () => wpStateProxy.workplaceImage, + set: (v) => { wpStateProxy.workplaceImage = v; } + }, + workplaceIsDrawing: { + get: () => wpStateProxy.workplaceIsDrawing, + set: (v) => { wpStateProxy.workplaceIsDrawing = v; } + }, + workplaceStartX: { + get: () => wpStateProxy.workplaceStartX, + set: (v) => { wpStateProxy.workplaceStartX = v; } + }, + workplaceStartY: { + get: () => wpStateProxy.workplaceStartY, + set: (v) => { wpStateProxy.workplaceStartY = v; } + }, + workplaceCurrentRect: { + get: () => wpStateProxy.workplaceCurrentRect, + set: (v) => { wpStateProxy.workplaceCurrentRect = v; } + }, + workplaceEquipmentRegions: { + get: () => wpStateProxy.workplaceEquipmentRegions, + set: (v) => { wpStateProxy.workplaceEquipmentRegions = v; } + }, + existingEquipments: { + get: () => wpStateProxy.existingEquipments, + set: (v) => { wpStateProxy.existingEquipments = v; } + }, + allEquipments: { + get: () => wpStateProxy.allEquipments, + set: (v) => { wpStateProxy.allEquipments = v; } + }, + fsCanvas: { + get: () => wpStateProxy.fsCanvas, + set: (v) => { wpStateProxy.fsCanvas = v; } + }, + fsCtx: { + get: () => wpStateProxy.fsCtx, + set: (v) => { wpStateProxy.fsCtx = v; } + }, + fsImage: { + get: () => wpStateProxy.fsImage, + set: (v) => { wpStateProxy.fsImage = v; } + }, + fsIsDrawing: { + get: () => wpStateProxy.fsIsDrawing, + set: (v) => { wpStateProxy.fsIsDrawing = v; } + }, + fsStartX: { + get: () => wpStateProxy.fsStartX, + set: (v) => { wpStateProxy.fsStartX = v; } + }, + fsStartY: { + get: () => wpStateProxy.fsStartY, + set: (v) => { wpStateProxy.fsStartY = v; } + }, + fsCurrentRect: { + get: () => wpStateProxy.fsCurrentRect, + set: (v) => { wpStateProxy.fsCurrentRect = v; } + }, + fsSidebarVisible: { + get: () => wpStateProxy.fsSidebarVisible, + set: (v) => { wpStateProxy.fsSidebarVisible = v; } + } +}); + +// currentWorkplaceMapId를 window에도 설정 +Object.defineProperty(window, 'currentWorkplaceMapId', { + get: () => wpStateProxy.currentWorkplaceMapId, + set: (v) => { wpStateProxy.currentWorkplaceMapId = v; } +}); + +console.log('[Module] workplace-management/state.js 로드 완료'); diff --git a/deploy/tkfb-package/web-ui/js/workplace-management/utils.js b/deploy/tkfb-package/web-ui/js/workplace-management/utils.js new file mode 100644 index 0000000..04de92e --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/workplace-management/utils.js @@ -0,0 +1,154 @@ +/** + * Workplace Management - Utilities + * 작업장 관리 관련 유틸리티 함수들 + */ + +class WorkplaceUtils { + constructor() { + console.log('[WorkplaceUtils] 초기화 완료'); + } + + /** + * 날짜 포맷팅 + */ + formatDate(dateString) { + if (!dateString) return ''; + const date = new Date(dateString); + return date.toLocaleDateString('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit' + }); + } + + /** + * API URL 생성 + */ + getApiBaseUrl() { + return window.API_BASE_URL || 'http://localhost:20005/api'; + } + + /** + * 이미지 URL 생성 + */ + getFullImageUrl(imagePath) { + if (!imagePath) return null; + if (imagePath.startsWith('http')) return imagePath; + return `${this.getApiBaseUrl()}${imagePath}`.replace('/api/', '/'); + } + + /** + * 작업장 용도 아이콘 반환 + */ + getPurposeIcon(purpose) { + const icons = { + '작업구역': '🔧', + '설비': '⚙️', + '휴게시설': '☕', + '회의실': '💼', + '창고': '📦', + '기타': '📍' + }; + return purpose ? (icons[purpose] || '📍') : '🏗️'; + } + + /** + * 퍼센트를 픽셀로 변환 + */ + percentToPixel(percent, canvasSize) { + return (percent / 100) * canvasSize; + } + + /** + * 픽셀을 퍼센트로 변환 + */ + pixelToPercent(pixel, canvasSize) { + return (pixel / canvasSize) * 100; + } + + /** + * 영역 좌표 정규화 (음수 처리) + */ + normalizeRect(rect, canvasWidth, canvasHeight) { + const xPercent = this.pixelToPercent( + Math.min(rect.x, rect.x + rect.width), + canvasWidth + ); + const yPercent = this.pixelToPercent( + Math.min(rect.y, rect.y + rect.height), + canvasHeight + ); + const widthPercent = this.pixelToPercent( + Math.abs(rect.width), + canvasWidth + ); + const heightPercent = this.pixelToPercent( + Math.abs(rect.height), + canvasHeight + ); + + return { xPercent, yPercent, widthPercent, heightPercent }; + } +} + +// 전역 인스턴스 생성 +window.WorkplaceUtils = new WorkplaceUtils(); + +// 하위 호환성: 기존 함수들 +window.formatDate = (dateString) => window.WorkplaceUtils.formatDate(dateString); + +// 토스트 메시지 표시 +window.showToast = function(message, type = 'info') { + // 기존 토스트 제거 + const existingToast = document.querySelector('.toast'); + if (existingToast) { + existingToast.remove(); + } + + // 새 토스트 생성 + const toast = document.createElement('div'); + toast.className = `toast toast-${type}`; + toast.textContent = message; + + // 스타일 적용 + Object.assign(toast.style, { + position: 'fixed', + top: '20px', + right: '20px', + padding: '12px 24px', + borderRadius: '8px', + color: 'white', + fontWeight: '500', + zIndex: '1000', + transform: 'translateX(100%)', + transition: 'transform 0.3s ease' + }); + + // 타입별 배경색 + const colors = { + success: '#10b981', + error: '#ef4444', + warning: '#f59e0b', + info: '#3b82f6' + }; + toast.style.backgroundColor = colors[type] || colors.info; + + document.body.appendChild(toast); + + // 애니메이션 + setTimeout(() => { + toast.style.transform = 'translateX(0)'; + }, 100); + + // 자동 제거 + setTimeout(() => { + toast.style.transform = 'translateX(100%)'; + setTimeout(() => { + if (toast.parentNode) { + toast.remove(); + } + }, 300); + }, 3000); +}; + +console.log('[Module] workplace-management/utils.js 로드 완료'); diff --git a/deploy/tkfb-package/web-ui/js/workplace-status.js b/deploy/tkfb-package/web-ui/js/workplace-status.js new file mode 100644 index 0000000..6e72dd7 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/workplace-status.js @@ -0,0 +1,1786 @@ +// 작업장 현황 JavaScript + +let selectedCategory = null; +let workplaceData = []; +let mapRegions = []; // 작업장 영역 데이터 +let canvas = null; +let ctx = null; +let canvasImage = null; + +// 금일 TBM 작업자 데이터 +let todayWorkers = []; + +// 금일 출입 신청 데이터 +let todayVisitors = []; + +// ==================== 초기화 ==================== + +document.addEventListener('DOMContentLoaded', async () => { + await loadCategories(); + + // 이벤트 리스너 + document.getElementById('categorySelect').addEventListener('change', onCategoryChange); + document.getElementById('refreshMapBtn').addEventListener('click', refreshMapData); + + // 기본값으로 제1공장 선택 + await selectFirstCategory(); + + // 임시 이동된 설비 로드 + await loadMovedEquipments(); +}); + +// ==================== 카테고리 (공장) 로드 ==================== + +async function loadCategories() { + try { + const response = await window.apiCall('/workplaces/categories', 'GET'); + + if (response && response.success) { + const categories = response.data || []; + const select = document.getElementById('categorySelect'); + + categories.forEach(cat => { + const option = document.createElement('option'); + option.value = cat.category_id; + option.textContent = cat.category_name; + option.dataset.layoutImage = cat.layout_image; + select.appendChild(option); + }); + } + } catch (error) { + console.error('카테고리 로드 오류:', error); + } +} + +/** + * 첫 번째 카테고리 자동 선택 + */ +async function selectFirstCategory() { + const select = document.getElementById('categorySelect'); + if (select.options.length > 1) { + // 첫 번째 옵션 선택 (인덱스 0은 "공장을 선택하세요") + select.selectedIndex = 1; + // 변경 이벤트 트리거 + await onCategoryChange({ target: select }); + } +} + +// ==================== 공장 선택 ==================== + +async function onCategoryChange(e) { + const categoryId = e.target.value; + + if (!categoryId) { + document.getElementById('workplaceMapContainer').style.display = 'none'; + document.getElementById('mapPlaceholder').style.display = 'flex'; + return; + } + + const selectedOption = e.target.options[e.target.selectedIndex]; + const layoutImage = selectedOption.dataset.layoutImage; + + selectedCategory = { + category_id: categoryId, + category_name: selectedOption.textContent, + layout_image: layoutImage + }; + + // 지도 로드 + await loadWorkplaceMap(); + + // 금일 작업 데이터 로드 + await loadTodayData(); + + // 지도 렌더링 + renderMap(); +} + +// ==================== 작업장 지도 로드 ==================== + +async function loadWorkplaceMap() { + try { + // 작업장 데이터 로드 + const response = await window.apiCall(`/workplaces?category_id=${selectedCategory.category_id}`, 'GET'); + + if (response && response.success) { + workplaceData = response.data || []; + } + + // 작업장 영역 데이터 로드 (map-regions API) + const regionsResponse = await window.apiCall(`/workplaces/categories/${selectedCategory.category_id}/map-regions`, 'GET'); + + if (regionsResponse && regionsResponse.success) { + mapRegions = regionsResponse.data || []; + console.log('[지도] 로드된 영역:', mapRegions); + } + + // 이미지 로드 + await loadMapImage(); + + // 지도 컨테이너 표시 + document.getElementById('mapPlaceholder').style.display = 'none'; + document.getElementById('workplaceMapContainer').style.display = 'block'; + } catch (error) { + console.error('작업장 데이터 로드 오류:', error); + } +} + +async function loadMapImage() { + return new Promise((resolve, reject) => { + const img = new Image(); + + const baseUrl = (window.API_BASE_URL || 'http://localhost:20005').replace('/api', ''); + const fullImageUrl = selectedCategory.layout_image.startsWith('http') + ? selectedCategory.layout_image + : `${baseUrl}${selectedCategory.layout_image}`; + + img.onload = () => { + canvasImage = img; + + // 캔버스 초기화 + canvas = document.getElementById('workplaceMapCanvas'); + canvas.width = img.width; + canvas.height = img.height; + ctx = canvas.getContext('2d'); + + // 클릭 이벤트 + canvas.addEventListener('click', onMapClick); + + resolve(); + }; + + img.onerror = () => { + console.error('이미지 로드 실패:', fullImageUrl); + reject(); + }; + + img.src = fullImageUrl; + }); +} + +// ==================== 금일 데이터 로드 ==================== + +async function loadTodayData() { + // 로컬 시간대 기준으로 오늘 날짜 구하기 (UTC가 아닌 한국 시간 기준) + const now = new Date(); + const year = now.getFullYear(); + const month = String(now.getMonth() + 1).padStart(2, '0'); + const day = String(now.getDate()).padStart(2, '0'); + const today = `${year}-${month}-${day}`; + + console.log('[대시보드] 조회 날짜 (로컬):', today); + + // TBM 작업자 데이터 로드 + await loadTodayWorkers(today); + + // 출입 신청 데이터 로드 + await loadTodayVisitors(today); +} + +async function loadTodayWorkers(date) { + try { + const response = await window.apiCall(`/tbm/sessions/date/${date}`, 'GET'); + + if (response && response.success) { + const sessions = response.data || []; + todayWorkers = []; + + // 각 세션의 작업 정보 추가 + sessions.forEach(session => { + if (session.workplace_id) { + const memberCount = session.team_member_count || 0; + const leaderCount = session.leader_id ? 1 : 0; + const totalCount = memberCount + leaderCount; + + todayWorkers.push({ + workplace_id: session.workplace_id, + task_name: session.task_name || '작업', + work_location: session.work_location || '', + member_count: totalCount, + project_name: session.project_name || '' + }); + + console.log(`[TBM] 작업 추가: ${session.work_location || session.workplace_id} - ${session.task_name} (${totalCount}명)`); + } + }); + + console.log('로드된 작업자:', todayWorkers); + } + } catch (error) { + console.error('TBM 작업자 데이터 로드 오류:', error); + } +} + +async function loadTodayVisitors(date) { + try { + // 날짜 형식 확인 (YYYY-MM-DD) + const formattedDate = date.split('T')[0]; + + const response = await window.apiCall(`/workplace-visits/requests`, 'GET'); + + if (response && response.success) { + const requests = response.data || []; + + // 금일 날짜와 승인된 요청 필터링 + todayVisitors = requests.filter(req => { + // UTC 변환 없이 로컬 날짜로 비교 + const visitDateObj = new Date(req.visit_date); + const visitYear = visitDateObj.getFullYear(); + const visitMonth = String(visitDateObj.getMonth() + 1).padStart(2, '0'); + const visitDay = String(visitDateObj.getDate()).padStart(2, '0'); + const visitDate = `${visitYear}-${visitMonth}-${visitDay}`; + + return visitDate === formattedDate && + (req.status === 'approved' || req.status === 'training_completed'); + }).map(req => ({ + workplace_id: req.workplace_id, + visitor_company: req.visitor_company, + visitor_count: req.visitor_count, + visit_time: req.visit_time, + purpose_name: req.purpose_name, + status: req.status + })); + + console.log('로드된 방문자:', todayVisitors); + } + } catch (error) { + console.error('출입 신청 데이터 로드 오류:', error); + } +} + +// ==================== 지도 렌더링 ==================== + +function renderMap() { + if (!canvas || !ctx || !canvasImage) return; + + // 이미지 그리기 + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.drawImage(canvasImage, 0, 0); + + // 모든 작업장 영역 표시 + mapRegions.forEach(region => { + // 해당 작업장의 작업자/방문자 인원 계산 + const workers = todayWorkers.filter(w => w.workplace_id === region.workplace_id); + const visitors = todayVisitors.filter(v => v.workplace_id === region.workplace_id); + + const totalWorkerCount = workers.reduce((sum, w) => sum + (w.member_count || 0), 0); + const totalVisitorCount = visitors.reduce((sum, v) => sum + (v.visitor_count || 0), 0); + + // 영역 그리기 + drawWorkplaceRegion(region, totalWorkerCount, totalVisitorCount); + }); +} + +function drawWorkplaceRegion(region, workerCount, visitorCount) { + // 사각형 좌표 변환 + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + + const width = x2 - x1; + const height = y2 - y1; + const centerX = x1 + width / 2; + const centerY = y1 + height / 2; + + // 색상 결정 + let fillColor, strokeColor; + const hasActivity = workerCount > 0 || visitorCount > 0; + + if (workerCount > 0 && visitorCount > 0) { + // 둘 다 있음 - 초록색 + fillColor = 'rgba(34, 197, 94, 0.3)'; + strokeColor = 'rgb(34, 197, 94)'; + } else if (workerCount > 0) { + // 내부 작업자만 - 파란색 + fillColor = 'rgba(59, 130, 246, 0.3)'; + strokeColor = 'rgb(59, 130, 246)'; + } else if (visitorCount > 0) { + // 외부 방문자만 - 보라색 + fillColor = 'rgba(168, 85, 247, 0.3)'; + strokeColor = 'rgb(168, 85, 247)'; + } else { + // 인원 없음 - 회색 테두리만 + fillColor = 'rgba(0, 0, 0, 0)'; // 투명 + strokeColor = 'rgb(156, 163, 175)'; // 회색 + } + + // 사각형 그리기 + ctx.save(); + ctx.fillStyle = fillColor; + ctx.fillRect(x1, y1, width, height); + ctx.strokeStyle = strokeColor; + ctx.lineWidth = hasActivity ? 3 : 2; + ctx.strokeRect(x1, y1, width, height); + ctx.restore(); + + // 인원수 표시 (인원이 있을 때만) + if (hasActivity) { + ctx.save(); + ctx.font = 'bold 16px sans-serif'; + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; + + // 배경 원 + ctx.beginPath(); + ctx.arc(centerX, centerY, 20, 0, Math.PI * 2); + ctx.fillStyle = 'white'; + ctx.fill(); + ctx.strokeStyle = strokeColor; + ctx.lineWidth = 2; + ctx.stroke(); + + // 텍스트 + const totalCount = workerCount + visitorCount; + ctx.fillStyle = strokeColor; + ctx.fillText(totalCount.toString(), centerX, centerY); + ctx.restore(); + } else { + // 인원이 없을 때는 작업장 이름만 표시 + ctx.save(); + ctx.font = '12px sans-serif'; + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = 'rgb(107, 114, 128)'; + ctx.fillText(region.workplace_name, centerX, centerY); + ctx.restore(); + } +} + +// ==================== 지도 클릭 ==================== + +function onMapClick(e) { + const rect = canvas.getBoundingClientRect(); + const x = (e.clientX - rect.left) / rect.width * canvas.width; + const y = (e.clientY - rect.top) / rect.height * canvas.height; + + // 클릭한 위치의 작업장 영역 찾기 + for (const region of mapRegions) { + if (isPointInRegion(x, y, region)) { + // 작업장 정보를 찾아서 모달 표시 + const workplace = workplaceData.find(w => w.workplace_id === region.workplace_id); + if (workplace) { + showWorkplaceDetail({ ...workplace, ...region }); + } else { + // 작업장 정보가 없으면 region 데이터만 사용 + showWorkplaceDetail(region); + } + break; + } + } +} + +function isPointInRegion(x, y, region) { + // 사각형 영역 내부 체크 + const x1 = (region.x_start / 100) * canvas.width; + const y1 = (region.y_start / 100) * canvas.height; + const x2 = (region.x_end / 100) * canvas.width; + const y2 = (region.y_end / 100) * canvas.height; + + return x >= x1 && x <= x2 && y >= y1 && y <= y2; +} + +// ==================== 작업장 상세 정보 모달 ==================== + +// 현재 선택된 작업장 정보 (모달용) +let currentModalWorkplace = null; + +function showWorkplaceDetail(workplace) { + currentModalWorkplace = workplace; + const workers = todayWorkers.filter(w => w.workplace_id === workplace.workplace_id); + const visitors = todayVisitors.filter(v => v.workplace_id === workplace.workplace_id); + + // 모달 제목 + document.getElementById('modalWorkplaceName').textContent = workplace.workplace_name; + document.getElementById('modalWorkplaceDesc').textContent = `${selectedCategory.category_name} • ${workplace.description || ''}`; + + // 요약 카드 업데이트 + const totalWorkers = workers.reduce((sum, w) => sum + (w.member_count || 0), 0); + const totalVisitors = visitors.reduce((sum, v) => sum + (v.visitor_count || 0), 0); + + document.getElementById('summaryWorkerCount').textContent = totalWorkers; + document.getElementById('summaryVisitorCount').textContent = totalVisitors; + document.getElementById('summaryTaskCount').textContent = workers.length; + + // 배지 업데이트 + document.getElementById('workerCountBadge').textContent = totalWorkers; + document.getElementById('visitorCountBadge').textContent = totalVisitors; + + // 현황 개요 탭 - 현재 작업 목록 + renderCurrentTasks(workers); + + // 현황 개요 탭 - 설비 현황 + loadEquipmentStatus(workplace.workplace_id); + + // 작업자 탭 + renderWorkersTab(workers); + + // 방문자 탭 + renderVisitorsTab(visitors); + + // 상세 지도 초기화 + initDetailMap(workplace); + + // 첫 번째 탭 활성화 + switchWorkplaceTab('overview'); + + // 모달 표시 + document.getElementById('workplaceDetailModal').style.display = 'flex'; +} + +// 현재 작업 목록 렌더링 +function renderCurrentTasks(workers) { + const container = document.getElementById('currentTasksList'); + + if (workers.length === 0) { + container.innerHTML = '

현재 진행 중인 작업이 없습니다.

'; + return; + } + + let html = ''; + workers.forEach(worker => { + html += ` +
+
+

${escapeHtml(worker.task_name)}

+

+ ${worker.work_location ? `📍 ${escapeHtml(worker.work_location)}` : ''} + ${worker.project_name ? ` • 📁 ${escapeHtml(worker.project_name)}` : ''} +

+
+
+ 👷 + ${parseInt(worker.member_count) || 0}명 +
+
+ `; + }); + + container.innerHTML = html; +} + +// 설비 현황 로드 +async function loadEquipmentStatus(workplaceId) { + const container = document.getElementById('equipmentSummary'); + + try { + const response = await window.apiCall(`/equipments?workplace_id=${workplaceId}`, 'GET'); + + if (response && response.success && response.data && response.data.length > 0) { + const equipments = response.data; + let html = ''; + + // 최대 4개만 표시 + equipments.slice(0, 4).forEach(eq => { + const statusClass = eq.status === 'active' ? 'normal' : + eq.status === 'maintenance' ? 'warning' : 'error'; + const statusText = eq.status === 'active' ? '정상' : + eq.status === 'maintenance' ? '점검중' : '수리필요'; + + html += ` +
+ ⚙️ +
+

${escapeHtml(eq.equipment_name)}

+

${statusText}

+
+
+ `; + }); + + if (equipments.length > 4) { + html += `
+${equipments.length - 4}개 더...
`; + } + + container.innerHTML = html; + } else { + container.innerHTML = '

등록된 설비가 없습니다.

'; + } + } catch (error) { + console.error('설비 현황 로드 오류:', error); + container.innerHTML = '

설비 정보를 불러올 수 없습니다.

'; + } +} + +// 작업자 탭 렌더링 +function renderWorkersTab(workers) { + const container = document.getElementById('internalWorkersList'); + + if (workers.length === 0) { + container.innerHTML = '

금일 작업 예정 인원이 없습니다.

'; + return; + } + + let html = ''; + workers.forEach(worker => { + html += ` +
+
+

${escapeHtml(worker.task_name)}

+ ${parseInt(worker.member_count) || 0}명 +
+ ${worker.work_location ? `

📍 ${escapeHtml(worker.work_location)}

` : ''} + ${worker.project_name ? `

📁 ${escapeHtml(worker.project_name)}

` : ''} +
+ `; + }); + + container.innerHTML = html; +} + +// 방문자 탭 렌더링 +function renderVisitorsTab(visitors) { + const container = document.getElementById('externalVisitorsList'); + + if (visitors.length === 0) { + container.innerHTML = '

금일 방문 예정 인원이 없습니다.

'; + return; + } + + let html = ''; + visitors.forEach(visitor => { + const statusText = visitor.status === 'training_completed' ? '교육 완료' : '승인됨'; + + html += ` +
+
+

${escapeHtml(visitor.visitor_company)}

+ ${parseInt(visitor.visitor_count) || 0}명 • ${statusText} +
+

⏰ ${escapeHtml(visitor.visit_time)}

+

📋 ${escapeHtml(visitor.purpose_name)}

+
+ `; + }); + + container.innerHTML = html; +} + +// 상세 지도 초기화 +async function initDetailMap(workplace) { + const container = document.getElementById('detailMapContainer'); + const legendContainer = document.getElementById('detailMapLegend'); + + // 작업장에 레이아웃 이미지가 있는지 확인 + if (workplace.layout_image) { + const baseUrl = (window.API_BASE_URL || 'http://localhost:20005').replace('/api', ''); + const imageUrl = workplace.layout_image.startsWith('http') + ? workplace.layout_image + : `${baseUrl}${workplace.layout_image}`; + + // 이미지를 먼저 로드하여 비율 계산 + const img = new Image(); + img.onload = async () => { + // 이미지 래퍼를 생성하여 이미지와 마커가 같은 영역을 공유하도록 함 + container.innerHTML = ` +
+ ${workplace.workplace_name} 상세 지도 +
+
+ + `; + + // 설비 마커 로드 + await loadEquipmentMarkers(workplace.workplace_id); + }; + + img.onerror = () => { + container.innerHTML = ` +
+ 🗺️ +

지도 이미지를 불러올 수 없습니다.

+
+ `; + }; + + img.src = imageUrl; + + // 범례 표시 + legendContainer.innerHTML = ` +
+
+ 정상 가동 +
+
+
+ 점검 중 +
+
+
+ 수리 필요 +
+
+
+ 비활성 +
+ `; + } else { + container.innerHTML = ` +
+ 🗺️ +

상세 지도가 등록되지 않았습니다.

+

작업장 관리에서 레이아웃 이미지를 등록해주세요.

+
+ `; + legendContainer.innerHTML = ''; + } +} + +// 설비 마커 로드 및 표시 +async function loadEquipmentMarkers(workplaceId) { + const markersLayer = document.getElementById('equipmentMarkersLayer'); + if (!markersLayer) return; + + try { + const response = await window.apiCall(`/equipments?workplace_id=${workplaceId}`, 'GET'); + + if (response && response.success && response.data && response.data.length > 0) { + const equipments = response.data; + let markersHtml = ''; + + equipments.forEach(eq => { + // 위치 정보가 있는 설비만 마커 표시 + if (eq.map_x_percent != null && eq.map_y_percent != null) { + // 임시 이동된 설비는 별도 클래스 적용 + let statusClass = ''; + if (eq.is_temporarily_moved) { + statusClass = 'moved'; + } else { + statusClass = eq.status === 'active' ? 'active' : + eq.status === 'maintenance' ? 'maintenance' : + eq.status === 'repair_needed' ? 'repair' : 'inactive'; + } + + // 마커 크기 (기본값 또는 설정된 값) + const width = eq.map_width_percent || 8; + const height = eq.map_height_percent || 6; + + // 표시 이름: 설비 이름만 + const displayName = eq.equipment_name; + const movedBadge = eq.is_temporarily_moved ? ' 🚚' : ''; + + markersHtml += ` +
+ ${displayName}${movedBadge} +
+ `; + } + }); + + if (markersHtml) { + markersLayer.innerHTML = markersHtml; + } else { + markersLayer.innerHTML = '
위치가 등록된 설비가 없습니다.
'; + } + } else { + markersLayer.innerHTML = '
등록된 설비가 없습니다.
'; + } + } catch (error) { + console.error('설비 마커 로드 오류:', error); + markersLayer.innerHTML = '
설비 정보를 불러올 수 없습니다.
'; + } +} + +// 설비 툴팁 표시 +function showEquipmentTooltip(event, equipment) { + event.stopPropagation(); + + // 기존 툴팁 제거 + const existingTooltip = document.querySelector('.equipment-tooltip'); + if (existingTooltip) { + existingTooltip.remove(); + } + + const statusText = equipment.status === 'active' ? '정상 가동' : + equipment.status === 'maintenance' ? '점검 중' : + equipment.status === 'repair_needed' ? '수리 필요' : '비활성'; + + const statusClass = equipment.status === 'active' ? 'active' : + equipment.status === 'maintenance' ? 'maintenance' : + equipment.status === 'repair_needed' ? 'repair' : 'inactive'; + + const tooltip = document.createElement('div'); + tooltip.className = 'equipment-tooltip'; + tooltip.innerHTML = ` +
+ ${equipment.equipment_name} + ${statusText} +
+
+

코드: ${equipment.equipment_code}

+ ${equipment.equipment_type ? `

유형: ${equipment.equipment_type}

` : ''} + ${equipment.model_name ? `

모델: ${equipment.model_name}

` : ''} + ${equipment.manufacturer ? `

제조사: ${equipment.manufacturer}

` : ''} +
+
+ +
+ + `; + + // 툴팁 위치 설정 + const container = document.getElementById('detailMapContainer'); + const rect = container.getBoundingClientRect(); + tooltip.style.left = `${event.clientX - rect.left + 10}px`; + tooltip.style.top = `${event.clientY - rect.top + 10}px`; + + container.appendChild(tooltip); + + // 외부 클릭 시 툴팁 닫기 + setTimeout(() => { + document.addEventListener('click', function closeTooltip(e) { + if (!tooltip.contains(e.target)) { + tooltip.remove(); + document.removeEventListener('click', closeTooltip); + } + }); + }, 100); +} + +// 탭 전환 +function switchWorkplaceTab(tabName) { + // 모든 탭 비활성화 + document.querySelectorAll('.workplace-tab').forEach(tab => { + tab.classList.remove('active'); + }); + document.querySelectorAll('.workplace-tab-content').forEach(content => { + content.classList.remove('active'); + }); + + // 선택한 탭 활성화 + document.querySelector(`.workplace-tab[data-tab="${tabName}"]`).classList.add('active'); + document.getElementById(`tab-${tabName}`).classList.add('active'); + + // 이동 설비 탭 선택 시 데이터 로드 + if (tabName === 'moved-eq' && currentModalWorkplace) { + loadWorkplaceMovedEquipments(currentModalWorkplace.workplace_id); + } +} + +// 순회점검 페이지로 이동 +function openPatrolPage() { + closeWorkplaceModal(); + window.location.href = `/pages/inspection/daily-patrol.html?category=${selectedCategory.category_id}`; +} + +function closeWorkplaceModal() { + document.getElementById('workplaceDetailModal').style.display = 'none'; + currentModalWorkplace = null; +} + +// ==================== 새로고침 ==================== + +async function refreshMapData() { + if (!selectedCategory) return; + + await loadTodayData(); + renderMap(); +} + +// 전역 함수로 노출 +window.closeWorkplaceModal = closeWorkplaceModal; +window.switchWorkplaceTab = switchWorkplaceTab; +window.openPatrolPage = openPatrolPage; +window.showEquipmentTooltip = showEquipmentTooltip; + +// ========================================== +// 설비 상세 슬라이드 패널 +// ========================================== + +let currentPanelEquipment = null; +let panelFactories = []; +let panelWorkplaces = []; +let panelMovePosition = null; +let panelRepairCategories = []; +let panelRepairPhotoBases = []; + +const STATUS_LABELS = { + active: '정상 가동', + maintenance: '점검 중', + repair_needed: '수리 필요', + inactive: '비활성', + external: '외부 반출', + repair_external: '수리 외주' +}; + +// 패널 열기 +async function openEquipmentPanel(equipment) { + currentPanelEquipment = equipment; + + // 패널 헤더 설정 (설비 이름만) + document.getElementById('panelEquipmentTitle').textContent = equipment.equipment_name; + + const statusEl = document.getElementById('panelEquipmentStatus'); + statusEl.textContent = STATUS_LABELS[equipment.status] || equipment.status; + statusEl.className = `slide-panel-status ${equipment.status}`; + + // 기본 정보 렌더링 + renderPanelInfo(equipment); + + // 패널 열기 + document.getElementById('equipmentSlidePanel').classList.add('open'); + + // 데이터 로드 + await Promise.all([ + loadPanelPhotos(), + loadPanelRepairHistory(), + loadPanelExternalLogs(), + loadPanelFactories(), + loadPanelRepairCategories() + ]); +} + +// 패널 닫기 +function closeEquipmentPanel() { + document.getElementById('equipmentSlidePanel').classList.remove('open'); + currentPanelEquipment = null; +} + +// 기본 정보 렌더링 +function renderPanelInfo(eq) { + document.getElementById('panelEquipmentInfo').innerHTML = ` +
+ 모델명 + ${eq.model_name || '-'} +
+
+ 규격 + ${eq.specifications || '-'} +
+
+ 제조사 + ${eq.manufacturer || '-'} +
+
+ 구입처 + ${eq.supplier || '-'} +
+
+ 설비유형 + ${eq.equipment_type || '-'} +
+
+ 구입일 + ${eq.installation_date ? formatPanelDate(eq.installation_date) : '-'} +
+ `; +} + +// 사진 로드 +async function loadPanelPhotos() { + if (!currentPanelEquipment) return; + + try { + const response = await window.apiCall(`/equipments/${currentPanelEquipment.equipment_id}/photos`, 'GET'); + if (response && response.success) { + renderPanelPhotos(response.data); + } + } catch (error) { + console.error('사진 로드 실패:', error); + document.getElementById('panelPhotoGrid').innerHTML = + '
사진을 불러올 수 없습니다
'; + } +} + +function renderPanelPhotos(photos) { + const grid = document.getElementById('panelPhotoGrid'); + + if (!photos || photos.length === 0) { + grid.innerHTML = '
등록된 사진이 없습니다
'; + return; + } + + grid.innerHTML = photos.map(photo => ` +
+ + +
+ `).join(''); +} + +// 사진 확대 보기 +function viewPanelPhoto(url) { + // 간단한 이미지 뷰어 + const viewer = document.createElement('div'); + viewer.style.cssText = 'position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.9);display:flex;align-items:center;justify-content:center;z-index:3000;cursor:pointer;'; + viewer.innerHTML = ``; + viewer.onclick = () => viewer.remove(); + document.body.appendChild(viewer); +} + +// 사진 업로드 모달 +function openPanelPhotoUpload() { + document.getElementById('panelPhotoInput').value = ''; + document.getElementById('panelPhotoDesc').value = ''; + document.getElementById('panelPhotoPreview').innerHTML = ''; + document.getElementById('panelPhotoModal').style.display = 'flex'; +} + +function closePanelPhotoModal() { + document.getElementById('panelPhotoModal').style.display = 'none'; +} + +function previewPanelPhoto(event) { + const file = event.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onload = e => { + document.getElementById('panelPhotoPreview').innerHTML = + ``; + }; + reader.readAsDataURL(file); + } +} + +async function uploadPanelPhoto() { + const fileInput = document.getElementById('panelPhotoInput'); + const description = document.getElementById('panelPhotoDesc').value; + + if (!fileInput.files[0]) { + alert('사진을 선택하세요.'); + return; + } + + const reader = new FileReader(); + reader.onload = async e => { + try { + const response = await window.apiCall(`/equipments/${currentPanelEquipment.equipment_id}/photos`, 'POST', { + photo_base64: e.target.result, + description: description + }); + + if (response && response.success) { + closePanelPhotoModal(); + loadPanelPhotos(); + } + } catch (error) { + console.error('업로드 실패:', error); + alert('사진 업로드에 실패했습니다.'); + } + }; + reader.readAsDataURL(fileInput.files[0]); +} + +async function deletePanelPhoto(photoId) { + if (!confirm('이 사진을 삭제하시겠습니까?')) return; + + try { + await window.apiCall(`/equipments/photos/${photoId}`, 'DELETE'); + loadPanelPhotos(); + } catch (error) { + console.error('삭제 실패:', error); + alert('삭제에 실패했습니다.'); + } +} + +// 수리 이력 로드 +async function loadPanelRepairHistory() { + if (!currentPanelEquipment) return; + + try { + const response = await window.apiCall(`/equipments/${currentPanelEquipment.equipment_id}/repair-history`, 'GET'); + if (response && response.success) { + renderPanelRepairHistory(response.data); + } + } catch (error) { + console.error('수리 이력 로드 실패:', error); + } +} + +function renderPanelRepairHistory(history) { + const container = document.getElementById('panelRepairHistory'); + + if (!history || history.length === 0) { + container.innerHTML = '
수리 이력이 없습니다
'; + return; + } + + container.innerHTML = history.slice(0, 5).map(h => { + const statusLabels = { + reported: '신고됨', received: '접수', in_progress: '처리중', completed: '완료', closed: '종료' + }; + const statusLabel = statusLabels[h.status] || h.status; + const statusClass = (h.status === 'completed' || h.status === 'closed') ? 'completed' : 'pending'; + + return ` +
+ ${formatPanelDate(h.created_at)} +
+
${h.item_name || '수리 요청'}
+
${truncateText(h.description, 30)}
+
+ ${statusLabel} +
+ `; + }).join(''); +} + +// 외부반출 이력 로드 +async function loadPanelExternalLogs() { + if (!currentPanelEquipment) return; + + try { + const response = await window.apiCall(`/equipments/${currentPanelEquipment.equipment_id}/external-logs`, 'GET'); + if (response && response.success) { + renderPanelExternalLogs(response.data); + } + } catch (error) { + console.error('외부반출 이력 로드 실패:', error); + } +} + +function renderPanelExternalLogs(logs) { + const container = document.getElementById('panelExternalHistory'); + + if (!logs || logs.length === 0) { + container.innerHTML = '
외부반출 이력이 없습니다
'; + return; + } + + container.innerHTML = logs.slice(0, 5).map(log => { + const isReturned = !!log.actual_return_date; + const statusClass = isReturned ? 'returned' : 'exported'; + const statusLabel = isReturned ? '반입완료' : '반출중'; + + return ` +
+ ${formatPanelDate(log.export_date)} +
+
${log.destination || '외부'}
+
${truncateText(log.reason, 30)}
+
+ ${!isReturned + ? `` + : `${statusLabel}` + } +
+ `; + }).join(''); +} + +// 공장/작업장 로드 (이동용) +async function loadPanelFactories() { + try { + const response = await window.apiCall('/workplaces/categories', 'GET'); + if (response && response.success) { + panelFactories = response.data; + } + } catch (error) { + console.error('공장 목록 로드 실패:', error); + } +} + +// 수리 카테고리 로드 +async function loadPanelRepairCategories() { + try { + const response = await window.apiCall('/equipments/repair-categories', 'GET'); + if (response && response.success) { + panelRepairCategories = response.data; + } + } catch (error) { + console.error('수리 항목 로드 실패:', error); + } +} + +// ==================== 임시이동 ==================== + +let selectedMoveFactory = null; +let selectedMoveWorkplace = null; + +function openPanelMoveModal() { + // 초기화 + selectedMoveFactory = null; + selectedMoveWorkplace = null; + panelMovePosition = null; + document.getElementById('panelMoveReason').value = ''; + document.getElementById('panelMoveConfirmBtn').disabled = true; + + // Step 1 표시 + document.getElementById('moveStep1').style.display = 'block'; + document.getElementById('moveStep2').style.display = 'none'; + document.getElementById('moveStep3').style.display = 'none'; + + // 공장 카드 렌더링 + renderMoveFactoryGrid(); + + document.getElementById('panelMoveModal').style.display = 'flex'; +} + +function closePanelMoveModal() { + document.getElementById('panelMoveModal').style.display = 'none'; +} + +function renderMoveFactoryGrid() { + const grid = document.getElementById('moveFactoryGrid'); + const icons = ['🏭', '🏢', '🏗️', '🏛️', '⚙️']; + + grid.innerHTML = panelFactories.map((f, i) => ` +
+
${icons[i % icons.length]}
+
${f.category_name}
+
+ `).join(''); + + // 이벤트 리스너 추가 + grid.querySelectorAll('.move-factory-card').forEach(card => { + card.onclick = () => { + const catId = card.dataset.categoryId; + const factory = panelFactories.find(f => f.category_id == catId); + if (factory) { + selectMoveFactory(factory); + } + }; + }); +} + +let panelMapRegions = []; // 이동 모달용 지도 영역 + +async function selectMoveFactory(factory) { + selectedMoveFactory = { + category_id: factory.category_id, + category_name: factory.category_name, + layout_image: factory.layout_image + }; + + // 작업장 목록 + 지도 영역 로드 + try { + const [wpResponse, regionsResponse] = await Promise.all([ + window.apiCall(`/workplaces?category_id=${factory.category_id}`, 'GET'), + window.apiCall(`/workplaces/categories/${factory.category_id}/map-regions`, 'GET') + ]); + + if (wpResponse && wpResponse.success) { + panelWorkplaces = wpResponse.data; + } + if (regionsResponse && regionsResponse.success) { + panelMapRegions = regionsResponse.data; + console.log('[이동모달] 로드된 영역:', panelMapRegions); + } else { + console.log('[이동모달] 영역 로드 실패:', regionsResponse); + } + } catch (error) { + console.error('작업장 로드 실패:', error); + return; + } + + // Step 2로 이동 + document.getElementById('moveStep1').style.display = 'none'; + document.getElementById('moveStep2').style.display = 'block'; + document.getElementById('moveStep2Title').textContent = `${factory.category_name} - 작업장 선택`; + + // 레이아웃 지도 렌더링 + renderMoveLayoutMap(factory.layout_image); +} + +function renderMoveLayoutMap(layoutImage) { + const container = document.getElementById('moveLayoutMapContainer'); + const baseUrl = (window.API_BASE_URL || '').replace('/api', ''); + + console.log('[이동모달] 렌더링 - layoutImage:', layoutImage); + console.log('[이동모달] 렌더링 - panelMapRegions:', panelMapRegions); + + if (!layoutImage) { + container.innerHTML = `
레이아웃 지도가 없습니다.
`; + return; + } + + // 지도 영역 데이터로 클릭 가능한 영역 생성 (x_start, y_start, x_end, y_end 사용) + let regionsHtml = panelMapRegions.map(region => { + const left = region.x_start; + const top = region.y_start; + const width = region.x_end - region.x_start; + const height = region.y_end - region.y_start; + return ` +
+ ${region.workplace_name} +
+ `; + }).join(''); + + container.innerHTML = ` + 공장 레이아웃 + ${regionsHtml} + `; + + // 영역 클릭 이벤트 + container.querySelectorAll('.move-wp-region').forEach(region => { + region.onclick = () => { + const wpId = parseInt(region.dataset.wpId); + const wp = panelWorkplaces.find(w => w.workplace_id === wpId); + if (wp) selectMoveWorkplace(wp); + }; + }); +} + +function selectMoveWorkplace(workplace) { + if (!workplace) return; + + console.log('[이동모달] 선택된 작업장:', workplace); + console.log('[이동모달] layout_image:', workplace.layout_image); + + selectedMoveWorkplace = workplace; + + // 상세 지도가 없으면 위치 없이 바로 확인 가능하게 + if (!workplace.layout_image) { + panelMovePosition = null; // 위치 좌표 없음 + document.getElementById('moveStep2').style.display = 'none'; + document.getElementById('moveStep3').style.display = 'block'; + document.getElementById('moveStep3Title').textContent = `${workplace.workplace_name}`; + document.getElementById('moveDetailMapContainer').innerHTML = ` +
+
📍
+
${workplace.workplace_name}
+
이 작업장에는 상세 지도가 없습니다.
+
위치 좌표 없이 작업장만 기록됩니다.
+
+ `; + document.getElementById('panelMoveConfirmBtn').disabled = false; + return; + } + + // Step 3으로 이동 + document.getElementById('moveStep2').style.display = 'none'; + document.getElementById('moveStep3').style.display = 'block'; + document.getElementById('moveStep3Title').textContent = `${workplace.workplace_name} - 위치 선택`; + + // 상세 지도 렌더링 + renderMoveDetailMap(); +} + +async function renderMoveDetailMap() { + const container = document.getElementById('moveDetailMapContainer'); + const baseUrl = (window.API_BASE_URL || '').replace('/api', ''); + const imageUrl = `${baseUrl}${selectedMoveWorkplace.layout_image}`; + + // 이동 대상 작업장의 기존 설비 로드 + let existingEquipments = []; + try { + const response = await window.apiCall(`/equipments?workplace_id=${selectedMoveWorkplace.workplace_id}`, 'GET'); + if (response && response.success) { + existingEquipments = response.data || []; + } + } catch (error) { + console.error('설비 로드 실패:', error); + } + + // 이미지 로드 후 마커 배치 + const img = new Image(); + img.onload = () => { + // 기존 설비 마커 HTML 생성 + const markersHtml = existingEquipments.map(eq => { + const isCurrentEquipment = eq.equipment_id === currentPanelEquipment.equipment_id; + const markerClass = isCurrentEquipment ? 'move-eq-marker current-moving' : 'move-eq-marker existing'; + const width = eq.map_width_percent || 6; + const height = eq.map_height_percent || 4; + return ` +
+ ${eq.equipment_name} +
+ `; + }).join(''); + + container.innerHTML = ` +
+ +
+ ${markersHtml} + +
+
+ `; + + // 지도 클릭 이벤트 + document.getElementById('moveMapWrapper').addEventListener('click', onMoveDetailMapClick); + }; + + img.onerror = () => { + container.innerHTML = `
지도를 불러올 수 없습니다.
`; + }; + + img.src = imageUrl; +} + +function onMoveDetailMapClick(event) { + const wrapper = document.getElementById('moveMapWrapper'); + const rect = wrapper.getBoundingClientRect(); + const x = ((event.clientX - rect.left) / rect.width) * 100; + const y = ((event.clientY - rect.top) / rect.height) * 100; + + // 현재 설비의 크기 사용 (없으면 기본값) + const width = currentPanelEquipment.map_width_percent || 6; + const height = currentPanelEquipment.map_height_percent || 4; + + panelMovePosition = { x, y, width, height }; + + // 타겟 마커 표시 + const targetMarker = document.getElementById('moveTargetMarker'); + targetMarker.style.left = x + '%'; + targetMarker.style.top = y + '%'; + targetMarker.style.width = width + '%'; + targetMarker.style.height = height + '%'; + targetMarker.style.display = 'flex'; + targetMarker.innerHTML = `${currentPanelEquipment.equipment_name}`; + + document.getElementById('panelMoveConfirmBtn').disabled = false; +} + +function moveBackToStep1() { + document.getElementById('moveStep2').style.display = 'none'; + document.getElementById('moveStep1').style.display = 'block'; + selectedMoveFactory = null; +} + +function moveBackToStep2() { + document.getElementById('moveStep3').style.display = 'none'; + document.getElementById('moveStep2').style.display = 'block'; + selectedMoveWorkplace = null; + panelMovePosition = null; + document.getElementById('panelMoveConfirmBtn').disabled = true; +} + +async function confirmPanelMove() { + if (!selectedMoveWorkplace) { + alert('작업장을 선택하세요.'); + return; + } + + // 상세 지도가 있는데 위치를 선택 안 한 경우 + if (selectedMoveWorkplace.layout_image && !panelMovePosition) { + alert('지도에서 위치를 클릭하세요.'); + return; + } + + const reason = document.getElementById('panelMoveReason').value; + + try { + const response = await window.apiCall(`/equipments/${currentPanelEquipment.equipment_id}/move`, 'POST', { + target_workplace_id: selectedMoveWorkplace.workplace_id, + target_x_percent: panelMovePosition ? panelMovePosition.x.toFixed(2) : null, + target_y_percent: panelMovePosition ? panelMovePosition.y.toFixed(2) : null, + from_workplace_id: currentPanelEquipment.workplace_id, + from_x_percent: currentPanelEquipment.map_x_percent, + from_y_percent: currentPanelEquipment.map_y_percent, + reason: reason + }); + + if (response && response.success) { + closePanelMoveModal(); + closeEquipmentPanel(); + alert('설비가 임시 이동되었습니다.'); + // 설비 마커 새로고침 + if (currentModalWorkplace && currentModalWorkplace.workplace_id) { + loadEquipmentMarkers(currentModalWorkplace.workplace_id); + } + } + } catch (error) { + console.error('이동 실패:', error); + alert('이동에 실패했습니다.'); + } +} + +// ==================== 수리신청 ==================== + +function openPanelRepairModal() { + const select = document.getElementById('panelRepairItem'); + select.innerHTML = ''; + panelRepairCategories.forEach(item => { + select.innerHTML += ``; + }); + // 새로 추가 옵션 + select.innerHTML += ''; + + document.getElementById('panelRepairDesc').value = ''; + document.getElementById('panelRepairPhotoInput').value = ''; + document.getElementById('newRepairTypeName').value = ''; + document.getElementById('newRepairTypeGroup').style.display = 'none'; + panelRepairPhotoBases = []; + + document.getElementById('panelRepairModal').style.display = 'flex'; +} + +function onRepairTypeChange() { + const select = document.getElementById('panelRepairItem'); + const newTypeGroup = document.getElementById('newRepairTypeGroup'); + + if (select.value === '__new__') { + newTypeGroup.style.display = 'block'; + document.getElementById('newRepairTypeName').focus(); + } else { + newTypeGroup.style.display = 'none'; + } +} + +function closePanelRepairModal() { + document.getElementById('panelRepairModal').style.display = 'none'; +} + +async function submitPanelRepair() { + const selectValue = document.getElementById('panelRepairItem').value; + const description = document.getElementById('panelRepairDesc').value; + const newTypeName = document.getElementById('newRepairTypeName').value.trim(); + + if (!description) { + alert('수리 내용을 입력하세요.'); + return; + } + + let itemId = selectValue; + + // 새 유형 추가하는 경우 + if (selectValue === '__new__') { + if (!newTypeName) { + alert('새 수리 유형 이름을 입력하세요.'); + return; + } + + try { + const addResponse = await window.apiCall('/equipments/repair-categories', 'POST', { + item_name: newTypeName + }); + + if (addResponse && addResponse.success) { + itemId = addResponse.data.item_id; + // 목록에 추가 + panelRepairCategories.push({ item_id: itemId, item_name: newTypeName }); + } else { + alert('새 유형 추가에 실패했습니다.'); + return; + } + } catch (error) { + console.error('새 유형 추가 실패:', error); + alert('새 유형 추가에 실패했습니다.'); + return; + } + } + + // 사진 처리 + const fileInput = document.getElementById('panelRepairPhotoInput'); + const photos = []; + + if (fileInput.files.length > 0) { + for (const file of fileInput.files) { + const base64 = await readFileAsBase64(file); + photos.push(base64); + } + } + + try { + const response = await window.apiCall(`/equipments/${currentPanelEquipment.equipment_id}/repair-request`, 'POST', { + item_id: itemId || null, + description: description, + photo_base64_list: photos, + workplace_id: currentPanelEquipment.workplace_id + }); + + if (response && response.success) { + closePanelRepairModal(); + loadPanelRepairHistory(); + alert('수리 신청이 접수되었습니다.'); + } + } catch (error) { + console.error('수리 신청 실패:', error); + alert('수리 신청에 실패했습니다.'); + } +} + +function readFileAsBase64(file) { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => resolve(reader.result); + reader.onerror = reject; + reader.readAsDataURL(file); + }); +} + +// ==================== 외부반출 ==================== + +function openPanelExportModal() { + document.getElementById('panelIsRepairExport').checked = false; + document.getElementById('panelExportDate').value = new Date().toISOString().slice(0, 10); + document.getElementById('panelExpectedReturn').value = ''; + document.getElementById('panelExportDest').value = ''; + document.getElementById('panelExportReason').value = ''; + + document.getElementById('panelExportModal').style.display = 'flex'; +} + +function closePanelExportModal() { + document.getElementById('panelExportModal').style.display = 'none'; +} + +async function submitPanelExport() { + const exportDate = document.getElementById('panelExportDate').value; + + if (!exportDate) { + alert('반출일을 입력하세요.'); + return; + } + + try { + const response = await window.apiCall(`/equipments/${currentPanelEquipment.equipment_id}/export`, 'POST', { + export_date: exportDate, + expected_return_date: document.getElementById('panelExpectedReturn').value || null, + destination: document.getElementById('panelExportDest').value, + reason: document.getElementById('panelExportReason').value, + is_repair: document.getElementById('panelIsRepairExport').checked + }); + + if (response && response.success) { + closePanelExportModal(); + loadPanelExternalLogs(); + alert('외부 반출이 등록되었습니다.'); + } + } catch (error) { + console.error('반출 실패:', error); + alert('반출 등록에 실패했습니다.'); + } +} + +// ==================== 반입 ==================== + +function openPanelReturnModal(logId) { + document.getElementById('panelReturnLogId').value = logId; + document.getElementById('panelReturnDate').value = new Date().toISOString().slice(0, 10); + document.getElementById('panelReturnStatus').value = 'active'; + + document.getElementById('panelReturnModal').style.display = 'flex'; +} + +function closePanelReturnModal() { + document.getElementById('panelReturnModal').style.display = 'none'; +} + +async function submitPanelReturn() { + const logId = document.getElementById('panelReturnLogId').value; + const returnDate = document.getElementById('panelReturnDate').value; + + if (!returnDate) { + alert('반입일을 입력하세요.'); + return; + } + + try { + const response = await window.apiCall(`/equipments/external-logs/${logId}/return`, 'POST', { + return_date: returnDate, + new_status: document.getElementById('panelReturnStatus').value + }); + + if (response && response.success) { + closePanelReturnModal(); + loadPanelExternalLogs(); + alert('반입 처리가 완료되었습니다.'); + } + } catch (error) { + console.error('반입 실패:', error); + alert('반입 처리에 실패했습니다.'); + } +} + +// ==================== 임시 이동 설비 목록 ==================== + +async function loadMovedEquipments() { + const listEl = document.getElementById('movedEquipmentList'); + const emptyEl = document.getElementById('noMovedEquipment'); + + if (!listEl) return; + + try { + const response = await window.apiCall('/equipments/moved/list', 'GET'); + + if (response && response.success && response.data && response.data.length > 0) { + const equipments = response.data; + emptyEl.style.display = 'none'; + listEl.style.display = 'grid'; + + listEl.innerHTML = equipments.map(eq => ` +
+
+ ${eq.equipment_code} + 임시이동 +
+
${eq.equipment_name}
+
+
+ 원래 위치 + ${eq.original_workplace_name || '-'} +
+
+
+ 현재 위치 + ${eq.current_workplace_name || '-'} +
+
+
+ 이동일: ${formatPanelDate(eq.moved_at)} +
+ +
+ `).join(''); + } else { + listEl.style.display = 'none'; + emptyEl.style.display = 'block'; + } + } catch (error) { + console.error('임시 이동 설비 로드 실패:', error); + listEl.innerHTML = '
로드 실패
'; + } +} + +// 작업장별 이동 설비 로드 +async function loadWorkplaceMovedEquipments(workplaceId) { + const movedInList = document.getElementById('movedInEquipmentList'); + const movedOutList = document.getElementById('movedOutEquipmentList'); + const badge = document.getElementById('movedEqCountBadge'); + + try { + const response = await window.apiCall('/equipments/moved/list', 'GET'); + + if (response && response.success && response.data) { + const allMoved = response.data; + + // 이 작업장으로 이동해 온 설비 (current_workplace_id = workplaceId) + const movedIn = allMoved.filter(eq => eq.current_workplace_id === workplaceId); + + // 이 작업장에서 다른 곳으로 이동한 설비 (workplace_id = workplaceId) + const movedOut = allMoved.filter(eq => eq.workplace_id === workplaceId); + + // 배지 업데이트 + const totalCount = movedIn.length + movedOut.length; + if (totalCount > 0) { + badge.textContent = totalCount; + badge.style.display = 'inline-flex'; + } else { + badge.style.display = 'none'; + } + + // 이동해 온 설비 렌더링 + if (movedIn.length > 0) { + movedInList.innerHTML = movedIn.map(eq => ` +
+
+ ${eq.equipment_code} + ${eq.equipment_name} +
+
+ 📤 ${eq.original_workplace_name || '알 수 없음'} + + 📥 여기 +
+
이동일: ${formatPanelDate(eq.moved_at)}
+
+ `).join(''); + } else { + movedInList.innerHTML = '

없음

'; + } + + // 이동해 간 설비 렌더링 + if (movedOut.length > 0) { + movedOutList.innerHTML = movedOut.map(eq => ` +
+
+ ${eq.equipment_code} + ${eq.equipment_name} +
+
+ 📤 여기 + + 📥 ${eq.current_workplace_name || '알 수 없음'} +
+
이동일: ${formatPanelDate(eq.moved_at)}
+
+ `).join(''); + } else { + movedOutList.innerHTML = '

없음

'; + } + } + } catch (error) { + console.error('작업장 이동 설비 로드 실패:', error); + movedInList.innerHTML = '

로드 실패

'; + movedOutList.innerHTML = '

로드 실패

'; + } +} + +// 원위치 복귀 +async function returnEquipmentToOriginal(equipmentId) { + if (!confirm('이 설비를 원래 위치로 복귀시키겠습니까?')) return; + + try { + const response = await window.apiCall(`/equipments/${equipmentId}/return`, 'POST'); + + if (response && response.success) { + alert('설비가 원래 위치로 복귀되었습니다.'); + loadMovedEquipments(); + // 지도 새로고침 + if (selectedCategory) { + renderMap(); + } + } + } catch (error) { + console.error('복귀 실패:', error); + alert('복귀에 실패했습니다.'); + } +} + +// 이동된 설비 상세 보기 +function showMovedEquipmentDetail(equipmentId) { + // TODO: 설비 상세 패널 열기 + console.log('설비 상세:', equipmentId); +} + +// ==================== 유틸리티 ==================== + +function formatPanelDate(dateStr) { + if (!dateStr) return '-'; + const date = new Date(dateStr); + return `${date.getMonth() + 1}/${date.getDate()}`; +} + +function truncateText(text, maxLen) { + if (!text) return '-'; + return text.length > maxLen ? text.slice(0, maxLen) + '...' : text; +} + +// 전역 함수 노출 +window.openEquipmentPanel = openEquipmentPanel; +window.closeEquipmentPanel = closeEquipmentPanel; +window.openPanelPhotoUpload = openPanelPhotoUpload; +window.closePanelPhotoModal = closePanelPhotoModal; +window.previewPanelPhoto = previewPanelPhoto; +window.uploadPanelPhoto = uploadPanelPhoto; +window.deletePanelPhoto = deletePanelPhoto; +window.viewPanelPhoto = viewPanelPhoto; +window.openPanelMoveModal = openPanelMoveModal; +window.closePanelMoveModal = closePanelMoveModal; +window.selectMoveFactory = selectMoveFactory; +window.selectMoveWorkplace = selectMoveWorkplace; +window.onMoveDetailMapClick = onMoveDetailMapClick; +window.moveBackToStep1 = moveBackToStep1; +window.moveBackToStep2 = moveBackToStep2; +window.confirmPanelMove = confirmPanelMove; +window.openPanelRepairModal = openPanelRepairModal; +window.closePanelRepairModal = closePanelRepairModal; +window.submitPanelRepair = submitPanelRepair; +window.onRepairTypeChange = onRepairTypeChange; +window.openPanelExportModal = openPanelExportModal; +window.closePanelExportModal = closePanelExportModal; +window.submitPanelExport = submitPanelExport; +window.openPanelReturnModal = openPanelReturnModal; +window.closePanelReturnModal = closePanelReturnModal; +window.submitPanelReturn = submitPanelReturn; +window.loadMovedEquipments = loadMovedEquipments; +window.returnEquipmentToOriginal = returnEquipmentToOriginal; +window.showMovedEquipmentDetail = showMovedEquipmentDetail; +window.loadWorkplaceMovedEquipments = loadWorkplaceMovedEquipments; diff --git a/deploy/tkfb-package/web-ui/js/zone-detail.js b/deploy/tkfb-package/web-ui/js/zone-detail.js new file mode 100644 index 0000000..86b5393 --- /dev/null +++ b/deploy/tkfb-package/web-ui/js/zone-detail.js @@ -0,0 +1,1423 @@ +// zone-detail.js - 구역 상세 페이지 JavaScript + +// 전역 상태 +let workplaceId = null; +let workplaceData = null; +let zoneItems = []; +let selectedZoneItem = null; +let isAddingItem = false; +let selectionStart = null; +let selectionBox = null; + +// XSS 방지를 위한 HTML 이스케이프 함수 +function escapeHtml(str) { + if (str === null || str === undefined) return ''; + return String(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +// axios 설정 대기 +function waitForAxiosConfig() { + return new Promise((resolve) => { + const check = setInterval(() => { + if (axios.defaults.baseURL) { + clearInterval(check); + resolve(); + } + }, 50); + setTimeout(() => { + clearInterval(check); + resolve(); + }, 5000); + }); +} + +// 페이지 초기화 +document.addEventListener('DOMContentLoaded', async () => { + await waitForAxiosConfig(); + + // URL에서 workplace_id 파라미터 가져오기 + const urlParams = new URLSearchParams(window.location.search); + workplaceId = urlParams.get('id'); + + if (!workplaceId) { + alert('잘못된 접근입니다.'); + goBack(); + return; + } + + // 현재 날짜 표시 + const now = new Date(); + document.getElementById('currentDate').textContent = now.toLocaleDateString('ko-KR', { + year: 'numeric', + month: 'long', + day: 'numeric', + weekday: 'short' + }); + + // 데이터 로드 + await loadWorkplaceDetail(); +}); + +// 작업장 상세 정보 로드 +async function loadWorkplaceDetail() { + try { + const today = new Date().toISOString().slice(0, 10); + const response = await axios.get(`/patrol/workplaces/${workplaceId}/detail?date=${today}`); + + if (response.data.success) { + workplaceData = response.data.data; + renderPage(); + } else { + throw new Error(response.data.message || '데이터 로드 실패'); + } + } catch (error) { + console.error('작업장 상세 정보 로드 실패:', error); + alert('데이터를 불러오는데 실패했습니다.'); + } +} + +// 페이지 렌더링 +function renderPage() { + if (!workplaceData) return; + + const { workplace, summary } = workplaceData; + + // 헤더 정보 + document.getElementById('zoneName').textContent = workplace.workplace_name; + document.getElementById('zoneCategory').textContent = workplace.category_name || ''; + + // 요약 카드 + renderSummaryCards(summary); + + // 각 탭 콘텐츠 렌더링 + renderMapTab(); + renderIssuesTab(); + renderEquipmentTab(); + renderVisitsTab(); + renderTbmTab(); + renderPatrolTab(); + + // 구역 현황 로드 + loadZoneItems(); +} + +// ==================== 구역 지도 탭 ==================== + +// 지도 탭 렌더링 +function renderMapTab() { + const container = document.getElementById('zoneMapContainer'); + const { workplace } = workplaceData; + + // 작업장 자체의 지도 이미지 사용 + const mapImage = workplace.layout_image; + if (mapImage) { + // 이미지 URL 생성 (API base URL에서 /api 제거) + const staticUrl = window.API_BASE_URL ? window.API_BASE_URL.replace(/\/api$/, '') : ''; + const imageUrl = mapImage.startsWith('http') ? mapImage : staticUrl + mapImage; + + container.innerHTML = ` + ${escapeHtml(workplace.workplace_name)} 지도 + `; + } else { + container.innerHTML = ` +
+
🗺️
+

작업장 지도 이미지가 등록되지 않았습니다.

+

지도 없이도 현황을 등록할 수 있습니다.

+
+ `; + // 지도가 없어도 설비 목록은 표시 + renderEquipmentList(); + } + + // 마우스 이벤트 핸들러 설정 + setupMapEventHandlers(container); +} + +// 설비 목록 렌더링 (지도가 없을 때 텍스트로 표시) +function renderEquipmentList() { + if (!workplaceData || !workplaceData.equipments || workplaceData.equipments.length === 0) return; + + const container = document.getElementById('zoneMapContainer'); + const { equipments } = workplaceData; + + const listHtml = ` +
+

등록된 설비 (${equipments.length}개)

+
+ ${equipments.map(eq => { + let statusIcon = '⚙️'; + let statusText = '정상'; + let statusColor = '#22c55e'; + if (eq.status === 'repair_needed' || eq.status === 'repair_external') { + statusIcon = '🔧'; + statusText = eq.status === 'repair_external' ? '외부수리' : '수리필요'; + statusColor = '#ef4444'; + } else if (eq.status === 'maintenance') { + statusIcon = '⚠️'; + statusText = '점검중'; + statusColor = '#f59e0b'; + } else if (eq.is_temporarily_moved) { + statusIcon = '📤'; + statusText = '이동됨'; + statusColor = '#9ca3af'; + } + return ` +
+ ${statusIcon} + ${escapeHtml(eq.equipment_name)} + ${statusText} +
+ `; + }).join('')} +
+
+ `; + + container.insertAdjacentHTML('beforeend', listHtml); +} + +// 지도 이미지 로드 완료 +function onMapImageLoaded() { + renderEquipmentsOnMap(); + renderZoneItemsOnMap(); +} + +// 지도 이미지 로드 실패 +function onMapImageError() { + const container = document.getElementById('zoneMapContainer'); + container.innerHTML = ` +
+
⚠️
+

지도 이미지를 불러올 수 없습니다.

+

지도 없이도 현황을 등록할 수 있습니다.

+
+ `; + setupMapEventHandlers(container); +} + +// 지도 이벤트 핸들러 설정 +function setupMapEventHandlers(container) { + container.addEventListener('mousedown', onMapMouseDown); + container.addEventListener('mousemove', onMapMouseMove); + container.addEventListener('mouseup', onMapMouseUp); + container.addEventListener('mouseleave', onMapMouseLeave); + + // 터치 이벤트 (모바일) + container.addEventListener('touchstart', onMapTouchStart, { passive: false }); + container.addEventListener('touchmove', onMapTouchMove, { passive: false }); + container.addEventListener('touchend', onMapTouchEnd); +} + +// 설비를 지도에 렌더링 +function renderEquipmentsOnMap() { + const container = document.getElementById('zoneMapContainer'); + if (!workplaceData || !workplaceData.equipments) return; + + const { equipments } = workplaceData; + const currentWorkplaceId = parseInt(workplaceId); + + // 기존 설비 마커 제거 + container.querySelectorAll('.equipment-map-marker').forEach(el => el.remove()); + + equipments.forEach(eq => { + // 이 작업장에 표시할 좌표 결정 + let x, y, width, height; + let isHere = true; // 이 작업장에 현재 있는지 + let isVisitor = false; // 다른 곳에서 임시로 온 설비인지 + + // 원래 이 작업장 설비인 경우 + if (eq.workplace_id === currentWorkplaceId) { + if (eq.is_temporarily_moved && eq.current_workplace_id !== currentWorkplaceId) { + // 다른 곳으로 이동함 - 원래 위치에 "이동됨" 표시 + x = eq.map_x_percent; + y = eq.map_y_percent; + width = eq.map_width_percent || 5; + height = eq.map_height_percent || 5; + isHere = false; + } else { + // 현재 여기 있음 + x = eq.current_map_x_percent || eq.map_x_percent; + y = eq.current_map_y_percent || eq.map_y_percent; + width = eq.current_map_width_percent || eq.map_width_percent || 5; + height = eq.current_map_height_percent || eq.map_height_percent || 5; + } + } else if (eq.current_workplace_id === currentWorkplaceId) { + // 다른 곳에서 임시로 온 설비 + x = eq.current_map_x_percent; + y = eq.current_map_y_percent; + width = eq.current_map_width_percent || 5; + height = eq.current_map_height_percent || 5; + isVisitor = true; + } else { + return; // 이 작업장과 관계없는 설비 + } + + // 좌표가 없으면 건너뜀 + if (x === null || x === undefined || y === null || y === undefined) return; + + // 상태에 따른 색상과 아이콘 + let bgColor, borderColor, icon, statusText; + if (!isHere) { + // 다른 곳으로 이동됨 + bgColor = 'rgba(156, 163, 175, 0.3)'; + borderColor = '#9ca3af'; + icon = '📤'; + statusText = `→ ${eq.current_workplace_name || '외부'}`; + } else if (eq.status === 'repair_needed' || eq.status === 'repair_external') { + // 수리 필요/요청 + bgColor = 'rgba(239, 68, 68, 0.4)'; + borderColor = '#ef4444'; + icon = '🔧'; + statusText = eq.status === 'repair_external' ? '외부수리중' : '수리필요'; + } else if (eq.status === 'maintenance') { + // 점검중 + bgColor = 'rgba(245, 158, 11, 0.4)'; + borderColor = '#f59e0b'; + icon = '⚠️'; + statusText = '점검중'; + } else if (isVisitor) { + // 다른 곳에서 온 임시 설비 + bgColor = 'rgba(139, 92, 246, 0.4)'; + borderColor = '#8b5cf6'; + icon = '📥'; + statusText = '임시배치'; + } else { + // 정상 + bgColor = 'rgba(34, 197, 94, 0.4)'; + borderColor = '#22c55e'; + icon = '⚙️'; + statusText = '정상'; + } + + // 상태별 마커 클래스 결정 + let markerClass = 'equipment-marker'; + if (!isHere) { + markerClass += ' inactive'; + } else if (eq.status === 'repair_needed' || eq.status === 'repair_external') { + markerClass += ' repair'; + } else if (eq.status === 'maintenance') { + markerClass += ' maintenance'; + } else if (isVisitor) { + markerClass += ' moved'; + } else { + markerClass += ' active'; + } + + const marker = document.createElement('div'); + marker.className = markerClass; + marker.style.cssText = ` + left: ${x}%; + top: ${y}%; + width: ${width}%; + height: ${height}%; + `; + + // 이동/임시배치 표시 이모지 + const badge = !isHere ? ' 📤' : isVisitor ? ' 🚚' : ''; + + // 마커 라벨 (설비 이름만 표시) + marker.innerHTML = `${escapeHtml(eq.equipment_name)}${badge}`; + marker.title = `${eq.equipment_name}\n상태: ${statusText}`; + + // 호버 시 정보 표시 + marker.addEventListener('mouseenter', () => { + marker.style.transform = 'scale(1.1)'; + marker.style.zIndex = '50'; + }); + marker.addEventListener('mouseleave', () => { + marker.style.transform = 'scale(1)'; + marker.style.zIndex = '5'; + }); + + // 클릭 시 상세 정보 표시 + marker.addEventListener('click', (e) => { + e.stopPropagation(); + showEquipmentInfo(eq, isHere, isVisitor); + }); + + container.appendChild(marker); + }); +} + +// 설비 정보 표시 +function showEquipmentInfo(eq, isHere, isVisitor) { + let statusText = '정상'; + if (!isHere) { + statusText = `다른 작업장으로 이동됨 (${eq.current_workplace_name || '외부'})`; + } else if (eq.status === 'repair_needed') { + statusText = '수리 필요'; + } else if (eq.status === 'repair_external') { + statusText = '외부 수리중'; + } else if (eq.status === 'maintenance') { + statusText = '점검중'; + } else if (isVisitor) { + statusText = '임시 배치 (원래 위치 아님)'; + } + + alert(`📌 ${eq.equipment_name}\n\n` + + `유형: ${eq.equipment_type || '-'}\n` + + `관리번호: ${eq.equipment_code || '-'}\n` + + `상태: ${statusText}\n` + + (eq.notes ? `비고: ${eq.notes}` : '')); +} + +// 구역 현황 목록 로드 +async function loadZoneItems() { + try { + const response = await axios.get(`/patrol/workplaces/${workplaceId}/zone-items`); + if (response.data.success) { + zoneItems = response.data.data || []; + renderZoneItemsList(); + renderZoneItemsOnMap(); + } + } catch (error) { + console.error('구역 현황 로드 실패:', error); + zoneItems = []; + renderZoneItemsList(); + } +} + +// 현황 목록 렌더링 +function renderZoneItemsList() { + const container = document.getElementById('zoneItemsList'); + const typeLabels = { + 'working': '작업중', + 'temp_storage': '임시적치', + 'moved_equipment': '이동설비', + 'unreported': '미신고품', + 'general': '일반', + 'other': '기타' + }; + const warningLabels = { + 'good': '양호', + 'caution': '주의', + 'needs_management': '관리필요' + }; + const projectTypeLabels = { + 'project': '프로젝트', + 'non_project': '비프로젝트', + 'unknown': '미확인' + }; + + if (!zoneItems.length) { + container.innerHTML = ` +
+

등록된 현황

+ 0개 +
+
+ 등록된 현황이 없습니다.
+ 위 [현황 등록] 버튼을 눌러 지도에서 범위를 선택하세요. +
+ `; + return; + } + + container.innerHTML = ` +
+

등록된 현황

+ ${zoneItems.length}개 +
+ ${zoneItems.map(item => ` +
+
+
+
+ ${escapeHtml(item.item_name)} + ${item.photos && item.photos.length > 0 ? `📷${item.photos.length}` : ''} +
+
+ ${typeLabels[item.item_type] || item.item_type} + ${item.project_type === 'project' && item.project_name ? `• ${escapeHtml(item.project_name)}` : ''} + ${item.project_type === 'unknown' ? `• 미확인` : ''} +
+
+ ${warningLabels[item.warning_level] || '양호'} +
+ `).join('')} + `; +} + +// 지도 위에 현황 마커 렌더링 +function renderZoneItemsOnMap() { + const container = document.getElementById('zoneMapContainer'); + + // 기존 마커 제거 + container.querySelectorAll('.zone-item-marker').forEach(el => el.remove()); + + // 유형 라벨 + const typeLabels = { + 'working': '작업중', + 'temp_storage': '임시적치', + 'moved_equipment': '이동설비', + 'unreported': '미신고품' + }; + + // 마커 추가 + zoneItems.forEach(item => { + const marker = document.createElement('div'); + const isSelected = selectedZoneItem === item.item_id; + const warningClass = item.warning_level === 'needs_management' ? 'warning-high' : + item.warning_level === 'caution' ? 'warning-mid' : ''; + + marker.className = `zone-item-marker ${isSelected ? 'selected' : ''} ${warningClass}`; + marker.style.cssText = ` + left: ${item.x_percent}%; + top: ${item.y_percent}%; + width: ${item.width_percent || 5}%; + height: ${item.height_percent || 5}%; + --marker-color: ${item.color || '#3b82f6'}; + `; + marker.dataset.itemId = item.item_id; + + // 클릭 시 바로 수정 모달 열기 + marker.onclick = (e) => { + e.stopPropagation(); + editZoneItem(item.item_id); + }; + + // 주의 수준 아이콘 + const warningIcon = item.warning_level === 'needs_management' ? '⚠️ ' : + item.warning_level === 'caution' ? '⚡ ' : ''; + + // 라벨 (이름 + 유형) + const typeName = typeLabels[item.item_type] || item.item_type; + marker.innerHTML = ` + ${warningIcon}${escapeHtml(item.item_name)} + ${typeName} + `; + + marker.title = `${item.item_name}\n유형: ${typeName}\n클릭하여 수정`; + + container.appendChild(marker); + }); +} + +// 현황 선택 +function selectZoneItem(itemId) { + selectedZoneItem = selectedZoneItem === itemId ? null : itemId; + renderZoneItemsList(); + renderZoneItemsOnMap(); +} + +// 현황 등록 시작/토글 +function startAddItem() { + const container = document.getElementById('zoneMapContainer'); + const btn = document.getElementById('addItemBtn'); + + if (isAddingItem) { + // 이미 등록 모드면 취소 + cancelAddItem(); + return; + } + + isAddingItem = true; + selectedZoneItem = null; + container.classList.add('adding-item'); + + // 버튼 텍스트 변경 + btn.innerHTML = '❌ 취소'; + btn.classList.add('btn-danger'); + btn.classList.remove('btn-primary'); + + // 하단 안내 바 (오버레이 대신) + let guideBar = document.getElementById('addItemGuideBar'); + if (!guideBar) { + guideBar = document.createElement('div'); + guideBar.id = 'addItemGuideBar'; + guideBar.className = 'add-item-guide-bar'; + container.appendChild(guideBar); + } + guideBar.innerHTML = ` + 👆 + 클릭: 위치 지정 | 드래그: 영역 선택 + `; + guideBar.style.display = 'flex'; +} + +// 현황 등록 취소 +function cancelAddItem() { + isAddingItem = false; + const container = document.getElementById('zoneMapContainer'); + container.classList.remove('adding-item'); + + // 안내 바 숨기기 + const guideBar = document.getElementById('addItemGuideBar'); + if (guideBar) guideBar.style.display = 'none'; + + // 선택 박스 정리 + if (selectionBox) { + selectionBox.remove(); + selectionBox = null; + } + selectionStart = null; + + // 버튼 원복 + const btn = document.getElementById('addItemBtn'); + btn.innerHTML = '➕ 현황 등록'; + btn.classList.remove('btn-danger'); + btn.classList.add('btn-primary'); +} + +// 마우스 이벤트 핸들러 +function onMapMouseDown(e) { + if (!isAddingItem) return; + if (e.target.closest('.zone-item-marker, .equipment-marker')) return; // 기존 마커 클릭 무시 + + e.preventDefault(); + const container = document.getElementById('zoneMapContainer'); + const rect = container.getBoundingClientRect(); + + selectionStart = { + x: e.clientX - rect.left, + y: e.clientY - rect.top, + xPercent: ((e.clientX - rect.left) / rect.width) * 100, + yPercent: ((e.clientY - rect.top) / rect.height) * 100, + time: Date.now() + }; + + // 선택 박스 생성 + selectionBox = document.createElement('div'); + selectionBox.className = 'selection-box'; + selectionBox.style.left = selectionStart.x + 'px'; + selectionBox.style.top = selectionStart.y + 'px'; + selectionBox.style.width = '0px'; + selectionBox.style.height = '0px'; + container.appendChild(selectionBox); + + // 크기 표시 라벨 + const sizeLabel = document.createElement('div'); + sizeLabel.className = 'selection-size-label'; + sizeLabel.id = 'selectionSizeLabel'; + selectionBox.appendChild(sizeLabel); +} + +function onMapMouseMove(e) { + if (!isAddingItem || !selectionStart || !selectionBox) return; + + const container = document.getElementById('zoneMapContainer'); + const rect = container.getBoundingClientRect(); + + const currentX = Math.max(0, Math.min(e.clientX - rect.left, rect.width)); + const currentY = Math.max(0, Math.min(e.clientY - rect.top, rect.height)); + + const left = Math.min(selectionStart.x, currentX); + const top = Math.min(selectionStart.y, currentY); + const width = Math.abs(currentX - selectionStart.x); + const height = Math.abs(currentY - selectionStart.y); + + selectionBox.style.left = left + 'px'; + selectionBox.style.top = top + 'px'; + selectionBox.style.width = width + 'px'; + selectionBox.style.height = height + 'px'; + + // 크기 표시 업데이트 + const widthPercent = ((width / rect.width) * 100).toFixed(1); + const heightPercent = ((height / rect.height) * 100).toFixed(1); + const sizeLabel = document.getElementById('selectionSizeLabel'); + if (sizeLabel && width > 30) { + sizeLabel.textContent = `${widthPercent}% × ${heightPercent}%`; + sizeLabel.style.display = 'block'; + } +} + +function onMapMouseUp(e) { + if (!isAddingItem || !selectionStart) return; + + const container = document.getElementById('zoneMapContainer'); + const rect = container.getBoundingClientRect(); + + const endX = Math.max(0, Math.min(e.clientX - rect.left, rect.width)); + const endY = Math.max(0, Math.min(e.clientY - rect.top, rect.height)); + + const width = Math.abs(endX - selectionStart.x); + const height = Math.abs(endY - selectionStart.y); + const elapsed = Date.now() - selectionStart.time; + + // 선택 박스 제거 + if (selectionBox) { + selectionBox.remove(); + selectionBox = null; + } + + // 빠른 클릭 (200ms 이하) 또는 작은 영역 (15px 이하) → 고정 크기 마커 + if (elapsed < 200 || (width < 15 && height < 15)) { + const xPercent = Math.max(0, selectionStart.xPercent - 2.5); // 중앙 정렬 + const yPercent = Math.max(0, selectionStart.yPercent - 2.5); + openZoneItemModal(xPercent, yPercent, 5, 5); + } else { + // 드래그로 선택한 영역 + const xPercent = Math.min(selectionStart.xPercent, (endX / rect.width) * 100); + const yPercent = Math.min(selectionStart.yPercent, (endY / rect.height) * 100); + const widthPercent = (width / rect.width) * 100; + const heightPercent = (height / rect.height) * 100; + openZoneItemModal(xPercent, yPercent, widthPercent, heightPercent); + } + + selectionStart = null; + // 등록 모드 유지 (연속 등록 가능) +} + +function onMapMouseLeave() { + // 지도 영역 벗어나면 현재 선택만 취소 (모드는 유지) + if (selectionBox && selectionStart) { + selectionBox.remove(); + selectionBox = null; + selectionStart = null; + } +} + +// 터치 이벤트 (모바일) +function onMapTouchStart(e) { + if (!isAddingItem) return; + if (e.target.closest('.zone-item-marker, .equipment-marker')) return; + e.preventDefault(); + const touch = e.touches[0]; + onMapMouseDown({ clientX: touch.clientX, clientY: touch.clientY, target: e.target }); +} + +function onMapTouchMove(e) { + if (!isAddingItem || !selectionStart) return; + e.preventDefault(); + const touch = e.touches[0]; + onMapMouseMove({ clientX: touch.clientX, clientY: touch.clientY }); +} + +function onMapTouchEnd(e) { + if (!isAddingItem || !selectionStart) return; + const touch = e.changedTouches[0]; + onMapMouseUp({ clientX: touch.clientX, clientY: touch.clientY }); +} + +// 프로젝트 목록 캐시 +let projectsCache = null; +let selectedPhotos = []; + +// 프로젝트 목록 로드 +async function loadProjects() { + if (projectsCache) return projectsCache; + try { + const response = await axios.get('/projects?status=in_progress&limit=100'); + if (response.data.success) { + projectsCache = response.data.data || []; + return projectsCache; + } + } catch (err) { + console.error('프로젝트 로드 실패:', err); + } + return []; +} + +// 프로젝트 타입 변경 +function onProjectTypeChange(value) { + const projectGroup = document.getElementById('projectSelectGroup'); + if (value === 'project') { + projectGroup.style.display = 'block'; + populateProjectSelect(); + } else { + projectGroup.style.display = 'none'; + } +} + +// 프로젝트 셀렉트 채우기 +async function populateProjectSelect() { + const select = document.getElementById('zoneItemProject'); + const projects = await loadProjects(); + + select.innerHTML = ''; + projects.forEach(p => { + select.innerHTML += ``; + }); +} + +// 커스텀 유형 추가 +function addCustomType() { + const customType = prompt('새로운 상태/유형을 입력하세요:'); + if (!customType || !customType.trim()) return; + + const select = document.getElementById('zoneItemType'); + const value = customType.trim().toLowerCase().replace(/\s+/g, '_'); + + // 중복 체크 + if (Array.from(select.options).some(opt => opt.value === value)) { + alert('이미 존재하는 유형입니다.'); + return; + } + + const option = document.createElement('option'); + option.value = value; + option.textContent = customType.trim(); + select.appendChild(option); + select.value = value; +} + +// 사진 선택 +function onPhotoSelected(event) { + const files = Array.from(event.target.files); + files.forEach(file => { + if (!file.type.startsWith('image/')) return; + if (selectedPhotos.length >= 5) { + alert('사진은 최대 5장까지 등록할 수 있습니다.'); + return; + } + + const reader = new FileReader(); + reader.onload = (e) => { + selectedPhotos.push({ + file: file, + dataUrl: e.target.result + }); + renderPhotoPreview(); + }; + reader.readAsDataURL(file); + }); + event.target.value = ''; // 리셋 +} + +// 사진 미리보기 렌더링 +function renderPhotoPreview() { + const container = document.getElementById('photoPreviewList'); + container.innerHTML = selectedPhotos.map((photo, idx) => ` +
+ 사진 ${idx + 1} + +
+ `).join(''); +} + +// 사진 제거 +function removePhoto(index) { + selectedPhotos.splice(index, 1); + renderPhotoPreview(); +} + +// 현황 모달 열기 +function openZoneItemModal(x, y, width, height, item = null) { + const modal = document.getElementById('zoneItemModal'); + const title = document.getElementById('zoneItemModalTitle'); + const deleteBtn = document.getElementById('deleteZoneItemBtn'); + + // 사진 초기화 + selectedPhotos = []; + renderPhotoPreview(); + + if (item) { + // 수정 모드 + title.textContent = '현황 수정'; + deleteBtn.style.display = 'inline-block'; + + document.getElementById('zoneItemId').value = item.item_id; + document.getElementById('zoneItemX').value = item.x_percent; + document.getElementById('zoneItemY').value = item.y_percent; + document.getElementById('zoneItemWidth').value = item.width_percent || 5; + document.getElementById('zoneItemHeight').value = item.height_percent || 5; + document.getElementById('zoneItemName').value = item.item_name || ''; + document.getElementById('zoneItemType').value = item.item_type || 'working'; + document.getElementById('zoneItemWarning').value = item.warning_level || 'good'; + document.getElementById('zoneItemDesc').value = item.description || ''; + document.getElementById('zoneItemColor').value = item.color || '#3b82f6'; + + // 프로젝트 타입 + const projectType = item.project_type || 'non_project'; + document.querySelector(`input[name="zoneItemProjectType"][value="${projectType}"]`).checked = true; + onProjectTypeChange(projectType); + if (projectType === 'project' && item.project_id) { + setTimeout(() => { + document.getElementById('zoneItemProject').value = item.project_id; + }, 100); + } + + // 기존 사진 로드 (있으면) + if (item.photos && item.photos.length > 0) { + item.photos.forEach(photo => { + selectedPhotos.push({ + existing: true, + photo_id: photo.photo_id, + dataUrl: photo.photo_url + }); + }); + renderPhotoPreview(); + } + } else { + // 등록 모드 + title.textContent = '현황 등록'; + deleteBtn.style.display = 'none'; + + document.getElementById('zoneItemId').value = ''; + document.getElementById('zoneItemX').value = x; + document.getElementById('zoneItemY').value = y; + document.getElementById('zoneItemWidth').value = width; + document.getElementById('zoneItemHeight').value = height; + document.getElementById('zoneItemForm').reset(); + document.getElementById('zoneItemColor').value = '#3b82f6'; + + // 기본값 설정 + document.querySelector('input[name="zoneItemProjectType"][value="non_project"]').checked = true; + onProjectTypeChange('non_project'); + } + + modal.style.display = 'flex'; +} + +// 현황 수정 모달 열기 +function editZoneItem(itemId) { + const item = zoneItems.find(i => i.item_id === itemId); + if (!item) return; + openZoneItemModal(item.x_percent, item.y_percent, item.width_percent, item.height_percent, item); +} + +// 모달 닫기 +function closeZoneItemModal() { + document.getElementById('zoneItemModal').style.display = 'none'; +} + +// 색상 프리셋 선택 +function setItemColor(color) { + document.getElementById('zoneItemColor').value = color; +} + +// 현황 저장 +async function saveZoneItem() { + const itemId = document.getElementById('zoneItemId').value; + const projectType = document.querySelector('input[name="zoneItemProjectType"]:checked')?.value || 'non_project'; + const projectId = projectType === 'project' ? document.getElementById('zoneItemProject').value : null; + + const itemData = { + item_name: document.getElementById('zoneItemName').value.trim(), + item_type: document.getElementById('zoneItemType').value, + warning_level: document.getElementById('zoneItemWarning').value, + project_type: projectType, + project_id: projectId || null, + description: document.getElementById('zoneItemDesc').value.trim(), + color: document.getElementById('zoneItemColor').value, + x_percent: parseFloat(document.getElementById('zoneItemX').value), + y_percent: parseFloat(document.getElementById('zoneItemY').value), + width_percent: parseFloat(document.getElementById('zoneItemWidth').value), + height_percent: parseFloat(document.getElementById('zoneItemHeight').value) + }; + + if (!itemData.item_name) { + alert('명칭을 입력해주세요.'); + return; + } + + if (projectType === 'project' && !projectId) { + alert('프로젝트를 선택해주세요.'); + return; + } + + try { + let response; + if (itemId) { + // 수정 + response = await axios.put(`/patrol/zone-items/${itemId}`, itemData); + } else { + // 등록 + response = await axios.post(`/patrol/workplaces/${workplaceId}/zone-items`, itemData); + } + + if (response.data.success) { + const savedItemId = itemId || response.data.data?.item_id; + + // 사진 업로드 (새로 추가된 사진만) + const newPhotos = selectedPhotos.filter(p => !p.existing && p.file); + if (newPhotos.length > 0 && savedItemId) { + await uploadZoneItemPhotos(savedItemId, newPhotos); + } + + closeZoneItemModal(); + await loadZoneItems(); + alert(itemId ? '현황이 수정되었습니다.' : '현황이 등록되었습니다.'); + } else { + throw new Error(response.data.message || '저장 실패'); + } + } catch (error) { + console.error('현황 저장 실패:', error); + alert('저장에 실패했습니다: ' + (error.response?.data?.message || error.message)); + } +} + +// 사진 업로드 +async function uploadZoneItemPhotos(itemId, photos) { + for (const photo of photos) { + try { + const formData = new FormData(); + formData.append('photo', photo.file); + formData.append('item_id', itemId); + + await axios.post('/patrol/zone-items/photos', formData, { + headers: { 'Content-Type': 'multipart/form-data' } + }); + } catch (err) { + console.error('사진 업로드 실패:', err); + } + } +} + +// 현황 삭제 +async function deleteZoneItem() { + const itemId = document.getElementById('zoneItemId').value; + if (!itemId) return; + + if (!confirm('이 현황을 삭제하시겠습니까?')) return; + + try { + const response = await axios.delete(`/patrol/zone-items/${itemId}`); + if (response.data.success) { + closeZoneItemModal(); + selectedZoneItem = null; + await loadZoneItems(); + alert('현황이 삭제되었습니다.'); + } else { + throw new Error(response.data.message || '삭제 실패'); + } + } catch (error) { + console.error('현황 삭제 실패:', error); + alert('삭제에 실패했습니다: ' + (error.response?.data?.message || error.message)); + } +} + +// 요약 카드 렌더링 +function renderSummaryCards(summary) { + const container = document.getElementById('summaryCards'); + + container.innerHTML = ` +
+
⚙️
+
+
${summary.equipmentCount}
+
등록 설비
+
+
+
+
🔧
+
+
${summary.pendingRepairs}
+
수리 요청
+
+
+
+
🚨
+
+
${summary.openIssues}
+
미해결 신고
+
+
+
+
🚶
+
+
${summary.todayVisitors}
+
금일 방문자
+
+
+
+
📋
+
+
${summary.todayTbmSessions}
+
금일 TBM
+
+
+ `; +} + +// 안전신고/부적합 탭 렌더링 +function renderIssuesTab() { + const container = document.getElementById('issuesContent'); + const { workIssues } = workplaceData; + + if (!workIssues.all.length) { + container.innerHTML = ` +
+
+
최근 30일간 신고 내역이 없습니다.
+
+ `; + return; + } + + let html = ''; + + // 안전 신고 + if (workIssues.safety.length > 0) { + html += ` +
+

+ 🛡️ 안전 신고 + ${workIssues.safety.length} +

+
+ ${workIssues.safety.map(issue => renderIssueCard(issue, 'safety')).join('')} +
+
+ `; + } + + // 부적합 사항 + if (workIssues.nonconformity.length > 0) { + html += ` +
+

+ ⚠️ 부적합 사항 + ${workIssues.nonconformity.length} +

+
+ ${workIssues.nonconformity.map(issue => renderIssueCard(issue, 'nonconformity')).join('')} +
+
+ `; + } + + container.innerHTML = html; +} + +// 신고 카드 렌더링 +function renderIssueCard(issue, type) { + const statusLabels = { + 'pending': '대기', + 'received': '접수', + 'in_progress': '처리중', + 'completed': '완료', + 'closed': '종료' + }; + const severityLabels = { + 'low': '경미', + 'medium': '보통', + 'high': '중요', + 'critical': '긴급' + }; + + return ` +
+
+ ${escapeHtml(issue.title)} + ${statusLabels[issue.status] || issue.status} +
+
+ 📁 ${escapeHtml(issue.category_name || '미분류')} + ${issue.severity ? `${severityLabels[issue.severity]}` : ''} + 📅 ${formatDateTime(issue.created_at)} + 👤 ${escapeHtml(issue.reporter_name || '익명')} +
+ ${issue.description ? `
${escapeHtml(issue.description)}
` : ''} +
+ `; +} + +// 설비/수리 탭 렌더링 +function renderEquipmentTab() { + const container = document.getElementById('equipmentContent'); + const { equipments, repairRequests } = workplaceData; + + let html = ''; + + // 수리 요청 + if (repairRequests.length > 0) { + html += ` +
+

+ 🔧 수리 요청 + ${repairRequests.length} +

+
+ ${repairRequests.map(req => renderRepairCard(req)).join('')} +
+
+ `; + } + + // 설비 현황 + if (equipments.length > 0) { + html += ` +
+

+ ⚙️ 설비 현황 + ${equipments.length} +

+
+ ${equipments.map(eq => renderEquipmentCard(eq)).join('')} +
+
+ `; + } + + if (!html) { + html = ` +
+
⚙️
+
등록된 설비가 없습니다.
+
+ `; + } + + container.innerHTML = html; +} + +// 수리 요청 카드 렌더링 +function renderRepairCard(req) { + const priorityLabels = { + 'emergency': '긴급', + 'high': '높음', + 'normal': '보통', + 'low': '낮음' + }; + + return ` +
+
+ ${escapeHtml(req.equipment_name)} + ${priorityLabels[req.priority] || req.priority} +
+
📋 ${escapeHtml(req.repair_category)}
+ ${req.description ? `
${escapeHtml(req.description)}
` : ''} +
📅 ${formatDate(req.request_date)}
+
+ `; +} + +// 설비 카드 렌더링 +function renderEquipmentCard(eq) { + const statusLabels = { + 'active': '정상', + 'inactive': '비활성', + 'repair_needed': '수리필요', + 'under_repair': '수리중', + 'disposed': '폐기' + }; + + return ` +
+
⚙️
+
+
${escapeHtml(eq.equipment_name)}
+
${escapeHtml(eq.equipment_type || '-')}
+
+ ${statusLabels[eq.status] || eq.status} +
+ `; +} + +// 출입현황 탭 렌더링 +function renderVisitsTab() { + const container = document.getElementById('visitsContent'); + const { visitRecords } = workplaceData; + + if (!visitRecords.length) { + container.innerHTML = ` +
+
🚶
+
금일 승인된 방문자가 없습니다.
+
+ `; + return; + } + + container.innerHTML = ` +
+

+ 🚶 금일 방문자 + ${visitRecords.length} +

+
+ ${visitRecords.map(visit => renderVisitCard(visit)).join('')} +
+
+ `; +} + +// 방문자 카드 렌더링 +function renderVisitCard(visit) { + return ` +
+
+
+ ${escapeHtml(visit.visitor_name)} + ${visit.visitor_company ? `(${escapeHtml(visit.visitor_company)})` : ''} +
+
+
${escapeHtml(visit.purpose_name || visit.visit_purpose || '')}
+
+ 🕐 ${escapeHtml(visit.visit_time_from || '')} ~ ${escapeHtml(visit.visit_time_to || '')} + ${visit.companion_count > 0 ? `👥 동행 ${visit.companion_count}명` : ''} + ${visit.vehicle_number ? `🚗 ${escapeHtml(visit.vehicle_number)}` : ''} +
+
+ `; +} + +// TBM 탭 렌더링 +function renderTbmTab() { + const container = document.getElementById('tbmContent'); + const { tbmSessions } = workplaceData; + + if (!tbmSessions.length) { + container.innerHTML = ` +
+
📋
+
금일 TBM 세션이 없습니다.
+
+ `; + return; + } + + container.innerHTML = ` +
+

+ 📋 금일 TBM + ${tbmSessions.length} +

+
+ ${tbmSessions.map(tbm => renderTbmCard(tbm)).join('')} +
+
+ `; +} + +// TBM 카드 렌더링 +function renderTbmCard(tbm) { + const statusLabels = { + 'draft': '작성중', + 'in_progress': '진행중', + 'completed': '완료' + }; + + return ` +
+
+ ${escapeHtml(tbm.task_name || tbm.work_type_name || '작업')} + ${statusLabels[tbm.status] || tbm.status} +
+
+ 📍 ${escapeHtml(tbm.work_location || '-')} + 👷 ${escapeHtml(tbm.leader_name || tbm.leader_worker_name || '-')} + 👥 ${tbm.team_size || (tbm.team ? tbm.team.length : 0)}명 +
+ ${tbm.work_content ? ` +
+
작업내용
+
${escapeHtml(tbm.work_content)}
+
+ ` : ''} + ${tbm.safety_measures ? ` +
+
안전조치
+
${escapeHtml(tbm.safety_measures)}
+
+ ` : ''} + ${tbm.team && tbm.team.length > 0 ? ` +
+
참석자 (${tbm.team.length}명)
+
+ ${tbm.team.map(m => ` + ${escapeHtml(m.worker_name)} + `).join('')} +
+
+ ` : ''} +
+ `; +} + +// 순회점검 탭 렌더링 +function renderPatrolTab() { + const container = document.getElementById('patrolContent'); + const { recentPatrol } = workplaceData; + + if (!recentPatrol || !recentPatrol.length) { + container.innerHTML = ` +
+
🔍
+
최근 7일간 순회점검 기록이 없습니다.
+
+ `; + return; + } + + container.innerHTML = ` +
+

+ 🔍 최근 순회점검 + ${recentPatrol.length} +

+
+ ${recentPatrol.map(patrol => renderPatrolCard(patrol)).join('')} +
+
+ `; +} + +// 순회점검 카드 렌더링 +function renderPatrolCard(patrol) { + const timeLabels = { 'morning': '오전', 'afternoon': '오후' }; + + return ` +
+
+ ${formatDate(patrol.patrol_date)} + ${timeLabels[patrol.patrol_time] || patrol.patrol_time} +
+
+ 👤 ${escapeHtml(patrol.inspector_name || '-')} + 📊 ${patrol.status === 'completed' ? '완료' : '진행중'} +
+
+
+
${patrol.checked_count || 0}
+
점검 항목
+
+
+
${patrol.issue_count || 0}
+
주의/불량
+
+
+ ${patrol.notes ? `
📝 ${escapeHtml(patrol.notes)}
` : ''} +
+ `; +} + +// 탭 전환 +function switchTab(tabName) { + // 탭 버튼 활성화 + document.querySelectorAll('.tab-btn').forEach(btn => { + btn.classList.toggle('active', btn.dataset.tab === tabName); + }); + + // 탭 콘텐츠 표시 + document.querySelectorAll('.tab-content').forEach(content => { + content.classList.toggle('active', content.id === `tab-${tabName}`); + }); +} + +// 뒤로 가기 +function goBack() { + // 이전 페이지로 이동, 없으면 일일순회점검 페이지로 + if (document.referrer && document.referrer.includes(window.location.host)) { + window.history.back(); + } else { + window.location.href = '/pages/inspection/daily-patrol.html'; + } +} + +// 유틸리티 함수 +function formatDate(dateStr) { + if (!dateStr) return ''; + const date = new Date(dateStr); + return date.toLocaleDateString('ko-KR', { month: 'long', day: 'numeric', weekday: 'short' }); +} + +function formatDateTime(dateStr) { + if (!dateStr) return ''; + const date = new Date(dateStr); + return date.toLocaleString('ko-KR', { month: 'numeric', day: 'numeric', hour: '2-digit', minute: '2-digit' }); +} diff --git a/deploy/tkfb-package/web-ui/logo 2.png b/deploy/tkfb-package/web-ui/logo 2.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbd962e3dedce356d28528ee4d3414d2279fdb0 GIT binary patch literal 14999 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 + + + + + 관리자 설정 | (주)테크니컬코리아 + + + + + + +
+ + + + +
+
+ + + +
+
+

사용자 계정 관리

+ +
+ +
+
+ +
+ + + + +
+
+ +
+ + + + + + + + + + + + + + +
사용자명아이디역할상태최종 로그인관리
+
+ + +
+
+ + +
+
+

알림 수신자 설정

+

알림 유형별 수신자를 지정합니다. 지정된 사용자에게만 알림이 전송됩니다.

+
+ +
+
+ +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/attendance-report.html b/deploy/tkfb-package/web-ui/pages/admin/attendance-report.html new file mode 100644 index 0000000..76f474c --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/attendance-report.html @@ -0,0 +1,486 @@ + + + + + + 출퇴근-작업보고서 대조 | (주)테크니컬코리아 + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+
+
+ + +
+
+ +
+
+ + +
+
+
+

대조 결과

+

출퇴근 기록과 작업보고서의 시간을 비교합니다

+
+
+
+ +
+
+
+
+
+
+ + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/departments.html b/deploy/tkfb-package/web-ui/pages/admin/departments.html new file mode 100644 index 0000000..5f09881 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/departments.html @@ -0,0 +1,316 @@ + + + + + + 부서 관리 | (주)테크니컬코리아 + + + + + + + + + + + +
+
+
+ + +
+ +
+

부서 목록

+
+ +
+
+ + +
+
+ 부서를 선택하세요 + +
+ + +
+ 0명 선택됨 + + +
+ +
+
+ 왼쪽에서 부서를 선택하면 해당 부서의 작업자가 표시됩니다. +
+
+
+
+
+
+
+ + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/equipment-detail.html b/deploy/tkfb-package/web-ui/pages/admin/equipment-detail.html new file mode 100644 index 0000000..fbacf63 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/equipment-detail.html @@ -0,0 +1,344 @@ + + + + + + 설비 상세 | (주)테크니컬코리아 + + + + + + + + + + + + +
+ +
+
+ + + + +
+ +
+ + +
+
+

설비 사진

+ +
+
+
등록된 사진이 없습니다
+
+
+ + +
+
+

위치 정보

+
+
+
+
+ 원래 위치: + - +
+ +
+
+ +
+
+
+ + +
+ + + +
+ + +
+
+

수리 이력

+
+
+
수리 이력이 없습니다
+
+
+ + +
+
+

외부반출 이력

+
+
+
외부반출 이력이 없습니다
+
+
+ + +
+
+

이동 이력

+
+
+
이동 이력이 없습니다
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/equipments.html b/deploy/tkfb-package/web-ui/pages/admin/equipments.html new file mode 100644 index 0000000..d7c67f4 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/equipments.html @@ -0,0 +1,220 @@ + + + + + + 설비 관리 | (주)테크니컬코리아 + + + + + + + + + + + + +
+ +
+
+ + + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/issue-categories.html b/deploy/tkfb-package/web-ui/pages/admin/issue-categories.html new file mode 100644 index 0000000..a4c8e41 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/issue-categories.html @@ -0,0 +1,321 @@ + + + + + + 신고 카테고리 관리 | (주)테크니컬코리아 + + + + + + + + + + + +
+
+
+ + + +
+ + +
+ + +
+
카테고리를 불러오는 중...
+
+
+
+
+ + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/notifications.html b/deploy/tkfb-package/web-ui/pages/admin/notifications.html new file mode 100644 index 0000000..42b3833 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/notifications.html @@ -0,0 +1,554 @@ + + + + + + 알림 관리 | (주)테크니컬코리아 + + + + + + + + + + + + +
+
+
+

알림 관리

+
+ +
+
+ +
+
+
0
+
읽지 않은 알림
+
+
+
0
+
전체 알림
+
+
+ +
+
+

알림 목록

+
+ + + +
+
+ +
+
+
🔔
+

알림이 없습니다.

+
+
+ + +
+
+
+ + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/projects.html b/deploy/tkfb-package/web-ui/pages/admin/projects.html new file mode 100644 index 0000000..26433af --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/projects.html @@ -0,0 +1,687 @@ + + + + + + 프로젝트 관리 | (주)테크니컬코리아 + + + + + + + + + +
+
+ + +
+ 전체 0 + 활성 0 + 비활성 0 +
+ +
+ + + + + + + + + + + + + + + + + +
#Job No.프로젝트명상태계약일납기일PM현장활성관리
+
+
+
+ + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/repair-management.html b/deploy/tkfb-package/web-ui/pages/admin/repair-management.html new file mode 100644 index 0000000..89cd9be --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/repair-management.html @@ -0,0 +1,852 @@ + + + + + + 시설설비 관리 | (주)테크니컬코리아 + + + + + + + + + + + +
+
+ + +
+
+
0
+
신청
+
+
+
0
+
접수
+
+
+
0
+
처리중
+
+
+
0
+
완료
+
+
+ +
+ + + + + + + + + + + + + + + + + +
신청일작업장유형설명담당자상태처리
로딩중...
+
+
+
+ + + + + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/tasks.html b/deploy/tkfb-package/web-ui/pages/admin/tasks.html new file mode 100644 index 0000000..27248c4 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/tasks.html @@ -0,0 +1,596 @@ + + + + + + 작업 관리 | (주)테크니컬코리아 + + + + + + + + + + + +
+
+ + +
+ +
+
+ 공정 목록 + 0 +
+
    +
+
+ + +
+
+ 전체 작업 +
+ 활성 0 + 비활성 0 +
+
+
+ + + + + + + + + + + + +
#작업명소속 공정설명상태관리
+
+
+
+
+
+ + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/workers.html b/deploy/tkfb-package/web-ui/pages/admin/workers.html new file mode 100644 index 0000000..7536732 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/workers.html @@ -0,0 +1,495 @@ + + + + + + 작업자 관리 | (주)테크니컬코리아 + + + + + + + + + + + + + + + +
+
+
+ + + +
+ +
+
+

부서 목록

+ +
+
+ +
+
+ + +
+
+

부서를 선택하세요

+ +
+ +
+
+

부서를 선택해주세요

+

왼쪽에서 부서를 선택하면 해당 부서의 작업자가 표시됩니다.

+
+
+
+
+
+
+
+ + + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/admin/workplaces.html b/deploy/tkfb-package/web-ui/pages/admin/workplaces.html new file mode 100644 index 0000000..48b8a81 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/admin/workplaces.html @@ -0,0 +1,429 @@ + + + + + + 작업장 관리 | (주)테크니컬코리아 + + + + + + + + + + + + + +
+
+
+ +
+
+

+ 🏭 + 작업장 관리 +

+

공장 및 작업장을 등록하고 설비 위치를 지도에서 관리합니다

+
+
+ + + +
+
+ + +
+
+
🏢
+
+

0

+

공장

+
+
+
+
📍
+
+

0

+

전체 작업장

+
+
+
+
+
+

0

+

활성 작업장

+
+
+
+
⚙️
+
+

0

+

등록된 설비

+
+
+
+ + +
+ + +
+ + + + + +
+
+

+ 📋 + 작업장 목록 +

+
+ 전체 0 + 활성 0 +
+
+
+
+ +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/annual-overview.html b/deploy/tkfb-package/web-ui/pages/attendance/annual-overview.html new file mode 100644 index 0000000..86bffe9 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/annual-overview.html @@ -0,0 +1,762 @@ + + + + + + 연간 연차 현황 | 테크니컬코리아 + + + + + + + + + + + +
+
+ + + +
+ 차감 우선순위: +
1. 이월
+
2. 정기연차
+
3. 장기근속
+
4. 경조사
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
No이름이월정기연차장기근속경조사총 발생총 사용잔여
로딩 중...
+
+
+ + +
+ 변경사항이 있으면 저장 버튼을 눌러주세요 + +
+
+
+ + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/checkin.html b/deploy/tkfb-package/web-ui/pages/attendance/checkin.html new file mode 100644 index 0000000..701cb43 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/checkin.html @@ -0,0 +1,398 @@ + + + + + + 출근 체크 | (주)테크니컬코리아 + + + + + + + + + + + + +
+
+

출근 체크

+

클릭하여 출근/결근 상태를 변경하세요

+ +
+ + + + +
+ +
+
+ + 0 + 출근 +
+
+ + 0 + 결근 +
+
+ + 0 + 연차 +
+
+ +
+ +
+ +
+
+ +
+
+
+ + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/daily.html b/deploy/tkfb-package/web-ui/pages/attendance/daily.html new file mode 100644 index 0000000..7ae1a55 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/daily.html @@ -0,0 +1,392 @@ + + + + + + 일일 출퇴근 입력 | (주)테크니컬코리아 + + + + + + + + + + + + +
+
+ + + +
+
+
+

작업자 출퇴근 기록

+

근태 구분을 선택하면 근무시간이 자동 입력됩니다. 연장근로는 별도로 입력 가능합니다. (조퇴: 2시간, 반반차: 6시간, 반차: 4시간, 정시: 8시간, 주말근무: 0시간)

+
+
+
+ +
+ +
+ +
+
+
+
+
+
+ + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/monthly.html b/deploy/tkfb-package/web-ui/pages/attendance/monthly.html new file mode 100644 index 0000000..3938c29 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/monthly.html @@ -0,0 +1,1161 @@ + + + + + + 월별 출근부 | (주)테크니컬코리아 + + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
+ + +
+
+
+

2026년 2월 출근부

+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ 휴무 (주말/공휴일) +
+
+
+ 정시근무 (8h) +
+
+
+ 연차/반차/반반차/조퇴 +
+
+
+ 연장근무 (초과시간 표시) +
+
+
+ 미입력 +
+
+
+ 미입사 +
+
+
+
+
+ + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/my-vacation-info.html b/deploy/tkfb-package/web-ui/pages/attendance/my-vacation-info.html new file mode 100644 index 0000000..c206860 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/my-vacation-info.html @@ -0,0 +1,554 @@ + + + + + + 내 연차 정보 | 테크니컬코리아 + + + + + + + + + + + +
+
+ + + +
+ + +
+ + + + + + +
+
+ + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/vacation-allocation.html b/deploy/tkfb-package/web-ui/pages/attendance/vacation-allocation.html new file mode 100644 index 0000000..e0aab09 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/vacation-allocation.html @@ -0,0 +1,354 @@ + + + + + + + 휴가 발생 입력 | 테크니컬코리아 + + + + + + + + + + + + + + + +
+ + + + + +
+
+ + + + + +
+ + + +
+ + +
+
+
+

개별 작업자 휴가 입력

+
+
+ + +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
+

자동 계산 (연차만 해당)

+ +
+ +
+ + +
+
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ + +
+
+ + +
+

기존 입력 내역

+
+ + + + + + + + + + + + + + + + + + +
작업자연도휴가 유형총 일수사용 일수잔여 일수비고작업
+

작업자를 선택하세요

+
+
+
+ +
+
+
+ + +
+
+
+

근속년수별 연차 일괄 생성

+
+
+ +
+ 주의: 이 기능은 연차(ANNUAL) 휴가 유형만 생성합니다. 각 작업자의 입사일을 기준으로 근속년수를 계산하여 자동으로 연차를 부여합니다. +
+ +
+
+
+ + +
+ +
+ + +
+
+ +
+ + +
+
+ + + + +
+
+
+ + +
+
+
+

특별 휴가 유형 관리

+ +
+
+ +
+ + + + + + + + + + + + + + + + + +
유형명코드우선순위특별 휴가시스템 유형설명작업
+
+

데이터를 불러오는 중...

+
+
+ +
+
+
+ +
+
+ +
+ + +
+ + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/vacation-approval.html b/deploy/tkfb-package/web-ui/pages/attendance/vacation-approval.html new file mode 100644 index 0000000..8affa36 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/vacation-approval.html @@ -0,0 +1,264 @@ + + + + + + 휴가 승인 관리 | (주)테크니컬코리아 + + + + + + + + + + + + + +
+
+ + + +
+ + +
+ + +
+
+
+
+

승인 대기 목록

+

대기 중인 휴가 신청을 승인하거나 거부할 수 있습니다

+
+
+
+ +
+
+
+
+
+ + +
+
+
+
+

전체 신청 내역

+
+ + ~ + + + +
+
+
+
+ +
+
+
+
+
+
+
+ + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/vacation-input.html b/deploy/tkfb-package/web-ui/pages/attendance/vacation-input.html new file mode 100644 index 0000000..630924b --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/vacation-input.html @@ -0,0 +1,291 @@ + + + + + + 휴가 직접 입력 | (주)테크니컬코리아 + + + + + + + + + + + + +
+
+ + + +
+
+
+

휴가 정보 입력

+

승인 절차 없이 휴가 정보를 직접 입력합니다. 입력 즉시 승인 상태로 저장됩니다.

+
+
+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ 작업자를 선택하세요 +
+
+ +
+ + +
+
+ +
+ +
+
+
+
+
+ + +
+
+
+

최근 입력 내역

+
+ +
+
+
+
+ +
+
+
+
+
+
+ + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/vacation-management.html b/deploy/tkfb-package/web-ui/pages/attendance/vacation-management.html new file mode 100644 index 0000000..85c0283 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/vacation-management.html @@ -0,0 +1,458 @@ + + + + + + 휴가 관리 | (주)테크니컬코리아 + + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + +
+
+
+
+

승인 대기 목록

+

대기 중인 휴가 신청을 승인하거나 거부할 수 있습니다

+
+
+
+ +
+
+
+
+
+ + +
+
+
+
+

휴가 정보 직접 입력

+

승인 절차 없이 휴가 정보를 직접 입력합니다. 입력 즉시 승인 상태로 저장됩니다.

+
+
+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ 작업자를 선택하세요 +
+
+ +
+ + +
+
+ +
+ +
+
+
+
+ + +
+
+

최근 입력 내역

+
+ +
+
+
+
+ +
+
+
+
+
+ + +
+
+
+
+

전체 신청 내역

+
+ + ~ + + + +
+
+
+
+ +
+
+
+
+
+
+
+ + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/vacation-request.html b/deploy/tkfb-package/web-ui/pages/attendance/vacation-request.html new file mode 100644 index 0000000..e72defd --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/vacation-request.html @@ -0,0 +1,269 @@ + + + + + + 휴가 신청 | (주)테크니컬코리아 + + + + + + + + + + + + +
+
+ + + +
+
+
+

휴가 잔여 현황

+
+
+
+ +
+
+
+
+ + +
+
+
+

휴가 신청

+
+
+
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ +
+
+
+
+
+ + +
+
+
+

내 신청 내역

+
+
+
+ +
+
+
+
+
+
+ + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/attendance/work-status.html b/deploy/tkfb-package/web-ui/pages/attendance/work-status.html new file mode 100644 index 0000000..fbb2a59 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/attendance/work-status.html @@ -0,0 +1,700 @@ + + + + + + 근무 현황 | (주)테크니컬코리아 + + + + + + + + + + + +
+
+ + + + +
+ 정시 0 + 연차 0 + 반차 0 + 반반차 0 + 조퇴 0 + 연장 0 + 결근 0 +
+ + + + + + + + + + + + + + + +
#이름출근근태구분기본연장합계
+ +
+ + +
+
+
+ + + + + diff --git a/deploy/tkfb-package/web-ui/pages/dashboard.html b/deploy/tkfb-package/web-ui/pages/dashboard.html new file mode 100644 index 0000000..b8c9693 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/dashboard.html @@ -0,0 +1,514 @@ + + + + + + + 작업 현황판 | 테크니컬코리아 + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + +
+
+
+
+

작업장 현황

+
+ + +
+
+
+
+ + + + +
+
🏭
+

공장을 선택하세요

+

위에서 공장을 선택하면 작업장 현황을 확인할 수 있습니다.

+
+
+
+
+ + +
+
+
+
+

🚚 임시 이동된 설비

+ +
+
+
+
+ +
+ +
+
+
+ +
+ + + + +
+ + +
+ + +
+
+ +
+
+

+

+
+ +
+ + +
+ +
+ + + + + +
+ + +
+ +
+ +
+
+
👷
+
+ 0 + 작업자 +
+
+
+
🚪
+
+ 0 + 방문자 +
+
+
+
📋
+
+ 0 + 작업 수 +
+
+
+ + +
+

+ 🔧 + 진행 중인 작업 +

+
+

진행 중인 작업이 없습니다.

+
+
+ + +
+

+ ⚙️ + 설비 현황 +

+
+

설비 정보를 불러오는 중...

+
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ 🗺️ +

상세 지도를 불러오는 중...

+
+
+
+
+ + +
+
+ +
+

+ 📥 + 이 작업장으로 이동해 온 설비 +

+
+

없음

+
+
+ + +
+

+ 📤 + 다른 곳으로 이동한 설비 +

+
+

없음

+
+
+
+
+
+
+ + + + + +
+
+ +
+

+ +
+
+ +
+ +
+
+
+ + +
+
+

설비 사진

+ +
+
+
등록된 사진이 없습니다
+
+
+ + +
+ + + +
+ + +
+

수리 이력

+
+
수리 이력이 없습니다
+
+
+ + +
+

외부반출 이력

+
+
외부반출 이력이 없습니다
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/pages/inspection/daily-patrol.html b/deploy/tkfb-package/web-ui/pages/inspection/daily-patrol.html new file mode 100644 index 0000000..a55c2a0 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/inspection/daily-patrol.html @@ -0,0 +1,202 @@ + + + + + + 일일순회점검 | (주)테크니컬코리아 + + + + + + + + + + + + +
+
+
+ + + + +
+ +
+ +
+ +
+ + + + + + +
+
+
+ + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/inspection/zone-detail.html b/deploy/tkfb-package/web-ui/pages/inspection/zone-detail.html new file mode 100644 index 0000000..7b08cd9 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/inspection/zone-detail.html @@ -0,0 +1,297 @@ + + + + + + 구역 상세 | (주)테크니컬코리아 + + + + + + + + + + + + +
+
+
+ +
+
+ +
+
+

작업장

+

공장

+
+
+ +
+
+ + +
+ +
+ + +
+ + + + + + +
+ + +
+ +
+
+
+

구역 현황

+
+ +
+
+
+
+
지도를 로딩 중...
+
+
+
주의 수준
+
+
양호
+
주의
+
관리필요
+
+
설비 상태
+
+
⚙️ 정상 가동
+
🔧 수리 필요
+
⚠️ 점검중
+
📤 타 작업장 이동
+
📥 임시 배치
+
+
+
+
+ +
+
+
+ + +
+
+
+

로딩 중...

+
+
+ + +
+
+
+

로딩 중...

+
+
+ + +
+
+
+

로딩 중...

+
+
+ + +
+
+
+

로딩 중...

+
+
+ + +
+
+
+

로딩 중...

+
+
+
+
+
+
+ + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/profile/info.html b/deploy/tkfb-package/web-ui/pages/profile/info.html new file mode 100644 index 0000000..52759b2 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/profile/info.html @@ -0,0 +1,303 @@ + + + + + + 내 프로필 | (주)테크니컬코리아 + + + + + +
+ + +
+
+
+

사용자

+

역할

+
+ +
+ +
+

기본 정보

+
+
+ 사용자 ID + - +
+
+ 사용자명 + - +
+
+ 이름 + - +
+
+ 권한 레벨 + - +
+
+ 작업자 ID + - +
+
+ 가입일 + - +
+
+
+ + +
+

활동 정보

+
+
+ 마지막 로그인 + - +
+
+ 이메일 + - +
+
+ + +
+
+ - + 작업 보고서 +
+
+ - + 이번 달 활동 +
+
+ - + 팀 기여도 +
+
+
+ + +
+

빠른 작업

+
+ + 비밀번호 변경 + + + + + + 돌아가기 + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/pages/profile/password.html b/deploy/tkfb-package/web-ui/pages/profile/password.html new file mode 100644 index 0000000..5fb0d9e --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/profile/password.html @@ -0,0 +1,373 @@ + + + + + + 비밀번호 변경 | (주)테크니컬코리아 + + + + + +
+ + +
+
+

비밀번호 변경

+

계정 보안을 위해 정기적으로 비밀번호를 변경해주세요

+
+ +
+
+

새 비밀번호 설정

+
+ +
+ +
+ + +
+

비밀번호 요구사항

+
    +
  • 최소 6자 이상 입력해주세요
  • +
  • 영문 대/소문자, 숫자, 특수문자를 조합하면 더 안전합니다
  • +
  • 개인정보나 쉬운 단어는 피해주세요
  • +
  • 이전 비밀번호와 다르게 설정해주세요
  • +
+
+ + +
+
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ +
+ +
+ + +
+
+ +
+ + +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/pages/safety/checklist-manage.html b/deploy/tkfb-package/web-ui/pages/safety/checklist-manage.html new file mode 100644 index 0000000..986ef1d --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/safety/checklist-manage.html @@ -0,0 +1,596 @@ + + + + + + 안전 체크리스트 관리 - TK-FB + + + + + + + +
+ + + +
+ + + +
+ + +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+
+ + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/safety/issue-detail.html b/deploy/tkfb-package/web-ui/pages/safety/issue-detail.html new file mode 100644 index 0000000..53c375d --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/safety/issue-detail.html @@ -0,0 +1,453 @@ + + + + + + 신고 상세 | (주)테크니컬코리아 + + + + + + + + + + +
+ + +
+
+ + ← 목록으로 + + +
+
+
+

로딩 중...

+
+ +
+ + +
+

신고 정보

+
+
+ + +
+

신고 내용

+
+
+ + + + + + + + +
+

상태 변경 이력

+
+
+ + +
+
+
+ + + + + + + + +
+ × + +
+
+ + + + diff --git a/deploy/tkfb-package/web-ui/pages/safety/issue-report.html b/deploy/tkfb-package/web-ui/pages/safety/issue-report.html new file mode 100644 index 0000000..ebe4725 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/safety/issue-report.html @@ -0,0 +1,618 @@ + + + + + + 문제 신고 | (주)테크니컬코리아 + + + + + + + + + + + + +
+ + +
+ +
+
+ 1 + 위치 선택 +
+
+ 2 + 유형 선택 +
+
+ 3 + 항목 선택 +
+
+ 4 + 사진/설명 +
+
+ + +
+

1. 발생 위치 선택

+ +
+ + +
+ +
+ +
+ +
+ 지도에서 작업장을 클릭하여 위치를 선택하세요 +
+ +
+ + +
+ +
+ +
+
+ + +
+

2. 문제 유형 선택

+ +
+
+
부적합 사항
+
자재, 설계, 검사 관련 문제
+
+
+
안전 관련
+
보호구, 위험구역, 안전수칙 관련
+
+
+ + +
+ + +
+

3. 신고 항목 선택

+

해당하는 항목을 선택하세요. 여러 개 선택 가능합니다.

+ +
+

먼저 카테고리를 선택하세요

+
+
+ + +
+

4. 사진 및 추가 설명

+ +
+ +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ +
+ +
+ + +
+
+ + +
+ + +
+
+
+ + +
+
+

작업 선택

+

이 위치에 등록된 작업이 있습니다. 연결할 작업을 선택하세요.

+
+ +
+
+ + + + diff --git a/deploy/tkfb-package/web-ui/pages/safety/management.html b/deploy/tkfb-package/web-ui/pages/safety/management.html new file mode 100644 index 0000000..1edb958 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/safety/management.html @@ -0,0 +1,291 @@ + + + + + + 안전관리 | (주)테크니컬코리아 + + + + + + + + + + +
+ + + + +
+
+ + + +
+
+
승인 대기
+
0
+
+
+
승인 완료
+
0
+
+
+
교육 완료
+
0
+
+
+
반려
+
0
+
+
+ + +
+
+ + + + + +
+ + +
+ +
+
+
+
+
+ + + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/pages/safety/report-status.html b/deploy/tkfb-package/web-ui/pages/safety/report-status.html new file mode 100644 index 0000000..4c37ff9 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/safety/report-status.html @@ -0,0 +1,306 @@ + + + + + + 안전신고 현황 | (주)테크니컬코리아 + + + + + + + + + + +
+ + +
+
+ + + +
+
+
-
+
신고
+
+
+
-
+
접수
+
+
+
-
+
처리중
+
+
+
-
+
완료
+
+
+ + +
+ + + + + + + + 안전 신고 + +
+ + +
+
+
로딩 중...
+
+
+
+
+
+ + + + diff --git a/deploy/tkfb-package/web-ui/pages/safety/report.html b/deploy/tkfb-package/web-ui/pages/safety/report.html new file mode 100644 index 0000000..88a286f --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/safety/report.html @@ -0,0 +1,778 @@ + + + + + + 신고 | (주)테크니컬코리아 + + + + + + + + + + +
+ + +
+
+ + + +
+
+ 1 + 위치 선택 +
+
+
+ 2 + 유형 선택 +
+
+
+ 3 + 항목 선택 +
+
+
+ 4 + 사진/설명 +
+
+ + +
+

+ 1 + 발생 위치 선택 +

+ +
+ + +
+ +
+ +
+ +
+ 지도에서 작업장을 클릭하여 위치를 선택하세요 +
+ +
+ + +
+ +
+ +
+
+ + +
+

+ 2 + 문제 유형 선택 +

+ +
+
+
📋
+
부적합 사항
+
자재, 설계, 검사 관련 문제
+
+
+
+
안전 문제
+
보호구, 위험구역, 안전수칙 관련
+
+
+ + +
+ + +
+

+ 3 + 신고 항목 선택 +

+

해당하는 항목을 선택하거나 직접 입력하세요.

+ +
+

먼저 카테고리를 선택하세요

+
+ + + +
+ + +
+

+ 4 + 사진 및 추가 설명 +

+ +
+ +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ +
+ +
+ + +
+
+ + +
+ + +
+
+
+ + +
+
+

작업 선택

+

이 위치에 등록된 작업이 있습니다. 연결할 작업을 선택하세요.

+
+ +
+
+
+ + + + diff --git a/deploy/tkfb-package/web-ui/pages/safety/training-conduct.html b/deploy/tkfb-package/web-ui/pages/safety/training-conduct.html new file mode 100644 index 0000000..06379ad --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/safety/training-conduct.html @@ -0,0 +1,327 @@ + + + + + + 안전교육 진행 | (주)테크니컬코리아 + + + + + + + + + + +
+ + + + +
+
+ + +
+ +
+

출입 신청 정보

+
+ +
+
+ + +
+

안전교육 체크리스트

+

+ 방문자에게 다음 안전 사항을 교육하고 체크해주세요. +

+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+
+ 중요: 모든 체크리스트 항목을 완료하고 방문자의 서명을 받은 후 교육 완료 처리를 해주세요. + 교육 완료 후에는 수정할 수 없습니다. +
+
+ + +
+

방문자 서명 (0명)

+

+ 각 방문자가 왼쪽에 이름을 쓰고 오른쪽에 서명한 후 "저장" 버튼을 눌러주세요. +

+ +
+ +
+ 이름 + + 서명 +
+ +
+
왼쪽에 이름을 쓰고, 오른쪽에 서명해주세요
+
(마우스, 터치, 또는 Apple Pencil 사용)
+
+
+ +
+ + +
+ +
+ 서명 날짜: +
+ + +
+ +
+
+ + +
+ + +
+
+
+
+
+ + + + + diff --git a/deploy/tkfb-package/web-ui/pages/safety/visit-request.html b/deploy/tkfb-package/web-ui/pages/safety/visit-request.html new file mode 100644 index 0000000..1fca46d --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/safety/visit-request.html @@ -0,0 +1,371 @@ + + + + + + 출입 신청 | (주)테크니컬코리아 + + + + + + + + + + +
+ + + + +
+
+ + + +
+
+

출입 정보 입력

+ +
+ +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
지도에서 작업장을 선택하세요
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+
+
+ + +
+
+

내 출입 신청 현황

+
+ +
+
+
+
+
+
+
+ + +
+
+
+

작업장 선택

+ +
+ + +
+ + +
+ + + +
+
+ + + + + diff --git a/deploy/tkfb-package/web-ui/pages/work/.gitkeep b/deploy/tkfb-package/web-ui/pages/work/.gitkeep new file mode 100644 index 0000000..7765d68 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/work/.gitkeep @@ -0,0 +1 @@ +# Placeholder file to create work directory diff --git a/deploy/tkfb-package/web-ui/pages/work/analysis.html b/deploy/tkfb-package/web-ui/pages/work/analysis.html new file mode 100644 index 0000000..cc7551c --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/work/analysis.html @@ -0,0 +1,2859 @@ + + + + + + 작업 분석 | (주)테크니컬코리아 + + + + + + + + + + + + + + + +
+ + + ← 뒤로가기 + + + + + + + + + +
+
+ +
+ + +
+ +
+ + +
+ + +
+ +
+ + + +
+
+ + +
+ + + + + + + + + + + + + + +
+
+ + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/pages/work/nonconformity.html b/deploy/tkfb-package/web-ui/pages/work/nonconformity.html new file mode 100644 index 0000000..93a69be --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/work/nonconformity.html @@ -0,0 +1,306 @@ + + + + + + 부적합 현황 | (주)테크니컬코리아 + + + + + + + + + + +
+ + +
+
+ + + +
+
+
-
+
신고
+
+
+
-
+
접수
+
+
+
-
+
처리중
+
+
+
-
+
완료
+
+
+ + +
+ + + + + + + + 부적합 신고 + +
+ + +
+
+
로딩 중...
+
+
+
+
+
+ + + + diff --git a/deploy/tkfb-package/web-ui/pages/work/report-create.html b/deploy/tkfb-package/web-ui/pages/work/report-create.html new file mode 100644 index 0000000..f9606fa --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/work/report-create.html @@ -0,0 +1,182 @@ + + + + + + 일일 작업보고서 작성 | (주)테크니컬코리아 + + + + + + + + + +
+ + + + +
+ +
+ + +
+ + +
+ + +
+ +
+ +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/deploy/tkfb-package/web-ui/pages/work/tbm.html b/deploy/tkfb-package/web-ui/pages/work/tbm.html new file mode 100644 index 0000000..5a1adc7 --- /dev/null +++ b/deploy/tkfb-package/web-ui/pages/work/tbm.html @@ -0,0 +1,672 @@ + + + + + + TBM 관리 | (주)테크니컬코리아 + + + + + + + + + + + +
+ + + + +
+
+ +
+
+

+ 🛠 + TBM (Tool Box Meeting) +

+

아침 안전 회의 및 팀 구성 관리

+
+
+ + +
+ + +
+ + +
+
+
+

+ 📅 + 오늘의 TBM +

+
+ +
+
+ +
+ + 오늘 등록 + 0 + + + + 완료 + 0 + + + + 진행중 + 0 + + +
+ +
+ +
+ + + +
+
+ + +
+
+
+

+ 📚 + TBM 기록 +

+
+ +
+
+ +
+ + + 0 + + + + 완료 + 0 + + + +
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/templates/README.md b/deploy/tkfb-package/web-ui/templates/README.md new file mode 100644 index 0000000..2c004a5 --- /dev/null +++ b/deploy/tkfb-package/web-ui/templates/README.md @@ -0,0 +1,207 @@ +# 페이지 레이아웃 템플릿 가이드 + +이 디렉토리에는 프로젝트의 표준 페이지 레이아웃 템플릿이 포함되어 있습니다. + +## 📋 사용 가능한 템플릿 + +### 1. `dashboard-layout.html` +**용도**: 메인 대시보드 페이지 +**특징**: +- 빠른 작업 섹션 포함 +- 여러 콘텐츠 섹션 지원 +- 푸터 포함 +- 토스트 알림 지원 + +**적합한 페이지**: +- `dashboard.html` (메인 대시보드) +- 통계/분석 대시보드 + +--- + +### 2. `work-layout.html` +**용도**: 작업 관련 페이지 +**특징**: +- 페이지 제목 및 설명 섹션 +- 검색/필터 영역 +- 작업 콘텐츠 카드 +- 로딩 스피너 +- 모달 지원 + +**적합한 페이지**: +- `work/report-create.html` (작업 보고서 작성) +- `work/report-view.html` (작업 현황 확인) +- `work/analysis.html` (작업 분석) + +--- + +### 3. `admin-layout.html` +**용도**: 관리자 기능 페이지 +**특징**: +- 뒤로가기 버튼이 있는 헤더 +- 탭 네비게이션 지원 +- 데이터 테이블 레이아웃 +- 페이지네이션 +- 일괄 선택 기능 +- 확인 모달 + +**적합한 페이지**: +- `admin/projects.html` (프로젝트 관리) +- `admin/workers.html` (작업자 관리) +- `admin/codes.html` (코드 관리) +- `admin/accounts.html` (계정 관리) + +--- + +### 4. `simple-layout.html` +**용도**: 단순한 폼/프로필 페이지 +**특징**: +- 좁은 중앙 컨테이너 (최대 800px) +- 폼 요소 스타일링 +- 뒤로가기 버튼 +- 정보 표시 리스트 +- 반응형 폼 레이아웃 + +**적합한 페이지**: +- `profile/info.html` (내 프로필) +- `profile/password.html` (비밀번호 변경) +- 설정 페이지 + +--- + +## 🎨 공통 요소 + +모든 템플릿에는 다음이 포함됩니다: + +### CSS +```html + +``` +- 색상, 타이포그래피, 간격 등 CSS 변수 +- 공통 컴포넌트 스타일 (버튼, 카드, 배지 등) + +### 상단 네비게이션 (Navbar) +```html + + +``` +- 자동으로 로드되는 표준 네비게이션 헤더 +- 사용자 프로필 메뉴, 로그아웃 기능 포함 +- 현재 시각 표시 + +### 사이드바 네비게이션 (Sidebar) +```html + + +``` +- 카테고리별 접이식 메뉴 (작업관리, 안전관리, 근태관리, 시스템관리) +- 사용자 권한에 따른 메뉴 자동 필터링 +- 접기/펼치기 상태 자동 저장 (localStorage) +- 현재 페이지 자동 하이라이트 + +### 인증 +```html + +``` +- 페이지 접근 시 자동 로그인 확인 +- 미인증 시 로그인 페이지로 리다이렉트 + +--- + +## 🚀 템플릿 사용 방법 + +### 1단계: 템플릿 복사 +```bash +cp web-ui/templates/work-layout.html web-ui/pages/work/new-page.html +``` + +### 2단계: 메타데이터 수정 +```html +새 페이지 | 테크니컬코리아 +``` + +### 3단계: CSS/JS 추가 +```html + + + + + +``` + +### 4단계: 콘텐츠 작성 +템플릿의 주석 처리된 예시 코드를 참고하여 실제 콘텐츠로 교체합니다. + +--- + +## 📐 CSS 변수 활용 + +모든 템플릿은 `design-system.css`의 CSS 변수를 사용합니다: + +### 색상 +```css +var(--primary-500) /* 하늘색 (기본) */ +var(--success-500) /* 성공 (녹색) */ +var(--error-500) /* 오류 (빨간색) */ +var(--text-primary) /* 주요 텍스트 */ +``` + +### 간격 +```css +var(--space-2) /* 8px */ +var(--space-4) /* 16px */ +var(--space-6) /* 24px */ +``` + +### 타이포그래피 +```css +var(--text-sm) /* 14px */ +var(--text-base) /* 16px */ +var(--font-medium) /* 500 */ +var(--font-bold) /* 700 */ +``` + +### 기타 +```css +var(--radius-md) /* 8px 둥근 모서리 */ +var(--shadow-md) /* 중간 그림자 */ +var(--transition-fast) /* 150ms 전환 */ +``` + +--- + +## ✅ 모범 사례 + +### DO ✅ +- 템플릿을 복사하여 시작 +- CSS 변수 사용 +- 의미있는 클래스명 사용 +- 주석으로 섹션 구분 +- 반응형 디자인 고려 + +### DON'T ❌ +- 하드코딩된 색상 사용 (`#0ea5e9` 대신 `var(--primary-500)`) +- 인라인 스타일 남발 +- 중복 코드 작성 +- 템플릿 구조 크게 변경 + +--- + +## 🔄 템플릿 업데이트 + +템플릿이 업데이트되면: +1. 기존 페이지를 즉시 수정할 필요는 없음 +2. 새 기능이 필요한 페이지만 선택적으로 적용 +3. 주요 변경사항은 `개발 log/` 디렉토리에 문서화 + +--- + +## 📞 문의 + +템플릿 사용에 대한 질문이나 개선 제안이 있으면: +- `CODING_GUIDE.md` 참조 +- 개발팀에 문의 + +--- + +**마지막 업데이트**: 2026-01-20 +**버전**: 1.0.0 diff --git a/deploy/tkfb-package/web-ui/templates/admin-layout.html b/deploy/tkfb-package/web-ui/templates/admin-layout.html new file mode 100644 index 0000000..c9ee676 --- /dev/null +++ b/deploy/tkfb-package/web-ui/templates/admin-layout.html @@ -0,0 +1,157 @@ + + + + + + + 관리자 | 테크니컬코리아 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + +
+ +
+ + + +
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + +
+ + ID이름상태등록일작업
1샘플 데이터활성2025-01-20 + + +
+
+ + + +
+ +
+
+ + + + + + + + + + diff --git a/deploy/tkfb-package/web-ui/templates/dashboard-layout.html b/deploy/tkfb-package/web-ui/templates/dashboard-layout.html new file mode 100644 index 0000000..fa06825 --- /dev/null +++ b/deploy/tkfb-package/web-ui/templates/dashboard-layout.html @@ -0,0 +1,104 @@ + + + + + + + 대시보드 | 테크니컬코리아 + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + +
+
+
+

⚡ 빠른 작업

+
+ +
+
+ + +
+
+
+
+

📊 콘텐츠 제목

+ +
+ +
+
+
+
+ +

여기에 페이지 콘텐츠를 추가하세요.

+
+
+
+ +
+ + + + +
+ + +
+ + + + diff --git a/deploy/tkfb-package/web-ui/templates/simple-layout.html b/deploy/tkfb-package/web-ui/templates/simple-layout.html new file mode 100644 index 0000000..d2b4d2f --- /dev/null +++ b/deploy/tkfb-package/web-ui/templates/simple-layout.html @@ -0,0 +1,299 @@ + + + + + + + 페이지 제목 | 테크니컬코리아 + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +

페이지 제목

+
+ + +
+
+

섹션 제목

+
+
+ + +
+ + +
+ + + 도움말 텍스트 +
+ + +
+ + +
+ + +
+ + +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+ + +
+ +
+ +
+
+ + +
+
+

추가 정보

+
+
+
+
+ 항목 1: + 값 1 +
+
+ 항목 2: + 값 2 +
+
+ 항목 3: + 값 3 +
+
+
+
+ +
+
+ + + + + +
+ + + + + + diff --git a/deploy/tkfb-package/web-ui/templates/work-layout.html b/deploy/tkfb-package/web-ui/templates/work-layout.html new file mode 100644 index 0000000..44ca82d --- /dev/null +++ b/deploy/tkfb-package/web-ui/templates/work-layout.html @@ -0,0 +1,131 @@ + + + + + + + 작업 관리 | 테크니컬코리아 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+

📋 페이지 제목

+

페이지 설명을 여기에 작성하세요

+
+ + +
+ +
+
+ + +
+
+ + +
+ +
+ + +
+

여기에 작업 관련 콘텐츠를 추가하세요.

+ + + +
+ + +
+ + +
+
+ +
+
+ + + + + + + + + + diff --git a/deploy/web-ui-config.js b/deploy/web-ui-config.js new file mode 100644 index 0000000..9fc26a9 --- /dev/null +++ b/deploy/web-ui-config.js @@ -0,0 +1,33 @@ +// /js/config.js - Synology NAS 배포용 +// 이 파일을 web-ui/js/config.js로 복사하세요 + +export const config = { + // API 관련 설정 + api: { + // Synology NAS Docker 환경에서 사용하는 API 서버 포트 + port: 3005, + // API의 기본 경로 + path: '/api', + }, + + // 페이지 경로 설정 + paths: { + loginPage: '/index.html', + dashboard: '/pages/dashboard.html', + defaultDashboard: '/pages/dashboard.html', + systemDashboard: '/pages/dashboard.html', + groupLeaderDashboard: '/pages/dashboard.html', + }, + + // 공용 컴포넌트 경로 설정 + components: { + sidebar: '/components/sidebar.html', + 'sidebar-nav': '/components/sidebar-nav.html', + navbar: '/components/navbar.html', + }, + + // 애플리케이션 관련 기타 설정 + app: { + tokenRefreshInterval: 5 * 60 * 1000, + } +}; diff --git a/docs/vacation-data-flow-guide.md b/docs/vacation-data-flow-guide.md new file mode 100644 index 0000000..c43915f --- /dev/null +++ b/docs/vacation-data-flow-guide.md @@ -0,0 +1,271 @@ +# 휴가 데이터 흐름 가이드 + +> 작성일: 2026-02-05 +> 목적: 휴가 관련 데이터 저장 구조 및 연동 방식 문서화 + +--- + +## 1. 테이블 구조 + +### 1.1 vacation_balance_details (연간 휴가 잔액) +**목적**: 작업자별 연간 휴가 발생/사용 일수 관리 + +| 컬럼 | 설명 | 예시 | +|------|------|------| +| `worker_id` | 작업자 ID | 1 | +| `vacation_type_id` | 휴가 **유형** ID (vacation_types 참조) | 1 (이월), 2 (정기연차) | +| `year` | 연도 | 2026 | +| `total_days` | 발생 일수 | 15 | +| `used_days` | 사용 일수 (자동 연동) | 3 | +| `remaining_days` | 잔여 일수 (자동 계산 컬럼) | 12 | + +### 1.2 daily_attendance_records (일별 근태 기록) +**목적**: 일별 출근/휴가/근무시간 기록 + +| 컬럼 | 설명 | 예시 | +|------|------|------| +| `worker_id` | 작업자 ID | 1 | +| `record_date` | 기록 날짜 | 2026-02-05 | +| `attendance_type_id` | 근태 유형 (1=정상, 2=지각, 3=조퇴, 4=결근, 5=휴가) | 5 | +| `vacation_type_id` | 휴가 **사용** 유형 (1=연차, 2=반차, 3=반반차) | 1 | +| `total_work_hours` | 총 근무시간 | 8.0 | + +### 1.3 vacation_types (휴가 유형 마스터) +**목적**: 휴가 유형 정의 및 차감 우선순위 + +| type_code | type_name | priority | 용도 | +|-----------|-----------|----------|------| +| CARRYOVER | 이월 | 1 | 작년 이월 연차 | +| ANNUAL | 정기연차 | 2 | 올해 발생 연차 | +| LONG_SERVICE | 장기근속 | 3 | 장기근속 보상 | +| WEDDING | 결혼 | 4 | 경조사 | +| SPOUSE_BIRTH | 배우자 출산 | 4 | 경조사 | +| ... | ... | 4 | 기타 경조사 | + +--- + +## 2. 데이터 흐름 + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ 휴가 데이터 흐름도 │ +└─────────────────────────────────────────────────────────────────┘ + +[annual-overview.html] [work-status.html] +연간 연차 현황 페이지 근무 현황 페이지 + │ │ + │ 발생 일수 입력 │ 휴가 사용 기록 + │ (이월, 정기연차, 장기근속, 경조사) │ (연차/반차/반반차) + ▼ ▼ +┌──────────────────┐ ┌──────────────────┐ +│ vacation_balance │◀───── 연동 ───────│ daily_attendance │ +│ _details │ │ _records │ +│ │ │ │ +│ total_days: 15 │ used_days │ vacation_type_id │ +│ used_days: 3 ◀──┼──── 자동 업데이트 ──┼── 1 (연차) │ +│ remaining: 12 │ │ │ +└──────────────────┘ └──────────────────┘ +``` + +--- + +## 3. 연동 로직 + +### 3.1 휴가 사용 시 (work-status.html에서 저장) + +**파일**: `api.hyungi.net/services/attendanceService.js` + +```javascript +// upsertAttendanceRecordService 함수 내부 + +// 1. 기존 기록 조회 +const existingRecord = await AttendanceModel.getDailyAttendanceRecords(record_date, worker_id); + +// 2. 휴가 사용 유형 → 차감 일수 변환 +// vacation_type_id: 1=연차(1일), 2=반차(0.5일), 3=반반차(0.25일) +const daysMap = { 1: 1, 2: 0.5, 3: 0.25 }; +const newDays = daysMap[vacation_type_id] || 0; + +// 3. 이전 휴가가 있었으면 복구 (변경된 경우) +if (previousDays > 0) { + await vacationBalanceModel.restoreByPriority(worker_id, year, previousDays); +} + +// 4. 새 휴가 차감 (우선순위: 이월 → 정기연차 → 장기근속 → 경조사) +if (newDays > 0) { + await vacationBalanceModel.deductByPriority(worker_id, year, newDays); +} +``` + +### 3.2 차감 우선순위 로직 + +**파일**: `api.hyungi.net/models/vacationBalanceModel.js` + +```javascript +// deductByPriority 함수 + +// 1. 우선순위순으로 잔여 일수가 있는 잔액 조회 +SELECT * FROM vacation_balance_details vbd +INNER JOIN vacation_types vt ON vbd.vacation_type_id = vt.id +WHERE vbd.worker_id = ? AND vbd.year = ? + AND (vbd.total_days - vbd.used_days) > 0 +ORDER BY vt.priority ASC -- 이월(1) → 정기연차(2) → 장기근속(3) → 경조사(4) + +// 2. 순서대로 차감 +for (const balance of balances) { + const available = balance.remaining_days; + const toDeduct = Math.min(remaining, available); + + UPDATE vacation_balance_details + SET used_days = used_days + ? + WHERE id = ? +} +``` + +--- + +## 4. 주요 파일 위치 + +``` +api.hyungi.net/ +├── models/ +│ ├── vacationBalanceModel.js # 휴가 잔액 DB 쿼리 +│ │ ├── deductByPriority() # 우선순위 차감 ★ +│ │ └── restoreByPriority() # 우선순위 복구 ★ +│ └── attendanceModel.js # 근태 기록 DB 쿼리 +│ +├── services/ +│ └── attendanceService.js # 근태 저장 비즈니스 로직 +│ └── upsertAttendanceRecordService() # 연동 로직 포함 ★ +│ +├── controllers/ +│ ├── vacationBalanceController.js # 휴가 잔액 API +│ └── attendanceController.js # 근태 API +│ +└── routes/ + ├── vacationBalanceRoutes.js + └── attendanceRoutes.js + +web-ui/pages/attendance/ +├── annual-overview.html # 연간 연차 현황 (발생 일수 입력) - 관리자 전용 +├── my-vacation-info.html # 내 연차 정보 (잔여 확인 + 연장근로) - 전체 사용자 ★ +├── work-status.html # 근무 현황 (휴가 사용 기록) +└── monthly.html # 월별 출근부 (조회 전용) +``` + +--- + +## 5. API 엔드포인트 + +### 5.1 휴가 잔액 관련 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/vacation-balances/year/:year` | 연도별 전체 잔액 조회 | +| GET | `/vacation-balances/worker/:workerId/year/:year` | 작업자별 잔액 조회 | +| POST | `/vacation-balances/bulk-upsert` | 일괄 저장 (연간 연차 현황) | + +### 5.2 근태 기록 관련 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/attendance/records` | 근태 기록 저장 (휴가 연동 포함) | +| GET | `/attendance/records?date=&worker_id=` | 근태 기록 조회 | + +--- + +## 6. 차감 일수 매핑 + +### 6.1 휴가 사용 유형 (daily_attendance_records.vacation_type_id) + +| ID | 유형 | 차감 일수 | +|----|------|----------| +| 1 | 연차 (ANNUAL_FULL) | 1일 | +| 2 | 반차 (ANNUAL_HALF) | 0.5일 | +| 3 | 반반차 (ANNUAL_QUARTER) | 0.25일 | + +### 6.2 근태 유형 (daily_attendance_records.attendance_type_id) + +| ID | 유형 | 설명 | +|----|------|------| +| 1 | NORMAL | 정상 출근 | +| 2 | LATE | 지각 | +| 3 | EARLY_LEAVE | 조퇴 | +| 4 | ABSENT | 결근 | +| 5 | VACATION | 휴가 | + +--- + +## 7. 주의사항 + +### 7.1 휴가 잔액이 없는 경우 +- 잔액이 없어도 근태 기록은 저장됨 +- 콘솔에 경고 로그 출력 +- 관리자가 연간 연차 현황에서 발생 일수를 먼저 입력해야 함 + +### 7.2 휴가 수정 시 +- 기존 휴가 → 복구 (restoreByPriority) +- 새 휴가 → 차감 (deductByPriority) +- 연차 → 반차 변경 시: 1일 복구 → 0.5일 차감 + +### 7.3 복구 우선순위 +- 차감 우선순위의 역순으로 복구 +- 마지막에 차감된 유형부터 먼저 복구 +- 예: 경조사(4) → 장기근속(3) → 정기연차(2) → 이월(1) + +--- + +## 8. 테스트 시나리오 + +### 8.1 기본 플로우 +1. [연간 연차 현황] 김철수에게 정기연차 15일 입력 → 저장 +2. [근무 현황] 2026-02-05에 김철수 연차 선택 → 저장 +3. [연간 연차 현황] 새로고침 → 총 사용: 1일, 잔여: 14일 확인 + +### 8.2 수정 플로우 +1. [근무 현황] 기존 연차(1일) → 반차(0.5일)로 변경 → 저장 +2. [연간 연차 현황] 새로고침 → 총 사용: 0.5일, 잔여: 14.5일 확인 + +### 8.3 우선순위 테스트 +1. [연간 연차 현황] 이월 2일, 정기연차 15일 입력 +2. [근무 현황] 연차 3회 사용 (3일) +3. [연간 연차 현황] 확인: + - 이월: 2일 발생, 2일 사용, 0일 잔여 + - 정기연차: 15일 발생, 1일 사용, 14일 잔여 + +--- + +## 9. 내 연차 정보 페이지 (my-vacation-info.html) + +### 9.1 기능 +- **연차 잔여 현황**: 유형별(이월, 정기연차, 장기근속, 경조사) 잔여 일수 표시 +- **월간 연장근로**: 선택한 월의 연장근로 시간 및 일별 상세 + +### 9.2 접근 권한 +| 사용자 유형 | 기능 | +|------------|------| +| 일반 사용자 | 본인 정보만 조회 (user.worker_id 기준) | +| 관리자 | 작업자 선택하여 조회 가능 | + +### 9.3 연장근로 계산 로직 +```javascript +// daily_attendance_records에서 8시간 초과분 합산 +records.forEach(r => { + const hours = parseFloat(r.total_work_hours) || 0; + if (hours > 8) { + totalOvertimeHours += (hours - 8); + } +}); +``` + +### 9.4 메뉴 위치 +- 근태 관리 > 내 연차 정보 (최상단) + +--- + +## 10. 향후 개선 사항 + +- [ ] 휴가 신청/승인 시스템 연동 (vacation_requests 테이블) +- [ ] 연차 촉진제 알림 기능 +- [ ] 휴가 사용 내역 상세 조회 기능 +- [ ] 부서별 휴가 현황 대시보드 diff --git a/docs/zone-data-guide.md b/docs/zone-data-guide.md new file mode 100644 index 0000000..8617cad --- /dev/null +++ b/docs/zone-data-guide.md @@ -0,0 +1,224 @@ +# 구역 관련 데이터 구조 가이드 + +## 개요 + +작업장(구역) 관련 데이터는 여러 테이블에 분산 저장됩니다. 이 문서는 각 테이블의 역할과 관계를 정리합니다. + +--- + +## 테이블 구조 + +### 1. 설비 정보 (`equipments`) + +**용도**: 회사 소유 설비/장비의 마스터 데이터 + +**등록 경로**: 설비 관리 페이지 (`/pages/equipment/`) + +| 주요 컬럼 | 설명 | +|-----------|------| +| `equipment_id` | PK | +| `equipment_code` | 관리번호 (예: TKP-001) | +| `equipment_name` | 설비명 | +| `equipment_type` | 유형 (용접기, 턴테이블 등) | +| `workplace_id` | 원래 배치된 작업장 | +| `status` | 상태 (active, repair_needed, maintenance 등) | +| `map_x_percent`, `map_y_percent` | 지도상 위치 (%) | +| `is_temporarily_moved` | 임시 이동 여부 | +| `current_workplace_id` | 현재 위치 (이동 시) | + +**특징**: +- 영구적인 자산 관리 목적 +- 설비 관리 페이지에서 CRUD +- 구역 상세 페이지에서는 **조회만** 가능 + +--- + +### 2. 구역 현황 (`workplace_zone_items`) + +**용도**: 작업장 내 일시적/상시적 현황 기록 (적치물, 작업중 물품, 미신고품 등) + +**등록 경로**: 구역 상세 페이지 (`/pages/inspection/zone-detail.html`) + +| 주요 컬럼 | 설명 | +|-----------|------| +| `item_id` | PK | +| `workplace_id` | 작업장 ID | +| `item_name` | 명칭 | +| `item_type` | 상태/유형 (working, temp_storage, moved_equipment, unreported) | +| `warning_level` | 주의 수준 (good, caution, needs_management) | +| `project_type` | 프로젝트 여부 (project, non_project, unknown) | +| `project_id` | 연결된 프로젝트 ID | +| `x_percent`, `y_percent` | 지도상 위치 (%) | +| `width_percent`, `height_percent` | 영역 크기 (%) | +| `color` | 표시 색상 | +| `description` | 상세 설명 | +| `created_by` | 등록자 | + +**특징**: +- 순회점검 중 또는 수시로 등록 +- 사진 첨부 가능 (`zone_item_photos` 테이블) +- 해소되면 삭제 또는 비활성화 + +--- + +### 3. 구역 현황 사진 (`zone_item_photos`) + +**용도**: 구역 현황에 첨부된 사진 + +| 주요 컬럼 | 설명 | +|-----------|------| +| `photo_id` | PK | +| `item_id` | 연결된 현황 ID (FK → workplace_zone_items) | +| `photo_url` | 사진 경로 | +| `created_at` | 업로드 시간 | + +--- + +### 4. 구역 현황 이력 (`zone_item_history`) + +**용도**: 구역 현황의 등록/수정/삭제 이력 추적 + +| 주요 컬럼 | 설명 | +|-----------|------| +| `history_id` | PK | +| `item_id` | 현황 ID (FK → workplace_zone_items) | +| `action_type` | 행위 (created, updated, deleted) | +| `changed_fields` | 변경된 필드명 (JSON) | +| `old_values` | 이전 값 (JSON) | +| `new_values` | 새 값 (JSON) | +| `changed_by` | 변경자 ID | +| `changed_at` | 변경 시간 | + +**특징**: +- 모든 변경사항 자동 기록 +- 누가, 언제, 무엇을 변경했는지 추적 가능 +- 삭제된 항목의 마지막 상태도 보존 + +--- + +### 5. 순회점검 세션 (`patrol_sessions`) + +**용도**: 일일순회점검 수행 기록 + +**등록 경로**: 일일순회점검 페이지 (`/pages/inspection/daily-patrol.html`) + +| 주요 컬럼 | 설명 | +|-----------|------| +| `session_id` | PK | +| `patrol_date` | 점검 날짜 | +| `patrol_time` | 시간대 (morning, afternoon) | +| `category_id` | 점검 공장 | +| `inspector_id` | 점검자 | +| `status` | 상태 (in_progress, completed) | +| `notes` | 특이사항 | + +--- + +### 6. 순회점검 체크기록 (`patrol_check_records`) + +**용도**: 각 작업장별 체크리스트 점검 결과 + +| 주요 컬럼 | 설명 | +|-----------|------| +| `record_id` | PK | +| `session_id` | 세션 ID (FK → patrol_sessions) | +| `workplace_id` | 작업장 ID | +| `checklist_item_id` | 체크항목 ID | +| `is_checked` | 점검 완료 여부 | +| `check_result` | 결과 (pass, fail, na) | +| `notes` | 비고 | + +**특징**: +- 점검 세션 완료 시 일괄 저장 +- 일시적인 점검 기록 (매일 새로 생성) + +--- + +## 데이터 흐름도 + +``` +┌─────────────────────────────────────────────────────────────┐ +│ 구역 상세 페이지 │ +│ (zone-detail.html) │ +└─────────────────────────────────────────────────────────────┘ + │ + ┌───────────────┼───────────────┐ + ▼ ▼ ▼ + ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ + │ equipments │ │ workplace_ │ │ patrol_ │ + │ (설비) │ │ zone_items │ │ sessions │ + │ │ │ (현황) │ │ (점검) │ + └──────────────┘ └──────────────┘ └──────────────┘ + │ │ │ + │ ▼ ▼ + │ ┌──────────────┐ ┌──────────────┐ + │ │ zone_item_ │ │ patrol_check │ + │ │ photos │ │ _records │ + │ │ (사진) │ │ (체크기록) │ + │ └──────────────┘ └──────────────┘ + │ + ▼ + ┌──────────────┐ + │ repair_ │ + │ requests │ + │ (수리요청) │ + └──────────────┘ +``` + +--- + +## 사용 시나리오 + +### 시나리오 1: 순회점검 중 미신고품 발견 + +1. 일일순회점검 진행 (`patrol_sessions` 생성) +2. 체크리스트 점검 (`patrol_check_records` 저장) +3. 미신고품 발견 → 구역 현황 등록 (`workplace_zone_items`) +4. 사진 촬영 → 첨부 (`zone_item_photos`) + +### 시나리오 2: 설비 상태 확인 + +1. 구역 상세 페이지 접근 +2. 지도에 설비 표시 (`equipments` 조회) +3. 수리 필요 설비 확인 → 수리 요청 (`repair_requests`) + +### 시나리오 3: 임시 적치물 관리 + +1. 작업 중 자재 임시 적치 +2. 구역 현황 등록 (item_type: temp_storage) +3. 작업 완료 후 → 현황 삭제 + +--- + +## API 엔드포인트 + +| 기능 | Method | Endpoint | +|------|--------|----------| +| 설비 목록 | GET | `/api/equipments` | +| 구역 현황 목록 | GET | `/api/patrol/workplaces/:id/zone-items` | +| 구역 현황 등록 | POST | `/api/patrol/workplaces/:id/zone-items` | +| 구역 현황 수정 | PUT | `/api/patrol/zone-items/:itemId` | +| 구역 현황 삭제 | DELETE | `/api/patrol/zone-items/:itemId` | +| 현황 사진 업로드 | POST | `/api/patrol/zone-items/photos` | +| 순회점검 세션 | POST | `/api/patrol/sessions` | +| 체크기록 저장 | POST | `/api/patrol/sessions/:id/records` | + +--- + +## 주의사항 + +1. **설비 vs 구역 현황** + - 설비: 회사 자산 (영구 관리) + - 구역 현황: 일시적 상황 기록 (수시 변경) + +2. **순회점검 체크기록 vs 구역 현황** + - 체크기록: 당일 점검 결과 (일회성) + - 구역 현황: 해소될 때까지 유지 (지속성) + +3. **프로젝트 연결** + - 구역 현황만 프로젝트 연결 가능 + - 설비는 작업장에만 연결 + +--- + +*최종 수정: 2026-02-05* diff --git a/web-ui/components/mobile-nav.html b/web-ui/components/mobile-nav.html new file mode 100644 index 0000000..edd2765 --- /dev/null +++ b/web-ui/components/mobile-nav.html @@ -0,0 +1,135 @@ + + + + + + + diff --git a/web-ui/components/navbar.html b/web-ui/components/navbar.html index 4875afd..53922b4 100644 --- a/web-ui/components/navbar.html +++ b/web-ui/components/navbar.html @@ -3,6 +3,10 @@
+ +
@@ -16,7 +20,7 @@
--월 --일 (--) - --:--:-- + --시 --분 --초
🌤️ @@ -598,18 +602,61 @@ body { font-size: var(--text-sm); } +/* 모바일 메뉴 버튼 */ +.mobile-menu-btn { + display: none; + align-items: center; + justify-content: center; + width: 44px; + height: 44px; + background: rgba(255, 255, 255, 0.15); + border: 1px solid rgba(255, 255, 255, 0.25); + border-radius: 10px; + cursor: pointer; + color: white; + font-size: 1.5rem; + transition: all 0.2s; + margin-right: var(--space-3); + flex-shrink: 0; +} + +.mobile-menu-btn:hover, +.mobile-menu-btn:active { + background: rgba(255, 255, 255, 0.25); +} + /* 반응형 디자인 */ +@media (max-width: 1024px) { + .mobile-menu-btn { + display: flex; + } +} + @media (max-width: 768px) { .dashboard-header { - padding: var(--space-3) var(--space-4); + padding: var(--space-2) var(--space-3); + height: 64px; + } + + body { + padding-top: 64px; + } + + .header-content { + padding: 0 var(--space-2); + } + + .brand-logo { + width: 36px; + height: 36px; } .brand-title { - font-size: var(--text-lg); + font-size: var(--text-base); } .brand-subtitle { - font-size: var(--text-xs); + display: none; } .header-center { @@ -620,6 +667,11 @@ body { display: none; } + .user-avatar { + width: 36px; + height: 36px; + } + .dashboard-btn .btn-text, .report-btn .btn-text { display: none; @@ -627,12 +679,55 @@ body { .dashboard-btn, .report-btn { - padding: var(--space-2) var(--space-3); + padding: var(--space-2); + width: 40px; + height: 40px; + justify-content: center; + } + + .dashboard-btn .btn-icon, + .report-btn .btn-icon { + margin: 0; + } + + .notification-btn { + width: 40px; + height: 40px; } .notification-dropdown { - width: 280px; - right: -50px; + position: fixed; + top: 64px; + left: var(--space-3); + right: var(--space-3); + width: auto; + } + + .header-right { + gap: var(--space-2); + } + + .mobile-menu-btn { + width: 40px; + height: 40px; + margin-right: var(--space-2); + } + + .user-profile { + padding: var(--space-1) var(--space-2); + } + + .profile-menu { + position: fixed; + top: 64px; + right: var(--space-3); + left: auto; + width: 200px; } } + +/* 모바일 사이드바 열릴 때 바디 스크롤 방지 */ +body.sidebar-mobile-open { + overflow: hidden; +} \ No newline at end of file diff --git a/web-ui/components/sidebar-nav.html b/web-ui/components/sidebar-nav.html index ae3e634..2bd3234 100644 --- a/web-ui/components/sidebar-nav.html +++ b/web-ui/components/sidebar-nav.html @@ -89,6 +89,9 @@

O#54*Puy2(DD!SW;LqenNPCUHd?)8T8oy0wqZ* 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¬F!o~W0tHn`XT;@ng(*6%K=^Wlz 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 =LC)cS~-mUl=~iWr+6b$@Rx{I<3wk8W)Y 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

+ +

O#54*Puy2(DD!SW;LqenNPCUHd?)8T8oy0wqZ* zuFcvpqIUW(FDu?rbYI7UJXDiwKt@#*_*)JPNy`-BC;RJ4CwuLyTyW@u~gt@R|QA1Sd8%|Vq%o-{r-~_ zvJtq%M1o;(H%5Tqk~5?yc{X^X+jUv64Ty)jUQDLZi57X$wh1WdfiXQ5V6H& z5kOjTt)<;)Lm>Smd>#iX(`#vnGg&X0|0Zq;nCn=yR5c2S>CI+t;>N-m>Mn~IEqIyy zPgM1|@|2~uo0uH(P9i4LB3Gcqwy|+USZtvI-UZwBd`kjASfI{SqLMuP5ocJm;FY!? zEu$_lxi5D!j)ml6^pHIlio#AHlDdKFHXTjITTX^jhSFp@fRN%)gk2^C&6*3OEoBXioEq>+bPs zKYMz5Y`@)KSwD*nk^JPGiHf2-yZbc#$aoIBu_9#ONrx|xi~0aHo!omfL0J+;AcU)JGNcad?igzNL0fP(a%d|x^yy)y#0Hd9R4C71Zy|wz z39Ld(i4_iJ*t-0_!Y>DR#X-q{prAU_H;A=Vr0jsB&SY$86i!}Y340$;BH_o~N=E3w7T$n_nsA{fjmSC+ zEI1zyECQe__Z9J8)NA7}=)TFR`@0pN?jcKH#wD3$6|SYtb%cgIj_c&g3pmf0PHy+j z!^N^6lv3cjw%?c2VTi~=f&t&yJS>#!LGOtu#bgqWq_&j9|Gb0J`6v9-0V4L^RT-76Vh%?}P=azzOv48Ah_wGFtfC8b@V-Rdg9|(~*U7nl zEvrI*LevuB_8Sv!I4Vf6|D?NPLgWfDy^|eX3I3xEtMnjnO7Q}Y9I$^knR=)I3`#Vp z-$9&0EgWBg6AM59p@Nf0*|pF8Fd)p2cpSvFtK{nch6I~o5Oqnp1}Y4NjAHKy9lXdC z2ktEsjk!Eo{~PEE4l>zp8hS8T2+|B1WyFFz9>Y}UUNCW2Qezk4WD;07s1&Tz?W;ta z@;+Nbf`;-@%B+G5ZVr7ufFdxkjR+rjm!`F3iyVBg5+!J{?M$=Z|FU2}Xgvwx4e)|o z%-JPmOkgD~RS;y1vI)pTWP|~y)gg9-l30Ebr8T7~?zU(V-UUj^LxXM~6C2tVk5W4? zWKP~3rQy-JgPy=$9NxtD#KLB5~XX^;*S zDx=sOI2^V$UfJan2co@13t_<@A?0zll57VoecZJ47uTWd@fFsD^7ewn#D@?6lfSVJ5z*+l1zPswzH+nxy$?4-?1}B4lrPG#Bt{fD& zNI;7jJeERP#ytxjxS_s_ioV2L_!8c$=LJOKVem)04cSO8d=bXL=~7Cah^5R0QXV-f z4&5PSv&C(FnNYe{rp)~#LyI}RmpnB@nnfe10QmiS;mH6resk}m0R zP@*KZh73E$t#>l|So%0`9H~G+{Jp$4^lO}=jTC4t;*8icFP5r#LAj)vTdv5@h~>Fr z5u+3%dd?h-jkqWr8eX3)@`^d`ni9b3_x-+QqirZERr+xQraZffR8n<#9~FTHNic2; zQ}-Kmm%R4TH6UBO(Z;i3V6^>AD@OU6)^jTbn~F#SB+Vv*X9gYFiZKVLfptaSe6ZHznaYbNANVO_4 zypvaAWZT8JB)lK4O<$%|eVtCmRSBCcV3sFmBql2Fhi`8Jf-_syVJp zvIX}%(jkO9Nf8~3Di;;mu`?QcA(2{Cq{-%QQjB>s231ygv5l^y9GFugWqPHAH=dwb zwIvJ-`;}eWyNW*~UuW=~m*rMcJA9y1vQ%_hr6lgPU0| z);RG@WZrV|x3E};zRABofjF!C)y7tjf||;WrRjD*YR>YQ>W-kscR$;Z7R3*Eet}J< zY|1UQiUyK6dzFk9T~|`ew7_O77Xta42yE&Hwv8o;M-8Mix?+o4s7q4c`6){AlqRiy zuG`+UkwMvM9RKSx&^Sf61<((z6wOUotuOT0CZry=uE@6&p6*tJ?e!i-PtGw)mO zjzv~@2mqt5eoVZ(!lMy&Z*~MsZzBSV2%HeO-8F`K!=czurW%s|IxEu~OA&Gk|DZ%b3huF= z!cVDW{b&INfm5#)q<-~XHx>Hrbb3d)mkTJ`W4DPdDeoF6E%kFhH$5$)dVLUk>XrAi zTz5;XOwz)_vpDJHvWR~RymT(_5&QeztukwS+G39V(h2B!+1~GSk5%x-}pu zc6=&m8}42*Kn3B{%%{B22Dag{7_DIf$~Giq)KqpI2wK-1*b{K9#QVqy@`t7a%sdL* zSR|B}DxpOgzG>O}RNjsuUbVI{X@Kf6!c82?Q$l_Uj-!-6yeNv+A9z7qB+05MH;OeK zrg^vs_NIo8PG+j;3{crItl<=LA9DUYjjGa7{dS{&5znY+^Ck;9-Tf*JDhT}%*km@t zUU;adXAW6)aAd1>hiJEO(P7s^=O|iA#8Wt|;lemX-gwhk2>pfZe2cv9<{SMCwhuaW zy4cK#8^;dR0(0IaZy@Y$Yq@dRwX)=Xfg4qn2)%VF?zw~z^0llQrGJs2x8&&$sufa| z7q}z8wmlq}l_#>X+IK|}XwCA+f&I0;O|qb^0&PHlAxm#Ocnv0cIK))z5NVV8XM)Uupa(^Y$dwt`sdNC~_a4k66px!jDbj7|>sz(&?x}1x z<^7lkHixxuXCMiMH-epjHZWbx1myS2olF&J`l!)!ROa4@V}{TM@AXqz8lkznp)N^y zy>A#}>1BBRH@NLP}Le_*Zwj@&|LtJ8q3te4W?zx@h8$9 zd{kH6|0v%o0#mf{KKkeBKsY@LehFL3|M)6LTo0>8Y4D{(WtngGRf(=qD|1T5Hh)@U zyO`nTC_P?co$&QwFE7hHoNNqj`HJ}he`Xgkk=INy!&gu3gP?E4Z~VCIdrBYR^q@&(8gWby@sjDxcl` zqSDjJ2jn$aq7==+gm1q=s>QBuG{Ekh?t*@fj^!}=^p{Ha*2m(BxDID0V_BmuxZvlt zBqF1n3cGoo@x0=3kipI5@1cf_d?+MxSHt^NvGBVElpnyWWlr-JHg7o) zN4EU_wv#$}6`;{DbFQLM(f8r?ir?UQC0^yafmIezAU==Gp_Amn;a}po(eF24bDJC} zHhGu`p~;W;aC+4s)8SMO)bSk0V!Xd7U49*tB<=5ToZN=Xv8no4&(>2*_=pkZQ%%;) z80yBXfd2!5FFa)$wBoFic`%Cm7nMJHFQ+==A7q50H*SOj^%{q5^%GLwmH<|_-vV^!glhhd#UDnrBDJC`n)da2m{qSZ~ydbX23u2P(9?d!%u)z7vd z63^b~twtruQ`}3tgK}nxW8Uo%{2Ked%O#oq`jzQB8DA01lF~Dl1-4F-?_Z&3_#e0k z)FD(Q)U|6)08^*fmf|t>gnlRfNk=gnK*MZz5e7gul~IK!(I{0g}J&NsK%mq zqM@*^PAM}PTPNrnc}+rHBZxKdN*JL0Sf@ufl6HcJ+CPiKuJm=SIen{!W6d#2Yv|I_ z$43JERbrLHBbTiw_nG|jmT*OLy~_0MX@r@sZq1G2M?0LQtdECO?l5yKBfvAaBeQE_ zss-RPXwS>#hU}IG*YiNKOCJ4fokQEx;oRY%!e>p4A4gein_Xhz*ScEwwShElN|^F3 zc&!ki=c573(7UrRo|j9uN|Xb(`zRH3IP{`!H4fF0RiSt(8WwZ=D) zV|r$yI~e^;;Ur>Q#nMd-$h;K4SMT82TI&SMe9-Vv8h_xMm#%kjm@t)-q^K+4K9W$T zlOA@u2;SOPXv$V-Uw9?xuiP%3Q5l#-L;8;9tM-=+mDgdj@hMFePl*X=Z3d=wA4Z*# zw82z|s^8Y;XnpKaH~Iw*&QH`m&qO zpLPW~HWfy1gr#2Y@vqWeCkq@52w$I_l&#t`FTT;^JOdSA43UtHqmgOUWDdAUUX*ho}mFoKP#;f z!H$IF_}=lvg+%{mknt((IMOJrwK`sEUw>D1Kt`VATv$n@kd!;z=tYsn8c~Ed-Pgv{aOl$fi97l||@aMa^YJt7n!xM2iEADUc{nG}sa#bMGDR zlI|OSh+*&@MxK-PedCJFmoEwo*5h#X3>BGWfYMsyG zDraW1&X3{ge-J#D{(4+V^DgLx)}tRo1#!2vXjmt?jX`@uBnXQJyTujH1Ru$!#qDpH zF&Gd%HFNL;tUAzDe!!v3Pp;IBUmvIfR;!4p(4NE}sk1h6|C5|C{(gDP!4vl`!jSK% zyW#9!SNu=g(~)?9C^yhjKd-7 zOLsD2t>Vd~n11|d_GgcGvm%W;@$4akJXt>iRh9hz#B<4S)#=tS|J+GE-1RelR3_jg zp8SzW)wkTJVBxVh73WF+uZyaBt4;Awv-KspG11uN9qnZbwg0{i9vGFDSG(vU^aB)~ zTI=L7b(iI1$-AAaFFNM}Z#^xf6aZZB6XthHOKtqIj?vBegXS{?DS_~I8Z=du(QYz# zHa!5>KlHaGtM8x8KT50cID+uQj3j%Yg$D^I9}Qo)2mk#_$i&^zGI&!e^?6?TSihKt zIV9bX0Mq13?G#(#n56MBVo04W2vq65WJ{4!h|h^y^Gk`MXGA%N3CtChJRYlHw}~-P zd;>A^pr@K+Lf5Femu2Q?wSd;X*>X2Y&QAaA869eU6XevCh(#xz(t|nipqXtI%ZjM> zp&CW}VWPDrFnY@xm~T{55})+W|C6+=>A&*wl4}hEhE>j%>6iy=v>=1lr~$%WY*dcR zkXF}(QzHtL=W0@ZRzo|Wnv!k6+y1B&KD%7Zw#ltflFWqlQO#nKl8^UO*Yufh zR0rF`CWf?ysA?|*GeLt7@gOcV=_i5%n}w+;z1C;8wp0^;e516VTRzD$q_xtQ9d-of z_uMVkYH!+<4nFt??D->PUybOG#az(N*XpYWugY!1hnuy@P|u^H1B{uVSA`o00bS_8 z+Gx?oY96AMT3XT3*NS*`w!dR;Z^E7*DGbzr02<2BC8zy-029> z!P?l-WX_SNX!CfU>g#ds&l6X~(%RN@jpl^kHJ>ksn$@hw`fgtg=lT0Y1(P_8tzI}G z?pqWV&v(tm95H^A!e1-+ENfP+nx#|DH-GmvtzAWsebSd~nrWbBB3x@5SPw?NY?EU= z;gsCu$Tj1(U*p&_PBEjXtY!*XG@pUuRDSAP79h7F%v}C1@RP}vwR)r8#_Mk671hpvAkx2{?KIu5ZEvXJ z3N(Jc17*Rro@9xo2Rzo(Q9{!|#;AHx>r4yNTvj&o%RpoQ`lP7GVD`y7-_(BIYSZlU z{7|0$b1l-5%0(5XR*Pr*x^KQaWl))rzN+@+z!b&4tUP4+0BPd5=h-ET&0(DsW+AyY zNCUq_C_SDt3>#X}F!=eUiB;20eAcETvedM8zEn`;1+KrIK~I2+qC=+TJ{M=X$1xr6 z7L88BWRV*?rlVy-QqJLozX#_{bGCImH@O`$$&|I_?F&11Ai8Ri zXDuqW;=91c2zc8E1zY0yeG%lpxiKw5bI3#3U*0}YQ^%?)eXf-s{AlTQ*=n5P%7s$! z3_+x%f7P1WGVy*n9;*Ap`dBU4HzD@?FW6r30dpw4|`q(BZl=1s# zI^RSt%5U`N#Imo|>8YMxg0kwtz7e3}aO~Pc*NyQh&o0i(c-NY&W`^+L@&Dz~^mSVi zw3EW~GGiXktCRWYnlWF5^3}P@*wNVWxV&K+9VFwL&zafrCruXG@jjSeYB*qR9876} zcb$;Io$D6nOGYUAc~l0`Z)447ztzQme2ZT`hOHpH)h^tFU6cM!cwoS~*y*gk7on8H zGbKsC@8IjK1B)IMru5;nU*WSP3=n@I+n>kc5HOcI6C8-Jsxap%{3eq2YfISmjqZIF zmKDKIp1sv$W(^I_c&%}-|3EDEsXOeAsmg=vZk1bPaLmT*tG1~RPeKD=W@xI*nCDrX zA{tFN1dMw4Bu_RHKYcvGv>6*j365Vp$vAVVJ+VfMkhf9DPNXr?pS)|BzIgn(xhXE^ zjk|}rUq{$#W4G_xfJ<_suT$@rh|PEX8v#TuM$t-t(=~f>>@h3nq+mmdRd zwgqh(z{N*&xjo*uWJ^N1RL(z{Uy!hWxK<@tRsSsLv${icoLF6v*XgP6JZwVqsiI=+ zGP3K8!$mQ`P$>Y{2_JM<`u9l~NL!rPAm~K;y_=Q>g|;0#Jy`~*{C07o5LDsi{I$mT zA8R%tb~w_T&}f0n^4-*zbd#@*=I&sFxCq=YtW%KNi z!CjM;s2&5)U<&mZKo=og(U^5m0;^jq$EgupYaz}^d0r$suN{;D`v=s_B_niS;hD}3 zzh(Rnlz>mAMEQNe{Sj4ty)vU!x+N*8BKV9hJxbH~3S?C>l&@5`>UUY0HmnUIK*?B` zTGu<|9m4W^4;sC-m`bA5vOh1Z5FIpTtuyK=zRYzrkl(VS&HT_h@Em49zjP_n`hse% z0Jct$i8NYM*mMXGy=0LPO~53(%)gV=&P2^Se^wsY9Q9%oCJ58nr5U&Hc-GL7L%{(X zqzePxHsKma+C!SA$leHy5l$+KuSbH4bDTx}52M*7X^!ccAUWuRDrv9FIN zZNt>MQ9kVhRdFz_@ABKLm=z|OK6;_xw-Rqzy(4=S^C-f0-+hK`HE0B6yywXG^fM}? z?a{Z7Hf|~#3u774XGhSCsh(@F~C4+Y~l`J!$;lyruP@w50{4ODQhrfqRZs zRDf$!DTy`A8~#Sb4ZM&ep{MGH)={Q{X`m&~3!!gQP%Mk3!7t*+jdtv#lsB4*Y&*Xz+lG)o2 z>5({FV_H3(G=a{{%jD+#<)fp)>A`(1?VCrvacauV$wSn+o`Kbx-k)*84$K9~{zdHA zv0Mh^Iv9=chz+g(PgBNtHO(7!z?844DN+|QZa9~!fh_EhyXsHG1iBsfZLIsnUIV9$ z?y4ja3w6<~q5MCqGG_+al0w%-{tj*`$=SM&r-X+ppY(@{|Ajo-)#MOyNiNra>iLPQ zY`aEP?7uM#mJs)wGL`RnkaOxs~&ofe<)0VM;2X+>EVSXB4&0f!&lx};9E*Y>4Z_o>} zp4^xRG1mkBXz|?CAFq#Uqhz?wiA2lUd44RA#`lNR;Z>yknY?2s?8xp=u>8^*RS&xf z>2+lcd^=UyX1uQUxn743Od)zNVc2mcziJ+N$Ilq7_n2eRr{gisJ zN#u0KAes-X+z(Ocg2bnWQtB*Il1um$&h_oiX55u(f}21#j7Qql*$8V&>l`j} zj06zimvbJKGYx|6s>)#}0kcamz_b$Dw3URyVZsx#AobVAi88Z)HqkhVU_6l}5XyM5 ztGTO!bO0?^@TdRV1zoK=iv|(a&;YP4$%SCV_ON*aJZQ)&}|1T z0ZfcTk(UW1>_B$#q@T=0Q$eNsvOtVQPL>1+W?DlM=H1m{lLzaiODC@%Daj4y(PkIp zP?Gw64}Dss3cEZ|GQ$ID}d|FGxAhYOY$^3C??~41uupF=e1o&!2_>qkM(D>lGrM7YEas7KP zQA%xbtI&q9uEKTc=_XOs!5gdsZ^|sB1d$JWk(>&q9Cuzx3fz-K+2sl%GWCZh!cB=l zuBKZFqy@UwzN1{Ud3+*_)|3JCZfi-5+SE@MJoDpKMf>siS7rSlH%=nS>iK1W=r~z? z5F^wYm?JI%^f{8+IH2=<9Oh|gyefgk5FiACLf1mcgOlsptg(}DZ;1$r*N}CdYsolQ z+OL5SGl@yB15FeBzEO#YF;!7U=*rUp$|oWJP2S=xO#IFXPh&^Ds1MEwd`txTB?VsQ zlOkcuB6TpeJRNtFJ|J)j;$qLV$2q*6v}Uh(jOLfy<4#}&UF3P9`J}jxB4)#45HOWd zexWuC=REvXe<*@98K8lP`AuZ`O$2{|*22(q-9x*wk2A#q^5M~eY(zb)={kOP*IK6U zidQL?YU1fu!ZFxQlsP$@tm4@Y--5fuM7X%N_=z%>^fc%Y@N}V`T?Z$7?P`_0#@SUA z%k$_4@B*D_f4HL9zAU3{#BaDM5VHp9Gy}WARDM^8lAeRYu-5BEiJ9#m_d6)_ggUT& zq{~n2+Ev64Hqi~6svv$ToOW7pquWRXVoy})j>gBB2PdaXCbWwR6~XCzw-DAS zJi@GdE(s5`D4?X0GrKRHcukC>HnLauIH|+Zg|LZg-hI4@mj{(AfGCxOlR~f%_MVp55jlv$g#((%7T^5(_uR9<=hRTMY)a+1C~mKTunwg116A&M9prV z(PySa&dAV1m z%CTLbMYr2I7wG8-`$;51vHBg{#4G5!FnG^aEbW^}ac-x(yNfIm6O}~^Sl#R~vRmPz zgGI#aLd3Se&W|I6Vt)gCplvuvH*B4@@Up9jNS0qt=ihd{vKFn-xZnT^G6(DTQ0oG4 zL`EPoQCypvUV)#z0?c@#v5UqAGQ)n5nJ6&Vk>f*@eQ3n?Rl=sBKub_1uBnh3YhPtD z`2+#@*}_BTWFM_S6ER4wdfF~PC3Jb9N|ZxJ8T!Ejy5gA!vKDH(E5RqgPwU`%3_^?S zYps192Y{|dfLQU$ujjMp0@gjtPUtU@{Jvbe2M}JC`)P~J=E71L(~(nsKkPq&@X*TZ!-)Iqbg`J2S|=*aBE!kO zfW$nw#n`GE8uD36T=yN)VOiDH)Hd{K1pIwP7mB?QT;zk(4&r4+gQZHOB0-GXiK-B! zXg)5G%8326YBC#Oeh!ey%=RE$F4X?0NGL?@A3(Zv^oItO2#)gkb?1SOJv4qfXh}|D zVZ!3+BuSHBU6RFGSa}6mWoF)}!kpSgwhAa;7>mA}53+aSbP_jj75t7IM*AT;%y{2es&+fv-xrK!FChqarxrG=kq+RqQ%|$a?{i zsnH&#N=P#|iLLNL3hcM%fb7A3v<^4*$q#oErL>-^XT{nhbCftyYNy*q)?t%568;7I z_Cu6G>^WRmN;voktl5NZ6jwiZ&YRL7xSs7y_S-^6c)x(1Dp5o77P@|n=6OV^ExWHM z5ztz(jn5nckkcZwQJYe*>leMKA+Eh&n%_GC@=znz5fAV?C6bsNp$)aO(*PoqVZG< zLb~9_W1!cCrEiITu!EUe05T;b*HBJe%_8PTht!*c{)^wSdW?#2uAW2@UZU+{zw^xKAh#Ruq za#Zte0dmY9g!65=;i}G5{!>(BTIjclZSR zMg6y4g63y~#?ly8syBJ$XRRf|{{eVd$vqhI#Q6entzyyJ@&H?85D34FOVaw6h) z_$-E2YEHva+G++?85jq8afVbfE`5>pAej9IhH94#hth=E=L{8mOH#A=oz-b5sBA+Q zOza`4S7Fml^Ni@YoZPFMNZ0F4wEq-ZY@*>_aY2AoBsDj6wO;xfHQxKhz zN5_y+gaU>_FXwA;8x9T>=+N9OFXtL`=n%krkqP~bzS~S2qtCJqmNcKR|f`S7{s>)G1HmwFZlmZ0fEx5)`wae3kC=Gn1CAfK~R{&!-4a5jmK2+f`IEHv;8AG}!sp6BvS*LFBlayge$}3$=4iDpdOeJi>$gNaMfBv&VbwVn$su9EU2I4H5c{Sx45F`9U*qXs{ol z85xOa|69R8VJSt}8h#BpR5|Z_Jjpb|tWVEe0Rfo?(FsZF-^Z#n)-MEn)cW*RLJU8x zF~4&Ya$$nLj8bFqTAp*l;CoJXOs;e$;$MHzFrOO#>-HW}SrPtcFzhicQb3wZq4{@S zUhbbAg+_Do;XwJ9ZuVF^!*wk&iG*E%Pv7|htGPDVl*ui;1Om%T(iS~3I%2*AXYzL> zsVK;96+cUFn=V&mLMOD_y-9H7`^c$@w1HQBe_Z5!{wY$Dyb*yXkrn_ws<}{gTmrwO z!1@E!>0i2yEOzrg7WlL;p;?VXSXhu8eD^QIUPht}@WDUpWZmpAymjwq{PvZ8p^$CK z?KWo#fK92S)p$oAw`x8XMnThLd%`bHZ!ds~bm)S38KHMgNj^}AuO!5h5KQ|^ii zwYWdeN@J8Ov(2$$S!kvpbG9dzc}G%Ld@SQ(p&DletuI6GUtfKIEG#0cI1SQ%eW3g=E&OYB0H*%;pn@y%xn-V;GFOeijh6n7eRd48R7T){)M6oX4 z@iMN)|Hiep%YhjujBcFs)|9LDT0c@)b!XDne+5}U?8_idJfoh&sms# z<2NzZGA!#r3#tgRP&fTJkyUoK_sM!=scqBXS85Ia-KZn^-*9G2R_fBxHjfHHlkUm@ z5z~YVrrG*>LjQvFZGB8A=fdA@~L19tF)99s$X`*&! z+L7mN6hb5W^KNK45{_Jm zyTWxf(3gJPO8C*+L^5T#h~=P`mj5HCca!>9AKTg$0z-0+t;5Lk%WR=D8oe7@Q&(Du zcLKrmpfh;0#dGHJLE7cfX~*`Dv|@{W#r-VO8_9AqT{cf;$!X%k4Ddm^P!oWFXNkBz z2%aFBU_w4RD6Od$Cpm2$*D!aphQrwt&PQeJ4wUS3qulICn+?E@;RCkC1bLOkLy$GDi`s%=#z{q(&KOu*Ybbj6|WqkX7J3 zcZBA)ax<%se$KDypZcNkUW7!`?c^-Y#vt4p*tcTj*=+B-3L#t$Phk(?aY_+Rs)l># zB$BCPqo0g?m*c|D(lpkNpRjy1)xFKr&G?Flc;Ah9fe`?Mus`>d5OTZIzG^32p@CfR z(r6nD`;Q)B1R==-cpA2(Ogvoxdvi=TNs~dqa;SYNkL72wD5x}q)K!fB$);#u7Sv?` z$wN?YgAKRa*1Exp(E~43hM+-U(-#ElTY^!V4&P2Dxxdk2ujYn^CiN}I^x7;7BQ!#1 z_nn^Qrmd286lCVde?^0onRRaY=WCbi)?panGv%FR95b6Ym|UMV4qhSEzD<~-4|x>j zv+4?&gB*_)Lp%FDKTMlKH9!u-=gC==^qgEvkua$8shqh_vtMhcoaa2s+1`%;qa-%>MiLn#xKwKy+ z%8i60_07hdx8S8irYUr*f)AZ64Q%KJYYa-}>9+4t7xD3(W)mac9cL>{66R_`x{{18 z$vd!Mh6$3lDAU?4!81V<%E(Vk{A$e%CBzL{v92^Bg#vlGW0-48VjoWq58q#95s-dF zeQ9JBSFq45!*&zQJ>uEv=$_nz%bT){I}<1Fg8dix>EcxW?Dw|w?>aPp39^mSuTmM< zAqTi1D^|HZaBCu5R&8^K4AMbtg=vYvX}-Zkv$>VeF2l}l z<6Ej+3600E>!WTdeQ41#l&tMl5IKTgTgOt!`LOzZy=Wmvh;U^tGUCInA>ItB?ozY9 zRXf%$aOeD)<1X-M;5YNw{LJzC!2!b1)xnxZ&*FLlRB3McF>J%jDMc?XoKi}WU`Qqn zznF|X?Nz*G=9KwO%+J<)P54!n_CM9Wx(_FFRy)=6OHewWM5F5Gpa;I6k_0EgB62Te zS)A|R1&<>qCF;^fQR@hGaRS^*(DEPGp?Q19l`)cFgQEWcWNtRC$zo0S$~+BT5q5WI zwAr_mC19P5Vo%ipg zI}2@(^Tn?h=4(}G;xd}baJ?2q)scm*@7Lg)-}1!=a-AEx(TkC@RBI&_hyi}?l;ZF0 zLJoKE>`67_*=-&49^v$tZF$Uk61~CNJPJS}@F)K)eJqA{+Oyt}&+Hp6AAOM4gLN@2(@Y2TysMEr+ApgK+q`FfFgfFodSbNN zw`84VY3im_WsXC6TgRl7DTXDup1W?2-v}Y=erL)yk!0Rf@EVUUCzUVdxSz1>5^P(A z&DAkVd#%#7=M@$jOsvpGPz6$)1!d(X<;6T^o6Vu4c}Z`#;T_5hpM0!hz1CeQ)_Ews zIqy=W{z&ksr|W8D zfX9hT!9W)X`atP2=<6VA8owsq$W-vSCl5z8^`MIsXe*iVRd$sAxJbww#X;`Ae1i!; z{YLZ-2O0inWB6VgciY*!o!=&BihAdy@iWF*wDI@D2v4U@Z|BtLK!iKZ)D9!3zS$S` z8nuCvSqkqIQSGz~{yEy7 zm}eA`(VP?;yx{8!O%Bp$f>_BIyqvFb@h?GY2T4YA)e#8;lriD(uUYRo)9I@#4V3uO zr3==Mc)BudMSE~Y+lJ8>Lo!%uqxSxo;(W{fl-zdIkF zS}EVesO3CxMN?-`Zy64e=Z`jSW%Y6=<-Oomcre8XS0>*%z)n?fIX6bM%L$4u9QjK0 z6dz0lW=-7p@mjt2?vD$AT#$dBE^O@Ys|(O9wHFDIbTRVwZm*0Td*Ou>Sa$evgC>)& z4kbYpA=yRU8Y1De+{)FRkOH=}C8-R@TVt!KgZl?w3YzzSZ3*V>;$LF1{b$s908|+j zxG(88LRxf)r@ql%`(XK-P$Ee;#ljf(gG_Qa9g$|(=&e17d?LDbfXJrhLDP#T(M8gj zS{9CN@%Osc%X5_-2$xiP)8{U2KuTLYbYPND_j6fGpf@wnMMwLe71nf{AfLye@VLRZ zS8XJJMY09l7|aRde$ShFBbf{>;u2VR4Sr;O;|ezX9H;n8(!i*_pI2*3=z7{O+3ac5+A@nX(ctHWXA(unQ-7+5cQP;&}v520r|gp@YQNR8L) zLD&q%k_bZPgv@wlkZ@yXQkQr%6sxu)s!FhN(wX5^@6E)6jAO=C4-^W#gFQ9| zS!oK%AwHJso2hu$8DKSUQU%M{jZ=z)HDIAW@6RzL7JaPqmyqGbnweFn>qq^~wbYOj z3v*UNc6&EjiSfX;z9cdA_Yr1s4z$O!$VC6)dW9RGbD;=|KRyTlJ}S1Ikh(0KS?1fr z0{4CzHP)G##B7J`_V|6u;3r_od?V!CckBAIO~^b{u~6p?Mq3AVaGp(1I!d^=9O~S5 z$jD13)mzdnJV<3lz3MhRwmxe-DMyjB^dLE7$DKfJONF%I4sMy&ncOQCA7>40i!AAi zMjG_!i3Jhi1jqL?QXZ_)H_kE54%&5l4J-y5vlqka($B89HYZN`dUae!+@G;l?lg1q zbvzuR(O>DD-W-efv|9tFE}aqaC$`$6cAW|-wctW}QEFdWUUtnEhr|XvtTI5|-r!Jc zu2tNN*LcD|<^T273qBU3F5&dD>TydH($-7>L(&SqtKN2?2b>pvOsYU@wWc~+IA zY`P0K6VrGReR_hYmgQ$_taGw2ESA);@Y`%fH)()03A1b|8b)IwQAoJo51LM=@ve%Y zzrRn*J{vga?XIwn;R|SQy>qIke@RV3a<>uhTo3e8i!G5a*xERc_w>_MC~o8hH?g#G?b|?y9AVri zMz!Io{6W|=m*o3_Y4hbjFBeq-UdSC3+|PK4B1bvTTDKsA@Z!A`f^9}ee4OHPU&`1P zof+GK{|Z2SL^93I`WX#Ci`_9j2@Y~XDkh1Z3=3g_+?qYOL25(7OSPmg7iFp|y}#a< zG_~*sPcMb4zPeaoE6WUy&ZqKlSKkQZBC!VD-OXFvu^imJUTwf~+LJkKZa-)E%!;Y9 z&LUAmaQf2h-uumcCJPUE2D7QstTbj4Tne0#wqU*;Dn0opdf?yLo9*b5I`XDYF!%B+ z;8LHROWQ@$121b8TY6#iN9nH9Uwe9zlY5JnG`1LRsr-0sV{T_yzv#rb(9ppv^st=N z>F7McXWaJ~dX(y)=g^sF3ZaJclHJo`yW8L-N8!j6tg?)T!4B6vLo6x z@nX>e%aPh?zBk;xvbksU?dxvFkf@!N2Dy=v2;v*aSUkMzz;OGVG-2u=ym6wTeCg&; z@3Y{VS$eXhQIZt4Da<4E!!sW5hkeO~u=1K2h5LSZ^~cZ1(LAalE0_lY)x&O6Drh7- zm$)$^>w2?HEBE<@z#=#PlV2u`XLvKFE48;S)S|=n*pGkHDmC4ysxv5Gns#^i$8F(A z7t4b%&GI*j+D?W%!sw&HDYBmcZsB_)QkLOXw>;y_LrTf*1^%6vI}53Lj+!9)%ODN4 z;&Hv4CU7!0r3&PX<1(oBzUd7SiF0M9d>4%P)t4GVRfoBb75{ zEYT7NJ4dntJYd(TkIH5b2WSaE4pnv1i$nqAy>1niYTg1kPrLkFR2f-n`GnE^;+b=K zqUA;}NrQwo4^AzN+jt<(8{q>Le^x9{X~VEC=r9#@EaeJVB9BW7B>XAF`68(l@@r04 zgVm;GAoP~LT26nZ4~O2hpqQAklCcp!^1WX%l5IZvZqw&4zUzSjb}Kh}ZoAmDF?`mg z_qoORH0m$9QAl_1%n%*^B z9w0ooTI}2c^$OkEH|{QL$ej;Zy?I*7>f6t?i;slGA6RjR4;zo#pMO^-n2!*W8z&C@ zT7J$Pycn_Be2qT0r2fR~2^;^FJ_Q&B>PNb+qAR5|Z!b9W#MQo_k~yQ4UBYlbeJbZD zw}s0nD!leLOWW}&wJ5hh6KO^YR=I}b$7jk?P9BmTs!Ut7e`tT=sNNb^RMwWcd2qeL zx~BGFk9$zYx4`hKy^ZAF_z&=zg4Y!#qb7X8C~Gy96xM%_zk)jxs_JB(DcE*s#cr%& zdeyK%6n02Dv>7%Y8gZ}q{dX^0px%8MW_U99Aq*`8D};q6-0Nacev;-7nxPBVw9>uS z&Q19l<`y6R?OB_jnRhW4u8=d&S1Yv^8!sC4c7yirTUYnjv*WFx*+$tuhm!P3A4o@P z-C?kD+!6HqJl~5YAl(V*;NZ}TDzJLXII&mARqiY{6a-N@+LJPqm*_hQ!Kn*g<0pHX zEPPQmv)k<&#ytHNPI*#Aa)ZuI^SbvkgyNqq7QD$CGGI-6{*_hk=-&f(R;`w&AAMk` zIDhxV#3`hZ5Y8Xdnq{`P+&dL+LSetDa0t1Q!wqyr{rl+(g1av7HO{OF=t4m&IYWJQ zZ?7|M7K%d^C@5%nJluKhF5iC@>;oNGS>KSN$_GYI@ej~rZZ`${*!~WbSyP z9P#a7@F@%bMU#1tch1%@<1_Ru_wRSo@Ci$tNmIxB7b_Y;V=*ijbtvtd*iG6&M#tIW zyBFN$?;{kunWbEB?3jFw$rl21E*S|9!tooYBV0rp;(#VLf(<$#j7TQq<={Mb;0^(X zQbZj$iaRO%*ZOr;6n37-mlsm0@WA>OQKh&o1tyswG`}S-_xhu8Io~@6svE{wNv9?A zfTX|`s6I-GQ4Cb=%$Q3kfW*5su0AR71pDi=NJsD1lZ9?-4P0ur91CCM|Sz#=zy2fsepMTIA|)u6$}YhN1ADc_!R*d z%>>FJ7UwaVbZ2-#fN$Ti>IEdAfu0kDgaJ7EOTPnifTaMi{7;Wy$cG`b2vFIjJn_L_ zC_*~MG?rz1<@90);tT-gl9=`Rj(MYZydRLAOVz*5Em%|Ras z!)8VARwQU5SOH=|GK*W{*vlz@Rhpb(o6G^&N=yuy-u5lBPSjD!5ow1$Wq3*aE&9*~ zwATIq(FUN3w~_^wl!K*+bSOv`p@3v!sqgSt$XX2RCDQ4bzCPIASxF?BbvUs5c`k@f zH<2{hTD(kv6I~icA3+egH5I)Rx)3hBlmQ+t!bX25%r9UyNwB;LNw9xeZUEI*23qP8 z2xExO%1+KHlEGqW-_~Pv383%PMFVw!-L?=lc~H@ZWM^eyOg+7G5D;JDPzfDPK(JpG z`P&FgU}l%YIR*vgv4D6A0N6fyvl|ki)k2WOC<@|WPL_<)W*muXqy+fPXJdGAD&b$j zP5?!u|IOUvO-D_@vG59JU+#m@RyH(JBX}Cz20>TwZ~)9z|6o+ogo2Mtk~H!k2XUl6 zAZ0lAPIZLyCST#pRLIB>^Knx9j0?P^^Mf*laW1PR?&dl%7LnoKIxDa4#w3?yGxAch z{h&*Q=sXL`_sW0I93KQ0^jpJ59uZX9hrnE@nR`k~u4bRf~3BrjPUC${fgJ2kTuij-)FR z0j`hL{{@M}tV8@swc4TF_~^cFq##6t=yEy*hVj8`wH98q2!yQ!>o;K_Fr*-s!V@lbc;Oi-G0~iT7~^bGxr94_5R#1P zo>;kZ%tSu~#^{G4;%?pKk6^7^d33l&E#O%a3MBH8%twn3CDM*yj`Pu?0=7$_ieR_e z(@`dGClnBj1CRhU4Lc$otgt)1f{YG^e2%+mC)`*aXH`NkG|#(b#SzB;Dw*L&Hh@&k zWgDI7oTHAq4fJqgvV{au^+Eg4C=()u>8KVWov>IYWH2uO^cNzc>rxzL;Q350!OI!o zme?6uk%e{x$`c;gO<+c-!YH-}&h)gD<%J0EcRlHpzfuWpa6t zLo^ZuyN2~0sP&0E14)DRpbtgU&y!_1(?_T#M9^L}El`o2Z;?MGy`bhe$1XaMg8T80 zbFl7JY0)^~OQgqbuuaBZxr@YcKTH;_k-XDO*+W~(B+$|{m91|_cxpN-(pRNuD;PG- zm(&AItN=FjtXnK*NMs{Kw}qs|eNUzWBPMJfZ=VH`zx8w@zu z)Zmhc!e0RrHwQff3nr;m;%!<|l_ zY#N=$c>qCWaPT02w+|I~lX_=CGEN(46XN3ZLl0-Mb08Gcj%0RbdAh(mh@Ml{GCJp3 ze#y63k6^v?8DJ4f3xFT*P&qgNF1~n;UQUFSne>tiW^?+-0emEQwYZ54v*iUX_|_XX zUr3N}DU8@xXl4*roTR>&lrQX{uN14?1@J*%VJlDjgL*Ppo_G%pZF0xWPf^p*!AMaP zkeW(N20`gaT>u_u5!hQzpZ9GZd_*|7E_8w<{daiBW=5nn)1 zjk17Kf=(|we80*Z@bwC610I*6qSMh*)cJJ&g;NlshmW8_%hYPc=_|FV5Y#L{00}yI znKZ;DDm4nh2hJtI5x6(;En8AY6gV1y& z^d%99`8E&>SfuwC$R`K^=*axP)q5zvBB)+yhAo1HW{u&96zN?~>NxRF=V36KdCV+9 zC*(OWX747x``Wbz?bvwe8_5v%h}vv%Bb3ef%giDy3<$ z#pGb=JB4SqENgcg_kRH1b(VdwmGD>nowATX(qK2#Uz2IE@KJ=BcCxhif1pjj?T@92DC z0Nb51H=#leBZndXNdZo>oli12Om0NahoIC<5Nsr8|5jo2k6h4gutA(qUM(i3B&ixD z(+pv+I87SGiL2nthIbbK$YaBgru$RO=DdzJ3Nn?hdDLG9(*S1s@Cj!>1c+(!IR2B( zhzthHKTFK7oSZdTTqNgUWBXgtFClwHI%I^zgNaKVBBWf}JTl66H{;bXo+}A26jgIF zlNnD}m5)5lNnudq(a~T$7ofkJ`GyA|^x+Glo3(x}fA`{{D-enW{>2%?3{zr4i(RpO zugYyxVB#JUrS%dA3S!J(?Dl}Wa!f#I7WGwG10K1PKOm%l^AS(Y`8Iw!!||0S8)lut zP&qk!suKQ&Z#kd*)<=v5%xsS_-QjX^w!C)=uWq%tb8Wj!8ukAJ$e^bfld--R+e`@W z9=~caX&a~ivv|xm!~dVC`Fmm7kjdvwXdM=8l#u%LS4-y^2jq@)$1vj@a^Ee7X7N;? z3&NV$fiH7ovv;p6fr-KMyS7ch5CgOqD87~@DZZXuy2x~evfM2AI5mtbH)X!A%1!Gl zZnEBF>v8<@10MN>+%W-n;S1*H7d#S-nPCAyE5Rqjipmpx1A3hh-&i8CIYw%u0w{Av`PmJwsgbrzisZvn5J!?52uKuVKEqAyaJF zmHIzGB&1@E;q1`ob)w@FCbvPJEj@>W5tGr!9K9RV3O!6gNV)z%DNjOen1|y7`&iTOX&M{sBV-SMz+W zTHMNBbxzzG?PMS0m8k)`+G<88e$OvhQ!JEU)PaoTKD7ng47ABg*e|6sc2hjIz3eQXx@0+0N^H-#@ky|SLoe^dx`|5^k zkLtVpx>*+^q?=d#?%T~knCsT<6WPrlj7zipfvM_O-8d*I+o!UyfrirGQUA7S>XO6= z-w#I6Ogc39;z~@$SmjevgbU2b6JN)&EY2uHq~E(>id^EL!>K7nCn-~YEeY{MeS6a- zu6Ra+1dM7oTmxGZpG6jQ_k>YJ5_P|pQKz5g;`3ji4%Mcgl^$LTO@!WrJ{U{?+u=26=AZ| z%C8)k?$=G}CmLuEygJ=;S$Xg+L?Y(P;F2VvuN7xMc`bPp9+SWWg2j}fa$I0r_;oV7 z7DyD6;&Yq?d4tGB&?>~`ppUNk1c>)aNlbUr$iJp)$$gmRhTHddfwG2?QR6d3=nASZ zt%yXwZ$v9i+b#F-x)p4JjI{A7qhJhR>%4qwiJFe&N*&rNcpGe38&&yD9wmZ7A_nH`!UshoL6P6{_AYFT0p;g ziSuj(FX<1RZ-KPG+GU>0)dv3i$)6-nlNu&GfHxc)D0IamQ$2hoN8%bT+(Q6xWIt7L zc_zsZe9$^4{S@K1n^O|8p#`5fD4;x-Z4-i0OiO-02Z8F#q`A+06epvHD;ePyAy?!_ z6zZ-HB~&&hbAh*ta@G=>jNHzQSfU{bSbtvB5QY#QqizUF0W?ACtYV|W?g^c63QI@OQy&yMzqcx2)r-q}@gNg^-*obXL zzLf>ist3k%hU8xR`cv7=>*vl`LFRGJh!h5=H7>vn=SjEoX7=I_6Tul7?y1n%=WPbl zDxXbp-|d6v(aoC4t6Ga7bKSYz_#b0oxoa;w~9Of+3*$&BwTgpgl?)WkuX4r zsw+@b=!L<*3UfJss6{c*!iXyJ1S4d&9PoFLb60~Vw)1i=A2FiEHpI2cC6-Z=l!3UV zbSkg%(EEL$p3_Anu9+ygJp(P^=RQH-bFnb_Rz0cUfofLN-V6g@6s<&e9CmTsDG)vx zP6o*rxUhZpmj@x#VGM(i>V0rh*}=sSg{y8M%z1dD7V}~yd|Tm>RP*TFcaU5SuP6Q}iD)QH?Un>{!tfG<`Iqk6E5Q33`V{W|Q^4 z%HgOvkfpNXd>s4Z`n#=*?p39pC(p5r3j-l(u`9JM!!!QKP-VtZGG#`y!S=J1gjylR z4mq_uHOEurre^Z4D3#nubCx+t-1!)^P1Y=3Wue3>7k2_?s3J<$|59n-tiGH-QR^8q z#;Iv**7FX25Rq)=_~RGn$Fh4yP)nQ61A_LVBIyx%R=;PZE0zx{%;-Y{V44lB2JZNk zTi+JCWM?$i{E|t@#W|lC0?rcY86#e;o*(ipg6IwYwIT#50m(R$c!UhDG+FwnHttu?(#l;dgh~w}NLyRPU zTzrUn!=OsmnrmR2uaBdnSbbE^OF#TqUntZNrh$@i9_!NNjxu%+N(E00|By$In1DEut`&Nxk(zAB|9i|FdwzV8!(zD$LJO z2Ao8caEToLQAqYK)mHvanYh5AVqYCW_CIT|ikz=Ma=L~!L>06Jea^`Q31H;JYHlQd zrp%RB@Hezb_f*rLJ<+#hd$Fvsvy51|0qfL^OGr_f$42ZxZ95a0A!(qe)V}Rk9j*q# z2CJ~h`CdYbg#Fza1;+(#c>=duXx49Hg-5w#6h}E!U*h(c-Kv{;ccLc&#wuo7+Q2?2 zxx&F)B@?jGcn3KJ;hB>LVVSUI*p5G>rMmNLGake_>J!V73xP2aw~>x+gQDUNrnjrX z*jNMywYV?2`<0Bmy;%V>8hFuT8GeQ5E8ai;u@uGw7J#mtC4=s@7cO1PKWkN8y>A?z3> z`fJJ2o_3wKF;Edvy2H@o1TZW=YDn7X2VGJPC)z&^a146ECzfkBHDsJTSGjHX_y?lU zyhAsM>)rAjketc3i|18cjnvf@B3mH@l<$s6Lh{6Y^m3YG^xOd69GFd-aRa_E2fY;{ zeG8Hwd7o&borD?pBE=vHt4hKM={{U9myR}vJ+z5iC7lgl1d;w>WRkZnY$@7li9bUJ zC-Qzm1nEVB=kjWktE+{XFe^&qyau9-Sp96HO#eD0IDPIP9RIm-U19F~^EpC{J}FXLEi~=pmZT8| zh3W??87?`A&oogxjvKQOXj!m+1LX&=Zwz1@OpsvSMfi)xVDCbh$KY$Y(E61qj5@GXX5gLt!ctFNFcT+IP& zy}CI|C1(=}&5!4-%L1dhY5Xq)=oC%C3eW1c1U0NbUsROzk0hu1{Y?$GLuhr*l``oC z)#(p=h!y@QSyZ@h|NpD)e<)1QE|pv=#?~I(g-=VM-I%(xZ-fw>qfz4LZ*_39 zSQcuPiT@QcS%8iBM&c~|t4SSP%(E`~|5k(R`gdu5YAUh*NKZ6^QeOXie!PM~PHA^9 zq)Hot?jD?cEKQ72iKD}`FqoEpEpJRWbA8F!lwi58(PX&VU^h+AH*DpFS?*`jxAc3Q z>y61t>GGINhVpAN{VXeENh_PTw(s`y$-#kn_EJH41WdJT`4z_i zwm+;r>&=?;eUAWl(Ui4eV*$AT_)R^Z^|hd^-CVa^rGl5~2ip_{Q|IzO(($qJn^rnZ z@`I)s0(S;KxT(K<|GjX5cDx;XSjJOc+us#(Ns9~QiD(zXjD$6(-ND-)U40+dq} z=>u+Y7~Z>luWKjm>9p}|>!;DMiAv#t>7_DEH?l}yJ-#-m zSKvuqZ+0%0?Nez!*yz*L5!B6JJ#H6T(P^wi*lpk^IH;SR-RYh6V?{CETGLb)U=afu zEga}v?e4gj0&7ti|BT!pQFb#ft5P`n#jd69t6?ec#Za@nw(`dRWL!tkg8xi>M}ucb z)>@&K|D{wAZGEto^Z>#Ha?ky7+&f7u&{qGgzYW9eQLLS(i<{Btg6OXb9z#Kdhou(7 zn7EGO2lFBFoJm#04$Z0!#x2#^q=YDTZ;{woxnJ*K?gVhoLTI6SLQ}1#RLRXQUw)AcRc0=jn+*BvEkjENgj@zT&j~_i~ z$kG#Zi$DVJ%V)Bg@J%bg{u@P}b)S%d}?_>^%#O1$ky=4xUpTwF-ah>O5k-5D(fJdBQhUPP*)lSOewbj=+ zkSL0g?gU+3BXjN~!y?q#4mUL9;`D}1=IHF~e*JZmHFVI6HO;eqYue`)<~qXrWc;=e zWi`7{|6tOc?CiTL#+d28WhtA9T2oCn*sJD0uuP_P02?oH+_NAhE~I%o;?~7pUe!xJ zmOc+(C`0XzsuKtjar7FilKF$ z36`gv-_FuZU)^|C#B0PFxjm8Z%8}N$9yUwtjje!hjo~*&YgR-L484?%M`t&}pyS)L;AdpSbi;LMhzLJo_CjB)VRH%i_xCqz!L z0l}8}Vy4_w@~MWA?1-%)a|mmz;L1ezAQcL-a}p}bnm%?B`+L!tP8wXjq`Esw(w~ym zWPjdUDN^Q5SYJdgXo$n_;A!SevE+UalHWLUE?}QYL$_#kZmo&(jKaTd@y@g?yyXfS zN8v^_LX$);Juds z+gcwN8rxmh*6;0+ZGfR_6cr10(+HdpUB1C)|5hO-2#_DlH$1@+o;b1l@d-sG8hoNe z0ikmTRb@jaz;s_)6`cbi^1L4ai5tcP!%w#bd%u;w$CZ8XJaG-s`MO|}{5N6KjW@S> z{#ViOrC#_tZ*mBsT!6=W*>iI9ffwQrtkH6vFcRk~4c#L~!J2VygVu)mdGqg?ChnpF zMhwOOBuw1_{p9dex(sn&=w10XM6+ky8gBD&*?j2aslRk5q5;UnFVmvhucJlwAt3sX`3(T_L=B>DvqS&obr}6mAEF!m7WXQzrU( zk`LBalu_^j7}aLaG=F;i9`HDB&=f*J4q>VlW=e+8PCAB$yZHqFVXn{>4uqTYGOUfk zJAZt>hkwf-4aM2c>LbnIPKI0a#;2bTn~hN@rAO04g0D~oTgXlgt8uN8Cm^b<562B*Om;rJ;oRxdcQ;12W} z`*CR|#i-@^ss04arUg9KZ{b@R(fqERuuHzOJOum5y{^>b=5=FkE8nzW&XDM+SW-_z zlPz!tYJqsF(sNb0q+VjzYdcr}_l?}X;03@Kw>`c5y)9q{2fmfZl4@2dENc*;R-L%} z_0lmWcXKQ^!?Q)!MIoS)#oF*vWg?Znq|E{i;kQU_`{J7FZgwG{JE*Bj(&Z)46|BGe z<(6cW2uY0KTkR&v93*}5%L*shF!P)=Cp;p9RLycy=IhLlvHEBbG$Zte1+tg@lb~yt zk=I=E3fs4I`BjLRGn;VYR@EAse{N(tue}yuy`;aqerP1=cUABn{u5I36vJ|$zQo>e zOFG5B81gFuaQLN@k!KyVylr)FdAfJt2Q)T}dnACQwk;dd486$GeVK!h2cbSEpFrHVazA~S8frl z-16U4@tvTFDGuZ-Wwy4ch-KMvhco-yKD?c5tc&_sGz4^5cJ#b?K$&X%*ZPCy`^Qn`~A-{#6`9GLE7@o~dpUJM1F@DCdRI=;YZ=UH7C1z~z%)Z;Ek2Sy( zopdp(`$+<-nP?U`w!GpB`E(BJ0GP?cZHLo={V!+lgc-{cx50}rCSmgB%F-Lk~9Ok)G?q<(zhsNfVa3ozb&&lZB3_9|2OK#>pXG}Bn)l>23Fw#M#zRegKUW?kru`9I zDlk)40GcvxN)rmIW52e(`Ms%);VR3Vf=IN9yMJwJ9Iz^ZMZWW$E?fe+H37M^O6cZy z*7+{i(O_$aaSog1At|=nM z@oX?ZVs~`UVj0OomwG8MT%YybiT|_Q^Cwp4CF{8>Tj=t#jmo5*hdmw5)jGya_I28v zw6HBhK3=**DpyTxX9bouilB zuO=48mX?8MUdmH{=nGr6R5QO0{RapyU88}>qFHQ_;mkM2TgL@S?*44^Q2Rjp)mhtT z^SxOuh1ZEwlf1LqJ}vf;k4&jImsUKXZ)asW109jqPi*I|0`u;Xf@wY%^$JTp*#qch z6qyYFWkKVu!zwV&GKGZll-l5%|Wf0i^DaK$QFdICN)`epQ7=Jrz1^&b2Uh%q!aJ_i62Em9}uyHqa= zVb0_&=jF%#=nN04?tk)#wticVi(lA)yaXe{GJ z9>DVE3O&6UD-PLc#tmC!YqSUVbav|>c_Fa+P?3Dl!Th&^)%^+T1LYn7zl#%QegUTf zDypxji%=QHCOH2^7paE%W2&8m6IbE7RCbn(V$wTRdwJ@U+Z6axKgMEP?{edSj5CLs9Y?0*Iq5yhM@N`C=4kp^b+)jNB!@hz& zap6sBEs7kyglLeg5=%vmV@xU>sEp14%TrS|kL8cpBZ9RwrQmF&=uf~<)@nKJAC+n<|5ZS~bdmKU?4w>2O?2$4vvd+vpGb>zHD0@UczxVI^@BMf8 z9`}B|pO4q$fu;}g!9lkK$Z}y_-T;O*#yQn;3=ltAdl(Q1TrJYTZa*w!P+|LdSuGz<>phQAkC?v!=$c8{qO+~4NFnBSazJb3l$m{H zvI&IJnR~UC96xo#coH(XH=pk7&x4bWaK8Ia_i%Gtw`*rUb8eKz5KOjc)Wk!GFo!}` z^hj)gl+zf3IXP3*d)wII4l|o31(IM%uwl!3^f09o>TEt$F=)RD56?*+?u#2&BarexlVP3@!L=l0f=9U;qYhe;Uv zo)km3cM$M6+T+$h5^XcaS2D%c`YG$+?1_H@w{D&V;6_8r6cXVG&51F@bC7zHZqg#s z=HwSF$Y%{3p#~BFZ{$-M0e2v|n_Uv#dFeRlAhAJsF~n($gNz)d+r@e8C5u~FM5*+} zg%eW3vCcYUtD4|Ikk?l((IU_#lBW0o!90txqm7}=Fel_pt^>^{6&6Y~Bl}B3aG>(i zwklUDH(i@JLad0RyuHK1a{%&$jAa{72JJy&L&`v#kWRJcKM2TK@h@j00nM79tn*&B zG{H!xsal)bsKptD7Zw$*Z}m~We^b90^;3O-b`YI6&PcIykS2srK#)_H-Uo|o%_d)wXEcjsr?8L zWuWl@kWWK%PGxDYMW~Pp07{AC)NPfGaI|9G2!}Ei87YuP2!A5xw1g4Y%?5l-A2uaQ z7m*-1qW-pk6~J2nc;4tFUPQkhkm=-8zb?u~h9f$;ixqMOAG>cq?gwODb{$RwMRSG$ zYZ<$I1}=u;$N4Xu@T4Rd50()bYHC*XJ)pHW*%xRC-qgVY87+2i{XQqM29{lULnmpO z&e8-z@;WyOUO325S0(Tg$uOz`RV-fwK*1b2T7myS_p+CJ_KVgp+qXb_BLFpZ8y0G9 z0dfKklXGZFjz1m*>n!G6f~jHPeF7l7;CsNJrC0{sGb!!Un83mJphIjtr0K=Z+lKtK$RJzn!aEjFYhgg;Z& zoIE#_k;q-55I8Q0n7;u)lX>0g&=nt?qJR_mHsaPEnN=5CpfkVTXhuPvHWahtAeTN{Lf0$3LO z0(tz?Xjfof6O>QU#ZEwNYXZkP&=yVc(~jMc5)AoW-`O@!nv|(}n3t958v=v>H6*16 zOL)<+T+#4(tI%?$yz$=C?FSiqp)eqWT7V!mitLhbd_NlTYc0k-@`?NztlvNIO7D1~`SL`R?k$!^>}Q z8$UTPA%iFMWnodekvhpUXu8&}lBj;ZbO~bk7yvw-7Rf;KX_v|reKF)c*>(-wr?|6! zFnt>GdcIw1BuW+BAYh3hzbk7cuq7IVq}T*niu?H#XQXIK@8xubgPG)4wB9PcC;6T* z6=hXbfPZ~rv`t73SK&&f5@_aSXZ(Xu<$x)s#c`%s(o!TB*YoqHu0!|t0c^op*S2!UwaM4x8)XEgZrQMh0t5ea58@7<`iCJ~A2!OY z_`QtAH0!$F-nO>CGHyG+C_Gm?cb%nhdrIx~Q89t(Fui9< z$TvNp%q}o5g<)4{Y{b!@*Xp@WxfDtX)|vWIX07eJJMp%?|3*7=FSWII(__rqbB2W9 ze!b`WqY3jH~ir zM_TyEvg~6sslCvyWnOSh_oUsD((1U`F51zvRuCwJ+1@vP@2onH(gXd28LobG6@Mw* zUF412^g6)Ho^fVlUde~6WK0-q0`45r2*qtFE*vRu^T1_0?4EHGU*ZYmW#rShiH+J! zY9~(yp=Xu(UWytfZN?jT><0Q_!OBAzo1Wmhc?r!U?_50)O@uQ%n+i2wn4|(?RDJ$P z2JBo)XQ9QyB7}yu#tMV-wd+^~WXtY%@hg@WG#}#?4Td8G$YpirDegi`7HxPpqPKK@U|s+?aH0^b_yKt4J=5FM2R=l;cHSx;*JU4Fpy2weVYg4kCN&M5tu>wZ@ zceM^Heh2gk{n`HyM5?4z+dH7}`GO!wKgU7y$g;Yzfj*)8ADu1pT=okFEtXc zpHh8u47iki=04G&8>K9g)x>%7N6R2}gO|aI?ouk6mG(1R)6>XM8Oa|1bgOe5&b3Jm z#@^GsJAac6@Wp{=!faAF{{uzQICFCe$h#7c&r1))27*t2hW{!pT{p&Gs-9w{6i|{=h{<>be|~tgj@v z6e4cM6UihUoZJW}l&(aZ7Zp{q$Nnl&ZuCV0hviJvvxsb?HI+s%vbiTi@9OXFV z`Ykk+#;-5X|N9qvo+;L_E52MYqrCdTJh$29SytglPn`Y#eT-Z=v%LjPZ&@tjn9Z7GJ5avWEFM<>DWia9AmFQXchVejA0y z&+F00Ik)=fwPI`zJyHsF(m79Nz6TrZN9}-;1v&j)F8-MBb78Ku#B^TJ+JsACe%318 zIVbc=_WD)}`^)RYfiR3)|C#~KNYij@>;`AU3t@>CZMbD$&)jUMNWpmr9-YQgcwDBj z8CwN)&wSZGgH~222!&m|912Yda~u@mArBE+sq}c8D>~U>U9U`hcB;%8{LHOqiw}>tV!m~*3}_iDf3N6(oqw%5kJXX0 zrGveMCPvOOeb}GveDD9+*zAMU_dZoSY*BOmx2FBsRr^1fjpu5|0jzGp*(bms8=EfS zIG%R;LH!)*Jv7+Ptg8OfT@3%g&5+j!4Ps&$kT15%*&>;&dmwhRY<@%D|4iGI!YHpd zQ?m6!e5kJZq{aZ4WE~j(2U2f`-P}T^!`qxW3{HQi90s_`#c-Zb{0EwMB)gQ;;6A~7 z&Rh5RKd>HcZF%p&6%{BMUvEag`_>NPg+cV+d=M&ft4&ns-+UqAe1>b8VhHf`v_BB0 zb;iAuxS-ll_&eFF#M6-Oe)6vC4`%PdYyJ*4wF~z@=8+dM4qbSSQ@7j1^(%p&w6=dc z{|OGQix%5p4!<(^HzCJs$WhPI)F&zpdaf1TU*0)u+~hBSRDlD6O1I}5S}m-5KgAG} z2p!Jnk^63QlvBa-oa;Lu%_j$sQvJ;%|C+XkPZj5EhwmFi276cfiXX%!bA{u1C{N?LhH zP(_BvozrY`4@m?kX(>k;(jsq=L4G9rPT+N#UItarf(ESwc&*@_#S1&S?OIFhrf*ES zr37w4o@)2OjU>W&7^bE-)mynyhRurQPb%53Q;UQPsSEEi!S7<4j@h;CC&g%K7a9H#;$A`m@p8{=WB!1lD z9<|8{--TP1#H}{7n;fL?y25PAJEF9hC8zd<@~Bkp#TVr3-ovy1PRZRFtNXDFUT4z_ ziY|J=_;lH703CqJTel)vZ7m!@-L9d&;MuQbW7JT$o9dbI7Fz*3u+_M%#6s_7ViY!) z=B9cuhnp>1H(S6)BRtteCcbH&d-1WKv4x*n3h3VweVw2S*b*F4YH#n64cVTNr_e43 z3QrE_2B06kVw#2|wuyB;OlI5Mc*ekqfE*mpQ4_D<0HF*X5#Bi4e8Fkxx(O92k9!AxBTNCmUW%TxY z%&-~ePp70v`bQL@V$~MQ;>ntAVp}akok3ceVguI`!}Li$+|!pa3OBnWs-b2=7HL9G zUCL6%s<1K><6eXl2iZ_Lhij|0rmiJw&6%D)rpCgCS#O-N=F5H`e^2(hm?3Vh7C{o~ z!W`>r?_AkP5Ov<5OAkCUBNeceR75qoj8l5Xmlt*HnngYWOM>1e6Us$lQN9YM4bPLV zy0a-KJIgU?RvLy(yoM(9f|8ac^C{)*tf4$aG8_mA`y9>0Iersb`7JJhCtUAFjs~Se zV2=}&?c)^dok}1VP%O;<;z^TGfbO`S{qcV$H!(jAwcq8# z@Ap_PC>)p6K$O)aw-f6k3 z`;tLN1T6R4Y|%op=^s~&kv8H|XdqI>BhYMOsN5|st*G;jVjB(EBx z8*n-TKof@TS5f#AgW48_~IH62S zK~Ow1*biP4P>}Nc-^3m!3gcV$Xdn=|ADC@|Cg#HNiZA2k;-*}=!O3{VwrCdPNFy6E z;b&M_SC%i08NVwv$27NRkj;dRh{wDJe4R3X=dqB9n1{S8Rch&C5tA0zGHz+kkbHzU z<}1SU^}-RYODns#0n~nRsSGrCz2n`SpwzZ+|U3+GUEjn|fnqDYl4# z=k2jAwKbS(%zO1<)Zc%%N^!a)Q8>Msz=m~_TdY`U{Au>GZdDA14ybeA#z-&=%F*q8 z>mR4`I9*F!KnrD3frqmvubTUfGksNu;s-^Lrk(DEUq;BxeiZ)b`RtcSX3pr!(E&ou zGA;X?-O_ljFCrn3sbIIQPu`pXt6ngms)1X~`1#sw$3Jn$I+K9zDBY&MsDRc`d+j0VhlJUs5e=}okE=w^-jZ?yj6idkn zN!L!LQ$5a3#eywsN4u+Fqn}LMBc8fdKTIlXmr9q5=3?sQF4kVheUy=m@Z;fFoN=DT z`TjgGoA;df?Sbe}(-ZQlfzLNIlH9r7JXiaMW(+Zx@Vx1JxRDI&lLZ=jJ#6;$3uoK@ zvn1G9gT|fGmpd(EN~!iDRhFJTlJ8Gr9bAWRg9$!`0a0Os)%?-NKnZU~g~BN-%lj}I zLVWmDk0|NVU^+GSy}xd3a3zQ0f&pck)%h31^=qeM@338ZSY)~)P52Z4oO&I8cqLx$ zkrQz!@~PG;E}i0~kW~r#L6GW3p}L6Lw5w>B)+S)sv=FL$%1wAeq*yIq`J(?9fOIFmMY*zag!SokR!0M& z$tNj)r&scmqx{UJ>u^=c7xd7K`gc^cV&$)>kRm&~!;0?F@1G{QZ9*zd^Db^5noi`2 zTMYX#e>+IE#<@Hk{z~Crn}45hypVDA`F8kmMeORHFz<%sRYh80E41yynSzkK|F+>L zKfprlmfRDl*T4KGlrl+yqcCY`kIUk_qvx*H>7#^OhfkVc#qL;zud)i0ubIEC^cS^KSF zC)l{wGb=e$i}_RN9)H7r`?%7T=*woC_RW1%{J6HZ#{u%tySw~N`F<{L^-rAfwj8W! z%6-|{$oFpTovDVwhOaE@)yoBLV*7z0A*2W7NhN98E#V*|=64c0V#&^z;>%H15vk*H zrtATae{fm%gjD^jnC?m-BW>2%5NSfOf2>8uUvc^1a_@bTcFClX?qd8He>9o-J6b8d z$2-m6BBn6dX!f}Ln$2m4JwlDa)R)NPR1>pm@UBg{?A(_|9GUUzEnVt?m7P@lYULKA zf%u&WkuU908l~szi2A(Osa-~s>mGgU>IO9#c13KdBj`4g?DiXWwC%09*il%6KUO%S9s!-A&{T{E}l`5O5> z8tjL~+Kcrs`&sWd^u1&Hc4vp}zQdMp=F3c5OWjw^@t*#_TyqaZVkO!B$+1C+huv`w zHBWcSi?{YQc$J)a_}+Wf6}$OZc*Go6uIH{6-fE44*21RRlxz<`lfsYyo1Y;01Y$m;amZn>~?t{r8IPj7@4kG!>G)K$%3SjgS~_ewn%GJ}=6=4@~1=4{LrlhL$b( z?^1*?7y0LD#swIP_LPqXnWN96wUaHH{jGgBAHW|4w7knv_9>7tW*!Qt>F;zxxHxxm zIiNDv*nG;{usM}2`?i&X0rZxXZz3scy_dT?<+99pY; zr|g$ks+unQ;2}RE^ji#16f3qWhb4w+zB+rd)j{kKDsz{Ct*Vy9D>PpgIA2N$eMmY_ zemc6chj-zRl{}yId{R|d=C&Ka4J;4!I&wv!(v?3O;6s$2J-JID9?obu2zu93 z{d?Zr(vm`{V7H?K&QV&~&IOHXxWjF&dzS_hdM&}pQ=N>e9U%j3+8eVuIcnD~Qq;2z3*WPogJG^8AxG3F}%!Qc5cr09{Y18GnlE2Kf{M=|V^A|>TNZD@T z=%L!o&{sI3@nt_pxrGYEwju5*%?IEuxPF0i^dRD@-PQP8!Ygk~+~<9`ey8n!AV(pt zY~yFTR5Gd-yR-qNQM_I*SRLVcJ9)}!1A3P-!LoPi-qedmvOh*>>p#io->-29 z`(D)j2|qOPUii|xFR5{R{tp?uEQbj}LK zzD;)$Q#X}+f$*TahwW3FQN z<5~_H-#x&PFef?sfmWjeSTfHItc7#q{wcSd#~jQWVEDdHJo+jy@M!1njM`Ped5i^bc24L?uZ> z>GKNMRCr=`%vB#2!)tm}#UDE>Q|pn}6Uv_RHRuK7ZTb9~z_6ImTP>siq#opH;GGAA zowD7V`u~t2Oth`ULQ@IzSGMOtKFrsALY!gkCJQT@J%ibQCQS|M@ZPi5pEtvWO)j+e zxlXkutq#Ct^T8_n_lHS1aX0^FE++JLusJQNmZ^1OJ-a&s@=kpwSg5{R4>O$M9l5>_ z9ZKGtwMrF}WuI}`h}i@PXtIj!zj=5X2VHL7c>7MCQjqzl>uv(`c}#hq%B@qL><~Tw zuzr!7%HhEtuS*|4-pzRMA82`?^2g`WUZK30j{8%RY(m!c&zIHLdn0$O;Xo%U2&wcw z;qr5w!GgPv#1iN935~u_Lp;gwkXr4A>&n;p;kC0jCmu9UfnFT)U*m!WXE7 zuX?#KP! zJMMU`z1++zsxScJq$zwD_#uzBP4`j@aKN9=^Mz+AN)L8^NPhM6KahW(f$DRM(BV+N znFlrY2Wf4Givjwkwu?XDR$@B++t$b{J{u*Lt=qj7`SS(cK;+9qBL05Wh4SIZ!GECO z8Hlsk0aJ=q%tp*^`~E`LGS7K<#e!>E;m)O;7y})P;Q3%pCD8y~Pe*h0a{t|=TlH#V zON+sKQ7~JIY3+Bvf6T-?O>Q@k`#NJ2N6$s}q??1a_uou-+I;{v#fDTn4?7^MUWYa2 zW;uf2)PJv9G5KH*l0z#!kHnmgMJ8VS2f9_yqRrOv4Q<DUvxIP2T>7Y(;O>iYc;RH+=p*@)x^+t$TDXs?;iCY~5TV2Qo-V6<9toMzQ7h7}&$3{frXO@} zFp=3M{SrE{{&@(W@8CW6E_2Q_*t4trZk0rrai)93MYOk(o9s2xv3z1NvNamH!uZR~ zPl=x(nJZG%OwrL6X|0MVrps*8>O^)`1wT0`!4(D1B+P>fn*l;?U(uqqo=s^Fn-T5oR z*Z(YEjz&fzM?i){K!GHav`1UfIb=j3?xc93zk#fIc@eppUy545I1{1UDmS%00-Qv@ zgpDM5JWxGb%ZcL@$fu0d7F2C&=LcT6h~?C;rO*oW2|y!(s!!PW?LYdbfQQDA)E5th zt^pP)hDAeC$3_@xTiXC9;zDxsxTuuFsb2w^V4)$wKa-5{Bcn{-c}&lMO)2;)sMlWZ zpRcaEkq&5Cpb$fn_xkfzX34VKTEV`hUh4C4z7nYUIPX1;PI29&a{{%|ZwfL9u?z>E z$?DvQbHp)|TsF`9a*s7w_EuR0TFTwN4AWoP(u|Ys)g$jU^xPPIRBb-eR z1~$^kszKb#GPspfJlngqlw7zr3|<<;Y0vqI7_Y6f=lc-Y4I_1riA@r6fbkrx2;V@*OE z86L#aPg?v-W-Tku2Pk6^$oYc&N_~HN>*SPDCglshR3{tBV4emTe*+l@TF%pn7vo{p=R9}O9%Z1y2+l7`q;*!C7~?*M z+!~PfIWB1wlSi)P!u99D?S_45lC_*p2uOn?5IB*!sZ?%|pBAxjAv`;Q0~b39G6elW zkdUU>73`?IAx1%LFe)&8eMJEhK;`saML7z5jI$1%BG=%ix(VG#h8FYwbqJ5`R7S{6 zECwPsJpldKWOPwdSCOwlgD?OeCj$OwQ4eJsaCiTT?qYuL8q;+1jk?HRzZV>O2t z27a8AQjUDUP1+Y<1hoK(H(`$#?K0uHa>#5SNGv^FT8bwez(IJ&Z+PwDY=clnSPdC0 z>}?nbr9D>+#%c&tfcR8o_YBy4CuK%qp;kF%w4Hz=D-(28HUNg)P}K(!mFm%Gnc~f| z{3KML06R5j$}8|Mfr~KKn-EYCkl>riTEI?`YLK$uRF2}4-$<0UBcx!v(acEz8HAy0 zfEp7b#^12|sZg-{7O^{o-xc3h1<0(ai~&4(#DQ+B0u=?z0v^OQnrIk!pgWGjlhNn7 z$YBMR4hbYAE7X-922gUO_xgBWI zS%4hxp-~2B#bXU1Dlu{0`qvz=o1J(84mbhLHd$)ndA#NPtWl2OJ~o2})&D;iDWadU ze34H^PVJj75{7s_9EYT~MKj}WMFgxRgW1Z!nIPW@Jt_fqLLxIXpJEPTtcn+=O3F0A zf%rC#abvIQ14$6Tc?6cQ%ZJz?H?hDy)%}`L4-}3`Bz1;|V~&dq?yZ*RPhvJ%wpBq4D$#zW zHmruKYl+@tI1rmbp#Jq#%eE?nF2(3C@@4jcN}o~+I}xKgBw~p?mMJ#Y1~O#SRx!X4 z7FpHX3MjQ<{tEG4$j6Z>%HW{ekH3-N{v;v%SDiS4D|Oc~^RW%aS6jgk*QZQHwIvPU z7q0>!yV#Osewlp07{vfY6#Ff#a^wtIZ(#*G$uJOy><|GON}!OZ;1vR+T0!Z)4??Lp z$plX|b5OAGV?2rF`2{NFVA2e@0fgoKEYpD<¬F!o~W0tHn`XT;@ng(*6%K=^Wlz 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 =LC)cS~-mUl=~iWr+6b$@Rx{I<3wk8W)Y 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

O#54*Puy2(DD!SW;LqenNPCUHd?)8T8oy0wqZ* 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¬F!o~W0tHn`XT;@ng(*6%K=^Wlz z+XSR`&11*Tf3(>my&YQXkWKp!7rrO8Gs@rndX<>#&UK3|iuyS^h3yB~KA~p!YX=v; zr@6kMw{HLEnmDDPu_hn1Ia%+zU1bwjzQCAz`4w^XE61Frl`Hh5IO*^9rNx!%{&mcL z+Vvo(tjBBb)1cQ#@myTpo;CHk*@)XU>l>kHpT#gv*Nv>|uwEtZ=EkP!KgBI@DdwO% z%D`r>?LPPv7K`4&xJO&v=Pui3UG`5jkI zPdV0&o}AQErJ{4WZ-tr(gpM}{R37^dWy-O;fBpmI&yIyrOu2`;ZiU^kSGZe#qyMV) z>viOF4qCooc(J_~#Vh&+)RQkZ@-dQ)UN!zB0k4}BwcS*DiJ3nBmwh?)+5ym#DA3** z(|ZZ~w(xOJ7ruW2se308Co8%rjR4giNy=1s#Y?#!g{6 zfy;9Dsu-n%?T(m(mXPXnuA%P}+ezV>Hsps(f*Pm!lnm>Q$SAj5EejTXZ@t?fO|#06 z^ah6qmIGZg$Jafh{{xU_^aloWPXh?J#>r3CHANZ`_esMGhq#@|0?mhi)N^Fd2Clb&LF)JrbvMsT1IeSY zzSGgxS8qJ;G38iCrK_<|Lv(>9Kdx#f)1m79@$%Q9_Pr~d?H(ubOPlM88+QKHM@FhU zkFHI3##+DG$ns&hdPJBw5!tx&wNEWF@0s}7sjd#sKd`I!TV$I}yj^{YAnwn@60oR3OnEOAL`b9XUm|V z#XjyZmeVG`f7BnS-(;tF(Cd0HIWh_JmwC+q~n#%5zO=ZAKB&MWGnI2bZ zOlicg`{{S~rp%|CmZ|rrr~3EqFr;z-QmLDfrzvrFpT&!*{8Owfnov@9Voj-LI%#QQ z2Zc8LsO?Fh{G8~sgq+_{@fv)~Nw~>C(M1Z1x#@-CJ4u zxV)+|;f{Zhen-$l#I{Y6xr`lVMF~WMpu3^}CDH!d4{k+NxE0r>no!r;4+*%n7}NHN zg!dD=8i}1f<>yf~$D6k`p*30!kGDU!2Z-$M3g6$4T0?vv>2V*kpKsVbdU_jp?SQke zF=Fuenb}TlpA4C5^u5qR99UyH1!sbpil6Eh4X^769irwlIH$&GRR-{Ire-QJI*a`u z5usAES04B0e|eMrv^%NQI*(r)J6Ab|ht>r|Yuykat2>m2aT7f@O_Rx2utGx$YzHwq zv%jNrLf+n2czKX{D*GtNOuJM5i(Na&Eal!x{wASlSnzm9MaM$FnX;<5oZ8?)^G&Wm zP%Y;Z`am;n8k!3tH|BHcd8F3#ebG7nPlKbTfd@LT8P&_&t=BkQMfvaRjLI4J|Di-- zK7MRwtIND2)|-F;m3&ORa0vrrr|s{0{SYmusEPyt*%7WY=U8y?^bs{C)GDQ#kr=L8 zphN3L(kEcvtUilLw-fe$yv+Q^&_Q=YC(#>&tI}!JZhrMEx+XYFJlo8-_Q+X0w@VM? z6-xGgRia4T`-t_o-h`L_JTaKO`#E>7mZs#~9@RHy3=IYSlSTXAJZ8#>QdHrVxqzQV zU)ah$oGcAqhMsu?K#e`Gl=gGFKaaRYB{T|UemPfNWf|;s5DRO?2R^?0j+ZMfA>(H< zA(4~DZ=e6MG|Aq^3;JI)K_W2{9Lha%$nQ_M$y%zpJ|u(IvN;-W9AO?%l<9KD$o>-o zn;r$USL(ZAX?cDEt@HqAFSi`uCDs+GC!5F=(sDD{Z*=%W*Z3s%^k1gxg=7_FWAagO#D)rG>L0xGUB1 zANII1hVU~K;ccp*nIaXXN2>^Yb|efM%JS^X;M#MzFT-#d(=j?s3C{ai7MHfnwqs}K zRj`JNpbIQCi0`-^tlGT4T=Xx&-_PQk|KMdyZJp9I4$y?NA6#`Z4%Eh7^9Cz)?9VjM zS}4}NC)hO$p4QyfGr->=)J!O7%k~AD`H~%r3^u$5^hF_23{OdVl!T6ECi|CRb%~#r zb(7|1HMsf=nBMj|-cO&26#w1yi6qnl-8si++(_7Dsb#D`Kgm}>oH4j5rH;=BzuJ!~T1aj!H_?NM=~Hy65`MGc51v)lX0<;Ihl*{X~% z!Jeb4A=y|@i{EZ>4h^T2P>zZl)e6In3wYQ2MP=-3^`w|*5uVP~;E_l|Z9`>bqKoXk zL{{o=7kAxke9C$i+<_U5PWUEHf1d$rhn&#)@FqYn>ZdWwhl=IJtHJ{Mk2`8A-%X7v zvm;-*7(Dn%xOhZWtUVsfANV5H1CaqLT9;UC2bn*4((qI?*?>CGwBbLHX(o^ZZEF*i zgkD5XnsLOk2O3LJAE+?RKWHMLG5(c^Hr6tx$YcvpO_qsmA&67Z?YE2~OyScrmNgtV zYq4+$j7eu3@m0uOQP66|x8m-n);M|!y>&F~+G-6xlcxP$bIp0Kn(~p6cSp5QWUqQ= zglI|C+fy0Y^7k}1UfbQ9O)iB@kS&~NTP2;}6$|^$5WL_ov6qBs zZ5<~M3Rm#S?~ALCYjuX)_Rpuh;GRHd8!rvAp)d|o`-?ym*%71GvSQNeKfsRcf3v58 z$x`$$e>X${`6Lq>QAmE8Z%c7f@*n7v^Y<|qDPr~W-XxImLIVX|V8GZ5U?N-%PqNFV zdZC&Z*vd-GO^GY(=gVMP(jm=?FJf|z84fpM-;?DKXlA+HfArHB!NfVO@K00D!qF8;5nSs`!7F#^X3+2|=9e)jypz~o@ClO@1&x%{T20g7IkNe7 z3KEPco7lS_W07|^8m0b%S;CU)r8rfZq?x=HB`#jt+W-!10IMHto{3g)S1=A8yIls_ zh|=^O_9@pfQ7~i{(xC_0RdY9y|24Vvu20hII+D#VgxU3p&t#A=**=p0B*>>$Y)DRv zq151ZE1Az>_WlP$M7w9;4KaAbeR*Vn%W%|=u{ODDXBmR`F5&fJ zuvdU%6XIh<*9}PS`om~m)s7S77Xx6si}jPa)uT8QuU%nU!QX&vUCJm4^Ypf;6c$G0 zhn90bSiw3q)5qGFtJC_z!J7p!%d^r!whZNpsT@#r~QWYrHTZLDeJOoN%Wy zlfMb=t)4-q)m1Vh3K6|92}~VA8=NL}QqiGHGU9e4#nizH*uaxtu~eZ}6FB|j^Ho+_ zhWUEej>?lL5_X5oLwY%r0n%*SD$zJvEeYz;qbIdIOpLmbQI((Quk4r@?*R*WH9j`f z)KsB$x-(?G2{3dU{fv@-x2>zfvowcEwRXb8_kZ{n!jtzj(NBYuk~&Mu?&^mKg0_zKcGtpwIdeY0-WQ@Mz724UX4;!$+ct9~Dy4lD5c=BxxL z5e#dV+G&iRp<|K=g#msvM2xITlR~SPU}^TMCWXe=fTeA-ralu^S)Fy(NUy)f*4zh3 z#8xD?$z9@$%*47Pn=bvcR}^l}GfjTg{xhX6g_zAfJ995BRjc?_YMs+5qwspFFF_v+ z9tFfDev)-iRzewP96@bSx*>;F2Dh<8X+l88c|lx>XoD+g3TmFPzgC6 z5QNC|h>_>+dhBg4UjO^KO)BA)>XuZ;q2r`?<>kUwn*>jd(t7c z+(+F5Hd-2~_1Cv8%x1|S*-3!5O~JBj6%>n|#;JZNWFdtDmCD_vac@1g@RiALS#06@ zM@G?f77`>;Iq-&G>Jr08;IdS8u3W&xO(k(FxunRaS^lr-*FD!xu{a@#Y&$~oH!xb@ z<8QZ;R<8;&lFUpI`Y(-71FD$f2aZejVDsspIlfPE(YLaHA#NMjz7qx6ueC4^K$sR$ zy5G55<)da-fR1UHTX$);Iays&lS9HXW2+=5p2;_mbw{cyKnPIxIxQfS&hY^il`UP8 zJQ{MfH0LIlfvN*6>U;h$BD3B}twJ$YU33}8pDF^>HM?C$ z-k%=AdmHQ}V+Z<|M?`FteEr5)#rCS6PDRhtc>h>Pw{eshIAPgTmbREoOn&u1Q{TX% ziN0%eaaK~Y2PDl}M_coPBoGsv|5`h|kBY=-&@F}}9eP?-7OYMg`XbJ>c5m1@T4_(S zBsi+1iA_~Srlg+KjR&MmW#3qCpA&~N&f4J%79!D7h}xaCz5nsiE6}~%2SrP0xEcA! z+u#hEr%Si7P%}*1EHdOx5R3J9tj`k&W zsmM|vn9%I5#ug^=sg-)xp7Y+OX4rQO-~GQApX9MBfJIt}>?8F)j8kkldgY(YYcd;XHgU)%+no^v~lRvrX>}&o-)_NuJg^J8aG`8ZE=Aq$BFE`>)km7&D(Z_|PPs zX$Z#f;5@;2X#vlPsl5I44%xSWhU(GCYO!yIO}`Lc-f#F2>zdMZP|yF<2mj1~dG7Zx zRoGKa;V5h@P1g&Ickd&AOV(}!i1TN!v2e4==YWAlgBud`QtN)gM`hcX!%*o*rIpTS zJpX|>YA1)AjyyEAmabDTo?S9o0q!Q&>0}DCQDR=j>@W9jG0T1V%oDNr?;FI}8gPE) z=|DxEU$tGUj>u4DoM~%7Fz(-akZ}KPWqxJ1b$GB#9$8FdWBU1-@Usu(Qc+t@|@I){svemd2CBUm~YiV1B zydCB~Z6+Iqe~!oW_KFRyqRZ(rt|o0+P-9H?a|NC3=3XTz`Zwe@lPsiI+0v`tpC|+y zKe_qi7X=xK-Jhuc8VM$aV^i`!Ni*@*i3@n5)Qh9MvT8X54Z9Ml?I7cGGTxc~2ETpE zJykt5XwHpCeG{E4g((+pGiq~bgiQ>;(Zf_g2?%6d5!S`T9@dE$HlctOQFIv-KEHX< zAW&l-$znZ@*&>YV9Mx?-8|pDd;O&PnH$quM-j!9L;%w@j|Lo5Bnmn(OUJ2lZ!{#02JrWvn|3hn+>bU$ zfm_GTyN@NU{gX6iL$1pQVg8kzAH1?ZH?OkUTezv5Sliq9y5WG@xJi2*d?>l@kkrPg z`1p&juX2HIG)-w|h@HXu6UQ1Ccd4+3b635VosDO`VFwe2ih)q&Rh|*N)>%4BbEe+c zD2VA?EJO2rcjnD&Mgtz4i~#$%M4wI6K&5XoJynC+4?i;8ow*}_$esUV>fGa*{Qv(y zW==VzrX1!F!YC}KIZx#@=W}m4g$g+hIpr{fS~G-X#Katv6p`Z`Mo2Wr9Lo6+%OT|4 z_xk+)`u%JF*lw@udR^D+@p#_v(blJ9gW)b`e@{v+>CJEQ<{XLqH|}!mx4G@2w{){H z$Di*?p;$xyr0`hpe!}wo6Cc^`RmbJ^C%yTwW3{sf;dcQIItDP;N+0^1JL%K$sAX$P zZI$m00}qB&z0&cT)dYrOFN?J8J*oc(ie*2%wqLeQStf_M&_!8}Wpdsd7!`D%?8vVA z3W_f`Z+M2dFz@9jstZ)<`T#PrpYp+0@@_@ZnTxHA%U3r$jHZtfkmH1iFJ=PQT1NUf z`yWIaEN`rDGP%?+SDoP`Q3DV=TIGM~zR@4GRX1~!{(4`&erqd%tK`sLYO|Z#AQIc^ z#i_s6nZ-CtlYGVIAMhaIq%vBIOyjTI~#%P&QyFPc83h7VbxdOeD5448XHu#Tk zZf3>3nTSH~iS?u}ipMPrA*;St9H{5Z=c{y9cFv(g030#sOg}O&bI?+w@iw@ z!^fDio)`)262s7+D!I*%PYd^@_FmNvDcz0{6E(TTl9J83_TR`jput>g1#9xl$2~N^ zu#%#heZ@+0{wHYn)b{uJ4aE|;99UqviuirrTo#@WKb|! zC(ON84jBDK@v)4?UQ$q}5pu2QT4g2MB=s|GKms1XI+sJ0Q=h}GC<%wdtQPK15U^I< zju;dc(1^G$Smm2LTn{;s2An$lZ8I1HzFt}gl=n^m22ciVm;reVK!DkSMtRCGQ2Dhp zSW>4#OU@Y{T7;Ycx){bqC@4%Rds#?Nj!TWiSi@oBLCf8NlE8G+1(6rn^J{1`Jt1U? zJ1`iUVTPfe8F1ic!D;_Rvw=vKHSUDridaLf1`7}dYcOjjMOH?2Yg%@Nt)hU#L*#}L zJ_;hO1iD`<-Hx|504rVS2kC$-rGz{kEh)>jAgOKgB@FeFMneF+8yIwkJmh0IF6+=L z<(CBbGq;~&F~)dH!f>xAIp08w}7kA(oIc&(}k z**Gm12dH;|a|9XZjCGD3z`U}i>%=sdzW571KLma0Jp5S6W5`U;_+w5y>hr-Wz}V4w z9$wVFXu?FH%GdJolPB{O`xym*E=Ma_4!MNqK|Kb(f%OxB^DYm*a2sjPR98Pj2JygokEmOyV_(*c17V1`X z=nOYHV_QJS(Uz6>=NSnH+sY(qn%Mw4YP9PLQtiwT}nlm;7mbA$%RTq=M6MI!7LaT z7*@?DSc~|202s)sA!NRQJfRqC;Ed=OLIPei;U*qaq*gt7m3nD8%|x9U*$+rE*fxxE zQ@p{X;}B@@%wQ9s*qXtt8M=d@9HHcHZ!>iP5Zfw{dy*+s4R8wjdi|6Y4=xz8-9reO=hvRn2nVf8(cK+oqhnNJ+Ypq&v}WOW8xB;$3W zVdb}!NipHLhefK9-1!SjXr*ot{-swx3DRFZVGmcWC}vH-T98NIh{s!)$vhTpbj!!; z@jKoxhHFtll7ni{CXB%}i3qaByWyj4n(|*@4cI+FAop|=Q9{N#1Qu=M;rmtkqI76c zw|A(Yx)sA$=`&obsF^L)sgv})&Q;)Lh_y&G-dszX4`+s0MS%cB0iN6YI#&RY+B@>> zK!0$fW3<$19y~yAB4G6+QB5g?GDE|%IM=Y6%ml(gr{c!g2wKz-VHk9d+sC?rgLnr< z*NivLn~suZl3t}sYmXPrSOoyzF7c5S_e(&k!vKiN=2C$;(1fR_P?Qj+6odmI`r$i8 zB#zx;F}>AT1GE_f1?a6&y+FubTu2p*J|!Rk1}txL;E2f9T< z8dhBDgR-DD?VY)LDjZy^3WdU%*tt=58E(nN*u{&4nwM0edO(@C2&U!WV{yQR?%_^= zb1*F9Y{hky`9M}XbFq$~ZuE^FQhsmhjDVZax@Q~R)bA6tz8|EqsPs~(bOO{5fI&hS zwWNPbgKGgT8w)>a(+gOG`bfI2D9}Oycw6&$j4AMgG6A*F5NtS!fq*Osd}MJ+yQYbd zA>SKLQZYA^2ElL`a2#BVQZyst4Z;Y&g0u1gYeHxhF*b_jNQDC>VNTULEw4ZX@N27M zbSVoDi(n7QE72LCpna?S2rdMgu@qnfsk=9WwN_wxui)m>e=E*n-Aj~;-i8C}!C(@H z07yMhT4cK9e!jP#7na_V0Wwf3$;-96@89dmpvr#ZxNMw-EF~JKXvHv82^IsOH9KTZ zg0$Xk3rfEn#wZn|%Xd_J^VxGw;8sZrE&@YA0aI49n9=kfSkg97&q-x1_Lu>qTS3hWqmcJdMK!AP_1Z{#U`AJ`z{A=hxy2~m|@7sZaC;kOLcRt*)WEWlXpnr1yI zVCl}Mc!RDp6uXu#ktGx;bA@79!R|%WuD42F4T&A(U#qxgC0x@nZo$ZvA>58-iBS1V zVoo)Ha>cN-%_EB_JLM}NUAn2}L+CoNk9jPo+1N|JB(DttQYbo#@6bXn-kvF!HWNbE z?Y1=f5zEyknG-)aw8^6M_&!kI19k|4j*LlYA+QBqfJW>UA-nXX!J5J3xwvqBcP;pI zDP_%oL^X@;m6Qf8<3bRlgiJeWKO^AwrWxR6*e_Kp3gGX7#RI3~FtErbYbg>9NrnxU zh~okm0w4^7p+X2Vz6}!=Acb~m($}!Kg#LqbZnA<^O6mvU7%7O!T6j15T1B_F0t7r5 zYL-#Rg7fbi42I4?7)YB)N)bQc9HW~9NFSE^rt|uWyMUDty3S!CbhCtz(VM1WVRShh zC^vKe1Nk2-4paCaxL)oyyU=VB{Py^9Uh4Je5b&gL37XY!R^e-%peINCL@~@5D5Q!UbMIy9F@|Q39ca{Q6xeb}zT|f* zA69+4YSINf1hQYs_su6+>{~9Lo+TPr@m#+wLM0xd_5Xoze)`VLU+g~%pZ|C((wOTT z-Nn(F*%UIj!p=@?WQrDFj&kf&C1k(7=!FW|W_w%J`CJd`L)od)`Y>`sHEY8%Nwu(Ae|{zR!e&VS}ker`VX)`(f21{fv+D=Qeq zIa!E~Y;ff}K_c}%cPp4w*%kQ~wCe2SJ76Wq<0|sv^<@0^PWcNC6$ z*{g=UInTqO8?y@*7htR$2t(BFQugN=Yb?u#&F3px>f6$y!Wkoi5$vJ*WmnQYyJ2>| zy}zF;u6S=raDM8ys7JDOM{xA3U_N*cYeiLCy`NJ+71%F+l~$5X8&JNZ4?S=3Q0+vf zJy&|b0hHWErxjXZtU#=7W!G>yo{Beh0~K!s7r21W7%ef20wOeK`ycrU-3|c{zp4uW z6VU>kS{O6Y-*ef+9uLcS_rb710WO{CV#e>35(3au(iAF3pyK&%>d)GB8fK<6nY?2uUYmR?`FH9QlaDszE@L9F5(bW`>0 zgB)$uQzQq1)oj?D7^}>ggMoJNxhDGx_BPlFVM!r$LK~P_| zfnH`E_W#ZTb5t(jH)agFNA_PP2|<(%9q$!66_RDkgB-B^h5WFg@P4tfdz6xSzaT0j zBd3zDh%EcfufR#_yq9C%@VS?=KH_}5e|~oDf^XM~H;J{RB%E{f2sT7 zoy>f2Rajn$$&3y`GFV{XpZ}axtg>=Dg zSL)fnH}G>spG5u}m~Dmpy7s~3#l~t}Ex9P{kuD9acjukI76b1V!)9ye$>qqZYwlvX zSWa`TZfd3S^F@#R0J?5&N~1@$-jzjyfrPjt?ieR^=A z^trLmEtUcA-PV)|N8(t#XhTBeXu|Ni2%23pXwQ%RhZNB%Ug!RuL)?*=p^KE3X>`=F z%2wU6Y`^Y?U*+-4w+zZWb93?JUdm8$*2C%Sn}@(F$Uiw zDNL(y%kGjxXm=~)SA(2wRg5#|mU-7;SW+jC(@Iv#-d#&Rrrw62xVYGkmDxmTgVsaN|nJsOKqsVgXWJ{dx< z7(X0j8GrZ0ui!u5ci-O4q@e!{Jf*AT&qSHsx>d%mj%gEDo^fG2z1COw-cwjCNJ1v0 zu+HD%P|?>_&ZRPJ%5Ab0m-Rk>zp=}BR`K*Jk=dJExVh?*13Ut${I@@3W^|Fs3{=$;X)QZI zntl@Qe-a`Tx86Mru4{CW zDXmAnOt^Dw1=_;C`QY`$l-D=9BZzU23JOcer(aw=C#SUCF>Y_{d!!fUd|i9QZ*%$h z(Ee`F<^Ux~foEKdK;ejS*cQR%b1Fp%n%r)_Fvege&i(_P^ZaqO_Q);1`~Q~M@TPu-L)alB)YfK=WMkf`?S!d^1=nN67%3L3Z9C=F|D7gMV_ z@Jm%sE`kGFZ+FV2&Eh9}cJEU@PQz`TXClUW)a4UvPxQN-!d1@%M`qvNe@ZG!`Jl=6 zKq3TyMBaQ$)y|%4_=`g=2=6Za198<>-27Nalgx-Jbfr{THYB9~ec7f2)q~zbV$2l$ z=WBybl^YtXH*1#)-6s9+pzKA^2lKN7RDT}t7MYKOyKv2wrKnFrrQlyevD%gZNbw9| z*ZZMOYAM|&o+T!$7IeikAdD=ix-1exwz!@*-2bhs*nWnqwjg`iS>fZ5ra|e%isYIH z_P2~|)wkeBIvlHW?UG+*Gfh=HtoGxNe5=O3$YNVEoASSZ`w@?ckl^ga@4QhbPB<3- z?bV+PD-c5+HQ=%@uw^ay&RDC+>p8l;`Rv7zFN!hx}$Mz_FX?C9^LC zS)M0A98#}X`myjbK_-{j(ty^L*1BI+ zQrrgRD2?8Gpf;>rg0@nB71|kr%sEo`_yhWdpaxXVyD&aosBNk?@R-NSoRoC>Gd=0= z9DTY}=QyhP>nDf2pTlhB3$f#+Pq`^p30yXY6Js6xAxSl0fOuCC@>k@{MbY0+Q>NQi zEr28EE5p#>>H3mz{3+`9u*VXNYQ`DisRIMhFi2q_@-@-r19mpow>#r{Cm*+Ym#6OYo7Vge8xz{ z0Q#Q7x3V4O-s$Lpy*pbEg2YahcaU6p1>HCpA+sEE@g?}LLPY?2A ze<*xZGfg49RNjl3C=Q}fcFLZ+WQ9mC-uxp1`4NfO>QB0c`px|}=+?HUvt0aNw=<7r zPj{mevTp^BQ|;m2oiA*q#-O=8XoKZ)$NiR`PXE0py?aXyXXFLLK7MPeekk?rgGji>|3V18pN!v#byz*R8PMXJx46eU z+`4`;3r}5_Q1uCUQ?-9T8KxqzSUo;Zmb)G|xfeg=5hHio&Q`f5U-($Dy+NV-VCU_< zqrJe7(!ygF2Q6{caxwRPjYO~A{voTdf&>nOnNw`)_9tg1Uo-g2)z0h}&QxGSotTa* zmJ;`Q=W3(Md8=0~%s1~-_e%eB{Yl5EF-6@GNof++hfGAfRZ8KTq*OoGJ>5@p;j3%k z;1dhacf+K3_tkIeJgc-0f1f%(^ba)h-!I|SzfBh>cqv~(5%a@5_A2A(dYrBHT&uQT z62aHKwd>8OeY!&9C8RK^dYha=-Uo>#pT zgh3B(DE>-(I#k*v!6DFxz~28CIBeFDTkOw7(8yD1@?2hSKu+7lJ{9zBI@`<3y zXGKl3zsk7kukSJzFsN?P-sDS1O=O)FEbC17x+uE4{Z&Wiz@>wBppG9*OS)WrFgD_l zcBgQPuUkX#z`mDwaYI=|xl3f}^x@pSC~kL%v39#MY}eY3WC{S39rh<$N@5@Nw7hSWIpgir1mUjj>z4MDsy*~ zM}P6S5^K(!n_{YAjJI-sM`924FcLj8KC=C|cth7_(G<_^(C|JoR~`!5fAU-_rAtP| zl3y^wYBpqRd)Nu7#GwAp&1k_&sN^?0o(GpsI`BN3!#g%egPOz=BhIpDT0(2 z-}dk$MLPuzjK$gSB#%2NVDc>vNw*Gnkr(o2#uGdluK(34dk*fBF%jO$;C!uOfb2%! z(HHXWnjf_Am?tt_=Z)Pfa^;)#n*Fm=V#4@NtOhhufLXOHwc{%Z!i7widV=L{W#$NH zbbaO%f|$PQ?}vkqYb_aB_r&id@%MrCr&}M9(OW6-o_7y_IumX**zSm8P4HYiO0JGDBzEvynUHf3E9u zILd#VWHLdD-zp2WBsK$FCx}zmeZAciZtXdbh*t1xZ_Q#1r zo?tacw-UaucEyI<*Gw-m=6XZtUdtGX)7}mU>T6q?TD%sTUa5!j@!;NzK^VHc=(U4a z|BI8Kj@6?Sm8Ib^hMQZdNM0|apNl(1t~PYK`Ac>|=#fCy+ zzic$^bqfE6J)gX7v2V8|!Bz3&IgHiIy2uKu$$9yD>$-+IwA!<3-GcD|^`Q_XY^PGF zXj@P1I+O})bHgLWo1~dRL*+9C_~v%`kS=4Fa&>{ zJ+-`0b^%eh1RILWeibT_8BfcNs4t|t!sAz zNm6|jYs*vW@-oO4$1qVF?SjU4C9R>LnjgDnX+*ad&hfbBYD%}apTtT{4H((=?YO@9 zta%@;)`aUs4>h{52@zn(vwQ-swDUyg630}&H0|-;?(K8uFNPrgaBz*depXo*@{YN5 zb{k>2jykq={DQisl2r^l>tz4Mk(GgN2VJW@b45N62pJRwM zLG-frKj^ur#>?ZZKTCU-=2ns=IYlh5?r9Y#RXPGqF5Q}QA;Sqz*9{LotU4{ng&vG; zE%V#HWtKc!_I9m}Ye0EExV_Rz>&x2e`GnT=zG2CM`^shp8>4T3-MUx@e(N|a2u%eN zgvc8u$4d4$^5Ag+NnRC8e8b!hg-U9EnKz$jhn-AcYH)8;W_jN6d*{vSe6UYEN*Zwb{FMgMp%HDUh2Rgu2kwj`&!7zIv{r z{3F+|XCb2$z}v_W5ExFX>)$DNn~@Ff*PsK>G-0l|E6h1Ug+#2O(O!A0=e?O+>zhT# zpQsn)x^N;sgQ|!FeVONR`k#98Zn#1S+nY{rM{_6Gt66gY)m5 zX61GH$`BxPfpo>QF|xqBfiWeGRzNUQ>9JA_ad?JE*XDgM@cIv5UM)ysE6>{yw+!{Z z<{C;cRh21$?u|3+S#x}P{pAeGW2lI=Fi$2m_4hpaoXH!+k7uj~uCHr?sXwN0-4nO` z2GD~a(h3Ai>jj41p#OnXy~!F~HaZNEq? z2&}j0BA*U6U`9V|H*V@ni*h#_$Z%N)3YmG@FR3YCd$1jIQS1{LdEjVmFoe@0o_Q58 zHUyJbmT;JRm`=t#!o&ghOjkvqm-Oj}T%+5#6_PjP>H~CIWDB$Gmr1rRWC^b`0;oqa zX%r5*kN70@)w|`&(fOZpafZjb#FsROHV7Aqev=F* zs4VjqGHF9f zQ)fl3^Y`@R_sE4Gg>{M9@-x%5LIE;rMNVlsCkaIaXNX9`H5U%g_i%q%UK;gbNw13L zGh*_W%X@{Kwd{dXFSH2qr)Qhhb+Xeyd^R+8V81jl zKA*mEJiJvh=_~HJ)C|-1waRJ_uZndglfaMuEeN6>pC%&`!sw4C;a z!;1FT#sJ7opZIs8T(Xz(cTX%~cWK6#)aIc_Zq?m?M(LeA2Z@@tl8Mq^2N8OX*3aL~ zCRyH#AzGP!_8yLS^7H5vqMvrtWwd6<6u10>kFh-QGDT+4B+xqq9p?Q(xbkk}vd@U! zU?t8KW*3~t&-o?Dtx-H1Hq<6wrv4%i^A2y}clF6ioS2}|wCzcuiFSc_Sm4yq_v?6EyVLc1m$DT!Y{Qk|4eut6*J^qW za|zgo-QG}-Lpy`LH)m4F*G!$K4cq!foUkor;-o}<{qMs9eZ#1e*)GmoH6y+f2eAuw z52ufPRVd#%Ew4Bl?B0u>j#R%R-_FfeKO>~A^X;X*uGilOY5NB7mVL!puZ(~zdnx;8 z-o5=g9Rh%hU2xBeQ}ViW%kl3js0O0^Wwvd6rDT5PiC_GMnfv*m#{H;@>-K>sMDr8o zR<>F_wsJMC&@GpiA1Y5;<7!#w_@{jU2u6!(H1is}S((%kow)VKA@7$Kj6-YwZ&G`D z_z#wEm#sS-t{a?e%j^dIhQoUAm(jb2xy zI=yMKA|R=3-QF2;=IBK19pP6p#@E2FroBzd@oxDZrFT2*+)a-APd;3=KRu81SboCt zM|m;-eNm3KdYIE-YUDb=SeqnDbG-76hS333qv z{?^oaxc*`P%1Lvh%TFn-tpodK(KJljCh-^u#SG0)wPh!N-$_e(sSf{K#dT7!D|Ai% z@x&L0$9>Qu`R8u}92eYqch2TLIjCt~dwQhe*b~0__N$k@8}p?=jYnG!!rJ>|Gp!&) zUx|z#-b`oT-56LhK<`)0R(1Y-ayS-$wMA&3dA#$}_si|vx$=L52#PLtk@6?6G_?v9 z#+rPSU2HX<090);1GQZ-5VUX% zu0DY8J{Ve-J-lx&_hJ9imh6AF!s25R9$MC4yy-Rm--FtP-Fhmg1_FY5H)OciT&xPe zfBr=9QzSIY=o7AfpRRvo@21vVy=hK|Y-Y8eG7tL5)tuqAQw3c>Ui;q<=N!hRlHWFQ z={YsdrIz`n8~*&w?e zm^(c1x=B*A^+^ldLjB`GiWcr=r78|v2!Uzo zxjTg|5KyWfBO|gHXFY~f`-(v^Uo0grVAfE`fl46*C9aN$SYjxWigZsinRv8E3OVau z0Kim^;X!Hf6De5*B=zJw=%84fvpQGC%XvZuROp=-vjL5Oi8qIF>_U0&U^g@1Mw1kU=IXyRs$}nt!{7V9b7jJcW{p^jq*}FsTQV%i$0!suH zJZJ$Jay;9hIWdhi?4U~(^wkPDSHL3V6w2zHU-DSoJzM@qI z+9AEQW#A)(@IhDPi)o87V+re(a~=$uV%*oYG9V@%qjL=0zaQ9 z=kxw({#_mT=L2jz>=+UrhVMn}YOKy2q?ARAMh_om?i2gkQV$eFGEAcXfo5bEw9Ku> zB8{Rh@0Dqo(0fAHY)c-<^8Jy81R!_b+U`!SweCF9Y0!DbJ7?ed^?soN8(;pvu_LD6 zd{pV~EsTNgfcK37hZF7Ywpg81GM#P|$E+uBPQC!@=~g;U{#3kNU7T)Wc@fXfg}|XS zEO$t5MDd#<8^L7vkJ$shoiG zrwOM^r*bHruY#6{Wg)vuNjoIo$KCvNqugM!2pMP|tVr{LK*g~WukeA=OoS;bHxL6- zt90_f5(`vS7Q>1{yQ447&G$$?;&R5)KDSU4m2LOcqbH(W$`)o3NBNH_Cgh&4bB>f(d+ zL1Yj+Dn`cqP9sPhxvG!oKa+S2NBr?E@L}(07_1npmD;kdPKj_EWDc7&G{0l~TpeS` z#f=8*vP|zO#gEm>o4t}gv=)w&d&C}i@;j`Eg=Ni52l%)|=n+jWVjdR_#f(9J=4_JA zt`llP`<1{Gxd@ex^+=CK(S~EtL0?? z1+IbtTT;1y)?HjC0+O>rzI z%QneXIM-?y#Pz=x6wrQJ_+xIjYs?TiFJ{E&!o>|5_Phj#MU>Yh!(I^>W+kd|FN;J~+C-8Ugfl=d=W)(} z0gWuJR_x`5;+o0>Rzo2Te>ivniqZYMY8YgwwiFi(tATmAr7Rky^kN6?_=-3u@WSzA z`5UxY68|ddlr9sW2M-8BvDFYDI;Cwz{Hr)r_)_e%Ze87ZzM>iF|CJ);!k4fYHEFwa zW88KAF0V-pP_(-wiM<%7R@D2PTi1A!sDLneaS6D#H{n{1z=vQC*gb3*l_3Qk06nL= zI*}WbDS0hGdRfzgVE|)1FpK75=9K&qD1H7sQH`#T7$Q0YDfFPzCxB~H;vE3P7_ta? z3dR4XaR^u%4K88d$!X9^i#GvhJYvO@uU;e*#8{K>kPb9vzFcK;Crh&^y*erNydGqf z*OiZr2rdG-<4n@Rx}hLAqDzAY*|2%J1BJAo zbdE)g5KWh70w%jf!BA3i6K#fpYS2b}Z!FTfGhEf~hZW}@FHz-DsL zXn`yu@nQgN>mH^MOurOK|)utdb*ggZn283{ zQNb6}*Wm_?IruH2W!?@eiYpNQy=WnrOs9~*NZ25v%WGOsi7VrRhNl*s5<)it5xhF` z44|M>Kox}&GG`<*hePY<8B>W8t3#WGl^_8#MIvO_l14^*@06W&%f2~tuPiJ{KfTi# zHmsx+mH6u-KFW|%DgEn&c)D|F$D28VD=E~GiH7}RnHlIRl{+>NjOlFrqHpUQA*>f! zvL(`K?@*OoTg3yBQI_qw>$uBq2;QlpZ9I(@`Z&_+C8!ZjQ@hmo)TToINJ3=M<&_I> z@MYSmWY{x(n@OgNch7PuV7W36TIBMt8i|C*mGv{-3DaB5xm73JG&Tk}rj#!HVGf9E zar##I`u#{HI|d7hGP&Ki*=NFHxb~u|-KRxyNrVS=7pFIg`@^aAoc-o!6FncgX-f!tzm8xbHc_VZW_E+!iSFaLKSJv#@;hzF}e(2D6jI zM?_6G!;8~rerO;KJC3(o3Zbs%!^^=RRS*-Lk#NUDV_%iHXYMi#U zp=}mZkS>X5-@4@n4%N++ZW;;UgYu9PxB?;Qf{3{^k;Mfop6$G0X6z&jT2F$*2F;3u z%~kpUxiZ(|FbW^ZeIvrM3$$i5#Wf5*>-P)Z85i{96%AM+BqczlIndaz^<=KlM;O9T zAlkvM9t>B;< zO&!~Ip+0WqE{oa)6WGMb(Xl{_r)Ok8TLF&8xt;DlfmxsTi5%Vvoa{#5^FY-Yc$G;^ zjBBkXi}POtkOKos{AmY~9>HbquG$Wc$@Rrp1nOJhIj~UepRDd{`IC0k=q+4J;?qoX ztq03G$;S^uen;@tzxj21WvwrUkPPJO+3L}6usfMCnU5k{BlDWZ5+d0z-5E{{*?5RN zmiw3TB6N^1>wiTSXMAJWRt#(@Oph(XntZ zVL%>j25A7V7aqeuD4p+g&DI2jX$|2bnfC0^<6-VS&qcXq)rT|YtS*=SD1A=)hI*^N zJW~}{Wz?ztAMnDA+r|Er`2|zBLOMm*n@bqxawIIMP}%OyHb9 zc=f3&T-8c{+|S!K^I6c~iHy&KAjP&Hd_%{A#c#7qcBHPD2RWbL%AXy3a{OQp@u;XP z;ZCy6@)?T6Zq@7kejSbQqRgkB+dm&WiwsA~&h{nCTjJT4GCqmFqs%oM=ep%DSuR=g zoV&mh@62+f-`}b~WX&|Y_Hz&1J95?F25tAVot7Cwti)uH;H~8wgcX#%!aNy;b z@2NM5Z{PR*#k>2LFxiicabzL1$h0K=nfO)bM>8==hX%1#a&LFy`u8#?bk`NroH~>K zV*gUPK#@ILA~TQ8_mYD;npA%%;I@Hk$g$yQu+SOH&BTgy|0{PDVjdr|AAJ%OiD*)t zOKPvs^6uYtVnzs)xMkFpO|hG;adz(p=Kg^$fgvo?dKK;Ig~GcMOS~ z-h9-deQ7Y#?YXxd?K-Zq{@vdy^0ANh$n1&!cSL>rIDH~jge8oZ=)&*y-cW&~gZJ<9 zlez6+*^(zSFDG>}Be`d;UON=w^?EmT+lVL8&xnpYfsD-Fo)(__{*EE}oq4qM(T(bZ z?wRj{VGWcW5l=^k)6FW{vo$+{eHPP&1@|AVs)cm`A%4L=NOam?J3!~V@~-@`l3fDa zaIwaX0vg{Vefa)O0?8D-fe$WQF!mCcEro2iiL9w(cB}YO=KsbopoXqnq^vr2cMd!g z7TA(cpjj*&xFmr-e28fzUpr2&+geBtkN0&wM6E(x^#C*1lyu!t6lwwX4D+n zOFP_efwk~`=Y!w$ee5SDs%O7l9RLrmZPNN5!hewT5EbmQ0$_n@Fd} zZ&a_FR;M_RmjC_1{KgqY~i>7i&5R`uOVa33^rpNP;WsZ|LwJ&RZWilqD^U;ib zmkZnC+5OWmkEa_@t>`0-x#;hj7fTQP6Si|oXf0y>X&ot+0g=p`iP4XL92gqA z{~q=6F3Fs+OX$yyGvW&RZ;L9)CQht@BnZ2T!sg1n({wN6znPs{snfq=>}Kt`Y$8i| zpUqXCU5n7TEtn#j{L)nH*};me);d) zPE7ek50ss*&oc=mMDyY+;~oi|kfM+Eomnp4W-*4ZlnC!y+QZ_@8As*~#ALRr$UP>keUXh^{mncF(S z!4~IIoNtf6B83u~>+I?U zObdUI>tA-UQF!OQw)`YtQXdvoh|a{-_Fv_`!Ohq57(BONZIIKi81(mK+T4HZO#8N+ zeDFKU-gmUNWY{$e_jEJE@vY=qwXM*OaNEcuy(=*dvaeo!!^u}Jw>SS6^YDIkL+V8w z`JqU=al(-tC8-2vPYQE4-Q+!eC0Si^;C4;hwVRKZ`b(I9|9(`!y8LUW?tR1JYphN1 z&EiLjP@l8HM{6qPNy1DS6%M~z?EPD5Z>l<484ZubM^s`b0}4)|`yORSa&IWDW}cv| zS-Cv+=Dhdsc?ea`lLfb0UXiKywx4QNw|-HX zg|A9v|IU`G`cUPmILo73eK8F>?KQEsPMLxR?-mB{x%STta1O}7+_Q}NDfVG$ zKXjJAsPDTTK$;%&fMyOTwZ&7JlX8B!FdxfC=UDNu?#+FAstw)`>N^=q)qCXgUMa>w z?2mf&3{6q9qb-KZr|Dw2@sErC&a?Bj^jXlRi=LX6p{UN&d_6mH4*CmGx$xQc}!KEg! zERrq1&eDoZ6ftPjMZDY4We#ntB%oswEo^aEgjchj#vQht-Zj-;#5695wHR&g*_{+R zGfX=R-yhsnU~WG0Y4l*MNTB0~vwT~YC4x{I0SFgG>!7Jv#GM-U&@Z{ex0baK=6~NL zc3t2Ir(4N4DmbAwAVT%#TQZY>8;C2pndF5@yv`HG8&#&D@z z;j1Pbs}f)8#mUYo3G=u@nbXass`%|#I*Mz18(C_o(=kzOFac3`8^O-heY5)W%MFtW zizAEr6b-MSJWt+EP3}r$89S#zZj|@+WhkTr&nW#56oHSY6vl<*NlW8>@(^jXjuutn3G_OK9=Ns2$&u<<$oOxU9u0k^OS3&T$KDR=0SrHEyk zc`D~@651#O+Rylj^T^jI1!Z%OW0PPkSyZSb53iYJFMA3?l@A zkNLe4V;9>=DhBl#?RQ{LDso9L@vh@xRhfGosF-FO_#c1Z6tdX8 zSoQ|{Dq+_sBQ{>I^GQ4YH<@zmrR{TEh;!U#rP~OxK(rp&-hTOUwgQDzc3AKOv4crB zRY?V><{5v`xIQ8FH{HN+6CPv$vwWV9u5p{hhm<-EF6x17WmpF=w|@xp5imcA?K+{W zw~3$*qnhJROV0LtvbvupF)Nh?bM+|&iCRZ!lrnW6wOca{*r z9_R6ueWw@j*dx7vFS-5^zO|&XSE51Ju*TV1=?mgOKIO@OaLI1>G#YK=*<=$6 z_~`Jzh9p))5M6Un)Z7`)VcKC+{*0LCD(j=?juQf&K#LI&KN;5!(j37R-u&^$&McpQ z1}>7Efu~jdEnQ-4eLF-HNrl!_l2ay^_Z3@2!^1 zjw>L{QzeRcwz)FlNm5d=#*3v(0C1+*m}ARY9kEKQ%yh(1^)0KZFv`txOAHPV*D4QW zLzeiCt6P47+%@f<$b2p19do&TnGY)NF+<37q+A#M`5ajqml^%Y_B$6B)W#6!Kyba3 zjsdx)3A&xgeANePRR?N^0*+lCw{vm#HoR-!$wQ};>gUQ7Wav^==%ilT8M}0Sa#;Bi zXH&dwfXsVt^y9Yl`T&Uc1*dwdUiFhzJqk$|K;7cLICHl-0WPUj)%ITI)Or4DIQE&Bf@k#OK z^>r=NZ?Bi@e+iUnN(J*@S0izZNW|jm&bfMw^gX!49@!!GYSH7aC*w=@Zazv0_DR6& zx0H%MvQ*@Lpr*$E6 zACfr!u=ALxd|E*`+*7t&1qNjaY9u>-^VIKPT2j37yE0)#6Zn7$t^Pkgm-}jSFI_*O z&?ghqo~Q%t5)oF_yGFfuMx2QsY?Uo}C)R=1p54o3dULc(=cQ%9`)f_hmNj@HralvO zfU##!X|m@lVcjlxGGi?OzuILq0IhbKA?9}FL_5oHe|WtdK!T`x?80nb-kL;FWQ;Df*37dXy1ABZ7-3T_V*#$giHk@Ky5b003mDDqXL^$h_5&J8^w!54f=qXQad zGS#1M4BEJvEnx?1s?w8+KV;6=-dIX58n&Fu!%IulFoEsRsH#ju^I0-nArJo#}pfm?}8t2Y>ZkR#P{Jwn58@*Sm}c9 zQSFQq9QWqRn|`fzd$V2fh;3AcF*Uben0v|d9c@}-I;K)3%>Cz z$_CLJ5ul$#1y2j6r2wGj?Tg>!3ON|e;yyL1bn@-et=mc*O_~0}+y9TGvyN->egF1g zlr%bU;AkbKy9Y>jBOs~LF>-W?;3OqQVmQVK0Z~d31QCWHHBy?96G@Q}xR z^v_M+_P^7X?N)t;WC10#cN1o^oIdt5+VdMO~b5#nTJ_$#D?yiN9HoZYY-9ob_x zVR5MYN2A#9k{s=IsfFJcFg#J#Ms-eKOqW0vUsj?Fd2#20?5cKUg3lxhK{m&Ss)L}g zH=F{#55sFV$r5DX;#KWE#HZAG#0EUk{%@J6#N#gmJLFP+%%B{zP^#-#LBbbp1Iy?p)y!x~y`AJc7fzZvOBmrlDKE{?FP<&!|75=uu0`uvK?XE-{+{2H)|C)w=&D15889oQW|C)ynz&(NI3;M?Zn z{*f?V@ihUYOZ>s9=DT>jk8%c0f#g5-z4xqoXyKB6(^kvsOM=hq-s<~Z7C(S)P$;o; zfhzjf>(}E%;yY*0(9uOlGYHafBQ?Lqu{HL#!+cu@L4YWlwmd=45Xa~B+nMh1qmQ9( z6D79T&(Brea2xeu1~zu%8By^&ccWpVe1#z=E?=*I`OA6f)@61F#;BA6yBf(&f&JrqwsqBo5YKilG1&uIn%;Q1L-^_}&Rnr0AT$t>y=57^uyXAU?8dBJ4QwwfByl4wn)`m*LKx2P73=SU!VB9=_0DX35XUlfGHb%-Y3Y$9q&R(5uAs=D5&ZvQ854#I~p6MU;;^(^e3f zvA(-5^PXQFVy7B%+yW6W!lQS!ar=gsrw4n5YNyZciiyP;JZ?`HhK0E;bveq^T$~O3 zb$VC6cmKlUP+{#Vd8IClAe;BV$oA3bi&PK)4}Olvd-)7CH)jp#9&go0N%YT)0YaLVI{WYqS4BLTR+b^K z?Jrax{ESu(QPn%KojC3Yd?Mc_|28Eb$GgleB@*lV^OdX~GfS=ck@ znSQAn>TfG`+mbH_z=pKMJ-8ZkVZN0955)fKlXj(X8(YDqe1us?c4Q+C`>*j**`F^9 zK7swvel)IYdQ-($IqTdo{Vwtp@A6~iOr_`4p{zXW=m&p*c5M5x7se0P zMkATq(1x)aS-bR2*Eoo}V)Glg{RqJy@B_0saKFa&uu={}Z{Nvh&&=8PkF5RgDu*`U zR|R*~s<)Teo5xzjq#F2JbX?@fR2lO}V%!fR`i(}Zzl9L_U)@tF+CZKVKNYT?_WR3x zanK)=Q@ayDMgE==bm)Xcy~whvE#SDWKH)Mq)SY8obtPOOsOsPNvN=A@JVyIpjjCGB z4}p23S1tE$KU`%lKFUgy^zD-DF!3}Rd-QIid%pDL=!UI2lMeOMEBP~>t!MRvOFZXi z8&}SGdaUxTu(!~E7sqW#zD3fHRO0kvhk)A2v&SIe7~FK?Hk2P{=$upt zg)BvJfZ?z($g)Gc(?m$75OdMmtR=IGRhKKmP%jGP87Iu7I+@xkw3`d3r#R*-?uD$G ztO3nY*GJyxf2s}?W$8VOK_*>!h+`~}mt&_&xS@#sMlza6)Tj2L5TGIH2PqTE3lnwW zD`VjB%|bfEATvl2cMAAc3eYH@saF-kciz%n5rU4GuxljX0Qnj$Y#-hXm6>T#Q6ojK zgraLk%z#!nIvjHwVd|<}Y*tSWz(RNgaus2r*lvClh`I*L6IwZk>*N$73!_u>nucmK4^FRmAR+OxR)Oc0v`=DCh3X zNhUW_(3pP0gsB}?AHHvL@#zm5+#(q=U8z1 zX>&(7G3!+uWG!2WD_N>d39w=uhNH9cJX%E34*=^zVxLGTASwZu0S6NS;ohuz**NPf zYJumVg})YMAwcY4;;ob+@m6B7q)c&m4+<{SPQ#YbB4lAnaSWM|<)e)iUiEp<+|CM@ zjUpuXbk|&G%S{lOukU;vSt!mzeY;FlcuF68{ge6ooJ5`7rB{{nog)>}eK3#PP2J!f zXU@Z$Cr=N`leO(heiHjn;r8d|h<|Cx|D9J)$ZAvZ%ZRYzA?4{^^f9}!(R9>`61RI7jql5rMicGvmr*M2+s z=`^_Se|-j=E>j+#si)4-W}x69957OfBc?NzL(yKQXfizj>@Y?s1CB2a z4B(H)SU?2BtM<|IvQyZLgMn)jlZ>)BI@AGCH&8oB>zOt)7RiS0Sc9OHn>n%Vm~|4# zYz@eHJv^4hoLj}`t2t&=T8?Qp6UdTLK^mokOPd+Yv`FA8%OrJp*HGrjexYqK3Md2} z!6_`Qf^w3G%L`?oSkKfDkpjplGlXIjnt*Oho1vv-Bqo!AGwQe^>1{^`hjaHh0C*`k z&7;#)=0NP06Lq;H>n3ByBDa}5qZJ0-nUObQ=3djqEstGYraK_eZ zEqJuZ1yKnrmkCiQGR9T|01i-yDRmS2o@>rrp+<_TJhiFN8bH(G0sz%AiHW8v`fEu- zP#|OmZLeH|LLPdQ3Bf|qn)4_cY9IzvK9~!xMpLi27Xz_-SOjhzW-hJvVT({=BCMKd zlr2Ptj*$Iyg7$!o=MWM>YxTUK;&2ejAe$}WZ8;DL;VVs?;g)nUiUd69}TjGNdFN zOH8=2F`{hg8Y^t(6psBVKOqaD|APw>az-BGg4DLjaB6=o03`I%WOA~mGQ*B3jGjaL zcPO^si-Gd?zd7x8OHc1^9DM}Zog-+}%uw^MYlcb%zKn5+lQ{Bl>@s>@Ospn@aNO$zH@uml6Ib&Sav8&GctR4~Gu^VxM85PG4W=8jXyYUWsf1OnY%L{9sTCAv zD`D{=x_Zvdba3u`FbdHdhS}&B5(;4Q2@f&&M$%;f@!|o!nEBG{bVjp4Ly&f6Ro?Lc zF)`g7^cMvO%O=1GN*B#crpF6pzd5WjrL?$`5Yu^F zi#3d7n}x~UbxnNS0YW=H#JngAV15Y>aDadq4wVkf{doczNncle-v>x-iqpJa5eS(< zSsi6IyXU26dMAwODq$3{b7b8lQ;>uMD1e%)S;0+@JU8VOO;%VXd`*o3JY5L{A;E~m zVV;34Lg9`sq8m-2T5brqcUIB~DNtepC3Ig;`{++46o98;fSu-=AbC1tGu1Az%TcM6 zAPB`|yG9cz>cQA*km^67ZEsyEAep6g3-54kEwdR@f#C)i8}8W?Y5l@NWX)HfqQ($y zUTDNbJ*5}#PO@otzqb@g6A!3;j2{9|=O;2F01yLSN~DPu8sLW#Gcg;)5{)^?ZLku) zML<`Lv~po(xW`_ZO|QP_Ej7YmkVwb{%XVkxW`bCSZFY_4fh`kcOz)oUaR9+ViP=Gl z=(=s*(N%r5nv17W^MnM%T#aN`f}}9bF-cRE@D_|?y_XYG?xXI4HOi(^wnlPifE3W! zi@NDN*C6jt?ujT3LrEE<5=*kBL`v$p^r$c_MW`$&;p+eW0zm@-I5g!h%4`CHrj^v- zphQrEA*G~628|>sxRa+q9=Widi%$gSM{{0DDP2W0Ktgi@#4y_m-1&+gof6=^V<002 z*rNcv8*nfjJvhc)mr8_R>-lRA5$?u<)2+Jkve&LHCmIF|hm6X?xbh&-wR5XHmg!fc z0m5rQ{rCN=^YVxS?Nc8;D{P>@;X?Zgi;HE-@~TSWtX^LXX4QAP;4hOZ zP|mkAx(kF>^V+oXzhB*mjM4l4H}8pOpr*5D9s9L!6f>`X+KoR`&FhCw<>2f`nFlDF z>{mx>JGe*(^7C=U<-gMHI+3;Hs-iXh-<8@Bq`59l0Az>?bDoqNBEKE}B= z`joJ=6&E=2-kMJ|NOfXky>0)EQz+v0ZuQ$I10&uvdtT;0Mii@LO4i<1QlQCFa2^w= zn-mZKRR5k!xVtXYv-z%Zh)t`LjJ0BdWV7{P-U@bI2&_49q0HoF(<7SY!^A^2m+SUZ zh-`!o24tA&t!&=K3h#wC@+CC`en{`1A5=rD=oP4n=|ue@beh*5D(+e)4^)+vjB_8M zWnr{g9lEAc7O~Sc3D9A(F*r4$2(#IP3)`7X*?6}|3F*Z@o8K#0@v9_0c!z+U zTUF;*{(SA^4b9La8nN7FYbK`QT-(*T)*$*|7H_8gNPg(93&1d9Is6kRU^CnK(;N}^8xwKY2EKMJ;`Jm-< z-#=&0F7Ml?toy})#9Pe!)o3a^pw$evX81{I^=c*deYX3@Zal)?uAD+n<@yD_*`9;}US8+P)A6IsbXWRPDy~ z{cqGLUY)h`Kad@={j$y$kkyU={w|G-82^wJGgeY#+ppm38Xbi98}AR*6928=5LY9s zDG=}tW#U6$v2%xAyL-ofNW?!NfyL@h=R5jBr?PU%#wS!Ch`x_4ZzH=&**@Q$r4F6M z8)k0jOvo8=20XpKx<^na%HJJ6f?e^I`QHao`mXUFs`N>{71;9TtP7AxzY@MjbLOgY zX#JjYcB??!#&5JP10xQT7_w+-3SUsR8$KzAg(27IRC()cB{KH(e-pcpsp>syid2g~ zs!jZwKZ3E4j9A}vU-oWrihg^2_T#nsaU*tx*`*>uiV%_1{OXN`yZ z&Rj@n73WXM-s3k=)!0?v#NjVl{mt%&8mW&-5nSr8n{D_PMt|5iejNk&9N?UCcMf&SYhQ{ z{ZMoXBctE^L2m@Pe+3VYj`Ye?@v#%f`#=W&hbN z)A1Gt<)5SGEg9?C`3r+GtzGvIPm}&+(IU%y|M4wgTO)L>L*@RMB}_|s$f7w({EV@p z&FxJSEv$>7=ylg5X{lZF9|l}Ho{bNXg)6&@Q_DA*F*<`s;WOX5Sf?HyoTj->C0!jY zCR5_EamjsH(%5|iH+n;{h2Zuzs<(Ux5>FmJj(lUadGhAD>h#PBim>756F$s-;z06O zS42v0BZRfLbqwlaI1ikwDsKyLS2W1~K8YrnT_PX+a?uint66eCs>CgtX~n>kEwqG5mhKtG4_RTlM!KT05Y$s~zONY9?jt`P5zso?&piH`$EO_9(-a zXb-c}TO7~bChyW))aG=yZ)S70VjB%SYx>-$#jF3_;`BuyH9eg*&*>NK`xD6RGZ+5( z?#=Le>E2V?%>0QnJEF30ZVUELU1fQgb1XfO>>-?5)ky;bSd z*||~a%O9rVvz4YUH0M<)Fjnzcb2#X%-uV_1@qQt9s)+M z$)k74GnVNdfuwA>>QG+_mREb3mc&6^Exx7)GrgP^Q|>QcYdDL_hGWK#2fEmYtA=q7 zPR-tuczVj9jDw+W^@u{>8p&^?cSRhtQp*@p{sWD**gT(?b5p;C41YL!(zCQE>GQ-o zcjY7_2oddu*6xVVD%-|^8ZAHXBNq>}pF-*}*FGeOK~ z#U)K%==Frn{cjq}4O>0RdKrEJudc4Mv%a=C$_{aMk$9>u;2=`-5(}>Cb8y zFYOI4%WP!6cF`<5lH!CM=Re#FA7}Vf_Oj98?D=8qym5iQU~fF>CddPMbsc!(%xJdl z{{9+e&0GO$u`;Mvz2zR`F~)~yRZ}@DvGWhr@FBbQRgSuUvYuY?T;A(+d^K@6$8qGtyWV_cX z6pHxeA`S%a?jciaIyocr)TvV&sze2`JS;Ut(y!E?LM&kdMjG- z)6E*grUpxOCf487-QRLlW4&)NUrSFfkNVD3*SLoryMAi@akTJyKzF0~^ONL*{UVBj zcR|W2joN1^;;Jfj`#eknT?z+`DZWHA$eg#G-oxMnFEA!v@u<}T> zCKN@yUG_aS+)b(@lU)!G6IR_-jcIgZ z*Xho}zzeRg#Coxj;{QOwUjKopSP!%C3;~CLv#RYSMw12#qo2~CKjS8{byhYs;TBa9 z3X7B<6f3FcRm38aZd;WjY`c2svVRUr?THe1K2u-XJ)^pKRyjZ6VdGtS){BL+-4~Dw zUlT}BAOFyH1V2V(~5Z*j{G1r zqpUf^WfoEw-FW8vYVI6GP?+G`#!|k2uO)7G%!z3UB6jDV{*obW(RFO@TeMoobW$2r z8L>50&iUHngPqU;Dvw|1BY3a&eO`0iv7`T#>3!)cr{FpZv$9WWucuHlS5o@vO@GI6 zu4vGXA{N}NHp`0C`+yVCK;EggcF04N^9L3=k9tybi+l~T4MT4MuREvP`sh$ zC@m7Q*$qOaX9kN(H34NIsebulONe{XET<4n*3v9h-p92aQ?Dzy9%LBfIjre%1*g){ z{~+9_+d&&*nwq?8kZ5UN6ep*gl%^0-9Uu@W|V@ z-j*s5=PTMz=>e1bXCzXq%oIjnacTD^Qzc({gPkbA|s=5~6b9;eD(Rt>=i%!U9 z_)*XD8bk&YC#@a@7H;fl-qz?fIxY07q8jLd;@-}ZS;61jOAZ|L?oOZ~nc6I1JEm@A zoBpJBXM03FU8%Wmvu>_Ghpf3QgtDT)Iy1GH?q0mRk%+2qN@cLS=Mk{h2eM9XYq`&& z9)+;6X3ch;MnAGtFsF(^CzDV}3apVN#eolZNk*-%5E;#VMm--+7IS7LwD9v39DNyA zf=E8a=9_&wwz0?x^I$f##Zx>MWDJf({;5vtuYVC`{UIQqS-Ybw@A|hSOipIr4-e}6 zT|-vu1MiKKF`A5syE^)tub8E3B>L#THt4A37fZo^>5fy~`fYNb=0S5X&Z{P-u~3$B z;3ncrqA7Alb#jHCyoF8IG-`}KU|Mm0%=(@us;whaq>1-crqCV9IV%XXKO!8b;AZS@ zSL~gtC16&*v2T(?3yPlH9z<4efk6>X)a|O z9jgv8!W*f38iEeN>PSQ%$nI$Bnc_-lz1q#dIaF~ap%JibH6Q2MZ-`Tw3O!wwkzVD$ z{;h4gj$B%1x~eeXT%+@2KA#@G9taM7eI$+CH_4BACuPUQnc!aWioV23mUr$uhP<8+ zktCc$j-sTJ<)f>t0U;Ck3WTm24tM>4;aYlbaH3T!wHn|MqFwZUX}n8bX)PU1E06)9 z55opAOaB|!XTC9A@)it@J6^>*h=VB}MOv8*vCa8(n=4i2WFmBiX+Hm`6k#$fwPA9I z$culHZV@ExAMmf%M#(A4`rSS25c8Pve{*(Z9a{A)erl1pngvN@WrplMQVCZ9y| z7eLc`$gQ0m`^YMx#SU&4dTm&%h&9IbvYlj6)U5=0KxR@%jS8nG)a$=AE2tn#sC+4Z z&o|@J>Oe-TYPAEa0Sv7~(D5laNetP1sF{7C?wrT+;VmVsw+W_S8DjdIwzR#w=1H_- zb=sOB769(>bu4G*Jr(c%Z6!iBtV&iUl6&JGx2M{$f-CF864*(Vt5luw@ay+gd!-^$ zMFVx81P3Ggs3eCbAWq>TuwlHhRbdbmC-N?nQq8Uu-*S_V^)|rMW6Vb%)X^t**RJ2Y zNgHMH-9;FpcjjFM>oW7nz&UN`Q<%@dtH@aOl??9a(C8}lIURg@EoL{wzmFQu3=OvF z6!p-i39~l@07%6-GJlF@f4)okQ*A3wwK`BY_s#x~_uEKT?UB*Zx%xe0+vIP;ghCI6 z7WhMY&0RbCWLG+yU_VRy`wvM5(%^x5nznf6>MC=btkYe1#~=l8KSM$8RVk(m$5?SZ z7Pwv-*LC-7-N<3*oZt^?J`8Vkg+qAW4%eEC$?+-fSVroRm({#=J;fA-^SOP9seN+q z5axkubq8;vyL9Iw=vW5>fGQFfwUf;h9FPj+rD^T{^lE26#4pgJn$eWNYQ${qrlYmP z3!`=FaaV!_Kr6pA^#E#?%AhZ0Y9Qcak9fU^{i~BU2JfdEBO`ZAkpF}>8R!?$|5i<< z#FrH7qNx#v14Z4nTek$iYC|{yoQ!shB+=OXQ2=8L zN)BIZV~qgw@&^Tr^qA`U{0d*ss64cd8)AYT3AID+8N&H+NOjG(A+~HXr`DlZTb|Oz zT2Q4&4#MhPouH{tFxh!=id%O-CCG-Q^s~@r+1qzju&_EYys2>H{HQFMIlPp7+Ispb zbXjuM*Wi&ui1U5nm{D+V=_F(w4*zc>e@Xvc;m6Lcw!{V$3?{nUh68NQ$a ziud%XY2*k3+H09V&~R3NBAnv|l6EDrkD{o|sV9NF#OAl%ce6?BoV1gTR9UjT`{S(u zxmw!!OEU+wBw*jXpEl-`Ii+pR;E{-g#*i^b>%sdQiG9|^%+$lyFBSNt-#if_+1}H? zu~}`&)81$A^{&U~88=wjHJ-uf?jWRk+ovWSP20Kc^=O5=0}d*DSAx=cq#;BsJqf0Y zvQkYh69VHVzDH{n?_Fwua_>z_>mb@Qq~nPF4?vgQeW!tl15Ua19pPpkuonH5InebZW8m zK0v?$Bn=bfjY`4gWL$`NTeH7DjO`$^vZ0}7_I@2(rSd;pi(F?VtEgf#49X54#Y5c7hwJw#_ zY1G7ISZD~m;CjWU6-+66_L@)fTZtW)eJDAGr7F(DX!dIi-cN2PoZa?^-O3E#oVL17 z$9-b1|4TvB#Ta zE}4CHTz=Gi1&GXkSC#3f4o-3Wyorjtk1+c|nPuPzcPv<2Dwi+o(CwcG*x_0BpP$$5 z)!@_iQ=_sT!*F&2ulO5OzcbYva3{=?{JHxur^ zL!3>01~1-<=ky{B(%kC+=!se|Tj&RaO3$=I3$Z!U$CQ+#%TfAo0@N1*9c~IZsdQ3x zRn9-ocP|$Mb_eD&)?s945wL<(pxmVovnHUw$Z=a{ClJsq%{VORmfzBm%h2Fq1 zyytLaNle2i<5-N*K3l~jKv(1Qvij7v0x-Ho-TNPi9;ssfv7Op_%J^=7B$9Ua+q_Fi zYPqbP@S$9F@aU4d;+ewQ=ZqtyVIae$O4E;k$3r9hsyDWy?8fFaeoY-R^=JIU9o}&E zDrXnD;|+c9Z@p|C8|G-^@-V{$AFgOU5!y zb07tBM`v8D&8a77{5&Pgy#KS|rNY7c?k*0(udZHX>Epa1Lce!RxWAMpwW7DmNF~XBeP*xU6b&GWHeV2DF zl?DeXF)j2%!Hd-HuRmtZT{DW|pXPU7H8^1%j2j4%{Y=;3mQ`A)2i-c;F_l<+d$51% z_g9@@u~Cpi%|6PN|MJaQ^1ZS8+mm6>FiDG4MlgDh`AboJmrzW^L3sk*td7V}j+YdX zl5LCp7mFz|Q*NtF&z76n&=QxLGTsi7ys2(&|8kbz7YdgsrNsjWt2vR;uU)WLJwUW* z_xspr$4JMI1WBnBV%86{mAI68q>XAku?`V-dx90kPQ$BpU<7s^KD@cgl&s2n;A=P0 ztfus^Sa#`A;Gb6s>&YZXjd$t#aV+y+;yhsc_$nVC%dC(7rZs!OpT0Ak@U~z|^$FCP zRz5x2Zqsa+bCpi-tkb)4+sEUD6;r`b|BPQKzM^q5FOh#i^ta>5lYBowR>;X)nLB8v zJhuM}lb&n$;0{Cj_Hro~?!bZ5>`R=?q%1?IjPpWw?fnl*T1-c*$HSw42M;M`#N_@1 zWd;f4?cB8ue;IjWuYjL*PhlvvZg9j8PZVl%cw<{7h{~v&Rb4HDc31X*=brMT03T=n zNjE@S2oOf90k|`u`#Vt*J)V;(JfFo5Nu?O$frZQ^&k_z%a1bDD_*Ho#3usl0>n=b8vg<*Ko-4ioJBxx#%Wgra&O_J#sfTP)tH_dZpmXtC*tsDmFB?%+@h0j;4 zB&k>7$?U3Q@cy~ratANxNHo>uhsy4KvsrYACV3)2=a%ihRzsU^DGusJdmwW54XNwF zoF54*YkY}bvSJd8JHxP?eS=aAXEg)(-12~mt#mR-mIplKqq*Sz0&gu zT8XkuXvf7=hK!kmC8c_>AO&YicCwEMLj>TuxCUzw{^|iG8G7yR!~b6UnD;vYi6d_( z8DvgUYhJ@ciN(5lLuPAG4^#kc8>bNSQj}Fw+h;f>pbAH(Bx7}c?`I+NqPWSqZ@4wHsJ0xYGxER zRSvD}j|xY-C$}XUuT1m<_k{j8oNBx{U}B8$y98xLg3}^l1Vp;I-iFZ=z633%R|h!8 zQejLLrTB^v^8zAKPqa^*$->Z!Od9wY@I0299rBa9f-5N2`$zWx_RCggbNku?(9KC| zezJyxTrp9lGs?gjp!gQ@GK4|D6r73-J8uZuwWLJf^S~JfxoBEFxfH(8m4Y)@1HH@% zEV;~BrcY>#noFY590xqnreuY-^(~%bKR*HAX!!dxEXM92Frl8kg)VynJ&>XPSa4f( z)g?`%IRd5XPO$e{ZJwuI)oL5jn`w!hIvm$CQ8snt_KeXyn_mqC&keIS*F;At+IuMV zMi-wM;o~_zd8`#4?Fq;ippZ{B3V-u`N*@hhe>VHA{F7tu`SjzOH`-p+ueuxAT9rcx zf;c0Zf{kNK&Z?r-j)%u@#I&87-wQxpz84*H`rZhysW-Nz@1yzi(-%#UrMbJX@OI(q zjf~ScZeho;UtrhQ)@iX^WcdPvTAm1v_6?(w<<1Dy@%V5!-Llq{sd|&OMnPt!b@3?n zm+d5w`QPY=gzwr%EkA3HrB&^Cn$4K>$;jmlQ|-Lh*34z?Qcqbn+=!gf9&;0V;EWj8 zK`Nwm@&1h3^w3`K+jR~fjf|Fx`2OTS5KH~5SST}>)fL2^>A&#{>Q-+`2_SyrKOBdS zVeV9v#c&EsMp^EnDLI8B-1EH@=lggVCzGiX;+!nOvt!_o+&+r?ebn~4`f8C263FYY*Rzb>RAZ2%;uBfQ~B{ydRD+ZE6 zQMZ78r(1oL7aF73)l=MjwN#polm(SLsH}`J)w83^DvZWZCO94zQ_;UxP*yylkYrH0 zh(rr;&1_`?*pzzG zqFaeC;Rb}Dgv-`5&0C;9@=l(m0-lRF2-*Xy(4}Ioj(I18iZH_}q>u>3W;|mQC1eKu zYBk79pPou}qLE zHs;Dp1jdpkovy4y0hZCeu5f1WyC_Sh!R%t0e!#*c@al!KIn!y49e?^mb4gA~YDf?g zlhdat0Yvm*jFT8bM)PhviIBj|c>DqIwPEMat+zprEwZ@@-f_FUC$-Fb3_MWT3OH=6 z8Po}^5oK#w!M9khr}+tt)WdM~yySZBh_Yk*>~lTx#N*1{63eX?%2ZA@VK@ec&>XdZ zUmG=a!SaqsnYw5j17VBC=R=5~;dHYY2K zt%)iQw8}Dcp!MkLtWmqL$eS90>uHO*R*;a6~{)(Rskk7i`=p^O)Y8QV`%C z5p%&UASkDoV2Nc3S+YI?PKM#^Q+PWpZngn0vT7%p;5h-s3L-Np>E0GQ1iVz5v0xQf zN(o{oW*3{IEjd6zo4F)SaGQ^5vYZ83NEzU$YF@|!vL;YgIL}(LA$(VF$Dj!)31-FIzc1g?8HKtd%_L1ZR$=XJr6@&qyq>}c2Wg!$YP~T0M(un%ssON zWnltXtf`P#YW^{cWH_)V%FMTD)a$l$3ZJQYfwsN4k`k`%=ox~TjsVk_xo#we1gDPk zB5C$1p!-139_;^Yc}nQe0W>AMDoR>qj10U1K!apKFoaRIvSqYIg7O%7GD^iNwof%& zAb~jqkCmy4t@#gR2*gf+Am~peED7&p<_4IZ5Oc**9>9|vD~wIWLCDx;U*cJLT>w%L z6BZ;0VHAQ6LpKvRyQ|g#DIjCBO#&e}7RW7SCmNw#sncmqOEQIL6?-bd8V(@iWX%;+ z_{13jSQ5xB5`lP)GXwZmv0)sQV%3E?&o;0r5|Z_xSocu+Lp{M_r|{!SS`{lH=QToU z8*GBQ(_kKTP2V^I3yG=psKB`c)Glwq*8CMN^v1n1^OOUc7IgB9un(Z>o$xjzvQA{HvCnj^7mpCMmUX`@ac-PD>^ zDQkT1b#9PH+0+G8PD$mU+Nf`(2)>11F8!-%sR&t{ZcE)i_o?a+{E|$@0M5j{AGsPrp3g@*4bG9bnd== z_2sB4exv-j@%g3nyNoy{$-Q3M3*&)Qc&?i2$3Yh$VI&*#yumS2qLWcycF2+B4qrcM zNVZLr84Ni>t-0m6NF|qWY*mHoZ`ZeM=>A(7AQhMXi57int2pCLVHb9=vwBia{1&mC zyP?-Z_n`2394)EX`ufi~CoF}wqIy#EiTjr768ILS=&aRzh?>=VSNV(SN|XY<9qYY7 z&V&~=qYf$M>1E9%vs=*! z674|wm86@4C(m(#aN$aZh42dIoOXn6Z<&znZP+0S6Kb!_(WTWOb^r7`c_Zhxj5sDE zA+vd7fU*X4a|l|~qY=@<<*KVZ`9fGU(Y$GkKhao^e_0k(OM9d|rfX&xw=kv%?E`Zx zxVk6Ks8IsgCLb+iH-!9FiqGROxVbXmojI-hc>tM@Ini*oUqn~)Qnr7sg>1}~lsIhK z*zE6S{ESScgElXL36fmFUD&>E`LA!QQ^}O9N{TwcyNZ)SY?Qo2QrS|R2~u>$iq;-X zM=X`S?6$C20~Y7Ad9g(J^^ccRH;#u@w-D&x?De1uaq`V3x?hv^58b{Pu>S|br}z&I z`r+jgdgCy@blji$m@bjFXYpwxjbCCvzokP~>0S)9b0^deUfJKCd=dE^A`&gcjjnF$ zln10G>J%}tF3-|#FClTs!+LDveM((c#^80;2y{0UqxXk_FJnxq9RAm{J?@ebal%i! zH_?7lIDW`!rTI2?j$BSIsc!wZrpQ*6lzIN*Fz@l5-|XHFcB)&@+NXM!)E2f8*`WRq z;}~pW(0x$Fy696Yo0#70Wb)z&Mg}v^_w z3t3wk$=_~PSw2}PW56&d+Li9#pSpT6^0+yp>6fV5<*ikNGhZS6s>6o82ZW_P-Lg48 zZ_52={mX#|z{#&NtNdL$x8e6!s~S%|O`0mQNX}12Zh$xxK0_62PGm1QS-y*k<8sUn zwC@R?M)_!awOMmT_4Cs21AW!|0Cgtc zvHw8TPxP&px~k}ZC~dLwjpE@VT#Qt8YBjTGe*;sU#dQ{d@%f6{_=9K2)+vQsO7GM} zcV*jcxTPnY?bo4r*5}=ru&<(Tn4Uc3;!pgH%;jYbUj7=#|E~LnVf){ic`=-~G*cNw zaM35dm^yWX=%_e)NrheE_)&~k!APK}zae6@55=13+Zb2kBQyN_4xfJoR$J0f-)+%l zGNdi3?UovDT%R>pnAV?8`R3+J?xIfNq^JQq&bG)@o<6w7IbW7x4kf<|* zht`K4qx^wW*26c;OrP%iv8PnFbLE%G?q8o1SPfL<&wQE{DEGa$Ed`ONWD+H)Q^|4zRU26N;h*V&zpQWGDiP6A(&W`)E8;X*~lt$HsUg6!^SPh$4@Yu-&?@#=Uz z?3lQRQd+lFzI2&tzTfJjtmJC;u&$LGqN+`!AEsipaXQc!^>Dg?qpXnYy(VY^ewQ&@@-z!-*8dp!!4MB;V95qDHFh#b)w_tiUpH9;n5}c&^r)SzUFrJ*7*c z>6aAAdVZ`yLAvQ~;>`b&+QWPdBkC7&S|)RbsACDM(XzGe9+_+KII{|48z|9T3_&$4 zah^R2@ACc#it@x7`LD!3J$-Vg^NPDo?$xsy%7@He%k+X8a;wLr2lu$h4>n43m+Xh~ z0$xPXqJ~zTQz6f9OKe7LVWU`2a&ZROc=vtBpfz^Zpp5hfI)f?(;Ms=T!=)ksgGUfKIOvo=@Kj;X!+-CnjE3@C;hY|DCQ zAAG)eHL}@2iJfLWr)6R<*hin`fshV|%V&n_!uOrPck29LL7(i#I7~MFjJ%|ud$F5` zzWcfbjUeJ4xyS!Wy=Yng4+Ps{27+g%Cpie`I`(hFk9U;SOB?3?rCO&OF;z4?t7lRd z{1#6xekbrI`c;uu?nENVML*`=nG5Euhii}WNaAVGpz>dv#Tz}!;yK{~Z(Lb4G_wqU z*>1cZeOYjOQcL-Ij0PKqxS!(iv9flUF{G`u(r&7Z@+=>7);g<%2n>??C=KuPMW$*I zK3P3Ji8v7d6=Y`NqOlNjeX4n<;M3S%t49@sfk9c$;SyLdaqm%jGE^jFKG|90LRF8x zjPK=~$@7gM4UQAagBg@uAeGZuh=Zv3A2NfT9B10kOfj*mLq9Z{p7v)TA04A3)E8e! zC0uhEDfaIHQ~DCeV-HcoO228ie@$8-{{s;pmy3&AYG>`=q2M;VG)O2X|2c@+Jla`n zeB#=-mZ7@Eh*WIA+&^n1*6j-H7=382QfYo7B;G8l%a@G{iEx;X;cP^SA5&=oMJT z&aOK_NKmVl$a478OeO(rFfkm2)_ewpcY|qm;p{HgKgC^XbQ;8D@!dikr9bX^@vqF*{_>7&p-A_K6_!lV zkuKQJ&y0T@k)dKfKlndhRJ=+r{);ms)XVNXOf~tUl}u(=0U7-;0C zkaTOZ&TM1#%{8mP@2M%CykW}HckK69Nz9??i_-gImf8iKQ59pu*6Q9aFq=Su#{UC7 zeM&IBEwB35zwzOis&*B!<6f3UTb5T`U1mPs;2`2lp;!y=+^v+ph+^(1VxLs18p_?% za~kW_U9T^RM(cj}V3!SxJM5rOpGSVh zlcO43RW;U_o;Q4QBPuqlfL|GT9^qpK%q$-0rNvQeRw1uR5Eo{iK_j8jGcPYyK9BuU z)haIQowy4BHEAM1a!Z<+k(xO^@mxXY@BT{YdBgG=Xt8qY-keC3~^S^oPCw%rja z7b6$F-`N<}1GDG1jK@?T&Rjv;ziWO?Ge1!KNN+b+Mt?}}EIGzA>EZXC>JDcQgm`bf zotsw1SS18i=uK~ZQe9pJum7It@&bo-ctT%Xr3eeJ$=hm#+&~cWY(WTfN%L48Gu7y9 zNsaJ|XNSG?HFdYO27A3K=Tmw^aUXRv`b26To&U9x<;nOOZ&>o^%IC@Jf2#x>ShNRC z6L=%6E&aC|x3LkM{Vw;y>Rn!{K_E!ab)c zJC0nbHM#ph6x-@&fQv;?FGXneDZNK$Oh#bZDe0GKur~;@u!}=vERx7s+dKrZB4jh2 z;(9)2d9gyWu!l<>dOnuH?Z;IVc)mhRC|Wyw-KHl4MG1dCIbo63{ia_>nMqQbsos#; zp9-Bb`jYVGb!o?6GB~~BC_m&nCR;?8c1_qKPn2XL2?>(1tn93n?T@9@#Y-HaVtVi1 zjrj>(=nqc4D%u!q)Q^8GY zw)nKEs&m%B9$z-7^2NP}2Ueqy2S5Onx*3!r>u`PI!-d2WTEgJt_mee9^+%iH| zmss*r*DJ9-8-TGqe750MSiNg2pc3$Cady&}VmUmuU1wVf`#sD~kW(Zg)vJ5Q;@vM| zq0k<0?3wP4RV30`gkmSxcCyA<#P24bYRn|>{BKVb5_u3ZR~RhW4Kr7FYq*!-k!~q5 zn5sHilod!-MBX+iqFvVb?D_6_fccVK(;Ii|W1!%9pI$2gkxbQ7$Qb|Tipr`f6PxHK@Ds}_*@jjc zVfKKmkYjUML;W$L>U%SgeaiDda`HnqhmgOrc2^Yx2B^_#BUge6VBwOILU{SB!a$8{ zaE^A7`5?khE}`!3-4XGFV&|DRD|Ir0eqRHblvvstOR&N7e6SKO8VpEhw*q3r{KIfk z*6yAm7t;F`0JQ#Ova7~a_E}b71g#018r2uS%>DpXon2=D=){j)T59J%ln&i|88fm^ zz}@zf@Ib_{SPC(3g1^gDYG4eGQMESZ(>8{emBgu(Ybv2`FMb1m=-&tBwn{WhN-I!- z32v^>go?IXb3$8BC$G2LE@FN*b6FYCSA_F6rL;VVqDlBG_~e#%tn-nZ*0r)ElWq45 z{nnqbsdhq9+lKSMHG0j9cCzN+hw2{y* zk3P-XPt;}RY0}M1E;!34;hpv{XB~!TlH=KTN$q@*X`L4|hR+6AlzT<9{%X$@hgd7# z-4EVr@$+w|tQt#S3GY-nu`g>Ym?!W!lXQ-(skU!@d%5c*!Dlb5ml(g~;zN5roP_ji zGExhww2Kh#xLW-EQ@Z^HyUV3t7QYoa^!Je~A%R2HU3d0gH8CWP3cM8_E`Odh&m+d) z+!o&!TT^%x6$oK0(&y`{2{x*D^~urP+OO*pPXCkEcEt-98st#@&>kDISmRpx@z-YK zpMQt-Zkn22z?nb<=!fZ1jlAnS%vK8@-84(eKdfoenh{M3q=;d`>B|pl*|Ec)KgxW2 zYsP;Mqe+5ymAqCojOCu$xp%5O;ka{?^4!>-=bG>`hvS=xE^hjjRvl;`yI=>nDIC*c z!UX=@XC&f9Z;v6|_{QErG-KY8c+sh_-i@QPL}PAHp)e2s!CG8Vx19_GI$g;Ly6M-M z!#?~-Ot(^Q?*Q43z7xpYu$j;gbq9Mvi)*gvLqJTA_0?I^neX##@};Z&{10@qw+LD= zFGwX~b?hy)NgW-1h8xLlDV*>!ZL|8=y%#Wb!z`MGNbt}lszH%HmSQuFH14Y!U zE@phM(kJ~6AMsa@HXo^zu+Qi=wO@kOk&*D%;lCv)!O3DK$5cMR`%1LG8}G=Tkk;k2 zRvSe4MJLR?LNG>kK#0bIsIk0K26}*SMS;4N^}I<;FObMLj;_#`HItG5EP^(yQCD!*idoJRLFEKEamKk(a}}6NkWGhv7=NhXr)ib% zG2N9oOR4_xOVc|y1n;B&g@dJ5*CU^5{W$Gd?PK`tf7g2>JJ)`RqhNm(gUp;+C zkg3fr4)aIQk)x{|4X>s2mRt`nLK)tAsJEQGC^K*ODB)f}m#oz~R0%0vBZqmcC*z2q zU6fK)5V{k>VOkjNmeb~`2mVC2o~T)}*xiuYhhPy{hyzbwnMyKlLnx4Jy8Fz$U*x~5 zX;&e??6Zv?l&4=aYV~Itd-%x~yuFOOTp{q_(c z*hGPpXr#AmN?ZX@3_UUdlW#bGUA<$URd~!Ga8M@dPw`c=szyV4aH@Bu1I*eEgN=kMZP2t$YM#hKnm{)&`WAn-KJ+ zo0vq+LSxw&bHCQ(eh78Kx%n_L;+;!8=7p9vkFnKz3V(GK`yaIp+@B2H|3Ds<1R+QU zKHU3M=&0MEW%$|D@54Q8RcBJ!_dyp(Gs!{auz~~ zKXfp<+{;mos(JeFZL7hdc=cf5f1tQ8_@&aysl1Jb2ClAY)GDd5DkMoErBy?@#!j&f zdeNu$JZ|RM0C(?sW$Dko>Z)7Z%59-pC%!+rW*Og2{=N==?J9w#I<_@Q0{^L>YMII; zDQ^Cvm+WuR*~xF$g6iH{E@5Y==Iv@_3c!pl%bBewe8n90DR=foaOOA|N8PBDJ%4Mb zo*%o{ef{!{Zqt2^W$i0pz1Ezbe^aZ-SkTl8xfrHRsa>ZhT6c5o4Yac{ow@JO#R8ss zwS)EjB0iwEFa~pJEdyA|%mK&u!DfV_a?%$8B6R9(Q zNuKZD4R#{?vdbo~4Np9;z#PT?bZhn>b?@(1Z_Zg`=JvVgbvmMla&Bse+hzKxjRNxw z`g6vhBrd)YPpI`_08s(UhE$8;j__t>QAv!pdIec22Pq3gf@65SCzg|4QE*09J@IZ* zav+WgB)_V!2bcpuXd*~4xS&#@6-KX)pfbwapQjU~;6XB2KUiaL35uwY2p|jw&DBX* zE7ufEP$)u>YQG>c?b)in4T5@G-P(J`K!FKlj*2ldAK-;C0KyY_BOo2|Kko(}vTFVS z^YrHkLOlVnBqSb)hOC-VD#R}*bVIFc8o-$}s|EsYXgUZU6j-CZ7SQtqnC#RJ>naQ*AkBzL z47Dy^Ga-WbMlxy2#aAXXFdz>$2OWzpwZVXtZex0BOGEKKaV`x6C)XVC3Wwk>!1Ew} zrTu#T)?~5|emR=ToB`}Zpu^EqKI4DS7F{Cp2SsyVF9cbEkRx`R)B6QEc=mKT-MqUS zpUMNiNAhpCmV6oA5=I;ROVS8sI{HVJ-hlJ;4~IiCc{Tn~E{-{RT{s}O%(HBGCQb^7 z`B%av=dYkN4A*<_V3nZrvEpGfzZqDmJ zIn=1r7)X3L_qXB8hx-vXOi_G;$W|mzxZPPOLw-A4G(q)Iku}`bRAlqBIw!?wJ z4bwd`>h>u|N#vXg?m0s$2D6b4;o*ZQu(vah)3_$m@2MU3$kje{{>fgjdPi^8h zQY!?V;wMW4n?zJ+FW=a;p^hj8KW@e{Z&)Df=-=0Ji7pktJ#afGex^I8^LFFW{*QFZ z00DzSNjtMSpvn=p7uO&Jx+#olsAVcCnkMUZ1T69ijRDs&(wEAlOGa%FCO>WIcWoJ5 zfKq5-PceG8W-&-ZpHXRSUNA_aB#MK&!7;l9cqs;osoQB{+8}OkGIuta&0HMR6>8;< zWpbp}6c>nMxdrr-`D$|;@nS-0tg#6oJ%z6hatw6>H087hS5gM|@zAhA5JMK@3h70> z3<_hJUWDD(6z_G;g+({=vPi*TdLWo)tGLEcJAQy*O!ok1m8iCl_F#48ZH-+92{)O{Vc1GmKbt zmaF4B3d*5b^t?^H;uPxay-1swK@^-#fWKTQngx`%Kip6!q=N_s4ASr;5*X9ENd_p&639Bq)LkH;rKB(g!+Q7V3 zTqGZ9Ii5EHit$lPZHs`-6jQ-BVbfV}L|9>e<>9YZiDDu6pqIVF5hF`i@be7u|z1>k#L( zRu%AYmpCmLIEThn153D|QjB5nhLx*0IrBL{O_nm_Z7S>lvjU$rl@2egQz&uTIt2Gp zB__)mCpi-sWty#u;nE#$O4_$%TK@zo8pZZI8DrM5clU-dzQII+1MtEC_^KitN?OUwLFfaO5p$gr1hpbp zAM|-a3@MvRU)E%N@_hp^1!3tYvVoqA)>kchD~~pr;&26pTE}auTLU?YFRbFAX*#M` z%3k1E;4275+N!942USn3R=y%Z-eL+Zs4T>UB0ma#8Jh?559Rh2gKQY69+oVD{`kZE zfG8jcAiK%h(4;|8=Aivm(+*xW>n1R$37n})&iz*+BcGU-c?p}3l+k8#RS!%$Be=tg7z?`%h4b<9fK--znZm$2CEl{ zf2IpY5pYXQhN)pdL7)PHv9J7aowNeT9h^yo9V+C#h`z?9QUF;qUj@_?aCQm}eJX*J z_bnUF2=CHU049S-Ku_F@s)eF(g;iV(#H4#x3hstsm@1oZONt?q|FC?fKDvd8AJXE0h+2!H`p`N^} z=XNnV28%EdQC%RsHfTBewmZX#HIUg7VBaUO0jpasD3~8F6;kA{0$vyvEjE3oJw4)z zeQ323?d|B5<{pi7H86h38d3tn``x6n(=l`lfzE@XbZo(->5jv4Ei%8&gA+SjKI|8R zrOg7xuUIYF$J|)6bY^&E>V=R?L~0lJtGB47Hp#X8OI}s0vl?Uk+H%b+d%&{-zdOPx z2|DAIS?%M?AxS&;{sr?d2y1tQWPHD(ygEbv|nk z&uMIRetTa=S9nKd{MA_x2Cr_8rOAM4uI#bar;hOt>(Z(ybs;TOLjC%~cM)om{Ep!) zEQhdjvoQVy_M}*8*4Y&8-AbM#4%yQi-TVOIv!Uze-1Zxnusi>Oeth}epM<&T`22!< zdM16f&;7T4oNy~rP<*0Ns($5>W^7qN>|bxT9;CeEsXh4EU}<;vSYWV zbO>jDyruIVmm{%bE&qf@7_S&RsUSfv6Jd9#zC0^h zNy3XUU;+XsVM&9^RAZUS{Fyr@4VPn#&J;l9Ip{Gw9VdbQ{W3duLO8kXAlI@fa0vLU^01aH8vmDWgkU-p3rA1*d2J(u`LnRLNO7rm&Z#@z zHtAmdTa}HRZ#I}N%LB`}vzoi)en_9>z~ zm#>7Cj;e2()X)IZ@f#P$Q3+*1&K}-8D5c6ojaUWz3q^d>UkbAx%%BlYF|2s0&UlQn z5`_=ojXJbt@K&X&Q0vPn(Q(UvygW8AO1l=u4{&Zd)jP(~fuUYB5Y0bbor$%~DJiJ* z;sVRII6DD%yh)AQi&igcRCAC-iHh6DjKFLFU)6b&5%-IsRZAZ$-6|~hL+PN%RTy-@ zokiWF4_YqrDd2MOySvR;7-WUQNYUPi^@IH_8yUH;x=gUlqZ3wV5#R%^4g|wbBFJY| ze-OFu6dSG60p5c^WAuZz^%NdLV@&fs;+Qu}WZG?R^#4Vrp)qvpgS)@p*&u&n{Tg@dWm{x7;I7fqo?b+Lbp50hvG=pY_Gz#Z*(hJCbiqc-5xo&jLPj^x^1&t z(N%WsUPJ-++QP~!DV_g7dWeWJR*RQyoWVy{gc1ADUq@443Jn4sVI_xG6cV+*oEoGK zY`g2BzFf}GKe5x8qZeT3ms;Nh6u+(QJ*&OiuT+c#jvH*w?cRS1$hoZ*#ZTvJcOf49ndiQ zsZW1!J}!f{m#4z+kGLY3nFGNZOn-h{O#07?{mQ$QjYtSQs_k`ZX^hL0j_!h(CZb}_vRH-^%x_UDM#7K_iK z$iZ-3lu!inpps~D)xl`b@NU>R={eu!?eoq}rPb~_cjq&y?a`Hfgmm>tgk5ET-kWa+ z@r!nIkOSJ~sJt(aqY`9_U25UfW2fQQxBqF~(-?a+-tqX7@Dy_g<7$@Xt4AZMpRI1) zJ#!nbcr-EegkihV{`1H+yPCw{c8POF#XbAiTGx;#n&_|9>AtisVZ12&Hjbkf@A1Au zq}glyf(f4usdK!9%YQ_)jXtfQPj5YfA9~-&x?i$4{62Xmpfj|>VZzMU0BZjk)o8@k z^VGulL)25cewObhQnTn+L8Gx58b3IoPVX0bcg%T6^aUTgN~3;P8g766?jv==|Jel8 z0BHxIFl5Cfj)_(7vfoHG1*_X??m!HM97Wapd?g}%W2%U1-d@79c%i={$u-7eaR2yg zgIfavK9I?v*!#Fmc$+QWbE-sJT!vMB-2TI3HMZ9`6LSetiTD(Ly?g6(FXHC2tK{z}?B zJ6Jz)>Z_SFV3_(CL~}ZFTXZ6JWAmL*f-Y@*Q1Pnc*8~NV1h<*UZa>#&5FT^MYWB{K zM4cpuy{OmR&Q+m4|ADG}M<1Go<0y*$b}GfQE4ld$;kuuxZu&NK%~skj4r+-DE^pC= z`BvVm2S_m4dM5YZyyFy?Z?w<*s|4igYwM!~6WRy3IDUo7ddNk68>>yOlo$9{X8m~X ziqFW+!+!8HqK6TAD?X@t;nN$ReW=}7?v8NxfZTmEe7y3`4<;6H;+t>IupQQd;#)-p zp3C=>S`7aKaUYa$uu`)WK!~?K(2q&J$K5STrfvtR;!n4TfkW}jZfm0Z0#nckq!5+Q zOzH6bsL+B_Np|9s{zpPJ{I{xWzbz%MkLK6(aHizgMCwv_yi+&W83$bHjKCGF3>?4M#4vwe-g0_;fjYkX7VDY*<#Tg>1%8VN8OMpj=EA)CBwU&1bCK3x+zx zyUA}$UrDa|-KCgRd8*nR#3kp(k|m{OajldO<_nLiuobfZ43Mqvgq1me4~7@ z#8}zsgQ7qsL*ZRhgE0o;0bHNri|b1Wj!*;tY&MGXBYZg5U|_4U!#)!s0qyeQ?h0JB>nVwrvUA>=O#ZCl|}Ub((l)ACxwpZN+B(WOtzY5;D#C$L=1 z_O8WbTWx!;ZZk&uht?ySgu1mkmhLzETl<=UTk&AJTjSKNT*?^bE5YPcczEYd^EZdX zaW(kRy>uOh2E2@xd^VAv z^H$sbHD;T!Ij|ONGO99ujyKbOqS-x}`iLo7zpRtdB5HLx<5ZmEcKCJ_(wK(7mu2d-$OA0EH>1ZyLbCAT`Q?j?-5EmTL}HG+~A2_PYDNiu_khh%PA|<@00SY*a5jKB?rd37 z^-7XnbSDS>ZvdJ436;9_V3Ks6VQ~g83IiI%#?Z!a9Y0<)Q?q1?monLId;A|r?POMH zsB3G)r!u)b=qLF!p>t8Lfj=SmUPaHo|9PM0y`cj!)IStLPNI^b{QmgHcQv%+w|SJ! zAOlU-G4~w%*6@UlV5EH+7vig!gZnEDn<@$R{X)jd9A@r!a*!tqs~krCYBqNg)e&AM zSY~d&*D1*W4sm|ub@+!=_-g|eAW(P**0{N9ksPP~HtS70MKQCdsAJK3+|LD>2!HOg zVO0i_%}e8S?b6yZPQT{AI4oEGZKTPA3chOex#}8AdEQ88$FcX^bBXC;P9Q~m_DNL* zC$7OdlI^dB#QL>Y&Va9&UMZoell-jDW4)V|AA-__wobTvhd!2rW$=^?@ZmnDI5E}bQd_l6~^+G{swOc zm5AX*`)9lhl}NSOA{7h9Z`JKB=Y9Cbok#KYt#sw&*Uj!Ugt5l5*onBwW|x;WvLnx; z;Xd!=J`Xe)uXk8mWtn!eD?|POE2`^}(qieiYT76JYebnN-EaPntd_k%`;|u9`WbHF z+JtFHr{U>tXx3k`;q{r%0=L=1-P(wc0*`~VP?Wy`d{;HD;m#-O3?LWVMGfei{Pe?i z)(0FL4SW#NT)tq$jtytWiG`ji{k~%Up_vx(=8umW4r>dkNY(4VM-r z=_C6=&u{WCr#OaVYzE>EyxMdE&0LQn0zJxVcdbZO?RC=-b-vG+K7B;i;u~HbPGPe~! z?$i6gbNZz!shl0<;);+(#p_*zeL^9~zcP6Qy!yuBR+nC=q?a?#w83wD>D+cguuocU zHSu1Qo9(*x1_Uad&!>V!H703`P*1!TFt-ei6EM2iNZsNvzr<}4St+3 zm55|zB5LldU2tT7>kCw{#r@pz?J_X_Y$DD8;YiNlygT)|*u~N+yChawitdqw|J5`z zk;&h?$2cX6cOfTsZq6ID-4<^U#|<+0T`qsq&9316GBwjzPY+AJjj7KtM5@_tC}$I0 zBdyKlF5Qv3@w_>W)n2r4b_gdhBA?cf2k*v?7|F>9tM-X$-j*G#TcKV&EHeIsim^@J zs}01Xs*}9zVUM_&&{h{)-k?#HiNKQBnI=t%kj}JFeYjXLAwF3OY~wk^1}w8bTC7KS>>mj|Sgor~r&KPT{nQ>xuQTm4qhwFvJPaXg zI@2{|3WaKN^2S@q9u4Yt1s7+F|K2b=)xCx`o`?B#=Sd7=1b^Dx;K&dwzmpJq{KeAm zmV6i6X5XESn1ezc9_wi-pgk-j4A*rZ%bRjP9VwOZR~zO>Jrgms1M?3{rcB$zI`6~Ot zq&QWFp~lDq8ZA0w|3>i5U>=|uB0387#F%{uafsyM+n3mhA=1j;zNGqqXam}mP-Cij zXNgA4(=V4ZVjrR~xwk*=SoYwvF(_;Wos58HNFk_d(tC?bSSat4MjKG#>1x%jirz1s zyX3Ndq5a-sr&Hiu;$W89Krw&2Q*!4zm}aY62AIrX@j+h*z7t;19By}!DleM?3iX=k zN^98=qXEsbehtAVoW#lRI`#9CZmsZmBgRnsX@iI1wG9%Cd+5pPa7T?+@efeGgO;k@ zORM*sWmfdPMjmp1G|uD7segZk23MXUT$pqCsgk*9iqQxHa{F>g$f<)U$(5dGbyuD# zWy#(d#33x=E9Wn33eRj`t~J8+#2dS_nC)J*-gCt~r>jSsdR^BtQ-ChqNKfu^w>yJ< z{hei6uoBO(U`KYA(U(x=Fwh+!rN{kx*cS8AS9twT6jOY-><8srzUkHS&43Dg<7G*= zgQ}&y>aoTRTpo~AyvONGKUiVZ*EWC;3K5Q(%&Csqu>6tW8&VLiK@#S9@b-@8XC%Wm z?=+mp>9&q@;V;HNY=gFukiDD;SeOX3JHu=t|LPQOx6-KaqI>6~KCdX7b9oDYy5SS+ zUr9BP)m7_tORdp7qs5~Ih8b%U{<9lvdqzGy_GL89pnZY@`vLS^BI3omw(o$@+f$-A zCFng*Wu1=LYemqk;|ZsQj&m0g)D9{BZs{Hn-j!6QTZL>%x|;u8Oz^&*xTdVmm+gag z`rYncEnub0;&~1Vam~kDW$4#6Lf(ncjB~JEW+mP<(ZJpfmJ9qDp8v{Ti)%ZlH*@pw z#JonZkNr8^d6$+rJM zuRJ8oz*wu0MO+5* z^y5e&!Lapq;Q`cv(lrLi9@nCQB?UxSBIRBL^pN#hS~W(me=Rc!x;5aSA6H~ zTz>m2-0k7B$q>NqCE?8*WPEAI%aSe!t1RgC@atNncJOg!Q%R>qa1&0IbniCuIrx@0 z9>2f@H`RoL$gS5cVoyY37F%g{O2rml8oUW3;?Hvh&wUx#MS9O@ISTb(&o6)JK5{SC z$6lRR(k$aT<0}6)d(Rp@$C2~dO7GJhuAE=WC{tGDhmq;17U?o!{S^u{=!XL=&M{)uE3FwaryT z^3RbS+sJ7+6+PWu@092jfFZxg_O8et$AJ zEj^J9MfQ3Xa_v&5Oiw$m^fQPrt*JAO_--JPLDANyzRF6qBHC9BWX&g=gYL7J!S?w0 z$rWVf{}k7^=lB3M4@FtHb}v3KkO6;xEX480o25Z-&5qs1vra|qN55)GTGy{>Eca_c=V^q8)svMgQtd*P$^p-l6b&w&E_G~t@M5FHYi;;@=o$i>M>Pg<+ z?>NivxOgohj9r;+uF12bNpBcYDM4qkA8AttjNjn;?p?Xq()?3}D`i!gx9u_1zL_gQ z3-#%eux90y2*JDZbpbon4Xc*drg0oWDu;ff4nEBmitj%(Ex5?{Ac$`&b)B5PzfBka z$1;FiRJix8qw*ojiiG$0GtrPLmMo2AWmF6z{U@TPo1QK7PlH0EtY)!&`qZ)OMa@CRJK= ziU-0!LyMOGgxY-3uPI*TPH)50)TY99%({!z?f8FhjMgyMJ-pl8eUWs->U*{DE0Yfg zi8ZH=!E?6TdfhLd-deCw5{>bXY4+aAi=mlp^WEa zpF~W#rnv!j)cq}6iNXP9<$F6TNs9MOpMQC|E4c2MwB+2oJw@aLRXsrM&^a%5(Gx{J zYuLXnuFdq+UZVo9>SKjH|!y z7Rg%Be)trd$Fbd&UhW;*HYd~8TdAz0$9mp8A3r_cqqWMI+N#&Z7QLip&Z{n6UOvmxILl0Y7ndN;b( z7y9tTe&y3-?nU;+$K^W%1u4TjWeyr|kq$2d4CkxEfB*e`GFHa7@gU;%%BJ+|Gs}h3 z{5M&expgN-g3&KHMkq@ZF@oZ%eYN+>@}Bkfqsq>Mk!P3hUAl&aSNLvpR$I*r_0%G;D;PRd6@*EUV_Ib?5dE=^3PNM=)qF zXME;sO~u!;qq6pavd7BwVQ9aefC-S~+&2$YcGa>4^U%hkt6PD}mbD>4!$x!Mw*gC6 z4j(KVMbrjCNy)Ny%&((Wa7n+cC_<_An&MP#J=v3(@p?;t=RyFayx8(-Fi57NK&uqn=oY0pe0c^b)P$Xj&!coKuQ7l#2ShUjn9Nbbc-m+c6@sh#Y!<5;iNc^&3yKct zgL+P8KoMo=EP6ruTr4w_+BpoB(v1Wmu`8rBX3L~dxE7L@YX#iO3M%*tUPsUXbtqT2 z+%5e}d?U=}vL^Y)O3|_aJO%_I!XUVSK4}o*5=#f+AwtU%a~m~W2Z~YAl-GeQ=LGYm zJp_b71S_@`V>%Nm+5B>GmA~TuYg{M;y(9z!vkEzN)tEkH0}wF))jw;1yW!N_gmVka zvR%spY0`lL;G4>^1okz3)?fmanULY(iA^a1vSIavfW~lB%iwHqw^W#StQa##vepXvE?L`2j9)Z?8^#9aSrTk5?1Nl@~c}# z4870sW6s6fkH?SG{pdep76v-;Oh&EuOZb3x$%JaYt`Lt%-DC<8 zz2QWw^y5f+cf{WQ`gM$R2sQ17^Zm**^B2R+;(q^yq9Ts%YGbe z#gBb(<`uuLRY%Fn`x;U5!+~toepp;yE}Hgqs?Pf^>cx$bXK&8!oQBo4!ffvb_TK9> z&2$*6SF*eFj_ZN>+ug9ST^ypI4r%@NPS>P>0J2p2=U6I0HWIi1Hv>1S^NamsGr?mNMkbWxuB~Ip zz`SFU*Nryn4_?&=omgLH>n;~p=t$i#KN%DZ!Gk+@w_*C~JEk8ddIpS50Y?c<%#jrZ zin;U$(x*(z=Y{XVeXw|9IZjgtu^d1m=z*1B;T7;tW~A_ziZuA8=+Iaq9Ru3vg*cUg z7=3OsD=d1i?}lvRT6^Ktkrfn86bDEsm)vAl_|g`lRlxu$g^6B$P^M$mcp7vGZ^huC z+k1$kK#JE+ot3q!2}hU=&sSz!j{5OB230pG{4EL1;?f&Ug{g}NBT&Cn_gQnSRm z#=xn1R!4?9nVB3HE!$5Jf{|pjS--w_#Gf^IXQeTC2g3lh$^+K%MYoKc008R00l(Z) zfF>%i83+AThWx<+vfGOY znmkRfCn<^hIV)U5Si1ni@V#cUb;pWGU?H!+7o`rQk{FrhO5xz*tuYziE(iH(p!8)8 zjT9z9LHe-vLvRcZJeP)oGcgX3(kMXChE5DLDAOmtrla){n=A{Dfs#D)%cW$;@#>Xe zP=DBPdq+H|k@^w%!4yG^UyxIXljD-rgk)klSVypuoXf#VTY%(e3a?w1)<;r|@f)Mii z7hY5eL}i{v0{dh#ACPY9Rw4L*H8$mz?}AO!5q!F53N`i%HEgl+jS=Dlc$!J{|L%ti z8v@#_iw#Tx?(}l3)g}-C+z0Yc5FGtJo;opy+tD2m7y`UEIDu6SL6tIz#tye3yy@k; zjcKLq!8vH6V0Wk$>m*3WShE;vm1IeJaTmvA6~^Qn&`wS}4a8m9%4n5RIV_~*-zHEs zB#y8!f`l@>FB{THD6PgAkP<7XoDLCP0Mci-ZWSSydWWw56*+tzcKh zmuuZE_Pvu%#g1+1%CDe2rB4aRcF*b`Sx=u$lG04b=RqES`7D+nljp8+T_b*ZgHHB9 zo?7T+nvl!=*pp_B&icYNDG}z97MyeX+AB5o%M-wSbIoS;f1rhe`+A-}&UC^Y2jNJO z?e+H;khLXkRwI@%0&V;F7?1IhuM^?o-njY^%UoCZ*Gk`L$bh6H?Z4!DVe^m8x#3?5 zJo6;G^4vUK)t0MqPaRJK=EZM$s&vnFRHAm`FD)b(1TQ>@T5=ZNW@N{=B%OiSmYjzv zj%=5ZrWR*aQAD&_Ti2bC&lDKqtFi_rU>kBxDC}lY1Poc-Y$$)ifDLs_D+z0X&WN|VKH=Fy5Nkn`&T{HsJMUD%{52fH7_Esx4p zG&c^#F~IZcDu_{XHU*PX|0>*-Z{)5ND-+ANgzp6K%h)G;Y113(VOCcbnM3wVI9G&u zOW4zxLx(j84AjxksW`AZtxa?6Ou~qj6baY`FZ%)ERE1!-07JEa$?W71&0-0Wf)!0a z*zQy}I+(qJ(Ok(;tsxB+9Y z=iJ|=A$Z1#Y45}Wm68YQoGgGg%eqe+*9Q~8GPx;HFgmD2nUGJHE9GV%Hom4Fk`dM# z9V)GI&qLW(2=0M%Sdq^p{`|!q5em;gs%JM_;Ugql>yL&Os#`vo+M|`Sl6I@veiXMQ zU5^Y$Z#Wn6%NM67N@Q~TYvsKm&&6y)BL4$RKQW2cL3N84i2u52^Dk_$c0DzDwI+}wK9{;!-d+>;`S+I5ya8Nb~(r2YHX zsp^JCTYi6O-$i0VUF1f1#?u{>uAuVM@vD^ctlw`azAX;|n`)Wa!tJVl%|E)?Wo(U$#_|U3z_HeO-*QFV?(DJ1P51fd zdCcKW1+#gA#&XCKY^GMQ8#RgP9~RXr3`H`izR!5|yMvUsPfmQ-^RWQ9+g(jU~sDUl3_i2aE@T=APGu*+uKq zD8A>u77R$`YAN0{ilX1v(#h!~zKhn%`ClY%f?f)T@Be#wt?7RG?Uj1i?Gyk2E>qgL zWt%MiG^>a~EX7E4On~W9lYn9U5>kW-0@zAlA>azlD&GbjeX z=1HZ9r5yI^XacjvS@Zjuq;D|k#}@9@qb;h1$m)1$SNjLEEvJq{8XO;fXbnF~J|~7f zp8E8r(dW?tM^drZp<0gq*xxG`v9)D!POK6t1YTC*PVTwrT7(`p&-!1_n!^{0SEORi zb*0ewgee^F+EtgAlNy`GJ-y=uBvJeF((n?eTEwcp^LtIn?AiF))|@)ox%s}ysM6Ms z!=nE{-zs)&^S68s=qb2LgW-Z5-gn9~g;UL`PUUZr&q3MoSE6Od@?p+1d6#__wqC!v z_IisaF~$%4(}gwMxW2`t8FBA4m)so15o|(ytnR$Z8702rrMOaA5^hp0%FdGxRBNwP!<+0zfp_HJd zIE@NTx%w}$OI+>c-d3KhlI$d*{`s?*CdwpXm)N4^&X>-X+`i=-QywDrJ?ZuJlR%aa zt0dnhRIKokq_-m2Z(;SvrzXoEM_XjGeeROs+IQbke*Nm>m)L+ABk+AKjX8Nf0_Ml| za?Eq`Eh9nfyPx5|ERZMc7gvJ=;VGq6ld4Zc_nJyA=C#Tu9(dgzp56V^?@QH!w%f#3joKxRnI>yhv?)YHi z_JwHe!cphPswoZUyC>t!bF`I`p$Zx@UHY^AWIfkJ4FD3)shtOZ-m_ zp5ZP2iRm6&&q7=pwQox<9K;drbfs#r5nh1e{^Q8TUJ<|J@X6lVHSKk0lGeoa4)gi; zFqFBWGIfui0Y2O{Pkje!3KsoaEUP?QLCTG@{|qoCB%+}N3x&3 zWUuSdFusxRQ4>dmmbBN^s86pkzwHUrE5Qv`|EqL;iOu^WyeQP<8C<~@b*Z^&Y= zmfV!dWkAKBjqP4UYE7Up)Z?QHT<<|AC5lCrQH)0Gppv!egX*!Au8)?Y2QDbEV&rahDLLtT{&Ruah?5nfGFR!&UOKL|xg%|3@bQ!6Q&k`rsayndBZ zc6j*Aj+K=4hZ4S-k!|rSs=Tn&Uy6<~v0Dc2m@tR_#-74cjTpjHBva$kWhVNRXudc+ z+x1QRW!)I(=R0mEYo^;%0&%a0;ebo_`OSw0kEIsQ6nADy zSSn_;RQIxv$H#}KyKXu0$28!>U$O5V9AlD>k#qemrc)0???o>Ed##jR=bSI_Y3cY1 z-QUO7-!CmY-d;(1TXV>E>+#~_GlN0vi6{`u2sJ0Jxc+VMhMj4!>AzxbTA%iqu@rsp zTzUhCH2O((5A^GhGx4Bf_=6;4rks^J#hT`c|D)(EqoV5CFg!yIjldu^G)gHU-6bhG zq;x6WA)OKqLrIEA4;`WmogytEDIqlyBi$+QcfLRT0oGz|X6=2>e(w9a^f-qpiMe3u z1`5x9VYLs0riz>e!>v{_KPWrO?BnEs@QC3{H?x_BC#|T-Nhc%gPa%d;4Py#1^4ygW zEe0u23c6Kan`0^!$9!`io<0B}$RSgC;yp?1$pk8k+u^yo4%}6s2A@zGVIFCir4cP? zGdY2W$SI(kY^q^A6#;1O9=8ahLW2K5H8S4X`lohf%V~LbB`hH#gw947=%Gu-zSS&o zv<9DX0yte;KUqcI-as~1kT%GJmt~`09g0xmhH1XBRm6^o(p_sxPYqul@2gX`!&@By zVqfo8dZ3r8lmX|p$x2QqQ1=~r{q#1fca33Jj>03|dNxys_Et_8YY|==IS{mF;(X-G z@tvWVd$)W@{&?N0$)YcD-gyGiI}!A)_*Gg z6yGWaMK2TAwZk_Sn~Iu7xsLOzs*W;-t*2?7JQ=+ES~*1^s|b~?>G8gF+7{k?74g-yp%=;W z?Zdy!vd_|Ma0;}U*jS{B+NMSxGd{o9pI1bo(j`Nx9K^EtDqOLR#@fYzKz2^uQiGUR z_KPE)U&&(T-oo21@+l)7u)%rF=~}y8guiskK-(8ZOl}$&CJ-DxJtX zdk|6nJQk&lKW+JHkKUFkefh=Xi89U_na1Jq`)t;kEYTfE#N@JMt^jRS!F2KE2D(@# zmAuQ9A!_Ut9bfSK-Es!~f@Nm1;dnn5c`+88Rf}OE!0K=7<;sr!G9eM@pMb=%ulyL1 zhIw1e3i=f+h?%yPKe?wpDhlNtrr#eka>vzacrrO|D6WXux4-(ZmKbl~?`F$fYH%L$ z;7)d?P^F>8fFrAdi!G13o;DkMK^or96tLQ>7ef4i+Qc z?(x@BX_Slr@32Q=S$pJjNhw+|L%`nl;@O8a*EL-#f|Hqnt1}nW8(_BFKZF(lFdFwO zgos72$z_Q<9-}5eF5qZ7o(Dr=cB8d7(l*($TLrR=^_Kc|M_=&Px*3ha7 zbS}myNoKe)XN!4+kKTa^@p5D@Q2YWJHiP)&sUJ_4X7z0`l&bFaWY3MU)90hVLex7a zT$9GSY-v?vc0oDa_fYl%*m3n*K6+<$p^K7B-u_brG4jgw8+D~*F12Y#Zqb(?HbGY{ zNh~tQI<6I)e_pq}li^$ccWXC8A6}esMLzZ`tiV8v#cbfE3J^oG$6iWW?*9Ck5^MzE z$@qe;!Io^_tW<#z)I_vsriIeb=-%wm$xU_9mwtl-`)ImNT^i?1oNXGH2;$v`AydypMLsuu`~`zmQA2E~^CMlnXqdL(Z& z*@@BK*s_2RIi+#i(5VI;is$lI-`NvdjGTEpH09k?deT&<&892hOvCXiSxpmHKV17m zp>NbQbie_o_eKx*x9?Cn4^GiGJp?6d&K}8ZGMDjY!X@!Z#|4ViH^mI(4Zc4@SquPW zvbV4sgBhk45iql2I;&y3c<3NnNZlB#D@@*pAjY$uD&(awGqh+@)AXg#Br+#q+=t8Z zHmR0>!#ddN)&q!}KzMk$fvN*&HWY zQXy)w80-Sfk5D4uT-=Ozig1^(R(h9!e%Z89iiyae?{FE!|(KGF{5z<1eZ=-zU? zSoMT{&Y*Prdlh{f+ny)$#{g2T|I=7L!$XeK3=yzIC;cb1*}j zU28Y=+6zl{w`2xbEk3a5wp+8_=^ne!ULxf`?{D>Yw)3lc5pjBJ3vSA#PhK+dF55MK zUT*^T2X)^)YGQ^?uH_#c^wiwSC*?oPiQ(Zh;ckS?@bI(YI}1!^9@Y=urt zLm>y;BFMxq-DG(inK>st1;~1OWO78zM+mM@E=8%nEtE+kqhCRfGM#*tqDeZErZOO`ZelyY zJ335-8HG;uoF==Zlh7EAyk|g}NIN<8ZRFT5hT-c`v2kpPvW+s0_6vnu@$?8;XGJnF zW&Zp7I{gh3nJ_M+uGxEukn~(*9Mclrjb2f>O;i&e?AE9_@K<$=eva^E+pGw|)7eI< zsI7q(=Gl*x&Q0lNH18js4BoQ01;qTo7rJzb{n!5Q-4}_PO{jEUW`gKN7H1=y9r&5@JNA{w z?|eNgo0(gy{sS#AOTD!fFzQ0@CYPyyWdRw9rwgs?vVXmBLh0ul9tEDP{&P-Nxgjp~ zkTL1ZS*Yf|sJBfj=DS^Q%RBC6-&agQ={BU;%^C-8Si4;RXtOCFtx~6@cBc9Jrv?Tc zlXjyb-DgRy39l#buR4+O`#Z^L)0L`zW5k2jrg96)eIYPug6_OUN^+i8@un6KS zK)v|Z*YJXxqn`@%?ft9QXn=`GT>G>>=8y8`@a8|25CbQ((1LJ$$%`t3D`oYxh?%D^ zdVA_?)sIUG1A}+KG$%Zl8!1=Hekbxj4`vF!b*fs&FVYN6q&LK)^s?7Cix}NMl?)cu zGk~{|C~KNW(*GKD_f2r-CjACl!&ne2Go&AW^Y*eKdeK;;OJ%C9rc zQBoXK-UMV;{2DRy=OqjN=-efoSd^@MRweEo7)9;B!M=Y{)BTm?=6aiU(SI*_g7noO z+962%>B(D3>-Bo$xWn&4YfGjz@Ai1o|7Pn&iEh1X=rlBrSa9p!#|sh)%53TgWY4Ty zks+|)sn<<6nsi{S^IM>7PeogP>^-SFTzMR3{5i`~E-r2G`Dv6OmlqxC){YWLIg4}? zi;wdQcAfnP+S4UhZ-;M!YVM1KQFg^aBg3a21}D=C^C?-K&?`Qre3`)tZsrda5$oW$ zd3`~QT(>j%Uqyt*`w3T5R8+|y#kiDk#mSrXt~>rh zSv|({{#Vq(N^BBk>w&IYA)mKrX}5C8%V#=%$%rvv^shu>}sK#IN~Gw1I@f!;;{i$ zgj3_B&3c;wLZum}nz4*yOZnQ+ncqBsVpApFXDA5_GfX11cy_E`J0ebpH3&M!5Tp*h zfUO~?S<+Gg<3iA@znOHIEPsGu0v}mprz(x}P($(E+0N(AU;_~48hBSnY~*){f#uPv zCXvrCD6&73Qh`v)$S0u7xQ_FA9<~0y$^?xQagEQ?P`P^V&=3~>iVlMk#n5f!Ja`r@ zQ3j4O#(PfgB9PZFq#w(*h+bFR+2-y&WuTirxGq1KxHd;-K^?!NT=P~)3u$zmPzK; z_BKLF3w3fHXxK)>_^@X_klsCcA)u2vjZT9lXR<7K#p5J#dD7)*H%uYvig={N8_D~ z8AIMSRnOafrhZ6-)h{KaqiU&WC>jyVn zW%BG_qV-!1j=o63i>fby0l%-1#Dz4e!_Y}5qb zd&Hoetewe3SlEV`Do5IcFSy>XE>HNaiuzg6I!=GwCp!%>I=oU{(QS`XyLkG8^NA6> zq6QXk`h8c4w@Cg6haqg^RlI9{npFR zz+koO%hck;qm)urL_2xJjtxZ~OB36iVRd<>;5N+MoVFHvt-CtCF#TpE0_5>?dD?pb zT<%{wzzt&MhW-4sOw0`cQV7nytdyepdQzG+nv7?2R6700t$XsIV-L;w~gSA-aKMBsNMx zZ%UG5YC*zKn{a4I0AK|HIWc#~!VEgwCrgmIAc)AGJxav8XX8^dlzgqFP^ce5ccVW8 z3`d7$E=uTGGzEoKg{C_}Y7Q z(m`>ky+r`YiN=JoDmf2CG1w341F@KdKtaN1g;Mx*xG0`M7oowkGS)$0rif6W2!5jp za@65b=$H0zUem+%)ua_UiZnPzfRIns3mLrnWgZ`7Fpzyi7-=taSCf#sh->v42G3_* zZDZu4?ov2x6ErYe6^Rt_onWw(~mbMtz`CfU`od01> zp95C{eX?0C-%IBP@3?gIOT33S=Gxh<8}&qPd-KF#Z|qAYZKZRq4~t#1c2DIbjyaRk z6>vu@tb|PGZO*I3jP39q`?mhm7Wpe=hQlG9uy2@Q<>JBe&rFX1nfosB-^<@;RcQ;> zF3&p-jO8__U%VhOqL;Kaa-2O{G33i)5}Jy9I_U0h%RD!5XjU#)M}6s)v;gE@$ofyW z*4BcJ*0LTdyWIUcG|XZ7Z{`-?CwMBq#Y~4nCpsHfF7qbpNPz&zV~E(m0XPg8L^7Wn zK*TbV?Cd?%&xvyZn)1V{hA>El@vu^JdWB3y7QfF%&XQ_AgP2K5kW3{DM|0Ek<2?{o z6Db7F23#g?YEo}?0(>5Vk4ekK1pV~;i>ZEF8Rr)$xr{iGyOPD2=oSDxGU80Y4Z=%7 zNtaJW{aX|sV*?GZos}VR6^GUUCQ1>sN7}K>nQ%#CP+3Rz>kB>g03TVb#@5GP>|7pg z-p>m1wX@P5td5J;KJ4eDodARbr4A{F_9m}pO8hy+K39I|7*-3!Xmq9(2)9&LH)GxCE}jA2ha1n1KWVibiD14cv!7 z8csTi`wy^T&uh0s-I}Sf2a_T&Wa}xHm!b!)fs?HMJto20(w-Wo{3_& zrUi@unrEM;5mS&AtuiF5@>oX-J_YEXgi3PX$X1p>QZ&7|rlOx8!hIymG6&7HfDIJx zt5%4*4*59{RH#LG?JP71t?|{~&(9zuR2T;gV9C+Q;~1qpKw$(8(VqemL8n)G;0YIl z7d>=pto8Rk5sNj`cw`v&~Wl&F_RnOEb{ z1;kW<7?;>e#(yldud@M00H>+OJi-e* zsL79WUJA1Nuu>4Ul9(WgU5q+8gLVXz{_)ioWYE1-A<3KW>M&3|tK#+=4Cc15&()8b zN8wN-r~a+*2<2LRs(A2#r*#5~iBTxTyFjhI8ANkI0M*{^RJ2|I3II$2`PCB1jmRBt z&^cW>AXFl6gfYiON5Z4>DWK$G6$9EJ>4V$=wP2f#PyL`lTSb(_u69p3ZZa=DH^eN* zuR;y@QvH;=e1)bk0y7eEse4j$cKfZ7;x0({9(!*zVPaQ#5bn71jN(d5w5L;MSpGvj zLdF~QXcgi4%PVxNzNwMrn*O{M8ZoK?d@H3xA#|16`jF*hVfWN60wBt~j5wNHC0!tq zUh>X6tFQYdaL4h?A!1bO+T=ODzeMDYkhQ_`aPzk>-KG8$7uu`eL+67?#o_1%H-b8H zU`G1j`{sJ8gNaE++{@6btE!ziCGmnzQ-e#Lm>v13pTp#t-pmK_fW*V<_;bKfKymkX zn{avJ6M^WbJmwWmcOP3t_vECU?2ZNseSvC^X#@t{_?KRy;34+f6oEtL;`yXdK;M+X zV!)U)?d@4z9C<5@c*D`cEj3|J?p!u3WGdfurs2DxhiDpy&vy{M$WaeNxOspO(m>0$ zfD4T~spekpsiQ&lRz>^j zIihm0j)+cTqe92mOGqX1Yczpcu=O*oeQ4#SH&*TUAOCVYe`a4~{>-LZJ$un>iDebd zQuQ1drAmB74t`h0TzE^FPlv2{a6$WAHtQ%Kv#N{bau{#b$gQ^lj)X|70{OcBfk#f| za#AZatr!y?tUrQF;EjZnvSb|VXI&5P8xt%DC3A1`a+>l*^DNl;@Z3V*6!J@!WTeG@ z>4O<|n>i9Lu;;&2zjoRLhis%C(vhgYrPMV(#A^1nfXq+|hQ3q9R3PD%axL`^y;O_9 zg|o5>Iu7)6g)v;7w8fe)Dz?)SW!0GyySnPr6_RCzjLCt8KNN|$!c2s|=GoQITQGH2 z{^)nYX?{;JqM~lYa|(uUU&X3qM`TQb|CF3~>jynJ>({DM!!!KIvEL6{d+xr@b3$sQ z?@DXZ@4Tno!B91%CR?$M^ES)dQQD;@i?U%TxmmfAj@3YI448P3z>cSF?ssSyoqmE_ zT??IbjY|z}0CF zx2e(e9e-(?{+^=yG09*+x#Qx(VCPGDno!rTqp1WpQTiV_Wts`9oAM*qNav~<4O&@@ z}lMUf)x&H`w)nd3V88)tAcA#$^j3->mpAWeraL&AtDw_N-e zmE*s^yXO|(%T~i#l9}luuC5Zkh3)p3XuUn7t9U$R=h@MES2gD@ES{}!6TFIn#PH*6 z=#RP7e`g`I(E2Dq>H6o<-s1C4GJ7#?V7d`Zq zdv)OZnRgr=srC)_X3iLST5}7c{vjV(*DCsN&$3?rx)tM7gFOf;uPsFo!R)$p<2SaG zo(`YV!@~G#IXQwOue(B;ul57VFXyaLPAbP( zXhiA41KC)YuMDcX{8b^nZ}XTMhl^8fR9owL8m?B?hX-%WWK1t=x#jq;RQK+_<{X>V z_&*D;)c2GAjS_0*8Ha$5O^v%LL%9NgK`Ki!pVg}6(eGaZ_=~WJMn0o=@jjM3b+OT^ z6Gt_(Jq5W9VzthHWU{Dgen`J=CG@X+CBWY^MJ~3LJ!hxO+0GPY(>E7OENwIGx8=Iz zH6@U3qMeH)cunI{B$LIf6&sydj*LoQto>+xfL5~i?!g*H*3l@IQ+3m0h%)1%@RSM7Oq;h1miiBu9w1K3+4U@j?sZYGu5Mi4qau zY>mT@S7ypqNzZUPO!5LBDkq{nuXkK0=TruMDu|iDftsBvi*)o1mg>E-A@Unr>FS%pk5ko zt$D57&-`GvgEr)%TI*kdJRf;vu*tl7zja_k&=2F?Eoh{wbJH%G(>OVCyp0?ilMi{sIZo>Nk0$z;n6wB* z)BX%kbD)CzYY(z3*wKwUYq#@mjzn%j27NQ-#~g2GLYeuYqNNk`Op-PF>jIQZ$L^ua zxAV25%=3&1xQitZQkPQG5zQof@cNOUoQC5X8zm3ZiZhz&ozd#&r7jLb5S`3f!PJTg zx{A_d9Rdl_f=6$UpCVtf6&&(I12(e9l7D-}ILT#9d>t6X1@8XT?U9YiG-|=_rrZ7& zac(|xTB%`GZhf!lv(}@dme1-S)>oNDPTq|HUx~_LHYQP5B^%5Q^>UN<&*c*5zEoO1 z|J%1Y%j+j=FjxSEL&La~Y+mD%vF@PPrF1eY0}J4{GWexI6ypQvP~kO8`+ngVs+?Ni ztV{q5*;RBj7~5D+yqNF=>c}E}{>1eI&uoA>^PVM)M*fhdLttH+f@I-|dgO@O_)1w@ zeWU%K0pZ0@oPSl-Z-`5_kpEm~lOE}asf`-vRlmr8RlNO%iB~+EEK?-3N_ba)pRCVY z-Q_*g)@eU?UQB^z;^@h^GYP-90&u0n7{}MDE7CBe^a>Cvijj9hP^PNLvcFG6{bvmD z(G$X|6zea)2Kx3*^FL}-mDlXZ`%^0=JRcF9uYQ4V=K9)Z`AYm-c0v0sgTU11rFF-* zn-D>p|3F_{o8Jq*b>}#$Eb<~39(#de9;l`Tcvl14SGpz379T@gV+fhr=lth;8R@1U z&UK5n@kzwF?YW*B@{my*x8hCaG&j=ZP&B;VT^f!8mU zd!w-pm!y~F0E4_BHkwR#@z87yHGa?%yl*0s-a|-^L%qt_O2d& zU8w&OYU#U{LTjGd?HHP(S+OXd`1Gcid$3USVmON#^~TV)7C>RC$rYE}%6}Dmd43sn zEcYLXPN{T175ta%Ws1qMmj0_!hdZ*cq6=4u5`zff_5Q+}k*k`64q{~g+p8FD>;vv;~Z}1D*pq8&KcZE9d-N%I_Wie zgBGZq!?FR_i|bZLG7J>R;1Ty`F;ndk2^2-^2jp1{x8eR6zs zU-$3%y#B2lQ+rrb$eJu1AN=CIwvBB3gA4*hp6}&n=gOkwGYqn{m zFJX@~VN&D!8%A!al)-l3^5&lUDzQ4y-+0P;)!c9KcYHG{Ot{3gO)bIwVF5yX#9oyU0I9hCD!KZTaL$P1m>B>PN$B5{MoCS(-nR3>E(hs%Y`=|}@Cpi5o%ya}Z zHd8TVhLP1z)5opUB#8MomB~YueH6dF(><+kFqXaef@zx{e9Fj`;DO<~H!Ik-Vs`%` z`=r~q`WR}O%T6)+*+h=>_qU5$?U3LcXu*2T>}_Hca(-z3DkVI>ZxA-~cc}%dPs8YJ zWbGkkNJjNOhi(l);R5)T0~aAs(m>o+)Y_*;73RBUl;k9}BDXEwwQ~!}V%{L=sSLlW ztFVJYkA0LPSu<0WGcAc`E3r7SB{3xqxV=+ELSP!fa`1;(A(GouQwoGHDeW9fY@7S3 zdy9G2x#{zD8yp9Cm}jRM;Fg3$^*;t+u{K`#>g|CzxzK%5XYXYrP?c}~%rYiM+X(YG zI!sy*FR3AJ^Dj@siR|A8x*oi$jAEEtLZwf?cT`?&qanWB7o{(K#O!Gt2>Wjg1Ql`7 z_ToAX~()9LRbHV3hm*111=B*yvDuEMX6&T@K< zS~Do7+Sc$o>>;9;)oXHk*>O8)W$Rp5ZHAB>@_~0R!j&4u_7A5juHrx89IlA7Tnql$P?A0aj7Y!$qOiQ%b0^qV0=6 z^Jqm31?dZ}bf&YA6ebnd(F$z7*}(@%jC3r&z4G>lM^`@`R-J^d%YPwkk1zW_vRwU} zTA2T3^7Gijbfj3s`+8~^$}dPPzrnqQyKQ}Co-bnbA1IXsGY`GGmv9kl*tpd23KMkQ z5sjw7wX0-_HENj_xlKp!W4Ly>Tc0vB6f}~jni4f`r<~U2+)D@QsNjA3>pHC#>-YFS z&`Wy~ic5TWLC-xj`_TCan3l6g>v+f`naSK97F1x(=2odXCq=Y4f@Q+Vj#Q9rW^=OTzYHVXW;)bwH<(qvcu{E0eRI}e2r^(=HX`jS_;wHJ zwr;3J&@c&E$iE9`bY`%uUutZ*EB^Gb(}j$m`-4M#68c- z(pGQ%t(OGN!Nd8*a1_Pj*~0VTY2IKHXsA%>Rrj|_XhZd(;%Cf3?#Tr4 z<4WMa_$#J9%(Azv1#L=0)Wbwo8 zGthN}qV~0qQ6vY}SZ@5U*SBK9SD(Q&E)FM@qP6KZbn^gwowVtpgZqP`JKkx<+7dbt$ubD{J^56Mw8otaeJG8` za1+l!LY^@HwQ88@@#K`>P+wxruKZtM6^zfzp_xtTJT(!Eb`uhtQ zK=-j==KHe|GKLIilqk=#>^hs0+yb~Dfgs)-F=0id21I1m z^4^+Y!ZYRcC?*U^zQxU zZlUUO&~L8g{hSnTJ4QSpLsQA5T!xuTL?*O^XY55Gkd-jvVBWOh;^4$huUbNe1t>mf6I8ImGL zL$tZ{*&g_2;Px*wrEHQF@sM8zJ!BIoA;LTVt&Dx#WS$>#ns0gd(#E-Q92igcwPZvk zeJXT=IkYjpdRhsl2O<&+{nDOe2xj;4*WmtV`X9Uw8>#!UA9?L+sRXFIGNs@NHZ%ul|qS1C-p7?6U z<6WBm!ZL;8^tH)U1e3oq>WWz%yf~lCL3cLbio9YeeUu$ne~vQ9-s!_CagSULzj0e( z`hv!F<;)oXi2aitAmCaFSV&0pSp<`_`8oSbj2%QSGfkkUn=Huw^;xfkWVNuIz%vf{ z5uqC+WO3Al+_K4>_dl(|>O-nYA=(Sn0~XV%vCXFwpj}Fn4*ycVNl4U|sZNbGy%zp=Wp7H1*vt;v40Q zph+|tM7NtEkATCg4|Lp9J_7r3EdM|)=xAvJZuyzdW9q$l*i>29z$7~7PO)sT(wyaY z%l=fyiwnf$X6N+Nb4I7r3p<~%B#%4L{QB%2w_nrX2PgHxidrJsB&CBMQFl%E1>_8l zh(X$7?Kf!BKOrp&o>@7;Koiv&>ldxcTLb;(ObrI+ca}#EtIsSz-I~|b8>;_-u5|oA zjWu5$uKqH?dGTHG^&{P)N^jgVoz)HTm^$Ia?<`4H%wk9BHeqe@KTNi{TYHxsSi@X2 zJW6;8Gw%K6#udlI)17bXvTHo<$68-DT`7h!!0DR=Vq}V2pkEc_w*8((iZG^OEUZ9do;-E-Pu1ZI$N4J7woE zhtVL;Nc9+J5A+SaZ^RqVwZnbCl*By`)Qewg4OVlO6J#N^f&Ba;YpaT;`xU@MkhX)Asl%s=lKV9W$6bb&Ob?r*y(%#h6U`-cxZ+Gss-_hbWty z{dQ-6M0Y{s;1uwrWK(y@Q0B=C)26_L2!i%wYK{;@=9AE;UJFA>VY>^feTy>xf%ug2 zLWupksDHjr92I1(yeSQ#IUi=0xu-tbT>KAIY{lu0?RNy8AtA4I*xKRef8PgEJZF)4 zF@bg%TVoPaZj)p(UlQs5y5{ngh}l^nvd%Zb!{D^)Yp7hO4TCs@ITNe9MhGB(2Y(>K z(b)pgo)|Z?RdvW*Ly#ZYLz@Yy^j@M9Vau(0IYO4~a4;<@C+3m^4)1YmB3M`k6(zb~m6oxYSTUNc*vWxFwEE(&U3;7&1%JJ@m_ zR*%<2zbd7Y`^hsJZ19=N*=a=&5@SibFjK)BL^JX0q4^~Q8Bmu4n1T?I4sDnrsM4UT{)2*==G&>?3fM-w)^E`BzkJoRnqTTY(;`yqTvV<*lfo-wtTyDO zYLA6wV^v*7Q6{W@qBAxF_Gm#whOf4a7jH3JJT!+X*dR^_A&=6F!?35u%=nl41VKZ1 zZYFUlbTUdw0SW~msB)ycC_BCrxg*b525eH%ss3AeU>LC=g(e7jUIKglY0%91{QqXC z#%iQZvJ(XP6NoL)0lt>LeH~z~8BmDFMBuayFguvELB26+g^)R9us#wF)cpxIvMYdE z>{haLxFJZOuq$(s5x33%gX9o;oM$q?k$NirGaG%_GR42`g-) z1n9RSZPeCPDHJso`XPn=ptl$0v6ys?B|6kn)O@buq~abo%kOg13gA`;B!#e@#EJCP z84N$$Bb|;0VhL}l=klmZNfz@TMskoKQlCnL^wph#E|2tUm+yiipThMmRuQ3|>z;To zJGa{3z}O&4J=AA38P(j?UuK2N;wCY^7yDB!)(oL4NA*$ex!Rgon&bPL2iEu3^(k`f z_tT5Xjfb}Dq>DY_`r^mA*Y@zXS#;vGccrCy)CIMcK`|4S?)o9BH6LzXKQ`|A@IR1Q(^SFmd#&!mI=J)sr*MN! zT>Q4P{oLa!yI10sSa{z6;m)~iICnyld=SqX?;L5GYj9rzDsedBo~E-jFnDp|AG^U; zr+;dzezW^?Te~{%8_(F%X7oUb3zqraP8Ch>QOS`#a#b*qk7M zrsbqcW6|8oC*r)#+wSyZd7V>f*-E4R+EhM3O)k@-c#ETHS~K#bndZ%Y!}IV7mk*x$ z+9wBfau)8IEgWAO6(p9WXDbk!Dqq{%-NwCmF^SSL;F#oDGi}Aqf4@I-HM#V6eMnhd z$?r_kL*)BqyW!#5&Hg$Y(!0OgLcRaH$o2&~z$e+Y5c(G~lnHW@9qZ7~!O#z);J2dt ze{yaUP1ZigkHrTtU zFmrpjuK>j~wzf$4##S?1ermW5;+w0ME4-BF{S$1L(*#$){m35qWH_Q@FIoygCKeK{ zRgQx$`l9~rK(x>yiC}iC5%<5@TSCe_eI$c!XAcUZdyU$TL{fD{9&2LueG_ zA@pTubWF~YESg60PlYTjfvnOw2I_w^>8n9dbSEk6G{la~^X;dTkn!TlV6WWGl{}n6 z@&}?=FLn(ka}uQ7_ceVa_SM0#>G73}_(>pSic1+q6D5{o*`+cA6*vi=Y7;S=8r3eOt#)C?LLQi_~jNfe|)pt6q zZVxWPgN*C{sCDqT3SHUpe5cHV;EPgLTP*(Mx zidNi;gl;4U!vhGiML>@EJYE_Xh5i7fiJMDbR+i^Gc_WMB3uG8Ki^2_j8hloM4uvQZ zU+$|ZA}F*jP!n2{;9qv>MO&YcVa~04YMLNIz~<*)g4IC!9Re2Pl5!|W8u;sTLCU!n z7p2xyd0xP(5la8#(UBRnPR+KOFFSue!rkdGyaQir(cr;J2G?IIOqelAAs zYDtk}P^<>4C=nQg@VK-d6U2{hA4ua^k-^9_ND3YNpfI=%#;efgtkA}}ZwcYyMW@gtfC2KSKyvS(NNdHMh% zM@MWDH%>}_PYO;Eo(oXgRe!YKVjpL*NE!p2SMZB4h@QUr>U?A1cOP=3eRrfq-psXpHz7gj3xTH ztWkV6er4NC6<}xI#dIK!raz4!pfB-|KwX}duHEY428Tm)NQTPY=`YIibw3v>`2zto znMizqaRt%}$H^ls>J*wvzw%Z9VIp~i$3TGn4JSM!QZZ^S>XaBx+w3BQAQ1ocGkxV# za$NSWNk+>252b@B`Q3itgD?Oh4Th7Zp!kLRnLhI@(SHPzz|(XiEI$ zDT$fT43O5tO@P`%e^Aa9)l#Unmi&lL> zzOk7)kivS|xIe=Jhw_QJAIFkK19YSfL#WMj9zG4i{ru9~tb5U{g-%2GB~i=JwrC~Z z4q+{g#D~)_GiC$m2mgVB>&rST>+lkdZB6s|7&_RZ8U{7r8NAa}!9T_yKg^dx)4l_* z&lA*&=${kw%0C`?&f$dTUvvH7`W?qHe!Z~_aZ~O=LDJHo=;&|LMb;sfr^@b*&RhpW z8`)o!x1~kq_EL^xj13GMQ^VF=vr^O=2S?MdroAxRzS0yidAC4W> z-;2rF|I>R7uii_O#99n4iK@r*rR#|`R|<@BMxb=R*#1Z^ih7!^aj7#YQD<`Nb1ZiT zp@D@za)?-c{8R0Vz1r)#(G!HvH8P0fq|RsQdzKGNF51B2^Q-GTVhiLGCjwqwm|;|$ z5R!P@5yKLP0(lzLQ)~!B~oa{ zpkt~w9&4n%M|LT6Wf*n0Y?!<`pzzB^qQaVxViZ1@=LR!Op&y{r_dcamO)z<*`GEt8 zvrr+Ej>OfXl)CJfhU(yKBT|{-s;?_LrQw|Uw*7)nJ@Jm!4f8Xtw;(jn8uStPwmId5_jZ?UUi`$Em2nFHVm1Q?AnvhVr5nWB~>$O(U`Zmp%eSH8R z>MfpVk%>HZHvHpPM%{R<75SdM1Oa9g>_f>1?Kq#ZH!1@g2FLTB$0dG@;bt}_J%gI5 zHc2Hh3VTAnt7y?HaAc(pO>5>tzKA>1l#IcTaiwp={-?Q491(!bb%D2;PI0#?Wrk4I6E}PYYYH~}t8Z>=C8S`)MKV_d0sNN#a8u5b4(?QM1yIKX) z!Y8SBHN0Zetb@O6--COhVa)@Ia6W)Xtw>iG^?tjLuhufBHYr19r zB2k_jX6W-j0DeJ%zG)DgVLwXfOllh=wLf8OdQ<0OvC17O7oydFuug#aF3I#buEnG5 zDN@}Eox-0x?iM)+U&J=wEEg`T^)+riW5o97a$ZOe*0=nX2LN$NBngj^b5yFybrXsf z4<7i^1^F(EVys8;PsY(7z5J?#c4Q8fAK1ontGn>6V({_obaDJ&@suhIh^{{h z*|qrRtiu^gy**?;xvmH7e>cp(g){6i?J8F}_O7VrRTonyf`?<)Eq**&paSaDf@^x$ z<5!1fKfeVl=jYNQ>*emM@1%y{CfdL4I)wiKX2Y@d41X5<9>a3Xr21CPkHlXI>OXSj z5xohokUy}Ha(Ja(2p(d{_o`XM#PZ0WX%7%+Gr4H*BK!!dg7Vh!C5k!M2h$btiPElO zW3kwM4J$N=WN`cE79a`sj7Z`DVpYp0LJ9vv{QZjk%tv{{9S;qP8+`vczlhbMA`g2*WCs++NetWzm-t9(X@-ngG+53nH=N_!QrF4 z8R$~YUe#64lC8cj>z3G#ZOlChuBOl9eZ(rF;@3F$uUORn7kFn-aNlPLf7unrUwjqP z-LV5QdT~+9RUI*_g`ViC565d){{UNHeYvQo_~{-nmM7bqs6Gf_oZL6HTK@orFQ?nY z8s_n_^r-fgQKzuN9QF6c-C}XF2oexI<(YvK)VUoKmxWp0Y1z23v%=Z8WpuOm*i z-C1}a!}c3mD@5F#GAm_9tjPM-4xZ6IR?&O~;$3=H`!q&4&&|3{E86@s@S97q*>$To z+GbvM_OD`CRu&smYV^X?ghv>_AJV$xfJ@>zF&WgPxoImRjBr710EXEDDB}Z)2>}9; zija~HM@nO=zA$lJ33fb(cJC%vknykzj6tz;Q|2@nYHGIl$e;#!Z-IlwJ+Lvli1z`2 zDR9hr6ab8OA=}!c3b@JZQuH4!H)c*~0tq7}Ku+}KPb~s5sfxBZ?M-zu42l41{Je^B zA=i#7ENwWa?I(;-1ZFa)In7UQS8)tJYJh`~0p_QIJ&(-*V#krK+yvw0t%v6Ys|p+) zdVP(Nwzs6fL6KR7h~09WQ==G9nwk&cQZs=bR*+bQfkC>Jc9j`58#_ydQPQ2{WNywV z0fzwnDfsgS-jumbo3YcSKnn)V1#*DQEr+F6{vdd#z8QXg4M*}uxa*n&l$3HegHim< z{2nRCYR9x1MHo?vcO%)8DJ1jKo@EMgjMRLAjB`letsKmcW`{J6<7wzBcwLX-Rmz6K z^fd6ESOYbD#Cs#pzA!fb00v96WQJeEkzY4x-W%4n$u?O)#AB%(V!p)HY+%2%HrEIp z8?mceb*-J00WG5ufI14}tAb@2y&yzyf5&U&dY7qwtVTjh3#I!1Xk9O3wv0^ zYQ2Rn_kWmhI|@O7cXh4lP=pRlMmn`^$s1`Hs0jNXn=Ih&5Yx&4W|sF@OaKhF*pCtEv7VYvbKrk}ne9jC7dS z*U*e9ZlqVpej;3Ws`*O&>8r-g{uFvyU&M6U@ZOeZJQS=bfg4r2Vz)J@;}+JNjtZ|8 zg9{KBJuBpEZhO?pwvE}%N=KlmwiY~er*0@K6lyt}3yKwYCTS3PgPM9MQJP{yqi-vN zOeZg%f}|xMfl)I4lnoMNjEZ4#v;$EBMOg}jX0tR~5y>Xl@M#sdrhO@nKfE}l^0thn z1rx`D4I^MKDR>EtRAZV2VnyX~NLg?cj+B6t?Luwn)R@PP2TGA}qor0PgMred4aE!x zkG+%9nIjGP1W<5lG6Cj+6JbUOsP`2#tk_Xa+Qe?43Ha(M9l!&MiAl#Iqsi&%Ok(ql z((eh>Q`JJQ=Bn=b=}l@TOS_x_#W>+pAXH&UUTMQP$7-?#jEjwQwp49 z3I>YIc9Z<6s7P$~pyV*!(xw|YC#7Zyjd6eF)qjM znDpa{>3$VT^7xwS$|1DLYT%#58o<9nf;)OwMevsk@c|Kkj^0p5{0BAb<)6ey4lm(7 z%i+QpbZeMjkrm9J%DY%eDoPAs*B9W`@+`GT)ZnGj{#DmRWd{q$ufF>T`9!rX2HG&) zY8_Q0IxWDLr58MW^c=^E5eqpm$Ni#;pN#t(pRJ=dpFCBPWP19_q z(^hC~;t-V`4h98KT;K4jc+%hdV#`~0Z|vkIC&o8z99D0`FNikYA=9sJb?cOdds)h; zCj%MAD!+!cKN(#A0K!9mt+9+=M&cCP)6%(rgntk1ue>*_N2En%Y*DkrQCis!?<#dk@+3L2} zPV>V&X|#;sS5M>k;Ga_PHI|_t+AU=wNkAXQpeU;LV43VXCb6gZg2deE>=>`!QPdoB z{Hqg8@%EEDYEgd{nZ$^ABkTEBnrqq?ukg=QI_86L&1ZADVR#PaeOpWM zcZhBwQ1>jy2Lqzhcd0Z!v62=Tk$Y1TUFcXKV7zp%Josbc**rzz+lyPq-+N*Thas}#4+_1)sWD9?tWdQ;=De8 z5lbGgJEm24VxK^#8?)Q(<47a&pj<}0QjAJ@?b5KkJ+4K43dj6HnXgNGVH4e1rrgF#j?!{+bc(YZw%pmQo%ZM&#fKMcuHJ3T1I%da&yh(Yb zNfw_ge(8@-O6|O7;A)GFxf4ODn{FaJ{=yB=L9f*TuLnv1+@}91M~EHCWpGXR{|0EQ$|uE8fqD{6B8q zOqXf7dX6dUuIN{cAcpBTHv^GCYJB`P?~HaWyjmpRm0W}37sP8({{Ry`4V}9c74!?h zi-6c+*kn`M-r8^%fWx(2h&(1gjGE=R^7S7N%7k<{HC%ji5K0Bkmm=rb*S#G&-N^F- zFdn$7*er= zhTOLM2)`jz>^v9Y{XXbj*;=ep4un<2o>OLM)E}0Y?_-KELy%}m0d2Llj71;=K;oLm zB+`yg&{1G8d|_s8G@ExMVJ1U^^{)>2rjn-Y4AcZk2ya>ULo;v zHcuMd3`auH1$l zDFHdy1q?BTrUjVYfay`n5x!;XNaxD~6qwJ?O#&lC8O!UE6-YNWCrGd1RIZ~Ou>Qx4K$I^QXYU%0}11iO1bQD zLor?{v;gi0%i4|0(wvBTw@QvhT;*s1+d{V#=5xaIrj4Ww(zI_U-Jk>~cgks-NFzLo zaZSDHLYBaw2|TnQQ&AK)Itr0fkx3$MKP3U^HKHmr+Mob-t4?;qhN?@E-hdO#eBzcY zsVqknyLlL?NK{@Z0jCABDaE&Y0Z6goOA2Y|D?%hol_TZqDw*JtMK3CHyi?@?qZsQz zkwRuyOb*qP;UWJ37ZXH~_LvXpT5~8!+cnQ<4)FNvMqqgRN)OC|T{s`&5sF^n^%jse zd`rHG!8@&%y*#4^P&#p5V{QaL72YHy?z39;WI*Q`x81{PSN~=#VM!CB3A7DDqeNQW=Hd zVT~oijzb#nVT7C)`@WUJ_zV$iI`A;;xcXLq#UF@Po&(W>#@W=aepnOJ{iErM0P??% z-w@!G{{X@vquhV1$J!YWAMSsRe6X-fc{;;xrJ49u9nD97b2a3$UCjHXm5Vv|HT0Lk zABPg&OBaiEh;~4~>LX!{_Rc61J!jze!@F+_XsvmwMg{%%%t2mb2e7V7v3v!u1bde z;tl~?fImsDqPBO-#t1anV}c*`BLmvAJTc-MKNe_kYL=uO>&P9AXf!2Nt3YNKi?rm{ z{4=OoJbRhrJAJS#I z{#Dg{B=82E-aMXaNShCCmDK!RNu=-=u^fHlAEN_X+8@M!3G4F77MpSA$r#IEb`|CS z0200;=z6Dw^-UvBB;3loRCMo0J;ssoGz~5EO#;Pz;F!T|qrkt)zb>%v zc7*g?6Zlu@--WSv;9D^tBkb${0HD+AGxKj;g{?JPyKab*zCSwqx8TH*9{|{A?zTmI zGvbivU%!pH#IOA8?O%Y?yuJg97CG{rfUPDUWcDc_fo*OQQUEcrIpd61<`%7n)~?xO z={CE|_I&ur87CVb5JJ#LjgT#w497ZHJ#arsx;H$SuY zhNb@iRLr%A{{XYLl78gu1t(0T&y!N=v9wM`eK@OeYTB)#^6l@WRsR5bzK6Q~ogEyT zdz_Bh70h3J0r3I<0FP!?+wW7zS25;)@Rj(DP$XKEp;UAY!LOk{2>7p4*B15-TI9c! ziWHx%eA(hp4_^2-|%J)0V4Cgqn zGWf0W7f|pvt7~az61vEny4S4fOY;%8ob|Zi6W}k23?-ALsXmtl+*lyycz@&bX{hHaj5ud`MHbc~6zdoS& zlj7L=-Zg8%@pHy7{{YK+Cf-#Ybtu%W^E8}?nI(V7@ra%ZDfRSF=@XO)_ z?~ldGO$deULgxdHYU3b1MWJjDdR2)+Y|k~JA_YJ_D~|Cuh+*)SocguwMWGl26iI>5 zh)O=!BNXXv$mMwz;x=C&{4srSEo8NpHy9Z!f$3i5XL6U3M=}Dc>KJFzgu=veI)o}m zHG|?B+vlaYa0J||UuCRQK9D^oKc!sW$)jfVrJbW0cymaK0J6>T|Gjzx4x zo22G|A!S|&;8RErxLzvkktsWAi5A1pN&u!Iz~J*!2o44+<3kp6xN}pjs%_zgW@u+U zx{=2f7m73KcluW+ep)?I9yR%7;=8v2SIaA0wyXkQ+u(evYcZo}TCU9S zDaJo7O6L`0Ab92!RuB2&qDzYEBSi6rDI7=pBgA1>%*CJ*rj0eeqDswf^k| zBv&T{gVL%zV3CeRO@dn|kxnWG(m0@F1iMZcQmoCpo|NFFj{<15}-m2QXvoU zinzdS;c7o8J$Muum0CDR!zgdUtD6gEU$`;!6{^!I_7RHEW>5A`oc&-! z_zI-{6w+=RKV?PyD{pSWnvy;2IW?G$X}lAo#NKK|zlB$qz?x;r^A$FqsjkCmR{41p zKbXHVo;@j84jBA8vOmYi)~iYI-q`;DsJL}MUMtYD$DykTxg0iVvL7=%r926#MKAh2 z`=&A8p}g?#igfs1crU)tQ?ajF1@~bGVboE46YNs5u1c@co2MSds*LbS=9c@zvdMcE z$(MIeQC@Sm%tafzSE^gallXr4vvLdP+co5(J&m|NeJkd3dP+92?`6}vEP!@}6(TO) zDP#M*)XNb+HFzhiR}u0zRD)sdeG2-MkoTbq%+_OiPv*+T0T(O)8?vtzsBHK+!Z1w@o zOQbrb)5X@W+)1__gNn-27z^$P29?8*>#?&P>d`)Gfs9pRyN~YsRH3$jIvU6e3l`O+ zN7~_WQ4ck~?`l+EpPH6vY5AzE0mdq|$}iqthNEFm%B*;jqzrqlfjO_Behs$Yg3`za z7S~;k{+}|}&$r9QRA(l>g!nYAKftdP$KKmhNj`(G^shq)@f;Y%?w_q!Q;Fb#$MM4% z{{Y8DWHWJ(N;JuS-QoQ@) zhrJlV+e)KvNIE(ZNT5&yXac0brv#t~!qdX>QtcF*YI%oY0PHE?am7m<4(E!8QNPl3 zJ4U?KZlkw}0VSM;10Pz>Q?W`U>2C6jjw+V1t>|7Cv;NT6E~B=HblyPDJq3Kh@dNgw z(=_INGr`gQu2GO?JRtg4#@;XSuZg^8KijpNrk@9dCkQ@*yv#;p80dG`^skV$&1+ooZS!C2S5I>Nc|3kq%HLi=rQ7-U6Ky1Pu0n4VYC4mx zu7?)U(7#IXtKzCu^gT*=Si@tl)HQ8COph`!G7f-O8!n}+>oR$E>E%X$i`uPe-Wp_- zU1}_6koN2=xQ5GOjj8}0Fs-RzCf%ySCM#^;*G`L=rrWopWg3Y zO>uX1e=hl$$j7w}70P-Sh(09UYCy$gyBDTw&1I7I_HFVpke|x5ZR`V`()1mLYa?33 zn^kJmMrFgNMxkDAeXDNU?C{_&GwoCrWVm9AFoLzM?G*x-02-hiB$s&!{zX+(hAEn9 z`OiRWVm~Qdt1l#06tN4NhDSSAK7yDNO{kfFb85KHdX6nVS$Uk`REs60uTG+*YnkrX zYy%5G6ZzJ5QU334M{1z*-Re>d3;|j?c9fjG&>xLHTkBg^+iEuv*iZwYvW_L)Ki(d- z1o!swvd0h4^r{klvruCF7t*g;TfuK0=|BuA*vzcyb$Hlgu?K3hmX_A*xsEYW^V zw_KlEhATPlK5K^gO%?!a((mP3iW5zqN8LMd=~}SZ!*9y=shx&K(^dl`x3`Hv3Nk54 z&&$%3qoU+gYTmQ~BM|(KF;W5o<2;&$Nyt5^%oKd%r2v2b*82s0so;9h22Mv5F&uUx zzfZC7L4Z0_dW_QgcB9zS0k~{&N;*@3$4)60q;_J3&rZ~GdUmA%V~Q6ajRLTC!4zX1 zDS7Ee4tS~<%na};-jrnE(tT(Fz~pmBZk$omid^xULg+UgDL}_P=`or*9w-ih$ZjYj z9Ewl9#UJdN9>9eIBaYMz5%i;=#Rq{v2rxM`1^yvP(}7MMIN;L~Is=+bq>PT#2yg%n zX}dr?Q-SrS3#8Zy+qpctS@zR~Z z9+bqua&bsO6aX z`CMv181Bz&+EBR0WKkx{3(5@dSf))dQcqzU{QmfC>?2e27p40ck4;V;Yov< zPC8H|13f8o+JnHrqzlIs4^et>DMKEV%5cZs6b7Q_oDP(}nC(p>j)ScPj&69PcG^xz zz@_6H&;k>RZWL3xj1H93f;O4}LNV_~TO-<+2OmlW0}hnA_M^2XNcsu~&`M4*ig4r- zDZJu>MN_n66u8ecg9K8M#}p320!17eJ*fb}=70?Iig&d%jkI9(phAk{k)7;+!xIH;mv=7Y}N8P7NUxs_S1|9gI0ZWXW(s7&)lmH)UZVr8^{V6d( zgNjaric?BGXbTPJ6x?T}N$*KW27p(JUbLe<=p1yW1YnO!b~vYFy(i&PJ%kw?Vt@@U zPf#g2pa&2~6qo~=QRzy3Du8DlMK4jsDC4yNdQxB~P6Z}Aigr2XoIqiLNdV42Dmt7} z;Yq;lNz;*30gfmHejb#+DCE-ceT@NN#tvz7nojsM{)di~2sWOElbT!~r7k$F071y5 z27qYk+cW^-$of*R%SZ(P;PF5^jvGM0qbKmB>U}8ML9E3c$9Accs1*-kQ>`>I!jqc3 zf8)k)_gnc@6|2Di0HI6%>HbxfU5z2R`Lm!fJ}B1!A#)^{{LOqx;`wKb#M+!lGJNN+ zwRDyT#k$I<>hgaxUm5tqc&&U{evi&%di>iN{APW=3*bc`2;E%ItwSC$&MWGVAK%Gk z@cQj~GsCofabGidF=M&bqA_uY&3Z@1{bG3hJ7r-B+vc8rmCpA%S@X|@b9JjOJ6B<> zULd?Nx%;NMzXZgvneU%~l-Xi^M&e79JZ875RU=Z<=9tKathqb3dek-$`7yIUYJAKJ zm#9S+Vus(3TvS5UROA}Zf@Uh!T3K%4Y>t$aM67oDf6s)+O41Ox&TEdgy_iFlI3})* zLi3HLqDZ|CxoxDDJSnWRq28>Yf8;fcn*H^bL#}BP#{+PVQN?AbXm4C;t+#IeMN^8# z;tY|D2L88e{j0{IzxUTL~B{kVQ@ATDs&gB8!J9&&{k`L^iM@ofPm~ zF8Ix9y_TPFHxepHbgOvIBVYwPi`|6n913bMbH=$+0SqL$YeC@eNO5=`68|Ts7RX%b5%kT;X>mzT&OvQ zpA%}3zF9XdXhY(uq#1SmDlur%BOy>L5?fZbZg2%JW`msSmtB+g6d2C2(t) zx7yz@ImKv4AYw8&sFVv*C6@ALA14(o7nc$B=9R>2$Q1Nt#xYUKRn0hWnU<|Zb)UUi zTU9z!LlrfVrH+z2i1E!irwzcY0U;F8G0)zhIZlo_K;YD!d9HhVbq!DZRPlflnp~sh zH+Onuror;@)}s=3 zW5s6q!lqf{#u|%%!6zxb)(oGXa1o^T0|j2@`GzFruE#mE3ByPONz~F~>~NaOES~0_4=ug~!cN zu>m&qq)vVGfnx2byCcQ;;~Qv4$R%KbWn?Y1~5(QJQ|{Bc(?o zk;v&%ET1MQxCTh}s5boBV^Z!Lb4-1%2WlH*!6 zPx*+zrj-$liUPspF5XTl%Nq3bre}EPflkgaG17rpW2Pz)jn}1H&pD>I%rVlPhE&Hj zGDZ(QDa{tqnr;XjQD7ADz~-F0Re2btjj_~IWCXVzC;|dOG`m3Nr1HmVa;WHN0ravs_Gc-}cA(JZqSe;+>+Bsos@U@Ojz>MKg3?ish}~O*-n~cw&5V63qmazN zYd!w}HZe^$jkjqP(90GMF~F!9Jt-oQ&VOb{_pwobW!sa;=DLqB1ChlqlNcMe)D&{R z*s!~N$|d6(^6y5hmDZW$os#Tb| zS7VVDdW$F?YYbD<`&!Y1+ucZvJs8(c*6h6J^{C#-$;lj5dwKT{V!Igec!$My@4Nd( zUVY7J+WbZF&4y!+^vJ&AgtbC;m7wX1oD=y~ENs_NeNLZaYTx4zisB%Z>08izcGjaK z?N-IqdRLzvIah|j6(eb}vi|^uZnG+=<#-x>5$cKY+SXC~>uD5^N_EG^9}em<`Ey4y zV!VLqk>>}G!k{`tdE7?d!mVdD5uf&48T4M2@rS~ew&@5h$E|b_d|mK_jC|{Wfcsa< zO{1gq7&OzQ{J3li>W+6l#xE(4MtzZO@h8F4j0?mSVf)!*{D5XvWf~H7d5BaND4{Ob_;j zSJVT?7?J|7^dhy5c)p~%Qe6xy1&jM$V#jFbf+QM zyPKK-rhtX#wK^l5@l)+*`NH5+okD;yiU)ED0C9oZq6iKF?N)XkIK=`m4t*#Km6QN* z!=*T*D{dclraNDtrN_&I(wSsM!C#b84#%Y{C{^N|9zDL|tCY-(Cw6Md`Im}`M&U?` z`QxP=qp>>30{Lz#F%VOcPx(t?r3f>{P>7Ts^!xz6l$+Tb7^zu@dH|}V^zBX&$Dc}n z9S0PoE;!`S108;B3Wica3)-cTh#r*-F7h&ZPz2i)k4jRAzb<*Go=v22(w@vD!RbvR zS)*Sz9u*-T)x@iTvg9*$PM<9}OG zCB30NhARjr0;sNoS^of!Ye(%^0!)!#BU^Lcrb~tcj?}yr=9&(8=|E5peJdntDsVk0 zWk17GgPcwqJ?@R-Y%RtcFV2XOF>DrNgl`K)0KGm6` z*p6H<0Cc7MskBscDO1HdH^<(fXi#|o^r;vsfwrT-Z@Wgqqjdui=cyGT3P2QvmHmx8 zMgYmAz>P;^O~D6&PZcR;z{Ly(1uNE~$y311J9&B|$_$!95qaR$sz6igOO#{9L(c3d zrUC<>!jxf~2AWPE6gVsM3Stq1frHResLE!Zr_DeKrf{#fJX484B;Ca#j;l&Q6!a?? z;MJKClg21r{3#q$U4b5koMsr~sGt#A<7nX0uum; z*_EjForIbMXI<^KTCYn-?^QU^jSr}#iZ{6U42k|3A=070)? zE&d`n@qY>KJ`RjD8nDLS^rKyn0z4{nT%Uwoc{;NWpK5CB07Hi9UwIFJ`DyM>skr6p zElS+Yr^^gy49LQj+c+JnLxCAtK9x2k@E-$sw%@@p&!cNmykyMG3E*>%pOt!4e-r#W zC(q{MxAh$xL)MjJ)Sy{5_s2EQpN9Sz0OH(jJvpdwHB*n;G%bE1_*UyVxkUc}c;d7_ z;VbaNfL8J%KBBn^ei?XFgZqL$hN)b9B+zGweVS<@KE{``D)i3!KM?3HcSUy=Pi@sY z>RL2|YE2$by?G4Z2jWmZ&3zzYS?}cw04(GdrWs#OcnwB^%V`5`v zT-VQy;9nU=z(c6BWBsbFFNOXiDLzfve1Er3Uc~zd^k>oc7It^GV&3rtiMutKec}Bw z`b$}+j2E;&y5psIID_JasM+T31A)zG4R_)`o~UNF53qCZPhP?77jxgtNplR4%NUVa zN*vc4Vc?AqN7D5THrhR@d=Hohy?K)SOYv+n80FJ)4_pdw{4H&2-beGav!6gIU5Bwd zT_fSfn{VLzuL!b#q0Y?TLTjD>0EJnoY4-6ZlYY@PxB&)w0Zp^`#-(=N*tAE}2eoTQ z@qa?b>6M0m*)&`|i!i46QE_mx-d^6c)5xS02a21+Uk9|kH%yk^S7wrP^AqXmT|9pk zydkrD%D}g6wRJuv_ =LC)cS~-mUl=~iWr+6b$@Rx{I<3wk8W)Y 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