diff --git a/backend/routes.py b/backend/routes.py index a767c8a..606e429 100644 --- a/backend/routes.py +++ b/backend/routes.py @@ -1093,6 +1093,7 @@ def _aggregate_monthly_from_json(conn, table, tenants): _year = date.today().year months = [f"{_year}-{m:02d}" for m in range(1, 13)] rev, gross, payment, cost, paid = [0]*12, [0]*12, [0]*12, [0]*12, [0]*12 + sign_monthly = [0]*12 sign_total = 0 sign_cnt = 0 @@ -1103,6 +1104,10 @@ def _aggregate_monthly_from_json(conn, table, tenants): if sm.startswith(str(_year)): sign_total += float(pf.get("sign_amount") or 0) sign_cnt += 1 + # 签单按月拆分 + sm7 = sm[:7] + if sm7 in months: + sign_monthly[months.index(sm7)] += float(pf.get("sign_amount") or 0) try: bd = json.loads(pf.get("budget_data") or "[]") except: @@ -1130,6 +1135,7 @@ def _aggregate_monthly_from_json(conn, table, tenants): "rev": rev, "gross": gross, "payment": payment, "cost": cost, "paid": paid, "cashflow": [payment[i] - paid[i] for i in range(12)], "sign_total": sign_total, "sign_cnt": sign_cnt, + "sign_monthly": sign_monthly, } @@ -1181,6 +1187,7 @@ def _build_overview_result(agg, exp_amount, exp_incurred): # 项目经营详情 project = { "sign": agg["sign_total"], + "sign_monthly": agg["sign_monthly"], "revenue": rev, "gross": gross, "cost": cost, @@ -1218,7 +1225,7 @@ def overview_plan_quarterly(): conn.close() # Convert monthly to quarterly result = _build_overview_result(agg, exp_amount, exp_incurred) - for key in ["revenue","gross","payment","cost","paid","cashflow"]: + for key in ["sign_monthly","revenue","gross","payment","cost","paid","cashflow"]: result["project"][key] = _quarterly_from_monthly(result["project"][key]) result["dept"]["project_gross"] = _quarterly_from_monthly(result["dept"]["project_gross"]) result["dept"]["dept_expense"] = _quarterly_from_monthly(result["dept"]["dept_expense"]) @@ -1247,7 +1254,7 @@ def overview_finance_quarterly(): exp_amount, exp_incurred = _aggregate_expenses(conn, "expense_records", OVERVIEW_TENANTS) conn.close() result = _build_overview_result(agg, exp_amount, exp_incurred) - for key in ["revenue","gross","payment","cost","paid","cashflow"]: + for key in ["sign_monthly","revenue","gross","payment","cost","paid","cashflow"]: result["project"][key] = _quarterly_from_monthly(result["project"][key]) result["dept"]["project_gross"] = _quarterly_from_monthly(result["dept"]["project_gross"]) result["dept"]["dept_expense"] = _quarterly_from_monthly(result["dept"]["dept_expense"]) diff --git a/static/modules/overview_finance.js b/static/modules/overview_finance.js index 52660b0..49d65c4 100644 --- a/static/modules/overview_finance.js +++ b/static/modules/overview_finance.js @@ -161,7 +161,7 @@ function renderOverviewFinanceData(data, view) { var cfCard = card('
OPC Manager v1.2.0.31
+OPC Manager v1.2.0.32