53 lines
2.4 KiB
Python
53 lines
2.4 KiB
Python
"""农事操作 数据模型"""
|
||||
|
|
from datetime import date
|
|||
|
|
|
|||
|
|
from sqlalchemy import Date, Float, ForeignKey, Index, Integer, String, Text
|
|||
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
|||
|
|
|
|||
|
|
from app.core.base_model import MappedBase, ModelMixin, UserMixin
|
|||
|
|
|
|||
|
|
|
|||
|
|
class FieldOperationModel(ModelMixin, UserMixin, MappedBase):
|
|||
|
|
"""农事操作(§3.3;施肥/喷药/修剪/灌溉/疏果/套袋/采收)。
|
|||
|
|
|
|||
|
|
tree_id/plot_id 可空二选一:既可针对单株记录,也可针对整块小区记录。
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
__tablename__ = "bre_field_operation"
|
|||
|
|
|
|||
|
|
tree_id: Mapped[int | None] = mapped_column(
|
|||
|
|
Integer, ForeignKey("bre_tree.id", ondelete="CASCADE"), index=True, nullable=True, comment="单株(可空)", default=None
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
plot_id: Mapped[int | None] = mapped_column(
|
|||
|
|
Integer, ForeignKey("bre_plot.id", ondelete="CASCADE"), index=True, nullable=True, comment="小区(可空)", default=None
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
op_type: Mapped[str] = mapped_column(
|
|||
|
|
String(32), nullable=False, comment="操作类型(field_operation字典: fertilize/spray/prune/irrigate/thinning/bagging/harvest)"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
op_date: Mapped[date | None] = mapped_column(Date, nullable=True, comment="操作日期", default=None)
|
|||
|
|
|
|||
|
|
op_detail: Mapped[str | None] = mapped_column(Text, nullable=True, comment="操作详情/用量", default=None)
|
|||
|
|
|
|||
|
|
yield_kg: Mapped[float | None] = mapped_column(Float, nullable=True, comment="单株产量(kg,op_type=harvest)", default=None)
|
|||
|
|
|
|||
|
|
fruit_count: Mapped[int | None] = mapped_column(Integer, nullable=True, comment="果实个数(op_type=harvest)", default=None)
|
|||
|
|
|
|||
|
|
avg_fruit_weight: Mapped[float | None] = mapped_column(Float, nullable=True, comment="平均单果重(g,op_type=harvest)", default=None)
|
|||
|
|
|
|||
|
|
marketable_rate: Mapped[float | None] = mapped_column(Float, nullable=True, comment="好果率(%,op_type=harvest)", default=None)
|
|||
|
|
|
|||
|
|
operator_id: Mapped[int | None] = mapped_column(
|
|||
|
|
Integer, ForeignKey("bre_personnel.id", ondelete="CASCADE"), index=True, nullable=True, comment="操作人(育种人员)", default=None
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
remark: Mapped[str | None] = mapped_column(String(512), nullable=True, comment="备注", default=None)
|
|||
|
|
|
|||
|
|
status: Mapped[int] = mapped_column(Integer, nullable=False, default=1, comment="状态(1正常/0停用)")
|
|||
|
|
|
|||
|
|
__table_args__ = (
|
|||
|
|
Index("ix_bre_field_operation_created_deleted", "created_time", "is_deleted"),
|
|||
|
|
)
|