init: 初始化 dpb 桃育种系统代码库
前后端 + 后端 FastAPI 全量源码、部署脚本与文档。
This commit is contained in:
@@ -0,0 +1,611 @@
|
||||
# 桃育种数字化管理系统 — 业务功能规划报告(修正版)
|
||||
|
||||
> **数据源:** `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 增强层。
|
||||
Reference in New Issue
Block a user