今天从下午开始就一直在排查和处理库存差异数据,发现很多订单被系统校验卡住了,本以为是仓库系统的问题,今天本着问题彻底解决的态度,又重新一条条数据,竟然核对到一个存留很久的问题。
现状业务:正常业务单据在占用库存时都会基于“良品-锁定”库存进行判断,不允许超量占用(即总占用数量大于良品数量),但仓内发起盘点或库存属性调整单据是从实物管理角度出发,并不依赖上游库存占用数据,但为避免上游超卖,仓内发起单据同样会占用供应链库存,只是说允许超占,且需要占用到具体的批次ID上,来确保最终扣减库存时能够匹配上。
现状方案:单据出库时,会判断批次库存和渠道库存是否满足,批次库存判断逻辑为:良品-本次出库扣减预占数量>=剩余预占数量;渠道库存校验逻辑为:良品-本次出库数量>=剩余预占数量
现状问题:当某个货品出现库存超占时,基于上述逻辑,仓内发起单据就会扣减失败,进而引发后续的批次库存差异,再导致后续2B或2C单据出库异常。且目前仓内发起单据取消时,系统对接异常,并不会扣减批次占用库存,更加容易导致异常。
具体数据案例见下图:

调整后的方案为:
1、仓内发起单据取消接口逻辑调整,需要在单据取消时扣减批次上占用的库存;
2、出库校验逻辑调整:批次库存校验调整为:良品-实际出库数量>=批次预占数量,才允许出库,渠道库存校验调整为:良品-实际出库-预留>=0,才允许出库;
3、2B出库单和2C出库单占用库存校验逻辑不调整。
网友评论