Files
brapi-java/docs/dev/04-germplasm/11-cross_entity.md
2026-05-28 17:25:32 +08:00

55 lines
2.3 KiB
Markdown
Raw 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.

# 04 Germplasm / Seed - cross_entity 表录入说明
来源:`docs/architecture/04-germplasm-seed-data-flow.md`
## 录入目标
`cross_entity` 是 Cross 和 PlannedCross 的统一落库表。`plannedcross` 不是独立数据库表,计划杂交通过 `planned=true` 表达;实际杂交可以通过 `planned_cross_id` 关联计划杂交。
## 上下游关系
| 类型 | 内容 |
| --- | --- |
| 表 | `cross_entity` |
| Java 实体 | `CrossEntity` |
| 前置依赖 | `crossing_project`,可选自关联 `cross_entity` |
| 下游引用 | `cross_parent``cross_pollination_event``seed_lot_content_mixture` |
| API | `/brapi/v2/crosses``/brapi/v2/plannedcrosses` |
## 字段录入
| 字段 | 业务意义 | 录入方式 | 校验规则 |
| --- | --- | --- | --- |
| `id` | cross 主键 | 系统生成;导入可指定 | 必填、唯一 |
| `auth_user_id` | 数据所属用户 | 登录上下文自动写入 | 不允许前端手填 |
| `name` | cross 名称 | 用户录入/自动生成 | 建议必填 |
| `cross_type` | 杂交类型 | 枚举选择 | 可选 |
| `crossing_project_id` | 所属 crossing project | CrossingProject 选择器 | 建议必选,若填需存在 |
| `status` | planned cross 状态 | 枚举选择 | 计划杂交常用 |
| `planned` | 是否为计划杂交 | 开关 | 必填,默认 false |
| `planned_cross_id` | 关联计划杂交 | Cross 选择器 | 可选,必须指向 `planned=true` 的 cross |
## 附属集合字段
| 附属表 | 内容 |
| --- | --- |
| `cross_entity_cross_attributes` | crossAttributes 列表 |
| `cross_parent` | cross 的亲本 |
| `cross_pollination_event` | 授粉事件 |
## 页面与交互
- Cross 列表页展示实际杂交PlannedCross 列表页展示 `planned=true` 数据。
- 新建实际 cross 时可选择 planned cross并继承 planned cross 的亲本作为初始值。
- 详情页展示 parents、pollination events 和 seed lot 组成入口。
## 关键校验
1. `plannedcross` 不新建表,所有 planned cross 走 `cross_entity`
2. `planned_cross_id` 不能指向自己。
3. 删除 cross 前检查 `cross_parent``cross_pollination_event``seed_lot_content_mixture` 引用。
---
**状态:已完成**(页面:`germplasm/cross-pedigree` → Cross Tab详情`cross-pedigree/crosses/[crossDbId]``planned-crosses/[plannedCrossDbId]`;创建实际杂交时继承计划杂交亲本)