一种金融报告文档的自动生成方法
文献发布时间:2023-06-19 19:20:08
技术领域
本发明涉及数据处理技术领域,具体来说是一种金融报告文档的自动生成方法。
背景技术
在投行业务系统中,经常需要处理大量的涉及金融研究类型的报告,这些报告具有内容体量大、样式布局灵活,并且包含文本和图表等较丰富的展现元素,要求在线实时处理时间短等特点。
现有投行业务报告文档一般处理过程如下:先预先定制固定的格式的文档模板文件,如包含固定标题段落、图片位置和字体等格式,设定需要填充的数据变量;再查询相关报告数据,并通过文件操作将报告相应的模板文件读取到内存,然后将报告数据通过对模板文件中的处理进行替换并生成报告的word文件;最后对报告文件进行进一步的处理,将word文件转换在pdf,并且存储在指定的文件系统中。
另外,还有借助的报告生成工具的方法,其处理速度非常慢,无法应对大量报告文档实时处理需求,而且不能满足样式布局灵活的报告文档,也无法处理展示元素丰富要求的业务需求。
综上所述,目前这些报告文档处理系统的功能比较单一,只能完成较简单,格式固定的文档处理。
而随着投行业务的不断发展,对投行报告文档处理的要求也进一步的提高。这些报告具有内容体量大、样式布局灵活,并且包含文本和图表等较丰富的展现元素,要求在线实时处理时间短等特点。借助的报告生成工具处理速度太慢而无法应对大量报告文档实时处理需求,而且不能满足样式布局灵活的报告文档,也无法处理展示元素丰富要求的业务需求,还有一些业务文档内容模块组合要求灵活,并且要求能够自由组合段落和章节标题条款的排序。对于这些需求,目前的文档处理系统已经无可适从。
发明内容
本发明的目的是为了解决现有技术中难以满足金融报告文档生成要求的缺陷,提供一种金融报告文档的自动生成方法来解决上述问题。
为了实现上述目的,本发明的技术方案如下:
一种金融报告文档的自动生成方法,,包括以下步骤:
11)报告文档自动生成请求的分布式处理:获取报告文档自动生成请求,并进行分布式处理;
12)报告文档的准备处理:根据请求内容基于文档内容数据处理任务和文档生成任务准备报告文档生成数据;
13)报告文档的生成:根据报告文档生成数据基于报告生成系统模块,自动生成报告文档。
所述报告文档自动生成请求的分布式处理包括以下步骤:
21)获取用户在前端向系统发送生成报告的请求,系统接收到请求后立即生成任务单并且下发处理;
22)系统将收集的任务单存储在任务队列中,并根据定义好的任务优先级进行排序;
23)系统将任务队列的任务单分散到多台服务器进行处理,提升任务并发处理能力并满足负载均衡要求;
24)进行限流和熔断控制:在任务分发过程中,如果请求任务在单位时间内超出了服务器实际处理能力,系统启动流量的控制;当系统可使用资源接近上限阀值时,系统启动熔断的操作,拒绝新任务的接收处理,防止处理的任务过多导致系统崩溃,直到前置任务被处理完成之后,再次启动新任务的接收处理;
其中,熔断处理逻辑如下:
系统计算单位时间,即滑动窗口时间内接收用户请求的数量和内部任务执行失败比例,当超过预设阀值后自动拒绝新用户的请求,当计算数据低于阀值时系统继续接收用户请求;
限流处理的逻辑如下:
系统内部对处理的任务进行计数,计算在单位时间,即滑动窗口时间内执行成功和失败的任务的数量和比例,当超过阀值后对后续用户的请求任务进行延长等待超时时间,同时延长调度任务的间隔时间,即减少任务调度的频率;当单位时间内任务执行的失败率下降时,系统缩减请求任务的等待超时时间,并且将任务调度频率调高,增加任务并发处理数据;
延长等待超时时间计算方法如下:
当上一个周期的任务执行超时时,下一个周期的任务自动将超时时间和延时时间延长原来的一倍的时间进行处理,其中最高不超过三倍,当前一个周期任务执行通过时,下一个周期的任务执行的超时间和延时时间自动缩短一半,其中,最小不底于初始值的一半;
25)系统完成报告处理的任务后,将生成的报告文档存储到指的文件系统服务器中。
所述报告文档的准备处理包括以下步骤:
31)系统获得前端用户发出的报告文档生成请求,系统根据请求参数自动生成两条任务,并将任务放到任务队列中,并且支持多用户并发请求:其中,两条任务为文档内容数据处理任务和文档生成任务;
32)任务调度管理器将任务在分布式处理服务器上进行任务分配,分配规则按任务优先级顺序从高到低排序,服务器间进行任务抢占式分配,并且根据各个服务器系统资源的情况确保负载均衡;
33)系统通过任务调度引擎对任务进行顺序调度,首先调用数据处理层的数据计算接口,并执行文档内容数据处理任务;
34)数据处理完成之后,将处理结果存储到数据库;此时对当前任务进行标记,标记该任务已经完成;
35)当系统检测到文档内容数据处理任务完成后,任务调度引擎将调度执行文档生成任务工作,在文档生成任务完成之后,系统将标记当前任务为完成;
其中,文档生成任务处理流程如下:
351)预定义文档模板,并将文档模板存储于指定的文件系统中;
352)在数据库中查询当前预生成文档对应的内容数据;
353)对查询出来的数据结果按文档结构进行装配;
354)根据数据生成相应的图表并进行排序;
355)选择对应的文档模板进行段落内容填充;
356)对文档段落内容、图表进行合并、修正、去除空字段;
357)添加目录、页眉页脚、标注、附注和封面内容;
358)按要求对文档格式进行转换;
359)将文档写入文件系统并记录文档相应的信息;
36)等待用户通过系统界面执行查询预览或下载报告操作。
所述报告文档的生成包括以下步骤:
41)当任务调度引擎识别文档内容数据任务完成之后,将自动调度文档生成任务,文档生成任务是将对应的文档内容数据根据预定义的文档模型结构进行数据查询、分类和组合,生成对应结构数据,并将该数据导入对应的模板中生成文档;
42)进行文档生成处理:
421)预定义文档模板,将模板按章节进行拆分成独立的文件,用标记符号标记文档章节、标题、段落以及图片对位置信息,将文档模板存储于指定的文件系统中;
422)参数初始化,对获取报告数据的参数进行初始化,包括报告业务参数、文件参数和模板径路参数;
423)文档内容数据查询,在数据库中查询出当前预生成文档对应的全部内容数据,系统采用多线程同步分页查询方法对数据进行查询;
多线程同步分页查询方法如下:
对预查询的数据进行统计;根据统计结果按每页最多返回1000条记录分成若干页;通过多线程同步处理,对每页数据进行单独查询;各个线程间运行保持在2000毫秒的时间间隔,确保数据库连接不会过于频繁;将每页查询返回的结果数据进行合并,并生成完整的数据结果集;
43)文档内容数据排序,报告数据根据不同的业务逻辑生成的对应的结果,每个章节实际的段落和标题数据小于或等于设置的数量;
44)对查询出来的数据结果按文档结构进行装配,报告数据查询完成之后,对数据按照即定的结构进行数据组装,以适配后继报告模板数据填充操作;
45)报告文档的自动生成。
所述报告文档的自动生成包括以下步骤:
51)进行图表生成的处理:
511)预定义图表模板,根据图表展示的特征预定义相应的图表模板并存放到文件系统中;
512)图表数据填充,从查询结果中筛选相关的图表数据对相应的图表模板进行数据填充;
513)进行HTML转化,通过第三方图表库ECharts生成对应的js并嵌入到html中,生成可展示该图表的html文件,并存入到相应的文件系统中;
514)图表自定义,通过自定义方式对无固定形式的图表进行生成;
515)截图处理:应用浏览器截图工具进行对浏览器中展示的图表进行截图展示;
516)图片存储:截图完成之后根据配置的图片存储路径构建图片存储的规则将图表存入到指定的目录中;
52)选择对应的文档模板进行段落内容填充:
521)报告模板获取,根据模板的路径获取相应的报告模板,报告模板以章节为单位获取多个模板文件;
522)图表填充,将指定目录下存储的图表截图文件写入相应的报告模板中对应的标记符号的位置当中,并对当前标记符号进行替换,当图片不存在时,将该标记符号替换成空字符串标记符等待进一步的处理;
523)文本填充,将已经组装的好的报告文本数据通过FREEMARK技术填充到相应的文档模板中,形成单个章节的word报告文件。此时的报告为以章节为单位的并且包含文本和图片的word文档;
524)对文档段落内容、图表等进行合并、修正、去除空字段;文档合并,将多个章节的文件进行合并成生一个文档;文档修正,对文档中的一些特殊字符等进行格式处理;去除空字段,在图表写入文档以及文本内容填充文档时,对缺失的图表或标题段落等用空字段进行标记,这些标记在当前环节进行统一清除并删除所占的行;
53)添加目录、页眉页脚、标注、附注和封面内容,在文档合并之后,在文档的头部生成目录和生成封面封底、页眉页脚、脚注附注内容;
54)按要求对文档格式进行转换;
55)将文档写入文件系统并记录文档相应的信息。
有益效果
本发明的一种金融报告文档的自动生成方法,与现有技术相比能够实时高效处理内容体量大的文档,灵活组合相关的段落条款、图片以及自由的排序章节和标题,处理特殊字符,样式布局多样化和丰富的图文展示的文档,满足了投行业务发展需要,自动实现金融报告文档的生成。
本发明能够实时高效处理内容体量大的文档;能够灵活组合相关的段落条款、图片以及自由的排序章节和标题;能够处理特殊字符,样式布局多样化和丰富的图文展示的文档。
附图说明
图1为本发明的方法顺序图;
图2为本发明所涉及的分布式处理逻辑图。
具体实施方式
为使对本发明的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:
如图1所示,本发明所述的一种金融报告文档的自动生成方法,包括以下步骤:
第一步,报告文档自动生成请求的分布式处理:获取报告文档自动生成请求,并进行分布式处理。为了提高报告生成应用系统的高可用性和高并发性,在此采用分式式的设计方案。
如图2所示,报告文档自动生成请求的分布式处理包括以下步骤:
(1)获取用户在前端向系统发送生成报告的请求,系统接收到请求后立即生成任务单并且下发处理。
(2)系统将收集的任务单存储在任务队列中,并根据定义好的任务优先级进行排序。
(3)系统将任务队列的任务单分散到多台服务器进行处理,提升任务并发处理能力并满足负载均衡要求。
(4)进行限流和熔断控制:在任务分发过程中,如果请求任务在单位时间内超出了服务器实际处理能力,系统启动流量的控制;当系统可使用资源接近上限阀值时,系统启动熔断的操作,拒绝新任务的接收处理,防止处理的任务过多导致系统崩溃,直到前置任务被处理完成之后,再次启动新任务的接收处理;
其中,熔断处理逻辑如下:
系统计算单位时间,即滑动窗口时间内接收用户请求的数量和内部任务执行失败比例,当超过预设阀值后自动拒绝新用户的请求,当计算数据低于阀值时系统继续接收用户请求;
限流处理的逻辑如下:
系统内部对处理的任务进行计数,计算在单位时间,即滑动窗口时间内执行成功和失败的任务的数量和比例,当超过阀值后对后续用户的请求任务进行延长等待超时时间,同时延长调度任务的间隔时间,即减少任务调度的频率;当单位时间内任务执行的失败率下降时,系统缩减请求任务的等待超时时间,并且将任务调度频率调高,增加任务并发处理数据;
延长等待超时时间计算方法如下:
当上一个周期的任务执行超时时,下一个周期的任务自动将超时时间和延时时间延长原来的一倍的时间进行处理,其中最高不超过三倍,当前一个周期任务执行通过时,下一个周期的任务执行的超时间和延时时间自动缩短一半,其中,最小不底于初始值的一半。
(5)系统完成报告处理的任务后,将生成的报告文档存储到指的文件系统服务器中。
第二步,报告文档的准备处理:根据请求内容基于文档内容数据处理任务和文档生成任务准备报告文档生成数据。
通过对报告数据处理和报告文档生成事务进行任务化和队列化管理,有利于对任务优先级的处理和统筹调度,而且也有利于任务的异步化处理,同时也有便于实现各个任务执行服务器间实现负载均衡,保持资源利用最大化。
(1)系统获得前端用户发出的报告文档生成请求,系统根据请求参数自动生成两条任务,并将任务放到任务队列中,并且支持多用户并发请求:其中,两条任务为文档内容数据处理任务和文档生成任务。
(2)任务调度管理器将任务在分布式处理服务器上进行任务分配,分配规则按任务优先级顺序从高到低排序,服务器间进行任务抢占式分配,并且根据各个服务器系统资源的情况确保负载均衡。
(3)系统通过任务调度引擎对任务进行顺序调度,首先调用数据处理层的数据计算接口,并执行文档内容数据处理任务。
(4)数据处理完成之后,将处理结果存储到数据库;此时对当前任务进行标记,标记该任务已经完成。
(5)当系统检测到文档内容数据处理任务完成后,任务调度引擎将调度执行文档生成任务工作,在文档生成任务完成之后,系统将标记当前任务为完成;
其中,文档生成任务处理流程如下:
A1)预定义文档模板,并将文档模板存储于指定的文件系统中;
A2)在数据库中查询当前预生成文档对应的内容数据;
A3)对查询出来的数据结果按文档结构进行装配;
A4)根据数据生成相应的图表并进行排序;
A5)选择对应的文档模板进行段落内容填充;
A6)对文档段落内容、图表进行合并、修正、去除空字段;
A7)添加目录、页眉页脚、标注、附注和封面内容;
A8)按要求对文档格式进行转换;
A9)将文档写入文件系统并记录文档相应的信息。
(6)等待用户通过系统界面执行查询预览或下载报告操作。
第三步,报告文档的生成:根据报告文档生成数据基于报告生成系统模块,自动生成报告文档。通过对报告文档生成模板化处理,便于报告文档的快速生成,提高生产效率,并且也使报告文档原始数据便于结构化,支持系统功能的横向扩展。
(1)当任务调度引擎识别文档内容数据任务完成之后,将自动调度文档生成任务,文档生成任务是将对应的文档内容数据根据预定义的文档模型结构进行数据查询、分类和组合,生成对应结构数据,并将该数据导入对应的模板中生成文档。
(2)进行文档生成处理:
B1)预定义文档模板,将模板按章节进行拆分成独立的文件,用标记符号标记文档章节、标题、段落以及图片对位置信息,将文档模板存储于指定的文件系统中;
B2)参数初始化,对获取报告数据的参数进行初始化,包括报告业务参数、文件参数和模板径路参数;
B3)文档内容数据查询,在数据库中查询出当前预生成文档对应的全部内容数据,系统采用多线程同步分页查询方法对数据进行查询;
多线程同步分页查询方法如下:
对预查询的数据进行统计;根据统计结果按每页最多返回1000条记录分成若干页;通过多线程同步处理,对每页数据进行单独查询;各个线程间运行保持在2000毫秒的时间间隔,确保数据库连接不会过于频繁;将每页查询返回的结果数据进行合并,并生成完整的数据结果集。
(3)文档内容数据排序,报告数据根据不同的业务逻辑生成的对应的结果,每个章节实际的段落和标题数据小于或等于设置的数量。
(4)对查询出来的数据结果按文档结构进行装配,报告数据查询完成之后,对数据按照即定的结构进行数据组装,以适配后继报告模板数据填充操作。
(5)报告文档的自动生成。
首先,进行图表生成的处理:
C1)预定义图表模板,根据图表展示的特征预定义相应的图表模板并存放到文件系统中;
C2)图表数据填充,从查询结果中筛选相关的图表数据对相应的图表模板进行数据填充;
C3)进行HTML转化,通过第三方图表库ECharts生成对应的js并嵌入到html中,生成可展示该图表的html文件,并存入到相应的文件系统中;
C4)图表自定义,通过自定义方式对无固定形式的图表进行生成;
C5)截图处理:应用浏览器截图工具进行对浏览器中展示的图表进行截图展示;
C6)图片存储:截图完成之后根据配置的图片存储路径构建图片存储的规则将图表存入到指定的目录中。
其次,选择对应的文档模板进行段落内容填充:
D1)报告模板获取,根据模板的路径获取相应的报告模板,报告模板以章节为单位获取多个模板文件;
D2)图表填充,将指定目录下存储的图表截图文件写入相应的报告模板中对应的标记符号的位置当中,并对当前标记符号进行替换,当图片不存在时,将该标记符号替换成空字符串标记符等待进一步的处理;
D3)文本填充,将已经组装的好的报告文本数据通过FREEMARK技术填充到相应的文档模板中,形成单个章节的word报告文件。此时的报告为以章节为单位的并且包含文本和图片的word文档;
D4)对文档段落内容、图表等进行合并、修正、去除空字段;文档合并,将多个章节的文件进行合并成生一个文档;文档修正,对文档中的一些特殊字符等进行格式处理;去除空字段,在图表写入文档以及文本内容填充文档时,对缺失的图表或标题段落等用空字段进行标记,这些标记在当前环节进行统一清除并删除所占的行。
再后,添加目录、页眉页脚、标注、附注和封面内容,在文档合并之后,在文档的头部生成目录和生成封面封底、页眉页脚、脚注附注内容;按要求对文档格式进行转换;将文档写入文件系统并记录文档相应的信息。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。
- 一种接口文档的自动生成方法及终端设备
- 一种根据接口文档自动生成文件的方法及装置
- 基于自然语言处理的金融报告自动生成方法
- 由数据自动生成报告文档的方法及系统