库存管理

阅读本教程需要您对 RB 的 实体管理触发器 有一定了解基础,否则可能无法进行。难度 ⭐⭐⭐⭐

通过本教程您将学习到如何使用 RB 打造一个库存管理系统。本教程旨在抛砖引玉,因此仅会对库存的主要/核心业务进行实现,您可以此为基础自行扩展。

需求场景

  • 入库时自动计算总入库量
  • 出库时自动计算总出库量
  • 出库时若库存数量不足则禁止出库
  • 自动计算仓库中的可用库存数量

建立业务实体

实体与关系

实体 主要字段 说明
商品 商品名称 基础数据
仓库 仓库名称 基础数据
入库 入库商品、入库仓库、数量 -
出库 出库商品、出库仓库、数量 -
库存 商品、仓库、总入库量、总出库量、当前库存 -

业务实体(及字段)的更多使用说明请参见 业务实体

业务流程

库存计算

通过 分组聚合 触发器,可以对“总入库量”、“总出库量”进行计算。通过 字段更新 触发器,可以对“当前库存”进行计算。

计算总入库量

  1. 使用 分组聚合 触发器(源实体为“入库”;触发动作为“新建”、“更新”、“删除”)
  2. 因为要对库存中的总入库量进行计算,所以目标实体为“库存”
  3. 通过“仓库”+“商品”字段组合来找到对应的库存记录,以更新计算值
  4. 源字段“数量”求和到目标字段“总入库量”
  5. 若在库存中无法通过“仓库”+“商品”找到对应记录,则自动新建

计算总出库量

  1. 使用 分组聚合 触发器(源实体为“出库”;触发动作为“新建”、“更新”、“删除”)
  2. 因为要对库存中的总出库量进行计算,所以目标实体为“库存”
  3. 通过“仓库”+“商品”字段组合来找到对应的库存记录,以更新计算值
  4. 源字段“数量”求和到目标字段“总出库量”
  5. 若在库存中无法通过“仓库”+“商品”找到对应记录,则自动新建

计算当前库存

  1. 使用 字段更新 触发器(源实体为“库存”;触发动作为“新建”、“更新”)
  2. 因为要对库存中的当前库存进行计算,所以目标实体为“库存”
  3. 通过计算公式 总入库量 - 总出库量 可以得出“当前库存”
  4. 因为“当前库存”是自动计算的,所以前台的输入并无意义,可以将其设为只读
  5. 请特别注意执行优先级,因为“当前库存”的计算依赖“总入库量”和“总出库量”字段,而这两个字段也是经由触发器计算得出,因此要保证这两个触发器先被执行

数据管控

在出库时,不希望没有库存的商品也被出库,因此需要进行当前库存数量的校验。

校验当前库存

  1. 使用 数据校验 触发器(源实体为“库存”;触发动作为“新建”、“更新”)
  2. 设置校验条件为“当前库存大于等于 0”
  3. 优先级设置为 -1,让其晚于“计算当前库存”执行

触发器的更多使用说明请参见 触发器

更好的设计

本库存管理设计在现实场景中可能存在一定不足,您可根据自身需要进行扩展。这些不足包括:

  • “入库”和“出库”添加明细实体,以便一次对多个商品进行出入库操作
  • 字段不够丰富,可以根据需要添加其他字段,例如商品的单位、价格等
  • 通过字段更新触发器对不同的入库单位进行换算(如 1 箱 = 12 瓶),使其更易使用
该文档内容对您是否有帮助?没有
如有任何疑问,请与我们的 社区QQ 群 联系
更新时间 12/7/2023, 11:36:18 PM
目录