电子发票文件生成系统及其数据处理驱动方法

文档序号:8544237阅读:2626来源:国知局
电子发票文件生成系统及其数据处理驱动方法
【技术领域】
[0001]本申请涉及计算机数据处理领域,尤其涉及一种电子发票文件生成系统及其数据处理驱动方法。
【背景技术】
[0002]目前,随着网络的普及,基于智能设备(如计算机、智能手机、平板电脑等)和通信网络的物品展示和交易系统迅猛发展起来,通过互联网进行网上购物和销售也越来越成为一种趋势。
[0003]在网上进行电子交易的系统中,也出现了可以在线生成电子发票的系统。
[0004]图1为一种现有技术中电子发票的生成系统的一种组成示意图。参见图1,该电子发票生成系统包括:数据源监听模块(模块一)、电子发票生成模块(模块二)、电子发票存储模块(模块三)。现有技术的电子发票生成系统中的这些模块都是使用任务驱动的模块,具体的执行步骤如下:
[0005]步骤101、数据源监听模块实时获取需要开电子发票的订单数据,产生驱动电子发票生成模块的任务,将所述驱动电子发票生成模块的任务会存入到数据库中,该任务具有任务标识,该任务标识表示驱动电子发票生成模块。
[0006]步骤102、电子发票生成模块从数据库中查询是否有用于驱动本电子发票生成模块的任务,主要是通过查询任务标识来判断,如果有未被执行的用于驱动本电子发票生成模块的任务,则会调用该任务,触发本电子发票生成模块执行处理。
[0007]步骤103、电子发票生成模块被触发后,由开票数据子模块根据所述任务查询开票数据,推送开票数据到税务系统,等待税务系统推送开票数据成功后,生成用于驱动生成电子发票文件子模块(例如可以为PDF文件,对应的是电子发票PDF文件子模块)的任务,将该任务存入数据库。
[0008]步骤104、生成电子发票文件子模块从数据库中查询是否有用于驱动本生成电子发票文件子模块的任务,如果有且未被执行的这种任务,则会调用该任务,触发本生成电子发票文件子模块执行处理。
[0009]步骤105、生成电子发票文件子模块被任务触发后,产生电子发票文件,例如此处为电子发票PDF文件,之后生成用于驱动pdf格式的电子发票进行签名子模块的任务,将该任务存入数据库。
[0010]步骤106、文件数字签名子模块(例如此处为PDF文件数字签名子模块)从数据库中查询是否有用于驱动本文件数字签名子模块的任务,如果有且未被执行的这种任务,则会调用该任务,触发本文件数字签名子模块执行处理。
[0011]步骤107、文件数字签名子模块被任务触发后,驱动电子发票存储模块的任务,将该任务存入数据库。
[0012]步骤108、电子发票存储模块从数据库中查询是否有用于驱动本电子发票存储模块的任务,如果有且未被执行的这种任务,则会调用该任务,触发本电子发票存储模块执行处理。
[0013]步骤109、电子发票存储模块被触发后,保存签名后电子发票PDF文件。
[0014]但是,上述现有技术主要是采用以任务为驱动的电子发票文件生成方式,随着电子发票业务飞速发展,出现了许多缺点,主要缺点包括:
[0015]由于是任务驱动正流程的运行,生成的任务需要存入数据库,下一模块再从数据库中查询相关任务才能驱动下一流程,而且任务都由线程来执行,如果多条任务并行执行会容易出现线程资源共享,造成任务之间的进程阻挡。随着任务数据越来越庞大,每次从数据库查询的任务数量是有限的,从而造成任务大量积压,导致电子发票文件的生成效率越来越低下。

【发明内容】

[0016]有鉴于此,本发明的主要目的是提供一种电子发票文件生成系统及其数据处理驱动方法,以提高电子发票文件的生成效率。
[0017]本发明的技术方案是这样实现的:
[0018]一种电子发票文件生成系统的数据处理驱动方法,包括:
[0019]在电子发票文件生成系统的模块驱动数据处理的流程中,前一模块在驱动后一模块的数据处理流程时,生成用于驱动后一模块的驱动消息,将该驱动消息发送给消息池;
[0020]所述消息池中存储所述驱动消息与该驱动消息对应驱动的后一模块的映射关系,所述消息池在收到所述驱动消息后,将该驱动消息发送给其对应映射的后一模块;
[0021 ] 后一模块在收到所述驱动消息后,执行该模块的自身的操作。
[0022]优选的,所述驱动消息中至少携带订单数据的订单号,所述各个模块在收到相应的驱动消息后,根据其中的订单号到指定的查询接口查询出本模块所需要的该订单的详细数据。
[0023]优选的,该方法进一步包括:将所述驱动消息发送给消息池后,记录该驱动消息的轨迹信息。
[0024]优选的,所述消息池设置在内存中。
[0025]优选的,所述电子发票文件生成系统包括数据源监听模块、电子发票生成模块、电子发票存储模块,所述电子发票生成模块中包括生成电子发票文件子模块、以及文件数据签名子模块。
[0026]优选的,所述模块驱动数据处理的流程具体包括:
[0027]数据源监听模块获取订单数据,生成用于驱动电子发票生成模块的第一驱动消息,将该第一驱动消息发送给消息池;
[0028]所述消息池中存储所述第一驱动消息与电子发票生成模块的映射关系,所述消息池中在收到所述第一驱动消息后,将该第一驱动消息推送到所述电子发票生成模块;
[0029]所述电子发票生成模块收到所述第一驱动消息后,由开票数据子模块推送开票数据给税务系统,在收到税务系统的成功响应后,生成用于驱动生成电子发票文件子模块的第二驱动消息,将该第二驱动消息发送给消息池;
[0030]所述消息池中存储所述第二驱动消息与生成电子发票文件子模块的映射关系,所述消息池在收到所述第二驱动消息后,将该第二驱动消息推送到所述生成电子发票文件子丰吴块;
[0031]所述生成电子发票文件子模块收到所述第二驱动消息后,生成电子发票文件,之后生成用于驱动文件数据签名子模块的第三驱动消息,将该第三驱动消息发送给消息池;
[0032]所述消息池中存储所述第三驱动消息与文件数字签名子模块的映射关系,所述消息池在收到所述第三驱动消息后,将该第三驱动消息推送到所述文件数字签名子模块;
[0033]所述文件数据签名子模块在收到所述第三驱动消息后,对电子发票文件进行数字签名操作,之后生成用于驱动电子发票存储模块的第四驱动消息,将该第四驱动消息发送给消息池;
[0034]所述消息池中存储所述第四驱动消息与电子发票存储模块的映射关系,所述消息池在收到所述第四驱动消息后,将该第四驱动消息推送到所述电子发票存储模块;
[0035]所述电子发票存储模块收到所述第四驱动消息后,存储所述数字签名后的电子发票文件。
[0036]—种电子发票文件生成系统,包括:
[0037]消息池、数据源监听模块、电子发票生成模块、电子发票存储模块,所述电子发票生成模块中包括开票数据子模块、生成电子发票文件子模块、以及文件数据签名子模块;
[0038]除电子发票存储模块外,所述各模块中包括驱动消息子模块,该驱动消息子模块用于在当前模块驱动后一模块的数据处理流程时,生成用于驱动后一模块的驱动消息,将该驱动消息发送给消息池;
[0039]所述消息池用于存储所述驱动消息与该驱动消息对应驱动的后一模块的映射关系,所述消息池在收到所述驱动消息后,将该驱动消息发送给其对应映射的后一模块;
[0040]除数据源监听模块外,所述各模块中包括订阅消息子模块,所述订阅消息子模块用于在当前模块在收到所述驱动消息后,执行该当前模块的自身的操作。
[0041
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1