import org.activiti.engine.*;
import org.activiti.engine.history.HistoricIdentityLink;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.history.HistoricVariableInstance;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.Model;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.IdentityLink;
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 javax.annotation.Resource;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipInputStream;
@SpringBootTest
public class TestUser {
@Autowired
ISysUserService sysUserService;
@Resource
RepositoryService repositoryService;
@Resource
RuntimeService runtimeService;
@Resource
TaskService taskService;
@Resource
HistoryService historyService;
@Test
public void deployProcess() {
InputStream in = this.getClass().getResourceAsStream("/MyProcess11.zip");
System.err.println(in);
ZipInputStream zipInputStream = new ZipInputStream(in);
Deployment dm = repositoryService.createDeployment()
.name("学生请假")
.addZipInputStream(zipInputStream)
.deploy();
System.err.println("id:" + dm.getId() + ",name:" + dm.getName());
}
@Test
public void startProcess() {
String businessKey = "UUID______xxxx-8s8s8s8j9d349r9-XXMM";
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("day", 55);
variables.put("vma_user", "zzz");
variables.put("vm_user", "xxx");
ProcessInstance pi =
runtimeService.startProcessInstanceByKey("myProcess",
businessKey, variables);
runtimeService.setProcessInstanceName(pi.getProcessInstanceId(), pi.getProcessDefinitionName());
System.out.println("id:" + pi.getId() + ",流程实例ID:" + pi.getProcessInstanceId() + ",流程定义ID:" + pi.getProcessDefinitionId() + " process Name : " + pi.getProcessDefinitionName());
}
@Test
public void findTask() {
String assignee = "zzz";
queryUserTaskByASSIGNEE(assignee);
}
private void queryUserTaskByASSIGNEE(String assignee) {
List<Task> list = taskService.createTaskQuery().taskAssignee(assignee).list();
if (null != list && list.size() > 0) {
for (Task task : list) {
System.out.println("任务ID:" + task.getId());
System.out.println("流程实例ID:" + task.getProcessInstanceId());
System.out.println("执行实例ID:" + task.getExecutionId());
System.out.println("流程定义ID:" + task.getProcessDefinitionId());
System.out.println("任务名称:" + task.getName());
System.out.println("任务办理人:" + task.getAssignee());
System.out.println("################################");
}
}
}
@Test
public void completeTask() {
String taskId = "baa2cc05-ea7c-11ef-8332-7486e20f8b57";
taskService.complete(taskId);
System.out.println("任务完成");
}
@Test
public void completeTaskForVariable() {
String taskId = "a77fcb5d-ea78-11ef-a987-7486e20f8b57";
Map<String, Object> variables = new HashMap<>();
variables.put("day", 66);
variables.put("vm_user", "aBxm");
taskService.setVariable(taskId,"day",68);
taskService.complete(taskId, variables);
System.out.println("任务完成");
}
@Test
public void findTaskAssignee() {
String assignee = "axm";
queryUserTaskByASSIGNEE(assignee);
}
@Test
public void doTask() {
String taskId = "0489ef28-ea7b-11ef-80b7-7486e20f8b57";
taskService.setVariable(taskId, "day", "local_17778179517+----------");
taskService.setVariable(taskId, "flag", 0);
taskService.complete(taskId);
System.out.println("任务完成");
}
@Test
public void findTaskUser() {
String assignee="xb";
List<Task> list = taskService.createTaskQuery().taskAssignee(assignee).list();
if(null!=list&&list.size()>0) {
for (Task task : list) {
System.out.println("任务ID:"+task.getId());
System.out.println("流程实例ID:"+task.getProcessInstanceId());
System.out.println("执行实例ID:"+task.getExecutionId());
System.out.println("流程定义ID:"+task.getProcessDefinitionId());
System.out.println("任务名称:"+task.getName());
System.out.println("任务办理人:"+task.getAssignee());
System.out.println("################################");
}
}
}
@Test
public void findGroupList(){
String userId = "xb";
List<Task> list = taskService
.createTaskQuery()
.taskCandidateUser(userId)
.list();
for(Task task:list ){
System.out.println("id="+task.getId());
System.out.println("name="+task.getName());
System.out.println("assinee="+task.getAssignee());
System.out.println("createTime ="+task.getCreateTime());
System.out.println("executionId="+task.getExecutionId());
System.out.println("##################################");
}
}
@Test
public void findGroupUser(){
String taskId = "35005";
List<IdentityLink> list = taskService
.getIdentityLinksForTask(taskId);
for(IdentityLink identityLink:list ){
System.out.println("userId="+identityLink.getUserId());
System.out.println("taskId="+identityLink.getTaskId());
System.out.println("piId="+identityLink.getProcessInstanceId());
System.out.println("######################");
}
}
@Test
public void findGroupHistoryUser(){
String taskId = "35005";
List<HistoricIdentityLink> list = historyService
.getHistoricIdentityLinksForTask(taskId);
for(HistoricIdentityLink identityLink:list ){
System.out.println("userId="+identityLink.getUserId());
System.out.println("taskId="+identityLink.getTaskId());
System.out.println("piId="+identityLink.getProcessInstanceId());
System.out.println("######################");
}
}
@Test
public void claim(){
String taskId = "35005";
String userId = "xb";
taskService.claim(taskId, userId);
}
@Test
public void claimRollback(){
String taskId = "35005";
taskService.claim(taskId, null);
}
@Test
public void queryProcess() {
String deploymentId = "1";
List<Deployment> list = repositoryService.createDeploymentQuery()
.list();
for (Deployment deployment : list) {
System.out.println("部署ID:" + deployment.getId());
System.out.println("部署名称:" + deployment.getName());
System.out.println("部署时间:" + deployment.getDeploymentTime());
System.out.println("########################");
}
}
@Test
public void queryProcessDefinei() {
String processDefinitionId = "hy:1:4";
List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery()
.processDefinitionId(processDefinitionId).list();
for (ProcessDefinition pe : list) {
System.out.println(pe.getName());
System.out.println(pe.getId());
System.out.println(pe.getKey());
System.out.println(pe.getResourceName());
}
}
@Test
public void deleteProcessDef() {
String deploymentId = "1";
repositoryService.deleteDeployment(deploymentId, true);
System.out.println("删除成功");
}
@Test
public void startProcessByKey() {
String processDefinitionKey = "hy";
Map<String, Object> variables = new HashMap<>();
variables.put("请假时间", new Date());
variables.put("请假天数", 5);
variables.put("请假原因", "回家探亲");
ProcessInstance proins = runtimeService.startProcessInstanceByKey(processDefinitionKey, variables);
System.out.println("启动成功:" + proins.getId());
String processDefinitionId = proins.getProcessDefinitionId();
System.out.println("启动成功:流程id:" + processDefinitionId);
}
@Test
public void queryUserProcessInstance() {
String assignee = "王五";
List<Task> taskList = taskService.createTaskQuery().taskAssignee(assignee).list();
taskList.stream().forEach(e -> {
System.out.println(e.getId());
System.out.println(e.getExecutionId());
System.out.println(e.getAssignee());
System.out.println(e.getName());
System.out.println(e.getCreateTime());
});
}
@Test
public void complteProcessInstance() {
String taskId = "22502";
taskService.complete(taskId);
}
@Test
public void queryTaskHistory() {
String executionId = "17501";
List<HistoricTaskInstance> hisList = historyService.createHistoricTaskInstanceQuery().executionId(executionId).list();
hisList.forEach(e -> {
System.out.println(e.getCreateTime());
System.out.println("办理人" + e.getAssignee());
System.out.println("启动时间" + e.getStartTime());
System.out.println("结束时间" + e.getEndTime());
System.out.println(e.getDueDate());
System.out.println(e.getName());
Long durationInMillis = e.getDurationInMillis();
System.out.println(converTimeMillis(durationInMillis));
System.out.println("--------------------------");
});
}
public String converTimeMillis(Long durationInMillis) {
if (null == durationInMillis) {
return "-";
}
Long second = durationInMillis / 1000;
double minuet = second / 60;
return minuet + "分钟";
}
@Test
public void setVariables() {
Map<String, Object> variables = new HashMap<>();
variables.put("请假天数", 56);
variables.put("请假原因", "1101回家探亲");
String executionId = "27501";
runtimeService.setVariables(executionId, variables);
}
@Test
public void setVariables2() {
String taskId = "27507";
Map<String, Object> variables = new HashMap<>();
variables.put("任务ID设置的", 9);
taskService.setVariables(taskId, variables);
System.out.println("流程变量设置成功");
}
@Test
public void queryHistoryVariables() {
String processInstanceId = "27501";
String taskId = "27507";
List<HistoricVariableInstance> variableList = historyService.createHistoricVariableInstanceQuery()
.processInstanceId(processInstanceId)
.list();
variableList.forEach(e -> {
System.out.println(e.getVariableName());
System.out.println(e.getValue());
});
}
}