feat: 持续规划 — 滚动预算+自动延展+对比线+偏差告警
This commit is contained in:
@@ -382,6 +382,32 @@ class CashForecast(Base):
|
||||
created_at = Column(DateTime, server_default=func.now())
|
||||
|
||||
|
||||
class SystemConfig(Base):
|
||||
"""系统配置 — key-value存储"""
|
||||
__tablename__ = "system_configs"
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
config_key = Column(String(100), unique=True, nullable=False, comment="配置键")
|
||||
config_value = Column(String(500), nullable=True, comment="配置值")
|
||||
description = Column(String(500), nullable=True, comment="配置说明")
|
||||
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now())
|
||||
|
||||
|
||||
class BudgetDeviationAlert(Base):
|
||||
"""预算偏差预警记录"""
|
||||
__tablename__ = "budget_deviation_alerts"
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
kpi_id = Column(Integer, ForeignKey("kpi_definitions.id"), nullable=False, comment="关联KPI")
|
||||
period = Column(String(20), nullable=False, comment="期间 YYYY-MM")
|
||||
budget_value = Column(Float, nullable=True, comment="预算值")
|
||||
actual_value = Column(Float, nullable=True, comment="实际值")
|
||||
deviation_rate = Column(Float, nullable=True, comment="偏差率 %")
|
||||
deviation_value = Column(Float, nullable=True, comment="偏差绝对值")
|
||||
alert_level = Column(String(20), default="warning", comment="warning/critical")
|
||||
status = Column(String(20), default="open", comment="open/resolved/ignored")
|
||||
suggestion = Column(String(500), nullable=True, comment="处理建议")
|
||||
created_at = Column(DateTime, server_default=func.now())
|
||||
|
||||
|
||||
class ForecastAccuracy(Base):
|
||||
"""预测准确率 — 上期预测 vs 本期实际"""
|
||||
__tablename__ = "forecast_accuracy"
|
||||
|
||||
Reference in New Issue
Block a user