11activiti - 入门demo(IDEA)

代码已上传至Github:https://github.com/ylw-github/Activiti-Demo.git

1.新建maven项目

在这里插入图片描述
点击next,输入GroupId和ArtifactId,点击next,定义项目名和项目地址,Finish之后项目就建好了。
在这里插入图片描述

2.添加依赖

3.绘制工作流

使用bpmn插件,在java的resource目录下,点击New,选择BpmnFile,创建bpmn文件
在这里插入图片描述
我们需要一个开始,一个结束,两个UserTask
我们需要修改两个UserTask的Name和Assignee,如图:

员工请假:
在这里插入图片描述
经理审批:
在这里插入图片描述

保存之后打开可能会出现乱码,解决办法参考:https://blog.csdn.net/vimonkey/article/details/72910153

4.代码

在recourse目录下写一个activiti的配置文件activiti.cfg.xml。

新建测试工具类ActivitiTest.java,运行创建工作流方法
在这里插入图片描述
运行成功:
在这里插入图片描述
打开数据库,发现已经自动生成表了
在这里插入图片描述
下面附上完整的代码:

package com.ylw.activiti;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.task.Task;
import org.junit.Test;

import java.util.List;

public class ActivitiTest {
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();


    @Test
    public void testCreateProcessEngineByCfgXml() {
        ProcessEngineConfiguration cfg = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
        ProcessEngine engine = cfg.buildProcessEngine();
    }

    @Test
    public void test() {
        testCreateProcessEngineByCfgXml();
        deployProcess();
        startProcess();
        queryTask();
        //handle();
    }

    @Test
    public void startProcess() {
        RuntimeService runtimeService = processEngine.getRuntimeService();
        runtimeService.startProcessInstanceByKey("myProcess_1");
    }
    @Test
    public void deployProcess() {
        RepositoryService repositoryService = processEngine.getRepositoryService();
        DeploymentBuilder builder = repositoryService.createDeployment();
        builder.addClasspathResource("helloworld.bpmn");
        builder.deploy();
    }

    @Test
    public void queryTask() {
        TaskService taskService = processEngine.getTaskService();
        String assignee = "emp";
        List<Task> tasks = taskService.createTaskQuery().taskAssignee(assignee).list();

        int size = tasks.size();
        for (int i = 0; i < size; i++) {
            Task task = tasks.get(i);
        }

        for (Task task : tasks) {
            System.out.println("taskId:" + task.getId() +
                    ",taskName:" + task.getName() +
                    ",assignee:" + task.getAssignee() +
                    ",createTime:" + task.getCreateTime());
        }
    }

    @Test
    public void handleTask() {
        TaskService taskService = processEngine.getTaskService();
        String taskId = "25008";
        taskService.complete(taskId);
    }

}

发布了2618 篇原创文章 · 获赞 4883 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/qq_20042935/article/details/97888579