plans.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. from __future__ import annotations
  2. from sqlmodel import Field, SQLModel
  3. class PurchasePlan(SQLModel, table=True):
  4. """计划表 - 对应 purchase_plans"""
  5. __tablename__ = "purchase_plans"
  6. id: int | None = Field(default=None, primary_key=True)
  7. plan_no: str | None = Field(default=None, max_length=255, index=True) # 计划号
  8. plan_date: str = Field(max_length=255, index=True) # 计划日期
  9. start_date: str | None = Field(default=None, max_length=255, index=True) # 开始时间
  10. end_date: str | None = Field(default=None, max_length=255, index=True) # 结束时间
  11. business_type: str = Field(max_length=255, index=True) # 业务类型(入库/出库)
  12. product: str = Field(max_length=255, index=True) # 产品名称
  13. specification: str | None = Field(default=None, max_length=255) # 规格
  14. planned_quantity: float = Field() # 计划数量(t)
  15. vehicle_no: str | None = Field(default="", max_length=255) # 车牌号
  16. customer_name: str | None = Field(default=None, max_length=255) # 往来单位
  17. remarks: str | None = Field(default=None) # 备注
  18. is_deleted: int = Field(default=0, index=True) # 是否删除(0=否,1=是)
  19. execution_status: str | None = Field(default=None, max_length=50, index=True) # 执行状态
  20. executed_at: str | None = Field(default=None, max_length=255) # 执行时间
  21. last_weighing_slip_id: int | None = Field(default=None) # 最后关联的地磅单ID
  22. executed_quantity: float | None = Field(default=0) # 已执行量(kg)
  23. created_at: str = Field(max_length=255) # 创建时间
  24. auto_generate_enabled: int = Field(default=0, index=True) # 是否自动按月生成(0=否,1=是)
  25. auto_generate_end_month: str | None = Field(
  26. default=None, max_length=7, index=True
  27. ) # 自动生成结束月份(YYYY-MM,None=一直生成)
  28. auto_generate_last_month: str | None = Field(
  29. default=None, max_length=7
  30. ) # 最后一次自动生成的月份(YYYY-MM,用于防重复)
  31. # 保留别名以兼容
  32. Plan = PurchasePlan