Files
JY1.0/docs/库存调拨/06-决策记录.md

4.5 KiB
Raw Blame History

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 验收材料