docs: limit first BOM view to one unit

This commit is contained in:
文睿 张 2026-09-23 15:02:15 +08:00
parent c9f0a69f8e
commit b1c86593f0

View File

@ -8,7 +8,7 @@
## 1. 目标 ## 1. 目标
为成品和半成品提供可追溯的多层 BOM 手工维护能力。第一版重点完成 BOM 的创建、草稿编辑、版本保留、生效与停用、结构合法性校验,以及单个 BOM 按指定数量递归展开的基础能力。 为成品和半成品提供可追溯的多层 BOM 手工维护能力。第一版重点完成 BOM 的创建、草稿编辑、版本保留、生效与停用、结构合法性校验,以及按父项数量 `1` 查看单个 BOM 版本的完整层级。
第一版不延伸到制造执行和库存业务,BOM 操作不会生成领料申请、扣减库存或创建出入库单据。 第一版不延伸到制造执行和库存业务,BOM 操作不会生成领料申请、扣减库存或创建出入库单据。
@ -24,7 +24,7 @@
- 编辑、保存和删除草稿。 - 编辑、保存和删除草稿。
- 生效草稿或停用指定的生效版本。 - 生效草稿或停用指定的生效版本。
- 自动校验重复子项、自引用、循环引用、无效数量和最大层级。 - 自动校验重复子项、自引用、循环引用、无效数量和最大层级。
- 按指定产品数量递归展开 BOM,并汇总最底层物料需求。 - 按父项数量 `1` 查看单个 BOM 版本的完整层级和各层用量。
- 记录生效和停用等关键状态变化的审计信息。 - 记录生效和停用等关键状态变化的审计信息。
- 第一版页面和接口仅允许超级管理员访问。 - 第一版页面和接口仅允许超级管理员访问。
@ -34,6 +34,7 @@
- BOM 审批、驳回和申请流程。 - BOM 审批、驳回和申请流程。
- 替代料。 - 替代料。
- 多 BOM 需求试算。 - 多 BOM 需求试算。
- 修改查看数量、按计划数量计算需求,以及汇总最底层物料需求。
- 制造订单。 - 制造订单。
- 领料、退料和完工入库。 - 领料、退料和完工入库。
- 库存预留、库存扣减和短缺计算。 - 库存预留、库存扣减和短缺计算。
@ -102,7 +103,7 @@ BOM 版本仅使用以下三个状态:
- 添加子物料时,前端立即检查直接重复和自引用。 - 添加子物料时,前端立即检查直接重复和自引用。
- 保存草稿时,后端检查数量、重复、自引用、循环引用和最大层级。 - 保存草稿时,后端检查数量、重复、自引用、循环引用和最大层级。
- 生效时,后端在同一事务中再次执行完整校验。 - 生效时,后端在同一事务中再次执行完整校验。
- 递归展开时再次执行循环和最大深度保护,不能仅依赖保存时的校验。 - 查询完整结构树时再次执行循环和最大深度保护,不能仅依赖保存时的校验。
- 检测失败时返回完整问题路径,并让前端定位对应节点。 - 检测失败时返回完整问题路径,并让前端定位对应节点。
### 3.5 数量与损耗 ### 3.5 数量与损耗
@ -115,8 +116,8 @@ BOM 版本仅使用以下三个状态:
子项需求量 = 上层需求量 × 单位用量 ×(1 + 损耗率) 子项需求量 = 上层需求量 × 单位用量 ×(1 + 损耗率)
``` ```
- 递归计算过程中保留足够精度,最终结果按物料基础单位的精度规则向上取整。 - 查看结构时,父项数量固定为 `1`,按上述公式逐层显示用量,计算过程中保留足够精度。
- 汇总结果按物料和基础单位合并相同的最底层物料。 - 第一版不输入计划数量,也不汇总不同分支中的最底层物料;相关计算留给后续“多 BOM 需求试算”。
## 4. 前端信息架构 ## 4. 前端信息架构
@ -196,23 +197,17 @@ BOM 列表
- 从指定历史版本复制并发起新版本。 - 从指定历史版本复制并发起新版本。
- 执行当前状态允许的状态操作。 - 执行当前状态允许的状态操作。
“查看结构”页面默认按父物料数量 `1` 展示完整层级。用户可以临时修改查看数量,页面随即递归计算各层需求,并展示最底层物料汇总。该能力只计算当前一个 BOM 版本,不单独设置菜单,也不保存试算记录。 “查看结构”页面固定按父物料数量 `1` 展示当前选定 BOM 版本的完整层级和各层用量,不提供数量输入或最底层物料汇总。
```text ```text
查看数量:10 整机 A × 1
├─ 外壳组件 × 1
[层级结构] │ └─ 螺丝 × 8
整机 A × 10 └─ 电机组件 × 2
├─ 外壳组件 × 10 └─ 螺丝 × 8
│ └─ 螺丝 × 80
└─ 电机组件 × 20
└─ 螺丝 × 80
[底层物料汇总]
螺丝 × 160
``` ```
同时选择多个 BOM 并合并需求,属于后续“多 BOM 需求试算”,不在第一版范围内。 按计划数量计算、同时选择多个 BOM 并合并相同物料需求,属于后续独立页面“多 BOM 需求试算”。
### 4.3 新建 BOM ### 4.3 新建 BOM
@ -362,13 +357,13 @@ BOM 列表
```text ```text
model model
→ 定义 BOM、版本、子项和展开结果 → 定义 BOM、版本、子项和树形结构结果
repository repository
→ 负责数据库查询、事务和状态更新 → 负责数据库查询、事务和状态更新
service service
→ 负责版本规则、复制、校验、生效、停用和递归展开 → 负责版本规则、复制、校验、生效、停用和结构树查询
handler handler
→ 负责 HTTP 参数、超级管理员鉴权和统一响应 → 负责 HTTP 参数、超级管理员鉴权和统一响应
@ -388,7 +383,7 @@ handler
| `POST` | `/api/bom-versions/:versionId/copy` | 从指定版本生成新草稿 | | `POST` | `/api/bom-versions/:versionId/copy` | 从指定版本生成新草稿 |
| `POST` | `/api/bom-versions/:versionId/effective` | 生效草稿 | | `POST` | `/api/bom-versions/:versionId/effective` | 生效草稿 |
| `POST` | `/api/bom-versions/:versionId/obsolete` | 停用生效版本 | | `POST` | `/api/bom-versions/:versionId/obsolete` | 停用生效版本 |
| `POST` | `/api/bom-versions/:versionId/explode` | 按指定数量递归展开单个 BOM | | `GET` | `/api/bom-versions/:versionId/tree` | 按父项数量 `1` 查看完整 BOM 结构 |
接口命名在实施计划阶段可按现有路由风格进一步统一,但业务边界不应改变。 接口命名在实施计划阶段可按现有路由风格进一步统一,但业务边界不应改变。
@ -401,7 +396,7 @@ handler
| 选择子物料 | 当前父节点重复、自引用、物料状态 | | 选择子物料 | 当前父节点重复、自引用、物料状态 |
| 保存草稿 | 数量、损耗率、基础单位、重复、自引用、循环、20 层限制 | | 保存草稿 | 数量、损耗率、基础单位、重复、自引用、循环、20 层限制 |
| 生效 | 完整重复执行保存校验,并验证所选下层版本仍可用 | | 生效 | 完整重复执行保存校验,并验证所选下层版本仍可用 |
| 递归展开 | 循环保护、20 层限制、版本引用完整性 | | 结构树查询 | 循环保护、20 层限制、版本引用完整性 |
错误信息需要包含: 错误信息需要包含:
@ -455,7 +450,7 @@ handler
- 停用默认版本后,默认版本按最近生效时间回退;无可用版本时默认版本为空。 - 停用默认版本后,默认版本按最近生效时间回退;无可用版本时默认版本为空。
- 从指定版本完整复制为新草稿。 - 从指定版本完整复制为新草稿。
- 下层版本锁定后不随新版本变化。 - 下层版本锁定后不随新版本变化。
- 多层需求数量、损耗率和底层物料汇总正确。 - 单件多层结构、各层用量和损耗率计算正确,且不返回跨分支物料汇总。
- 非超级管理员访问全部 BOM 接口均被拒绝。 - 非超级管理员访问全部 BOM 接口均被拒绝。
- 不同组织的数据不能相互读取或引用。 - 不同组织的数据不能相互读取或引用。
- BOM 状态变化与对应操作记录同时提交。 - BOM 状态变化与对应操作记录同时提交。
@ -482,7 +477,7 @@ handler
5. 实现多版本可用、默认版本推导、生效和停用事务。 5. 实现多版本可用、默认版本推导、生效和停用事务。
6. 实现前端导航、BOM 列表和历史版本展示。 6. 实现前端导航、BOM 列表和历史版本展示。
7. 实现新建及草稿树形编辑页面。 7. 实现新建及草稿树形编辑页面。
8. 实现单 BOM 递归展开及底层物料汇总能力。 8. 实现单个 BOM 版本按父项数量 `1` 的结构树查询和各层用量显示。
9. 将现有日志入口改为双子页面,接入 BOM 操作记录和筛选。 9. 将现有日志入口改为双子页面,接入 BOM 操作记录和筛选。
10. 补齐权限、自动化测试和真实数据副本验收。 10. 补齐权限、自动化测试和真实数据副本验收。
@ -490,7 +485,7 @@ handler
第一版稳定后再分别设计和实现: 第一版稳定后再分别设计和实现:
1. 多 BOM 需求试算,并在 `BOM 管理` 下增加独立菜单。 1. 多 BOM 需求试算:在独立页面输入一个或多个 BOM 的计划数量,递归计算并汇总相同底层物料需求,再在 `BOM 管理` 下增加菜单。
2. CSV 层级导入和错误报告。 2. CSV 层级导入和错误报告。
3. 替代料管理。 3. 替代料管理。
4. 面向技术人员等角色的细分权限。 4. 面向技术人员等角色的细分权限。