这是关于lumos 工作流项目核心的二次开发文档.

1. 环境安装

1.1. 平台依赖

  1. 开发集成环境(Eclipse,IDEA)

  2. Maven3.6

  3. Lumos

1.2. Maven 依赖信息

接口SDK产品依赖信息
----
<groupId>com.ags.lumosframework</groupId>
<artifactId>lumos-workflow-sdk</artifactId>
<version>1.0.0-SNAPSHOT</version>
----
后端产品依赖信息
----
<groupId>com.ags.lumosframework</groupId>
<artifactId>lumos-workflow-impl</artifactId>
<version>1.0.0-SNAPSHOT</version>
----
前端产品依赖信息
----
<groupId>com.ags.lumosframework</groupId>
<artifactId>lumos-workflow-vaadin</artifactId>
<version>1.0.0-SNAPSHOT</version>
----

2. 定制项目中如何引用

在项目中使用工作流非常简单,只需要引入对应的jar包即可。

2.1. 定制项目sdk项目依赖引入

将如下依赖加入定制项目的SDK(也就是接口定义项目)中。

        <dependency>
            <groupId>com.ags.lumosframework</groupId>
            <artifactId>lumos-workflow-sdk</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>

2.2. 定制项目后端依赖引入

将如下依赖加入定制项目的后端服务实现中。

    <dependency>
        <groupId>com.ags.lumosframework</groupId>
        <artifactId>lumos-workflow-impl</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>

2.3. 定制项目前端依赖引入

将如下依赖加入定制项目的后端服务实现中。

    <dependency>
        <groupId>com.ags.lumosframework</groupId>
        <artifactId>lumos-workflow-vaadin</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>
如果定制项目的项目接口没有这么详细的划分,比如说所有的项目实现都在一个项目中,那么将上述依赖全局加入这个项目的pom文件即可。

2.4. 配置界面进入

一旦加入上述的依赖,代表所有相关的实现将全部加入到定制项目中,为了显示工作流的入口,还差最后一步。 在定制项目中定义将工作流页面放入的菜单中即可。

@Secured(WorkFlowPrivilegeConstants.WORKFLOW)
@SpringView(name = IWorkFlowDefinitionView.NAME, ui = {YourUI}.class)
@Menu(caption = "WorkFlow", captionI18NKey = "Configuration.WorkFlow", iconPath = "images/icon/workFlow.png", order = 0)
public class WorkFlowDefinitionViewWrapper extends WorkFlowDefinitionViewImpl {

    /**
     *
     */
    private static final long serialVersionUID = 2364086597173357544L;

}
请将{YourUI}替换为你自己的UI定义,就可以在你的菜单中看到工作流的入口。

2.4.1. 界面配置

  1. 创建工作流以及节点

(1) 创建工作流

通过选择工作流菜单打开后,增加工作流,如图:

addWorkflow

(2) 创建节点

创建完工作流后,其次在创建节点,节点类型分为4种,全部通过网关,任一通过网关,任务节点,循环节点,下面依次介绍。

创建完节点后,可以通过节点上下移动,如图:

move

(3) 复制工作流

创建完整个工作流后可以对当前的工作流进行复制的功能,复制后,节点的内容以及名字将不会做任何改变,工作流的名字后面会跟上斜杠以及从1开始的流水号,依次往下,如图:

copy

(4) 发布工作流

创建完成工作流以及节点后,确保没有问题,则可以点击发布按钮,进行发布,发布完成后及各个模块才能正常使用,如果对工作流中的节点进行了节点修改,则需要对整个工作流进行重新的发布后,才可对修改的工作流生效,此时提交申请则是新工作流的路线。

  1. 串行配置工作流

(1) 用户配置工作流

如下图,增加工作流后,增加工作任务,节点类型选择任务节点,负责人类型选择某个用户,如需要邮件发送,则需要选择邮件

addUser

增加节点后需要配置流程,配置如下:

process

选择下一节点任务,如下一个节点没有的时候,则不选择,当只有并行情况下才会用到上一个节点,所以串行情况下并不存在上一节点的设置。

(2) 本部门以及跨部门任务配置

如下图,如需设置本部门情况,则需要配置节点类型为部门,部门选择为空,职位选择相应的职位,本部门的意思就是为提交人的那个部门,是不固定的,根据提交人来定。

department

本部门中的职位是根据组织架构来设定的,会一层一层网上找部门,根据部门的负责人来审批,如需跨部门,则需要设置部门加职位,会去找部门上的职位的那个人来审批,如图:

accrossDepartment

如需要设置用户,则和跨部门情况一样,在本部门后面增加一个用户节点即可,如图:

accrossUser

(3) 循环节点

当部门和职位都不选择的时候,就需要设置循环节点,点击增加任务,选择节点类型为循环节点,选择循环参数配置默认情况下是有上级部门是循环,是根据组织架构一层一层网上找,如需要设置限制层级,则设置签核层级,到第几层结束,如图:

circulation

循环节点后面也可以跟部门加职位,或者人员的节点,当循环节点的循环条件结束时,将会执行下面的节点,如果没有将会结束节点,如图:

circulationUser

(4) 人事异动配置

如需配置人事异动,则需要配置两个循环节点,因为关联到跨部门的情况,从一个部门向另外一个部门做变动时需要此配置,如图:

personnelChanges
  1. 并行配置工作流

有两种情况,一种是全部通过网关,另一个任一通过网关,并且需要设置的进出网关需要一致并行节点上需要配置上一个节点

(1) 全部通过网关,当并行的节点全部通过的时候,网关节点才会通过,会去下一个节点,如果有一个节点驳回了,那就直接回到提交人手中,如图:

allPass

(2) 任一通过网关,当有一个并行的路线通过时,就代表网关节点通过,当所有并行线路都拒绝的时候,审批流就会直接回到提交人手中,如图:

anyonePass