package com.lxzn.activiti;
|
|
import org.activiti.engine.ProcessEngine;
|
import org.activiti.engine.RepositoryService;
|
import org.activiti.engine.RuntimeService;
|
import org.activiti.engine.TaskService;
|
import org.activiti.engine.repository.Deployment;
|
import org.activiti.engine.runtime.ProcessInstance;
|
import org.activiti.engine.task.Task;
|
import org.junit.Test;
|
import org.junit.runner.RunWith;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@RunWith(SpringRunner.class)
|
@SpringBootTest
|
public class TestActiviti {
|
@Autowired
|
private RuntimeService runtimeService;
|
@Autowired
|
private TaskService taskService;
|
@Autowired
|
private ProcessEngine processEngine;
|
|
/**
|
* 流程定义的部署
|
* activiti表有哪些?
|
* act_re_deployment 部署信息
|
* act_re_procdef 流程定义的一些信息
|
* act_ge_bytearray 流程定义的bpmn文件及png文件
|
*/
|
@Test
|
public void testDeployment() {
|
//ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
|
RepositoryService repositoryService = processEngine.getRepositoryService();
|
Deployment deployment = repositoryService.createDeployment().addClasspathResource("processes/assign_nc_to_device.bpmn") //添加bpmn资源
|
.name("指派NC文档到设备")
|
.deploy();
|
System.out.println(deployment.getName());
|
System.out.println(deployment.getId());
|
}
|
|
/**
|
* 启动流程实例:
|
* 前提是先已经完成流程定义的部署工作
|
*
|
* 背后影响的表:
|
* ACT_HI_ACTINST 已完成的活动信息
|
* ACT_HI_DETAIL 历史详情
|
* ACT_HI_IDENTITYLINK 参与者信息
|
* ACT_HI_PROCINST 流程实例
|
* ACT_HI_TASKINST 任务实例
|
* ACT_HI_VARINST 历史变量
|
* ACT_RU_IDENTITYLINK 执行时 参与者信息
|
* ACT_RU_EXECUTION 执行表
|
* ACT_RU_TASK 当前任务
|
* ACT_RU_VARIABLE 执行时 参数信息
|
*/
|
@Test
|
public void testStartInstance() {
|
//3.创建流程实例 流程定义的key需要知道 holiday
|
String applyUser = "1255172650880737281";
|
//String[] approveUsers = {"1254773336467689474", "1254966905669160962"};
|
String approveUsers = "1254773336467689474, 1254966905669160962";
|
String businessKey = "111111";
|
String key = "assign_nc_to_device";
|
Map<String, Object> map = new HashMap<>();
|
|
map.put("apply_user", applyUser);
|
map.put("approve_users", approveUsers);
|
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(key, businessKey, map);
|
|
//4.输出实例的相关信息
|
System.out.println("流程部署ID"+processInstance.getDeploymentId());//null
|
System.out.println("流程定义ID"+processInstance.getProcessDefinitionId());//holiday:1:4
|
System.out.println("流程实例ID"+processInstance.getId());//2501
|
System.out.println("活动ID"+processInstance.getActivityId());//null
|
}
|
|
/**
|
* 从ACT_RU_TASK表中获取当前用户的任务列表
|
* 从ACT_RU_TASK表中获取taskId的任务
|
*/
|
@Test
|
public void testCompleteTask() {
|
//获取用户的任务列表
|
//List<Task> taskList = taskService.createTaskQuery().taskAssignee("1255172650880737281").list();
|
Task task = taskService.createTaskQuery().taskId("7509").singleResult();
|
if(task != null) {
|
//4.任务列表的展示
|
System.out.println("流程实例ID:"+task.getProcessInstanceId());
|
System.out.println("任务ID:"+task.getId()); //5002
|
System.out.println("任务负责人:"+task.getAssignee());
|
System.out.println("任务名称:"+task.getName());
|
taskService.complete(task.getId());
|
}
|
}
|
|
@Test
|
public void testCandidateUser() {
|
String key = "assign_nc_to_device";
|
String candidate_user = "1254773336467689474";
|
// List<Task> taskList = taskService.createTaskQuery().processDefinitionKey(key).taskCandidateUser(candidate_user)//设置候选用户
|
// .list();
|
// taskList.forEach(System.out::println);
|
Task task = taskService.createTaskQuery().processDefinitionKey(key)
|
.taskCandidateUser(candidate_user).singleResult();
|
if(task != null) {
|
taskService.claim(task.getId(), candidate_user);
|
System.out.println("拾取任务成功");
|
taskService.complete(task.getId());
|
System.out.println("完成任务成功");
|
}
|
}
|
}
|