flowable审批流+集成springboot

目录

1 导包

2 application.yml配置 添加以下属性

3 创建表(初始化表数据)

4 常用方法总结(很重要的)

4.1 属性注入

4.2 按照任务id查询数据

4.3 查询审批候选人

4.4 开启流程

4.5 领取任务

4.6 任务审批


1 导包

<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-spring-boot-starter</artifactId>
    <version>${flowable.version}</version>
</dependency>

2 application.yml配置 添加以下属性

flowable:

        async-executor-activate: false #关闭定时任务JOB

# 将databaseSchemaUpdate设置为true。当Flowable发现库与数据库表结构不一致时,会自动将数据库表结构升级至新版本。

        database-schema-update: true

3 创建表(初始化表数据)

public static void main(String[] args) {

        //1、创建ProcessEngineConfiguration实例,该实例可以配置与调整流程引擎的设置

        ProcessEngineConfigurationcfg=new StandaloneProcessEngineConfiguration()

        //2、通常采用xml配置文件创建ProcessEngineConfiguration,这里直接采用代码的方式

        //3、配置数据库相关参数

        .setJdbcUrl("jdbc:mysql://localhost:3306/flowable_demo?        useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2b8&nullCatalogMeansCurrent=true")

        .setJdbcUsername("root")

        .setJdbcPassword("root")

        .setJdbcDriver("com.mysql.jdbc.Driver")

        .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

        //4、初始化ProcessEngine流程引擎实例

        ProcessEngine processEngine=cfg.buildProcessEngine();

}

执行以上main方法,便可生成数据库表

4 常用方法总结(很重要的)

4.1 属性注入

        @Resource

        private ProcessEngine processEngine;

        @Resource

        private TaskService taskService;

        @Resource

        private RuntimeService runtimeService;

4.2 按照任务id查询数据

        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();

4.3 查询审批候选人

        taskService.createTaskQuery().includeIdentityLinks().singleResult().getIdentityLinks();

4.4 开启流程

        HashMap map = new HashMap<>();

        map.put("userIds", candidateUserIds); // 审批候选人

        runtimeService.startProcessInstanceByKey(processDefinitionKey, map);

processDefinitionKey(xml文件中流程定义id):为xml文件中的id

4.5 领取任务

        taskService.claim(taskId,userId);

4.6 任务审批

        HashMap<String, Object> map = new HashMap<>();
        map.put("result", reqVo.getApprovalResult().getValue());
        map.put("userIds", reqVo.getCandUserIds());
        taskService.complete(taskId, map);


版权声明:本文为ytyDaMoTou原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。