weighing.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from __future__ import annotations
  2. from sqlmodel import Field, SQLModel
  3. class WeighingSlip(SQLModel, table=True):
  4. """地磅单表 - 对应 weighing_slips"""
  5. __tablename__ = "weighing_slips"
  6. id: int | None = Field(default=None, primary_key=True)
  7. vehicle_no: str = Field(max_length=255, index=True) # 车号
  8. plan_no: str | None = Field(default=None, max_length=255, index=True) # 计划单号
  9. cargo_name: str = Field(max_length=255, index=True) # 货物名称
  10. business_type: str = Field(max_length=255) # 业务类型(入库/出库)
  11. batch_no: str | None = Field(default=None, max_length=255) # 批次号
  12. supplier: str = Field(max_length=255) # 供货单位
  13. consignee: str = Field(max_length=255) # 收货单位
  14. gross_weight: float = Field() # 毛重(kg)
  15. gross_weight_time: str = Field(max_length=255, index=True) # 毛重时间
  16. tare_weight: float = Field() # 皮重(kg)
  17. tare_weight_time: str = Field(max_length=255) # 皮重时间
  18. deduction: float | None = Field(default=0) # 扣杂(kg)
  19. net_weight: float = Field() # 净重(kg)
  20. planned_quantity: float | None = Field(default=None) # 计划数量(kg)
  21. executed_quantity: float | None = Field(default=None) # 执行数量(kg)
  22. purchase_plan_id: int | None = Field(default=None, index=True) # 关联的计划ID
  23. inbound_outbound_id: int | None = Field(default=None, index=True) # 关联的出入库单ID
  24. weighing_point: str | None = Field(default="山峡地磅", max_length=255) # 称重点
  25. remarks: str | None = Field(default=None) # 备注
  26. current_quantity: float | None = Field(default=None) # 本次量(kg)
  27. is_voided: int = Field(default=0, index=True) # 是否作废(0=否, 1=是)
  28. created_at: str = Field(max_length=255) # 创建时间
  29. # 保留别名以兼容
  30. Weighing = WeighingSlip