一种配置工作流的方法、装置、服务器和计算机存储介质
技术领域
本申请涉及数据处理技术领域,具体涉及一种配置工作流的方法和装置。
背景技术
工作流是指工作事项的活动流向顺序,包括实际工作过程中的工作业务和工作步骤,一个工作流完成一项业务,一项业务可有多个阶段,一个阶段可以有一个或多个节点,业务与业务之间的调用对应到页面上节点与节点之间的连线,业务之间的复杂调用,使得页面上的连线多且复杂,目前,大多采用框架工具G6或者工具D3去渲染整个页面,当业务需求复杂时,很容易出现线穿过线、线与线重叠无法正常展示的问题。
发明内容
本申请实施例提供一种配置工作流的方法及装置,能够避免页面渲染中出现的线穿过线、线与线重叠的问题。
本申请实施例的第一方面提供了一种配置工作流的方法,应用于服务器,所述方法包括:
接收到后台终端发送的第一请求,所述第一请求用于请求所述服务器创建工作流,所述第一请求携带第一格式的工作流数据;
将所述第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据,并存入数据库中;
将所述第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,所述节点位于所述网格的顶点位置;
根据所述网格确定所述节点的二维坐标,所述节点与所述二维坐标对应;
按照第三预设规则构建包括两个节点之间的连线,根据所述节点的二维坐标,计算所述连线的向量;
根据所述连线的向量判断连线i与连线j之间是否存在交叉或者重合的情况,所述连线i、所述连线j为所述任意两个节点构建的任意两条连线;
如果存在,则删除所述连线i与所述连线j中任意一条连线,并渲染整个所述前端页面,得到工作流;
如果不存在,则根据所述连线,渲染整个所述前端页面,得到工作流。
本申请实施例第二方面提供了一种配置工作流的装置,所述装置包括接收单元、转换单元、生成单元、确定单元、构建单元与判断单元,其中:
接收单元,用于接收到后台终端发送的第一请求,所述第一请求用于请求所述服务器创建工作流,所述第一请求携带第一格式的工作流数据;
转换单元,用于将所述第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据,并存入数据库中;
生成单元,用于将所述第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,所述节点位于所述网格的顶点位置;
确定单元,用于根据所述网格确定所述节点的二维坐标,所述节点与所述二维坐标对应;
构建单元,用于按照第三预设规则构建包括两个节点之间的连线,根据所述节点的二维坐标,计算所述连线的向量;
判断单元,用于判断连线i与连线j之间是否存在交叉或者重合的情况,所述连线i、所述连线j为所述任意两个节点构建的任意两条连线;
渲染单元,用于如果存在,则删除所述连线i与所述连线j中任意一条连线,并渲染整个前端页面,得到工作流;如果不存在,则根据所述连线,渲染整个所述前端页面,得到工作流。
本申请实施例的第三方面提供一种服务器,所述服务器包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行本申请实施例第一方面所述的方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面所描述的部分或全部步骤。
本申请实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,至少具有如下有益效果:
通过本申请实施例,应用于服务器,服务器接收到后台终端发送的第一请求,第一请求用于请求所述服务器创建工作流,第一请求携带第一格式的工作流数据,将第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据,并存入数据库中,将第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,节点位于网格的顶点位置,根据网格确定节点的二维坐标,节点与二维坐标对应,按照第三预设规则构建包括两个节点之间的连线,根据节点的二维坐标,计算连线的向量,根据连线的向量判断连线i与连线j之间是否存在交叉或者重合的情况,如果存在,则删除连线i与连线j中任意一条连线,并渲染整个页面,得到工作流,如果不存在,则根据连线,渲染整个页面,得到工作流,如此,业务与业务之间的调用对应到页面上节点与节点之间的连线,通过判断连线是否相交或者重合的情况,能够有效的避免页面渲染时出现的线穿过线、线与线重叠无法正常展示的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供了一种配置工作流的方法的流程示意图;
图2为本申请实施例提供了一种连线交叉的情况图;
图3为本申请实施例提供了一种连线重合的情况图;
图4为本申请实施例提供了一种连线平行的情况图;
图5为本申请实施例提供了一种配置工作流的方法的流程示意图;
图6为本申请实施例提供了一种配置工作流的方法的流程示例图;
图7为本申请实施例提供了一种服务器的结构示意图;
图8为本申请实施例提供了一种配置工作流的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
为了能够更好地理解本申请实施例,下面将对应用本申请实施例的方法进行介绍。
图1是本申请实施例提供的一种配置工作流的方法的流程示意图,上述方法包括以下步骤:
101、接收到后台终端发送的第一请求,所述第一请求用于请求所述服务器创建工作流,所述第一请求携带第一格式的工作流数据。
本申请实施例中,在工作流中业务与业务之间的调用对应到前端页面上节点与节点之间构建而成的连线中,后台终端的数据格式可为任意一种,具体地,服务器接收到后台终端发送的第一格式的工作流数据可包括以下任意一种:json格式、xml格式和字符串,在此不做限定,其中,xml(Extensible Markup Language)是一种可扩展标记语言,json(JavaScript Object Notation)是一种轻量级的数据交换格式。
102、将所述第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据。
本申请实施例中,服务器可统一后台终端发送的任意一种数据格式,具体地,可将第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据,第二格式的工作流数据可以由用户自行进行设定,也可以由系统默认,当然也可以通过其他方式得到第二格式数据,其中,第二格式的工作流数据可包括以下至少一种:json格式、xml格式和字符串,在此不做限定。
可选地,上述步骤102中,在将第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据之前,可包括以下步骤:
21、接收到所述后台终端发送的第二请求,所述第二请求用于请求所述服务器进行格式转换,所述第二请求中携带所述第一格式的工作流数据;
22、若所述第二请求通过,则将所述第一格式的工作流数据进行格式转换,得到第二格式的工作流数据。
具体地,若所需的第二格式的工作流数据为json格式数据,则将接收到的第一格式的工作流数据为xml格式的数据或者字符串格式的数据用格式转换工具转换为json格式的数据;若所需的第二格式的工作流数据为xml格式数据,则将接收到的第一格式的工作流数据为json格式的数据或者字符串格式的数据用格式转换工具转换为xml格式的数据,最后,可将第二格式的工作流数据填充到数据库的结构体的二维数组中,其中,针对不同的数据格式可建立不同的格式转换工具来进行格式转换,同时,该格式工具可新增或删除。
103、将所述第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,所述节点位于所述网格的顶点位置。
本申请实施例中,第二预设规则可由用户自行设定或者系统默认,可预先设置不同的工作流数据与不同的节点之间的对应关系,具体地,服务器在接收到后台终端发送的不同的工作流数据后,可存入不同的预设数据库中,预设数据库可包括以下至少一种:预设父节点数据库、子节点数据库等等,在此不作限定,服务器在接收到生成节点的请求后,可提取数据库中的工作流数据,可在前端网页的网格中生成对应的节点,节点可位于网格的顶点位置,例如,可提取父节点数据库中的工作流数据生成父节点,其中,前端网页的网格可由用户自行设置或者系统默认。
104、根据所述网格确定所述节点的二维坐标,所述节点与所述二维坐标对应。
本申请实施例中,可预先设置每个网格的大小和形状,并且将前端网页划分为多个大小相同的网格,其中,前端网页位于一个二维坐标系中,则多个大小相同的网格的每个顶点均对应一个二维坐标,如此,得到节点的二维坐标为该节点对应的网格的顶点的二维坐标。
可选地,上述步骤104中,根据所述网格确定所述节点的二维坐标,可包括以下步骤:
41、获取所述前端页面;
42、将所述前端页面根据预设的网格大小和形状初始化成多个相同大小的网格,所述多个相同大小的网格位于同一个二维坐标系中,每一个所述网格的顶点对应一个二维坐标,所述节点与所述网格的顶点对应,所述节点与所述二维坐标对应。
本申请实施例中,前端页面可为任意一个展示工作流的页面,预设的网格大小和形状可由用户自行设置或者系统默认,可根据不同的前端页面设置预设的网格的大小或者形状,节点可位于网格的任意一个顶点,每个顶点可对应一个二维坐标,则每个节点可对应一个顶点的二维坐标。
105、按照第三预设规则构建包括任意两个节点之间的连线,根据所述节点的二维坐标,计算所述连线的向量。
其中,第三预设规则可为用户自行设定或者系统默认,可预设节点的类型,并根据节点的类型设置优先级,根据预设的节点类型的优先级构建包括两个节点之间的连线,其中,每条连线可对应工作流中的一个业务,举例来说,可获取网格中任意两个节点,根据两个节点的二维坐标构建连线,节点与连线的对应的数据与坐标可对应的存储于数据库中的路由表和坐标表中。
可选地,上述步骤105中,按照第三预设规则构建包括任意两个节点之间的连线,可包括以下步骤:
51、获取所述数据库中预先存储的节点类型的优先级;
52、根据所述节点类型的优先级,构建所述节点之间的连线。
本申请实施例中,可预先将节点进行分类,节点的类型可包括以下至少一种:普通任务节点、分支节点、合并节点、开始节点以及结束节点,在此不做限定,普通任务节点可包括:父节点、子节点等等,在工作流中,当前节点为各节点间的执行顺序中后一个节点的父节点,后一个节点为当前节点的子节点,举例来说,可获取开始节点和结束节点的二维坐标,绘制两点间的连线。
106、判断连线i与连线j之间是否存在交叉或者重合的情况,所述连线i、所述连线j为所述任意两个节点构建的任意两条连线。
本申请实施例中,在工作流中,若工作流业务所对应的连线之间存在重合的情况,则说明该连线代表的业务可能出现重复的情况,连线i与连线j可为任意两个节点构成的任意两条连线,在构建连线以后,连线i与连线j可能会存在交叉或者重合的情况,因此,需要判断连线i与连线j之间是否存在交叉或者重合的情况。
可选地,上述步骤106中,判断连线i与连线j之间是否存在交叉或者重合的情况,可包括如下步骤:
A1、获取由第一节点和第二节点连线成的连线i,所述第一节点、所述第二节点为所述节点中的任意两个节点;
A2、获取由第三节点和第四节点连线成的连线j,所述第三节点、所述第四节点为除所述第一节点和所述第二节点以外的任意两个节点;
A3、根据所述第一节点的二维坐标、所述第三节点的二维坐标和所述第四节点的二维坐标,计算所述第一节点与所述第三节点、所述第四节点之间的向量;
A4、将所述第一节点与所述第三节点、第四节点之间的向量分别与所述连线i的向量作向量叉乘计算,得到两个计算结果值a与b;
A5、若所述两个计算结果值a与b同号,则所述连线i与所述连线j之间不存在交叉的情况;
A6、若所述两个计算结果值a与b异号,则计算所述第三节点与所述第一节点、第二节点之间的向量;
A7、将所述第三节点与所述第一节点、第二节点之间的向量分别与所述连线j的向量作向量叉乘计算,得到两个计算结果值c与d;
A8、若所述两个计算结果值c与d异号,则确定所述连线i与所述连线j之间存在交叉的情况。
本申请实施例中,第一节点、第三节点可为开始节点,第二节点、第四节点可为结束节点,若两个计算结果值a与b异号,则连线i与连线j可能会存在交叉的情况,因此需要进一步判断连线i与连线j是否会存在交叉的情况。
举例来说,请参阅图2,图2为一种连线交叉的情况图,图中连线AB的开始节点A和结束节点B二维坐标分别为:A(2,7)、B(8,2),连线CD的开始节点C和结束节点D的二维坐标分别为:C(2,1)、D(6,5),判断连线AB和连线CD是否存在交叉的现象的具体方法包括:计算连线AB的向量为:选用计算连线AB的开始节点A与连线CD的开始节点C和结束节点D连成的向量分别为:向量然后分别与向量做叉乘: 可以看出,与的计算结果值异号,则说明连线CD的开始节点C和结束节点D在连线AB的两边,接下来,计算连线CD的开始节点C与连线AB的开始节点A和结束节点B连成的向量分别为:向量然后分别与向量做叉乘: 可以看出,的计算结果值与计算结果值异号,则连线AB与CD之间一定存在交叉现象。
可选地,上述步骤106中,判断连线i与连线j之间是否存在交叉或者重合的情况,还可包括如下步骤:
B1、根据所述连线i的所述向量和所述连线j的所述向量,确定根据所述连线i的所述向量和所述连线j的所述向量之间作向量叉乘计算的计算结果值e;
B2、若所述计算结果值e为零,获取由所述第二节点和所述第三节点连线成的连线k,计算所述连线k的向量;
B3、获取由所述第三节点和所述第四节点连线成的连线l,计算所述连线l的向量;
B4、根据所述连线k的所述向量和所述连线l的所述向量,确定根据所述连线k的所述向量和所述连线l的所述向量之间作向量叉乘计算的计算结果值f;
B5、若所述计算结果值f为零,则确定所述连线i和所述连线j之间存在重合的情况。
本申请实施例中,与上述一致的,第一节点、第三节点可为开始节点,第二节点、第四节点可为结束节点,若连线之间存在重合的情况,则说明工作流中两条连线代表的业务可能出现重复的情况,会影响整个工作流流程的运行,因此,需要判断连线i与连线j之间是否存在重合或者平行的情况,其中,若连线i的向量和连线j的向量之间作向量叉乘计算的计算结果值e为零,则连线i与连线j可能存在重合或者平行的情况,需要进一步的判断连线i与连线j之间是否存在重合的情况。
举例来说,请参阅图3,图3为一种连线重合的情况图,获取连线AB的开始节点A和结束节点B的二维坐标分别为A(7,9)、B(7,1),获取连线C1D1的开始节点C1和结束节点D1的二维坐标分别为C1(7,6)、D1(7,4),判断连线AB和连线C1D1是否存在重合的现象的具体方法包括:计算向量叉乘向量得出计算结果值计算结果值为0,此时,再计算向量和向量将向量BC1与向量C1D1做叉乘计算,计算结果为0,则表示连线AB与连线C1D1一定存在重合的现象。
举例来说,请参阅图4,图4为一种连线平行的情况图,通过计算获取连线AB的开始节点A和结束节点B的坐标分别为A(7,9)、B(7,1),获取连线C2D2的开始节点C2和结束节点D2的坐标分别为C2(3,3)、D2(3,7),判断连线AB和连线C2D2是否存在重合的现象的具体方法包括:计算向量叉乘向量得出计算结果值计算结果值为0,此时,计算向量和向量将向量BC2与向量C2D2做叉乘计算,计算结果值为16,不为0,则表示连线AB与连线C2D2不存在重合的现象。
107、如果存在,则删除所述连线i与所述连线j中任意一条连线,并渲染整个所述前端页面,得到工作流。
本申请实施例中,在工作流中,若连线之间存在重合或者交叉的情况,则说明两条连线代表的业务可能出现重复的情况,会影响整个工作流流程的运行,具体地,可删除其中任意一条连线,保留另一条连线,然后,可预设节点的类型,并且根据预设的节点的类型的优先级确定连线之间的优先级,根据连线之间的优先级,调取数据库中路由表和坐标表中存储的节点与连线的数据以及坐标,依次渲染出整个页面,其中,预设的节点类型可由用户自行设置或者系统默认。
108、如果不存在,则根据所述连线,渲染整个所述前端页面,得到工作流。
本申请实施例中,如果连线之间不存在交叉或者重合的情况,则可根据预设的节点的类型以及节点之间的优先级,确定由各个节点构成的连线之间的优先级来依次的渲染前端页面。
可选地,上述步骤108中,根据所述连线,渲染整个所述前端页面,得到工作流,可包括如下步骤:
81、获取预设的所述节点的类型的优先级;
82、根据所述节点的类型的优先级确定所述连线之间的优先级;
83、根据所述连线之间的优先级,渲染整个所述前端页面,得到工作流。
本申请实施例中,预设的节点的优先级可由用户自行设置或者系统默认,可根据预设的节点的类型的优先级确定连线之间的优先级,根据连线之间的优先级,调取数据库中路由表和坐标表中存储的节点与连线的数据以及坐标,依次渲染出整个页面。具体的,可预设开始节点的优先级为最高级别,其余的节点的优先级级别按照从大到小的排序依次预设为:分支节点、普通任务节点、合并节点、结束节点,其中,每个普通任务节点优先渲染由父节点构成的连线,在每个分支中的节点渲染优先级级别与上述节点的优先级级别相同。
可选的,可对前端页面上的节点进行新增、修改和删除操作,同时,前端页面上的任何一项操作都会最终反映到工作流中的业务流程的整体调用的修改上,例如,在前端页面上删除节点与节点之间的连线,则代表对应的数据库中路由表和坐标表中存储的节点与连线的数据以及坐标均可被删除。
可以看出,本申请实施例中所描述的配置工作流的方法,应用于服务器,服务器接收到后台终端发送的第一请求,第一请求用于请求所述服务器创建工作流,第一请求携带第一格式的工作流数据,将第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据,并存入数据库中,将第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,节点位于网格的顶点位置,根据网格确定节点的二维坐标,节点与二维坐标对应,按照第三预设规则构建包括两个节点之间的连线,根据节点的二维坐标,计算连线的向量,根据连线的向量判断连线i与连线j之间是否存在交叉或者重合的情况,如果存在,则删除连线i与连线j中任意一条连线,并渲染整个页面,得到工作流,如果不存在,则根据连线,渲染整个页面,得到工作流,如此,业务与业务之间的调用对应到页面上节点与节点之间的连线,通过判断连线是否相交或者重合的情况,能够有效的避免页面渲染时出现的线穿过线、线与线重叠无法正常展示的问题。
与上述一致地,图5是本申请实施例公开的一种配置工作流的方法的流程示例图,该配置工作流的方法可包括如下步骤:
501、接收到后台终端发送的第一请求,所述第一请求用于请求所述服务器创建工作流,所述第一请求携带第一格式的工作流数据。
502、所述服务器接收到所述后台终端返回的第二请求,所述第二请求用于请求所述服务器进行格式转换,所述第二请求中携带所述第一格式的工作流数据。
503、若所述第二请求通过,则将所述第一格式数据进行格式转换,得到第二格式的工作流数据。
504、将所述第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,所述节点位于所述网格的顶点位置。
505、根据所述网格确定所述节点的二维坐标,所述节点与所述二维坐标对应。
506、获取所述数据库中预先存储的节点类型的优先级。
507、根据所述节点类型的优先级,构建所述节点之间的连线。
508、根据所述节点的二维坐标,计算所述连线的向量。
509、判断连线i与连线j之间是否存在交叉或者重合的情况,所述连线i、所述连线j为所述任意两个节点构建的任意两条连线。
510、如果存在,则删除所述连线i与所述连线j中任意一条连线,并渲染整个所述前端页面,得到工作流。
511、如果不存在,则根据所述连线,渲染整个所述前端页面,得到工作流。
其中,上述步骤501-步骤511的具体描述可以参照图1所描述的配置工作流的方法的相应描述,在此不再赘述。
可以看出,本申请实施例所描述的配置工作流的方法,应用于服务器,服务器接收到后台终端发送的第一请求,第一请求用于请求服务器创建工作流,第一请求携带第一格式的工作流数据,服务器接收到后台终端返回的第二请求,第二请求用于请求服务器进行格式转换,第二请求中携带第一格式的工作流数据,若第二请求通过,则将第一格式数据进行格式转换,得到第二格式的工作流数据,将第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,节点位于网格的顶点位置,根据网格确定节点的二维坐标,节点与二维坐标对应,获取数据库中预先存储的节点类型的优先级,根据节点类型的优先级,构建节点之间的连线,根据节点的二维坐标,计算连线的向量,判断连线i与连线j之间是否存在交叉或者重合的情况,如果存在,则删除连线i与连线j中任意一条连线,如果不存在,则根据连线,渲染整个前端页面,得到工作流,如此,业务与业务之间的调用对应到页面上节点与节点之间的连线,通过判断连线是否相交或者重合的情况,能够有效的避免页面渲染时出现的线穿过线、线与线重叠无法正常展示的问题。
与上述一致地,图6是本申请实施例公开的一种配置工作流的方法的流程示例图,该配置工作流的方法可包括如下步骤:
601、接收到后台终端发送的第一请求,所述第一请求用于请求所述服务器创建工作流,所述第一请求携带第一格式的工作流数据。
602、将所述第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据,并存入数据库中。
603、将所述第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,所述节点位于所述网格的顶点位置。
604、根据所述网格确定所述节点的二维坐标,所述节点与所述二维坐标对应。
605、按照第三预设规则构建包括两个节点之间的连线,根据所述节点的二维坐标,计算所述连线的向量。
606、判断连线i与连线j之间是否存在交叉或者重合的情况,所述连线i、所述连线j为所述任意两个节点构建的任意两条连线。
607、如果存在,则删除所述连线i与所述连线j中任意一条连线,并渲染整个所述前端页面,得到工作流。
608、如果不存在,获取预设的所述节点的类型的优先级。
609、根据所述节点的类型的优先级确定所述连线之间的优先级。
610、根据所述连线之间的优先级,渲染整个所述前端页面,得到工作流。
其中,上述步骤601-步骤610的具体描述可以参照图1所描述的配置工作流的方法的相应描述,在此不再赘述。
可以看出,本申请实施例所描述的配置工作流的方法,服务器接收到后台终端发送的第一请求,第一请求用于请求服务器创建工作流,第一请求携带第一格式的工作流数据,将第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据,并存入数据库中,将第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,节点位于网格的顶点位置,根据网格确定节点的二维坐标,节点与二维坐标对应,按照第三预设规则构建包括两个节点之间的连线,根据节点的二维坐标,计算连线的向量,判断连线i与连线j之间是否存在交叉或者重合的情况,如果存在,则删除连线i与连线j中任意一条连线,并渲染整个页面,得到工作流,如果不存在,获取预设的节点的类型的优先级,根据优先级级别确定连线之间的优先级,根据连线之间的优先级,渲染整个前端页面,得到工作流,如此,业务与业务之间的调用对应到页面上节点与节点之间的连线,通过判断连线是否相交或者重合的情况,能够有效的避免页面渲染时出现的线穿过线、线与线重叠无法正常展示的问题。
请参阅图7,图7为本申请实施例提供的一种服务器的结构示意图,如图7所示,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,上述程序包括用于执行以下步骤的指令:
所述服务器接收到后台终端发送的第一请求,所述第一请求用于请求所述服务器创建工作流,所述第一请求携带第一格式的工作流数据;
将所述第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据,并存入数据库中;
将所述第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,所述节点位于所述网格的顶点位置;
根据所述网格确定所述节点的二维坐标,所述节点与所述二维坐标对应;
按照第三预设规则构建包括两个节点之间的连线,根据所述节点的二维坐标,计算所述连线的向量;
根据所述连线的向量判断连线i与连线j之间是否存在交叉或者重合的情况,所述连线i、所述连线j为所述任意两个节点构建的任意两条连线;
如果存在,则删除所述连线i与所述连线j中任意一条连线,并渲染整个页面,得到工作流;
如果不存在,则根据所述连线,渲染整个所述页面,得到工作流。
在一个可能的示例中,在在所述将所述第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据之前,所述程序还包括用于执行以下步骤的指令:
接收到所述后台终端发送的第二请求,所述第二请求用于请求所述服务器进行格式转换,所述第二请求中携带所述第一格式的工作流数据;
若所述第二请求通过,则将所述第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据第二格式的工作流数据。
在一个可能的示例中,在所述根据所述网格确定所述节点的二维坐标方面,所述程序还包括用于执行以下步骤的指令:
获取所述前端页面;
将所述前端页面根据预设的网格大小和形状初始化成多个相同大小的网格,所述多个相同大小的网格位于同一个二维坐标系中,每一个所述网格的顶点对应一个二维坐标,所述节点与所述网格的顶点对应,所述节点与所述二维坐标对应。
在一个可能的示例中,所述按照第三预设规则构建包括两个节点之间的连线方面,所述程序还包括用于执行以下步骤的指令:
获取所述数据库中预先存储的节点类型的优先级;
根据所述节点类型的优先级,构建所述节点之间的连线。
在一个可能的示例中,根据所述连线,渲染整个所述前端页面,得到工作流方面,所述程序还包括用于执行以下步骤的指令:
获取预设的所述节点的类型的优先级;
根据所述优先级级别确定所述连线之间的优先级;
根据所述连线之间的优先级,渲染整个所述前端页面,得到工作流。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对服务器进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
请参阅图8,图8是本申请实施例公开的一种配置工作流的装置的结构示意图,该装置包括:接收单元801、转换单元802、生成单元803、确定单元804、构建单元805、判断单元806和渲染单元807,其中:
所述接收单元801,用于接收到后台终端发送的第一请求,所述第一请求用于请求所述服务器创建工作流,所述第一请求携带第一格式的工作流数据;
所述转换单元802,用于将所述第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据,并存入数据库中;
所述生成单元803,用于用于将所述第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,所述节点位于所述网格的顶点位置;
所述确定单元804,用于根据所述网格确定所述节点的二维坐标,所述节点与所述二维坐标对应;
所述构建单元805,用于按照第三预设规则构建包括两个节点之间的连线,根据所述节点的二维坐标,计算所述连线的向量;
所述判断单元806,用于判断连线i与连线j之间是否存在交叉或者重合的情况,所述连线i、所述连线j为所述任意两个节点构建的任意两条连线;
所述渲染单元807,用于如果存在,则删除所述连线i与所述连线j中任意一条连线,并渲染整个前端页面,得到工作流;如果不存在,则根据所述连线,渲染整个所述前端页面,得到工作流。
可选的,在判断连线i与连线j之间是否存在交叉或者重合的情况方面,所述判断单元806具体用于:
获取由第一节点和第二节点连线成的连线i,所述第一节点、所述第二节点为所述节点中的任意两个节点;
获取由第三节点和第四节点连线成的连线j,所述第三节点、所述第四节点为除所述第一节点和所述第二节点以外的任意两个节点;
根据所述第一节点的二维坐标、所述第三节点的二维坐标和所述第四节点的二维坐标,计算所述第一节点与所述第三节点、所述第四节点之间的向量;
将所述第一节点与所述第三节点、第四节点之间的向量分别与所述连线i的向量作向量叉乘计算,得到两个计算结果值a与b;
若所述两个计算结果值a与b同号,则所述连线i与所述连线j之间不存在交叉的情况;
若所述两个计算结果值a与b异号,则计算所述第三节点与所述第一节点、第二节点之间的向量;
将所述第三节点与所述第一节点、第二节点之间的向量分别与所述连线j的向量作向量叉乘计算,得到两个计算结果值c与d;
若所述两个计算结果值c与d异号,则确定所述连线i与所述连线j之间存在交叉的情况。
可选的,在判断连线i与连线j之间是否存在交叉或者重合的情况方面,所述判断单元806具体用于:
根据所述连线i的所述向量和所述连线j的所述向量,确定根据所述连线i的所述向量和所述连线j的所述向量之间作向量叉乘计算的计算结果值e;
若所述计算结果值e为零,获取由所述第二节点和所述第三节点连线成的连线k,计算所述连线k的向量;
获取由所述第三节点和所述第四节点连线成的连线l,计算所述连线l的向量;
根据所述连线k的所述向量和所述连线l的所述向量,确定根据所述连线k的所述向量和所述连线l的所述向量之间作向量叉乘计算的计算结果值f;
若所述计算结果值f为零,则确定所述连线i和所述连线j之间存在重合的情况。
可以看出,本申请实施例中所描述的配置工作流的装置,应用于服务器,服务器接收到后台终端发送的第一请求,第一请求用于请求所述服务器创建工作流,第一请求携带第一格式的工作流数据,将第一格式的工作流数据按照第一预设规则转换成第二格式的工作流数据,并存入数据库中,将第二格式的工作流数据按照第二预设规则在前端页面的网格中生成节点,节点位于网格的顶点位置,根据网格确定节点的二维坐标,节点与二维坐标对应,按照第三预设规则构建包括两个节点之间的连线,根据节点的二维坐标,计算连线的向量,根据连线的向量判断连线i与连线j之间是否存在交叉或者重合的情况,如果存在,则删除连线i与连线j中任意一条连线,并渲染整个页面,得到工作流,如果不存在,则根据连线,渲染整个页面,得到工作流,如此,业务与业务之间的调用对应到页面上节点与节点之间的连线,通过判断连线是否相交或者重合的情况,能够有效的避免页面渲染时出现的线穿过线、线与线重叠无法正常展示的问题。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种配置工作流方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种配置工作流方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。