掌桥专利:专业的专利平台
掌桥专利
首页

库存操作业务执行方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 19:58:21


库存操作业务执行方法、装置、电子设备和存储介质

技术领域

本公开涉及数据处理技术领域,尤其涉及一种库存操作业务执行方法、装置、电子设备和计算机可读存储介质。

背景技术

物流OMS(Order Management System,订单管理系统)是物流IT系统的核心模块,以订单为主线,用于对具体订单执行过程实现全面和统一化的计划、调度和优化。

相关技术中,由于物流OMS的库存操作业务和单据业务耦合在一起,一方面,如果需要新增单据类型,则需要对底层代码进行改动,导致产生额外的改动工作量,另一方面,目前的OMS系统中库存操作分支化严重,导致通用性较差。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本公开的目的在于提供一种库存操作业务执行方法、装置、电子设备和计算机可读存储介质,至少在一定程度上能够改善相关技术中改动工作量大以及通用性差的问题。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开的一个方面,提供一种库存操作业务执行方法,包括:响应于获取到的库存操作业务的处理请求,识别所述库存操作业务的业务场景和/或业务单据类型;基于库存操作规则配置库确定与所述业务场景和/或所述业务单据类型匹配的库存操作枚举;基于所述库存操作枚举处理对应的库存数据,以完成所述处理请求。

在一个实施例中,所述业务场景包括出库预占场景、出库取消场景、出库回传场景、入库回传场景和仓内盘点回传场景中的至少一种;所述业务单据类型包括销售出库单、退供单、销售出库单、采购入库回传单、盘盈单和盘亏单中的至少一种;所述库存操作枚举包括预占操作、取消操作、出库回传操作、增加操作和减扣操作中的至少一种。

在一个实施例中,所述基于库存操作规则配置库确定与所述业务场景和/或所述业务单据类型匹配的库存操作枚举包括:所述业务场景为出库预占场景,所述业务单据类型为所述销售出库单或所述退供单,在所述规则配置库中提取的所述库存操作枚举为所述预占操作。

在一个实施例中,所述基于库存操作规则配置库确定与所述业务场景和/或所述业务单据类型匹配的库存操作枚举包括:所述业务场景为出库取消场景,所述业务单据类型为所述销售出库单,在所述规则配置库中提取的所述库存操作枚举为所述取消操作。

在一个实施例中,所述基于库存操作规则配置库确定与所述业务场景和/或所述业务单据类型匹配的库存操作枚举包括:所述业务场景为出库回传场景,所述业务单据类型为所述销售出库单,在所述规则配置库中提取的所述库存操作枚举为所述出库回传操作。

在一个实施例中,所述基于库存操作规则配置库确定与所述业务场景和/或所述业务单据类型匹配的库存操作枚举包括:所述业务场景为入库场景,所述业务单据类型为所述采购入库回传单,在所述规则配置库中提取的所述库存操作枚举为所述增加操作;或所述业务场景为仓内盘点回传场景,所述业务单据类型为所述盘盈单,在所述规则配置库中提取的所述库存操作枚举为所述增加操作。

在一个实施例中,所述基于库存操作规则配置库确定与所述业务场景和/或所述业务单据类型匹配的库存操作枚举包括:所述业务场景为仓内盘点回传场景,所述业务单据类型为所述盘亏单,在所述规则配置库中提取的所述库存操作枚举为所述减扣操作。

在一个实施例中,所述基于所述库存操作枚举处理对应的库存数据,以完成所述处理请求包括:基于所述库存操作枚举和库存增减之间的映射关系,将所述库存操作业务的处理请求转化为可用库存的操作和/或实际库存的操作,以基于所述可用库存的操作和/或所述实际库存的操作处理所述库存操作业务,其中,在所述可用库存的操作量和/或所述实际库存的操作量小于0时,将所述可用库存的操作量和/或所述实际库存的操作量标记为负值。

在一个实施例中,所述将所述库存操作业务的处理请求转化为可用库存的操作和/或实际库存的操作包括:所述库存操作枚举为所述预占操作,基于所述映射关系将所述处理请求转化为为减扣所述可用库存,并校验库存是否充足;所述库存操作枚举为所述取消操作,基于所述映射关系将所述处理请求转化为增加所述可用库存;所述库存操作枚举为所述出库回传操作,基于所述映射关系将所述处理请求转化为减扣所述实际库存;所述库存操作枚举为所述增加操作,基于所述映射关系将所述处理请求转化为同时增加所述可用库存和所述实际库存;所述库存操作枚举为所述减扣操作,基于所述映射关系将所述处理请求转化为同时减扣所述可用库存和所述实际库存。

在一个实施例中,所述库存操作枚举为所述预占操作,基于所述映射关系确定的所述处理操作量为减扣可用库存,并校验库存是否充足,还包括:减扣所述可用库存,并查询减扣后的剩余库存,得到可用剩余库存量;所述可用剩余库存量大于或等于0,标记所述预占操作成功执行;所述可用剩余库存量小于0,并且参考操作量大于0,则基于所述业务场景检测所述预占操作是否接受缺量预占;若接受缺量预占,基于第一校验模式处理所述库存操作业务;若不接受所述缺量预占,基于第二校验模式处理所述库存操作业务,其中,所述参考操作量为第一绝对值与第二绝对值的差值,所述第一绝对值为所述可用库存的操作量的绝对值,所述第二绝对值为所述可用剩余库存量的绝对值。

在一个实施例中,所述若接受缺量预占,基于第一校验模式处理所述库存操作业务包括:若接受所述缺量预占,则确定被减扣的真实库存为所述参考操作量,并对所述可用库存进行增加所述第二绝对值,将所述可用库存记录为0。

在一个实施例中,所述若不接受所述缺量预占,基于第二校验模式处理所述库存操作业务包括:若不接受所述缺量预占,则返回库存不足的信息。

在一个实施例中,所述基于所述库存操作枚举处理对应的库存数据,以完成所述处理请求还包括:所述库存操作枚举为所述取消操作、所述出库回传操作、所述增加操作和所述减扣操作中的任意一种,基于所述处理请求的转化结果进行库存处理,并记录对应的库存流水,其中,所述库存流水包括所述可用库存的操作量、所述实际库存的操作量、操作后的可用库存剩余量和操作后的在库剩余量。

在一个实施例中,所述响应于获取到的库存操作业务的处理请求,识别所述库存操作业务的业务场景和/或业务单据类型,还包括:基于库存操作规则配置库确定与所述业务场景和/或所述业务单据类型匹配的库存类型。

根据本公开的另一方面,提供一种库存操作业务执行装置,包括:识别模块,用于响应于获取到的库存操作业务的处理请求,识别所述库存操作业务的业务场景和/或业务单据类型;确定模块,用于基于库存操作规则配置库确定与所述业务场景和/或所述业务单据类型匹配的库存操作枚举;处理模块,用于基于所述库存操作枚举处理对应的库存数据,以完成所述处理请求。

根据本公开的再一方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述另一个方面所述的库存操作业务执行方法。

根据本公开的又一方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一项的库存操作业务执行方法。

本公开的实施例所提供的库存操作业务执行方案,在物流OMS系统中,通过配置库存操作规则配置库,以在获取到库存操作业务的处理请求时,基于该处理请求携带的业务场景信息和/或业务单据类型信息,在库存操作规则配置库中查询与业务场景和/或业务单据类型匹配的库存操作枚举,以基于该库存操作枚举处理库存,进而完成该库存操作业务。

具体地,通过将处理过程抽象成获取库存操作业务的库存操作控制模块,存储库存操作规则的库存操作规则配置库,即库存操作规则模块以及完成处理请求的处理模块,将业务层前置,以到达业务层与执行层解耦,同时业务层可通过配置化选型库存操作类型,灵活适配业务,一方面,在新增单据类型时,只要修改其与库存操作枚举之间的映射关系,并更新库存操作规则配置库即可,不需要对底层代码进行改动,从而能够降低改动工作量,另一方面,通过对库存业务的灵活适配,减少操作分支化,进而提升OMS系统的通用性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本公开实施例中一种库存操作业务执行系统结构的示意图;

图2示出本公开实施例中一种库存操作业务执行方法的流程图;

图3示出本公开实施例中另一种库存操作业务执行方法的流程图;

图4示出本公开实施例中再一种库存操作业务执行方法的流程图;

图5示出本公开实施例中又一种库存操作业务执行方法的流程图;

图6示出本公开实施例的一种库存操作业务执行框架图;

图7示出本公开实施例中又一种库存操作业务执行方法的流程图;

图8示出本公开实施例中一种库存操作业务执行装置的示意图;

图9示出本公开实施例中一种电子设备的示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

本申请提供的方案,通过将处理过程抽象成获取库存操作业务的库存操作控制模块,存储库存操作规则的库存操作规则配置库,即库存操作规则模块以及完成处理请求的处理模块,将业务层前置,以到达业务层与执行层解耦,同时业务层可通过配置化选型库存操作类型,灵活适配业务,一方面,在新增单据类型时,只要修改其与库存操作枚举之间的映射关系,并更新库存操作规则配置库即可,不需要对底层代码进行改动,从而能够降低改动工作量,另一方面,通过对库存业务的灵活适配,减少操作分支化,进而提升OMS系统的通用性。

为了便于理解,下面首先对本申请涉及到的几个名词(缩写词)进行解释。

OMS:(全称:Order Management System订单管理系统)OMS是物流IT系统的核心模块,她为企业的统一管理和决策分析提供支持。它以订单为主线,对具体物流执行过程实现全面和统一化的计划、调度和优化。OMS主要包括订单接收归类(导入)、订单拆分与合并、订单预分拣(匹配承运商/快递)、任务分配、物流成本结算、异常监控管理(备注、关注提醒等)及订单可视化等功能。OMS与WMS、TMS的高效协同,可大幅提升供应链物流执行过程的执行效率,有效降低物流成本。

WMS:(全称:Warehouse Management System仓储管理系统)通过入库业务、出库业务、仓库调拨、库存调拨等功能,综合商品管理、供应商管理、质检管理、批次管理、库存盘点等功能综合运用的管理系统,有效控制、跟踪、预警仓库业务的物流和成本管理全过程,实现企业的精细化运营管理。WMS系统可以独立执行库存操作,也可与OMS系统的单据结合使用。

数据库锁,在数据库中插入数据时锁定表,称为“锁表”;在更新数据时锁定行,称为“锁行”。

盘亏:盘亏是在财产清查过程中发现实存数小于账簿结存量或有账无物的现象。

盘盈:盘盈是在财产清查时发现实存数大于账簿结存量或有物无账的现象。

stockType:库存类型,用于表示库存管理过程,例如现货可售库存,在途库存等。

usableQty:库存可用量,还有多少库存可用预占。

realQty:仓内实际在库库存,表示仓内现货库存量,主要使用该库存进行各系统间对账。

图1示出本公开实施例中一种库存操作业务执行系统的结构示意图,包括多个终端120和服务器集群140。

终端120可以是手机、游戏主机、平板电脑、电子书阅读器、智能眼镜、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、智能家居设备、AR(Augmented Reality,增强现实)设备、VR(Virtual Reality,虚拟现实)设备等移动终端,或者,终端120也可以是个人计算机(Personal Computer,PC),比如膝上型便携计算机和台式计算机等等。

其中,终端120中可以安装有用于提供的库存操作业务执行的应用程序。

终端120与服务器集群140之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。

服务器集群140是一台服务器,或者由若干台服务器组成,或者是一个虚拟化平台,或者是一个云计算服务中心。服务器集群140用于为提供库存操作业务执行应用程序提供后台服务。可选地,服务器集群140承担主要计算工作,终端120承担次要计算工作;或者,服务器集群140承担次要计算工作,终端120承担主要计算工作;或者,终端120和服务器集群140之间采用分布式计算架构进行协同计算。

在一些可选的实施例中,服务器集群140用于存储库存操作业务执行模型等。

可选地,不同的终端120中安装的应用程序的客户端是相同的,或两个终端120上安装的应用程序的客户端是不同控制系统平台的同一类型应用程序的客户端。基于终端平台的不同,该应用程序的客户端的具体形态也可以不同,比如,该应用程序客户端可以是手机客户端、PC客户端或者全球广域网(World Wide Web,Web)客户端等。

本领域技术人员可以知晓,上述终端120的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和设备类型不加以限定。

可选的,该系统还可以包括管理设备(图1未示出),该管理设备与服务器集群140之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。

可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(ExtensibleMarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(InternetProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。

下面,将结合附图及实施例对本示例实施方式中的库存操作业务执行方法中的各个步骤进行更详细的说明。

图2示出本公开实施例中一种库存操作业务执行方法流程图。本公开实施例提供的方法可以由任意具备计算处理能力的电子设备执行,例如如图1中的终端120和/或服务器集群140。在下面的举例说明中,以终端120为执行主体进行示例说明。

如图2所示,服务器集群140执行库存操作业务执行方法,包括以下步骤:

步骤S202,响应于获取到的库存操作业务的处理请求,识别库存操作业务的业务场景和/或业务单据类型。

业务场景包括但不限于出库预占场景、出库取消场景、出库回传场景、入库回传场景和仓内盘点回传场景。

业务单据类型包括但不限于销售出库单、退供单、销售出库单、采购入库回传单、盘盈单和盘亏单。

另外,还可以通过识别库存操作业务的商家编码来确定对应的库存操作枚举。

步骤S204,基于库存操作规则配置库确定与业务场景和/或业务单据类型匹配的库存操作枚举。

其中,库存操作枚举指对库存数据库进行操作的列举类型。

库存操作规则配置库则可以理解为通过对物流OMS库存操作业务进行抽象与总结,并分析库存与上下游系统业务比如WMS系统业务之间的交互场景,将OMS库存操作模型抽象成多种基础操作,即库存操作枚举,结合其与业务场景和/或业务单据类型等参数的对应关系,生成库存操作规则配置库。

具体地,库存操作枚举包括但不限于预占操作OCCUPY、取消操作CANCEL、出库回传操作、增加操作和减扣操作。

步骤S206,基于库存操作枚举处理对应的库存数据,以完成处理请求。

其中,库存数据包括但不限于可用库存数据和实际库存数据,实际库存数据为仓库中实际存储的商品数量,可用库存数据则还包括以出库但未被使用的商品数量。

在该实施例中,在物流OMS系统中,通过配置库存操作规则配置库,以在获取到库存操作业务的处理请求时,基于该处理请求携带的业务场景信息和/或业务单据类型信息,在库存操作规则配置库中查询与业务场景和/或业务单据类型匹配的库存操作枚举,以基于该库存操作枚举处理库存,进而完成该库存操作业务。

具体地,通过将处理过程抽象成获取库存操作业务的库存操作控制模块,存储库存操作规则的库存操作规则配置库,即库存操作规则模块以及完成处理请求的处理模块,将业务层前置,以到达业务层与执行层解耦,同时业务层可通过配置化选型库存操作类型,灵活适配业务,一方面,在新增单据类型时,只要修改其与库存操作枚举之间的映射关系,并更新库存操作规则配置库即可,不需要对底层代码进行改动,从而能够降低改动工作量,另一方面,通过对库存业务的灵活适配,减少操作分支化,进而提升OMS系统的通用性。

在一个实施例中,基于库存操作规则配置库确定与业务场景和/或业务单据类型匹配的库存操作枚举包括:业务场景为出库预占场景,业务单据类型为销售出库单或退供单,在规则配置库中提取的库存操作枚举为预占操作。

其中,退供单指从供应商采购的产品退还给供应商的单据类型。

在该实施例中,出库预占场景即OCCUPY,通常情况下,仓库出库发货是按照订单的先后顺序处理,WMS系统根据订单商品要求匹配合适的库存,按订单要求数量锁定库存,因此在与WMS系统交互的OMS系统中抽象出出库预占场景,与其相对的时业务单据类型为销售出库单或退供单,此时,对库存数据进行预占处理,以实现针对销售出库单或退供单等单据类型的库存处理,实现了出库预占业务场景下的库存操作业务的灵活配置。

在一个实施例中,基于库存操作规则配置库确定与业务场景和/或业务单据类型匹配的库存操作枚举包括:业务场景为出库取消场景,业务单据类型为销售出库单,在规则配置库中提取的库存操作枚举为取消操作。

在该实施例中,通过抽象出出库取消场景和销售出库单,得到对应的对库存数据的取消操作,实现了出库取消场景下的库存操作业务的灵活配置。

在一个实施例中,基于库存操作规则配置库确定与业务场景和/或业务单据类型匹配的库存操作枚举包括:业务场景为出库回传场景,业务单据类型为销售出库单,在规则配置库中提取的库存操作枚举为出库回传操作。

在该实施例中,通过抽象出出库回传场景和销售出库单,得到对应的对库存数据的出库回传操作,同样实现了出库取消场景下的库存操作业务的灵活配置。

在一个实施例中,基于库存操作规则配置库确定与业务场景和/或业务单据类型匹配的库存操作枚举包括:业务场景为入库场景,业务单据类型为采购入库回传单,在规则配置库中提取的库存操作枚举为增加操作;或业务场景为仓内盘点回传场景,业务单据类型为盘盈单,在规则配置库中提取的库存操作枚举为增加操作。

在一个实施例中,基于库存操作规则配置库确定与业务场景和/或业务单据类型匹配的库存操作枚举包括:业务场景为仓内盘点回传场景,业务单据类型为盘亏单,在规则配置库中提取的库存操作枚举为减扣操作。

综上可知,基于库存操作规则配置库确定与业务场景和/或业务单据类型匹配的库存操作枚举的对应关系,如表1所示。

表1

另外,本领域的技术人员还能够理解的是,针对负杂的业务场景,可以由上述5种库存操作枚举的部分或全部组合。

如图3所示,在一个实施例中,步骤S206,基于库存操作枚举处理对应的库存数据,以完成处理请求的一种具体实现方式,包括:

步骤S302,基于库存操作枚举和库存增减之间的映射关系,将库存操作业务的处理请求转化为可用库存的操作和/或实际库存的操作。

其中,库存操作枚举和库存增减之间的映射关系包括但不限于:预占操作OCCUPY为减扣可用库存且校验库存是否充足,取消操作CANCEL为增加可用库存,出库回传操作OUT_BOUND_BACK为减扣仓内实际在库量,增加操作ADD为同时增加可用库存和仓内实际在库量,减扣操作SUBTRACT为同时减扣可用库存和实际库存。

步骤S304,基于可用库存的操作和/或实际库存的操作处理库存操作业务。

其中,在可用库存的操作量和/或实际库存的操作量小于0时,将可用库存的操作量和/或实际库存的操作量标记为负值。

在该实施例中,响应于接收到的库存操作业务,在OMS系统中,通过控制层识别业务场景、单据类型以及商家信息等,基于识别结果向库存操作规则配置库中拉取库存操作规则的配置信息,基于配置结果获取库存操作枚举以及操作的库存类型,并进一步基于库存操作枚举和库存增减之间的映射关系,将处理请求的操作量转化为对可用库存以及实际库存的具体操作量,并在可用库存以及实际库存的可操作量小于0时,显示负号=,以方便运营人员识别。

在一个实施例中,将库存操作业务的处理请求转化为可用库存的操作和/或实际库存的操作包括:

库存操作枚举为预占操作,基于映射关系将处理请求转化为为减扣可用库存,并校验库存是否充足。

库存操作枚举为取消操作,基于映射关系将处理请求转化为增加可用库存。

库存操作枚举为出库回传操作,基于映射关系将处理请求转化为减扣实际库存。

库存操作枚举为增加操作,基于映射关系将处理请求转化为同时增加可用库存和实际库存。

库存操作枚举为减扣操作,基于映射关系将处理请求转化为同时减扣可用库存和实际库存。

综上所述,库存操作枚举与可用库存的操作和/或实际库存的操作之间的映射关系,如表2所示。

在该实施例中,如果OMS库存控制模块识别出操作枚举类型为预占操作OCCUPY,则需要进行库存校验,如果OMS库存控制模块识别出操作枚举类型为其它操作,则不需要进行库存校验,基于该处理模式,将库存数据的处理过程基于是否需要库存校验进一步进行划分,在保证通用性的同时,还提升了OMS系统的扩展性。

表2

如图4所示,在一个实施例中,库存操作枚举为预占操作,基于映射关系确定的处理操作量为减扣可用库存,并校验库存是否充足,还包括:

步骤S402,减扣可用库存,并查询减扣后的剩余库存,得到可用剩余库存量。

步骤S404,可用剩余库存量大于或等于0,标记预占操作成功执行。

步骤S406,可用剩余库存量小于0,并且参考操作量大于0,则基于业务场景检测预占操作是否接受缺量预占。

其中,是否接受缺量预占指在库存存在缺量时,是否进行缺量预占。

步骤S408,若接受缺量预占,基于第一校验模式处理库存操作业务。

步骤S410,若不接受缺量预占,基于第二校验模式处理库存操作业务。

其中,第一校验模式为缺量库存预占校验,第二校验模式为普通库存预占校验。

参考操作量为第一绝对值与第二绝对值的差值,第一绝对值为可用库存的操作量的绝对值,第二绝对值为可用剩余库存量的绝对值。

在该实施例中,针对OCCUPY枚举类型,基于库存操作规则配置库,还可以配置是否允许缺量预占等信息,具体地,第二校验模式表示一个库存操作业务单里只要有一个商品编码sku的库存不足就确认整单预占失败,第一校验模式表示一个库存操作业务处理单里至少有一个商品编码sku有库存即可占用,并确认占用成功。

如图5所示,在一个实施例中,库存操作枚举为预占操作,基于映射关系确定的处理操作量为减扣可用库存,并校验库存是否充足,具体还包括:

步骤S502,减扣可用库存,并查询减扣后的剩余库存,得到可用剩余库存量。

步骤S504,可用剩余库存量大于或等于0,标记预占操作成功执行。

其中,可用剩余库存量大于或等于0,表明库存充足。

步骤S506,可用剩余库存量小于0,并且参考操作量大于0,则基于业务场景检测预占操作是否接受缺量预占。

步骤S508,若接受缺量预占,则确定被减扣的真实库存为参考操作量,并对可用库存进行增加第二绝对值,使可用库存记录为0。

步骤S510,若不接受缺量预占,则返回库存不足的信息。

具体地,针对预占校验操作,通过校验库存是否充足,决策是否拒单,进一步地,根据是否可缺量又划分为进行缺量库存预占校验的第一校验模式和进行普通库存预占校验的第二校验模式,普通型校验表示一个库存操作业务处理单里只有一个sku库存不足就整单预占失败,缺量库存预占校验表示一个库存操作业务处理单里至少有一个sku有库存即可。

例如,一个库存减扣和校验的处理过程,具体包括:

(1)库存减扣。

扣减处理过程包括:对可用库存量进行库存设置,具体为原始的可用库存量与可用库存操作量之和,实际库存量则为原始的实际库存量与可查询到的实际库存操作量之和。

其中,实际库存量,即在库量。

可用库存操作量的正负号由操作枚举控制适配,该处理过程为行锁。

(2)剩余库存查询。

(3)校验库存和库存增补。

其中,依赖步骤(1)和步骤(2)的执行结果,即可用剩余库存量,假设可用剩余库存量为X。

如果X大于等于0,表明当前全部库存充足,并标记库存预占成功。

如果X<0,且参考操作量diff>0(diff=|usableOpQty|-|X|),进一步检测是否允许缺量预占,如果允许缺量预占,表明当前部分库存充足,并且剩余量绝对值小于请求操作量绝对值,并记录被减扣掉真实库存为|usableOpQty|-|X|,usableOpQty为可用库存操作量,同时对当前记录增加|X|库存,使其库存为0否则是负库存。

如果不允许缺量阈值,即Other场景,返回当前记录无库存,库存不足。

(4)流水记录。

步骤1至3操作完毕后,记录库存流水,例如指定订单发起了库存预占,请求量为11,但只有10个库存,如果不允许缺量,预占失败,返回库存不足,但如果允许缺量预占,则预占10个可用库存,返回预占成功。

在一个实施例中,基于库存操作枚举处理对应的库存数据,以完成处理请求还包括:库存操作枚举为取消操作、出库回传操作、增加操作和减扣操作中的任意一种,基于处理请求的转化结果进行库存处理,并记录对应的库存流水,其中,库存流水包括可用库存的操作量、实际库存的操作量、操作后的可用库存剩余量和操作后的在库剩余量。

针对取消操作、出库回传操作、增加操作和减扣操作等库存枚举操作的执行过程,只需被动执行库存增减操作,记录库存操作流水,不做库存校验,具体操作步骤为:

初始化库存记录,获取库存记录主键ID,增量更新库存、查询剩余库存,记录库存流水,包含操作可用库存,实际库存操作量以及操作后剩余量。

在一个实施例中,响应于获取到的库存操作业务的处理请求,识别库存操作业务的业务场景和/或业务单据类型,还包括:基于库存操作规则配置库确定与业务场景和/或业务单据类型匹配的库存类型。

图6示出了根据本公开的一种库存操作业务执行框架图,如图6所示,本公开的库存操作业务执行可以抽象为库存操作控制模块、库存操作规则配置库、库存预占操作模块和非库存预占操作模块。

其中库存操作控制模块接收获取到的库存操作业务的操作请求,基于库存操作业务从库存规则配置库中选择匹配的库存操作规则,具体为库存操作枚举,基于是否需要进行库存校验,进一步划分为库存预占操作模块和非库存预占操作模块,其中,针对OCCUPY操作枚举,基于库存预占操作模块处理库存操作业务,具体包括减扣可用库存、查询剩余库量、库存校验以及记录流水和持久化,针对其它类型的操作枚举,具体包括释放可用库存、减扣实际库存、减扣可用库存和实际库存和增加可用库存和实际库存等,基于非库存预占操作模块处理库存操作业务,具体包括查询剩余库量以及记录流水和持久化。

如图7所示,根据本公开的另一个实施例的库存操作业务执行方法,具体包括:

步骤S702,响应于获取到的库存操作业务的处理请求,识别库存操作业务的业务场景、业务单据类型和商户信息。

步骤S704,基于库存操作规则配置库确定与业务场景、业务单据类型和商户信息匹配的库存操作枚举。

步骤S706,基于库存操作枚举和库存增减之间的映射关系,将库存操作业务的处理请求转化为可用库存的操作和/或实际库存的操作。

步骤S708,库存操作枚举为预占操作,减扣可用库存,并查询减扣后的剩余库存,得到可用剩余库存量。

步骤S710,可用剩余库存量大于或等于0,标记预占操作成功执行;

步骤S712,可用剩余库存量小于0,并且参考操作量大于0,则基于业务场景检测预占操作是否接受缺量预占;

步骤S714,若接受缺量预占,基于第一校验模式处理库存操作业务;

步骤S716,若不接受缺量预占,基于第二校验模式处理库存操作业务。

步骤S718,库存操作枚举为取消操作、出库回传操作、增加操作和减扣操作中的任意一种,基于处理请求的转化结果进行库存处理,并记录对应的库存流水。

在该实施例中,通过总结OMS库存与单据交互业务场景,聚焦核心要素、抽象出库存操作通用模型、形成库存操作配置化规则,并将OMS库存操作抽象成5种基础操作,实现了灵活适配业务。

需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图8来描述根据本发明的这种实施方式的库存操作业务执行装置800。图8所示的库存操作业务执行装置800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

库存操作业务执行装置800以硬件模块的形式表现。库存操作业务执行装置800的组件可以包括但不限于:识别模块802,用于响应于获取到的库存操作业务的处理请求,识别库存操作业务的业务场景和/或业务单据类型;确定模块804,用于基于库存操作规则配置库确定与业务场景和/或业务单据类型匹配的库存操作枚举;处理模块806,用于基于库存操作枚举处理对应的库存数据,以完成处理请求。

在一个实施例中,业务场景包括出库预占场景、出库取消场景、出库回传场景、入库回传场景和仓内盘点回传场景中的至少一种;业务单据类型包括销售出库单、退供单、销售出库单、采购入库回传单、盘盈单和盘亏单中的至少一种;库存操作枚举包括预占操作、取消操作、出库回传操作、增加操作和减扣操作中的至少一种。

在一个实施例中,确定模块802具体用于:业务场景为出库预占场景,业务单据类型为销售出库单或退供单,在规则配置库中提取的库存操作枚举为预占操作。

在一个实施例中,确定模块802具体用于业务场景为出库取消场景,业务单据类型为销售出库单,在规则配置库中提取的库存操作枚举为取消操作。

在一个实施例中,确定模块802具体用于业务场景为出库回传场景,业务单据类型为销售出库单,在规则配置库中提取的库存操作枚举为出库回传操作。

在一个实施例中,确定模块802具体用于业务场景为入库场景,业务单据类型为采购入库回传单,在规则配置库中提取的库存操作枚举为增加操作;或业务场景为仓内盘点回传场景,业务单据类型为盘盈单,在规则配置库中提取的库存操作枚举为增加操作。

在一个实施例中,确定模块802具体用于业务场景为仓内盘点回传场景,业务单据类型为盘亏单,在规则配置库中提取的库存操作枚举为减扣操作。

在一个实施例中,处理模块806具体用于:基于库存操作枚举和库存增减之间的映射关系,将库存操作业务的处理请求转化为可用库存的操作和/或实际库存的操作,以基于可用库存的操作和/或实际库存的操作处理库存操作业务。

在一个实施例中,处理模块806具体用于:库存操作枚举为预占操作,基于映射关系将处理请求转化为为减扣可用库存,并校验库存是否充足;库存操作枚举为取消操作,基于映射关系将处理请求转化为增加可用库存;库存操作枚举为出库回传操作,基于映射关系将处理请求转化为减扣实际库存;库存操作枚举为增加操作,基于映射关系将处理请求转化为同时增加可用库存和实际库存;库存操作枚举为减扣操作,基于映射关系将处理请求转化为同时减扣可用库存和实际库存。

在一个实施例中,库存操作枚举为预占操作,处理模块806具体用于:减扣可用库存,并查询减扣后的剩余库存,得到可用剩余库存量;可用剩余库存量大于或等于0,标记预占操作成功执行;可用剩余库存量小于0,并且参考操作量大于0,则基于业务场景检测预占操作是否接受缺量预占;若接受缺量预占,基于第一校验模式处理库存操作业务;若不接受缺量预占,基于第二校验模式处理库存操作业务,其中,参考操作量为第一绝对值与第二绝对值的差值,第一绝对值为可用库存的操作量的绝对值,第二绝对值为可用剩余库存量的绝对值。

在一个实施例中,处理模块806具体用于:若接受缺量预占,则确定被减扣的真实库存为参考操作量,并对可用库存进行增加第二绝对值,使可用库存记录为0。

在一个实施例中,处理模块806具体用于:若不接受缺量预占,则返回库存不足的信息。

在一个实施例中,处理模块806还用于:库存操作枚举为取消操作、出库回传操作、增加操作和减扣操作中的任意一种,基于处理请求的转化结果进行库存处理,并记录对应的库存流水其中,库存流水包括可用库存的操作量、实际库存的操作量、操作后的可用库存剩余量和操作后的在库剩余量。

在一个实施例中,识别模块802还用于:基于库存操作规则配置库确定与业务场景和/或业务单据类型匹配的库存类型。

下面参照图9来描述根据本发明的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930。

其中,存储单元存储有程序代码,程序代码可以被处理单元910执行,使得处理单元910执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元910可以执行如图2中所示的步骤S202、S204和S206,以及本公开的库存操作业务执行方法中限定的其他步骤。

存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)9201和/或高速缓存存储单元9202,还可以进一步包括只读存储单元(ROM)9203。

存储单元920还可以包括具有一组(至少一个)程序模块9205的程序/实用工具9204,这样的程序模块9205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备900也可以与一个或多个外部设备960(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口950进行。并且,电子设备900还可以通过网络适配器950与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器950通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。

在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。

根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

相关技术
  • 任务执行方法、装置、电子设备及计算机可读存储介质
  • 动态指令的执行方法、装置、电子设备及存储介质
  • 网页操作数据的处理方法、装置、电子设备及存储介质
  • 目录文档的操作方法、装置、电子设备、可读存储介质
  • 网页操作数据的处理方法、装置、电子设备及存储介质
  • 操作执行方法、操作执行装置、电子设备和可读存储介质
  • 操作执行方法、操作执行装置、电子设备和可读存储介质
技术分类

06120116485588