# 桃育种数字化管理系统 — 业务功能规划报告(修正版) > **数据源:** `D:\dpb\doc\dev`(业务需求文档)+ `D:\dpb\dpb`(已有代码库)+ 2025-2026行业调研 > **目标机构:** 中国农业科学院郑州果树研究所 桃育种课题组 > **编制日期:** 2026-07-28 --- ## 目录 1. [两目录定位说明](#一两目录定位说明) 2. [已有技术基础:FastapiAdmin 框架](#二已有技术基础fastapiadmin-框架) 3. [需求文档精读总结(As-Is 业务)](#三需求文档精读总结as-is-业务) 4. [市场育种现状与机会窗口](#四市场育种现状与机会窗口) 5. [业务功能全景规划(To-Be)](#五业务功能全景规划to-be) 6. [技术架构设计](#六技术架构设计) 7. [实施优先级与路线图](#七实施优先级与路线图) 8. [还需哪些参考](#八还需哪些参考) 9. [实施进展更新(截至 2026-07-28)](#九实施进展更新截至-2026-07-28) --- ## 一、两目录定位说明 | 目录 | 内容 | 状态 | |---|---|---| | `D:\dpb\doc\dev` | 业务需求文档、方案书、数据字典、用户反馈 | ✅ 已完整精读(不可修改) | | `D:\dpb\dpb` | 实际项目代码库——基于 **FastapiAdmin v3.0.0** 框架 | ✅ 已全面探索(不可修改) | **核心结论:** 本报告编制时(2026-07-28)`D:\dpb\dpb` 是一个干净的 FastapiAdmin 脚手架、尚无育种业务模块;**同一日 breeding 模块已全部落地开发(14 个业务域 + 对应前后端与菜单),该"脚手架"结论已过时**,最新状态见[第九节](#九实施进展更新截至-2026-07-28)。任务已从"规划"转为"已实现 + 持续迭代"。 --- ## 二、已有技术基础: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_*` 业务表**(详见[第九节](#九实施进展更新截至-2026-07-28)),育种业务已实际落地。 --- ## 三、需求文档精读总结(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 核心设计约束 1. **不可物理删除**:DELETE → `is_deleted=true` + 全字段修改日志 2. **数据字典驱动**:38个枚举字典统一维护 3. **编号体系**:组合编号(YY+3位序号) → 单株编号(全局唯一) → 全程追溯 4. **统计边界(一期)**:仅系谱ABLUP,不含分子标记/GS/GWAS 5. **分三期实施**:一期(0-12月)数字化+传统遗传学 → 二期(12-24月)分子育种 → 三期(24月+)AI育种 6. **法规修正**:桃走品种**登记**(非审定),且须**先品种权后登记**(否则丧失新颖性) ### 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个子标签页(从纸质勾选表映射):** 1. **基本信息**:状态(未知/入选/初选/重点/保存/淘汰→字典) 2. **基本鉴定**:生长势、生长型、花期、花型、花粉量、负载量、成熟一致性 3. **果实外观**:果形、果顶、梗洼、缝合线、对称性(全部字典驱动) 4. **果皮**:茸毛、底色、着色面积/深度/亮度/形态/均匀度(新增)、剥离度 5. **果实大小**:最大果重、平均果重、纵径、横径、侧径 6. **果肉**:厚度、肉色、硬度、花色苷、SSC、纤维、汁液、甜酸度、香气、品质 7. **果核**:粘离性、大小、核形、裂核 **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`),删树级联删下游三表。修复了[第三节](#三需求文档精读总结as-is-业务)关系审计断点③。 - **`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 个业务域的落地开发(详见[第九节](#九实施进展更新截至-2026-07-28));后续重心转向统计引擎、移动端与 AI 增强层。