常用类引入的声明简介
一般使用都是使用不ACTIVITI_ADMIN权限得引入
@Autowired
public TaskService taskService;
@Autowired
public RuntimeService runtimeService;
@Autowired
public HistoryService historyService;
@Autowired
public RepositoryService repositoryService;
/**
* ProcessRuntime类内部最终调用repositoryService和runtimeService相关API。
* 需要ACTIVITI_USER权限
*/
@Autowired
public ProcessRuntime processRuntime;
/**
* ProcessRuntime类内部最终调用repositoryService和runtimeService相关API。
* 需要ACTIVITI_ADMIN权限
*/
@Autowired
public ProcessAdminRuntime processAdminRuntime;
/**
* 类内部调用taskService
* 需要ACTIVITI_USER权限
*/
@Autowired
public TaskRuntime taskRuntime;
/**
* 类内部调用taskService
* 需要ACTIVITI_ADMIN权限
*/
@Autowired
public TaskAdminRuntime taskAdminRuntime;
流程部署
public void init() {
String fileName = "bpmn/demo.bpmn20.xml";
Deployment deployment = this.repositoryService.createDeployment()
.addClasspathResource(fileName)
.name("demo流程测试")
.tenantId("10086")
.deploy();
log.info("流程部署名称:" + deployment.getName());
}
启动流程
public void start() {
//根据流程定义的key启动流程实例,这个key是在定义bpmn的时候设置的
ProcessInstance instance = runtimeService.startProcessInstanceByKeyAndTenantId("demo","10086");
//获取流程实例的相关信息
System.out.println("流程定义的id = " + instance.getProcessDefinitionId());
System.out.println("流程实例的id = " + instance.getId());
}
任务进行 单一负责人
public void testCompleteTask(){
//任务负责人
String assignee = "11,22,33";
//获取任务集合
List<Task> taskList = taskService.createTaskQuery()
.processDefinitionKey("demo")
// .taskAssignee(assignee)
.list();
//遍历任务列表
log.info("开始任务处理 {}", taskList);
for(Task task:taskList){
taskService.complete(task.getId());
}
}
根据用户信息查询任务 单一负责人
public void testSelectTodoTaskList(){
//任务负责人
String assignee = "11";
//创建ProcessEngine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//获取TaskService
TaskService taskService = processEngine.getTaskService();
//获取任务集合
List<Task> taskList = taskService.createTaskQuery()
.processDefinitionKey("demo")
.taskAssignee(assignee)
.list();
//遍历任务列表
for(Task task:taskList){
System.out.println("流程定义id = " + task.getProcessDefinitionId());
System.out.println("流程实例id = " + task.getProcessInstanceId());
System.out.println("任务id = " + task.getId());
System.out.println("任务名称 = " + task.getName());
}
}
查询候选任务
public void testSelectCandidateTaskList(){
//任务负责人
String candidateUser = "11";
//获取任务集合
List<Task> taskList = taskService.createTaskQuery()
.processDefinitionKey("demo")
.taskCandidateUser(candidateUser)
.list();
//遍历任务列表
for(Task task:taskList){
System.out.println("流程定义id = " + task.getProcessDefinitionId());
System.out.println("流程实例id = " + task.getProcessInstanceId());
System.out.println("任务id = " + task.getId());
System.out.println("任务名称 = " + task.getName());
}
}