fix:sample/plate 之前的开发
This commit is contained in:
42
docs/dev/02-germplasm-seed/12-seed_lot_transaction.md
Normal file
42
docs/dev/02-germplasm-seed/12-seed_lot_transaction.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# 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 |
|
||||
| 消耗/报废 | 来源批次 | 空 | 来源减少,并记录原因 |
|
||||
|
||||
## 验收点
|
||||
|
||||
1. amount 必须大于 0。
|
||||
2. 出库/消耗时,amount 不得超过来源批次当前库存。
|
||||
3. from 和 to 不能相同。
|
||||
4. transaction 创建后应自动更新 seed_lot.amount 和 last_updated。
|
||||
5. 已生成的 transaction 原则上不允许随意修改;如需纠错,应通过反向交易或更正记录处理。
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user