37 KiB
桃育种数字化管理系统 — 业务功能规划报告(修正版)
数据源:
D:\dpb\doc\dev(业务需求文档)+D:\dpb\dpb(已有代码库)+ 2025-2026行业调研
目标机构: 中国农业科学院郑州果树研究所 桃育种课题组
编制日期: 2026-07-28
目录
- 两目录定位说明
- 已有技术基础:FastapiAdmin 框架
- 需求文档精读总结(As-Is 业务)
- 市场育种现状与机会窗口
- 业务功能全景规划(To-Be)
- 技术架构设计
- 实施优先级与路线图
- 还需哪些参考
- 实施进展更新(截至 2026-07-28)
一、两目录定位说明
| 目录 | 内容 | 状态 |
|---|---|---|
D:\dpb\doc\dev |
业务需求文档、方案书、数据字典、用户反馈 | ✅ 已完整精读(不可修改) |
D:\dpb\dpb |
实际项目代码库——基于 FastapiAdmin v3.0.0 框架 | ✅ 已全面探索(不可修改) |
核心结论: 本报告编制时(2026-07-28)D:\dpb\dpb 是一个干净的 FastapiAdmin 脚手架、尚无育种业务模块;同一日 breeding 模块已全部落地开发(14 个业务域 + 对应前后端与菜单),该"脚手架"结论已过时,最新状态见第九节。任务已从"规划"转为"已实现 + 持续迭代"。
二、已有技术基础:FastapiAdmin 框架
2.1 技术栈(已就绪)
| 层 | 技术 | 版本 |
|---|---|---|
| 后端 | Python FastAPI + SQLAlchemy 2.0 + Alembic | Python 3.12 |
| 数据库 | PostgreSQL 16(库名 dpb) |
pg 16 |
| 缓存 | Redis | 7.x |
| 前端 Web | Vue 3 + Vite + TypeScript + Element Plus + Pinia | Vue 3.5 |
| 前端 移动端 | UniApp(H5 + 小程序 + App) | - |
| 认证 | JWT + OAuth2 + RBAC | - |
| 定时任务 | APScheduler | 3.11 |
| AI | Agno 智能体框架 + DeepSeek API(deepseek-chat) | - |
| 部署 | Docker Compose + Nginx + SSL | - |
2.2 框架内置能力(开箱即用)
| 能力 | 对育种系统的价值 |
|---|---|
| RBAC(用户/角色/菜单/部门/岗位) | 直接复用,配置育种家/技术员/数据录入员角色 |
| 数据字典管理 | 直接承载38-40个育种枚举字典 |
| 操作日志审计 | 满足"不可物理删除+全字段修改留痕"需求 |
| 代码生成器 | 选择数据库表 → 自动生成前后端 CRUD 代码,大幅加速育种模块开发 |
| 文件管理 | 支撑果实/单株照片上传 |
| 定时任务 | 品种权年费到期提醒等 |
| AI 智能体(Agno) | 育种知识库问答、大模型辅助决策入口 |
| 多租户架构(SaaS v3.6.0) | 支持多课题组/多基地独立数据隔离 |
| 移动端(UniApp) | 田间调查平板/手机采集的天然载体 |
2.3 框架当前数据库表(仅系统管理)
框架系统表约 27 张(sys_* / task_* / gen_*);另已新建 14 个 breeding 业务域、共 14 张 breeding_* 业务表(详见第九节),育种业务已实际落地。
三、需求文档精读总结(As-Is 业务)
以下内容来自
D:\dpb\doc\dev下全部文档的精读提取。
3.1 文档清单与核心价值
| 文档 | 类型 | 核心价值 |
|---|---|---|
| AI育种系统功能规划.docx | 需求规划 | 现有6模块+AI扩展方向+P0/P1缺失功能 |
| 桃育种数字化项目方案书_V2.11.docx | 技术方案 | 10阶段全流程+四层架构+三期规划+ABLUP统计引擎 |
| 果树育种全流程详解与数据字典.docx | 数据规格 | 全部38个枚举字典+10环节字段定义+业务规则+实施计划 |
| 育种信息管理系统-YIN20140106.doc | 旧系统(2014) | 6模块原始需求基线 |
| 流程.docx | 法规分析 | 品种登记≠品种权;先品种权后登记 |
| 桃、油桃育种技术程序.doc | 技术规程(2004) | 6大品种系列目标+完整育种SOP |
| 桃杂种单株果实调查勾选表.docx | 纸质调查表 | A4单页设计,9大类性状勾选 |
| 150614果实鉴定表.docx | 用户反馈 | 移动端痛点、查询不便、打印需求、权限需求 |
| 4单株鉴定表1016前.xlsx | 实测数据 | 164行×43列真实鉴定数据 |
| 1-3年PDF记录 | 历史档案 | 2011-2012年杂交/座果/成苗记录 |
3.2 10阶段育种全流程
阶段1: 育种目标与组合选配
阶段2: 杂交授粉(去雄→套袋→授粉→座果)
阶段3: 种子处理(胚培养/沙藏)
阶段4: 杂种苗培育(温室→成苗)
阶段5: 田间定植(编号→定位→基地分配)
阶段6: 单株鉴定(★核心★ 7个子标签页,多年多点鉴定)
阶段7: 评价筛选(ABLUP/EBV/选择指数→决选晋级)
阶段8: 优系复选(高接/扩繁/多点试验)
阶段9: 品种保护(DUS测试+植物新品种权申请)
阶段10: 品种登记(区域试验+品种登记)
3.3 核心设计约束
- 不可物理删除:DELETE →
is_deleted=true+ 全字段修改日志 - 数据字典驱动:38个枚举字典统一维护
- 编号体系:组合编号(YY+3位序号) → 单株编号(全局唯一) → 全程追溯
- 统计边界(一期):仅系谱ABLUP,不含分子标记/GS/GWAS
- 分三期实施:一期(0-12月)数字化+传统遗传学 → 二期(12-24月)分子育种 → 三期(24月+)AI育种
- 法规修正:桃走品种登记(非审定),且须先品种权后登记(否则丧失新颖性)
3.4 已识别的功能缺口
| 优先级 | 缺失功能 | 来源 |
|---|---|---|
| P0 | 亲本资源管理 | AI育种系统功能规划.docx |
| P0 | 基地/试验地管理 | 同上 |
| P0 | 人员花名册 | 同上 |
| P0 | 统一修改日志(框架层) | 同上 |
| P1 | 数据字典管理UI(38个枚举字典) | 同上 |
| P1 | 图片存储方案 | 同上 |
| P2 | 移动端离线采集+数据可靠性 | 150614果实鉴定表.docx 用户痛诉 |
| P2 | 直接点选式UI(非两步操作) | 同上 |
| P2 | 打印输出优化(年份筛选+单株单页) | 同上 |
四、市场育种现状与机会窗口
4.1 政策与产业
- 2025中央一号文件:首提"农业新质生产力",生物育种+AI+数字技术
- 市场规模:2024中国智慧农业约1214亿元,同比+10%
- 南繁硅谷:超70%新育成品种经南繁选育
4.2 果树育种数字化机会
大田主粮(玉米/水稻/小麦)的GS/表型平台已成熟,但果树(多年生、周期长、性状多)数字化整体滞后。 本项目针对桃育种,是国内果树育种数字化的蓝海先行者。
| 竞品/标杆 | 覆盖作物 | 本项目差异 |
|---|---|---|
| CropGBM | 玉米 | 不覆盖果树 |
| 金种子平台 | 水稻/玉米/小麦/蔬菜 | 未覆盖桃/果树 |
| 阿里达摩院 | 多作物平台级 | 不涉及特定树种SOP |
| 本项目 | 桃/油桃 | 唯一针对果树的完整SOP+数据字典系统 |
五、业务功能全景规划(To-Be)
5.1 模块总览
┌──────────────────────────────────────────────────────────────────────────┐
│ 桃育种数字化管理系统 (FastapiAdmin 扩展) │
├────────────────┬────────────────┬────────────────┬───────────────────────┤
│ 基础支撑层 │ 育种流程层 │ 统计决策层 │ AI 增强层 │
│ (框架复用+扩展) │ (核心新建) │ (核心新建) │ (框架AI集成+新建) │
├────────────────┼────────────────┼────────────────┼───────────────────────┤
│ ✅ RBAC权限 │ 1.组合选配 │ 描述统计 │ Agno智能体→育种知识库 │
│ ✅ 用户/角色 │ 2.杂交授粉 │ 方差分析 │ DeepSeek→亲本推荐 │
│ ✅ 部门/岗位 │ 3.种子处理 │ GCA/SCA配合力 │ 图像表型识别(相机SDK) │
│ ✅ 数据字典 │ 4.杂种苗培育 │ ABLUP/EBV │ 异常预警(规则引擎) │
│ ✅ 操作日志 │ 5.田间定植 │ 加性(狭义)h²遗传力 │ 分钟育种Demo │
│ ✅ 文件管理 │ 6.单株鉴定 │ Smith-Hazel指数 │ │
│ ✅ 定时任务 │ 7.评价筛选 │ 约束选择指数 │ │
│ ✅ 代码生成器 │ 8.优系复选 │ 对比分析 │ │
│ ✅ 多租户(SaaS) │ 9.品种保护(DUS) │ PCA/相关矩阵 │ │
│ 🆕 亲本资源 │10.品种登记 │ 数据导出 │ │
│ 🆕 基地管理 │ │ 统计报表 │ │
│ 🆕 人员花名册 │ │ │ │
│ 🆕 图片存储方案 │ │ │ │
│ 🆕 移动端(PWA) │ │ │ │
└────────────────┴────────────────┴────────────────┴───────────────────────┘
5.2 核心业务模块详细设计
模块1:亲本资源管理(P0新建)
独立数据表 breeding_germplasm(亲本/种质档案,不含表型与系谱,v2.1 按 §10 决策改写)
v2.1 修正(R5):种质是"亲本/来源档案",不内联表型(果重/SSC/硬度等走
breeding_observation,见 §10.2)、不内联系谱(系谱走独立breeding_pedigree,见 §10.2 / 规格 §3.18,pedigree_note自由文本已移除)。避免与 §10 决策自相矛盾。
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int PK | 自增主键 |
| cultivar_name | varchar(100) | 品种/种质名称 |
| variety_type | varchar(20) | 变种类型(普通桃/油桃/蟠桃/油蟠桃/黄肉→字典) |
| origin | varchar(200) | 来源 |
| preservation_site | varchar(200) | 保存地 |
| can_be_female | bool | 可作母本 |
| can_be_male | bool | 可作父本 |
| is_rootstock | bool | 可作砧木(标记"该种质可作砧木";实际观测层砧木清单见 breeding_rootstock) |
| passport_* | — | FAO-MCPD 护照块(institute_code/country_origin/collection_site/...,见规格 §4) |
| photo_path | varchar(500) | 照片路径 |
| audit fields | - | created_at/updated_at/created_by/tenant_id/is_deleted |
表型与系谱分别由
breeding_observation/breeding_pedigree承载;本表仅保留档案属性。
与框架复用: 代码生成器直接生成前后端CRUD;RBAC控制访问;文件管理存储照片
模块2:试验地/基地管理(P0新建)
breeding_site 表:基地名称、地址、面积、经纬度、生态区类型
breeding_plot 表:基地内区块划分(行向/行数/列数/位点网格)
关联: 定植记录关联 plot_id → MET分析的环境因子
模块3:人员花名册(P0新建,可扩展已有 sys_user)
方案A(推荐): 扩展现有 sys_user 表,增加育种角色:
- 育种家(全部权限)
- 数据分析师(读+统计)
- 技术员(录入+调查+拍照)
- 数据录入员(仅果实调查+植物性状录入,不可查看组合/输出打印)
- 访客(只读统计报表)
方案B: 单建 breeding_personnel 表,作为 sys_user 的扩展
模块4:组合选配(一期核心业务)
breeding_cross_combination 表
- 母本/父本 → 从
breeding_germplasm选择 - 组合编号:自动生成(YY+3位序号)
- 育种目标:文本描述
- 设计人/授粉人 → 从人员表选择
- 校验规则:亲缘系数>0.25预警、母本GCA历史数据提示
- 约束:不可删除,编号不可改,修改留痕
模块5:杂交授粉
breeding_pollination 表
- 继承组合配置字段(母本/父本/基地/位置不可编辑)
- 去雄/套袋/授粉日期、授粉方式(字典)、授粉花数
- 坐果率自动计算 = n_set/n_pollinated(含95%置信区间)
- 异常预警:坐果率<10%标红
模块6:种子处理
breeding_seed_treatment 表
- 处理方法(试管胚培/低温沙藏/室外沙藏→字典)
- 采果数→取种数→处理数→播移数→出苗数
- 早熟品种(<70d)自动提醒胚挽救
模块7:杂种苗培育+田间定植
breeding_seedling表:播移/成苗/成苗率breeding_planting表:单株编号(全局唯一)、基地/行向/位置、定植日期、责任人
模块8:单株鉴定(★ 数据采集核心 ★)
breeding_tree_evaluation 主表 + 关联子表
7个子标签页(从纸质勾选表映射):
- 基本信息:状态(未知/入选/初选/重点/保存/淘汰→字典)
- 基本鉴定:生长势、生长型、花期、花型、花粉量、负载量、成熟一致性
- 果实外观:果形、果顶、梗洼、缝合线、对称性(全部字典驱动)
- 果皮:茸毛、底色、着色面积/深度/亮度/形态/均匀度(新增)、剥离度
- 果实大小:最大果重、平均果重、纵径、横径、侧径
- 果肉:厚度、肉色、硬度、花色苷、SSC、纤维、汁液、甜酸度、香气、品质
- 果核:粘离性、大小、核形、裂核
UI要求(来自用户反馈):
- 直接点选式(非两步操作)
- 平板适配(按钮靠左)
- 相机直拍→自动关联单株
- 离线上传+自动同步
模块9:评价筛选(ABLUP统计引擎)
技术方案(对标方案书V2.11):
- 后端 FastAPI → subprocess 隔离调用 Rscript → lme4/sommer/AGHmatrix(规避 rpy2 的 GIL/内存/R 环境耦合脆弱)
- 输入:≥2年果数据完整性状测定值
- 输出:EBV排名 + reliability(含 h²) + 选择指数 → 决选建议
- 混合模型含
clone×year随机互作(桃多年生,同 clone 跨年观测为重复测量,v2.1/R9)
模块10-12:优系复选 → 品种保护(DUS) → 品种登记
分别在二期/三期实施,一期预留数据结构和UI占位。
5.3 统计决策能力矩阵
| 分析能力 | 阶段 | 技术方案 |
|---|---|---|
| 描述统计+异常值检测 | 一期 | Python + Pandas/Scipy |
| 方差分析(ANOVA/GLMM) | 一期 | R lme4/sommer(subprocess 隔离调用 Rscript) |
| 性状间相关+PCA | 一期 | Python Sklearn/Scipy |
| GCA/SCA配合力(亲本选配辅助,非一期主线) | 二期 | R sommer (Griffing方法4+REML) |
| ABLUP育种值(EBV) | 一期 | R sommer (系谱A矩阵) |
| 加性(狭义)h²遗传力(落库取克隆均值 h²=V_clone/(V_clone+V_e/k̄)) | 一期 | R sommer |
| Smith-Hazel选择指数 | 一期 | Python numpy |
| MET多环境分析 | 一/二期 | R sommer (FA结构) |
| GWAS | 二期 | R GAPIT/FarmCPU |
| GS/ssGBLUP | 三期 | R BGLR/sommer |
| 基因型数据处理 | 三期满 | PLINK/vcftools 外壳调用 |
5.4 AI 增强能力
| 能力 | 实现方式 | 框架复用 |
|---|---|---|
| 育种知识库问答 | Agno智能体 + DeepSeek + 内部品种档案RAG | ✅ 复用现有AI模块 |
| 大模型亲本推荐 | DeepSeek基于历史GCA/性状数据推荐 | 🆕 新建 |
| 图像表型识别(果径/着色/缺陷) | 工业相机SDK + YOLO/PhenoCV | 🆕 新建 |
| 异常预警 | 规则引擎 + 统计阈值 | 🆕 新建 |
| 分钟育种 | 育种家输入目标→分钟级最优组合推荐 | 三期满新建 |
5.5 多租户架构应用
框架已支持 SaaS 多租户(CHANGELOG v3.6.0)。对育种场景的价值:
| 租户 | 应用场景 |
|---|---|
| 桃育种课题组(郑州果树所) | 主租户,全功能 |
| 梨育种课题组 | 独立租户,共享框架,独立数据 |
| 葡萄育种课题组 | 同上 |
| 合作基地/区试点 | 受控租户,仅数据录入+查看 |
六、技术架构设计
6.1 整体架构
┌─────────────────────────────────────────────────────────────────┐
│ 前端层 │
│ ├─ Web (Vue3+Element Plus+Vite) → 后台管理端 │
│ ├─ App (UniApp) → 移动端田间采集 │
│ └─ 大屏 (ECharts+DataV) → 育种数据看板 │
├─────────────────────────────────────────────────────────────────┤
│ 后端 API 层 (FastAPI) │
│ ├─ module_system/ (框架复用) → RBAC/字典/日志/文件 │
│ ├─ module_ai/ (框架复用) → Agno智能体 │
│ ├─ module_task/ (框架复用) → 定时提醒 │
│ ├─ module_breeding/ (新建核心) → 10阶段业务模块 │
│ └─ module_stats/ (新建) → ABLUP/统计引擎 (subprocess 隔离 Rscript) │
├─────────────────────────────────────────────────────────────────┤
│ 数据层 │
│ ├─ PostgreSQL 16 → 业务数据+表型数据 │
│ ├─ Redis → 缓存+Session │
│ ├─ MinIO → 照片/文件(工业相机/调查照片) │
│ └─ Neo4j (三期) → 系谱知识图谱 │
├─────────────────────────────────────────────────────────────────┤
│ 统计引擎 (subprocess 隔离 Rscript) │
│ └─ lme4 + sommer + AGHmatrix + BGLR (三期) │
├─────────────────────────────────────────────────────────────────┤
│ AI 引擎 │
│ └─ Agno + DeepSeek + 图像模型(YOLO/PhenoCV) │
└─────────────────────────────────────────────────────────────────┘
6.2 数据库表设计概览
一期新建业务表(14 个业务域,对应 14 张 breeding_* 表):
| 业务域 | 表名 | 说明 |
|---|---|---|
| 亲本资源 | breeding_germplasm | 手写复用,种质/品种档案 |
| 基地管理 | breeding_site | 手写复用,试验基地 |
| 试验地块 | breeding_plot | 寄居 site 包,基地内区块网格 |
| 育种目标 | breeding_target | 主数据表(target_name/series/is_preset/remark) |
| 杂交组合 | breeding_cross_combination | combination_code 唯一;breeding_target_id 目标外键;female/male_parent_id 母父本外键 |
| 授粉管理 | breeding_pollination | combination_id/plot_id/breeding_personnel_id 外键 |
| 种子处理 | breeding_seed_treatment | combination_id/breeding_personnel_id 外键 |
| 育苗管理 | breeding_seedling | combination_id/breeding_personnel_id 外键 |
| 定植管理 | breeding_planting | combination_id/plot_id/seedling_id/breeding_personnel_id 外键 |
| 育种单株 | breeding_tree | 新增实体;tree_no 唯一;combination_id/plot_id 外键;status |
| 单株评价 | breeding_tree_evaluation | 鉴定主记录(tree_id/evaluate_date/评价人/remark/overall_score);果实性状明细迁 breeding_trait_observation 长表(v2.2/F1) |
| 单株照片 | breeding_tree_photo | tree_id 外键;photo_type/photo_url/capture_date |
| 选育结果 | breeding_selection_result | tree_id 外键;is_selected 选育结论 |
| 人员花名册 | breeding_personnel | 独立人员表(方案B);name 唯一;被 5 个业务域外键引用 |
| 数据字典 | (复用 sys_dict_type/sys_dict_data) | 待灌入 38-40 个育种枚举字典 |
| 入选克隆系谱 | breeding_clone | v2.0 第0阶段:入选克隆系谱表(clone_id / combination_id / 母父本 / planting_year / status,无砧木),遗传身份与 EBV 锚点 |
| 砧木字典 | breeding_rootstock | v2.0 第0阶段:砧木清单(只挂 observation 层,绝不进 A 矩阵) |
| 独立系谱表 | breeding_pedigree | v2.1 第0阶段:个体系谱(dam/sire 指回本表递归闭环),A 矩阵唯一权威(规格 §3.18) |
| 单株鉴定明细 | breeding_trait_observation | v2.2 补登记:单株每次鉴定性状明细长表(挂 evaluation_id/tree_id,喂 EBV),取代 tree_evaluation 固定列(规格 §3.2b) |
二期新建表(~8张): 优系复选、DUS测试记录、品种权档案、区域试验、基因型/标记数据
三期新建表(~5张): GS模型/预测记录、知识图谱节点边、品种权年费管理
6.3 开发策略:代码生成器加速
FastapiAdmin 自带代码生成器(选表→出前后端CRUD),可大幅加速育种模块开发:
工作流:
1. 设计 breeding_germplasm 表结构 → 在DB中建表
2. 代码生成器导入表 → 一键生成 model/service/controller + Vue页面
3. 手动定制业务逻辑(校验规则、关联查询、统计计算)
4. 菜单管理中添加育种模块菜单 → RBAC分配权限
预计可减少 60-70% 的 CRUD 重复代码编写。
七、实施优先级与路线图
7.1 优先级矩阵
高业务价值
│
P0-2 │ P0-1(立即启动)
移动端PWA │ 亲本资源管理
打印输出 │ 基地管理
文件管理 │ 数据字典(灌入38枚举)
│ 操作日志(框架已有,确认启用)
────────────┼────────────── 高紧急度
P2 │ P1
知识图谱 │ 组合选配+杂交授粉+种子处理+培育+定植 CRUD
分钟育种 │ 单株鉴定(核心) + 移动端点选UI
GS模型 │ 统计引擎(描述统计+GCA+ABLUP)
│ 评价筛选(EBV+选择指数)
低业务价值
7.2 推荐实施路线
| 阶段 | 时间 | 核心交付 | 框架复用点 |
|---|---|---|---|
| V0.5 基础数据就绪 | 0-2周 | 亲本/基地表+数据字典灌入+RBAC角色配置+审计日志验证 | 代码生成器建表→出CRUD;系统管理配置角色 |
| V1.0 核心流程上线 | 2-12周 | 阶段1-7 CRUD+单株鉴定7标签页+移动端点选 | 代码生成器加速;文件管理存照片 |
| V1.1 统计引擎 | 12-18周 | ABLUP/EBV/选择指数+描述统计+Web端可交互 | R 统计引擎(subprocess 隔离 Rscript 调用) |
| V1.2 移动端+优化 | 18-24周 | PWA离线采集+相机拍照+打印输出+评价筛选决策 | UniApp移动端框架 |
| V2.0 分子育种 | 24-36周 | 阶段8-10+GWAS+MAS+MET+DUS证据包 | - |
| V3.0 AI育种 | 36周+ | GS+亲本推荐+知识图谱+分钟育种+大模型育种顾问 | Agno+DeepSeek+Neo4j |
八、还需哪些参考
8.1 行业标准与法规
| 参考 | 用途 | 优先级 |
|---|---|---|
| UPOV TG/PEACH 桃DUS测试指南(最新版) | DUS测试字段对齐 | 🔴 必读 |
| BrAPI(Breeding API)标准 v2.x | 对接组学/表型平台,避免数据孤岛 | 🟡 建议 |
| MIAPPE 植物表型实验元数据标准 | 表型元数据规范 | 🟡 建议 |
| 《种子法》+《植物新品种保护条例》+《非主要农作物品种登记办法》 | 品种登记合规 | 🔴 必读 |
| NY/T 农作物种质资源数据规范 | 种质资源字段标准 | 🟡 建议 |
8.2 外部竞品/标杆
| 平台 | 关注点 |
|---|---|
| 金种子平台(北京农林科学院) | 果树模块功能对标 |
| BreedBase / Field Book | 田间采集UI设计 + BrAPI对接 |
| Cassavabase | 多年生作物育种数据管理参考 |
| CropGBM | GS工具箱设计参考 |
8.3 技术待确认
| 议题 | 说明 |
|---|---|
| R环境部署 | R 统计引擎以 subprocess 隔离调用 Rscript(lme4/sommer/AGHmatrix),弃用 rpy2(GIL/内存/R 环境耦合脆弱);宿主机需装 R+r 包,建议容器化或 REST 隔离 |
| 工业相机选型 | 方案书提及工业相机SDK,具体型号和接口需确认 |
| MinIO部署 | 照片存储方案,方案书已指定但框架当前未集成 |
| 移动端策略 | 框架有UniApp模板,是否直接用还是新建PWA? |
| 代码生成器适配 | 需确认代码生成器与传统外键/业务逻辑的手动融合方式 |
8.4 业务待确认
| 议题 | 说明 |
|---|---|
| 现有数据迁移 | 4单株鉴定表1016前.xlsx等历史数据是否导入? |
| 育种目标权重 | 6大品种系列的具体性状权重向量需育种家确认 |
| 品种权年费提醒 | 是否需要定时任务提醒功能? |
| 多课题组共用 | 框架支持多租户,是否现阶段就启用SaaS模式? |
| 与 d:\ClaudeCode 关系 | 该工作区有PubMed文献检索后端,是否作为育种知识库子系统? |
九、实施进展更新(截至 2026-07-28)
本节约与第一节的结论配套更新:规划报告编制当日,breeding 模块即已全部开发完成。以下内容为实测落地的现状,供后续迭代与评审对齐。
9.1 总体状态
框架已不再是"干净脚手架"。基于 FastapiAdmin 代码生成器(仓库根 _gen_specs.py / _gen_breeding_be.py / _gen_breeding_fe.py)按字段规格批量生成前后端 CRUD,并完成多轮关系修正与字段迁移(列漂移通过 backend/scripts/fix_breeding_columns.py 固化修复)。当前共 14 个业务域,每个域含后端 model/schema/crud/service/controller 六文件 + 前端 ts API 与 vue 页面 + 动态菜单 + 数据权限。
9.2 已实现的 14 个业务域
| 域(domain) | 表名 | 中文 | 关键字段 | 来源 |
|---|---|---|---|---|
| germplasm | breeding_germplasm | 亲本资源 | cultivar_name/variety_type/origin 等 | 手写复用 |
| site | breeding_site | 基地管理 | 基地名称/地址/面积/经纬度 | 手写复用 |
| plot | breeding_plot | 试验地块 | plot_code/行向/行列网格 | 寄居 site 包 |
| target | breeding_target | 育种目标 | target_name/series/is_preset | 生成器 |
| cross_combination | breeding_cross_combination | 杂交组合 | combination_code(唯一)/breeding_target_id/母父本 | 生成器 |
| pollination | breeding_pollination | 授粉管理 | combination_id/plot_id/breeding_personnel_id | 生成器 |
| seed_treatment | breeding_seed_treatment | 种子处理 | combination_id/method/breeding_personnel_id | 生成器 |
| seedling | breeding_seedling | 育苗管理 | combination_id/sowing_date/breeding_personnel_id | 生成器 |
| planting | breeding_planting | 定植管理 | combination_id/plot_id/seedling_id/breeding_personnel_id | 生成器 |
| tree | breeding_tree | 育种单株 | combination_id/plot_id/tree_no(唯一)/status | 生成器(新增实体) |
| tree_evaluation | breeding_tree_evaluation | 单株评价(鉴定主记录) | tree_id/combination_id/evaluate_date/评价人/remark/overall_score(不含果实性状,明细走 trait_observation) | 生成器 |
| tree_photo | breeding_tree_photo | 单株照片 | tree_id/photo_type/photo_url | 生成器 |
| selection_result | breeding_selection_result | 选育结果 | tree_id/is_selected | 生成器 |
| personnel | breeding_personnel | 人员花名册 | name(唯一)/role/gender | 生成器 |
9.3 与原规划的关键设计演进
- 新增
breeding_tree(育种单株)实体:原规划将"单株"作为tree_evaluation的自由文本tree_no;现拆分为独立实体,tree_evaluation/tree_photo/selection_result均改经tree_id外键关联breeding_tree(联表回填tree_name),删树级联删下游三表。修复了第三节关系审计断点③。 breeding_target实体化为主数据表:原规划仅在cross_combination内"文本描述"育种目标;现独立成表,cross_combination经breeding_target_id单选外键引用。- 人员花名册采用规划"方案B":独立
breeding_personnel表;pollination(授粉人)/planting(定植人)/seedling(育苗人)/tree_evaluation(评价人)/seed_treatment(种子处理人) 均经breeding_personnel_id外键引用(断点①修复)。 - 定植溯源:
planting增加seedling_id外键 →breeding_seedling,定植批次可溯源到育苗批次(断点②修复)。 - 果实性状迁单一长表(v2.2/F1):果实性状(果形/单果重/含糖量等)不再内联
breeding_tree_evaluation,统一落在breeding_trait_observation长表(单株鉴定明细,挂 evaluation_id/tree_id,喂 EBV);tree_evaluation仅作鉴定主记录。与规格 §3.2b 一致。
9.4 路线图进度
| 阶段 | 状态 | 说明 |
|---|---|---|
| 第0阶段 数据治理 | ⏳ 规划(v2.0 新增) | 盘点5年历史数据 + breeding_clone 系谱表 + breeding_rootstock 砧木字典 + trait.stage + 字段规范 + 数据质量门禁;EBV 可信度地基,前置 |
| V0.5 基础数据就绪 | ✅ 已完成 | 亲本/基地/人员/目标主数据 + RBAC 角色 + 审计日志验证 + 菜单种子 |
| V1.0 核心流程上线 | ✅ 已完成 | 阶段1-7 CRUD(目标/组合/授粉/种子/育苗/定植/单株)+ 单株评价/照片/选育;移动端 PWA 与"7 标签页全性状录入"为后续细化项 |
| V1.1 统计引擎 | ⏳ 未启动 | ABLUP/EBV/选择指数 + 描述统计(R 统计引擎 subprocess 隔离 Rscript) |
| V1.2 移动端 + 优化 | ⏳ 未启动 | PWA 离线采集 + 相机直拍 + 打印输出 |
| V2.0 / V3.0 | ⏳ 未启动 | 分子育种 / AI 育种(Agno + DeepSeek + 知识图谱) |
9.5 已知遗留与下一步
- 枚举下拉当前为前端固定选项,后续统一迁到
sys_dict(38-40 个育种枚举字典尚未灌库,数据字典 UI 待建)。 - 统计层(
module_stats)、AI 层(Agno 智能体)尚未开发。 planting与breeding_tree之间无硬外键(1 定植 → N 株,靠combination_id+plot_id关联),属有意设计。- 一次建表列漂移已通过
backend/scripts/fix_breeding_columns.py固化修复脚本,并已接入deploy.bat migrate/deploy.sh migrate部署流程。
十、遗传评估数据模型架构(决策锁定,2026-07-30;v2.1 review 已吸收 R1–R9)
10.1 数据治理 = 第0阶段(占40%、前置、决定可信度)
建 clone 系谱表 → 挂 clone_id → 字段规范 + 质量门禁,是独立、前置的地基(garbage in, garbage out)。排序:第0阶段(数据治理)→ 第1阶段(clone 级 BLUP)→ 第2阶段(决选 + 间接早选)。
10.2 分层骨架
- clone 层(系谱 / 遗传身份)
breeding_clone:clone_id(主键,组合码-3位序)/ combination_id / 母本 / 父本 / planting_year / status;无砧木;A 矩阵锚点;BLUP individual = clone_id。 - observation 层(表型 / 带噪测量)
breeding_tree+breeding_observation:含 rootstock_id / 地点 / 年份;仅承载 plot/combination 级观测 + 物候时序(不喂 EBV)。tree 级果实鉴定性状走breeding_trait_observation(喂 EBV,规格 §3.2b),plot 级果实均值由统计 VIEW 聚合、不双写;tree = 重复测量,砧木 / 年 / 点 / 批次 = 固定效应。 - 三张字典
cross_combination/breeding_rootstock(新建)/breeding_trait(加 stage,与 category 正交)。
10.3 砧木建模铁律
记录于 observation 层 + BLUP 固定效应扣除(与地点 / 年份 / 批次并列)+ 绝不进 A 矩阵。"不进 A 矩阵" ≠ "不进模型"——砧木不进随机遗传关系,但必须进固定效应(否则 clone 的 EBV 被砧木注水)。
10.4 间接早选分期
童期采集一期必做;r_G 早选模型排二期;一期用历史晋级标签跑过渡分类器。
10.5 数据质量门禁(observation 入口)
缺失值标记 / 异常值(按 trait min-max)/ 单位强校验 / 按 (clone_id|tree_id, 地点, 年份, 性状名) 去重——实生苗阶段单元键退化 tree_id(F3);判重键含 tree_id 保 clonal replicates(F4)。
附录:38个数据字典清单
| # | 分类 | 字典编码 | 字典名称 | 值列表 |
|---|---|---|---|---|
| 1 | 通用 | weather | 天气 | 晴/多云/雨/阴/大风 |
| 2 | 通用 | level_3 | 三级程度 | 少/中/多 |
| 3 | 通用 | level_4 | 四级程度 | 无/少/中/多 |
| 4 | 通用 | level_5 | 五级程度 | 无/少/中/多/全 |
| 5 | 通用 | depth | 深度 | 浅/中/深 |
| 6 | 通用 | width | 宽度 | 窄/中/宽 |
| 7 | 通用 | brightness | 亮度 | 暗/中/亮 |
| 8 | 通用 | conc_level | 浓度 | 淡/中/浓 |
| 9 | 通用 | quality | 品质 | 上/中/下(建议扩展:极上/上/中/下) |
| 10 | 杂交授粉 | pollination | 授粉方式 | 人工毛刷/花粉袋吹粉/直接涂抹/注射器点授 |
| 11 | 种子处理 | seed_treatment | 处理方法 | 试管胚培/低温沙藏/室外沙藏 |
| 12 | 单株鉴定 | identify_status | 鉴定状态 | 未知/入选/初选/重点/保存/淘汰 |
| 13 | 单株鉴定 | growth_vigor | 生长势 | 强/中/弱 |
| 14 | 单株鉴定 | growth_type | 生长型 | 普通/半矮/矮 |
| 15 | 单株鉴定 | flower_type | 花型 | 蔷薇型/铃型 |
| 16 | 单株鉴定 | pollen_amount | 花粉量 | 无/少/中/多 |
| 17 | 单株鉴定 | fruit_load | 负载量 | 高/中/低 |
| 18 | 单株鉴定 | maturity_uniform | 成熟一致性 | 一致/较一致/不一致 |
| 19 | 单株鉴定 | fruit_shape | 果形 | 扁平/扁圆/圆/椭圆/卵圆 |
| 20 | 单株鉴定 | fruit_apex | 果顶 | 突出/稍突出/圆平/稍凹陷/凹陷 |
| 21 | 单株鉴定 | fruit_base_type | 果基 | 正/稍偏/偏 |
| 22 | 单株鉴定 | symmetry | 对称性 | 对称/较对称/不对称 |
| 23 | 单株鉴定 | peel_base_color | 果皮底色 | 淡绿/绿白/白/浅黄/深黄 |
| 24 | 单株鉴定 | blush_area | 着色面积 | 无/少/中/多/全 |
| 25 | 单株鉴定 | blush_pattern | 着色形态 | 晕/条/斑 |
| 26 | 单株鉴定 | peel_removal | 剥离度 | 不能/难/易 |
| 27 | 单株鉴定 | flesh_color | 肉色 | 淡绿/白/黄白/黄/橙黄/红/紫红 |
| 28 | 单株鉴定 | firmness | 硬度 | 很软/软/中/硬/很硬 |
| 29 | 单株鉴定 | flavor | 甜酸度 | 淡甜/甜/浓甜/酸甜/甜酸适中/甜酸/酸 |
| 30 | 单株鉴定 | pit_adherence | 粘离性 | 粘核/半离/离核 |
| 31 | 单株鉴定 | pit_size | 核大小 | 小/中/大 |
| 32 | 单株鉴定 | pit_shape | 核形 | 扁平/近圆/椭圆/倒卵圆/卵圆 |
| 33 | 评价筛选 | eval_result | 评价结果 | 入选优系/保存/淘汰 |
| 34 | 优系复选 | propagation | 扩繁方式 | 嫁接/扦插/组培 |
| 35 | 优系复选 | retrial_result | 复选结果 | 通过/未通过 |
| 36 | 品种登记 | audit_type | 登记类型 | 省级登记/国家级登记 |
| 37 | 品种登记 | audit_status | 登记状态 | 材料准备中/已提交/审查中/登记通过/未通过 |
| 38 | 品种保护 | annual_fee | 年费状态 | 已缴纳/逾期未缴/保护期已满 |
新增建议:
- #39 | 单株鉴定 | blush_uniformity | 着色均匀度 | 均匀/较均匀/不均匀(用户反馈需求)
- #40 | 单株鉴定 | peel_color_depth | 着色深度 | 浅/中/深(独立字典,原复用depth)
共 40 个枚举字典,通过 FastapiAdmin 框架的
sys_dict_type/sys_dict_data表统一管理。
报告完毕。 本修正版基于两目录的完整探索:
D:\dpb\doc\dev— 业务需求(what)D:\dpb\dpb— 技术框架(how)与实际落地(14 个 breeding 业务域)核心结论:项目在 FastapiAdmin v3.0.0 框架上建设,复用 RBAC/代码生成器/文件管理/AI 智能体/多租户等能力,已于 2026-07-28 完成 breeding 模块一期 14 个业务域的落地开发(详见第九节);后续重心转向统计引擎、移动端与 AI 增强层。