From 88af63965189fbbd0636eb6af649b2bf9a43785e Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 22 Apr 2026 09:10:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(report):=20=E4=BF=AE=E6=AD=A3=20approval=5F?= =?UTF-8?q?records.status=20=E5=A4=A7=E5=B0=8F=E5=AF=AB=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DB 以 SQLEnum 儲存 enum name(EXECUTION_FAILED 大寫), 而非 enum value(execution_failed 小寫)。 SQL 加 UPPER(status::text) 確保不論大小寫皆能命中。 驗證:live DB 查詢 success=0, failed=2(之前永遠 0/0) Co-Authored-By: Claude Sonnet 4.6 --- apps/api/src/services/report_generation_service.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/api/src/services/report_generation_service.py b/apps/api/src/services/report_generation_service.py index 828632ae..a94ead05 100644 --- a/apps/api/src/services/report_generation_service.py +++ b/apps/api/src/services/report_generation_service.py @@ -233,8 +233,8 @@ class ReportGenerationService: row = await db.execute( text(""" SELECT - COUNT(*) FILTER (WHERE status = 'execution_success') AS success, - COUNT(*) FILTER (WHERE status = 'execution_failed') AS failed + COUNT(*) FILTER (WHERE UPPER(status::text) = 'EXECUTION_SUCCESS') AS success, + COUNT(*) FILTER (WHERE UPPER(status::text) = 'EXECUTION_FAILED') AS failed FROM approval_records WHERE created_at >= :since """),