一种支持双模式执行的波次规则配置方法及系统与流程

摘要: 本发明涉及仓储管理,尤其涉及一种支持双模式执行的波次规则配置方法及系统。背景技术:1、在仓储管理系统中,波次管理是出库作业的核心环节。波次规则用于从大量出库订单...
一种支持双模式执行的波次规则配置方法及系统与流程

本发明涉及仓储管理,尤其涉及一种支持双模式执行的波次规则配置方法及系统。

背景技术:

1、在仓储管理系统中,波次管理是出库作业的核心环节。波次规则用于从大量出库订单中筛选出符合特定条件的订单集合,以便进行后续的补货、拣货等作业。传统的波次规则配置主要依赖规则引擎实现,通过可视化界面配置字段值、操作符和阈值等条件,系统根据配置动态生成sql查询语句。但传统方式存在以下缺陷:

2、第一,规则表达能力有限。传统规则引擎仅支持简单的条件组合(如等于、包含、范围等),对于复杂的多表关联查询、子查询、聚合计算等场景,规则引擎无法有效表达。

3、第二,扩展性差。当业务需求变化或出现新的查询场景时,需要修改规则引擎代码或增加新的条件类型,开发成本高且周期长。

4、第三,灵活性不足。某些特殊场景下,业务人员可能需要编写复杂的sql来实现特定的订单筛选逻辑,但现有系统不支持直接执行自定义sql脚本,只能将所有逻辑拆解为规则引擎能理解的条件组合,导致配置复杂且容易出错。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种支持双模式执行的波次规则配置方法及系统。

2、一种支持双模式执行的波次规则配置方法,包括以下步骤:加载波次规则,检测所述波次规则中的脚本标识字段;若脚本标识字段为空,则采用规则条件模式,根据配置的条件明细,通过字段映射机制识别条件字段所属数据库表,动态构建表关联并生成sql语句执行,得到查询结果;若脚本标识字段为非空,则采用sql脚本模式,加载sql脚本并执行,得到查询结果;对所述查询结果进行多层限制过滤,得到波次订单并返回波次订单id。

3、在其中一个实施例中,在所述加载波次规则之前,还包括:扩展所述波次规则的脚本内容字段,所述脚本内容字段用于存储sql脚本内容;根据所述脚本内容字段的内容是否为空,生成脚本标识字段,所述脚本标识字段为空或非空。

4、在其中一个实施例中,所述根据配置的条件明细,通过字段映射机制识别条件字段所属数据库表,动态构建表关联并生成sql语句执行,得到查询结果,包括:加载所述波次规则关联的所有条件明细,所述条件明细包括条件字段、操作符、逻辑类型、第一条件值和第二条件值;将所述条件字段映射至对应的映射表中,识别所述条件字段所属的数据库表;根据条件中包含的字段,将条件与所属的数据库表进行关联;根据所述逻辑类型进行对条件进行分组,形成条件组;根据条件分组结果和字段映射结果,生成每个条件对应的sql片段,连接条件组中的所有sql片段,得到sql语句;执行所述sql语句,得到执行结果,并根据订单限制对所述执行结果进行限制筛选,得到查询结果。

5、在其中一个实施例中,所述映射表包括第一组映射表、第二组映射表、第三组映射表和第四组映射表;其中,所述第一组映射表为出库订单主表字段,包括外部订单号、优先级、计划出库时间、计划交货时间和订单创建时间;所述第二组映射表为出库订单明细表字段,包括货品编码;所述第三组映射表为客户表字段,包括货主代码、客户代码和承运商代码;所述第四组映射表为字段表字段,包括出库订单类型和运输方式。

6、在其中一个实施例中,所述根据条件中包含的字段,将条件与所属的数据库表进行关联,包括:检测条件中包含的字段,若条件包含货品编码字段,则将条件与出库订单明细表关联,关联条件为订单id相等且未删除;若条件包含货主代码字段,则将条件与客户表关联,关联条件为货主代码相等且客户类型为货主;若条件包含客户代码字段,则将条件与客户表关联,关联条件为客户代码相等且客户类型为客户;若条件包含承运商代码字段,则将条件与客户表关联,关联条件为承运商代码相等且客户类型为承运商;若条件包含订单类型字段,则将条件与字典表关联,关联条件为字典值等于订单类型且字典类型为出库订单类型;若条件包含运输方式字段,则将条件与字典表关联,关联条件为字典值等于运输方式且字典类型为运输方式。

7、在其中一个实施例中,所述根据所述逻辑类型进行对条件进行分组,形成多个条件组,包括:检测所述逻辑类型,若当前条件的逻辑类型为或连接,且当前条件组非空时,保存当前条件组,并创造新条件组;若当前条件的逻辑类型为与连接,或当前条件组为空时,继续累积条件到当前条件组;将得到的多个条件组进行或连接,且所述条件组内的条件间为与连接。

8、在其中一个实施例中,所述订单限制包括单订单商品总件数限制、单订单包装体积限制、单订单包装重量限制、单订单明细行数限制、波次订单数上限、波次订单行上限、波次总体积上限、波次总重量上限和分段限制。

9、在其中一个实施例中,还包括:在规则条件模式下,若所述条件明细为空,则提示波次规则的波次条件为空,若字段映射中不存在条件字段,则记录错误日志并抛出异常,提示波次规则条件无效字段,若操作符不在预定的操作符列表中,则记录警告日志;在sql脚本模式下,若sql脚本合法性校验不通过,则记录错误日志并抛出异常,提示sql脚本不合法,若sql脚本执行失败,则抛出异常;在规则条件模式或sql脚本模式下,若所述查询结果中无符合条件的订单,则抛出业务异常提示。

10、一种支持双模式执行的波次规则配置系统,用于实现如上所述的一种支持双模式执行的波次规则配置方法,包括:脚本标识检测模块,用于加载波次规则,检测所述波次规则中的脚本标识字段;规则条件查询模块,用于在脚本标识字段为空时,采用规则条件模式,根据配置的条件明细,通过字段映射机制识别条件字段所属数据库表,动态构建表关联并生成sql语句执行,得到查询结果;sql脚本查询模块,用于在脚本标识字段为非空时,采用sql脚本模式,加载sql脚本并执行,得到查询结果;波次订单获取模块,用于对所述查询结果进行多层限制过滤,得到波次订单并返回波次订单id。

11、相比于现有技术,本发明的优点及有益效果在于:通过加载波次规则,检测波次规则中的脚本标识字段,在脚本标识字段为空时,采用规则条件模式,根据配置的条件明细,通过字段映射机制识别条件字段所属数据库表,动态构建表关联并生成sql语句执行,得到查询结果,适用于简单场景下的波次查询;在脚本标识字段为非空时,采用sql脚本模式,加载对应sql脚本并执行,得到查询结果,适配于复杂场景下多条件组合的波次查询,对查询结果进行多层限制过滤,得到波次订单并返回波次订单id,通过两种模式的组合,使得方法扩展性强,便于适配业务需求变化,配置灵活,能够适用于简易或复杂的波次订单查询。

1.一种支持双模式执行的波次规则配置方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种支持双模式执行的波次规则配置方法,其特征在于,在所述加载波次规则之前,还包括:

3.根据权利要求1所述的一种支持双模式执行的波次规则配置方法,其特征在于,所述根据配置的条件明细,通过字段映射机制识别条件字段所属数据库表,动态构建表关联并生成sql语句执行,得到查询结果,包括:

4.根据权利要求3所述的一种支持双模式执行的波次规则配置方法,其特征在于,所述映射表包括第一组映射表、第二组映射表、第三组映射表和第四组映射表;

5.根据权利要求4所述的一种支持双模式执行的波次规则配置方法,其特征在于,所述根据条件中包含的字段,将条件与所属的数据库表进行关联,包括:

6.根据权利要求3所述的一种支持双模式执行的波次规则配置方法,其特征在于,所述根据所述逻辑类型进行对条件进行分组,形成多个条件组,包括:

7.根据权利要求3所述的一种支持双模式执行的波次规则配置方法,其特征在于,所述订单限制包括单订单商品总件数限制、单订单包装体积限制、单订单包装重量限制、单订单明细行数限制、波次订单数上限、波次订单行上限、波次总体积上限、波次总重量上限和分段限制。

8.根据权利要求1所述的一种支持双模式执行的波次规则配置方法,其特征在于,还包括:

9.一种支持双模式执行的波次规则配置系统,其特征在于,用于实现如权利要求1-8任一项所述的一种支持双模式执行的波次规则配置方法,包括: