init: 初始化 dpb 桃育种系统代码库

前后端 + 后端 FastAPI 全量源码、部署脚本与文档。
This commit is contained in:
34047007@qq.com
2026-08-06 00:17:49 +08:00
commit b95053c52c
1469 changed files with 322298 additions and 0 deletions
@@ -0,0 +1,52 @@
from app.core.base_schema import CommonSchema
"""花粉档案 —— Pydantic 校验/序列化模型。"""
from datetime import date, datetime
from pydantic import BaseModel, ConfigDict, Field
class PollenBaseSchema(BaseModel):
model_config = ConfigDict(from_attributes=True)
lot_code: str = Field(..., description="花粉批次号(如 PL-2026-0001")
male_tree_id: int | None = Field(default=None, description="采集父本树(混合/外地采集可空)")
source_type: str = Field(default="tree", description="来源类型 tree/mixed/external")
source_desc: str | None = Field(default=None, description="来源说明(混合配比/外地品种)")
collect_date: date | None = Field(default=None, description="花粉采集日期")
collect_method: str | None = Field(default=None, description="采集方式(采花取粉/振动收集…)")
quantity: str | None = Field(default=None, description="采集量(如 50g / 花药数)")
storage_method: str = Field(default="fridge", description="贮藏方式 fridge/minus20/minus80/liquid_n2")
viability_method: str | None = Field(default=None, description="活力测定方法 ttc/germination")
viability_pct: float | None = Field(default=None, description="花粉活力 %")
viability_test_date: date | None = Field(default=None, description="活力测定日期")
expiry_date: date | None = Field(default=None, description="有效期/失效日期(授粉窗口上界)")
remark: str | None = Field(default=None, description="备注")
class PollenCreateSchema(PollenBaseSchema):
pass
class PollenUpdateSchema(PollenBaseSchema):
lot_code: str | None = Field(default=None, description="花粉批次号")
male_tree_id: int | None = Field(default=None, description="采集父本树")
source_type: str | None = Field(default=None, description="来源类型 tree/mixed/external")
storage_method: str | None = Field(default=None, description="贮藏方式 fridge/minus20/minus80/liquid_n2")
class PollenOutSchema(PollenBaseSchema):
id: int
uuid: str
male_tree_no: str | None = None # 由 Service 层联表填充
created_time: datetime | None = None
updated_time: datetime | None = None
created_by: CommonSchema | None = None
updated_by: CommonSchema | None = None
class PollenQueryParam(BaseModel):
lot_code: str | None = Field(default=None, description="花粉批次号", json_schema_extra={"q": "like"})
male_tree_id: int | None = Field(default=None, description="采集父本树", json_schema_extra={"q": "eq"})
source_type: str | None = Field(default=None, description="来源类型", json_schema_extra={"q": "eq"})
storage_method: str | None = Field(default=None, description="贮藏方式", json_schema_extra={"q": "eq"})
viability_method: str | None = Field(default=None, description="活力测定方法", json_schema_extra={"q": "eq"})