CN116611418B - 基于在线编辑的报告处理方法、装置、电子设备及介质 - Google Patents
基于在线编辑的报告处理方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN116611418B CN116611418B CN202310863178.8A CN202310863178A CN116611418B CN 116611418 B CN116611418 B CN 116611418B CN 202310863178 A CN202310863178 A CN 202310863178A CN 116611418 B CN116611418 B CN 116611418B
- Authority
- CN
- China
- Prior art keywords
- report
- content
- new
- data
- contents
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 9
- 230000000007 visual effect Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 3
- 230000002085 persistent effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种基于在线编辑的报告处理方法、装置、电子设备及介质。该方法包括:获取幻灯片式表单,在线添加新的报告章节及报告内容,并对报告章节及报告内容进行编辑;在创建新的报告后,建立新的报告与前置报告之间的继承关系;将前置报告中的全部报告章节和报告内容与新的报告中的报告章节和报告内容之间进行交集差集操作;利用前置报告中相同报告内容对应的数据对新的报告中相同报告内容对应的数据进行覆盖,以使新的报告继承前置报告的相同报告内容;当前置报告中的报告内容发生更新时,利用更新后的报告内容的数据对具有继承关系的新的报告中的报告内容进行更新。本申请提升了报告制作的效率和便捷性,提高了数据处理的性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于在线编辑的报告处理方法、装置、电子设备及介质。
背景技术
表单流程是许多组织进行数据收集和分析的重要工具。通常,这种流程以问卷调查的形式进行,包括编辑问卷、发布问卷、回收问卷和数据分析。目前市面主流的问卷工具都支持问卷发放方从题型库中选取题型,然后生成问卷。这些工具通常以平铺式的设计形式提供问卷,即所有的题目都按顺序从上往下排列,以便于问卷填写方快速完成。
然而,这种方法在某些情况下可能不够灵活或不够满足特定需求。例如,当需要创建出于演示目的报告类型的表单时,现有的工具可能就无法满足需求。此外,现有的表单系统大多是相互独立的,没有前后之间的继承关系,这限制了根据前置表单继续填写其他表单的可能性。这对于那些需要填写大量、频繁更新或相似内容的表单的用户来说,可能会造成大量重复工作和效率低下。
特别的,业务方有时可能希望基于统一的报告模板下发报告,以拉齐报告标准,并希望能够基于结构化内容进行进一步的数据分析。此外,他们可能希望允许填写方自由添加报告章节及内容,并可以对内容进行排版调整。还有,他们可能希望报告与报告之间有增量继承的关系,即填写方在填写报告时可以在上一份报告内容的基础上补充新的内容。
目前的表单工具大多为平铺样式,且一旦生成,格式固定,不支持填写方做个性化调整。表单与表单之间也无法关联。在线协同幻灯片类产品虽然提供了某种形式的排版和编辑能力,但是它们无法满足统一报告模板下发和结构化报告内容的需求。
发明内容
有鉴于此,本申请实施例提供了一种基于在线编辑的报告处理方法、装置、电子设备及介质,以解决现有技术存在的灵活性差,使用不便,效率低,无法实现个性化编辑,无法自动更新报告内容的问题。
本申请实施例的第一方面,提供了一种基于在线编辑的报告处理方法,包括:获取报告发放方对报告模板进行在线编辑后生成的幻灯片式表单,其中,报告模板中包含报告提纲、报告章节和报告内容;基于幻灯片式表单在线添加新的报告章节及报告内容,并对幻灯片式表单中的报告章节及报告内容进行编辑;在创建新的报告后,建立新的报告与前置报告之间的继承关系,利用前置报告的标识获取前置报告中的全部报告章节和报告内容;将前置报告中的全部报告章节和报告内容与新的报告中的报告章节和报告内容之间进行交集差集操作,以便获取前置报告与新的报告之间的相同报告内容;利用前置报告中相同报告内容对应的数据对新的报告中相同报告内容对应的数据进行覆盖,以使新的报告继承前置报告的相同报告内容;当前置报告中的报告内容发生更新时,利用更新后的报告内容的数据对具有继承关系的新的报告中的报告内容进行更新,以便更新新的报告的版本。
本申请实施例的第二方面,提供了一种基于在线编辑的报告处理装置,包括:获取模块,被配置为获取报告发放方对报告模板进行在线编辑后生成的幻灯片式表单,其中,报告模板中包含报告提纲、报告章节和报告内容;编辑模块,被配置为基于幻灯片式表单在线添加新的报告章节及报告内容,并对幻灯片式表单中的报告章节及报告内容进行编辑;建立模块,被配置为在创建新的报告后,建立新的报告与前置报告之间的继承关系,利用前置报告的标识获取前置报告中的全部报告章节和报告内容;操作模块,被配置为将前置报告中的全部报告章节和报告内容与新的报告中的报告章节和报告内容之间进行交集差集操作,以便获取前置报告与新的报告之间的相同报告内容;覆盖模块,被配置为利用前置报告中相同报告内容对应的数据对新的报告中相同报告内容对应的数据进行覆盖,以使新的报告继承前置报告的相同报告内容;更新模块,被配置为当前置报告中的报告内容发生更新时,利用更新后的报告内容的数据对具有继承关系的新的报告中的报告内容进行更新,以便更新新的报告的版本。
本申请实施例的第三方面,提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法的步骤。
本申请实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过获取报告发放方对报告模板进行在线编辑后生成的幻灯片式表单,其中,报告模板中包含报告提纲、报告章节和报告内容;基于幻灯片式表单在线添加新的报告章节及报告内容,并对幻灯片式表单中的报告章节及报告内容进行编辑;在创建新的报告后,建立新的报告与前置报告之间的继承关系,利用前置报告的标识获取前置报告中的全部报告章节和报告内容;将前置报告中的全部报告章节和报告内容与新的报告中的报告章节和报告内容之间进行交集差集操作,以便获取前置报告与新的报告之间的相同报告内容;利用前置报告中相同报告内容对应的数据对新的报告中相同报告内容对应的数据进行覆盖,以使新的报告继承前置报告的相同报告内容;当前置报告中的报告内容发生更新时,利用更新后的报告内容的数据对具有继承关系的新的报告中的报告内容进行更新,以便更新新的报告的版本。本申请既能满足业务方在报告模板、个性化编辑、以及表单间继承等多方面的需求,并且方便使用、效率高、提升灵活性和自主性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的基于在线编辑的报告处理方法的流程示意图;
图2是本申请实施例提供的基于在线编辑的报告处理装置的结构示意图;
图3是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本申请实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面将结合附图详细说明根据本申请实施例的一种基于在线编辑的报告处理方法和装置。
图1是本申请实施例提供的基于在线编辑的报告处理方法的流程示意图。图1的基于在线编辑的报告处理方法可以由应用程序执行。如图1所示,该基于在线编辑的报告处理方法具体可以包括:
S101、获取报告发放方对报告模板进行在线编辑后生成的幻灯片式表单,其中,报告模板中包含报告提纲、报告章节和报告内容;
S102、基于幻灯片式表单在线添加新的报告章节及报告内容,并对幻灯片式表单中的报告章节及报告内容进行编辑;
S103、在创建新的报告后,建立新的报告与前置报告之间的继承关系,利用前置报告的标识获取前置报告中的全部报告章节和报告内容;
S104、将前置报告中的全部报告章节和报告内容与新的报告中的报告章节和报告内容之间进行交集差集操作,以便获取前置报告与新的报告之间的相同报告内容;
S105、利用前置报告中相同报告内容对应的数据对新的报告中相同报告内容对应的数据进行覆盖,以使新的报告继承前置报告的相同报告内容;
S106、当前置报告中的报告内容发生更新时,利用更新后的报告内容的数据对具有继承关系的新的报告中的报告内容进行更新,以便更新新的报告的版本。
首先,结合具体实施例对本申请报告处理方法的整体实现流程进行详细介绍,本申请实施例的报告处理方法整体包括以下几个方面的内容:
1)报告模板编辑:
报告发放方首先在线编辑报告模板,这包括编辑报告的章节、内容类型和提纲。报告内容已经被结构化为四种类型:表格、图片、文本框和信息矩阵。一旦编辑完成,发放方就可以发布这个报告模板。
2)填写报告:
报告填写方基于已发布的报告模板在线填写报告。报告含有多个章节页,每个章节页由多个内容模块组成。填写方除了填写报告模板中已经规定的内容,还可以根据需要增加章节页或者报告内容。他们可以添加的内容类型包括表格、图片和文本框。
3)布局调整:
第一次基于报告模板生成的报告默认是平铺式布局,但填写方可以对页面布局进行个性化调整。具体来说,他们可以调整报告模板范围外添加的章节的顺序,可以通过拖动来调整每个内容模块的大小和位置,还可以调整文字部分的对齐、大小、字号、字体和颜色。
4)报告审批:
填写完报告后,填写方将报告提交给发放方审批。如果审批通过,那么这个流程就结束了。如果审批被驳回,那么填写方就需要进行修改,然后再次提交,直到审批通过。
本申请技术方案允许更高的个性化和灵活性,既满足了发放方对统一报告模板的需要,又给予了填写方在填写报告时根据自身需要进行必要的调整的自由度。同时,这个流程也确保了报告的质量和标准,因为最后需要经过发放方的审批。
在一些实施例中,获取报告发放方对报告模板进行在线编辑后生成的幻灯片式表单,包括:
报告发放方对报告模板的报告提纲、报告章节以及报告内容分别进行在线编辑,并将编辑后的报告内容结构化为预定内容类型的数据,其中,预定内容类型的数据包括表格、图片、文本框和/或信息矩阵。
具体地,报告发放方可以通过在线平台接口进行报告模板的编辑。这种编辑可能涵盖对报告提纲、报告章节以及报告内容的修改或增添。例如,报告发放方可能需要在报告提纲中添加新的条目,或在报告章节中插入新的内容。这些编辑行为都可以通过在线平台接口实现。
在编辑过程中,报告发放方可以将报告内容结构化为预定内容类型的数据。预定内容类型的数据可能包括但不限于以下形式:表格、图片、文本框和/或信息矩阵。例如,报告发放方可以将一段需要展示的数据制成表格形式,或者上传一幅图片,或者在文本框中编写文本信息,或者将一系列信息整理成信息矩阵。这些内容类型的数据都可以直接通过在线平台接口添加到报告模板中。
当报告发放方完成编辑后,系统会自动将编辑后的报告模板转换成幻灯片式表单。具体来说,每一个报告章节可能会被转换成一个或多个幻灯片,每一种内容类型的数据可能会被嵌入到一个或多个幻灯片中。通过这种方式,报告发放方编辑后的报告模板将被转换成了一种易于阅读和理解的幻灯片式表单。
在一些实施例中,对幻灯片式表单中的报告章节及报告内容进行编辑,包括:对幻灯片式表单中的报告章节进行添加、删除或顺序调整,对报告章节内的报告内容的类型和提纲进行编辑,并对页面布局进行个性化调整;其中,页面布局的个性化调整包括调整报告章节中的各个内容模块的大小和位置,以及调整文字的格式、字号、字体和颜色。
具体地,报告的填写方可在幻灯片式表单中对报告章节进行添加、删除或顺序调整。例如,填写方可能需要添加一个新的报告章节以解释某个特定的主题,或者可能需要删除一个不再需要的报告章节。同样,填写方也可以对现有的报告章节进行顺序调整,以便更好地呈现报告的逻辑流程。
进一步地,对于报告章节内的报告内容,填写方可以对其类型和提纲进行编辑。例如包括添加新的表格、图片、文本框或信息矩阵,或者删除或修改现有的这些元素,本申请实施例提供的编辑功能使得填写方可以根据需要灵活地构造报告内容。
此外,填写方还可以对页面布局进行个性化调整。例如,填写方可以调整报告章节中的各个内容模块的大小和位置,以便更好地呈现各个内容模块。另外,填写方还可以调整文字的格式、字号、字体和颜色,以便更好地突出报告的重点或提高报告的可读性。
在一些实施例中,该方法还包括:当用户创建新的报告后,拉取最新的已审批报告模板信息,已审批报告模板信息中包含了全部的报告章节和报告内容;检查是否存在前置报告,当存在前置报告时,利用前置报告的标识获取前置报告中的全部报告章节和报告内容;将前置报告与新的报告之间的报告章节和报告内容进行数据比对,以获取相同报告内容;利用前置报告中的相同报告内容的相关数据对新的报告中的默认数据进行更新。
具体地,在新建报告时,系统会拉取最新的已审批报告模板信息,同时根据前置报告的ID获取全部章节页和内容页,通过交集差集操作来实现报告继承和版本更新功能。如果前置报告中存在与新建报告相同的章节页或内容页,系统会使用前置报告的相关数据覆盖新建报告的默认数据。如果前置报告中与新建报告相同的章节页或内容页发生数据更新,系统会使用最新数据覆盖新建报告中的数据。
进一步地,本申请实施例还提供了版本继承的功能,它包含以下两个主要的使用场景。
场景1:更新版本的报告模板
当发放方发布了最新版本的报告模板后,填写方可能需要编写符合新模板的最新版本报告。在这种情况下,填写方可以新建一个报告。系统会获取到新的报告模板,并从旧版报告中获取历史数据。然后填写方可以在这些历史数据的基础上开始填写新版本的报告。这种方法避免了重复输入已经存在的数据,同时确保了新报告能够符合最新的报告模板。
场景2:新报告与前置报告的继承关系
在填写新报告时,如果新报告和前置报告存在继承关系,系统会自动继承前置报告中与新报告相同的章节页和内容数据。这意味着,如果新报告中的某个章节或内容在前置报告中已经存在,那么在填写新报告时,这些章节或内容的数据将会自动填充,不需要填写方再次输入。这样做能够提高填写方的效率,减少重复劳动。
因此,本申请的版本继承功能模块通过提取和利用已有的数据,从而避免了不必要的重复工作,提高了填写和编辑报告的效率。同时,也确保了报告能够遵循最新的模板格式,提高了报告的质量和一致性。
下面结合具体实施例对版本继承功能的实现逻辑进行详细说明,具体可以包括以下内容:
新建报告:当用户开始新建一个报告时,系统首先会拉取最新的已审批报告模板信息。这个模板信息包括了全部的章节页和内容页。
获取前置报告数据:接着,系统会检查前置报告(也就是最近一次完成的报告)是否存在。如果前置报告已经完成,那么系统会根据这个前置报告的ID获取到全部的章节页和内容页。
数据对比:系统会将前置报告与新建报告的章节页和内容页进行交集差集操作,这一步的目的是找出两个报告之间相同和不同的部分。
报告继承:如果系统发现前置报告中存在与新建报告相同的章节页或内容页,那么它会使用前置报告的相关数据覆盖新建报告的默认数据,这就实现了报告继承功能。
版本更新:如果前置报告中与新建报告相同的章节页或内容页发生了数据更新,那么系统会使用最新的数据覆盖新建报告中的数据。这样一来,新建的报告就会使用到最新的版本。
因此,版本继承功能的实现逻辑就是在新建报告时,尽可能地复用已经完成的前置报告中的数据,从而避免重复填写。同时,如果前置报告中的数据有更新,那么新建的报告也会同步这些更新。这样既可以提高工作效率,又可以确保报告内容的时效性。
在一些实施例中,该方法还包括:将新的报告中填写的富文本及表格数据,利用FastJson进行数据序列化,并将数据持久化到数据库中,使用Redis作为数据库的前置缓存,以保证数据同步。
具体地,对于报告中填写的富文本、表格等数据,使用FastJson进行数据序列化,并将数据持久化到MySQL数据库中,同时使用Redis作为MySQL的前置缓存,以保证数据同步。
在一些实施例中,该方法还包括:在用户使用应用程序查看问卷时,利用递归算法将新的报告中的数据封装成树形结构,并将数据信息转换成Map形式,将Map形式的数据返回给前端,以便前端利用组件进行可视化编辑。
具体地,当用户使用应用程序查看报告时,系统首先需要将存储在数据库中的报告数据取出并处理。这些数据通常包括了报告的各个章节以及章节内的内容模块,这些章节和内容模块的关系形成了一种树形结构。系统使用递归算法来处理这种树形结构的数据,将每个章节及其子章节、内容模块等数据都封装成一个Map对象。这个Map对象包含了章节或内容模块的所有信息,如其类型、内容、位置等。通过这种方式,系统可以将整个报告的数据转换成一个包含多个Map对象的大的Map对象。
之后,系统将这个大的Map对象返回给前端,前端接收到这个Map对象后,会使用预先定义的组件对这个Map对象进行解析和渲染。每个组件都对应着一种特定的内容类型,如表格、图片、文本框或信息矩阵。通过使用这些组件,前端可以将报告的数据以用户友好的形式展现出来。
此外,前端还可以基于这个Map对象进行可视化编辑和优化。例如,用户可以直接在前端修改Map对象中的数据,从而改变报告的内容或布局。这种实施例的优点在于,它使得用户可以以直观的方式查看和编辑报告,从而提高了报告制作的效率和便捷性。
在一些实施例中,该方法还包括:在对数据库中的报告模版和报告内容进行查询时,将历史报告和新的报告分别存储到不同的表中,并对相应代码中的查询模块进行修改;利用预设的主库执行数据更新请求,并将数据变更实时同步到所有的从库,以便利用多个从库分担数据查询请求。
具体地,本申请实施例使用了一个关系数据库来存储和管理报告的相关数据。表1是编辑报告、配置报告模板以及填写对应报告的数据库对应的表结构及其作用。
表1 数据库的表结构及其作用
表名 | 作用 |
t_cls_template | 模板表,记录模板卡片,以及版本、创建人、继承关系、需要填写人、审批流等相关信息 |
t_cls_template_element | 模板组件关系表,存储两类数据:常规目录与组件关联关系+用户自定义目录与特定组件的关联关系。以及问卷中各个章节的前后顺序。 |
t_cls_template_element_content | 存储模版中各个内容中选择的类型以及对应提示信息。 |
t_cls_template_element_matrix | 模板组件扩展表(信息矩阵) |
t_cls_template_element_table | 模板组件扩展表(表格) |
t_cls_project_report | 填写报告表,记录报告填写人、填写时间,填写的版本、填写状态、审批流等相关信息 |
t_cls_project_report_data | 报告填充数据表,对于用户填写的各种类型数据进行存储 |
t_cls_template:模板表,用于记录模板卡片以及版本、创建人、继承关系、需要填写人、审批流等相关信息。简单来说,这个表存储了所有报告模板的基础信息。
t_cls_template_element:模板组件关系表,用于存储以下两类数据:常规目录与组件关联关系以及用户自定义目录与特定组件的关联关系。它还存储了问卷中各个章节的前后顺序。这个表是用来存储模板中的各种组件和它们之间的关联关系的。
t_cls_template_element_content:这个表用于存储模板中各个内容中选择的类型以及对应的提示信息,它使得模板中的各个部分可以有不同的内容类型。
t_cls_template_element_matrix和t_cls_template_element_table:这两个表是模板组件的扩展表,分别用于存储信息矩阵和表格的数据。这些表使得模板中的组件可以有更复杂的结构和内容。
t_cls_project_report:填写报告表,用于记录报告填写人、填写时间,填写的版本、填写状态、审批流等相关信息。这个表主要用于跟踪和管理填写的报告的状态和历史。
t_cls_project_report_data:报告填充数据表,用于存储用户填写的各种类型的数据。这个表使得系统可以保存和管理填写的报告的具体内容。
上述这些数据库表形成了本申请技术方案的基础数据结构,使得系统可以有效地存储和管理报告模板以及填写的报告内的各种数据。
在一些实施例中,本申请还可以通过数据归档、使用缓存以及读写分离的方式来解决数据量大和高并发的问题。本申请技术方案在实际应用中面临的两个主要挑战是数据存储量的不断增加和高并发访问的需求。随着系统的使用,报告模版和历史报告会持续增加,导致MySQL中的数据量达到千万级别,从而影响查询速度。此外,随着业务的快速发展和复杂度增加,MySQL的访问量也大幅提升,这也对单机MySQL的处理能力提出了更高的要求。为了应对这些挑战,本申请技术方案提出了以下的解决策略:
1)数据归档:由于报告数据具有时间属性并且呈现出“热尾效应”(即最近的报告模版和报告更频繁被检索),因此可以将新的数据和老的数据分开存储。例如,可以将历史报告移动到另一张表中,然后相应地修改代码中的查询模块,这种方式可以有效地解决数据量大的问题。
2)使用缓存:使用Redis作为MySQL的前置缓存可以拦截并处理大部分的查询请求,从而降低响应延迟。
3)读写分离:使用主库负责执行数据更新请求,然后将数据变更实时同步到所有从库。这样,可以利用多个从库来分担查询请求,进一步提高系统的处理能力。对于看板数据,可以直接从库中获取并返回对应结果。
需要说明的是,本申请实施例的报告生成和处理流程被实现为一个基于Java和Web技术的应用程序,本申请利用了编程语言、框架和工具,设计出了一个高效、稳定和易用的报告生成和处理系统。该报告生成和处理系统的具体技术细节包括以下几个部分的内容:
编程语言和框架:该应用程序是使用Java编程语言开发的,采用了SpringBoot和Vue2作为后端和前端的开发框架。SpringBoot是一个基于Spring的开发框架,简化了企业级应用的开发过程。Vue2则是一种流行的前端JavaScript框架,用于构建用户界面。
通信协议:该应用的前后端通过基于RESTful规则的HTTP协议进行通信。RESTful是一种软件架构风格,它定义了一组约束条件和原则,用于设计网络应用的接口。HTTP则是互联网上应用最为广泛的一种网络协议。
数据序列化和持久化:报告中填写的富文本、表格等数据,使用FastJson技术进行序列化,然后持久化到Mysql数据库中。FastJson是一个性能很好的Java语言实现的Json解析器和生成器。Mysql则是一种广泛使用的关系数据库管理系统。
数据同步:对于多人同时编辑同一份问卷的情况,使用Redis锁来保证数据的同步。Redis是一个开源的内存中的数据结构存储系统,它可以用作数据库、缓存和消息代理。
数据封装和可视化:在查看问卷时,利用递归算法将数据封装成树形结构,并将数据信息转成Map形式,返回给前端。前端利用组件进行可视化编辑和优化。
本申请技术方案相比现有的报告生成和处理方案至少具有以下优点:
1)用户友好的操作界面:通过幻灯片式表单,本申请为用户提供了直观的报告编辑界面。用户可以基于模板生成的表单基础上手动添加章节或内容,使得报告的制作更加灵活和个性化。
2)高效的报告制作过程:本申请支持基于前置报告继承的报告制作机制,可以自动继承前置报告中相同内容页的数据,避免了重复输入的工作,大大提高了报告制作的效率。
3)自动同步的数据更新:当前置报告更新章节页或内容页时,与之具有继承关系的报告会自动更新相关内容页,保证了报告数据的准确性和一致性。
4)高效的数据处理能力:本申请采用了数据归档、使用缓存和读写分离的技术方案,有效地解决了数据量大和高并发访问的挑战,保证了系统的稳定性和响应速度。
5)动态表单编辑与排版:报告模板统一发布后,填写方可以进行动态表单编辑、排版并提交,提高了工作效率,同时也保证了报告的统一性与规范性。
因此,本申请通过提供一种基于幻灯片样式的报告编辑工具,大大提升了报告制作的效率和便捷性,同时也提高了数据处理的性能,满足了大数据量和高并发访问的需求。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图2是本申请实施例提供的基于在线编辑的报告处理装置的结构示意图。如图2所示,该基于在线编辑的报告处理装置包括:
获取模块201,被配置为获取报告发放方对报告模板进行在线编辑后生成的幻灯片式表单,其中,报告模板中包含报告提纲、报告章节和报告内容;
编辑模块202,被配置为基于幻灯片式表单在线添加新的报告章节及报告内容,并对幻灯片式表单中的报告章节及报告内容进行编辑;
建立模块203,被配置为在创建新的报告后,建立新的报告与前置报告之间的继承关系,利用前置报告的标识获取前置报告中的全部报告章节和报告内容;
操作模块204,被配置为将前置报告中的全部报告章节和报告内容与新的报告中的报告章节和报告内容之间进行交集差集操作,以便获取前置报告与新的报告之间的相同报告内容;
覆盖模块205,被配置为利用前置报告中相同报告内容对应的数据对新的报告中相同报告内容对应的数据进行覆盖,以使新的报告继承前置报告的相同报告内容;
更新模块206,被配置为当前置报告中的报告内容发生更新时,利用更新后的报告内容的数据对具有继承关系的新的报告中的报告内容进行更新,以便更新新的报告的版本。
在一些实施例中,图2的获取模块201报告发放方对报告模板的报告提纲、报告章节以及报告内容分别进行在线编辑,并将编辑后的报告内容结构化为预定内容类型的数据,其中,预定内容类型的数据包括表格、图片、文本框和/或信息矩阵。
在一些实施例中,图2的编辑模块202对幻灯片式表单中的报告章节进行添加、删除或顺序调整,对报告章节内的报告内容的类型和提纲进行编辑,并对页面布局进行个性化调整;其中,页面布局的个性化调整包括调整报告章节中的各个内容模块的大小和位置,以及调整文字的格式、字号、字体和颜色。
在一些实施例中,图2的操作模块204当用户创建新的报告后,拉取最新的已审批报告模板信息,已审批报告模板信息中包含了全部的报告章节和报告内容;检查是否存在前置报告,当存在前置报告时,利用前置报告的标识获取前置报告中的全部报告章节和报告内容;将前置报告与新的报告之间的报告章节和报告内容进行数据比对,以获取相同报告内容;利用前置报告中的相同报告内容的相关数据对新的报告中的默认数据进行更新。
在一些实施例中,图2的存储模块207将新的报告中填写的富文本及表格数据,利用FastJson进行数据序列化,并将数据持久化到数据库中,使用Redis作为数据库的前置缓存,以保证数据同步。
在一些实施例中,图2的封装模块208在用户使用应用程序查看问卷时,利用递归算法将新的报告中的数据封装成树形结构,并将数据信息转换成Map形式,将Map形式的数据返回给前端,以便前端利用组件进行可视化编辑。
在一些实施例中,图2的存储模块207在对数据库中的报告模版和报告内容进行查询时,将历史报告和新的报告分别存储到不同的表中,并对相应代码中的查询模块进行修改;利用预设的主库执行数据更新请求,并将数据变更实时同步到所有的从库,以便利用多个从库分担数据查询请求。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图3是本申请实施例提供的电子设备3的结构示意图。如图3所示,该实施例的电子设备3包括:处理器301、存储器302以及存储在该存储器302中并且可以在处理器301上运行的计算机程序303。处理器301执行计算机程序303时实现上述各个方法实施例中的步骤。或者,处理器301执行计算机程序303时实现上述各装置实施例中各模块/单元的功能。
示例性地,计算机程序303可以被分割成一个或多个模块/单元,一个或多个模块/单元被存储在存储器302中,并由处理器301执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序303在电子设备3中的执行过程。
电子设备3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备3可以包括但不仅限于处理器301和存储器302。本领域技术人员可以理解,图3仅仅是电子设备3的示例,并不构成对电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如,电子设备还可以包括输入输出设备、网络接入设备、总线等。
处理器301可以是中央处理单元(Central Processing Unit,CPU),也可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器302可以是电子设备3的内部存储单元,例如,电子设备3的硬盘或内存。存储器302也可以是电子设备3的外部存储设备,例如,电子设备3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器302还可以既包括电子设备3的内部存储单元也包括外部存储设备。存储器302用于存储计算机程序以及电子设备所需的其它程序和数据。存储器302还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于在线编辑的报告处理方法,其特征在于,包括:
获取报告发放方对报告模板进行在线编辑后生成的幻灯片式表单,其中,所述报告模板中包含报告提纲、报告章节和报告内容;
基于所述幻灯片式表单在线添加新的报告章节及报告内容,并对所述幻灯片式表单中的所述报告章节及所述报告内容进行编辑;
在创建新的报告后,建立所述新的报告与前置报告之间的继承关系,利用所述前置报告的标识获取所述前置报告中的全部报告章节和报告内容;
将所述前置报告中的全部报告章节和报告内容与所述新的报告中的报告章节和报告内容之间进行交集差集操作,以便获取所述前置报告与所述新的报告之间的相同报告内容;
利用所述前置报告中相同报告内容对应的数据对所述新的报告中相同报告内容对应的数据进行覆盖,以使所述新的报告继承所述前置报告的相同报告内容;
当所述前置报告中的报告内容发生更新时,利用更新后的报告内容的数据对具有所述继承关系的新的报告中的报告内容进行更新,以便更新所述新的报告的版本。
2.根据权利要求1所述的方法,其特征在于,所述获取报告发放方对报告模板进行在线编辑后生成的幻灯片式表单,包括:
所述报告发放方对报告模板的报告提纲、报告章节以及报告内容分别进行在线编辑,并将编辑后的所述报告内容结构化为预定内容类型的数据,其中,所述预定内容类型的数据包括表格、图片、文本框和/或信息矩阵。
3.根据权利要求1所述的方法,其特征在于,所述对所述幻灯片式表单中的所述报告章节及所述报告内容进行编辑,包括:
对所述幻灯片式表单中的所述报告章节进行添加、删除或顺序调整,对所述报告章节内的报告内容的类型和提纲进行编辑,并对页面布局进行个性化调整;其中,所述页面布局的个性化调整包括调整所述报告章节中的各个内容模块的大小和位置,以及调整文字的格式、字号、字体和颜色。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当用户创建所述新的报告后,拉取最新的已审批报告模板信息,所述已审批报告模板信息中包含了全部的报告章节和报告内容;
检查是否存在所述前置报告,当存在所述前置报告时,利用所述前置报告的标识获取所述前置报告中的全部报告章节和报告内容;
将所述前置报告与所述新的报告之间的报告章节和报告内容进行数据比对,以获取所述相同报告内容;
利用所述前置报告中的所述相同报告内容的相关数据对所述新的报告中的默认数据进行更新。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述新的报告中填写的富文本及表格数据,利用FastJson进行数据序列化,并将数据持久化到数据库中,使用Redis作为所述数据库的前置缓存,以保证数据同步。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在用户使用应用程序查看问卷时,利用递归算法将所述新的报告中的数据封装成树形结构,并将数据信息转换成Map形式,将Map形式的数据返回给前端,以便所述前端利用组件进行可视化编辑。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在对所述数据库中的报告模版和报告内容进行查询时,将历史报告和新的报告分别存储到不同的表中,并对相应代码中的查询模块进行修改;利用预设的主库执行数据更新请求,并将数据变更实时同步到所有的从库,以便利用多个所述从库分担数据查询请求。
8.一种基于在线编辑的报告处理装置,其特征在于,包括:
获取模块,被配置为获取报告发放方对报告模板进行在线编辑后生成的幻灯片式表单,其中,所述报告模板中包含报告提纲、报告章节和报告内容;
编辑模块,被配置为基于所述幻灯片式表单在线添加新的报告章节及报告内容,并对所述幻灯片式表单中的所述报告章节及所述报告内容进行编辑;
建立模块,被配置为在创建新的报告后,建立所述新的报告与前置报告之间的继承关系,利用所述前置报告的标识获取所述前置报告中的全部报告章节和报告内容;
操作模块,被配置为将所述前置报告中的全部报告章节和报告内容与所述新的报告中的报告章节和报告内容之间进行交集差集操作,以便获取所述前置报告与所述新的报告之间的相同报告内容;
覆盖模块,被配置为利用所述前置报告中相同报告内容对应的数据对所述新的报告中相同报告内容对应的数据进行覆盖,以使所述新的报告继承所述前置报告的相同报告内容;
更新模块,被配置为当所述前置报告中的报告内容发生更新时,利用更新后的报告内容的数据对具有所述继承关系的新的报告中的报告内容进行更新,以便更新所述新的报告的版本。
9.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310863178.8A CN116611418B (zh) | 2023-07-14 | 2023-07-14 | 基于在线编辑的报告处理方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310863178.8A CN116611418B (zh) | 2023-07-14 | 2023-07-14 | 基于在线编辑的报告处理方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116611418A CN116611418A (zh) | 2023-08-18 |
CN116611418B true CN116611418B (zh) | 2023-12-12 |
Family
ID=87678479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310863178.8A Active CN116611418B (zh) | 2023-07-14 | 2023-07-14 | 基于在线编辑的报告处理方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116611418B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102934117A (zh) * | 2010-06-18 | 2013-02-13 | 霍夫曼-拉罗奇有限公司 | 结构化收集规程的状态报告 |
WO2016167829A1 (en) * | 2015-04-16 | 2016-10-20 | Barr Rosenberg | Electronic publication environment |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8375293B2 (en) * | 2005-01-09 | 2013-02-12 | Apple Inc. | Method and apparatus for defining documents |
-
2023
- 2023-07-14 CN CN202310863178.8A patent/CN116611418B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102934117A (zh) * | 2010-06-18 | 2013-02-13 | 霍夫曼-拉罗奇有限公司 | 结构化收集规程的状态报告 |
WO2016167829A1 (en) * | 2015-04-16 | 2016-10-20 | Barr Rosenberg | Electronic publication environment |
Also Published As
Publication number | Publication date |
---|---|
CN116611418A (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105447122B (zh) | 一种基于多表关联可自主创建档案系统的实现方法 | |
CN111079047B (zh) | 一种面向web的页面构建系统 | |
CN105653508B (zh) | 一种单据模板的管理方法、调用单据的方法及相关装置 | |
US8434002B1 (en) | Systems and methods for collaborative editing of elements in a presentation document | |
CN110647579A (zh) | 数据同步方法及装置、计算机设备与可读介质 | |
WO2021036448A1 (zh) | 一种网页编辑方法及装置 | |
CN102236544B (zh) | 一种皮肤设计方法及装置 | |
CN104881275A (zh) | 一种电子报表生成方法及装置 | |
CN103530407A (zh) | 一种富文本文档的生成方法与装置 | |
US11663288B2 (en) | Just-in-time front end template generation using logical document object models | |
CN116468010A (zh) | 报表生成方法、装置、终端及存储介质 | |
CN106407172A (zh) | 一种基于xml的报表生成方法 | |
CN115840567A (zh) | 一种应用编辑方法及相关设备 | |
CN115358204A (zh) | 一种报表生成方法、装置、电子设备及存储介质 | |
US20190250780A1 (en) | Selective user notification of actions taken to content by other users | |
CN108268615A (zh) | 一种数据处理方法、装置以及系统 | |
CN114201718A (zh) | 可动态配置的表单实例生成方法及装置 | |
CN108694172B (zh) | 信息输出方法和装置 | |
CN116611418B (zh) | 基于在线编辑的报告处理方法、装置、电子设备及介质 | |
KR101902191B1 (ko) | 질의 기반 소프트웨어 논리의 동적 변경 및 실행을 위한 멀티테넌트 지원 장치 및 방법 | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
US11663199B1 (en) | Application development based on stored data | |
CN114692055A (zh) | 表单处理方法、装置、存储介质与电子设备 | |
CN114253922A (zh) | 资源目录管理方法、资源管理方法、装置、设备及介质 | |
CN113254455A (zh) | 数据库的动态配置方法、装置、计算机设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |