pom.xml文件 <!-- activiti --> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>5.18.0</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>5.18.0</version> </dependency> <!-- activiti结束 -->
安装activiti插件
CSDN教程
创建bpm图
1.开始点
2.结束点
3.任务
4.执行人
5.流程id,流程名
部署流程
public class Test { // getDefaultProcessEngine会读取activiti.cfg.xml ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /** * 部署流程 */ @org.junit.Test public void deploy() { //读取资源文件部署 Deployment deploy = processEngine.getRepositoryService().createDeployment() .addClasspathResource("bpmn/helloWorld.bpmn").addClasspathResource("bpmn/helloWorld.png").deploy(); // act_re_deployment部署对象表 // act_re_procdef 流程定义表 // act_ge_bytearray 资源文件表 System.out.println(deploy.getId()); System.out.println(deploy.getName()); } }
启动流程
/** * 启动流程实例 */ @org.junit.Test public void run() { // key值对应bpmn中流程的id 默认按最新版本启动 ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey("helloWorld"); // 流程实例id System.out.println(pi.getId()); // 流程定义id System.out.println(pi.getProcessDefinitionId()); }
查询任务
/** * 查询任务 */ @org.junit.Test public void task() { // 通过执行人进行查询 List<Task> list = processEngine.getTaskService().createTaskQuery().taskAssignee("李四").list(); for (Task task : list) { // 任务id System.out.println(task.getId()); // 任务名 System.out.println(task.getName()); // 任务创建时间 System.out.println(task.getCreateTime()); // 流程实例id System.out.println(task.getProcessInstanceId()); // 流程定义id System.out.println(task.getProcessDefinitionId()); } }完成任务 /** * 完成任务 */ @org.junit.Test public void complete() { // 查询李四的所有任务 List<Task> list = processEngine.getTaskService().createTaskQuery().taskAssignee("李四").list(); for (Task task : list) { System.out.println(task.getId()); // 通过任务id进行完成 processEngine.getTaskService().complete(task.getId()); } }
查询所有部署 /** * 查询所有部署 */ @org.junit.Test public void findDeploy() { List<Deployment> deploymentList = processEngine.getRepositoryService().createDeploymentQuery().list(); for (Deployment deployment : deploymentList) { System.out.println(deployment.getId()); System.out.println(deployment.getName()); } }
删除流程定义
/** * 删除部署 */ @org.junit.Test public void deleteDeploy() { String deployString = "20001"; // 部署表,流程定义表,资源表内容删除 // 普通删除:如果本流程定义正在运行会抛出异常 // 多级删除: 删除与本流程定义所关联的所有信息 processEngine.getRepositoryService().deleteDeployment(deployString); System.out.println("删除部署成功"); }
获得部署资源文件
/** * 获得部署的资源文件 * * @throws IOException */ @org.junit.Test public void getResources() throws IOException { // 部署对象id String id = "7501"; // 查询出当前部署的所有资源文件png+bpm List<String> deploymentResourceNames = processEngine.getRepositoryService().getDeploymentResourceNames(id); String png = null; for (String name : deploymentResourceNames) { // 获得png文件名 if (name.indexOf(".png") >= 0) { png = name; } } System.out.println(png); // 获得当前文件流 InputStream resourceAsStream = processEngine.getRepositoryService().getResourceAsStream(id, png); File file = new File("d:/" + png); FileUtils.copyToFile(resourceAsStream, file); }