You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinForm药店系统Stock_items主键item_id如何实现同商品多批次日期存储

药店库存效期区分问题解决方案

核心问题根因

现有表设计将Stock_items的主键设为item_id,同商品所有入库批次合并为单条记录累加库存,天然不支持多批次、多效期的库存管理,完全不符合药店药品监管要求(药品需按效期先进先出、近效期预警)。

落地方案

1. 数据库表结构改造(核心改动)

  • 移除Stock_items表原item_id主键约束,新增自增字段stock_batch_id作为新主键
  • 给Stock_items表新增以下必填字段:
    • batch_number:入库批次号,同批次同效期药品共用同一个批次号
    • expire_date:有效期,精确到日
    • produce_date:可选字段,存储药品生产日期
    • dealer_id:可选字段,关联Dealers表存储本次入库的经销商信息,方便溯源
  • 保留原item_id作为外键关联Item_master表,保留原入库日期、库存数量字段

2. 入库逻辑改造

  • 新入库商品时不再直接更新原有同item_id的库存记录,每次入库新增一条独立的Stock_items记录,填写对应批次号、效期、本次入库数量即可
  • 若确认入库商品是完全同item_id、同批次号、同效期的补录库存,可选择累加对应批次的库存数量,无需新增记录

3. 业务逻辑适配

  • 总库存统计:计算同一item_id下所有未过期批次的库存数量总和即可,完全兼容原有业务的总库存展示需求
  • 出库逻辑:强制遵循先进先出/近效期先出规则,优先扣减有效期最早的批次库存,某批次库存扣减为0后可标记为已售罄归档
  • 效期预警:直接遍历所有Stock_items记录,筛选出expire_date距当前日期小于预警阈值(通常设置为提前3个月)的批次,即可生成符合药监要求的近效期药品预警清单

4. 历史数据兼容处理

原有合并库存的历史记录,可补填默认批次号(比如HIS-xxx格式)和预估效期,若无法确认效期可单独标记为历史批次,优先安排出库消耗即可。

内容的提问来源于stack exchange,提问作者Ron8320

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:48:03