Files
shanxia2.0/openspec/changes/production-material-inventory/proposal.md
T
2026-05-23 12:51:22 +08:00

2.8 KiB
Raw Blame History

Why

生产部门目前【耗材管理】和【试剂管理】仅维护目录数据(编码、名称、规格、单位等),无法追踪库存数量、出入库记录。市场部门和质检部门已有完整的物料库存管理体系(主表含库存字段 + 变动记录表),生产部门需要补齐这一能力,同时生产任务执行过程中的步骤保存需自动扣减耗材/试剂库存。

What Changes

  • 在 biz_consumable 和 biz_reagent 现有目录表上新增库存字段(stock_qty、warning_qty、status)
  • 新建 biz_consumable_stock_log 和 biz_reagent_stock_log 两张变动记录表(参照 biz_material_stock_log 结构)
  • 后端新增出入库 API(单个/批量入库出库),含行锁防超卖、出库校验、批量事务回滚
  • 后端新增生产任务步骤保存时的自动库存 diff 结算(增量扣减/回退)
  • 前端在现有耗材/试剂管理页面增加:库存列、入库/出库/批量入库/批量出库操作按钮及弹窗
  • 前端新增变动记录展示:行按钮弹窗(单物料历史)+ 顶部 Tab 全部变动记录视图
  • 变动记录区分 source_type:manual_in(手动入库)、manual_out(手动出库)、step_save(步骤保存自动扣减/回退)

Capabilities

New Capabilities

  • consumable-inventory: 耗材库存管理 — 库存字段扩展、手动出入库(单个+批量)、批量事务、库存校验、删除保护
  • reagent-inventory: 试剂库存管理 — 同上,独立于耗材的平行实现
  • production-step-stock-deduction: 生产任务步骤保存自动扣减 — diff 结算算法、增量扣减/回退、并发安全、溯源关联(step_id/task_id/task_no)
  • material-stock-log-ui: 变动记录子弹窗 UI — 行按钮单物料弹窗 + 顶部 Tab 全部记录视图、筛选、分页

Modified Capabilities

(无需修改现有 spec 的行为要求)

Impact

  • 数据库:biz_consumable、biz_reagent 各加 3 个字段(ALTER ADD COLUMN,有默认值,零风险);新建 2 张变动记录表
  • 后端:修改 models/models.py(加字段+新 Model)、新建 crud/consumable_stock_log.py 和 crud/reagent_stock_log.py、扩展 crud/consumable.py 和 crud/reagent.py 出入库逻辑、扩展 api/production.py 出入库和变动记录 API、修改 crud/production_task.py 步骤保存加入 diff 扣减
  • 前端:修改 views/production/consumable/index.vue 和 views/production/reagent/index.vue(增加库存列、出入库弹窗、变动记录 Tab/弹窗)、扩展 api/production.ts API 调用
  • 下游不受影响:耗材包、工艺库、工艺路线、生产任务步骤等 10 张下游关联表均为快照复制,无 FK 依赖,加字段零影响
  • SQL 迁移:需在 docs/sql/ 新增迁移脚本