一种化工试剂ERP批次库存并发处理方法及系统与流程

摘要: 本发明涉及企业资源计划与仓储管理,具体涉及一种化工试剂erp批次库存并发处理方法及系统。背景技术:1、化工试剂erp需管理多规格、多批次(coa)、多库位库存。...
一种化工试剂ERP批次库存并发处理方法及系统与流程

本发明涉及企业资源计划与仓储管理,具体涉及一种化工试剂 erp 批次库存并发处理方法及系统。

背景技术:

1、化工试剂 erp 需管理多规格、多批次(coa)、多库位库存。采购入库、销售出库、盘库、移库、生产领料、规格分装等业务并发写入批次库存表,易出现超卖、流水不一致及 sqlserver 1205 死锁。

2、现有技术中,库存变更代码分散在多个服务中,缺乏统一并发控制;盘库常采用简单增减量而非绝对量语义;移库若分两次独立出入库,中途失败将导致账实分裂。

3、因此,需要一种针对化工试剂 erp 的批次库存并发处理技术方案。

技术实现思路

1、本发明要解决并发一致性、死锁失败、盘库移库分装语义不统一等问题。

2、本发明提供一种化工试剂 erp 批次库存并发处理方法,包括:将所有批次库存变动请求统一路由至库存管理门面服务;提取产品规格标识按升序排序后依次获取应用层互斥锁;在数据库事务内对目标批次库存行施加更新锁及行锁,执行库存变动并写入出入库流水及规格时点库存快照;当捕获数据库死锁错误时,按指数退避策略重试事务;对于盘库请求,将目标绝对库存量与当前库存量之差转换为标准出入库;对于移库请求,在单事务内依次执行源批次出库与目标库位入库并继承源批次属性;对于规格分装请求,校验净重比后在单锁保护下原子执行出库与入库。

3、本发明还提供一种化工试剂 erp 批次库存并发处理系统,包括库存管理门面模块、有序锁模块、事务执行模块、盘库模块、移库模块及分装模块。

4、与现有技术相比,本发明降低并发一致性错误与死锁失败率,统一盘库、移库及分装语义。

1.一种化工试剂 erp 批次库存并发处理方法,其特征在于,包括:将所有批次库存变动请求统一路由至库存管理门面服务;提取所述请求涉及的一个或多个产品规格标识,按升序排序后依次获取应用层互斥锁;在数据库事务内对目标批次库存行施加更新锁及行锁,执行库存数量变动,并写入出入库流水及规格时点库存快照;当捕获数据库死锁错误时,按指数退避策略重试所述事务。

2.根据权利要求1所述的方法,其特征在于,所述应用层互斥锁包括本地信号量锁或基于 redis 的 set nx ex 分布式锁,分布式锁释放时通过 lua 脚本校验锁令牌匹配后再删除。

3.根据权利要求2所述的方法,其特征在于,所述分布式锁在持锁期间启动看门狗定时任务对锁键续期。

4.根据权利要求1所述的方法,其特征在于,所述指数退避策略的等待时间为基础毫秒数乘以 2 的 attempt 减 1 次方再加上随机抖动。

5.根据权利要求1所述的方法,其特征在于,对于盘库请求,读取目标批次当前库存量,计算目标绝对库存量与当前库存量之差,将所述之差转换为一次标准入库或出库操作。

6.根据权利要求1所述的方法,其特征在于,对于移库请求,在单数据库事务内依次执行:对源批次执行出库;对目标库位执行入库;并继承源批次的批次号、生产日期、过期日期及批次成本。

7.根据权利要求1所述的方法,其特征在于,对于规格分装请求,校验源规格与目标规格属于同一产品,并根据规格净重及预设容差百分比校验源数量与目标数量的比值;校验通过后,对源规格标识与目标规格标识按升序加锁,在单事务内执行源批次出库及目标规格入库。

8.根据权利要求1所述的方法,其特征在于,对于生产领料请求,当传入标识为先按批次库存主键查询,若规格不匹配则按批次信息标识及物料规格标识查询批次列表,按生产日期升序选取首个可用量满足领料数量的批次。

9.根据权利要求1所述的方法,其特征在于,搜索引擎索引同步、缓存更新在所述数据库事务提交成功后异步执行,不参与所述事务。

10.根据权利要求1所述的方法,其特征在于,所述库存管理门面服务提供标准出入库、批量出入库、移库、盘库绝对量调整及规格分装入口,禁止业务模块直接更新批次库存表。