数据处理方法、装置及存储介质与流程

文档序号:18704078发布日期:2019-09-17 23:23阅读:222来源:国知局
数据处理方法、装置及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置及存储介质。



背景技术:

目前业务流程处理大都采用工作流引擎(workflowengine),工作流引擎是指工作流(workflow)作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。通过工作流引擎可以方便快捷的处理业务。

但是,通过工作流引擎处理业务流程需要通过引入第三方工具来对业务流程进行管理,并且开发人员必须熟悉相关插件才可进行流程管理开发。对于不同的公司的业务流程来说,不同的业务流程具有不同的数据格式,从而需要设计开发不同的工作流引擎来对接不同的公司的业务,以完成转换业务数据的数据格式的任务。

但是,在业务数据量大,以及业务复杂的情况下,由于工作流引擎在处理业务数据的格式转换问题中不具有通用性,不仅增加了人工开发成本,还会导致工作效率低下。



技术实现要素:

本申请提供了一种数据处理方法及相关装置,应用于工作流引擎,用于处理业务流程,针对不同公司的业务,可以将不同公司的待处理文件转化为目标格式的目标文件,提高了处理业务流程的工作效率。

第一方面,本申请提供了一种数据处理方法,包括:

获取待处理文件,所述待处理文件携带有业务标签;

将所述待处理文件发送至与所述待处理文件的业务标签对应的服务节点;

监听所述服务节点对应的目标事件是否被触发,所述目标事件用于指示所述服务节点处理与所述目标事件所对应的任务处理流程;

若所述目标事件被触发,通过所述服务节点将所述待处理文件的文件格式转换为所述服务节点对应的目标格式,并根据所述目标事件所对应的任务处理流程对已转换为目标格式的所述待处理文件进行任务处理,得到目标文件。

在一种可能的实现方式中,所述将所述待处理文件发送至与所述待处理文件的业务标签对应的服务节点,包括:

依据预设的所述业务标签与业务类型之间的映射关系,确定与所述待处理文件的业务标签对应的业务类型;

依据所述待处理文件的业务类型、以及预设的业务类型与服务节点之间的映射关系,确定与所述待处理文件对应的服务节点。

在一种可能的实现方式中,所述监听所述服务节点对应的目标事件是否被触发包括:

监听所述目标事件所对应的任务流程事件是否已启动;

若监听到所述目标事件所对应的任务流程事件已启动,则确定所述目标事件被触发,否则确定所述目标事件未被触发。

在一种可能的实现方式中,在所述若所述目标事件被触发之后,所述方法还包括:

通过同步方式、同步注解方式或异步注解方式中的任意一种发布所述目标事件;

所述通过所述服务节点将所述待处理文件的文件格式转换为所述服务节点对应的目标格式,包括:

在所述目标事件发布成功的情况下,开始执行所述通过所述服务节点将所述待处理文件的文件格式转换为所述服务节点对应的目标格式的操作步骤。

在一种可能的实现方式中,在所述得到目标文件之前,所述方法还包括:

读取与所述目标事件对应的日志文件;

依据所述日志文件中的日志记录信息判断所述目标事件是否已执行完成;

若所述目标事件已执行完成,则确定所述根据所述目标事件所对应的任务处理流程对已转换为目标格式的所述待处理文件进行任务处理的操作步骤已执行完成。

在一种可能的实现方式中,所述若所述目标事件被触发之后,以及所述得到目标文件之前,所述方法还包括:

监听所述目标事件的运行状态是否为终止态;

若所述运行状态为终止态,则确定所述目标事件已执行完成,以及确定根据所述目标事件所对应的任务处理流程对已转换为目标格式的所述待处理文件进行任务处理的操作步骤已执行完成。

在一种可能的实现方式中,所述通过所述服务节点将所述待处理文件的文件格式转换为所述服务节点对应的目标格式,包括:

依据模板引擎生成与所述待处理文件的业务标签对应的html模板;

读取所述待处理文件的文件内容,将所述文件内容填入所述html模板中;

通过文件格式转换工具将所述html模板的文件格式转换为目标格式。

在一种可能的实现方式中,在所述得到所述目标文件之后,所述方法还包括:

若接收到签署电子章指令,则获取与所述签署电子章指令对应文件的统一资源定位符,匹配与所述统一资源定位符对应的文件;

在与所述统一资源定位符对应的文件为所述目标文件的情况下,为所述目标文件签署电子章。

在一种可能的实现方式中,所述得到目标文件之后,所述方法还包括:

将所述目标文件中的数据从数据模型转化为存储模型;所述数据模型为数据结构或对象模型,所述存储模型为关系模型、可扩展标记语言和/或二进制流;

将转化为存储模型之后的所述目标文件中的数据保存至数据库。

第二方面,本申请提供了一种数据处理装置,包括:

获取单元,用于获取待处理文件,所述待处理文件携带有业务标签;

第一处理单元,用于将所述待处理文件发送至与所述待处理文件的业务标签对应的服务节点;

第一监听单元,用于监听所述服务节点对应的目标事件是否被触发,所述目标事件用于指示所述服务节点处理与所述目标事件所对应的任务处理流程;

第二处理单元,用于若所述目标事件被触发,通过所述服务节点将所述待处理文件的文件格式转换为所述服务节点对应的目标格式,并根据所述目标事件所对应的任务处理流程对已转换为目标格式的上述待处理文件进行任务处理,得到目标文件。

在一种可能的实现方式中,所述第一处理单元包括:

第一确定子单元,用于依据预设的业务标签与业务类型之间的映射关系,确定与所述待处理文件的业务标签对应的业务类型;

第二确定子单元,用于依据所述待处理文件的业务类型、以及预设的业务类型与服务节点之间的映射关系,确定与所述待处理文件对应的服务节点。

在一种可能的实现方式中,所述第一监听单元包括:

监听子单元,用于监听所述目标事件所对应的任务流程事件是否已启动;

第三确定子单元,用于若监听到所述目标事件所对应的任务流程事件已启动,则确定所述目标事件被触发,否则确定所述目标事件未被触发。

在一种可能的实现方式中,所述装置还包括:

第三处理单元,用于通过同步方式、同步注解方式或异步注解方式中的任意一种发布所述目标事件;

所述第三处理单元,在所述目标事件发布成功的情况下,开始执行所述通过所述服务节点将所述待处理文件的文件格式转换为所述服务节点对应的目标格式的操作步骤。

在一种可能的实现方式中,所述装置还包括:

读取单元,用于读取与所述目标事件对应的日志文件;

判断单元,用于依据所述日志文件中的日志记录信息判断所述目标事件是否已执行完成;

确定单元,具体用于若所述目标事件已执行完成,则确定所述根据所述目标事件所对应的任务处理流程对已转换为目标格式的所述待处理文件进行任务处理的操作步骤已执行完成。

在一种可能的实现方式中,所述装置还包括:

第二监听单元,用于监听所述目标事件的运行状态是否为终止态;

所述确定单元,具体用于若所述运行状态为终止态,则确定所述目标事件已执行完成,以及确定根据所述目标事件所对应的任务处理流程对已转换为目标格式的所述待处理文件进行任务处理的操作步骤已执行完成。

在一种可能的实现方式中,所述第二处理单元包括:

生成子单元,用于依据模板引擎生成与所述待处理文件的业务标签对应的html模板;

处理子单元,用于读取所述待处理文件的文件内容,将所述文件内容填入所述html模板中;

转换子单元,用于通过文件格式转换工具将所述html模板的文件格式转换为目标格式,得到所述目标文件。

在一种可能的实现方式中,所述装置还包括:

匹配单元,用于若接收到签署电子章指令,则获取与所述签署电子章指令对应文件的统一资源定位符,匹配与所述统一资源定位符对应的文件;

签署单元,用于在与所述统一资源定位符对应的文件为所述目标文件的情况下,为所述目标文件签署电子章。

在一种可能的实现方式中,所述装置还包括:

转化单元,用于将所述目标文件中的数据从数据模型转化为存储模型;所述数据模型为数据结构或对象模型,所述存储模型为关系模型、可扩展标记语言和/或二进制流;

存储单元,用于将转化为存储模型之后的所述目标文件中的数据保存至数据库。

第三方面,本申请实施例还提供了一种数据处理装置,包括:处理器、存储器和输入输出接口,所述处理器和所述存储器、所述输入输出接口通过线路互联;其中,所述存储器存储有程序指令;所述程序指令被所述处理器执行时,使所述处理器执行如第一方面所述的相应的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行第一方面所述的方法。

本申请实施例中,首先获取待处理文件,然后读取获取到的待处理文件中的业务标签,通过该业务标签可以确定与该待处理文件对应的服务节点,并将该待处理文件输入到该服务节点中。当该服务节点对应的目标事件被触发之后,可以通过该服务节点完成将该待处理文件的格式转化为目标格式的过程,最终得到目标文件。由此可见,实施本申请实施例,可以通过将待处理文件输入到对应的服务节点中,完成对待处理文件的格式转换,提高了处理业务流程的工作效率。

附图说明

为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。

图1是本申请实施例提供的一种数据处理方法的流程示意图;

图2是本申请实施例提供的另一种数据处理方法的流程示意图;

图3是本申请实施例提供的一种数据处理装置的结构示意图;

图4是本申请实施例提供的一种第一处理单元的结构示意图;

图5是本申请实施例提供的一种第一监听单元的结构示意图;

图6是本申请实施例提供的另一种数据处理装置的结构示意图;

图7为本申请实施例提供的一种第二处理单元的结构示意图;

图8是本申请实施例提供的一种数据处理的结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法或设备固有的其他步骤或单元。

参见图1,图1是本申请实施例提供的一种数据处理方法的流程示意图,该数据处理方法可应于工作流引擎,也可以为工作流系统。其中,上述工作流引擎包括工作流系统。工作流引擎(workflowengine)是指工作流(workflow)作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流引擎包括流程的节点管理、流向管理、流程样例管理等重要功能。

上述工作流系统可以理解为一种工作流管理系统。其中,工作流(workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。工作流管理系统(workflowmanagementsystem,wfms)是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流逻辑进行工作流实例的执行。具体的,该工作流系统可以为电脑、手机等终端设备。可理解,本申请实施例对于该工作流系统的具体是什么不作唯一性限定。

如图1所示,该数据处理方法包括:

101、获取待处理文件,上述待处理文件携带有业务标签。

本申请实施例中,工作流可以应用到以下行业:消费品行业,制造业,电信服务业,公司证券等金融服务业,物流服务业,物业服务业,物业管理,大中型进出口贸易公司,政府事业机构,研究院所及教育服务业等特别是大的跨国企业和集团公司。

具体应用如下:

(1)关键业务流程:订单、报价处理、采购处理、合同审核、客户电话处理、供应链管理等。

(2)行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。

(3)人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。

(4)财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。

(5)客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等管理。

(6)特殊服务类:iso系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范的实现。

可理解,本申请实施例中对于工作流的具体应用场景不作限定。

相应的,上述待处理文件与上述工作流的具体应用有关。举例来说,若上述工作流应用于财务相关类的日常报销处理,则上述待处理文件即为与日常报销处理相关的文件,等等,且该待处理文件为带转换文件格式的文件。可理解,本申请实施例中对于该待处理文件具体是什么不作限定。

可选的,上述工作流引擎包括下载节点,上述获取待处理文件,包括:

通过上述下载节点下载上述待处理文件。

本申请实施例中,工作流的概念起源于生成组织与办公自动化。为了完成一个事务或任务,需要按一定工序完成一组相关的子任务。对于该事务或任务的整个工序或流程,就是一个过程。每个子任务就是一个节点,每个子任务里,还需要拆分成独立的工作任务,就是工作项。

举例来说,一份通告要发布,从起草开始到最后发布结束,该通告发布的整个流程就是一个过程。其中,上述通告发布的过程可分为起草、部门领导审稿、领导审稿、定稿、成文、发布等步骤,每个步骤就是一个节点。在这些节点中,比如成文,要完成稿件套红、套红时,要有表头处理、表底处理等,都是一个个工作项。其中,上述过程,也可以称一个流程;上述节点,也称环节、步骤等;工作项,也称要素、要点等。

相应的,上述下载节点可以理解为工作流任务中的一个工作流节点,或者工作流任务中的一个步骤。该下载节点所完成的工作项为下载上述待处理文件。

实施本申请实施例,通过上述下载节点可以专门下载上述待处理文件,提高了下载待处理文件的速度。

102、将上述待处理文件发送至与上述待处理文件的业务标签对应的服务节点。

本申请实施例中,上述待处理文件中携带有对应该待处理文件的业务标签。依据上述待处理文件的业务标签可以确定与上述待处理文件对应的服务节点,并将上述待处理文件输入到上述服务节点。

该业务标签用于表示该待处理文件的所涉及的具体的业务类型。

相应的,可以通过上述数据处理装置(如工作流引擎或工作流系统)为该待处理文件添加该业务标签。或者,也可以通过其他装置或设备为该待处理文件添加该业务标签。可理解,本申请实施例中对于该业务标签具体的添加方式不作限定。

其中,上述服务节点可以理解为一种包含一个或多个工作流节点的工作流节点集合的总称。具体的,若步骤104中将该待处理文件的文件格式转换为目标格式需要一个步骤即可完成,则该服务节点中包含的节点即为一个节点;若步骤104中将该待处理文件的文件格式转换为目标格式需要多个步骤(至少两个步骤)才可完成,则该服务节点中包含的节点即为多个节点(至少两个节点)。

并且,上述服务节点用于处理不同业务类型的待处理文件,也就是说,对于不同业务标签的待处理文件所对应的服务节点是不同的。

相应的,对于该服务节点的业务标签可以通过上述数据处理装置(如工作流引擎或工作流系统)为该服务节点添加该业务标签。

通过匹配该待处理文件的业务标签和该服务节点的业务标签的方式,可以将该待处理文件输入到对应的服务节点中去。

实施本申请实施例,通过匹配业务标签的方式,可以确定与上述待处理文件对应的服务节点,并将该待处理文件输入到该服务节点中,可避免将该待处理文件输入到不对应的服务节点中,提高了业务流程处理过程的准确性。

103、监听上述服务节点对应的目标事件是否被触发,上述目标事件用于指示上述服务节点处理与上述目标事件所对应的任务处理流程。

本申请实施例中,工作流系统一般包括一个或多个工作流节点,该工作流节点可以理解为一种任务节点,上述服务节点即为其中一种工作流节点。

另外,上述目标事件可以根据不同的需求设置不同的事件类型。即可以提供丰富的事件来供应用系统的使用,从而实现工作流引擎与应用系统之间的交互。举例来说,上述目标事件可以为流程开始事件,流程结束事件,环节进入前事件,环节进入后事件,某个行为执行前事件和某个行为执行后事件,以及其它事件等。

具体的,监听上述服务节点对应的目标事件是否被触发,可通过对该服务节点对应的按钮进行事件监听来实现。其中,事件可以理解为能够被javascrip(一种直译式脚本语言)侦测到的一种行为。

具体的,可以通过自定义事件监听器并注册事件监听器实现对上述目标事件的监听。相应的,本申请实施例中还提供了几种springboot进行事件监听的方法。其中,springboot是由pivotal团队提供的全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。如下上述:

springboot事件监听的流程:

(1)自定义事件,一般是继承自定义事件,一般是继承applicationevent抽象类。

(2)定义事件监听器,一般是实现applicationlistener接口。

(3)配置监听器,将监听器纳入到spring容器中进行管理。

或者,直接在myapplicationlistener类上加上@component注解,纳入spring容器管理;

或者,通过@eventlistener注解实现事件监听;

或者,在application.properties中配置监听器;

或者,手工向applicationcontext中添加监听器。

(4)发布事件。

其中,发布事件又可以分为同步发布事件或异步发布事件。同步发布事件可保证任务的线性运行,而异步发布实现了任务的并行处理。

实施本申请实施例,通过监听该服务节点对应的目标事件,可以准确得知该服务节点是否已开始执行转换待处理文件的文件格式的处理流程,能够监控业务处理流程的执行进度,提高了业务处理的精确性。

104、若上述目标事件被触发,通过上述服务节点将上述待处理文件的文件格式转换为与上述服务节点对应的目标格式,并根据上述目标事件对应的任务处理流程对已转换为目标格式的上述待处理文件进行任务处理,得到目标文件。

本申请实施例中,通过工作流系统中的服务节点可以将上述待处理文件的文件格式转换为与该服务节点对应的目标格式,并对转换格式后的该待处理文件进行进一步的任务处理,最终得到目标文件。其中,可以把将待处理文件的文件格式转换为目标格式,以及将已转换为目标格式的待处理文件进行任务处理的处理过程称之为目标任务。

上述目标任务一般可以分为多个步骤执行,也就是说,上述目标任务需要通过多个工作流节点来分批次执行该目标任务。

上述服务节点包括一个或多个工作流节点。如该服务节点包括服务节点、第二节点和第三节点,等等,且该服务节点、第二节点和第三节点用于执行上述目标任务的不同步骤,且该不同的步骤对应不同的事件。举例来说,若上述服务节点包括三个节点,则该服务节点对应的事件可以为流程开始事件,该第三节点对应的事件可以为流程结束事件等。可理解,本申请实施例中对于该服务节点具体包括多少个节点不作限定,以及对于该服务节点中每个节点对应的事件具体是什么不作限定。

在上述服务节点执行完上述目标任务的全部步骤时,则完成了对该待处理文件的文件格式的转换,以及根据待处理文件得到目标文件的过程。

本申请实施例中,上述待处理文件为来自不同的第三方公司的业务数据,上述服务节点用于对接不同的业务类型。具体的,若上述第三方公司为a,b,c,d四个公司,且该a,b,c,d四个公司的业务类型至少包含一个业务类型。相应的,可以通过至少一个服务节点用于处理该a,b,c,d四个公司的业务。举例来说,若上述待处理文件属于a公司,则根据该a公司的业务标签,可以将该属于a公司的待处理文件输入到对应的服务节点中进行处理。

举例来说,若上述待处理文件的业务标签为下载一个文件(且该文件中包含的一系列文件列表),并将下载之后的文件列表所对应的数据进行加密。那么,上述待处理文件即为一种包含多个文件列表的文件,该目标文件即为一种加密后的文件。也就是说,通过上述服务节点可以将待处理文件转换为需要的目标文件。可理解,以上仅为一种示例,不应理解为本申请实施例的唯一性限定。

在一种可能的实现方式中,在上述得到目标文件之前,上述方法还包括:

读取与上述目标事件对应的日志文件;

依据上述日志文件中的日志记录信息判断上述目标事件是否已执行完成;

若上述目标事件已执行完成,则确定上述根据上述目标事件所对应的任务处理流程对已转换为目标格式的上述待处理文件进行任务处理的操作步骤已执行完成。

本申请实施例中,上述日志文件和上述日志记录信息可理解为一种对上述目标事件的日志管理。具体的,可以通过springaop实现日志管理。aop(aspect-orientedprogramming,面向方面编程),aop是oop(object-orientedprograming,面向对象编程)的补充和完善。面向方面编程(aop)是面向对象编程(oop)补充的另一种提供思考程序结构补充。在oop中模块化的关键单元是类,而在aop模块的单位是一个方面。面对关注点,如事务管理跨越多个类型和对象切模块化。相应的,对于springaop实现日志管理可以有以下几种方式:(1)基于xml配置的实现;(2)基于注解的实现;(3)基于自定义注解的实现。可理解,本申请实施例中对于具体如何实现日志管理不作限定。

具体的,通过日志管理可以记录该目标事件的执行进度,如该目标事件被触发时,通过日志管理可以记录下该目标事件开始执行的起始进度(如0%),以及开始执行的起始时间;通过日志管理还可以记录该目标事件在执行过程中的运行进度(如48%)以及运行时间;以及通过日志管理还可以记录该目标事件执行完成的完成进度(如100%)以及完成时间。通过查询该目标事件执行过程中执行进度,可以知道该目标事件是否已执行完成。

当通过查询上述目标事件的执行进度确定该目标事件已执行完成的情况下,可以确定将已转换为目标格式的上述待处理文件进行任务处理的步骤已完成,此时即可确定已得到上述目标文件。

实施本申请实施例,首先获取待处理文件,然后读取获取到的待处理文件中的业务标签,通过该业务标签可以确定与该待处理文件对应的服务节点,并将该待处理文件输入到该服务节点中。当该服务节点对应的目标事件被触发之后,可以通过该服务节点完成将该待处理文件的格式转化为目标格式的过程,最终得到目标文件。由此可见,可以通过将待处理文件输入到对应的服务节点中,完成对待处理文件的格式转换,提高了处理业务流程的工作效率。

参见图2,图2是本申请实施例提供的另一种数据处理方法的流程示意图,如图2所示,该数据处理方法包括:

201、获取待处理文件,上述待处理文件携带有业务标签。

本申请实施例中,对于上述步骤201的具体实现方式可参考图1所示步骤101所示的实现方式,这里不再一一详述。

202、依据预设的业务标签与业务类型之间的映射关系,确定与上述待处理文件的业务标签对应的业务类型;依据上述待处理文件的业务类型、以及预设的业务类型与服务节点之间的映射关系,确定与上述待处理文件对应的服务节点。

本申请实施例中,不同的业务标签对应不同的业务类型,且业务标签与业务类型之间存在映射关系。其中,不同的服务节点用于处理不同的业务类型,即业务类型与服务节点之间存在映射关系。也就是说,通过业务标签与业务类型之间的映射关系,以及业务类型与服务节点之间的映射关系,最终可以确定与待处理文件对应的服务节点。

具体的,假设上述业务类型包括a,b,c,d,e五个业务类型,且每个业务类型对应唯一的业务标签。通过上述待处理文件的业务标签可以确定上述待处理文件的业务类型。进一步的,通过业务类型与服务节点之间的映射关系,可以确定上述待处理文件对应的服务节点。

具体的,上述服务节点可以理解为一种工作流节点。该服务节点用于对接不同的业务类型。也就是说,不同的服务节点具有不同的业务标签。

实施本申请实施例,通过匹配业务标签的方式可以确定上述待处理文件的业务类型,并进一步根据该业务类型将该待处理文件输入到对应的服务节点,提高了业务处理过程的精确度。

203、监听上述服务节点对应的目标事件所对应的任务流程事件是否已启动;若监听到上述目标事件所对应的任务流程事件已启动,则确定上述目标事件被触发,否则确定上述目标事件未被触发。

本申请实施例中,对于上述目标事件具体是什么,以及该目标事件的具体实现方式可参考图1所示步骤103所示的实现方式,这里不再一一详述。

上述目标事件所对应的任务流程事件可以理解为上述步骤103中的流程开始事件,即用于表示该目标事件是否已经启动。相应的,若发生了该目标事件所对应的任务流程事件,则代表上述服务节点已开始执行转换待处理文件的文件格式的过程。

实施本申请实施例,通过监听是否发生了上述目标事件所对应的任务流程事件,可以及时的了解上述服务节点是否已开始执行转换待处理文件的文件格式的过程,提高了业务处理过程的有效性。

204、通过同步方式、同步注解方式或异步注解方式中的任意一种发布上述目标事件。

本申请实施例中,上述同步方式、同步注解方式或异步注解方式,通过这三种发布上述目标事件的方式可以理解为spring自身的事件机制所对应的发布方式。

本申请实施例中,上述目标事件可能会因为一些原因导致该目标事件发布失败。具体的,该原因可以为网络状况不良,工作流引擎系统不稳定等等。可理解,本申请实施例中对于该目标事件发布失败的具体原因不作限定。

当上述目标事件发布失败时,上述工作流引擎会会重新发布该目标事件。且该工作流引擎会通过自动重试的方式重新发布该目标事件,直到该目标事件发布成功。极大的保证了目标事件发布的成功率。且不需要人工参与。实施本申请实施例,工作流引擎可以自动跳转流程节点,避免人工参与,提高了工作效率。

或者,当该目标事件发布失败时,也可以通过上下文进行手动重试,手动重试包括从失败事件(即目标事件)开始重试。可理解,上述过程同样适用于其他事件(如流程结束事件,环节进入前事件,环节进入后事件等),在此不再一一详述。

实施本申请实施例,当发生了上述目标事件时,可以通过上述三种不同的方式发布该事件,并且当该事件发布失败时,该工作流引擎可以及时的重新发布该目标事件,能够及时解决该业务流程处理过程中出现的流程断裂的问题,提高了工作效率。

205、若上述目标事件被触发,与上述服务节点对应的目标格式,并根据上述目标事件对应的任务处理流程对已转换为目标格式的上述待处理文件进行任务处理,得到目标文件。

本申请实施例中,若上述目标事件被触发,即代表已经启动上述目标任务(即将待处理文件的文件格式转换为目标格式,以及将已转换为目标格式的待处理文件进行任务处理的处理过程),当该目标任务执行完成时,即可得到上述目标文件。

在一种可能的实现方式中,上述若上述目标事件被触发之后,以及上述得到目标文件之前,上述方法还包括:

监听上述目标事件的运行状态是否为终止态;

若上述运行状态为终止态,则确定上述目标事件已执行完成,以及确定根据上述目标事件所对应的任务处理流程对已转换为目标格式的上述待处理文件进行任务处理的操作步骤已执行完成。

本申请实施例中,上述运行状态可以理解为一种进程状态。进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。其中,在五态模型中,进程状态分为五个基本状态,新建态、终止态,运行态,就绪态,阻塞态。

具体的,运行(running)态,指进程占有处理器正在运行;就绪(ready)态,指进程具备运行条件,等待系统分配处理器以便运行;等待(wait)态,又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。新建态对应于进程刚刚被创建的状态,创建一个进程要通过两个步骤,首先,是为一个新进程创建必要的管理信息;然后,让该进程进入就绪态。当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止态。

本申请实施例中,依据上述目标事件的进程状态可以判断上述服务节点是否执行完成上述目标任务。因此,本申请实施例还提供了一种判断上述服务节点是否执行完成上述目标任务的方法,如下上述:

(1)若上述目标事件的进程状态为运行态,则表示该服务节点正在执行该目标任务,即尚未执行完成上述目标任务。

(2)若上述第二节点的进程状态为就绪态,则表示该服务节点已经具备执行该目标任务的资格,即尚未开始执行上述目标任务。

(3)若上述目标事件的进程状态为阻塞态,则表示该服务节点在执行上述目标任务时出现故障,即尚未执行完成上述目标任务。

(4)若上述目标事件的进程状态为新建态,则表示该服务节点正在准备执行上述目标任务,即尚未开始执行完成上述目标任务。

(5)若上述目标事件的进程状态为终止态,在一种可能的情况下,表示该服务节点已经执行完成上述目标任务。

可理解,上述实施例仅为本申请实施例的一种示例,不应理解为对本申请实施例的限定。

当上述工作流引擎确定服务节点执行完上述目标任务时,即可得到上述目标文件。

实施本申请实施例,通过监听该目标事件的运行状态的方式,可以随时了解该目标任务是否已执行完成,提高了业务流程处理的精确度。

在一种可能的实现方式中,上述通过所述服务节点将上述待处理文件的文件格式转换为上述服务节点对应的目标格式,得到目标文件,包括:

依据模板引擎生成与上述待处理文件的业务标签对应的html模板;

读取上述待处理文件的文件内容,将上述文件内容填入上述html模板中;

通过文件格式转换工具将上述html模板的文件格式转换为目标格式,得到上述目标文件。

本申请实施例中,上述html模板为一种网页模板。上述模板引擎可以使用thymeleaf作为模板引擎。上述文件格式转换工具可以为itext,itext是著名的开放源码的站点sourceforge一个项目,是用于生成pdf文档的一个java类库。通过itext不仅可以生成pdf或rtf的文档,而且可以将xml、html文件转化为pdf文件。

具体的,通过待处理文件的业务标签可以确定与该待处理文件相对应的html模板,通过模板引擎可以生成该html模板,并且将该待处理文件中的具体的文件内容填写到该html模板中。然后通过文件格式转换工具itext可以将该待处理文件的文件格式(如html文件格式)转换为目标格式(如pdf格式)。

实施本申请实施例,使用thymeleaf模板引擎生成待处理文件对应的html模板,简单方便,入门较低。并且通过文件格式转换工具itext可以将待处理文件的文件格式由html转换为pdf格式,由于pdf是html转换而来,可以保证pdf内容编写过程的可视化操作。

在一种可能的实现方式中,在上述得到上述目标文件之后,上述方法还包括:

若接收到签署电子章指令,则获取与上述签署电子章指令对应文件的统一资源定位符,匹配与上述资源定位符对应的文件;

在与上述资源定位符对应的文件为上述目标文件的情况下,为上述目标文件签署电子章。

本申请实施例中,在得到上述目标文件之后,若该目标文件为一份合同,则可以为该合同签署相应的电子章。其中,上述签署电子章指令可以为上述数据处理装置自动生成的指令,也可以为用户确认该目标文件(如合同)之后,点击显示设备所生成的指令。可理解,本申请实施例中对于该签署电子章指令的具体生成方式不作限定。

具体的,通过查找与该签署电子章指令对应文件的资源定位符(uniformresourcelocator,url),以及通过该url匹配与该url对应的文件,若该文件为上述目标文件,则可以为该目标文件签署相应的电子章。

实施本申请实施例,通过上述方式为上述目标文件签署电子章,可以保证该目标文件的合法性,使该目标文件具有法律效力,并且通过电子签章的方式,方便高效,提高了工作效率。

206、将上述目标文件中的数据从数据模型转化为存储模型;将转化为存储模型之后的上述目标文件中的数据保存至数据库。

本申请实施例中,将上述目标文件中的数据从数据模型转化为存储模型,可以理解为一种数据持久化过程。数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、可扩展标记语言(extensiblemarkuplanguage,xml)、二进制流等。

其中,上述数据库为一种用于存放目标文件的数据库。举例来说,该数据库可以为redis数据库。具体的,redis是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。该redis数据库是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持四种持久化方式,一是snapshotting(快照)也是默认方式;二是append-onlyfile(缩写aof)的方式;三是虚拟内存方式;四是diskstore方式。

实施本申请实施例,在获取到待处理文件之后,通过业务标签对应的业务类型可以将该待处理文件输入到对应的服务节点中。当监听到发生了目标事件之后,发布该目标事件。此时,相应的目标事件被触发,通过监听该目标事件对应的运行状态可以准确得知目标任务(即通过服务节点将待处理文件的文件格式转换为目标格式的过程)是否已执行完成,若执行完成,即可得到上述目标文件。最后,通过数据持久化的方式将该目标文件保存至数据库。通过上述方式,可以通过将待处理文件输入到对应的服务节点中,完成对待处理文件的格式转换,提高了处理业务流程的工作效率。

可理解,图1和图2所示的方法实施例各有侧重,其中一个实施例中未详尽描述的实现方式还可参考其他实施例。

上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。

参见图3,图3是本申请实施例提供的一种数据处理装置的结构示意图,如图3所示,该数据处理装置包括:

获取单元301,用于获取待处理文件,上述待处理文件携带有业务标签;

第一处理单元302,用于将上述待处理文件发送至与上述待处理文件的业务标签对应的服务节点;

第一监听单元303,用于监听上述服务节点对应的目标事件是否被触发,上述目标事件用于指示上述服务节点处理与上述目标事件所对应的任务处理流程;

第二处理单元304,用于若上述目标事件被触发,通过上述服务节点将上述待处理文件的文件格式转换为上述服务节点对应的目标格式,并根据上述目标事件所对应的任务处理流程对已转换为目标格式的上述待处理文件进行任务处理,得到目标文件。

可选的,图4是本申请实施例提供的一种第一处理单元的结构示意图,如图4所示,上述第一处理单元302包括:

第一确定子单元3021,用于依据预设的上述业务标签与业务类型之间的映射关系,确定与上述待处理文件的业务标签对应的业务类型;

第二确定子单元3022,用于依据上述待处理文件的业务类型、以及预设的业务类型与服务节点之间的映射关系,确定与上述待处理文件对应的服务节点。

可选的,图5是本申请实施例提供的一种第一监听单元的结构示意图,如图5所示,上述第一监听单元303包括:

监听子单元3031,用于监听上述目标事件所对应的任务流程事件是否已启动;

第三确定子单元3032,用于若监听到上述目标事件所对应的任务流程事件已启动,则确定上述目标事件被触发,否则确定上述目标事件未被触发。

可选的,图6是本申请实施例提供的另一种数据处理装置的结构示意图,如图6所示,上述装置还包括:

第三处理单元305,用于通过同步方式、同步注解方式或异步注解方式中的任意一种发布上述目标事件;

上述第三处理单元305,具体用于在上述目标事件发布成功的情况下,开始执行上述通过上述服务节点将上述待处理文件的文件格式转换为上述服务节点对应的目标格式的操作步骤。

可选的,如图6所示,上述装置还包括:

读取单元306,用于读取与上述目标事件对应的日志文件;

判断单元307,用于依据上述日志文件中的日志记录信息判断上述目标事件是否已执行完成;

确定单元308,具体用于若上述目标事件已执行完成,则确定上述根据上述目标事件所对应的任务处理流程对已转换为目标格式的上述待处理文件进行任务处理的操作步骤已执行完成。

可选的,如图6所示,上述装置还包括:

第二监听单元309,用于监听上述目标事件的运行状态是否为终止态;

上述确定单元308,具体用于若上述运行状态为终止态,则确定上述目标事件已执行完成,以及确定根据上述目标事件所对应的任务处理流程对已转换为目标格式的上述待处理文件进行任务处理的操作步骤已执行完成。

可选的,图7为本申请实施例提供的一种第二处理单元的结构示意图,如图8所示,上述第二处理单元304包括:

生成子单元3041,用于依据模板引擎生成与上述待处理文件的业务标签对应的html模板;

处理子单元3042,用于读取上述待处理文件的文件内容,将上述文件内容填入上述html模板中;

转换子单元3043,用于通过文件格式转换工具将上述html模板的文件格式转换为目标格式,得到上述目标文件。

可选的,如图6所示,上述装置还包括:

匹配单元310,用于若接收到签署电子章指令,则获取与上述签署电子章指令对应文件的统一资源定位符,匹配与上述统一资源定位符对应的文件;

签署单元311,用于在与上述统一资源定位符对应的文件为上述目标文件的情况下,为上述目标文件签署电子章。

可选的,如图6所示,上述装置还包括:

转化单元312,用于将上述目标文件中的数据从数据模型转化为存储模型;所述数据模型为数据结构或对象模型,所述存储模型为关系模型、可扩展标记语言和/或二进制流;

存储单元313,用于将转化为存储模型之后的上述目标文件中的数据保存至数据库。

参见图8,图8是本申请实施例提供的一种数据处理的结构示意图,该数据处理包括处理器801、存储器802和输入输出接口803,上述处理器801、存储器802和输入输出接口803通过总线相互连接。

存储器802包括但不限于是随机存储记忆体(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、或便携式只读存储器(compactdiscread-onlymemory,cd-rom),该存储器802用于相关指令及数据。

输入输出接口803,例如可通过该输入输出接口与其他装置进行通信等。

处理器801可以是一个或多个中央处理器(centralprocessingunit,cpu),在处理器801是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。

具体的,各个操作的实现还可以对应参照图1和图2所示的方法实施例的相应描述。以及各个操作的实现还可对应参照图3、图4、图5、图6和图7所示的装置实施例的相应描述。

如在一个实施例中,处理器801可用于执行步骤101、步骤102、步骤103以及步骤104所示的方法,又如该处理器801还可用于执行获取单元301、第一处理单元302、第一监听单元303以及第二处理单元304等所执行的方法。

又如在一个实施例中,输入输出接口803,还可用于执行获取单元301所执行的方法。

又如在一个实施例中,处理器801可用于执行步骤201、步骤202、步骤203步骤204、步骤205以及步骤206所示的方法,又如该处理器801还可用于执行获第三处理单元305、读取单元306、判断单元307、确定单元308、第二监听单元309、匹配单元310、签署单元311、转化单元312以及存储单元313等所执行的方法。

可以理解的是,图8仅仅示出了数据处理的简化设计。在实际应用中,数据处理装置还可以分别包含必要的其他元件,包含但不限于任意数量的输入输出接口、处理器、存储器等,而所有可以实现本申请实施例的数据处理都在本申请的保护范围之内。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1