CN116523591A - 一种基于可配置化表达式计算仓储费用的方法和装置 - Google Patents
一种基于可配置化表达式计算仓储费用的方法和装置 Download PDFInfo
- Publication number
- CN116523591A CN116523591A CN202310423453.4A CN202310423453A CN116523591A CN 116523591 A CN116523591 A CN 116523591A CN 202310423453 A CN202310423453 A CN 202310423453A CN 116523591 A CN116523591 A CN 116523591A
- Authority
- CN
- China
- Prior art keywords
- order
- expression
- calculation
- quotation rule
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000014509 gene expression Effects 0.000 title claims abstract description 157
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000004364 calculation method Methods 0.000 claims abstract description 140
- 238000012544 monitoring process Methods 0.000 claims abstract description 12
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 description 18
- 238000007726 management method Methods 0.000 description 18
- 230000015654 memory Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000003111 delayed effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- XDDAORKBJWWYJS-UHFFFAOYSA-N glyphosate Chemical compound OC(=O)CNCP(O)(O)=O XDDAORKBJWWYJS-UHFFFAOYSA-N 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000002354 daily effect Effects 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000010195 expression analysis Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
- G06Q10/0838—Historical data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/14—Payment architectures specially adapted for billing systems
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种基于可配置化表达式计算仓储费用的方法,所述方法包括:监控订单的订单状态,若所述订单状态为结束状态,创建所述订单对应的费用计算任务;在执行所述费用计算任务时,获取所述订单的目标报价规则;根据所述目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到所述订单的计费结果。通过本申请可以实现大数据量的线上精确计算,减少人工成本投入,避免计算失误导致的误差。
Description
技术领域
本申请属于仓储费用计算领域,具体涉及一种基于可配置化表达式计算仓储费用的方法和装置。
背景技术
仓储费用的主要类别有仓租费和库内操作费(出库费、入库费),而影响各类费用生成主要因素有商品的数量、重量、体积、价格、库龄等,系统可通过这些数据精确计算出各类费用。常见的方案是手工计算:通过系统的出库单、入库单计算各个客户的库内操作费,根据系统当前客户的商品库存来计算各个客户的仓租费。
但大部分依赖手工计算、分析,效率低且人工成本高,同时极易出错。系统订单数据量大,不能实时计算出账单数据,影响到客户的满意度及服务质量。仓储费用种类繁多、个性化强、计算复杂、对账困难,一般的表达式引擎功能过于固定,计算的方式也不够灵活、版本追踪及费用溯源困难。费用计算标准变化快、标准多、不同客户计算场景不一样。
发明内容
为此,本申请提供一种基于可配置化表达式计算仓储费用的方法和装置,有助于通过设置出满足当前系统的表达式引擎,实现仓储费用的灵活计算和适用于各种复杂的计算场景。本公开可以实现大数据量的线上精确计算,减少人工成本投入,避免计算失误导致的误差,优化了客户的使用体验。
为实现以上目的,本申请采用如下技术方案:
第一方面,本申请提供一种基于可配置化表达式计算仓储费用的方法,所述方法包括:
监控订单的订单状态,若所述订单状态为结束状态,创建所述订单对应的费用计算任务;在执行所述费用计算任务时,获取所述订单的目标报价规则;根据所述目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到所述订单的计费结果。
进一步地,所述获取所述订单的目标报价规则,包括:
若所述目标报价规则不存在,则创建新增报价规则;为所述新增报价规则生成费用类别,并设置所述新增报价规则的表达式引擎,得到所述目标报价规则;其中,所述费用类别包括以下至少一项:入库费、出库费、仓储费和税金。
进一步地,在获取所述订单的目标报价规则之前,所述方法还包括:
根据所述订单的信息,判断是否进行费用计算;若无需进行费用计算,则放弃所述费用计算任务。
进一步地,所述设置所述新增报价规则的表达式引擎,包括:
根据所述新增报价规则的属性,校验所述新增报价规则是否满足预设的唯一性校验条件,若满足,则调用所述计算API并校验表达式,若不满足则提示第一异常信息;校验所述新增报价规则的表达式是否满足预设的合法条件,若不满足则提示第二异常信息,若满足,则进行自动版本管理,完成对所述表达式引擎的设置。
进一步地,所述表达式引擎用于生成表达式,所述表达式包括以下至少一项:数字、字符串、正则表达式、自定义变量、自定义函数类型;并且,所述表达式引擎支持Java运算符及优先级别。
进一步地,所述新增报价规则包含生效时间和失效时间;以及所述方法还包括:
根据所述生效时间和所述失效时间,确定所述新增报价规则的生效状态。
进一步地,所述方法包括:
对应存储所述计费结果和所述目标报价规则。
第二方面,本申请提供一种基于可配置化表达式计算仓储费用的装置,所述装置包括:
监控单元,用于监控订单的订单状态,若所述订单状态为结束状态,创建所述订单对应的费用计算任务;
获取单元,用于在执行所述费用计算任务时,获取所述订单的目标报价规则;
计算单元,用于根据所述目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到所述订单的计费结果。
进一步地,所述装置还包括:
存储单元,用于对应存储所述计费结果和所述目标报价规则。
本申请采用以上技术方案,至少具备以下有益效果:
通过本申请方案,监控订单的订单状态,若所述订单状态为结束状态,创建所述订单对应的费用计算任务;在执行所述费用计算任务时,获取所述订单的目标报价规则;根据所述目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到所述订单的计费结果。本公开可以实现大数据量的线上精确计算,减少人工成本投入,避免计算失误导致的误差,优化了客户的使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种基于可配置化表达式计算仓储费用的方法的流程图。
图2是根据一示例性实施例示出的一种基于可配置化表达式计算仓储费用的方法的流程图。
图3是根据一示例性实施例示出的一种基于可配置化表达式计算仓储费用的方法的流程图。
图4是根据一示例性实施例示出的一种基于可配置化表达式计算仓储费用的方法的流程图。
图5是本公开实施例提供的订单库内操作的流程图。
图6是本公开实施例提供的计算仓储费用的流程图。
图7是本公开实施例提供的报价规则设置的流程图。
图8是本公开实施例提供的表达式引擎功能框图。
图9是根据一示例性实施例示出的一种基于可配置化表达式计算仓储费用的装置框图100。
图10为本发明实施例电子设备一个应用实施例的结构示意图。
图11示出了本公开的电子设备的一个实施例的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
本申请应用场景包括物流仓储费用计算、一般仓储费用计算等。
仓储费用的主要类别有仓租费和库内操作费(出库费、入库费),而影响各类费用生成主要因素有商品的数量、重量、体积、价格、库龄等,系统可通过这些数据精确计算出各类费用。实现的核心是需设计出满足当前仓储系统业务的表达式引擎,支持可配置化表达式灵活计算各类费用,并提供账单明细可视化、版本管理及溯源、账单的分析及导出等功能。
常见的仓储费用计算方案是手工计算,通过系统的出库单、入库单计算各个客户的库内操作费,根据系统当前客户的商品库存来计算各个客户的仓租费。具体做法如下:首先和客户线下约定需要计算仓储费用的客户账号。其中,库内操作费计算为:统计该客户在系统中的出库单、入库单中的商品明细和操作流程等信息到excel表格中,根据订单中明细信息(订单重量、商品件数、打包材料等)和进行过的操作(卸货、理货、上架、打包等),使用预先定义好的计算公式计算出库内操作费,再将账单明细给到客户。仓租费计算为:查询该客户在库商品的当天实时库存,减去入库时间得到库龄后,查询每个商品的重量、体积、库存数量、库龄等信息并统计到excel中,通过预先定义好的公式计算出仓租费,再将账单明细发送至客户。
现有大型物流仓储系统中的订单数几千万,商品数量十几万,活动高峰期日均订单数过万,通过人工进行线下计算,其成本极高且计算结果还容易出错,数据丢失的风险也较高。系统订单数据量大,不能实时计算出账单数据,影响到客户的满意度及服务质量。另外,仓储费用种类繁多、个性化强、计算复杂、对账困难,一般的表达式引擎功能过于固定,计算的方式也不够灵活、版本追踪及费用溯源困难等。费用计算标准变化快、标准多、不同客户计算场景不一样。
针对上述问题,本发明设置出满足当前系统的表达式引擎,支持可配置化表达式实现仓储费用的灵活计算,支持各种复杂的计算场景,支持账单数据可视化,支持账单数据线上分析及导出等,严格保证结果的准确性,从而达到替代线下人工计算的目的。其中,表达式自动进行版本管理,对每条费用明细的生成均记录其计算公式及变量值,提供可视化页面展示其费用及表达式版本,使所有费用的生成结果均有迹可循。
请参阅图1,图1是根据一示例性实施例示出的一种基于可配置化表达式计算仓储费用的方法的流程图,该方法包括如下步骤:
步骤S11、监控订单的订单状态,若订单状态为结束状态,创建订单对应的费用计算任务;
步骤S12、在执行费用计算任务时,获取订单的目标报价规则;
步骤S13、根据目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到订单的计费结果。
本公开实施例中,监控订单的订单状态,若订单状态为结束状态,创建订单对应的费用计算任务;在执行费用计算任务时,获取订单的目标报价规则;若目标报价规则不存在,则创建新增报价规则;为新增报价规则生成费用类别,并设置新增报价规则的表达式引擎,得到目标报价规则。此外,根据订单的信息,判断是否进行费用计算;若无需进行费用计算,则放弃费用计算任务。若需要进行费用计算,根据目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到订单的计费结果。
本公开实施例中,不同的仓储费计算场景和方式尽管各不相同,但最终的费用计算均由表达式引擎统一处理并返回计算结果。针对库内操作费的计算会在订单库内操作结束后添加一个费用计算定时任务,交由任务调度器来异步计算。而仓租费的计算则是由cron定时任务来触发计算。
一实施例中,库内操作费计算是根据订单结束状态来触发计算。当订单进行库内操作到结束状态,系统会为当前订单添加一个费用计算的任务到任务调度器,进行异步计算。任务调度器按照设定的执行频率扫描费用计算的任务,通过当前订单信息判断是否需要计算费用,如果需要则获取到适合当前订单的唯一报价规则,不需要则丢弃当前订单的计费任务。获取表达式的变量值,将变量值和表达式传入表达式引擎计算API并获得计费结果。
本公开实施例中,还包含自动版本管理,表达式引擎会为每一条生成的费用进行自动版本管理,保存了费用生成的依据。即使更新了报价规则,系统也能追溯到每个费用生成时所使用的历史报价规则版本。
一实施例中,仓租费计算是根据定时任务进行每天的仓租费计算,根据入库单的商品最小存货单位(Stock Keeping Unit,SKU)和订单号进行拆分,并统计订单中商品SKU已出库数量、盘亏盘盈的数量、当天实时库存等数据。根据系统中统计到数据明确表达式及其变量值,同样调用表达式引擎进行计算操作。
本公开实施例中,费用计算的核心是表达式(计算公式)可配置化的实现,为了支持计算公式的灵活配置,使费用计算具备程序运行时的动态性。系统实现了强大表达式解析引擎,使表达式支持数字、字符串、正则表达式、自定义变量、自定义函数等类型,完整支持所有Java运算符及优先级别,使费用的计算更加灵活多变,并支持更加复杂的计算场景。
进一步的,可自定义参数。预先定义表达式中会使用到的变量、函数,如自定义变量:WP为商品毛重、W为包裹重量、P为件数、Q为当前商品库存、SZ为首重价等,自定义函数:RoundUp(number)表示number向上取整等。这些自定义参数均为表达式引擎能唯一识别的参数,系统会杜绝非法参数的输入而破坏计算结果,若参数错误会返回错误提示。表达式引擎中的变量值有两种类型,一种是用户可配置的已知变量值,另一种是在计算具体订单或商品时实时查询出来的未知变量值。
进一步的,唯一性校验。在前端页面进行具体费用报价规则设置,点击提交后表达式引擎会校验当前报价规则的唯一性,支持的唯一性校验条件包括费用类型、报价类型、商品、重量范围、库龄范围等,若校验不通过会返回错误提示。
进一步的,表达式引擎提供一个计算API的接口,各类仓储费用均调用该接口传入表达式和变量值,同步计算费用并返回费用结果。计算API的另外一个功能是会在新增报价规则的时候被调用,使用随机数用来计算当前表达式,从而验证表达式的合法性和计算结果的正确性。
进一步的,系统包含状态管理,可对目标报价规则设置生效时间和失效时间两个条件,在筛选报价规则的时候会判断当前规则,在生效状态才可使用。生效时间可用于报价规则的延时生效,失效时间可用于报价规则的延时失效,根据生效时间和失效时间表达式引擎会实时更新报价规则的状态。使费用计算能适应不同时间范围内自动使用合适的报价规则,大大提升了费用计算的灵活性。
进一步的,表达式引擎会自动对报价规则的变动进行版本管理,并通过前端页面树形展示每条报价规则的版本历史。历史版本均为逻辑删除(标记删除)而不是物理删除,目的是让已使用历史版本生成的仓储费用均可溯源。
本公开实施例中,根据目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到订单的计费结果。其中先设置费用类型,然后设置报价规则筛选条件。配置表达式固定的变量值,即上述的第一类已知变量值。设置表达式,如:SZ+RoundUp(WP-1)*XZ*P+XJ*(P-1),该公式表示:首重+小数向上取整(商品毛重-1)×续重×件数+续件×(件数-1)。配置报价规则生效时间及失效时间,最后提交完成报价规则设置。
本公开实施例中,计算不同科目的仓储费用的主要区别是计算场景不同,因此需要针对不同计费科目定制开发,但最终的计算处理都是通过表达式引擎来实现的。系统的费用模块在设计上也满足了程序的开闭原则(是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭),即各个科目的计算过程互不依赖。
请参阅图2,图2是根据一示例性实施例示出的一种基于可配置化表达式计算仓储费用的方法的流程图,该方法包括如下步骤:
步骤S21、若目标报价规则不存在,则创建新增报价规则;
步骤S22、为新增报价规则生成费用类别,并设置新增报价规则的表达式引擎,得到目标报价规则。
本公开实施例中,需要先设置报价规则指定费用类型、自定义变量值等条件,对表达式引擎做报价规则唯一性校验、表达式合法性校验。若当前报价规则为更新的则进行版本管理并记录历史版本,若为新增则直接完成报价规则设置。当设置的费用类型进行到计算费用的节点就会触发计算,添加一个异步任务进行计算。获取到唯一的报价规则根据自定义参数和商品、订单等信息进行计算。保存计算时的报价规则,防止规则后续更新而无法溯源当前费用生成过程。
本公开实施例中,确认费用类别,根据费用类别,新增或更新报价规则。可以设置各种费用类别,费用类别包括以下至少一项:入库费、出库费、仓储费和税金等。然后设置这个费用类别订单所需要的条件,包括报价类型、商品大类、重量类型、起始重量或库龄、终止重量或库龄、首重价、续重价、续件价、最大续件数、币别、续件费等,一个报价规则可以包含多个计算公式,不同重量采用不同的计算公式,如未超出最大重量,使用公式1,超出最大重量,则使用公式2。按照此规则,对满足条件的订单进行费用计算。
本公开实施例中,费用类别包括以下至少一项:入库费、出库费、仓储费和税金。
请参阅图3,图3是根据一示例性实施例示出的一种基于可配置化表达式计算仓储费用的方法的流程图,该方法包括如下步骤:
步骤S31、根据订单的信息,判断是否进行费用计算;
步骤S32、若无需进行费用计算,则放弃费用计算任务。
本公开实施例中,根据订单的信息,判断是否进行费用计算;若无需进行费用计算,则放弃费用计算任务。
请参阅图4,图4是根据一示例性实施例示出的一种基于可配置化表达式计算仓储费用的方法的流程图,该方法包括如下步骤:
步骤S41、根据新增报价规则的属性,校验新增报价规则是否满足预设的唯一性校验条件,若满足,则调用计算API并校验表达式,若不满足则提示第一异常信息;
步骤S42、校验新增报价规则的表达式是否满足预设的合法条件,若不满足则提示第二异常信息,若满足,则进行自动版本管理,完成对表达式引擎的设置。
本公开实施例中,根据新增报价规则的属性,校验新增报价规则是否满足预设的唯一性校验条件,若满足,则调用计算API并校验表达式,若不满足则提示第一异常信息。在前端页面进行具体费用报价规则设置,点击提交后表达式引擎会校验当前报价规则的唯一性,支持的唯一性校验条件包括费用类型、报价类型、商品、重量范围、库龄范围等,若校验不通过会返回错误提示。
校验新增报价规则的表达式是否满足预设的合法条件,若不满足则提示第二异常信息,若满足,则进行自动版本管理,完成对表达式引擎的设置。计算API的另外一个功能是会在新增报价规则的时候被调用,使用随机数用来计算当前表达式,从而验证表达式的合法性和计算结果的正确性。
本公开实施例中,自动版本管理即当每条费用生成时会保留费用生成的报价规则,即使未来修改了这条规则,当查询这条费用的价格的时,可查阅生成这个费用的报价规则,而不是更新后的规则。
本公开实施例中,表达式引擎用于生成表达式,表达式包括以下至少一项:数字、字符串、正则表达式、自定义变量、自定义函数类型;并且,表达式引擎支持Java运算符及优先级别。
本公开实施例中,新增报价规则包含生效时间和失效时间;以及方法还包括:根据生效时间和失效时间,确定新增报价规则的生效状态。系统包含状态管理,可对目标报价规则设置生效时间和失效时间两个条件,在筛选报价规则的时候会判断当前规则,在生效状态才可使用。生效时间可用于报价规则的延时生效,失效时间可用于报价规则的延时失效,根据生效时间和失效时间表达式引擎会实时更新报价规则的状态。使费用计算能适应不同时间范围内自动使用合适的报价规则,大大提升了费用计算的灵活性。
本公开实施例中,对应存储计费结果和目标报价规则。即表达式引擎会自动对报价规则的变动进行版本管理,并通过前端页面树形展示每条报价规则的版本历史。历史版本均为逻辑删除(标记删除)而不是物理删除,目的是让已使用历史版本生成的仓储费用均可溯源。
图5是本公开实施例提供的订单库内操作的流程图,如图5所示,监控订单状态,当订单进行库内操作到结束状态时,系统会为当前订单添加一个费用计算的任务到任务调度器,对订单的费用进行异步计算。异步计算防止节点操作的顺序执行,导致延时。
图6是本公开实施例提供的计算仓储费用的流程图,如图6所示,库内操作费计算是根据订单结束状态来触发计算。当订单进行库内操作到结束状态,系统会为当前订单添加一个费用计算的任务到任务调度器,进行异步计算。任务调度器按照设定的执行频率扫描费用计算的任务,通过当前订单信息判断是否需要计算费用,如果需要则获取到适合当前订单的唯一报价规则,不需要则丢弃当前订单的计费任务。获取表达式的变量值,将变量值和表达式传入表达式引擎计算API并获得计费结果。还包含自动版本管理,表达式引擎会为每一条生成的费用进行自动版本管理,保存了费用生成的依据。即使更新了报价规则,系统也能追溯到每个费用生成时所使用的历史报价规则版本。仓租费计算是根据定时任务进行每天的仓租费计算,根据入库单的商品最小存货单位(Stock Keeping Unit,SKU)和订单号进行拆分,并统计订单中商品SKU已出库数量、盘亏盘盈的数量、当天实时库存等数据。根据系统中统计到数据明确表达式及其变量值,同样调用表达式引擎进行计算操作。
图7是本公开实施例提供的报价规则设置的流程图,如图7所示,需要先设置报价规则指定费用类型、自定义变量值等条件,确认费用类别,根据费用类别,新增或更新报价规则。可以设置各种费用类别,费用类别包括以下至少一项:入库费、出库费、仓储费和税金等。对表达式引擎做报价规则唯一性校验、表达式合法性校验。若当前报价规则为更新的则进行版本管理并记录历史版本,若为新增则直接完成报价规则设置。当设置的费用类型进行到计算费用的节点就会触发计算,添加一个异步任务进行计算。获取到唯一的报价规则根据自定义参数和商品、订单等信息进行计算。保存计算时的报价规则,防止规则后续更新而无法溯源当前费用生成过程。。
图8是本公开实施例提供的表达式引擎功能框图,如图8所示,进一步的,可自定义参数。预先定义表达式中会使用到的变量、函数,如自定义变量:WP为商品毛重、W为包裹重量、P为件数、Q为当前商品库存、SZ为首重价等,自定义函数:RoundUp(number)表示number向上取整等。这些自定义参数均为表达式引擎能唯一识别的参数,系统会杜绝非法参数的输入而破坏计算结果,若参数错误会返回错误提示。表达式引擎中的变量值有两种类型,一种是用户可配置的已知变量值,另一种是在计算具体订单或商品时实时查询出来的未知变量值。
进一步的,唯一性校验。在前端页面进行具体费用报价规则设置,点击提交后表达式引擎会校验当前报价规则的唯一性,支持的唯一性校验条件包括费用类型、报价类型、商品、重量范围、库龄范围等,若校验不通过会返回错误提示。
进一步的,表达式引擎提供一个计算API的接口,各类仓储费用均调用该接口传入表达式和变量值,同步计算费用并返回费用结果。计算API的另外一个功能是会在新增报价规则的时候被调用,使用随机数用来计算当前表达式,从而验证表达式的合法性和计算结果的正确性。
进一步的,系统包含状态管理,可对目标报价规则设置生效时间和失效时间两个条件,在筛选报价规则的时候会判断当前规则,在生效状态才可使用。生效时间可用于报价规则的延时生效,失效时间可用于报价规则的延时失效,根据生效时间和失效时间表达式引擎会实时更新报价规则的状态。使费用计算能适应不同时间范围内自动使用合适的报价规则,大大提升了费用计算的灵活性。
进一步的,表达式引擎会自动对报价规则的变动进行版本管理,并通过前端页面树形展示每条报价规则的版本历史。历史版本均为逻辑删除(标记删除)而不是物理删除,目的是让已使用历史版本生成的仓储费用均可溯源。
本公开实施例中,在此方案实现前仅能针对个别客户每天的几十个订单进行线下手工操作,但随着需要计费的客户和订单数量的增长,线下操作难度越来越大,往往不能及时给到客户各类费用的统计报表数据,导致客户频繁投诉。此后根据实际情况设计了当前费用管理模块,现能针对目前近五十万个在库商品信息的实时库存作出精确的仓租费计算,更能轻松解决日均过万订单数的费用计算。
本公开实施例中,系统需要对出库订单中的商品进行拆税计算,若通过手工线下拆税再向系统种导入/修改订单信息,易出现人工计算误差导致订单实际支付金额不一致,进而会影响到跨境BC业务进行进口清关申报。
一实施例中,基于系统已实现的表达式引擎可以直接调用其提供的计算API完成税金计算,如其中一条拆税公式为:商品不含税单价=(商品原单价-运费*23.05%/数量)/1.2305,可自定义变量:商品原单价-SP、运费-YF、数量复用上面已定义变量P,即表达式转化为:(SP-YF*0.2305/P)/1.2305。变量SP、YF、P在出库单创建的时候根据创建信息才可确定,属于表达式引擎的第二种变量,将表达式及其变量值传入表达式引擎即可计算出商品不含税单价,完成拆税计算。通过现有的表达式引擎轻松扩展了新费用类别的计算,大大降低了开发的工作量和难度。
通过本申请方案,监控订单的订单状态,若所述订单状态为结束状态,创建所述订单对应的费用计算任务;在执行所述费用计算任务时,获取所述订单的目标报价规则;根据所述目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到所述订单的计费结果。本公开可以灵活的计费引擎功能轻松实现了大数据量的线上精确计算、分析、统计,减少了人工成本投入,避免了计算失误导致的误差,也优化了客户的使用体验。合理的可视化指导配置和模块的设计,解决后续扩展其它的费用计算大部分工作量。可配置化表达式引擎,实现了各种复杂场景下不同种类仓储费用的灵活计算。基于该模块的设计模式和核心的表达式引擎已实现,系统进行二次开发扩展其它费用科目计算的时候,大大降低了开发的工作量和难度。
图9是根据一示例性实施例示出的一种基于可配置化表达式计算仓储费用的装置框图100。参照图9,该装置包括监控单元101,获取单元102,计算单元103和存储单元104。
监控单元101,用于监控订单的订单状态,若订单状态为结束状态,创建订单对应的费用计算任务;
获取单元102,用于在执行费用计算任务时,获取订单的目标报价规则;
计算单元103,用于根据目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到订单的计费结果;
存储单元104,用于对应存储计费结果和目标报价规则。
图10为本发明实施例电子设备一个应用实施例的结构示意图。下面参考图10,其示出了适于用来实现本申请实施例的终端设备或服务器的电子设备的结构示意图。如图11所示,该电子设备包括存储器,用于存储计算机程序以及一个或多个处理器,用于执行存储器中存储的计算机程序。在一例中,存储器可以是只读存储器(ROM)和/或随机访问存储器(RAM)。
在一例中,一个或多个处理器可以是一个或多个中央处理单元(CPU),和/或一个或多个图像处理器(GPU)等,处理器可以根据存储在ROM中的可执行指令或者从存储部分加载到RAM中的可执行指令而执行各种适当的动作和处理。在一例中,电子设备还可以包括通信部,通信部可包括但不限于网卡,网卡可包括但不限于IB(Infiniband)网卡,处理器可与ROM和/或RAM中通信以执行可执行指令,通过总线与通信部相连、并经通信部与其他目标设备通信,从而完成本申请实施例提供的任一方法对应的操作。
此外,在RAM中,还可存储有装置操作所需的各种程序和数据。CPU、ROM以及RAM通过总线彼此相连。在有RAM的情况下,ROM为可选模块。RAM存储可执行指令,或在运行时向ROM中写入可执行指令,可执行指令使处理器执行本发明上述任一方法对应的操作。输入/输出(I/O)接口也连接至总线。通信部可以集成设置,也可以设置为具有多个子模块(例如多个IB网卡),并在总线链接上。
以下部件连接至I/O接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至I/O接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。
需要说明的,如图10所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图10的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如GPU和CPU可分离设置或者可将GPU集成在CPU上,通信部可分离设置,也可集成设置在CPU或GPU上,等等。这些可替换的实施方式均落入本发明公开的保护范围。
图11示出了本公开的电子设备的一个实施例的结构示意图。下面参考图11,其示出了适于用来实现本申请实施例的终端设备或服务器的电子设备的结构示意图。如图11所示,该电子设备该电子设备包括处理器和存储器。电子设备也可以包括输入输出装置。存储器、输入输出装置均通过总线与处理器连接。其中,存储器,用于存储处理器执行的指令;处理器,用于调用存储器存储的指令,并执行上述实施例涉及的基于可配置化表达式计算仓储费用的方法。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在计算机上运行时,执行上述实施例涉及的基于可配置化表达式计算仓储费用的方法。
本公开实施例还提供一种包含指令的计算机程序产品,当包含指令的计算机程序产品在计算机上运行时,使得计算机执行上述实施例涉及的基于可配置化表达式计算仓储费用的方法。
在一个或多个可选实施方式中,本公开实施例还提供了一种计算机可读存储介质,用于存储计算机可读指令,该指令被执行时使得计算机执行上述任一可能的实现方式中的基于可配置化表达式计算仓储费用的方法。在另一个可选例子中,该计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
本公开的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。
此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。
出于示例和描述的目的,已经给出了本公开实施的前述说明。前述说明并非是穷举性的也并非要将本公开限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本公开的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本公开的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本公开。
可以理解的是,本公开中“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
进一步可以理解的是,术语“第一”、“第二”等用于描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开,并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
进一步可以理解的是,除非有特殊说明,“连接”包括两者之间不存在其他构件的直接连接,也包括两者之间存在其他元件的间接连接。
进一步可以理解的是,本公开实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利范围来限制。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”、“多”的含义是指至少两个。
应该理解,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者可能同时存在居中元件;当一个元件被称为“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件,此外,这里使用的“连接”可以包括无线连接;使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为:表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (9)
1.一种基于可配置化表达式计算仓储费用的方法,其特征在于,所述方法包括:
监控订单的订单状态,若所述订单状态为结束状态,创建所述订单对应的费用计算任务;
在执行所述费用计算任务时,获取所述订单的目标报价规则;
根据所述目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到所述订单的计费结果。
2.根据权利要求1所述的方法,其特征在于,所述获取所述订单的目标报价规则,包括:
若所述目标报价规则不存在,则创建新增报价规则;
为所述新增报价规则生成费用类别,并设置所述新增报价规则的表达式引擎,得到所述目标报价规则;
其中,所述费用类别包括以下至少一项:入库费、出库费、仓储费和税金。
3.根据权利要求1所述的方法,其特征在于,在获取所述订单的目标报价规则之前,所述方法还包括:
根据所述订单的信息,判断是否进行费用计算;
若无需进行费用计算,则放弃所述费用计算任务。
4.根据权利要求2所述的方法,其特征在于,所述设置所述新增报价规则的表达式引擎,包括:
根据所述新增报价规则的属性,校验所述新增报价规则是否满足预设的唯一性校验条件,若满足,则调用所述计算API并校验表达式,若不满足则提示第一异常信息;
校验所述新增报价规则的表达式是否满足预设的合法条件,若不满足则提示第二异常信息,若满足,则进行自动版本管理,完成对所述表达式引擎的设置。
5.根据权利要求2所述的方法,其特征在于,所述表达式引擎用于生成表达式,所述表达式包括以下至少一项:数字、字符串、正则表达式、自定义变量、自定义函数类型;并且,所述表达式引擎支持Java运算符及优先级别。
6.根据权利要求2所述的方法,其特征在于,所述新增报价规则包含生效时间和失效时间;以及所述方法还包括:
根据所述生效时间和所述失效时间,确定所述新增报价规则的生效状态。
7.根据权利要求1所述的方法,其特征在于,所述方法包括:
对应存储所述计费结果和所述目标报价规则。
8.一种基于可配置化表达式计算仓储费用的装置,其特征在于,所述装置包括:
监控单元,用于监控订单的订单状态,若所述订单状态为结束状态,创建所述订单对应的费用计算任务;
获取单元,用于在执行所述费用计算任务时,获取所述订单的目标报价规则;
计算单元,用于根据所述目标报价规则的表达式和表达式的变量值,通过表达式引擎的计算API计算得到所述订单的计费结果。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
存储单元,用于对应存储所述计费结果和所述目标报价规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310423453.4A CN116523591A (zh) | 2023-04-19 | 2023-04-19 | 一种基于可配置化表达式计算仓储费用的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310423453.4A CN116523591A (zh) | 2023-04-19 | 2023-04-19 | 一种基于可配置化表达式计算仓储费用的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116523591A true CN116523591A (zh) | 2023-08-01 |
Family
ID=87405796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310423453.4A Pending CN116523591A (zh) | 2023-04-19 | 2023-04-19 | 一种基于可配置化表达式计算仓储费用的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116523591A (zh) |
-
2023
- 2023-04-19 CN CN202310423453.4A patent/CN116523591A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111221726A (zh) | 一种测试数据生成方法、装置、存储介质和智能设备 | |
CN111695979A (zh) | 一种原材料与成品的关系分析方法、装置及设备 | |
CN111507798A (zh) | 业务往来订单定期核销方法、系统及计算机设备 | |
CN112270537B (zh) | 一种多渠道账单的入库方法、系统及存储介质 | |
RU2745340C2 (ru) | Виртуальный рынок для распределяемых инструментальных средств в среде предприятия | |
CN113052417B (zh) | 一种资源配置方法以及装置 | |
CN116228431A (zh) | 一种异常交易账户确定方法、装置及电子设备 | |
CN116523591A (zh) | 一种基于可配置化表达式计算仓储费用的方法和装置 | |
CN116107910A (zh) | 绩效系统的测试方法、电子设备及存储介质 | |
CN113094589B (zh) | 智能服务推荐方法及装置 | |
CN114638503A (zh) | 一种资产风险压力测试方法、装置、设备及存储介质 | |
US20140012621A1 (en) | Risk management device | |
WO2022109002A1 (en) | Systems and methods for confidence interval transaction settlement range predictions | |
CN114463100A (zh) | 一种订单数据处理方法、装置、设备及存储介质 | |
WO2015002879A1 (en) | Generating a simulted invoice | |
CN114881546B (zh) | 一种确定资源消耗的方法和装置 | |
US20150206089A1 (en) | Predicting incentive compensation for opportunities in sales performance management systems | |
CN113011986B (zh) | 一种保险计算的抽象方法及系统 | |
CN109711943B (zh) | 订单统计方法、装置及系统 | |
US20240232898A1 (en) | Automatically creating recurring transactions | |
CN113824847B (zh) | 计费异常的确定方法、装置、计算设备及计算机存储介质 | |
US20230229503A1 (en) | Efficient use of computing resources for optimization of non-convex functions | |
US12003427B2 (en) | Integrated environment monitor for distributed resources | |
CN117592835A (zh) | 账单验收质量保障方法、装置、电子设备及存储介质 | |
CN115081994A (zh) | 一种即时成本的核算方法、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |