3.5 KiB
3.5 KiB
02 Germplasm / Seed - seed_lot_transaction 表录入说明
来源:docs/requirements/02-germplasm-seed-entry-requirements.md
录入目标
seed_lot_transaction 记录库存变化。它不应该由用户像普通表单一样手动维护,而应该由“入库、出库、转移、分装、合并、消耗”等业务动作自动生成。
字段录入
| 字段 | 业务意义 | 录入方式 | 控件建议 | 校验规则 |
|---|---|---|---|---|
id |
流转记录主键 | 系统生成 | 隐藏/只读 | 必填、唯一 |
auth_user_id |
数据所属用户或租户 | 登录上下文自动写入 | 隐藏 | 不允许手填 |
amount |
流转数量 | 用户在业务动作中录入 | 数字输入框 | 必填;大于 0 |
description |
流转说明,如用于某 study、分装原因、报废原因 | 用户录入 | 多行文本 | 可选;出库/报废建议必填 |
timestamp |
流转发生时间 | 默认当前时间,可调整 | 日期时间选择器 | 必填 |
units |
流转单位 | 默认继承 seed_lot.units | 下拉框/只读 | 必填;需与 seed_lot 单位一致或有换算关系 |
from_seed_lot_id |
来源批次 | 按动作自动设置 | SeedLot 选择器/隐藏 | 与 to_seed_lot_id 至少一个存在 |
to_seed_lot_id |
目标批次 | 按动作自动设置 | SeedLot 选择器/隐藏 | 与 from_seed_lot_id 至少一个存在;不能等于 from |
业务动作映射
| 动作 | from_seed_lot_id | to_seed_lot_id | amount 对库存影响 |
|---|---|---|---|
| 入库 | 空 | 目标批次 | 目标批次增加 |
| 出库 | 来源批次 | 空 | 来源批次减少 |
| 转移 | 来源批次 | 目标批次 | 来源减少,目标增加 |
| 分装 | 原批次 | 新批次 | 原批次减少,新批次增加 |
| 合并 | 多个来源批次 | 目标批次 | 来源减少,目标增加;可能生成多条 transaction |
| 消耗/报废 | 来源批次 | 空 | 来源减少,并记录原因 |
验收点
- amount 必须大于 0。
- 出库/消耗时,amount 不得超过来源批次当前库存。
- from 和 to 不能相同。
- transaction 创建后应自动更新 seed_lot.amount 和 last_updated。
- 已生成的 transaction 原则上不允许随意修改;如需纠错,应通过反向交易或更正记录处理。