Some checks failed
CD Pipeline / deploy (push) Failing after 59s
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml) - 部署模式: rsync Python 檔案至 188 → docker restart (volume mount) - Dockerfile/requirements 變動時自動重建 Docker image - 部署通知: Telegram (開始/成功/失敗) - 健康檢查: https://mo.wooo.work/health (最多 5 次重試) - 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
44 lines
2.0 KiB
Python
44 lines
2.0 KiB
Python
from app import app, MonthlySummaryAnalysis
|
|
from database.manager import DatabaseManager
|
|
from sqlalchemy import func, case, desc
|
|
|
|
# Mocking the filter logic since it's an inner function
|
|
def apply_filters_debug(q, year=None, month=None, ignore_year=False):
|
|
print(f"Applying filters: year={year}, ignore_year={ignore_year}")
|
|
if year and not ignore_year:
|
|
print(" -> Filtering by year")
|
|
q = q.filter(MonthlySummaryAnalysis.year == year)
|
|
if month:
|
|
q = q.filter(MonthlySummaryAnalysis.month == month)
|
|
return q
|
|
|
|
db_manager = DatabaseManager()
|
|
session = db_manager.get_session()
|
|
year = 2025
|
|
month = None # Simulating the curl request
|
|
|
|
print("--- Debugging Div Dist Query ---")
|
|
div_dist_q = session.query(
|
|
MonthlySummaryAnalysis.division,
|
|
func.sum(MonthlySummaryAnalysis.sales_amt_curr).label('sales'),
|
|
func.sum(case((MonthlySummaryAnalysis.year == 2024, MonthlySummaryAnalysis.sales_amt_curr), else_=0)).label('sales_2024'),
|
|
func.sum(case((MonthlySummaryAnalysis.year == 2025, MonthlySummaryAnalysis.sales_amt_curr), else_=0)).label('sales_2025')
|
|
).group_by(MonthlySummaryAnalysis.division).order_by(desc('sales')).limit(12)
|
|
|
|
div_dist_q = apply_filters_debug(div_dist_q, year=year, ignore_year=True)
|
|
|
|
print("SQL:", div_dist_q.statement.compile(compile_kwargs={"literal_binds": True}))
|
|
results = div_dist_q.all()
|
|
print(f"Results Count: {len(results)}")
|
|
if results:
|
|
print("First result:", results[0])
|
|
|
|
print("\n--- Debugging Regular Filter (Comparison) ---")
|
|
# What happens if we DO filter by year?
|
|
div_dist_q_filtered = session.query(
|
|
MonthlySummaryAnalysis.division,
|
|
func.sum(MonthlySummaryAnalysis.sales_amt_curr).label('sales')
|
|
).group_by(MonthlySummaryAnalysis.division).order_by(desc('sales')).limit(12)
|
|
div_dist_q_filtered = apply_filters_debug(div_dist_q_filtered, year=year, ignore_year=False)
|
|
print(f"Filtered Results Count: {len(div_dist_q_filtered.all())}")
|