一种结算配置方法及装置和电子设备与流程

文档序号:15616899发布日期:2018-10-09 21:36阅读:167来源:国知局

本申请涉及结算领域,尤其涉及一种结算配置方法及装置、电子设备和计算机可读存储介质。



背景技术:

随着结算业务的发展,出现了各种各样的结算方式,但结算规则几乎在每个结算周期都会发生变更,结算规则所依赖的业务指标具有多个维度,例如订单、门店、城市等。同时,对结算结果的准确性要求极高。

基于以上特点,现有的结算方式引入规则引擎,由非开发人员直接编写规则,然后将这些规则交由规则引擎处理。但是,非开发人员直接编写规则,面临规则复杂、规则之间有依赖关系、指标维度不统一等情况,规则维护难度较大。



技术实现要素:

有鉴于此,本申请提供一种结算配置方法及装置、电子设备和计算机可读存储介质。

具体地,本申请是通过如下技术方案实现的:

根据本公开实施例的第一方面,提供一种结算配置方法,所述方法包括:

获取当前结算说明文件中指标的含义;

确定所述指标对应的业务函数,所述业务函数用于将所述指标对应的指标维度归一化为结算维度;

根据当前指标的含义、所述业务函数、内置的变量和内置的计算函数,对所述当前结算说明文件进行分解,以生成决策树。

在一实施例中,所述方法还包括:

根据所述决策树生成规则文件;

根据所述规则文件运行的版本信息、所述规则文件中使用到的指标的含义和使用到的内置的变量,获取所述结算维度的数据集;

将所述规则文件和所述数据集输入规则引擎后输出结算数据。

在一实施例中,所述方法还包括:

将所述规则文件和所述数据集输入所述规则引擎后输出对账数据。

在一实施例中,所述根据当前指标的含义、所述业务函数、内置的变量和内置的计算函数,对所述当前结算说明文件进行分解,以生成决策树,包括:

将所述结算说明文件中的主计算公式作为父节点;

判断当前计算公式中直接包含的所有计算因子是否均为所述指标和/或所述变量,若不均为所述指标和/或所述变量,则将当前所有不均为所述指标和/或所述变量的计算因子对应的计算公式作为当前对应节点的子节点,并重复执行所述判断当前计算公式中直接包含的所有计算因子是否均为所述指标和/或所述变量的操作;

若均为所述指标和/或所述变量,则判断无子节点的所有节点直接包含所有计算因子是否均为所述指标和/或所述变量,若均为所述指标和/或所述变量,则决策树生成过程结束,否则,重复执行所述判断当前计算公式中直接包含的所有计算因子是否均为所述指标和/或所述变量的操作。

在一实施例中,所述根据当前指标的含义、所述业务函数、内置的变量和内置的计算函数,对所述当前结算说明文件进行分解,以生成决策树,还包括以下至少一项:

若所述计算公式或计算因子对应的计算公式中直接包含的所述指标对应的指标维度与所述结算维度不同,则在生成所述父节点或所述子节点时,使用所述指标对应的业务函数对所述指标维度进行归一化处理;

若从所述结算说明文件中提取的内容能够使用所述计算函数,则在生成所述父节点或所述子节点时,使用所述计算函数;

若从所述结算说明文件中提取的内容能够使用所述变量,则在生成所述父节点或所述子节点时,使用所述变量。

在一实施例中,所述根据所述规则文件运行的版本信息、所述规则文件中使用到的指标的含义和使用到的内置的变量,获取所述结算维度的数据集,包括:

检测当前是否存在所述规则文件中使用到的所述指标对应的数据源;

若不存在所述指标的数据源,则同步所述指标的数据源;

根据所述版本信息、所述规则文件中使用到的所述指标的含义和使用到的内置的变量,从所述数据源中获取指标维度的数据集;

使用所述指标对应的业务函数将所述指标维度的数据集归一化为所述结算维度的数据集。

在一实施例中,所述获取当前结算说明文件中指标的含义,包括:

确定所述当前结算说明文件中存在所述指标;

从配置文件中获取所述指标的含义,其中,所述指标的含义以结构化查询语言sql形式或函数定义形式来表示。

根据本公开实施例的第二方面,提供一种结算配置装置,所述装置包括:

第一获取模块,用于获取当前结算说明文件中指标的含义;

确定模块,用于确定所述指标对应的业务函数,所述业务函数用于将所述指标对应的指标维度归一化为结算维度;

分解生成模块,用于根据所述第一获取模块获取的当前指标的含义、所述确定模块确定的所述指标对应的业务函数、内置的变量和内置的计算函数,对所述当前结算说明文件进行分解,以生成决策树。

在一实施例中,所述装置还包括:

文件生成模块,用于根据分解生成模块生成的所述决策树生成规则文件;

第二获取模块,用于根据所述文件生成模块生成的所述规则文件运行的版本信息、所述规则文件中使用到的指标的含义和使用到的内置的变量,获取所述结算维度的数据集;

输出模块,用于将所述文件生成模块生成的所述规则文件和所述第二获取模块获取的所述数据集输入规则引擎后输出结算数据。

根据本公开实施例的第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述结算配置方法。

根据本公开实施例的第四方面,提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述结算配置方法。

本申请实施例,通过获取当前结算说明文件中指标的含义,确定指标对应的业务函数,并根据当前指标的含义、业务函数、内置的变量和内置的计算函数,对当前结算说明文件进行分解,以生成决策树,从而通过决策树表达结算规则,这种表达方式可以清楚地表明规则之间的依赖关系,大大降低维护难度,同时,通过业务函数能够归一化指标,从而解决指标维度不统一的问题。

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

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1a是本申请一示例性实施例示出的一种结算配置方法的流程图;

图1b是本申请一示例性实施例示出的一种生成决策树的流程图;

图1c是本申请一示例性实施例示出的一种决策树的示意图;

图2a是本申请一示例性实施例示出的另一种结算配置方法的流程图;

图2b是本申请一示例性实施例示出的另一种结算配置方法的流程图;

图3是本申请结算配置装置所在电子设备的一种硬件结构图;

图4是本申请一示例性实施例示出的一种结算配置装置的框图;

图5是本申请一示例性实施例示出的另一种结算配置装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

图1a是本申请一示例性实施例示出的一种结算配置方法的流程图,该实施例从结算服务器侧进行描述,如图1a所示,该结算配置方法包括:

步骤s101,获取当前结算说明文件中指标的含义。

在该实施例中,结算服务器可以对当前结算说明文件进行分析,以确定当前结算说明文件中是否存在指标,其中,该指标包括新增指标,例如,确定当前结算说明文件中是否存在消费额、毛收入,是否为新门店,城市规模等指标,若存在指标,则从配置文件中获取指标的含义。

其中,指标的含义可以以结构化查询语言(structuredquerylanguage,简称sql)形式或其他形式例如函数定义形式来表示。指标的含义可以包括但不局限于指标对应的计算公式和对应的指标维度等。

步骤s102,确定上述指标对应的业务函数,该业务函数用于将指标对应的指标维度归一化为结算维度。

在该实施例中,在确定存在指标之后,需要确定指标对应的业务函数,即需要将指标对应的指标维度聚合为结算维度。

例如,指标为“毛收入”,“毛收入”对应的指标维度为订单维度,而结算维度为城市维度,则“毛收入”对应的业务函数的实现方式是对“毛收入”指标所在的城市,做求和(sum)运算。

步骤s103,根据当前指标的含义、业务函数、内置的变量和内置的计算函数,对当前结算说明文件进行分解,以生成决策树。

其中,内置的变量是指除指标之外的预设值,例如,分润周期、城市规模等。内置的计算函数是指预设的便于计算的函数,例如,求最值,求平均值,排序函数等。

其中,根据当前指标的含义、业务函数、内置的变量和内置的计算函数,自上向下对当前结算说明文件进行分解,以生成决策树。

如图1b所示,生成决策树的过程可以包括:

步骤s1031,将结算说明文件中的主计算公式作为父节点。

其中,主计算公式可以为首个出现的计算公式。

步骤s1032,判断当前计算公式中直接包含的所有计算因子是否均为指标和/或变量,若不是,则执行步骤s1033;若是,则决策树生成过程结束。

步骤s1033,将当前所有不均为指标和/或变量的计算因子对应的计算公式作为当前对应节点的子节点,并重复执行上述步骤s1032。

其中,在生成决策树的过程中,还可以包括以下至少一项:

1)若计算公式或计算因子对应的计算公式中直接包含的指标对应的指标维度与结算维度不同,则在生成父节点或子节点时,使用该指标对应的业务函数对指标维度进行归一化处理。

2)若从结算说明文件中提取的内容能够使用计算函数,则在生成父节点或子节点时,使用计算函数。

3)若从结算说明文件中提取的内容能够使用变量,则在生成父节点或子节点时,使用变量。

为了更清楚地描述决策树的生成过程,下面列举一个示例进行描述。

例如,当前结算说明文件中涉及到5个指标,其中,指标1和指标2是订单维度的指标,指标3、指标4和指标5是城市维度的指标,城市费率是内置的变量,指标维度为订单维度,结算维度为城市维度,取最大值(max)和取最小值(min)是内置的计算函数,当前结算说明文件的内容为:

奖金由奖金1和奖金2求和得出,奖金1=奖金1-1*2+奖金1-2,奖金1-1基数是100,如果指标1和指标2在该城市上的求和大于100,则奖金值为该和,奖金1-2是该城市的指标1和指标3之和,奖金2取奖金2-1和奖金2-2的较小值,奖金2-1=指标4*2,奖金2-2=指标5*城市费率+2,则根据上述决策树生成过程可以生成如图1c所示的决策树,其中,cityreduce是指标1和指标2对应的业务函数。

上述实施例,通过获取当前结算说明文件中指标的含义,确定指标对应的业务函数,并根据当前指标的含义、业务函数、内置的变量和内置的计算函数,对当前结算说明文件进行分解,以生成决策树,从而通过决策树表达结算规则,这种表达方式可以清楚地表明规则之间的依赖关系,大大降低维护难度,同时,通过业务函数能够归一化指标,从而解决指标维度不统一的问题。

图2a是本申请一示例性实施例示出的另一种结算配置方法的流程图,如图2a所示,该方法可以包括:

步骤s201,获取当前结算说明文件中指标的含义。

步骤s202,确定上述指标对应的业务函数,该业务函数用于将指标对应的指标维度归一化为结算维度。

步骤s203,根据当前指标的含义、业务函数、内置的变量和内置的计算函数,对当前结算说明文件进行分解,以生成决策树。

步骤s204,根据决策树生成规则文件。

在该实施例中,结算服务器可以自下向上解析决策树,生成规则文件。其中,将决策树保存为规则文件,决策树的每个非叶子节点为一条规则。

步骤s205,根据规则文件运行的版本信息、规则文件中使用到的指标的含义和使用到的内置的变量,获取结算维度的数据集。

其中,版本信息是指一次结算的标识信息,通常通过计算时间来表示。例如,版本信息为201703271503,表示2017年3月27号15:03进行了一次结算。该版本信息可以由人工设置。

在该实施例中,结算服务器可以检测当前是否存在规则文件中使用到的指标对应的数据源,若不存在上述指标的数据源,则同步这些指标的数据源。然后,可以根据版本信息、规则文件中使用到的指标的含义和使用到的内置的变量,从数据源中获取指标维度的数据集,并使用上述指标对应的业务函数将指标维度的数据集归一化为结算维度的数据集。步骤s206,将规则文件和数据集输入规则引擎后输出结算数据。

结算服务器将规则文件和数据集输入规则引擎后,由规则引擎对根节点进行运算,输出结算数据。其中,根节点是指没有父节点的节点。

上述实施例,通过根据决策树生成规则文件,根据规则文件运行的版本信息、规则文件中使用到的指标的含义和使用到的内置的变量,获取结算维度的数据集,并将规则文件和数据集输入规则引擎后输出结算数据,由于上述输出结算数据的过程是基于决策树生成,而决策树可以清楚地表明规则之间的依赖关系,提升表达的规则的准确率,因此,基于决策树输出的结算数据速度更快、准确率更高。

图2b是本申请一示例性实施例示出的另一种结算配置方法的流程图,如图2b所示,该方法可以包括:

步骤s301,获取当前结算说明文件中指标的含义。

步骤s302,确定上述指标对应的业务函数,该业务函数用于将指标对应的指标维度归一化为结算维度。

步骤s303,根据当前指标的含义、业务函数、内置的变量和内置的计算函数,对当前结算说明文件进行分解,以生成决策树。

步骤s304,根据决策树生成规则文件。

其中,结算服务器可以自下向上解析决策树,生成规则文件。

步骤s305,根据规则文件运行的版本信息、规则文件中使用到的指标的含义和使用到的内置的变量,获取结算维度的数据集。

在该实施例中,结算服务器可以检测当前是否存在规则文件中使用到的指标对应的数据源,若不存在上述指标的数据源,则同步这些指标的数据源。然后,可以根据版本信息、规则文件中使用到的指标的含义和使用到的内置的变量,从数据源中获取指标维度的数据集,并使用上述指标对应的业务函数将指标维度的数据集归一化为结算维度的数据集。步骤s306,将规则文件和数据集输入规则引擎后输出结算数据和对账数据。

结算服务器将规则文件和数据集输入规则引擎后,由规则引擎对根节点进行运算,输出结算数据。其中,根节点是指没有父节点的节点。

规则引擎对除根节点之外的节点进行运算,得到中间数据,该中间数据可以用于对账,因此,被称为对账数据。

上述实施例,通过根据决策树生成规则文件,根据规则文件运行的版本信息、规则文件中使用到的指标的含义和使用到的内置的变量,获取结算维度的数据集,并将规则文件和数据集输入规则引擎后输出结算数据和对账数据,由于上述输出结算数据和对账数据的过程是基于决策树生成,而决策树可以清楚地表明规则之间的依赖关系,提升表达的规则的准确率,因此,基于决策树输出的结算数据和对账数据速度更快、准确率更高,且得到的对账数据可以用于对账。

与前述结算配置方法的实施例相对应,本申请还提供了结算配置装置的实施例。

本申请结算配置装置的实施例可以应用在电子设备上。其中,该电子设备可以为服务器。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。如图3所示,为本申请结算配置装置300所在电子设备的一种硬件结构图,该电子设备包括处理器310、存储器320及存储在存储器320上并可在处理器310上运行的计算机程序,该处理器310执行该计算机程序时实现上述结算配置方法。除了图3所示的处理器310及存储器320之外,实施例中装置所在的电子设备通常根据该结算配置的实际功能,还可以包括其他硬件,对此不再赘述。

图4是本申请一示例性实施例示出的一种结算配置装置的框图,如图4所示,该结算配置装置包括:第一获取模块41、确定模块42和分解生成模块43。

第一获取模块41用于获取当前结算说明文件中指标的含义。

在该实施例中,第一获取模块41可以对当前结算说明文件进行分析,以确定当前结算说明文件中是否存在指标,其中,该指标包括新增指标,例如,确定当前结算说明文件中是否存在消费额、毛收入,是否为新门店,城市规模等指标,若存在指标,则从配置文件中获取指标的含义。

其中,指标的含义可以以结构化查询语言(structuredquerylanguage,简称sql)形式或其他形式例如函数定义形式来表示。指标的含义可以包括但不局限于指标对应的计算公式和对应的指标维度等。

确定模块42用于确定指标对应的业务函数,业务函数用于将指标对应的指标维度归一化为结算维度。

在该实施例中,在确定存在指标之后,需要确定指标对应的业务函数,即需要将指标对应的指标维度聚合为结算维度。

例如,指标为“毛收入”,“毛收入”对应的指标维度为订单维度,而结算维度为城市维度,则“毛收入”对应的业务函数的实现方式是对“毛收入”指标所在的城市,做求和(sum)运算。

分解生成模块43用于根据第一获取模块41获取的当前指标的含义、定模块42确定的指标对应的业务函数、内置的变量和内置的计算函数,对当前结算说明文件进行分解,以生成决策树。

其中,内置的变量是指除指标之外的预设值,例如,分润周期、城市规模等。内置的计算函数是指预设的便于计算的函数,例如,求最值,求平均值,排序函数等。

其中,根据当前指标的含义、业务函数、内置的变量和内置的计算函数,自上向下对当前结算说明文件进行分解,以生成决策树。决策树的过程可以如图1b所示,此处不赘述。

上述实施例,通过获取当前结算说明文件中指标的含义,确定指标对应的业务函数,并根据当前指标的含义、业务函数、内置的变量和内置的计算函数,对当前结算说明文件进行分解,以生成决策树,从而通过决策树表达结算规则,这种表达方式可以清楚地表明规则之间的依赖关系,大大降低维护难度,同时,通过业务函数能够归一化指标,从而解决指标维度不统一的问题。

图5是本申请一示例性实施例示出的另一种结算配置装置的框图,如图5所示,在图4所示实施例的基础上,该结算配置装置还包括:文件生成模块44、第二获取模块45和输出模块46。

文件生成模块44用于根据分解生成模块43生成的决策树生成规则文件。

在该实施例中,文件生成模块44可以自下向上解析决策树,生成规则文件。其中,将决策树保存为规则文件,决策树的每个非叶子节点为一条规则。

第二获取模块45用于根据文件生成模块44生成的规则文件运行的版本信息、规则文件中使用到的指标的含义和使用到的内置的变量,获取结算维度的数据集。

其中,版本信息是指一次结算的标识信息,通常通过计算时间来表示。例如,版本信息为201703271503,表示2017年3月27号15:03进行了一次结算。该版本信息可以由人工设置。

在该实施例中,第二获取模块45可以检测当前是否存在规则文件中使用到的指标对应的数据源,若不存在上述指标的数据源,则同步这些指标的数据源。然后,可以根据版本信息、规则文件中使用到的指标的含义和使用到的内置的变量,从数据源中获取指标维度的数据集,并使用上述指标对应的业务函数将指标维度的数据集归一化为结算维度的数据集。

输出模块46用于将文件生成模块44生成的规则文件和第二获取模块45获取的数据集输入规则引擎后输出结算数据。

可选地,输出模块46还可以用于输出对账数据。

规则引擎对除根节点之外的节点进行运算,得到中间数据,该中间数据可以用于对账,因此,被称为对账数据。

输出模块46将规则文件和数据集输入规则引擎后,由规则引擎对根节点进行运算,输出结算数据。其中,根节点是指没有父节点的节点。

上述实施例,通过根据决策树生成规则文件,根据规则文件运行的版本信息、规则文件中使用到的指标的含义和使用到的内置的变量,获取结算维度的数据集,并将规则文件和数据集输入规则引擎后输出结算数据,由于上述输出结算数据的过程是基于决策树生成,而决策树可以清楚地表明规则之间的依赖关系,提升表达的规则的准确率,因此,基于决策树输出的结算数据速度更快、准确率更高。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序用于执行上述结算配置方法,其中,该结算配置方法包括:

获取当前结算说明文件中指标的含义;

确定指标对应的业务函数,该业务函数用于将指标对应的指标维度归一化为结算维度;

根据当前指标的含义、业务函数、内置的变量和内置的计算函数,对所述当前结算说明文件进行分解,以生成决策树。

计算机可读存储介质可以是只读存储器(rom)、随机存取存储器(ram)、光盘只读存储器(cd-rom)、磁带、软盘和光数据存储设备等。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

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

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1