实现会计日结算的方法和装置
技术领域
本说明书涉及互联网技术领域,尤其涉及一种实现会计日结算的方法和装置。
背景技术
会计日是会计进行核算和统计的最小单位,表示业务责任发生的日子,根据业务特点,可设置不同的会计日。例如,客户业务的会计日可以采用自然日等。
在会计日结算时,通常需要统计账户、科目发生额和期末余额,并进行试算平衡;此外还会根据会计科目对会计日发生的业务进行累加和汇总,产生业务会计报表。
发明内容
有鉴于此,本说明书提供一种实现会计日结算的方法和装置。
具体地,本说明书是通过如下技术方案实现的:
一种实现会计日结算的方法,包括:
在进行会计日结算时,针对每个结算单位,从数据库读取对应所述结算单位的一条或多条结算任务配置信息,所述结算任务配置信息包括:任务标识和任务参数;
针对每条结算任务配置信息,基于所述任务参数运行所述任务标识对应的任务代码模板,以执行对应的结算任务。
一种实现会计日结算的装置,包括:
配置读取单元,在进行会计日结算时,针对每个结算单位,从数据库读取对应所述结算单位的一条或多条结算任务配置信息,所述结算任务配置信息包括:任务标识和任务参数;
模板运行单元,针对每条结算任务配置信息,基于所述任务参数运行所述任务标识对应的任务代码模板,以执行对应的结算任务。
一种实现会计日结算的装置,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与实现会计日结算的逻辑对应的机器可执行指令,所述处理器被促使:
在进行会计日结算时,针对每个结算单位,从数据库读取对应所述结算单位的一条或多条结算任务配置信息,所述结算任务配置信息包括:任务标识和任务参数;
针对每条结算任务配置信息,基于所述任务参数运行所述任务标识对应的任务代码模板,以执行对应的结算任务。
由以上描述可以看出,本说明书可将结算单位的结算任务以配置信息的形式保存至数据库中,在进行会计日结算时,针对每条结算任务配置信息,可基于任务参数运行任务标识对应的任务代码模板,以执行对应的结算任务,从而可通过新增结算任务配置信息实现新增结算单位,通过删除结算任务配置信息实现下线结算单位,整个实现方案无需定制独立的会计日结算系统,无需修改代码,实现简单,成本较低。
附图说明
图1是本说明书一示例性实施例示出的一种实现会计日结算的方法流程图。
图2是本说明书一示例性实施例示出的一种用于实现会计日结算的装置的一结构示意图。
图3是本说明书一示例性实施例示出的一种实现会计日结算的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在互联网时代,很多企业都倾向于构建平台化战略,联合多个合作方实现共同出资,共同盈利。在进行会计日结算时,可以以合作方为结算单位,分别为每个合作方进行结算。
例如,某金融平台下属有5家子公司,这5家子公司都是合作方,在进行会计日结算时,需要分别为这5家子公司进行结算。
然而,随着平台化战略的深入,合作方的数量会越来越多,并且合作方式也越来越多,很多合作方都需要定制个性化的结算任务,如何在新增合作方或合作方的结算需求有变化时便捷的实现会计日结算已成为亟待解决的问题。
图1是本说明书一示例性实施例示出的一种实现会计日结算的方法流程图。
请参考图1,所述实现会计日结算的方法可包括以下步骤:
步骤102,在进行会计日结算时,针对每个结算单位,从数据库读取对应所述结算单位的一条或多条结算任务配置信息,所述结算任务配置信息包括:任务标识和任务参数。
在本实施例中,可根据平台的业务特点确定结算单位。针对单一币种的业务,可以以合作方为结算单位,即每个合作方都是一个结算单位。例如,子公司1是一个结算单位,子公司2是另一个结算单位。
针对多币种的业务,可以根据合作方和币种划分结算单位。例如,子公司1-人民币是一个结算单位,子公司1-美元是另一个结算单位等。
步骤104,针对每条结算任务配置信息,基于所述任务参数运行所述任务标识对应的任务代码模板,以执行对应的结算任务。
在本实施例中,由于会计日结算任务较为固定,所以可预先通过代码编写各种结算任务的模板,例如,科目汇总模板、发生额核对模板、余额核对模板、发送通知模板等。在本例中,可将所述模板称为任务代码模板,所述任务代码模板中的参数为空,例如,发送通知任务代码模板中的目标系统为空等。
在本实施例中,针对每条结算任务配置信息,可查找任务标识对应的任务代码模板,然后可将任务参数对应添加到所述任务代码模板中,并运行所述任务代码模板,以执行对应的结算任务,实现会计日结算。
下面分别从结算任务配置信息的配置、会计日的结算两个方面来描述本说明书的具体实现过程。
一、结算任务配置信息的配置
在本实施例中,可以通过结算任务配置信息的配置来实现结算任务的新增和删除。
例如,当新增合作方时,可将该新增合作方需要执行的结算任务对应的结算任务配置信息保存到数据库;当已有合作方新增结算任务时,也可以将该新增结算任务对应的结算任务配置信息保存到数据库。
再例如,当合作方下线时,可将数据库中对应该下线合作方的结算任务配置信息删除;当已有合作方不再需要某项已有的结算任务时,也可以删除数据库中存储的该已有结算任务对应的结算任务配置信息。
在本实施例中,所述结算任务配置信息可以包括:合作方标识、币种代码、任务标识、任务优先级和任务参数。
其中,所述合作方标识可用于标识唯一对应的合作方,所述合作方标识可以为合作方ID。所述币种代码可用于标识唯一对应的币种,例如,币种代码156代表人民币,币种代码840代表美元等。所述任务标识可用于标识唯一对应的任务代码模板,例如,任务标识“MESSAGE_NOTIFY”用于标识发送通知任务代码模板。所述任务优先级可用于确定对应结算任务的执行顺序,先执行任务优先级高的结算任务,后执行任务优先级低的结算任务。所述任务参数是任务代码模板在运行时所需的参数。
在本实施例中,结算任务配置信息的格式可以为<合作方标识,币种代码,任务标识,任务优先级,{任务参数}>。举例来说,结算任务配置信息<88801,156,MESSAGE_NOTIFY,10,{“system”:“acctrans”,“operation”:“dailycut”}>表示合作方ID是88801,币种是人民币,任务标识是MESSAGE_NOTIFY,任务优先级是10,任务参数中的目标系统是acctrans,发送给目标系统的操作是dailycut。
在本实施例中,以新增合作方为例,可由业务人员录入新增合作方所需结算任务的结算任务配置信息。系统在接收到所述结算任务配置信息后,可进行校验,若校验通过,则可将所述结算任务配置信息存储到数据库中。
在本实施例中,在进行校验时,可分别对结算任务配置信息中的每一项信息进行校验。例如,校验是否存在合作方ID对应的合作方,校验是否存在币种代码对应的币种,校验是否存在任务标识对应的任务代码模板,校验任务参数是否合法等。若每一项信息都通过校验,则可确认结算任务配置信息通过校验。若有任意一项信息未通过校验,则可确认结算任务配置信息未通过校验,可返回错误提示,以提示业务人员进行修改。
二、会计日的结算
在本实施例中,以自然日是会计日为例,可在每日零时触发前一日的结算。在进行结算时,可从数据库中读取存储的所有结算任务配置信息。
以合作方联合币种确定唯一结算单位为例,针对每个结算单位,在读取到对应的结算任务配置信息后,可先根据任务优先级确定各个结算任务的执行顺序,然后按照优先级从高到低的顺序执行各个结算任务。一般而言,先执行优先级最高的结算任务,当优先级最高的结算任务均执行完毕后,执行优先级次高的结算任务,直至执行完毕所有结算任务。
在本实施例中,对于不同的结算单位,可并行执行其结算任务。对于同一个结算单位,若存在优先级相同的结算任务,也可以并行执行优先级相同的结算任务。
在本实施例中,针对未执行的结算任务配置信息,可根据任务标识和任务代码模板的对应关系,查找到任务标识对应的任务代码模板,然后将任务参数对应添加到所述任务代码模板中,并运行所述任务代码模板,以执行对应的结算任务。
其中,任务标识和任务代码模板的对应关系可根据语言和框架的不同而采用不同的实现方式。例如,若采用sofaboot框架,可在xml配置文件里面维护任务标识和任务代码模板的对应关系。
举例来说,假设新增标识为88801的合作方,该合作方需要配置两个结算任务,这两个结算任务的结算任务配置信息如下:
<88801,156,MESSAGE_NOTIFY,10,{“system”:“acctrans”,“operation”:“dailycut”}>;
<88801,156,TITLE_DAILY,20,{}>。
为便于分析,本实施例将上述两个结算任务配置信息整理为表1所示的表格。
合作方标识 |
88801 |
88801 |
币种代码 |
156 |
156 |
任务标识 |
MESSAGE_NOTIFY |
TITLE_DAILY |
任务优先级 |
10 |
20 |
任务参数 |
“system”:“acctrans”,“operation”:“dailycut” |
空 |
表1
在这个例子中,发送通知的结算任务(MESSAGE_NOTIFY)的优先级是10,高于分录汇总到科目的结算任务(TITLE_DAILY)的优先级20。所以可以先执行发通知的结算任务。
在执行发送通知的结算任务时,查找任务标识MESSAGE_NOTIFY对应的任务代码模板,然后将目标系统“acctrans”和操作“dailycut”添加到该任务代码模板中,并运行该任务代码模板,即发送结算的通知给acctrans系统。值得注意的是,在发送通知时,还会携带合作方标识88801和币种代码156。
在本例中,在接收到目标系统acctrans返回的完成消息时,可以确认发送通知的结算任务执行完毕,可执行分录汇总到科目的结算任务。
类似的,在执行分录汇总到科目的结算任务时,查找TITLE_DAILY对应的任务代码模板,由于任务参数为空,所以可以执行运行查找到的任务代码模板以执行对应的结算任务。
在本例中,当分录汇总到科目的结算任务执行完毕时,可确认已完成合作方88801-人民币的所有结算任务。
可选的,本实施例中,在执行结算任务的过程中,还可以将该结算任务的任务状态记录到任务日志中,基于任务日志中的任务状态可确认对应的结算任务是否执行完毕,所述任务日志也可用于后续人工排查。
仍以前述标识为88801的合作方为例,在执行高优先级的发送通知结算任务时,可在消息发送完毕后,记录该结算任务的任务状态是任务进行中。当接收到目标系统返回的完成消息时,将该结算任务的任务状态更新为已完成。在查找到TITLE_DAILY对应的任务代码模板后,可将该结算任务的任务状态记录为任务进行中,在分录汇总到科目执行完毕后,可将该结算任务的任务状态更新为已完成。
在本实施例中,任务日志可包括:结算日期、任务标识、合作方标识、币种和任务状态。当然,根据业务需要,也可以增加其他信息,例如任务优先级等,本说明书对此不作特殊限制。
由以上描述可以看出,本说明书可将结算单位的结算任务以配置信息的形式保存至数据库中,在进行会计日结算时,针对每条结算任务配置信息,可基于任务参数运行任务标识对应的任务代码模板,以执行对应的结算任务,从而可通过新增结算任务配置信息实现新增结算单位,通过删除结算任务配置信息实现下线结算单位,整个实现方案无需定制独立的会计日结算系统,无需修改代码,实现简单,成本较低。
与前述实现会计日结算的方法实施例相对应,本说明书还提供了实现会计日结算的装置的实施例。
本说明书实现会计日结算的装置的实施例可以应用在服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在服务器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本说明书实现会计日结算的装置所在服务器的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的服务器通常根据该服务器的实际功能,还可以包括其他硬件,对此不再赘述。
图3是本说明书一示例性实施例示出的一种实现会计日结算的装置的框图。
请参考图3,所述实现会计日结算的装置200可以应用在前述图2所示的服务器中,包括有:配置读取单元201、模板运行单元202、配置校验单元203以及日志记录单元204。
其中,配置读取单元201,在进行会计日结算时,针对每个结算单位,从数据库读取对应所述结算单位的一条或多条结算任务配置信息,所述结算任务配置信息包括:任务标识和任务参数;
模板运行单元202,针对每条结算任务配置信息,基于所述任务参数运行所述任务标识对应的任务代码模板,以执行对应的结算任务。
可选的,结算任务配置信息还包括:任务优先级,所述任务优先级用于确定所述对应结算任务的执行顺序。
可选的,所述模板运行单元202,针对优先级相同的结算任务,启动多个线程并行执行所述结算任务。
配置校验单元203,在接收结算任务配置信息后,对所述结算任务配置信息进行校验;若校验通过,则将所述结算任务配置信息存储到所述数据库中。
可选的,所述对结算任务配置信息进行校验,包括:
判断是否存在任务标识对应的任务代码模板;
判断任务参数是否合法;
若存在所述任务标识对应的任务代码模板,且所述任务参数合法,则确认所述结算任务配置信息通过校验。
日志记录单元204,在执行所述结算任务的过程中,将所述结算任务的任务状态记录到任务日志中。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
与前述实现会计日结算的方法的实施例相对应,本说明书还提供一种实现会计日结算的装置,该装置包括:处理器以及用于存储机器可执行指令的存储器。其中,处理器和存储器通常借由内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与实现会计日结算的逻辑对应的机器可执行指令,所述处理器被促使:
在进行会计日结算时,针对每个结算单位,从数据库读取对应所述结算单位的一条或多条结算任务配置信息,所述结算任务配置信息包括:任务标识和任务参数;
针对每条结算任务配置信息,基于所述任务参数运行所述任务标识对应的任务代码模板,以执行对应的结算任务。
可选的,所述结算任务配置信息还包括:任务优先级,所述任务优先级用于确定所述对应结算任务的执行顺序。
可选的,还包括:
针对优先级相同的结算任务,启动多个线程并行执行所述结算任务。
可选的,还包括:
在接收结算任务配置信息后,对所述结算任务配置信息进行校验;
若校验通过,则将所述结算任务配置信息存储到所述数据库中。
可选的,所述对结算任务配置信息进行校验,包括:
判断是否存在任务标识对应的任务代码模板;
判断任务参数是否合法;
若存在所述任务标识对应的任务代码模板,且所述任务参数合法,则确认所述结算任务配置信息通过校验。
可选的,还包括:
在执行所述结算任务的过程中,将所述结算任务的任务状态记录到任务日志中。
与前述实现会计日结算的方法的实施例相对应,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下步骤:
在进行会计日结算时,针对每个结算单位,从数据库读取对应所述结算单位的一条或多条结算任务配置信息,所述结算任务配置信息包括:任务标识和任务参数;
针对每条结算任务配置信息,基于所述任务参数运行所述任务标识对应的任务代码模板,以执行对应的结算任务。
可选的,所述结算任务配置信息还包括:任务优先级,所述任务优先级用于确定所述对应结算任务的执行顺序。
可选的,还包括:
针对优先级相同的结算任务,启动多个线程并行执行所述结算任务。
可选的,还包括:
在接收结算任务配置信息后,对所述结算任务配置信息进行校验;
若校验通过,则将所述结算任务配置信息存储到所述数据库中。
可选的,所述对结算任务配置信息进行校验,包括:
判断是否存在任务标识对应的任务代码模板;
判断任务参数是否合法;
若存在所述任务标识对应的任务代码模板,且所述任务参数合法,则确认所述结算任务配置信息通过校验。
可选的,还包括:
在执行所述结算任务的过程中,将所述结算任务的任务状态记录到任务日志中。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。