fix: 写接口entity_id token优先(resolve_entity_for_request)+ 登录页用顶层entity_id

This commit is contained in:
Hermes CI Fix
2026-08-11 11:32:30 +08:00
parent 52ec2c0f36
commit d7e97978c6
3 changed files with 19 additions and 16 deletions
+6 -6
View File
@@ -1,6 +1,6 @@
"""预测模拟API — 管理会计OS"""
import logging
from fastapi import APIRouter, HTTPException, Depends
from fastapi import APIRouter, HTTPException, Depends, Request
from app.utils.predict_engine import (
cvp_analysis, npv, irr,
sensitivity_analysis, scenario_analysis,
@@ -10,7 +10,7 @@ from app.utils.cash_forecast_engine import (
calculate_accuracy, generate_scenario_suggestion,
)
from app.database import get_db
from app.deps import get_entity_id
from app.deps import get_entity_id, resolve_entity_for_request
from sqlalchemy.orm import Session
logger = logging.getLogger("cma.predict")
@@ -165,10 +165,10 @@ def api_cvp_detailed(data: dict):
@router.post("/cash-forecast")
def api_cash_forecast(data: dict, db: Session = Depends(get_db)):
def api_cash_forecast(request: Request, data: dict, db: Session = Depends(get_db)):
"""现金流预测 — 根据历史KPI推算未来30天现金流"""
try:
entity_id = int(data.get("entity_id", 1))
entity_id = resolve_entity_for_request(request, int(data.get("entity_id", 1)))
days = int(data.get("days", 30))
current_cash = float(data["current_cash"]) if data.get("current_cash") else None
result = forecast_cash_flow(entity_id, db, days, current_cash)
@@ -628,10 +628,10 @@ def _get_dim_detail_indicators(dimension: str, entity: dict) -> list:
@router.post("/growth-quality")
def api_growth_quality(data: dict):
def api_growth_quality(request: Request, data: dict):
"""增长质量诊断 — 五维度评分+综合评分+诊断结论"""
try:
entity_id = data.get("entity_id")
entity_id = resolve_entity_for_request(request, data.get("entity_id"))
ENTITY_DATA = {
1: {"entity":"陕西酣客文化传媒","rebateRate":82.8,"trueGrossMargin":18.6,"cashRatio":0.6,"expenseGrowthRate":2.2,"revenueGrowthRate":1.0,"mgmtRatio":447},
2: {"entity":"陕西博海网络科技","rebateRate":0,"trueGrossMargin":13.1,"cashRatio":6.7,"expenseGrowthRate":0.8,"revenueGrowthRate":1.0,"mgmtRatio":1.4},