Files
brapi-java/docs/dev/01-core/03-program.md
2026-05-28 11:56:17 +08:00

3.3 KiB
Raw Blame History

01 Core - program 表录入说明

来源:docs/requirements/01-core-data-entry-requirements.md

录入目标

program 表示长期育种项目,是多个 trial、study、材料、样本和结果的聚合维度。创建 program 时必须明确所属 crop可选负责人。

前置依赖和下游引用

类型 内容
program
前置依赖 crop,可选 person
下游引用 trialstudylocationcrossing_projectseed_lotplatesample

页面入口

页面 录入要求
Program 列表页 支持 crop、负责人、program_type、关键词筛选新增、编辑、查看详情、停用
Program 新增/编辑页 分为“基本信息”和“负责人/作物”两组
Program 详情页 Tab 展示 trial、study、location、seed lot、sample

列表页表格字段:nameabbreviation、crop、负责人、trial 数、study 数。

字段录入

字段 类型 控件 录入说明 校验/来源
id varchar(255) 隐藏/只读 项目主键 必填、唯一
auth_user_id varchar(255) 隐藏 数据所属用户 登录上下文自动写入
abbreviation varchar(255) 文本框 项目缩写 可选
documentationurl varchar(255) URL 输入框 项目文档链接 URL 格式校验
funding_information varchar(255) 多行文本 经费来源说明 可选
name varchar(255) 文本框 项目名称 必填
objective varchar(255) 多行文本 项目目标 可选
program_type integer 下拉框 项目类型枚举 可选,按 BrAPI 枚举
crop_id varchar(255) 作物选择器 所属作物 必选,来源 crop.id
lead_person_id varchar(255) 人员选择器 项目负责人 可选,来源 person.id

校验规则

  1. name 必填。
  2. crop_id 必选,且必须引用已存在的 crop.id
  3. 选择负责人时,lead_person_id 必须引用已存在的 person.id
  4. documentationurl 需要做 URL 格式校验。

接口能力

接口 用途
GET /programs program 分页查询
POST /programs 新增 program
GET /programs/{id} program 详情
PUT /programs/{id} 编辑 program
DELETE /programs/{id} 删除或停用 program需做引用检查
GET /programs/{id}/trials 查询 program 下 trial
GET /programs/{id}/studies 查询 program 下 study
GET /selectors/programs program 搜索下拉,参数 keywordcropId

导入导出

  1. 支持通过 Core 导入流程导入 program
  2. 外键列支持填写 ID可额外支持名称匹配但名称重复时必须报错。
  3. 可按 id 幂等更新;无 id 时新增。
  4. 列表页支持导出当前筛选结果,导出文件应包含 ID 和展示名称。

删除/停用

program 已有关联 trialstudylocationcrossing_projectseed_lotplatesample 时,不允许物理删除。后端需要返回引用对象类型和数量,前端展示后引导用户停用。

验收点

  1. 创建 program 时必须选择 crop。
  2. 负责人选择器只能保存已存在的 person ID。
  3. Program 详情页能进入该项目下的 trial 和 study。