发明内容
本公开的目的在于提供一种出库定位方法及出库定位装置,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
根据本公开的一个方面,提供了一种出库定位方法,包括:
根据订单数据选择定位规则查找所需的维度信息;
根据所述维度信息查找与所述维度信息相符合的一个或多个定位规则;
对所述一个或多个定位规则进行优先级处理来确定优先级最高的定位规则;
根据所述优先级最高的定位规则和所述订单数据匹配库存数据;以及
根据所匹配的库存数据生成出库定位结果。
在本公开的一种示例性实施例中,所述出库定位方法还包括:
在选择所述维度信息之前,配置所述定位规则的参数信息以及所述定位规则查找的所述维度信息。
在本公开的一种示例性实施例中,所述参数信息包括规则代码信息、库区限制信息、保质期临期商品、定位优化策略、包装单元信息、库区信息、批次属性信息以及排序信息中的一种或多种。
在本公开的一种示例性实施例中,所述维度信息包括订单类型信息、商品信息、货主信息、货类信息、仓库信息、业务类型信息以及商户信息中的一种或多种。
在本公开的一种示例性实施例中,所述出库定位方法还包括:
在匹配库存数据的同时采用线程隔离方式将所述库存数据缓存在内存中。
在本公开的一种示例性实施例中,所述出库定位方法还包括:
在匹配库存数据之后,根据所述订单数据和所述优先级最高的定位规则对所述库存数据进行清洗。
根据本公开的另一方面,还提供了一种出库定位装置,包括:
维度信息选择单元,用于根据订单数据选择定位规则查找所需的维度信息;
定位规则查找单元,用于根据所述维度信息查找与所述维度信息相符合的一个或多个定位规则;
最优定位规则确定单元,用于对所述一个或多个定位规则进行优先级处理来确定优先级最高的定位规则;
库存数据匹配单元,用于根据所述优先级最高的定位规则和所述订单数据匹配库存数据;以及
结果生成单元,用于根据所匹配的库存数据生成出库定位结果。
在本公开的一种示例性实施例中,所述出库定位装置还包括:
配置单元,用于在选择所述维度信息之前,配置所述定位规则的参数信息以及所述定位规则查找的所述维度信息。
在本公开的一种示例性实施例中,所述参数信息包括规则代码信息、库区限制信息、保质期临期商品、定位优化策略、包装单元信息、库区信息、批次属性信息以及排序信息中的一种或多种。
在本公开的一种示例性实施例中,所述维度信息包括订单类型信息、商品信息、货主信息、货类信息、仓库信息、业务类型信息以及商户信息中的一种或多种。
在本公开的一种示例性实施例中,所述出库定位装置还包括:
数据缓存单元,用于在匹配库存数据的同时采用线程隔离方式将所述库存数据缓存在内存中。
在本公开的一种示例性实施例中,所述出库定位装置还包括:
数据清洗单元,用于在匹配库存数据之后,根据订单数据和所述优先级最高的定位规则对所述库存数据进行清洗。
本公开的一种示例性实施例中的出库定位方法及出库定位装置,基于从订单数据提取的维度信息来查找相应的定位规则,对多个定位规则进行优先级处理来确定最优的定位规则,根据最优的定位规则和订单数据匹配库存数据。一方面,基于从订单数据提取的维度信息来查找相应的定位规则,便于根据订单情况灵活选择要使用的定位规则,从而能够满足不同的业务场景;另一方面,对多个定位规则进行优先级处理来确定最优的定位规则,可以基于订单数据选择最优的定位规则,从而提高出库定位的处理效率;再一方面,根据最优的定位规则和订单数据匹配库存数据,可以针对不同的定位规则采用不同的定位规则服务处理逻辑,从而可以通过添加定位规则及相应的定位规则服务处理逻辑来使定位规则具有较好的扩展性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、材料、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施例中,首先提供了一种出库定位方法。参考图1中所示,该出库定位方法可以包括以下步骤:
步骤S110.根据订单数据选择定位规则查找所需的维度信息;
步骤S120.根据所述维度信息查找与所述维度信息相符合的一个或多个定位规则;
步骤S130.对所述一个或多个定位规则进行优先级处理来确定优先级最高的定位规则;
步骤S140.根据所述优先级最高的定位规则和所述订单数据匹配库存数据;以及
步骤S150.根据所匹配的库存数据生成出库定位结果。
根据本示例实施例中的出库定位方法,一方面,基于从订单数据提取的维度信息来查找相应的定位规则,便于根据订单情况灵活选择要使用的定位规则,从而能够满足不同的业务场景;另一方面,对多个定位规则进行优先级处理来确定最优的定位规则,可以基于订单数据选择最优的定位规则,从而提高出库定位的处理效率;再一方面,根据最优的定位规则和订单数据匹配库存数据,可以针对不同的定位规则采用不同的定位规则服务处理逻辑,从而可以通过添加定位规则及相应的定位规则服务处理逻辑来使定位规则具有较好的扩展性。
下面,将对本示例实施方式中的出库定位方法进行进一步的说明。
在步骤S110中,根据订单数据选择定位规则查找所需的维度信息。
在本示例性实施例中,可以按照多个维度信息配置不同的定位规则。所述维度信息可以包括:订单类型信息(采用多选控件支持多选)、商品信息(支持多选)、货主信息(支持多选)、货类信息、仓库信息以及商户信息,但是本公开的示例实施例中的维度信息不限于此,例如维度信息还可以包括业务类型信息等,这同样属于本公开的保护范围。
此外,在本示例性实施例中,为了能够更灵活地配置定位规则,可以在选择所述维度信息之前,配置所述定位规则的参数信息以及所述定位规则查找的所述维度信息。
在本示例性实施例中,定位规则的参数信息可以包括:参数序号,规则代码信息(本公开支持多种规则代码服务,可以灵活添加不同的规则代码)、库区限制信息(无限制、存储区拣选、拣货区拣选库存不足触发紧急补货、拣货区库存不足存储区拣选)、过滤保质期临期商品、定位优化策略(清除最多库位,最小拣货次数)、包装单位(UOM)信息、定位库区信息,但是本公开的示例性实施例中的参数信息不限于此,例如参数信息还可以为参数序号,批次属性信息(入库日期、生产日期、失效日期及自定义批次属性)和排序信息(从小到大,从大到小)等,这也属于本公开的保护范围。此外,在本示例实施例中,可以支持配置多行参数信息的记录。
在本示例性实施例中,上述参数序号可以用来对定位规则的参数信息进行排序。例如,如果规则代码信息的序号为1,库区限制信息的序号为2,则表示规则代码信息参数排在库存限制信息参数之前。
在本示例性实施例中,可以按照上述维度信息配置不同的定位规则。由于可以采用多个维度信息灵活地配置定位规则,不需要用户对商品进行单独配置,从而可以减少用户的配置量及配置难度。
在本示例性实施例中,维度信息值为空可以表示对该维度信息的所有数据有效,例如,如果商品信息、货类信息、货主信息的值为空,则表示根据商品信息、货类信息、货主信息配置的定位规则对所有商品、货类、货主有效。此外,如果指定了商品信息的具体数值,例如商品信息的值为1,则根据商品信息配置的定位规则的优先级高于根据维度信息值为空的维度信息配置的定位规则。
在本示例性实施例中,还可以通过对各维度信息设置不同的值来表示根据各维度信息配置的定位规则的优先级。例如,设置订单类型的值大于商品的值,则表示根据订单类型配置的定位规则的优先级大于根据商品配置的定位规则的优先级。
接下来,在步骤S120中,根据所述维度信息查找与所述维度信息相符合的一个或多个定位规则。
在本示例性实施例中,可以支持多种定位规则。定位规则可以包括:按照先进先出(FIFO First Input First Output)或后进先出(LIFO Last Input First Output)优先定位、按照多种包装(例如按托盘,按箱,内包装,件等选择多种包装定位)定位、按照多种包装定位的基础上再考虑先进先出、清仓优先,最小拣货次数,保质期商品过滤临期、指定库区、指定存储区或拣货区定位等多种规则。在本示例性实施例中,这些定位规则可以对应单独的定位规则服务,这些定位规则服务可以在定位处理逻辑中按照配置灵活组合。此外,在本示例性实施例中,可以动态添加规则代码及其规则服务类,使得定位规则有较好的扩展性
在本示例性实施例中,可以根据从订单数据中选择的进行定位规则查找所需的维度信息,自动按照定位规则查找服务算法找到符合的定位规则信息。
接下来,在步骤S130中,对所述一个或多个定位规则进行优先级处理来确定优先级最高的定位规则。
在本示例性示例中,可以调用优先级处理运算对符合维度信息条件的多个定位规则进行优先级处理,其中,基于订单类型配置的定位规则的优先级可以大于基于商品配置的定位规则的优先级,基于商品配置的定位规则的优先级可以大于基于货主配置的定位规则的优先级,基于货主配置的定位规则的优先级可以大于基于货类配置的定位规则的优先级。同时,如果货类为树型结构,则配置父级货类维度信息后在定位规则查找时所配置的维度信息对所有子类、孙类等货类有效,但当同时存在父类和子类或孙类的维度信息配置时,子类和孙类货类的定位规则的优先级高于其父类等上级货类的定位规则的优先级。优先级处理算法按上述规则进行优先级排序,最后得到优先级最高的一个定位规则信息,从而找到出库订单数据明细行的最优的定位规则信息。
在本示例性实施例中,在图2示出了根据订单数据进行定位规则查找的流程图,在定位规则查找处理中,不同订单类型,不同商品,不同货类,不同货主可以配置不同的定位策略,订单层次配置的规则优先于按照规则查找配置的规则,以便于仓库作业人员根据仓库情况灵活配置使用的规则。此外,商品、货类、货主也可以配置为通用,则配置的定位规则为对所有商品,货类,货主等生效的通用规则,同时可以规定指定了具体数值的定位规则的优先级高于通用规则。由于图2中的步骤中与图1中的步骤S110、步骤S120、步骤S130基本相同,因此在此将不再赘述。
接下来,在步骤S140中,根据所述优先级最高的定位规则和所述订单数据匹配库存数据。
在本示例性实施例中,可以根据定位规则查找获取的定位规则信息及出库订单明细数据,执行定位规则服务处理逻辑来匹配库存数据,定位到具体位置的拣货批次信息、拣货库位信息、拣货数量。下面结合图3来详细描述定位规则服务处理。
在图3中,定位规则服务处理可以包括下述步骤(1)至步骤(9),其中:(1)可以根据定位规则查找处理获取到定位规则信息,循环取得定位规则的多行参数配置信息,按照参数序号信息顺序执行参数配置的策略,如果按照该行参数配置信息能够完整地定位库存数据,则不再执行其他参数序号的行参数配置,否则继续使用其他步骤需要的定位参数配置来执行定位,使得定位服务既能按照参数序号顺序的优先顺序来定位库存,又能按照参数序号灵活组合不同的规则代码进行定位;
(2)可以按照规则代码的不同,调用不同的规则代码服务类,对订单数据和定位规则参数配置采用不同的数据验证逻辑,使得定位规则服务所需要的数据的完整性得到保障,如果数据验证通过则继续执行,否则返回到步骤(1)继续循环下一个参数序号的定位规则参数来进行数据验证,其中不同的规则代码对应不同的服务类,可以动态添加规则代码及其服务类,使得定位规则有较好的扩展性;
(3)可以按照规则代码信息的不同,调用不同的规则代码服务类,在规则代码服务类中调用动态排序算法生成排序规则信息,本公开的一些实施方式可以在技术上支持动态添加数据项参与排序、支持多数据项排列组合以及数据项的升序及降序可配置来生成排序规则,使得库存的定位优先级可以动态变更而不仅是固定的方式,因此拥有较高的灵活性;
(4)可以按订单数据要求及规则代码调用不同的规则代码服务类逻辑匹配商品库存数据,同时采用线程隔离技术该将库存数据缓存在内存中,从而在并发访问时该缓存数据不被共享,该缓存数据只在当前线程中有效。采用缓存的方式便于在其他订单行信息也为同种商品的情况下再获取库存数据时不用从数据库中读取,直接从内存中的缓存读取库存数据,从而可以提高处理效率。并且,由于每次定位的库存数据都在缓存中预占定位数量,也解决了相同商品的库存数量竞争问题。此外,该缓存数据在定位完毕后被自动清除;
在本示例性实施例中,可以按照商品加载库存数据,在内存中进行数据关联补充、清洗过滤、排序,这种方式可以减少数据库的处理量但同时定位服务的处理逻辑也会相应复杂。此外,在本公开的其他示例性实施例中,可以通过数据库进行相关数据处理操作,这种方式可以简化定位服务的处理逻辑但同时会增加数据库的处理量。
(5)可以按定位规则配置的规则代码调用规则代码服务类,清洗库存数据,使不符合订单数据和定位规则要求的库存数据被过滤掉。不符合要求的库存数据可以包括:库存可用数量为零的、商品包装信息不符合、存储库区信息不符合、库位信息不符合、库位被停用、产品等级信息不符合、商品的有效期不符合的库存数据等;
(6)可以按照步骤(3)的排序规则信息排序清洗后的库存数据,使有优先出库权的库存数据能被优先定位;
(7)可以按照订单信息要求的数量循环处理库存数据,依次选择库存数据,本公开的一些实施方式可以支持一个商品信息定位到多个批次、多库位库存数据;
(8)可以更改数据库库存表中的定位预占数据,以保证已经定位的库存不再被定位,使被定位的库存数据为本订单所占用,占用库存时在MYSQL数据库上采用锁机制,使得库存数据一致性、完整性和正确性得到保证;
(9)如果订单的要求被完整地满足,则出库定位结束,否则继续返回到步骤(1)继续执行定位。
在本示例性实施例中,可以支持同一个订单中存在相同商品但是不同批次的要货需求定位。在这种情况下,通过加载该类商品的所有可用定位库存进行数据缓存,执行定位服务处理逻辑时会在缓存中按照订单需求虚拟冻结要货数量,以解决相同商品的资源竞争问题。
接下来,在步骤S150中,根据所匹配的库存数据生成出库定位结果。
在本示例性实施例中,在所有订单行数据都被定位之后,出库定位过程结束,生成出库定位结果信息。
图4示出了总体实现图1中所示的出库定位方法的流程图。如图4所示,在步骤S410中,出库模块调用出库定位处理逻辑,传入出库订单数据信息。接下来,在步骤S420中,调用定位规则查找处理逻辑,确定最优定位规则信息。然后,在步骤S430中,调用定位服务处理逻辑,按所确定的定位规则信息及订单行数据,执行定位规则处理,匹配库存数据,定位拣货批次信息、拣货库位信息及数量。接下来,在步骤S440中,判断所有订单行数据是否执行定位完毕,如果还存在订单行数据未被定位,返回步骤S420继续执行定位,如果所有订单行数据都定位完毕,则定位过程结束,返回定位结果信息。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本示例实施例中,还提供了一种出库定位装置,该出库定位装置500可以包括:维度信息选择单元510、定位规则查找单元520、最优定位规则确定单元530、库存数据匹配单元540以及结果生成单元550。其中:
维度信息选择单元510用于根据订单数据选择定位规则查找所需的维度信息;
定位规则查找单元520用于根据所述维度信息查找与所述维度信息相符合的一个或多个定位规则;
最优定位规则确定单元530用于对所述一个或多个定位规则进行优先级处理来确定优先级最高的定位规则;
库存数据匹配单元540用于根据所述优先级最高的定位规则和所述订单数据匹配库存数据;以及
结果生成单元550用于根据所匹配的库存数据生成出库定位结果。
在本示例性实施例中,出库定位装置500还可以包括:配置单元,用于在选择所述维度信息之前,配置所述定位规则的参数信息以及所述定位规则查找的所述维度信息。
在本示例性实施例中,出库定位装置500还可以包括:数据缓存单元,用于在匹配库存数据的同时采用线程隔离方式将所述库存数据缓存在内存中。
在本示例性实施例中,出库定位装置500还可以包括:数据清洗单元,用于在匹配库存数据之后,根据订单数据和所述优先级最高的定位规则对所述库存数据进行清洗。
由于本公开的示例实施例中的出库定位装置500的各个功能模块与上述出库定位方法的示例实施例的步骤对应,因此在此不再赘述。
应当注意,尽管在上文详细描述中提及了出库定位装置500的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。