4.activiti7流程任务

it2026-08-11  10

首先部署流程

//通过bpmn部署流程 @Test public void initDeploymentBPMN(){ String filename="BPMN/Part4_Task.bpmn"; // String pngname="BPMN/Part1_Deployment.png"; Deployment deployment=repositoryService.createDeployment() .addClasspathResource(filename) //.addClasspathResource(pngname)//图片 .name("报销流程") .deploy(); System.out.println(deployment.getName()); }

然后可以在流程定义表找到key,或者通过以下方法

//查询流程定义 @Test public void getDefinitions(){ List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery() .list(); for(ProcessDefinition pd : list){ System.out.println("------流程定义--------"); System.out.println("Name:"+pd.getName()); System.out.println("Key:"+pd.getKey()); System.out.println("ResourceName:"+pd.getResourceName()); System.out.println("DeploymentId:"+pd.getDeploymentId()); System.out.println("Version:"+pd.getVersion()); } } pd.getKey()就是初始化实例的key //初始化流程实例 @Test public void initProcessInstance(){ //1、获取页面表单填报的内容,请假时间,请假事由,String fromData //2、fromData 写入业务表,返回业务表主键ID==businessKey //3、把业务数据与Activiti7流程数据关联 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_Task","bKey002"); System.out.println("流程实例ID:"+processInstance.getProcessDefinitionId()); }

初始化完实例后,就可以在ACT_RU_TASK运行时任务节点表找到该任务

以下为完整代码

package com.imooc.activitiweb; import org.activiti.engine.TaskService; import org.activiti.engine.task.Task; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; @SpringBootTest public class Part4_Task { @Autowired private TaskService taskService; //任务查询 @Test public void getTasks(){ List<Task> list = taskService.createTaskQuery().list(); for(Task tk : list){ System.out.println("Id:"+tk.getId()); System.out.println("Name:"+tk.getName()); System.out.println("Assignee:"+tk.getAssignee()); } } //查询我的代办任务 @Test public void getTasksByAssignee(){ List<Task> list = taskService.createTaskQuery() .taskAssignee("bajie") .list(); for(Task tk : list){ System.out.println("Id:"+tk.getId()); System.out.println("Name:"+tk.getName()); System.out.println("Assignee:"+tk.getAssignee()); } } //执行任务 @Test public void completeTask(){ taskService.complete("d07d6026-cef8-11ea-a5f7-dcfb4875e032"); System.out.println("完成任务"); } //拾取任务 @Test public void claimTask(){ Task task = taskService.createTaskQuery().taskId("1f2a8edf-cefa-11ea-84aa-dcfb4875e032").singleResult(); taskService.claim("1f2a8edf-cefa-11ea-84aa-dcfb4875e032","bajie"); } //归还与交办任务 @Test public void setTaskAssignee(){ Task task = taskService.createTaskQuery().taskId("1f2a8edf-cefa-11ea-84aa-dcfb4875e032").singleResult(); taskService.setAssignee("1f2a8edf-cefa-11ea-84aa-dcfb4875e032","null");//归还候选任务 taskService.setAssignee("1f2a8edf-cefa-11ea-84aa-dcfb4875e032","wukong");//交办 } }

在任务这块主要是这两个表

最新回复(0)