更新装配、销售、精工车间、技术中心、仓储多个模块,整理文档和SQL脚本
This commit is contained in:
106
docs/库存调拨/06-决策记录.md
Normal file
106
docs/库存调拨/06-决策记录.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# 06-决策记录
|
||||
|
||||
## 决策记录说明
|
||||
|
||||
本文记录库存调拨功能中的关键决策。后续变更时,优先查阅本文,避免重复争论已经确定的技术和业务选择。
|
||||
|
||||
## ADR-001:不做完整调拨单流程
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 已采纳 |
|
||||
| 决策 | 库存调拨只做库存盘点组件内轻量调拨 |
|
||||
| 原因 | 用户明确场景是盘点时快速把库存从原库位调到目标库位,并支持一键新建库位 |
|
||||
| 影响 | 不新增独立调拨单页面、不做审批、不做打印 |
|
||||
| 后续变更条件 | 如果业务要求调拨审批、打印、跨仓库流转,再新增独立调拨单模块 |
|
||||
|
||||
## ADR-002:使用后端原子存储过程完成调拨
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 已采纳 |
|
||||
| 决策 | 新增 `仓储管理_库存盘点_库存调拨`,由一个事务完成扣减和增加 |
|
||||
| 原因 | 前端拆成两次请求会出现只扣不加、只加不扣、并发负库存风险 |
|
||||
| 影响 | 前端只提交一次调拨请求,库存一致性由数据库保证 |
|
||||
| 后续变更条件 | 如果未来迁移到后端服务层,也必须保留事务边界 |
|
||||
|
||||
## ADR-003:调拨数量使用 FLOAT
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 已采纳 |
|
||||
| 决策 | `@调拨数量`、库存记录字段按 `float` 处理 |
|
||||
| 原因 | 现有库存表 `货位存量` 使用 `float`,库存可能存在小数 |
|
||||
| 影响 | 调拨支持小数库存 |
|
||||
| 后续变更条件 | 若未来统一库存数量精度,应迁移为 decimal 并同步所有库存过程 |
|
||||
|
||||
## ADR-004:以后端当前库存为准
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 已采纳 |
|
||||
| 决策 | 前端传 `原库存数` 只作参考,后端必须重新查询并锁定当前库存 |
|
||||
| 原因 | 多人同时操作时,前端库存可能已过期 |
|
||||
| 影响 | 可以避免并发调拨造成负库存 |
|
||||
| 后续变更条件 | 无。库存扣减类业务都应遵守该规则 |
|
||||
|
||||
## ADR-005:区分普通物料和通用件库存表
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 已采纳 |
|
||||
| 决策 | 根据 `@类型 = N'通用件'` 选择库存表 |
|
||||
| 原因 | 现有系统中通用件使用 `库存管理_半成品与货位对照表`,普通物料使用 `库存管理_物料与货位对照表` |
|
||||
| 影响 | 前端必须传 `类型` 参数 |
|
||||
| 后续变更条件 | 如果后续统一库存表,可移除分支 |
|
||||
|
||||
## ADR-006:目标库位不存在同物料库存时新增记录
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 已采纳 |
|
||||
| 决策 | 目标库位已有同物料库存则累加,没有则新增库存记录 |
|
||||
| 原因 | 盘点调拨常见场景是将物料拆分到新库位 |
|
||||
| 影响 | 调拨过程需要同时处理 update 和 insert |
|
||||
| 后续变更条件 | 如果业务规定必须先建库存记录,再调拨,可改为无记录时报错 |
|
||||
|
||||
## ADR-007:原库位库存为 0 时保留记录
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 已采纳 |
|
||||
| 决策 | 调拨后原库位库存为 0,不物理删除库存记录 |
|
||||
| 原因 | 保留历史库位关系,便于追溯,也符合盘点页库存可编辑为 0 的现状 |
|
||||
| 影响 | 查询页面是否显示 0 库存由查询条件控制 |
|
||||
| 后续变更条件 | 如果业务要求隐藏 0 库存,优先改查询,不建议删除记录 |
|
||||
|
||||
## ADR-008:一键新建库位复用现有接口
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 已采纳 |
|
||||
| 决策 | 复用 `仓储管理_库位_验证是否存在` 和 `仓储管理_库位_增加数据` |
|
||||
| 原因 | 系统已有库位校验和新增能力,不重复造接口 |
|
||||
| 影响 | 新库位创建逻辑与现有库位维护规则保持一致 |
|
||||
| 后续变更条件 | 如果库位维护规则变化,应统一改库位接口 |
|
||||
|
||||
## ADR-009:新增轻量调拨记录表
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 已采纳 |
|
||||
| 决策 | 新增 `库存盘点_调拨记录` |
|
||||
| 原因 | 旧库存修改记录无法完整表达“从哪个库位调到哪个库位” |
|
||||
| 影响 | 后续可以按记录追溯调拨数量、原库位、目标库位、操作人 |
|
||||
| 后续变更条件 | 如需要调拨单,可在该记录基础上扩展主从表 |
|
||||
|
||||
## ADR-010:暂不生成 PDF 和截图
|
||||
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 已采纳 |
|
||||
| 决策 | 当前阶段只保留 Markdown 和命令/数据库证据 |
|
||||
| 原因 | 功能尚需页面真实数据联调,截图/PDF 应在最终页面验收时生成 |
|
||||
| 影响 | `05-验收证据.md` 中页面截图、PDF、report_id 暂为空 |
|
||||
| 后续变更条件 | 页面实测完成后补充截图或 PDF 验收材料 |
|
||||
|
||||
Reference in New Issue
Block a user