CN110084692A - 一种记账方法及装置 - Google Patents

一种记账方法及装置 Download PDF

Info

Publication number
CN110084692A
CN110084692A CN201910289088.6A CN201910289088A CN110084692A CN 110084692 A CN110084692 A CN 110084692A CN 201910289088 A CN201910289088 A CN 201910289088A CN 110084692 A CN110084692 A CN 110084692A
Authority
CN
China
Prior art keywords
voucher
mvltiple
account
book keeping
titles
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
Application number
CN201910289088.6A
Other languages
English (en)
Inventor
乔洪宝
顾少丰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Lake Information Technology Co Ltd
Original Assignee
Shanghai Lake Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Lake Information Technology Co Ltd filed Critical Shanghai Lake Information Technology Co Ltd
Priority to CN201910289088.6A priority Critical patent/CN110084692A/zh
Publication of CN110084692A publication Critical patent/CN110084692A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明实施例涉及计算机信息技术领域,尤其涉及一种记账方法及装置,用以增加记账的完整性和准确性。本发明实施例包括:根据交易数据的类型确定复式记账凭证模板,所述复式记账凭证模板中包括N个记账单元模板,其中N≥1;从所述交易数据中确定所述复式记账凭证模板的账单参数;利用所述复式记账凭证模板以及所有账单参数,生成复式记账凭证;将所述复式记账凭证进行存储,并根据所述复式记账凭证对所述交易数据执行记账操作。

Description

一种记账方法及装置
技术领域
本发明涉及计算机信息技术领域,尤其涉及一种记账方法及装置。
背景技术
在计算机记账***中,一般会采用单式记账法进行记账。单式记账法是一种简单而又不完整的记账方法,它对每一项经济业务,只在一个账户中登记,一般只记录现金和银行存款的收付以及应收、应付等往来款项,只能反映出经济业务的一个方面。单式记账法下账户设置不完整,账户之间缺乏对应关系。
单式记账法是一种简单直观的记账方法,但是同时它也是一种不能反映交易活动的全貌、出现问题难以自查的记账方法。一旦出现差错难以及时发现,事后排查起来难度较大,如果本身业务体量较大,更是大大增加了出错次数和排查难度。
发明内容
本申请提供一种记账方法及装置,用以增加记账的完整性和准确性。
本发明实施例提供的一种记账方法,包括:
根据交易数据的类型确定复式记账凭证模板,所述复式记账凭证模板中包括N个记账单元模板,其中N≥1;
从所述交易数据中确定所述复式记账凭证模板的账单参数;
利用所述复式记账凭证模板以及所有账单参数,生成复式记账凭证;
将所述复式记账凭证进行存储,并根据所述复式记账凭证对所述交易数据执行记账操作。
一种可选的实施例中,所述根据所述复式记账凭证执行记账操作之前,还包括:
确定记账操作的操作模式,所述操作模式包括同步模式和异步模式;
所述根据所述复式记账凭证执行记账操作,包括:
若所述操作模式为同步模式,则根据所述复式记账凭证直接执行所述记账操作;
若所述操作模式为异步模式,则将所述复式记账凭证的凭证标记缓存入消息队列;异步获取所述消息队列中的凭证标记,根据所述凭证标记确定对应的复式记账凭证,根据所述复式记账凭证执行记账操作。
一种可选的实施例中,所述将所述复式记账凭证进行存储,包括:
将所述复式记账凭证进行存储,并生成状态标记,将所述状态标记设置为初始状态;
所述根据所述复式记账凭证执行记账操作之后,还包括:
若根据所述复式记账凭证执行记账操作成功,则将所述状态标记更新为成功状态,并反馈成功结果;
若根据所述复式记账凭证执行记账操作失败,则将所述状态标记更新为失败状态,并反馈失败结果。
一种可选的实施例中,所述将所述状态标记设置为初始状态之后,还包括:
对状态标记为初始状态的复式记账凭证进行轮询;
若存在初始状态的持续时间超过阈值的复式记账凭证,则直接对所述超过阈值的复式记账凭证执行记账操作。
一种可选的实施例中,所述根据所述复式记账凭证执行记账操作,包括:
根据所述复式记账凭证确定M个交易账户,其中M≥2;
若所述M个交易账户位于同一个数据库中,则将M个记账操作作为一个本地事务进行处理;
若所述M个交易账户位于不同的数据库中,则通过分布式事务方案处理所述M个记账操作;所述M个记账操作中的任一记账操作为针对一个交易账户,更新所述交易账户的余额,并生成所述交易账户的一条交易流水。
本发明实施例还提供一种记账装置,包括:
模板单元,用于根据交易数据的类型确定复式记账凭证模板,所述复式记账凭证模板中包括N个记账单元模板,其中N≥1;从所述交易数据中确定所述复式记账凭证模板的账单参数;利用所述复式记账凭证模板以及所有账单参数,生成复式记账凭证;
凭证单元,用于将所述复式记账凭证进行存储;
操作单元,用于根据所述复式记账凭证对所述交易数据执行记账操作。
一种可选的实施例中,所述模板单元,还用于确定记账操作的操作模式,所述操作模式包括同步模式和异步模式;
所述操作单元,具体用于若所述操作模式为同步模式,则根据所述复式记账凭证直接执行所述记账操作;若所述操作模式为异步模式,则将所述复式记账凭证的凭证标记缓存入消息队列;异步获取所述消息队列中的凭证标记,根据所述凭证标记确定对应的复式记账凭证,根据所述复式记账凭证执行记账操作。
一种可选的实施例中,所述凭证单元,具体用于:
将所述复式记账凭证进行存储,并生成状态标记,将所述状态标记设置为初始状态;
若根据所述复式记账凭证执行记账操作成功,则将所述状态标记更新为成功状态,并反馈成功结果;
若根据所述复式记账凭证执行记账操作失败,则将所述状态标记更新为失败状态,并反馈失败结果。
一种可选的实施例中,所述操作单元,具体用于:
对状态标记为初始状态的复式记账凭证进行轮询;
若存在初始状态的持续时间超过阈值的复式记账凭证,则直接对所述超过阈值的复式记账凭证执行记账操作。
一种可选的实施例中,所述操作单元,具体用于:
根据所述复式记账凭证确定M个交易账户,其中M≥2;
若所述M个交易账户位于同一个数据库中,则将M个记账操作作为一个本地事务进行处理;
若所述M个交易账户位于不同的数据库中,则通过分布式事务方案处理所述M个记账操作;所述M个记账操作中的任一记账操作为针对一个交易账户,更新所述交易账户的余额,并生成所述交易账户的一条交易流水。
本发明实施例还提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上所述的方法。
本发明实施例中,触发了记账操作后,获取需要记账的交易数据。根据交易数据的类型确定复式记账凭证模板,该复式记账凭证模板中包括N个记账单元模板。同时,从交易数据中确定复式记账凭证模板的账单参数。利用复式记账凭证模板以及所有的账单参数,生成复式记账凭证。将复式记账凭证进行存储,并根据该复式记账凭证对交易数据执行记账操作。本发明实施例在计算机记账***中,使用复式记账法进行记账,可以完整地反映出整个经济业务活动,保证了整个记账过程的完整性。同时,由于本发明实施例中的复式记账法包括了多个记账单元模板,即对于一条交易,记录了不止一个账户的改变,具有较强的自我校验功能,可以有效降低记账出错的概率,增加了记账的准确性。此外,本发明实施例利用凭证模板进行复式记账,简化了复式记账的难度,降低了复式记账的使用门槛。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种记账方法的流程示意图;
图2为本发明实施例适用的一种***架构的示意图;
图3为本发明具体实施例一提供的一种记账方法的流程示意图;
图4为本发明具体实施例二提供的一种记账方法的流程示意图;
图5为本发明实施例提供的一种记账装置的结构示意图;
图6为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
记账方式按记录经济业务的内容不同,可分为单式记账法和复式记账法。
相较于单式记账法,复式记账法是一种较完整的记账方法,它对发生的每一项经济业务,都要以相等的金额,在相互联系的两个或两个以上账户进行登记。复式记账法不仅可以了解每项经济业务的来龙去脉,而且可以通过会计要素的增减变动全面、***地了解经济活动的过程和结果。
复式记账法的理论依据是会计恒等式,即“资产=负债+所有者权益+收入-费用”。按照会计恒等式,任何一项经济业务都会引起资产与权益之间至少两个项目发生增减变动,而且增减变动的金额相等。因此对每一笔经济业务的发生,都可以以相等的金额在两个或两个相关账户中作等额双重记录。这种记账如实反映了经济事物的客观联系,是一种科学的记账方法。
这里用借贷复式记账法为例进行说明。借贷复式记账法以借、贷作为记账符号。对于资产和费用类账户,借方记录资产和费用的增加额,贷方记录资产和费用的减少额。对于负债、所有者权益和收入类账户则相反,借方记录负债、所有者权益和收入的减少额,贷方记录负债、所有者权益和收入的增加额。
借贷记账法的记账规则可以概括为:有借必有贷,借贷必相等。在运用借贷记账法记账时,对每项经济业务,既要记录一个(或几个)账户的借方,又必然要记录另一个(或几个)账户的贷方,即“有借必有贷”;账户借方记录的金额必然等于账户贷方的金额,即“借贷必相等”。
下面举一个具体的例子来说明单式记账法和复式记账法的区别。假如公司买一批原材料花费5000元,不考虑增值税,使用银行存款支付。使用单式记账法,只记银行存款减少5000元,也可以只记原材料增加5000元,这种方法只记一方,不能清楚了解整个业务的完整情况。使用复式记账法,则记原材料增加5000元,资产增加记借方,同时银行存款减少5000元,资产减少记贷方,登记业务的来龙去脉,方便查账。
但是复式记账法在记账难度上较为复杂,记账的手续繁杂,涉及的内容较多,且要求记账者具有一定的财务会计知识,对记账者提出了较高的专业要求。
为了解决上述问题,本发明实施例提供了一种记账方法,如图1所示,本发明实施例提供的记账方法包括以下步骤:
步骤101、根据交易数据的类型确定复式记账凭证模板,所述复式记账凭证模板中包括N个记账单元模板,其中N≥1。
步骤102、从所述交易数据中确定所述复式记账凭证模板的账单参数。
步骤103、利用所述复式记账凭证模板以及所有账单参数,生成复式记账凭证。
步骤104、将所述复式记账凭证进行存储,并根据所述复式记账凭证对所述交易数据执行记账操作。
本发明实施例中,记账操作的触发可以是前台接收到用户的交易请求,生成交易数据,将交易数据发送至记账平台,从而触发上述记账步骤。也可以是记账者通过前台向记账平台发送记账请求,或直接向记账平台输入记账请求,从而触发记账平台执行上述记账步骤,此时,记账平台可以从数据库中读取存储的交易数据,依据交易数据进行记账。
本发明实施例中,触发了记账操作后,获取需要记账的交易数据。根据交易数据的类型确定复式记账凭证模板,该复式记账凭证模板中包括N个记账单元模板。同时,从交易数据中确定复式记账凭证模板的账单参数。利用复式记账凭证模板以及所有的账单参数,生成复式记账凭证。将复式记账凭证进行存储,并根据该复式记账凭证对交易数据执行记账操作。本发明实施例在计算机记账***中,使用复式记账法进行记账,可以完整地反映出整个经济业务活动,保证了整个记账过程的完整性。同时,由于本发明实施例中的复式记账法包括了多个记账单元模板,即对于一条交易,记录了不止一个账户的改变,具有较强的自我校验功能,可以有效降低记账出错的概率,增加了记账的准确性。此外,本发明实施例利用凭证模板进行复式记账,简化了复式记账的难度,降低了复式记账的使用门槛。
记账凭证是根据原始凭证填制,记载经济业务简要内容,确定会计分录,作为记账依据的会计凭证,在现实中通常表现为单据。本发明实施例中,记账凭证具体表现为一段具有特定格式的数据。本发明实施例中的复式记账凭证包括凭证头和凭证正文。
其中,凭证头包含凭证类别、凭证号、日期等基本信息。凭证正文包括摘要、会计科目、金额和借贷方向等。其中会计科目在***中主要体现在具体的账户上面,其中的金额没有负值,而是通过借贷方向来标识。
下面以一个具体的例子来说明本发明实施例中复式记账凭证的格式和内容。例如,用户通过第三方支付软件充值1000元至游戏平台,游戏平台收取用户10元作为充值手续费,第三方支付软件收取游戏平台1元渠道成本手续费。对于游戏平台而言,该充值过程会产生如表1的复式记账凭证,包括三个记账单元。
摘要 会计科目/账户 金额(元) 借贷
充值 银行资金 1000.00
充值 用户备付金 1000.00
充值收费 用户备付金 10.00
充值收费 充值手续费收入 10.00
充值成本 充值渠道成本 1.00
充值成本 银行资金 1.00
第一个记账单元为充值,用户充值1000元,游戏平台的银行资金应该相应地增加1000元,银行资金属于资产,资产增加记借方;同时游戏平台欠用户的用户备付金增加1000元,用户备付金属于负债,负债增加应该记贷方。
第二个记账单元为充值收费,游戏平台收取了用户10元手续费,用户备付金应相应地减少10元,负债减少应记借方;同时游戏平台增加了10元的充值手续费收入,收入增加应记贷方。
第三个记账单元为充值成本,第三方支付软件因充值渠道收取了游戏平台1元手续费,游戏平台付出了1元的充值渠道成本,成本增加应记借方;游戏平台的银行资金相应地减少了1元,资产减少应记借方。
当然,上述表1只是一种记账方式,可能第三方支付软件的流水是把银行资金的增加和成本支出合并为一条记录,此时可以把对应两条记录合并为一条,便于以后与第三方支付软件对账。第三方支付软件的充值渠道成本手续费也有可能是后付费的,此时应从该凭证内容中去掉充值渠道成本的项目,改为另外专门收费的记账凭证来记录。如果有一天游戏平台宣布充值对用户完全免费,那么表1中的充值收费相关项目也不用记录。
由此可见,复式记账凭证具有一定的专业性和复杂性,且具体内容可能随着业务的变化而变化,本发明实施例利用复式记账凭证模板,在保证复式记账的完整性和正确性的同时,还简化了操作难度。
本发明实施例的复式记账凭证中,一对借贷作为一个记账单元,每一个复式记账凭证模板可以包括一个或多个记账单元。不同交易类型的复式记账凭证模板设置不同组合的记账单元,例如表1的例子中,交易类型为充值,其对应的复式记账凭证模板包括充值记账单元、充值收费记账单元和充值成本记账单元共三个记账单元。本发明实施例为不同类型的交易设置不同的复式记账模板,复式记账模板中包含的记账单元为可选择模式,即每一个记账单元都不一定会被使用。在用户使用过程中,可以选择去掉某些不需要的记账单元,比如在充值免收用户手续费的情况下,可以不选择充值收费的记账单元。
其他场景的需求也可以在此基础上进行扩展,比如要对同一个账户的凭证正文明细进行合并,可以指定合并扩展参数,包括账户、合并方式、合并摘要等。在收到合并扩展参数时,会对同一个账户的明细进行合并操作,将多条记录合并成一条,使用合并后的摘要,并自动计算合并后的金额等。
本发明实施例在复式记账凭证模版中可以限定相应的会计科目,在提交时会进行校验,以避免误用。通过复式记账凭证模版生成的记账凭证一定是有借必有贷、借贷必相等的,后续处理还可以再次校验,以防万一。
本发明实施例利用复式记账凭证模板生成复式记账凭证后,对该复式记账凭证进行存储和记账处理。本发明实施例将复式记账凭证持久化存储到物理介质上,存储时需要保证凭证头和凭证内容的保存同时成功或同时失败,一般使用关系型数据库的本地事务来保证。
为了能够标明对该复式记账凭证的记账处理是否成功,本发明实施例为每个复式记账凭证设置一个状态标记。所述将所述复式记账凭证进行存储,包括:
将所述复式记账凭证进行存储,并生成状态标记,将所述状态标记设置为初始状态;
所述根据所述复式记账凭证执行记账操作之后,还包括:
若根据所述复式记账凭证执行记账操作成功,则将所述状态标记更新为成功状态,并反馈成功结果;
若根据所述复式记账凭证执行记账操作失败,则将所述状态标记更新为失败状态,并反馈失败结果。
具体实施过程中,该状态标记可以为一个字段,该字段至少包含三种取值,分别对应于初始状态、成功状态和失败状态。复式记账凭证存储时,同时存储一个为初始状态的字段,表明该复式记账凭证未得到处理结果。对复式记账凭证进行记账操作后,若记账成功,则将状态标记更新为成功状态,并反馈成功结果。若记账失败,则将状态标记更新为失败状态,然后可以根据具体业务选择重新进行记账或者直接反馈失败结果。
本发明实施例中,复式记账凭证存储成功且正在进行记账处理时的状态为初始状态,此外,当复式记账凭证成功存储后,但在后续记账处理过程中发生异常时,复式记账凭证的状态也还是初始状态。本发明实施例定时轮询这些长时间是初始状态的复式记账凭证,进行记账补偿。所述将所述状态标记设置为初始状态之后,还包括:
对状态标记为初始状态的复式记账凭证进行轮询;
若存在初始状态的持续时间超过阈值的复式记账凭证,则直接对所述超过阈值的复式记账凭证执行记账操作。
具体来说,本发明实施例可以利用复式记账凭证的凭证标记作为参数调用复式记账凭证,对其进行补偿。确定初始状态超时的复式记账凭证的凭证标记后,查询该复式记账凭证的完整信息,然后直接对该复式记账凭证执行记账操作。如果记账操作结果为成功,则把复式记账凭证的状态更新为成功;如果记账操作结果为失败,则把复式记账凭证的状态更新为失败;如果记账操作结果为处理中,或根本没收到处理结果,此时不做任何处理,继续等待下次补偿或重试。
需要说明的是,本发明实施例中补偿和重试是幂等的,可以重复调用但不能重复处理。
为了增加记账处理的灵活性,兼顾记账操作的处理能力,当复式记账凭证成功存储后,后续的记账操作包括两种模式,一种是同步模式,一种是异步模式。所述根据所述复式记账凭证执行记账操作之前,还包括:
确定记账操作的操作模式,所述操作模式包括同步模式和异步模式;
所述根据所述复式记账凭证执行记账操作,包括:
若所述操作模式为同步模式,则根据所述复式记账凭证直接执行所述记账操作;
若所述操作模式为异步模式,则将所述复式记账凭证的凭证标记缓存入消息队列;异步获取所述消息队列中的凭证标记,根据所述凭证标记确定对应的复式记账凭证,根据所述复式记账凭证执行记账操作。
具体选择哪种记账模式,可以由接收到的请求参数决定,也可以根据当前的处理情况自行决定,例如当复式记账凭证的条数未超过配置的临界值,执行同步模式;若超过了,则执行异步模式。
若操作模式为同步模式,则直接对该复式记账凭证执行记账操作。如果记账操作结果为成功,则把复式记账凭证的状态标记更新为成功,同时反馈成功结果。如果记账操作结果为失败,则把复式记账凭证的状态标记更新为失败,同时反馈失败结果。如果记账操作结果为处理中,或根本没有得到处理结果,此时对状态标记不做任何处理,返回处理中等待下次补偿或重试。此外,如果在更新复式记账凭证的状态标记时失败,可以不做任何处理,直接反馈实际记账结果,等待下次补偿或重试时再将状态标记更新为实际值即可。
若操作模式为异步模式,则不直接进行记账操作,而是把复式记账凭证的凭证标记缓存入消息队列,然后直接返回处理中。消息队列中的凭证标记被异步获取,利用获取到的凭证标记作为参数,调用存储的复式记账凭证。根据复式记账凭证的完整信息,执行具体的记账操作。如果记账操作结果为失败,则把复式记账凭证的状态标记更新为失败,同时反馈失败结果。如果记账操作结果为处理中,或根本没有得到处理结果,此时对状态标记不做任何处理,返回处理中等待下次补偿或重试。此外,如果在更新复式记账凭证的状态标记时失败,可以不做任何处理,直接反馈失败结果,等待下次补偿或重试即可。
对于具体的记账操作,主要是更新账户余额以及生成账户交易流水。
进一步地,为了保证记账操作的一致性,本发明实施例中,所述根据所述复式记账凭证执行记账操作,包括:
根据所述复式记账凭证确定M个交易账户,其中M≥2;
若所述M个交易账户位于同一个数据库中,则将M个记账操作作为一个本地事务进行处理;
若所述M个交易账户位于不同的数据库中,则通过分布式事务方案处理所述M个记账操作;所述M个记账操作中的任一记账操作为针对一个交易账户,更新所述交易账户的余额,并生成所述交易账户的一条交易流水。
具体的实施过程中,采用支持事务的关系型数据库进行记账操作。如果记账操作的多个交易账户位于同一个数据库中,则开启数据库本地事务,将多个记账操作作为一个本地事务进行处理,保证所有记账操作的强一致性。此外,较佳地,本发明实施例将账户余额以及账户交易流水数据存储至相同的数据库中,这样可以保证更新账户余额与生成账户交易流水同步操作,从而降低***复杂性,减少事务同步带来的开销。
而对于复式记账凭证,记账操作一般针对至少两个账户,也就是说,记账操作至少要更新两个账户的余额以及生成至少两条交易流水。这里的至少两个账户往往位于不同的数据库和不同的数据库服务器上,故无法只采用一个本地事务完成整个记账操作。此时,本发明实施例通过补偿的方式来保证事务的最终一致性,具体实施上通过TCC事务或Sagas长事务等方案进行记账操作。
需要说明的是,对于复式记账凭证的操作需具有隔离性,即对于同一个复式记账凭证的调用和记账,保证同一时间全局只有唯一一个线程在处理,以保证记账的时序不会错乱。若接收到某交易的记账请求时,若发现同一个复式记账凭证正在处理中,应直接返回处理中。
此外,对复式记账凭证的提交具有幂等性,对于已经提交过并记账处理成功的记账请求,直接返回成功结果。对于同一个复式记账凭证,无论接收到多少次记账请求,都只进行一次记账操作,以防止重复处理而产生错账。
为了更清楚地理解本发明,下面以具体的实施例对上述流程进行详细描述,本发明具体实施例所适用的一种***构架如图2所示,包括前置装置和记账装置。前置装置接收记账者发送的记账请求,并将该记账请求以及与记账请求相关的交易数据向记账装置发送。记账装置中主要包括模板模块、凭证模块和操作模块,较佳地,还可以包括消息模块、推送器和补偿器作为辅助模块。
其中,模板模块用于接收前置模块发送的记账请求和交易数据,并按一定的规则生成复式记账凭证,传递至凭证模块。凭证模块接收到复式记账凭证后,将复式记账凭证进行存储,并传递至操作模块。操作模块根据接收到的复式记账凭证记录账户余额的增减变化以及生成账户交易流水,进而完成整个记账过程。
本发明具体实施例一提供了一种记账方法,其流程如图3所示,可以包括如下步骤:
步骤301:前置装置将用户发送的交易数据,以及针对该交易数据的同步记账请求向模板模块发送。
步骤302:模板模块根据交易数据的类型确定复式记账凭证模板,并从交易数据中确定账单参数。
步骤303:模板模块利用复式记账凭证模板以及账单参数,生成复式记账凭证。
步骤304:模板模块将复式记账凭证向凭证模块发送。
步骤305:凭证模块针对该复式记账凭证生成状态标记,将状态标记设置为初始状态,并将复式记账凭证和状态标记进行存储。
步骤306:凭证模块根据该记账请求为同步模式,直接将复式记账凭证发送至操作模块。
步骤307:操作模块根据该复式记账凭证,更新账户余额并生成账户交易流水。
步骤308:操作模块向凭证模块反馈操作结果,若操作成功,则反馈成功结果;若操作失败,则反馈失败结果。
步骤309:凭证模块根据接收到的操作结果,修改状态标记,若操作结果为成功,则将状态标记由初始状态改为成功状态;若操作结果为失败,则将状态标记由初始状态改为失败状态。
步骤310:凭证模块向模板模块反馈操作结果。
步骤311:模板模块向前置装置反馈操作结果。
本发明具体实施例二提供了一种记账方法,其流程如图4所示,可以包括如下步骤:
步骤401:前置装置向模板模块发送记账请求。
步骤402:模板模块根据当前运行状况,将记账请求的模式设置为异步模式,并根据记账请求从数据库中获取对应的交易数据。
步骤403:模板模块根据交易数据的类型确定复式记账凭证模板,并从交易数据中确定出账单参数,利用复式记账凭证模板以及账单参数,生成复式记账凭证。
步骤404:模板模块将复式记账凭证向凭证模块发送。
步骤405:凭证模块针对该复式记账凭证生成状态标记,将状态标记设置为初始状态,并将复式记账凭证和状态标记进行存储。
步骤406:凭证模块根据该记账请求为异步模式,将复式记账凭证的凭证标记发送至消息模块。消息模块接收到复式记账凭证的凭证标记会将其暂存,等待推送器做后续处理。
步骤407:凭证模块向模板模块反馈该记账请求在处理中。
步骤408:模板模块向前置装置反馈该记账请求在处理中。
步骤409:推送器向消息模块发送获取请求。
步骤410:消息模块向推送器发送复式记账凭证的凭证标记。
步骤411:推送器向凭证模块发送补偿请求,该补偿请求中包括凭证标记。
步骤412:凭证模块根据凭证标记查询到对应的复式记账凭证,将复式记账凭证发送至操作模块。
步骤413:操作模块根据该复式记账凭证,更新账户余额并生成账户交易流水。
步骤414:操作模块向凭证模块反馈操作结果,若操作成功,则反馈成功结果;若操作失败,则反馈失败结果。
步骤415:凭证模块根据接收到的操作结果,修改状态标记,若操作结果为成功,则将状态标记由初始状态改为成功状态;若操作结果为失败,则将状态标记由初始状态改为失败状态。
步骤416:凭证模块向模板模块反馈操作结果。
步骤417:模板模块向前置装置反馈操作结果。
此外,补偿器定时轮询凭证模块中状态标记长时间为初始状态的复式记账凭证,利用凭证标记作为参数向凭证模块发送补偿请求。凭证模块根据凭证标记查询到对应的复式记账凭证,将复式记账凭证发送至操作模块,以使操作模块进行记账处理。
基于相同的技术构思,本发明实施例还提供了一种记账装置,如图5所示,包括:
模板单元501,用于根据交易数据的类型确定复式记账凭证模板,所述复式记账凭证模板中包括N个记账单元模板,其中N≥1;从所述交易数据中确定所述复式记账凭证模板的账单参数;利用所述复式记账凭证模板以及所有账单参数,生成复式记账凭证;
凭证单元502,用于将所述复式记账凭证进行存储;
操作单元503,用于根据所述复式记账凭证对所述交易数据执行记账操作。
进一步地,所述模板单元501,还用于确定记账操作的操作模式,所述操作模式包括同步模式和异步模式;
所述操作单元503,具体用于若所述操作模式为同步模式,则根据所述复式记账凭证直接执行所述记账操作;若所述操作模式为异步模式,则将所述复式记账凭证的凭证标记缓存入消息队列;异步获取所述消息队列中的凭证标记,根据所述凭证标记确定对应的复式记账凭证,根据所述复式记账凭证执行记账操作。
进一步地,所述凭证单元502,具体用于:
将所述复式记账凭证进行存储,并生成状态标记,将所述状态标记设置为初始状态;
若根据所述复式记账凭证执行记账操作成功,则将所述状态标记更新为成功状态,并反馈成功结果;
若根据所述复式记账凭证执行记账操作失败,则将所述状态标记更新为失败状态,并反馈失败结果。
进一步地,所述操作单元503,具体用于:
对状态标记为初始状态的复式记账凭证进行轮询;
若存在初始状态的持续时间超过阈值的复式记账凭证,则直接对所述超过阈值的复式记账凭证执行记账操作。
进一步地,所述操作单元503,具体用于:
根据所述复式记账凭证确定M个交易账户,其中M≥2;
若所述M个交易账户位于同一个数据库中,则将M个记账操作作为一个本地事务进行处理;
若所述M个交易账户位于不同的数据库中,则通过分布式事务方案处理所述M个记账操作;所述M个记账操作中的任一记账操作为针对一个交易账户,更新所述交易账户的余额,并生成所述交易账户的一条交易流水。
基于相同的原理,本发明还提供一种电子设备,如图6所示,包括:
包括处理器601、存储器602、收发机603、总线接口604,其中处理器601、存储器602与收发机603之间通过总线接口604连接;
所述处理器601,用于读取所述存储器602中的程序,执行下列方法:
根据交易数据的类型确定复式记账凭证模板,所述复式记账凭证模板中包括N个记账单元模板,其中N≥1;
从所述交易数据中确定所述复式记账凭证模板的账单参数;
利用所述复式记账凭证模板以及所有账单参数,生成复式记账凭证;
将所述复式记账凭证进行存储,并根据所述复式记账凭证对所述交易数据执行记账操作。
进一步地,所述处理器601具体用于:
确定记账操作的操作模式,所述操作模式包括同步模式和异步模式;
若所述操作模式为同步模式,则根据所述复式记账凭证直接执行所述记账操作;
若所述操作模式为异步模式,则将所述复式记账凭证的凭证标记缓存入消息队列;异步获取所述消息队列中的凭证标记,根据所述凭证标记确定对应的复式记账凭证,根据所述复式记账凭证执行记账操作。
进一步地,所述处理器601具体用于:
将所述复式记账凭证进行存储,并生成状态标记,将所述状态标记设置为初始状态;
若根据所述复式记账凭证执行记账操作成功,则将所述状态标记更新为成功状态,并反馈成功结果;
若根据所述复式记账凭证执行记账操作失败,则将所述状态标记更新为失败状态,并反馈失败结果。
进一步地,所述处理器601还用于:
对状态标记为初始状态的复式记账凭证进行轮询;
若存在初始状态的持续时间超过阈值的复式记账凭证,则直接对所述超过阈值的复式记账凭证执行记账操作。
进一步地,所述处理器601具体用于:
根据所述复式记账凭证确定M个交易账户,其中M≥2;
若所述M个交易账户位于同一个数据库中,则将M个记账操作作为一个本地事务进行处理;
若所述M个交易账户位于不同的数据库中,则通过分布式事务方案处理所述M个记账操作;所述M个记账操作中的任一记账操作为针对一个交易账户,更新所述交易账户的余额,并生成所述交易账户的一条交易流水。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

Claims (12)

1.一种记账方法,其特征在于,包括:
根据交易数据的类型确定复式记账凭证模板,所述复式记账凭证模板中包括N个记账单元模板,其中N≥1;
从所述交易数据中确定所述复式记账凭证模板的账单参数;
利用所述复式记账凭证模板以及所有账单参数,生成复式记账凭证;
将所述复式记账凭证进行存储,并根据所述复式记账凭证对所述交易数据执行记账操作。
2.如权利要求1所述的方法,其特征在于,所述根据所述复式记账凭证执行记账操作之前,还包括:
确定记账操作的操作模式,所述操作模式包括同步模式和异步模式;
所述根据所述复式记账凭证执行记账操作,包括:
若所述操作模式为同步模式,则根据所述复式记账凭证直接执行所述记账操作;
若所述操作模式为异步模式,则将所述复式记账凭证的凭证标记缓存入消息队列;异步获取所述消息队列中的凭证标记,根据所述凭证标记确定对应的复式记账凭证,根据所述复式记账凭证执行记账操作。
3.如权利要求1或2所述的方法,其特征在于,所述将所述复式记账凭证进行存储,包括:
将所述复式记账凭证进行存储,并生成状态标记,将所述状态标记设置为初始状态;
所述根据所述复式记账凭证执行记账操作之后,还包括:
若根据所述复式记账凭证执行记账操作成功,则将所述状态标记更新为成功状态,并反馈成功结果;
若根据所述复式记账凭证执行记账操作失败,则将所述状态标记更新为失败状态,并反馈失败结果。
4.如权利要求3所述的方法,其特征在于,所述将所述状态标记设置为初始状态之后,还包括:
对状态标记为初始状态的复式记账凭证进行轮询;
若存在初始状态的持续时间超过阈值的复式记账凭证,则直接对所述超过阈值的复式记账凭证执行记账操作。
5.如权利要求1所述的方法,其特征在于,所述根据所述复式记账凭证执行记账操作,包括:
根据所述复式记账凭证确定M个交易账户,其中M≥2;
若所述M个交易账户位于同一个数据库中,则将M个记账操作作为一个本地事务进行处理;
若所述M个交易账户位于不同的数据库中,则通过分布式事务方案处理所述M个记账操作;所述M个记账操作中的任一记账操作为针对一个交易账户,更新所述交易账户的余额,并生成所述交易账户的一条交易流水。
6.一种记账装置,其特征在于,包括:
模板单元,用于根据交易数据的类型确定复式记账凭证模板,所述复式记账凭证模板中包括N个记账单元模板,其中N≥1;从所述交易数据中确定所述复式记账凭证模板的账单参数;利用所述复式记账凭证模板以及所有账单参数,生成复式记账凭证;
凭证单元,用于将所述复式记账凭证进行存储;
操作单元,用于根据所述复式记账凭证对所述交易数据执行记账操作。
7.如权利要求6所述的装置,其特征在于,
所述模板单元,还用于确定记账操作的操作模式,所述操作模式包括同步模式和异步模式;
所述操作单元,具体用于若所述操作模式为同步模式,则根据所述复式记账凭证直接执行所述记账操作;若所述操作模式为异步模式,则将所述复式记账凭证的凭证标记缓存入消息队列;异步获取所述消息队列中的凭证标记,根据所述凭证标记确定对应的复式记账凭证,根据所述复式记账凭证执行记账操作。
8.如权利要求6或7所述的装置,其特征在于,所述凭证单元,具体用于:
将所述复式记账凭证进行存储,并生成状态标记,将所述状态标记设置为初始状态;
若根据所述复式记账凭证执行记账操作成功,则将所述状态标记更新为成功状态,并反馈成功结果;
若根据所述复式记账凭证执行记账操作失败,则将所述状态标记更新为失败状态,并反馈失败结果。
9.如权利要求8所述的装置,其特征在于,所述操作单元,具体用于:
对状态标记为初始状态的复式记账凭证进行轮询;
若存在初始状态的持续时间超过阈值的复式记账凭证,则直接对所述超过阈值的复式记账凭证执行记账操作。
10.如权利要求6所述的装置,其特征在于,所述操作单元,具体用于:
根据所述复式记账凭证确定M个交易账户,其中M≥2;
若所述M个交易账户位于同一个数据库中,则将M个记账操作作为一个本地事务进行处理;
若所述M个交易账户位于不同的数据库中,则通过分布式事务方案处理所述M个记账操作;所述M个记账操作中的任一记账操作为针对一个交易账户,更新所述交易账户的余额,并生成所述交易账户的一条交易流水。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5任一所述的方法。
12.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1~5任一所述方法。
CN201910289088.6A 2019-04-11 2019-04-11 一种记账方法及装置 Pending CN110084692A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910289088.6A CN110084692A (zh) 2019-04-11 2019-04-11 一种记账方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910289088.6A CN110084692A (zh) 2019-04-11 2019-04-11 一种记账方法及装置

Publications (1)

Publication Number Publication Date
CN110084692A true CN110084692A (zh) 2019-08-02

Family

ID=67414832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910289088.6A Pending CN110084692A (zh) 2019-04-11 2019-04-11 一种记账方法及装置

Country Status (1)

Country Link
CN (1) CN110084692A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112037028A (zh) * 2020-09-01 2020-12-04 中国银行股份有限公司 交易明细记录方法及装置
CN112700315A (zh) * 2020-12-25 2021-04-23 中国神华国际工程有限公司 投标担保管理方法和***
CN117934190A (zh) * 2024-03-20 2024-04-26 深圳市雁联计算***有限公司 一种基于消息中间件与分布式锁的异构记账方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567345A (zh) * 2010-12-17 2012-07-11 金蝶软件(中国)有限公司 一种生成记账凭证的方法和装置
CN103577591A (zh) * 2013-11-12 2014-02-12 广东金宇恒科技有限公司 一种生成记账凭证的方法及装置
CN108319691A (zh) * 2018-02-01 2018-07-24 宝付网络科技(上海)有限公司 一种记账方法、账务***及支付***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567345A (zh) * 2010-12-17 2012-07-11 金蝶软件(中国)有限公司 一种生成记账凭证的方法和装置
CN103577591A (zh) * 2013-11-12 2014-02-12 广东金宇恒科技有限公司 一种生成记账凭证的方法及装置
CN108319691A (zh) * 2018-02-01 2018-07-24 宝付网络科技(上海)有限公司 一种记账方法、账务***及支付***

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112037028A (zh) * 2020-09-01 2020-12-04 中国银行股份有限公司 交易明细记录方法及装置
CN112700315A (zh) * 2020-12-25 2021-04-23 中国神华国际工程有限公司 投标担保管理方法和***
CN112700315B (zh) * 2020-12-25 2024-05-14 中国神华国际工程有限公司 投标担保管理方法和***
CN117934190A (zh) * 2024-03-20 2024-04-26 深圳市雁联计算***有限公司 一种基于消息中间件与分布式锁的异构记账方法及***
CN117934190B (zh) * 2024-03-20 2024-05-28 深圳市雁联计算***有限公司 一种基于消息中间件与分布式锁的异构记账方法及***

Similar Documents

Publication Publication Date Title
CN108256994B (zh) 银行账务的生成方法及装置
US11126996B2 (en) Settlement system, server device, terminal device, method and program
US20130030971A1 (en) Systems and methods for allocating funds between multiple banking products
CN110084692A (zh) 一种记账方法及装置
CN101145264A (zh) 一种商务银行卡处理***及其方法
JP6527833B2 (ja) 給与決済連携システムおよび給与決済連携方法
CN110175919A (zh) 交易数据处理方法、装置、设备及计算机可读存储介质
CN111444213B (zh) 基于信贷业务的台账清分***和方法
CN104899740B (zh) 一种本地化的支票信息处理方法及支票信息处理***
CN101221680A (zh) 实现个人贷款最低最高额还款的***及方法
RU2474872C2 (ru) Устройство электронной формы счетоводства и способ записи данных в базу счетов учета, применяемый в нем
CN111369347A (zh) 业务处理方法、装置、设备及存储介质
CN116091258A (zh) 用于对账管理的数据处理方法和装置
CN111401873A (zh) 一种任务创建方法、装置、存储介质和电子设备
CN113222568B (zh) 一种航运业务结算方法、平台、设备、介质及产品
CN111028025B (zh) 基于大数据的票据数据处理方法、装置、设备和介质
JP2019061470A (ja) 取引処理装置、取引処理システム、取引処理方法およびプログラム
CN111325618B (zh) 记账业务处理方法、装置、设备及存储介质
CN111626871A (zh) 数据处理方法、装置、设备及存储介质
CN111061573A (zh) 资源转移方法、装置、电子设备及存储介质
CN111915421B (zh) 一种银行***内部交易的兑换处理方法及***
JP2014211711A (ja) 電子記録債権口座間送金決済管理システム
JP2019095837A (ja) 電子記録債権の割引料補充システム、方法およびプログラム
CN110858361B (zh) 虚拟***管理***、方法、装置及电子设备
JP5582931B2 (ja) 金融取引システムおよびその取引方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190802