feat: 资金管理强化—缺口预测+收付款计划+预警
This commit is contained in:
+16
-3
@@ -5,7 +5,7 @@ from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.responses import JSONResponse
|
||||
from dotenv import load_dotenv
|
||||
from app.database import init_db
|
||||
from app.api import auth, kpis, templates, maps, dashboard, data, alerts, ai_analysis, alert_rules, users, thresholds, notifications, permissions, action_plans, alignment, org, objectives, versions, budget, cost, predict, reports, security, knowledge, bot_bridge, bot_bridge_v2, lead, customer_dashboard, deviation_push, budget_generate, knowledge_articles, kpi_causality, data_quality, bi_reports, entities, bsc_layers, okr, okr_templates, subjects, driver_budget, bot_kpis, bot_iron_law, analysis_results, expenses
|
||||
from app.api import auth, kpis, templates, maps, dashboard, data, alerts, ai_analysis, alert_rules, users, thresholds, notifications, permissions, action_plans, alignment, org, objectives, versions, budget, cost, predict, reports, security, knowledge, bot_bridge, bot_bridge_v2, lead, customer_dashboard, deviation_push, budget_generate, knowledge_articles, kpi_causality, data_quality, bi_reports, entities, bsc_layers, okr, okr_templates, subjects, driver_budget, bot_kpis, bot_iron_law, analysis_results, expenses, cash
|
||||
from app.utils.cache import clear_all as clear_cache, delete as delete_cache
|
||||
from scripts.erp_sync import run_sync as run_erp_sync
|
||||
from app.auth_middleware import require_auth
|
||||
@@ -74,6 +74,7 @@ app.include_router(bot_kpis.router)
|
||||
app.include_router(bot_iron_law.router)
|
||||
app.include_router(analysis_results.router)
|
||||
app.include_router(expenses.router)
|
||||
app.include_router(cash.router)
|
||||
|
||||
@app.exception_handler(Exception)
|
||||
async def global_exception_handler(request: Request, exc: Exception):
|
||||
@@ -111,13 +112,25 @@ def admin_erp_sync_dry_run(user=Depends(require_auth), kpi_codes: str = None):
|
||||
|
||||
@app.post("/api/cma/admin/alerts/check")
|
||||
def admin_check_alerts():
|
||||
"""手动触发预警检查"""
|
||||
"""手动触发预警检查(含资金管理预警:缺口前3天 + 到期未收款)"""
|
||||
from app.database import get_session_local
|
||||
from scripts.alert_generator import generate_and_push
|
||||
from app.utils.cash_forecast_engine import check_cash_alerts
|
||||
from app.models import Entity
|
||||
db = get_session_local()()
|
||||
try:
|
||||
result = generate_and_push(db)
|
||||
return {"message": "预警检查完成", "result": result}
|
||||
# 资金管理预警 — 对每个激活企业执行
|
||||
cash_result = None
|
||||
try:
|
||||
entities = db.query(Entity).filter(Entity.status == "active").all()
|
||||
cash_list = []
|
||||
for e in entities:
|
||||
cash_list.append(check_cash_alerts(db, entity_id=e.id))
|
||||
cash_result = {"entities": len(entities), "details": cash_list}
|
||||
except Exception as e:
|
||||
logger.warning(f"资金预警检查失败: {e}")
|
||||
return {"message": "预警检查完成", "result": result, "cash": cash_result}
|
||||
except Exception as e:
|
||||
return JSONResponse(status_code=500, content={"detail": f"检查失败: {str(e)}"})
|
||||
finally:
|
||||
|
||||
Reference in New Issue
Block a user