模拟请假流程
activiti 默认表初始化到数据库这个步骤省略。
1.创建项目
2.在src/resources下创建HelloWorld.bpmn文件
3.在bpmn文件中绘制流程图
4.对提交申请,部门审批,总经理审批分别设置角色张三,李四,王五。
5.流程图导出图片
先将bpmn文件后缀改为xml文件,然后利用jbpm导出为图片格式,然后将xml改回bpmn格式
6.创建Hello类模拟请假流程
package com.springboot.springbootactiviti.hello;
import org.activiti.engine.*;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.task.Task;
import java.util.List;
public class Hello {
//获取工作流引擎
private static ProcessEngine processEngine =
ProcessEngines.getDefaultProcessEngine();
/**
* 部署流程
*/
public static void deployProcess(){
//获取流程部署的service
RepositoryService repositoryService =
processEngine.getRepositoryService();
Deployment deploy =
repositoryService.createDeployment().name("请假流程001")
.addClasspathResource("HelloWorld.bpmn")
.addClasspathResource("HelloWorld.png")
.deploy();
System.out.println("部署成功:"+deploy.getId());
}
/**
* 启动流程
*
*/
public static void startProcess(){
RuntimeService rs = processEngine.getRuntimeService();
//流程实例ID 在数据库中act_re_procdef表中
rs.startProcessInstanceById("此参数为流程实例ID");
System.out.println("启动成功");
}
/**
* 查询任务
*/
public static void findTask(){
TaskService taskService = processEngine.getTaskService();
List<Task> list = taskService.createTaskQuery()
.taskAssignee("此参数为每一步的任务办理人").list();
if(!list.isEmpty()){
for (Task l:
list) {
System.out.println("任务ID:"+l.getId());
System.out.println("流程实例ID:"+l.getProcessInstanceId());
System.out.println("执行实例ID:"+l.getExecutionId());
System.out.println("流程定义ID:"+l.getProcessDefinitionId());
System.out.println("任务名称:"+l.getName());
System.out.println("任务办理人:"+l.getAssignee());
}
}
}
/**
*执行任务
*/
public static void DoTask(){
TaskService taskService = processEngine.getTaskService();
taskService.complete("此参数为每走一个节点所记录的ID");
System.out.println("任务完成");
}
public static void main(String[] args) {
deployProcess();
startProcess();
findTask();
DoTask();
}
}