Files
dpb/doc/桃育种系统业务功能规划报告.md
34047007@qq.com b95053c52c init: 初始化 dpb 桃育种系统代码库
前后端 + 后端 FastAPI 全量源码、部署脚本与文档。
2026-08-06 00:17:49 +08:00

612 lines
37 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 桃育种数字化管理系统 — 业务功能规划报告(修正版)
> **数据源:** `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 |
| **前端 移动端** | UniAppH5 + 小程序 + App | - |
| **认证** | JWT + OAuth2 + RBAC | - |
| **定时任务** | APScheduler | 3.11 |
| **AI** | Agno 智能体框架 + DeepSeek APIdeepseek-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/sommersubprocess 隔离调用 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测试字段对齐 | 🔴 必读 |
| BrAPIBreeding 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-30v2.1 review 已吸收 R1R9
### 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 replicatesF4**。
---
## 附录: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 增强层。