账务处理方法、装置、电子设备及可读存储介质
文献发布时间:2023-06-19 11:57:35
技术领域
本申请涉及账务处理技术领域,具体而言,涉及一种账务处理方法、装置、电子设备及可读存储介质。
背景技术
银行业分布式场景下,数据库采用分库分表设计,一笔交易可能存在跨多库操作处理,MySQL数据库不能保证事务的一致性,导致一笔交易可能会出现因事务提交不一致而产生的账务问题。
发明内容
本申请实施例提供一种账务处理方法、装置、电子设备及可读存储介质,用于解决账务不一致的问题。
第一方面,本申请实施例提供一种账务处理方法,该方法包括:
汇聚目标账务数据至同一数据库,所述目标账务数据分别存储于不同的数据库;
核查目标账务数据之间的一致性;
当核查确定所述目标账务数据存在账务不一致情形时,进行调账处理。
可选地,该方法包括:
确定账务处理的账务类型;
基于确定的账务类型确定目标账务数据所在的数据库;
基于确定的目标账务数据所在的数据库,将所述目标账务数据汇聚至同一数据库。
可选地,汇聚目标账务数据至同一数据库,包括:
通过Binlog将分别存储于不同数据库的账务数据汇聚至同一数据库。
可选地,所述核查目标账务数据之间的一致性,包括以下至少一项:
根据账户金额进行核对,计算分户余额与科目余额是否一致;
根据已经产生的流水信息核对对手交易。
可选地,所述根据已经产生的流水信息核对对手交易,包括:
确定目标账务是否属于双边或多边账务;
如果所述目标账务属于双边或多边账务,则根据已经产生的流水信息核对对手交易。
可选地,所述当核查确定所述目标账务数据存在账务不一致情形时,进行调账处理,包括:
确定所述目标账务数据对应的交易对外系统返回的处理结果;
如果结果为成功,则调用正向补偿流程,将本笔交易已成功为结果进行补偿处理;
如果结果为失败,则调用反向补偿流程,将本笔交易以失败为结果进行补偿处理。
可选地,该方法还包括:
基于确定的本笔交易的补偿处理方式,对对应的分数据库的相应账务数据进行调账处理。
第二方面,提供了一种账务处理装置,该装置包括:
汇聚模块,用于汇聚目标账务数据至同一数据库,所述目标账务数据分别存储于不同的数据库;
核查模块,用于核查目标账务数据之间的一致性;
第一调账模块,用于当核查确定所述目标账务数据存在账务不一致情形时,进行调账处理。
可选地,该装置还包括:
第一确定模块,用于确定账务处理的账务类型;
第二确定模块,用于基于确定的账务类型确定目标账务数据所在的数据库;
所述汇聚模块,还用于基于确定的目标账务数据所在的数据库,将所述目标账务数据汇聚至同一数据库。
可选地,所述汇聚模块,具体用于通过Binlog将分别存储于不同数据库的账务数据汇聚至同一数据库。
可选地,所述核查目标账务数据之间的一致性,包括以下至少一项:
根据账户金额进行核对,计算分户余额与科目余额是否一致;
根据已经产生的流水信息核对对手交易。
可选地,该装置还包括:
第三确定模块,用于确定目标账务是否属于双边或多边账务;
核查模块,还用于如果所述目标账务属于双边或多边账务,则根据已经产生的流水信息核对对手交易。
可选地,所述第一调账模块,包括:
确定单元,用于确定所述目标账务数据对应的交易对外系统返回的处理结果;
判断单元,用于如果结果为成功,则调用正向补偿流程,将本笔交易已成功为结果进行补偿处理;
如果结果为失败,则调用反向补偿流程,将本笔交易以失败为结果进行补偿处理。
可选地,该装置还包括:
第二调账模块,用于基于确定的本笔交易的补偿处理方式,对对应的分数据库的相应账务数据进行调账处理。
第三方面,本申请实施例提供一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当该设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如第一所示的账务处理方法的步骤。
第四方面,本申请实施例提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行如第一方面所示的账务处理方法的步骤。
本申请提供了一种账务处理方法、装置、电子设备及可读存储介质,本申请通过汇聚目标账务数据至同一数据库,所述目标账务数据分别存储于不同的数据库;核查目标账务数据之间的一致性;当核查确定所述目标账务数据存在账务不一致情形时,进行调账处理。即将存储于不同数据库的账务数据汇聚至同一数据库,然后进行一致性核对,当出现不一致的账务数据时,自动进行调账处理,从而解决了银行分布式存储下不能保证事务一致性的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的账务处理方法的流程示意图;
图2示出了本申请实施例提供的一种账务处理装置的结构示意图;
图3示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,本申请所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。还应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。在本申请的描述中,还需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例一
图1示出了本申请实施例提供的账务处理方法的流程示意图。如图1所示,该方法可以包括:
步骤S101,汇聚目标账务数据至同一数据库,所述目标账务数据分别存储于不同的数据库;
具体地,包括:确定账务处理的账务类型;基于确定的账务类型确定目标账务数据所在的数据库;基于确定的目标账务数据所在的数据库,将所述目标账务数据汇聚至同一数据库。其中,不同的账务类型的账务数据分别存储在不同的数据库,可以确定目标交易对应的账务处理的账务类型,根据确定的账务类型,确定目标交易对应的账务数据储存的数据库,然后将从该相关数据库中将相关账务数据汇聚至同一数据库。
步骤S102,核查目标账务数据之间的一致性;
步骤S103,当核查确定所述目标账务数据存在账务不一致情形时,进行调账处理。
本申请提供了一种账务处理方法,本申请通过汇聚目标账务数据至同一数据库,所述目标账务数据分别存储于不同的数据库;核查目标账务数据之间的一致性;当核查确定所述目标账务数据存在账务不一致情形时,进行调账处理。即将存储于不同数据库的账务数据汇聚至同一数据库,然后进行一致性核对,当出现不一致的账务数据时,自动进行调账处理,从而解决了银行分布式存储下不能保证事务一致性的问题。
可选地,汇聚目标账务数据至同一数据库,包括:
通过Binlog将分别存储于不同数据库的账务数据汇聚至同一数据库。
可选地,所述核查目标账务数据之间的一致性,包括以下至少一项:
根据账户金额进行核对,计算分户余额与科目余额是否一致;
根据已经产生的流水信息核对对手交易。具体地,所述根据已经产生的流水信息核对对手交易,包括:确定目标账务是否属于双边或多边账务;如果所述目标账务属于双边或多边账务,则根据已经产生的流水信息核对对手交易。具体地,通过根据已经产生的流水信息核对对手交易,从而能够批量确定账务的一致性,能提升账务核对的效率。如,可以通过核对多个账户的流水信息与对应的相对方的流水信息的一致性。
具体地,如果不存在双边或多边账务,则直接进行计算分户余额与科目余额是否一致。
具体地,可以基于某一账户发生交易的次数,确定该某一账户相对方发生交易的次数,如果两者交易次数不一致,则说明账务错误,需要调账。
具体地,可以是基于某一账户发生某一交易的次数,确定该某一账户相对方发生对应交易的次数,如果两者交易次数不一致,则说明账务错误,需要调账。
示例性地,现有分片数据库按照客户号进行分片分库处理。对本行客户A和客户B之间进行转账,分为两个子流程处理:a.先从客户A进行扣账处理,对客户A的账户金额进行数据库更新;b.再调用客户B进行存入操作,对客户B的账户金额进行数据更新。由于异常场景,当A客户已扣账成功提交数据库后,操作B客户进行入账操作时,出现异常场景(如网络异常;数据库异常;应用本身异常;其他异常),导致B客户账户不能进行记账操作,这时就会出现一笔差错账务,表现为A客户已经扣款的金额不知去向。也即是说,数据异常表现为:A客户会在01库01子表登记一笔支出交易流水;但是,B客户的存入流水未进行登记;终进行总分核对时,会发现本笔交易为差错账。根据本申请,会根据已经产生的流水信息核对对手交易,即如果A账户发生了扣款,则对应的核查对方B是否发生了存款。如果未发生则说明本笔交易记账错误,需要进行账务调整。进一步地,也可以统计A发生扣款交易的次数,以及B进款交易的次数,如果两者不一致,则说明账务错误,需要进行调整。
可选地,所述当核查确定所述目标账务数据存在账务不一致情形时,进行调账处理,包括:
确定本笔交易对外系统返回的处理结果;
如果结果为成功,则调用正向补偿流程,将本笔交易已成功为结果进行补偿处理;
如果结果为失败,则调用反向补偿流程,将本笔交易以失败为结果进行补偿处理。
进一步地,该方法还包括:
基于确定的本笔交易的补偿处理方式,对对应的分数据库的相应账务数据进行调账处理。
实施例二
本申请实施例提供了一种账务处理装置,如图2所示,本申请实施例的方法包括,
步骤S201,汇聚模块,用于汇聚目标账务数据至同一数据库,所述目标账务数据分别存储于不同的数据库;
核查模块202,用于核查目标账务数据之间的一致性;
第一调账模块203,用于当核查确定所述目标账务数据存在账务不一致情形时,进行调账处理。
可选地,该装置还包括:
第一确定模块,用于确定账务处理的账务类型;
第二确定模块,用于基于确定的账务类型确定目标账务数据所在的数据库;
所述汇聚模块,还用于基于确定的目标账务数据所在的数据库,将所述目标账务数据汇聚至同一数据库。
可选地,所述汇聚模块,具体用于通过Binlog将分别存储于不同数据库的账务数据汇聚至同一数据库。
可选地,所述核查目标账务数据之间的一致性,包括以下至少一项:
根据账户金额进行核对,计算分户余额与科目余额是否一致;
根据已经产生的流水信息核对对手交易。
可选地,该装置还包括:
第三确定模块,用于确定目标账务是否属于双边或多边账务;
核查模块,还用于如果所述目标账务属于双边或多边账务,则根据已经产生的流水信息核对对手交易。
可选地,所述调账模块,包括:
确定单元,用于确定本笔交易的业务场景,和对外系统返回的处理结果;
判断单元,用于对于有最终状态的交易,判断返回外系统的结果;
处理单元,用于如果结果为成功,则调用正向补偿流程,将本笔交易已成功为结果进行补偿处理;如果结果为失败,则调用反向补偿流程,将本笔交易以失败为结果进行补偿处理。
可选地,该装置还包括:
第二调账模块,用于基于确定的本笔交易的补偿处理方式,对对应的分数据库的相应账务数据进行调账处理。
应该理解,以上所描述的装置实施例仅仅是示意性的,本申请实施例所揭露的装置和方法,也可以通过其它的方式实现。例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。也即,本领域内的技术人员应明白,本申请实施例可以采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式中的任一种实现。
实施例三
基于此,本申请实施例还提供一种程序产品,该程序产品可以是U盘、移动硬盘、ROM、RAM、磁碟或者光盘等存储介质,存储介质上可以存储有计算机程序,计算机程序被处理器运行时执行如前述方法实施例中的方法的步骤。具体实现方式和技术效果类似,在此不再赘述。
实施例四
另外,本申请实施例还提供一种电子设备,该电子设备可以是上述个人计算机、服务器、或者网络设备等具有数据处理能力的设备,图3示出了本申请实施例提供的电子设备的结构示意图。
如图3所示,该电子设备可以包括:处理器31、存储介质32和总线33,存储介质32存储有处理器31可执行的机器可读指令,当电子设备运行时,处理器31与存储介质32之间通过总线33通信,处理器31执行机器可读指令,以执行时执行如前述方法实施例中的账务处理方法的步骤。具体实现方式和技术效果类似,在此同样不再赘述。
为了便于说明,在上述电子设备中仅描述了一个处理器。然而,应当注意,一些实施例中,本申请中的电子设备还可以包括多个处理器,因此本申请中描述的一个处理器执行的步骤也可以由多个处理器联合执行或单独执行。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
- 账务处理方法、装置、电子设备及可读存储介质
- 账务数据的处理方法及装置、电子设备、存储介质