欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

程序员文章站 2022-07-01 23:02:37
在很早之前的随笔里面,已经介绍了WInform框架中工作流模块的功能,不过由于工作流模块中界面处理部分比较麻烦,一直没有在Bootstrap框架中进行集成,最近由于项目的关系,花了不少精力,把工作流模块重新梳理迁移到Bootstrap框架上,本篇随笔主要介绍基于Metronic的Bootstrap开... ......

在很早之前的随笔里面,已经介绍了winform框架中工作流模块的功能,不过由于工作流模块中界面处理部分比较麻烦,一直没有在bootstrap框架中进行集成,最近由于项目的关系,花了不少精力,把工作流模块重新梳理迁移到bootstrap框架上,本篇随笔主要介绍基于metronic的bootstrap开发框架的工作模块功能。

 1、工作流的设计模型

在我们开始介绍工作流模块功能之前,我们需要了解下工作流模块的设计模型,以便我们更好深入了解各个部分的功能。

我们知道,我们在office里面创建任何文档,都有一个模板的概念,这样我们方便利用一些现成的数据和布局,工作流也一样,有一个流程模板的概念。每个流程模板,本身会预定义了一系列的处理流程,以便在流程实例里面进行不同的处理,因此流程模板还包含了多个流程步骤对象。每个流程实例,除了他们自己的流程数据和字段信息外,它本身还有一个表单设计的问题,如费用审批,可能包含填写的费用清单数据等,所以流程实例还应该包含了流程的业务表单对象。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

在工作流处理表中,首先我们区分流程模板和流程实例两个部分,这个其实就是类似模板和具体文档的概念,我们一份模板可以创建很多个类似的文档,文档样式结构类似的。同理,流程模板实例为流程实例后,就是具体的一个流程表单信息了,其中流程模板和流程实例表单都包括了各个流程步骤。在流程实例的层次上,我们运行的时候,需要记录一些日志方便跟踪,如流程步骤的处理日志,流程实例表单的处理日志等这些信息。

一旦流程实例根据模板创建后,流程先根据模板初始化后,在处理过程还可以动态增加一些审批步骤,使得我们的处理更加弹性化。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

当然,为了更好的处理流程的相关信息,还需要记录流程处理人,流程会签人、流程阅办人,以及常用审批意见等相关辅助表,以便对流程的各个处理信息进行合理处理和展示。

对于一个流程处理操作,我们知道一般有审批通过、拒绝、退回到某步骤、转发到内部阅读、阅读,以及包括起草者能撤销表单呢等操作,当然如果还有一些具体的业务,可能还会有一些流程的处理才操作,不过基本上也可以归结为上面几种,只是他们每步处理的数据内容不同而已。因此审批的操作步骤分类如下所示。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

在流程审批中,一般还有一种流程处理就是会签的操作,会签处理是几个审批步骤中审批人同时处理是否通过的,一般同时通过即为通过。

会签是指创建一个或多个子流程供相关人员进行审批,等待全部人员完成处理后再次回到主流程上,然后决定是否继续流转到下一个流程步骤上去,一般的申请单的主流程如下所示。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

这里设置的会签处理就是其中一个步骤,一旦会签处理步骤发起会签,就会构建多个可供审批的子流程了,如下所示。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

在会签发起的步骤,指定参与具体流程会签审批的人员,然后流程则会流转到不同人员进行相关的处理【待办事项】。

我在工作流中定义会签完成后,由会签发起人审核(会签结果审核),决定是否进入下一步流程,在审核过程中决定如何处理这个申请单。

 

2、工作流模块介绍

1)流程环节管理

从上面的基础知识介绍中,我们知道,流程环节是构成流程模板和流程实例的基本单元,我们需要定义不同类型的流程处理环节,如审批、会签、阅办等等,不同类型的流程环节,在流程步骤的处理环节中是不一样的,我们也为这些不同的环节定义不同的审批界面。

首先我们在bootstrap框架的系统菜单中选择【工作流管理】【工作流维护】【流程环节管理】菜单,就可以进入对应的流程环节管理界面。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

在流程环节管理界面中,会列出系统所有定义好的流程环节,我们也可以定义自己的流程步骤。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

在系统主界面里面,我们一般已经预定义了一些常规的如审批、会签、阅办、归档等类型,我们如果需要定义特殊的审批界面,我们就可以在这里定义一些不同的流程环节,也可以对已有的环节进行一定的修改处理。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

 

2)流程模板管理

 通过第一步的流程环节定义,我们接下来就基于流程环节,定义流程模板的内容了,流程模板是我们开展一些工作流的基础,也就是说,我们先有特定流程的模板,然后才有具体的流程示例。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

流程模板我们定义的时候,需要指定它的具体名称,另外有几个字段是必须注意的,就是它的对应业务表名和创建流程url、查看流程url这几个信息。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

指定这些内容,我们在指定的视图页面中处理不同的流程信息,创建在create视图、查看在viewdetail视图,其中还会包含一个index视图列出该类型的申请单,这几个列表都可以使用代码生成工具快速生成,具体代码的生成过程,我会在随后的文章中及进行详细介绍。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

这样的自动化,可以迅速提高我们开发工作流业务的效率,并且和整个系统风格保持统一。这个就是我们整个开发框架系列的精髓所在,以工具提高效率,统一过程。 

再次回到流程模板的处理来,我们刚才只是定义了流程模板的一些基础信息,对于这个流程模板,我们还需要确定它的流程步骤,这个才是工作流的灵魂所在,动态化的流程步骤,可以满足我们大多数变化流程的需要。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

流程步骤的定义,如下界面所示,可以指定流程处理人,通过选定角色、部门或者具体人员都可以,如果没有选择具体的处理人,那么默认会以当前用户部门的人员供选择。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

如但用户选择人员的时候,弹出层可以根据组织机构、角色进行用户的筛选和选择。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍 

 

3)业务受理列表

 业务受理列表,是根据我们数据库中定义的流程模板,动态列出申请单的创建入口,提供一个统一的入口方便我们处理。

一下是我们工作流模块中定义好的一些流程模板,可以供创建业务表单。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

这些业务表单入口,单击后就可以创建对应类型的申请单了,我们以刚才介绍的请假申请为例,单击后进入请假申请单的create视图界面,创建新的申请。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

其他的业务申请单也是类似,我们只需要使用代码生成工具database2sharp对具体业务表单的工作流模块代码进行生成后,就可以配置使用,并且可以创建对应的业务表单的了。

对于一些具有明细表单的操作,也有案例可以供参考。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

 

4)我的审批工作

我的审批工作是列出和我相关的审批表单,包括已办、待办、 发起的几种类型的分类,其中每个种类型又可以继续细化不同表单类型,方便我们快速选择查看,如下列表所示。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

通过快速定位所需要的类型申请单,我们可以很好的完成一些待办工作,以及可以查看自己参与的流程申请单的处理情况等等。

双击其中的申请单,可以查看具体的申请详细信息,包括流程审批信息和业务表单信息等。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

而如果是流程处理中的申请单,我们可以在相关的处理按钮中执行我们自己的审批操作。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

 

5)所有申请单

 所有申请单是提供一个给流程管理员的一个入口,方便对一些错误或者不需要的申请单进行删除等维护操作。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

这里面列出的是系统所有的申请单,这个页面一般不暴露给普通用户,而是作为后台数据管理的一个页面,对不需要的数据进行删除操作的。

 

6)我的草稿

 我的草稿是提供一个界面维护我自己的申请单草稿的,界面效果如下所示。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍

在我们创建申请单的时候,有时候录入数据后暂时想存起来而不提交的话,保存为草稿就可以,下次则可以直接从草稿中继续申请单的处理。

基于Metronic的Bootstrap开发框架--工作流模块功能介绍