问题: 预算数据无map_id, 两地图共用KPI时预算无法区分(切地图数据均显示) 修复: - budget_plans 加 map_id 字段+索引 - list 支持 map_id 过滤(含NULL历史预算兼容迁移) - create 收 map_id + 去重键含map_id(同KPI不同地图可各自预算) - 前端: loadBudget/loadStrategyBudget 传 map_id, 保存带 map_id - 端到端验证: 地图51 F_REVENUE 300(map_id=51) 地图51显示/地图32不显示 ✓ pytest 35+11 passed, 部署
- 12表加entity_id列(预算/偏差/规则/成本4表/费用2表/BI2表/驱动预算) - 模型: BudgetPlan/StandardCost/ActualCost/AbcActivity/AbcAllocation/DriverFactorBudget/BiReport/Template/BudgetDeviationAlert/ExpenseRule/Reimbursement/AlertRule - API隔离: budget plans / cost standard+actual / expenses rules+reimb / bi_reports list / alert_rules list 按token企业过滤 - 回填: kpi_id关联按KPI归属, 无关联默认酣客(entity=1); 当前数据全归酣客 - 验证: import+全端点200+pytest 451 passed
包含前后端完整代码: - 前端:Vue3+Vite+ElementPlus - 后端:FastAPI+SQLAlchemy - 模块:驾驶舱/KPI/战略地图/预警/预算/成本/预测/改善行动 - 当前版本:v1.0.0