IDEA使用Gradle构建Activiti工作流引擎

本文通过一个简单的点餐流程案例,介绍了Activiti工作流引擎的基本使用方法,包括流程的部署、启动、任务分配与完成等关键步骤,并展示了相关数据库表的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搭建第一个Activity流程框架https://www.cnblogs.com/yanfeiLiu/p/9915709.html

Activiti数据库表结构(表详细版)https://www.cnblogs.com/telwanggs/p/7491564.html

以下为博主参考上述文章写的activiti工作流的小demo(简单粗暴一些只为记录,就不写那么详细了,想要详细过程的朋友可了解上面的链接【写的很不错噢】)

博主在写demo的时候也碰到了一些小问题大家可以看看哦【或许你可以用上噢!  朋友】 0.0

1、项目结构

2、附带源码

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.task.Task;
import org.junit.Test;

import java.util.List;

/**
 * 用于进行演示Activiti的首例程序,即描述如何在代码中实现学生进行请假申请,班主任审核,教务处审核
 **/
public class ActivitiTest {


    /**
     * 1、部署流程
     * 2、启动流程实例
     * 3、饿了的人发出点餐申请
     * 4、服务员查看任务
     * 5、服务员点餐
     * 6、厨师做饭
     */



    /**
     * 1:部署一个Activiti流程
     * 运行成功后,查看之前的数据库表,就会发现多了很多内容
     * act_ge_bytearray
     * act_re_deployment
     * act_re_procdef
     */
    @Test
    public void creatActivitiTask(){
        //加载的那两个内容就是我们之前已经弄好的基础内容哦。
        //得到了流程引擎
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        processEngine.getRepositoryService()
                .createDeployment()
                .addClasspathResource("eat.bpmn")
                .addClasspathResource("eat.png")
                .deploy();
    }
    /**
     * 2:启动流程实例(此步骤基于获取流程引擎步骤之上。注:是eat.bpmn不是eat.xml,否则获取流程引擎步骤导致数据库生成数据不完整)
     * act_hi_actinst
     * act_hi_procinst
     * act_hi_taskinst
     * act_ru_execution
     * act_ru_task
     */
    @Test
    public void testStartProcessInstance(){
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        processEngine.getRuntimeService()
                .startProcessInstanceById("myProcess_1:1:5004");  //这个是查看数据库中act_re_procdef表ID值
    }
    /**
     * 3:完成点餐申请
     * act_hi_actinst
     * act_hi_identitylink
     * act_hi_taskinst
     * act_ru_execution
     * act_ru_identitylink
     * act_ru_task
     */
    @Test
    public void testOrder(){
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        processEngine.getTaskService()
                .complete("7504"); //查看act_ru_task表ID
    }

    /**
     * 4:饿了 服务员小张查询当前正在执行任务
     */
    @Test
    public void testQueryTask(){
        //下面代码中的小张,就是我们之前设计那个流程图中添加的服务员内容
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        List<Task> tasks = processEngine.getTaskService()
                .createTaskQuery()
                .taskAssignee("小张")
                .list();
        for (Task task : tasks) {
            System.out.println(task.getName());
        }
    }

    /**
     * 5:服务员小张完成任务
     * act_hi_actinst
     * act_hi_identitylink
     * act_hi_taskinst
     * act_ru_execution
     * act_ru_identitylink
     * act_ru_task
     */
    @Test
    public void testFinishTask_manager(){
        ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
        engine.getTaskService()
                .complete("10002"); //查看act_ru_task数据表ID
    }

    /**
     * 6:厨师老李完成的任务
     * act_hi_actinst
     * act_hi_taskinst
     * act_ru_execution
     * act_ru_identitylink
     * act_ru_task
     */
    @Test
    public void testFinishTask_Boss(){
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        processEngine.getTaskService()
                .complete("12502");  //查看act_ru_task数据表ID
    }

}


/*
一般数据:
    ACT_GE_BYTEARRAY    通用的流程定义和流程资源
    ACT_GE_PROPERTY     系统相关属性
流程历史记录:
    ACT_HI_ACTINST      历史的流程实例
    ACT_HI_ATTACHMENT   历史的流程附件
    ACT_HI_COMMENT      历史的说明性信息
    ACT_HI_DETAIL       历史的流程运行中的细节信息
    ACT_HI_IDENTITYLINK 历史的流程运行过程中用户关系
    ACT_HI_PROCINST     历史的流程实例
    ACT_HI_TASKINST     历史的任务实例
    ACT_HI_VARINST      历史的流程运行中的变量信息
用户用户组表:
    ACT_ID_GROUP        身份信息-组信息
    ACT_ID_INFO         身份信息-组信息
    ACT_ID_MEMBERSHIP   身份信息-用户和组关系的中间表
    ACT_ID_USER         身份信息-用户信息
流程定义表:
    ACT_RE_DEPLOYMENT   部署单元信息
    ACT_RE_MODEL        模型信息
    ACT_RE_PROCDEF      已部署的流程定义
运行实例表:
    ACT_RU_EVENT_SUBSCR 运行时事件
    ACT_RU_EXECUTION    运行时流程执行实例
    ACT_RU_IDENTITYLINK 运行时用户关系信息
    ACT_RU_JOB          运行时作业
    ACT_RU_TASK         运行时任务
    ACT_RU_VARIABLE     运行时变量表
*/

3、数据库生成的25张表

结束。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值