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

107 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 验收材料 |