From 80eb018caaace4c2e9591b8e1d652ce1f91faf78 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Wed, 1 Apr 2026 08:43:02 +0900 Subject: [PATCH] =?UTF-8?q?fix(monthly-comparison):=20getAllStatus=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=EC=97=90=20admin=5Fchecked=20+=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=20=EC=B9=B4=EC=9A=B4=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit API 응답 매핑에서 admin_checked, change_details, vacation_days 누락 수정. summary에 review_sent, change_request 카운트 추가. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../api/controllers/monthlyComparisonController.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/system1-factory/api/controllers/monthlyComparisonController.js b/system1-factory/api/controllers/monthlyComparisonController.js index 9f0f3d9..b61b957 100644 --- a/system1-factory/api/controllers/monthlyComparisonController.js +++ b/system1-factory/api/controllers/monthlyComparisonController.js @@ -284,10 +284,12 @@ const MonthlyComparisonController = { const workers = await Model.getAllStatus(parseInt(year), parseInt(month), department_id ? parseInt(department_id) : null); - let confirmed = 0, pending = 0, rejected = 0; + let confirmed = 0, pending = 0, rejected = 0, review_sent = 0, change_request = 0; workers.forEach(w => { if (w.status === 'confirmed') confirmed++; else if (w.status === 'rejected') rejected++; + else if (w.status === 'review_sent') review_sent++; + else if (w.status === 'change_request') change_request++; else pending++; }); @@ -295,14 +297,17 @@ const MonthlyComparisonController = { success: true, data: { period: { year: parseInt(year), month: parseInt(month) }, - summary: { total_workers: workers.length, confirmed, pending, rejected }, + summary: { total_workers: workers.length, confirmed, pending, rejected, review_sent, change_request }, workers: workers.map(w => ({ user_id: w.user_id, worker_name: w.worker_name, job_type: w.job_type, department_name: w.department_name, status: w.status || 'pending', confirmed_at: w.confirmed_at, reject_reason: w.reject_reason, + change_details: w.change_details || null, + admin_checked: w.admin_checked || 0, total_work_days: w.total_work_days || 0, total_work_hours: parseFloat(w.total_work_hours || 0), total_overtime_hours: parseFloat(w.total_overtime_hours || 0), + vacation_days: parseFloat(w.vacation_days || 0), mismatch_count: w.mismatch_count || 0 })) }