|
|
@ -2,6 +2,23 @@ package org.jeecg.modules.message.test; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.aliyuncs.exceptions.ClientException; |
|
|
|
import org.activiti.bpmn.model.BpmnModel; |
|
|
|
import org.activiti.bpmn.model.FlowElement; |
|
|
|
import org.activiti.bpmn.model.SequenceFlow; |
|
|
|
import org.activiti.bpmn.model.UserTask; |
|
|
|
import org.activiti.engine.HistoryService; |
|
|
|
import org.activiti.engine.RepositoryService; |
|
|
|
import org.activiti.engine.RuntimeService; |
|
|
|
import org.activiti.engine.TaskService; |
|
|
|
import org.activiti.engine.history.HistoricActivityInstance; |
|
|
|
import org.activiti.engine.history.HistoricTaskInstance; |
|
|
|
import org.activiti.engine.repository.Deployment; |
|
|
|
import org.activiti.engine.repository.ProcessDefinition; |
|
|
|
import org.activiti.engine.runtime.Execution; |
|
|
|
import org.activiti.engine.runtime.ProcessInstance; |
|
|
|
import org.activiti.engine.task.Task; |
|
|
|
import org.activiti.spring.integration.Activiti; |
|
|
|
import org.apache.shiro.SecurityUtils; |
|
|
|
import org.jeecg.JeecgSystemApplication; |
|
|
|
import org.jeecg.common.api.dto.message.BusMessageDTO; |
|
|
|
import org.jeecg.common.api.dto.message.BusTemplateMessageDTO; |
|
|
@ -19,9 +36,12 @@ 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 org.springframework.util.CollectionUtils; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.UUID; |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description: 消息推送测试 |
|
|
@ -33,6 +53,216 @@ public class SendMessageTest { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
ISysBaseAPI sysBaseAPI; |
|
|
|
@Autowired |
|
|
|
private RepositoryService repositoryService; |
|
|
|
@Autowired |
|
|
|
RuntimeService runtimeService; |
|
|
|
@Autowired |
|
|
|
TaskService taskService; |
|
|
|
@Autowired |
|
|
|
HistoryService historyService; |
|
|
|
@Test |
|
|
|
public void createproess(){ |
|
|
|
Deployment deployment = repositoryService |
|
|
|
.createDeployment() |
|
|
|
.addClasspathResource("process/initiatesProjects.bpmn20.xml") |
|
|
|
.addClasspathResource("process/initiatesProjects.png") |
|
|
|
.name("项目入库申请流程") |
|
|
|
.deploy(); |
|
|
|
System.out.println("deployment.getId() = " + deployment.getId()); |
|
|
|
System.out.println("deployment.getName() = " + deployment.getName()); |
|
|
|
} |
|
|
|
@Test |
|
|
|
public void delete(){ |
|
|
|
List<Deployment> deployments = repositoryService.createDeploymentQuery().list(); |
|
|
|
for (Deployment deployment : deployments) { |
|
|
|
System.out.println(deployment.getId()); |
|
|
|
repositoryService.deleteDeployment(deployment.getId()); |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
* 查询流程定义列表 |
|
|
|
*/ |
|
|
|
@Test |
|
|
|
public void listProcessDefinitions() { |
|
|
|
List<ProcessDefinition> processDefinitions = this.repositoryService.createProcessDefinitionQuery() |
|
|
|
.list(); |
|
|
|
if (!CollectionUtils.isEmpty(processDefinitions)) { |
|
|
|
processDefinitions.forEach(processDefinition -> { |
|
|
|
System.out.println("Name:" + processDefinition.getName()); |
|
|
|
System.out.println("Key:" + processDefinition.getKey()); |
|
|
|
System.out.println("ResourceName:" + processDefinition.getResourceName()); |
|
|
|
System.out.println("DeploymentId:" + processDefinition.getDeploymentId()); |
|
|
|
System.out.println("Version:" + processDefinition.getVersion()); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
* 初始化流程实例,发起流程 |
|
|
|
*/ |
|
|
|
@Test |
|
|
|
public void initProcessInstance() { |
|
|
|
// 流程定义KEY
|
|
|
|
|
|
|
|
String processDefinitionKey = "initiatesProjects"; |
|
|
|
// 业务表KEY(用于把业务数据与Activiti7流程数据相关联)
|
|
|
|
String businessKey = UUID.randomUUID().toString().replace("-",""); //"4208169753200945";
|
|
|
|
// 参数
|
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
variables.put("start","e9ca23d68d884d4ebb19d07889727dae"); |
|
|
|
ProcessInstance processInstance = this.runtimeService |
|
|
|
.startProcessInstanceByKey(processDefinitionKey, businessKey, variables); |
|
|
|
System.out.println("流程实例ID:" + processInstance.getProcessInstanceId()); |
|
|
|
//1d1d364f-b9ca-11ee-a2e6-f43bd81684b1
|
|
|
|
} |
|
|
|
/** |
|
|
|
* 查询流程实例 |
|
|
|
*/ |
|
|
|
@Test |
|
|
|
public void getProcessInstance() { |
|
|
|
String processInstanceId = "1d1d364f-b9ca-11ee-a2e6-f43bd81684b1"; |
|
|
|
ProcessInstance processInstance = this.runtimeService.createProcessInstanceQuery() |
|
|
|
.processInstanceId(processInstanceId) |
|
|
|
.singleResult(); |
|
|
|
System.out.println("ProcessInstanceId:" + processInstance.getProcessInstanceId()); |
|
|
|
System.out.println("ProcessDefinitionId:" + processInstance.getProcessDefinitionId()); |
|
|
|
System.out.println("isEnded:" + processInstance.isEnded()); |
|
|
|
System.out.println("isSuspended:" + processInstance.isSuspended()); |
|
|
|
} |
|
|
|
/** |
|
|
|
* 查询流程实例列表 |
|
|
|
*/ |
|
|
|
@Test |
|
|
|
public void listProcessInstances() { |
|
|
|
List<ProcessInstance> processInstanceList = this.runtimeService.createProcessInstanceQuery().list(); |
|
|
|
if (!CollectionUtils.isEmpty(processInstanceList)) { |
|
|
|
processInstanceList.forEach(processInstance -> { |
|
|
|
System.out.println("ProcessInstanceId:" + processInstance.getProcessInstanceId()); |
|
|
|
System.out.println("ProcessDefinitionId:" + processInstance.getProcessDefinitionId()); |
|
|
|
System.out.println("isEnded:" + processInstance.isEnded()); |
|
|
|
System.out.println("isSuspended:" + processInstance.isSuspended()); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
* 查询任务列表 |
|
|
|
*/ |
|
|
|
@Test |
|
|
|
public void listTasks() { |
|
|
|
List<Task> taskList = this.taskService.createTaskQuery().list(); |
|
|
|
if (!CollectionUtils.isEmpty(taskList)) { |
|
|
|
taskList.forEach(task -> { |
|
|
|
BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId()); |
|
|
|
|
|
|
|
|
|
|
|
//这里的key要找到下一个才行
|
|
|
|
FlowElement flowElement = bpmnModel.getFlowElement(task.getTaskDefinitionKey()); |
|
|
|
|
|
|
|
UserTask userTask = (UserTask) flowElement; |
|
|
|
//搞到当前userTask的出处
|
|
|
|
List<SequenceFlow> outgoingFlows = userTask.getOutgoingFlows(); |
|
|
|
//直接获得目标元素
|
|
|
|
FlowElement targetFlowElement = outgoingFlows.get(0).getTargetFlowElement(); |
|
|
|
//转过来
|
|
|
|
UserTask nextUserTask = (UserTask) targetFlowElement; |
|
|
|
String nextUserTaskName = nextUserTask.getName(); |
|
|
|
if("监管单位审批".equals(nextUserTaskName)){ |
|
|
|
|
|
|
|
} |
|
|
|
String processInstanceId = task.getProcessInstanceId(); |
|
|
|
List<ProcessInstance> list = runtimeService.createProcessInstanceQuery() |
|
|
|
.processInstanceId(processInstanceId) |
|
|
|
.active().list(); |
|
|
|
|
|
|
|
System.out.println("Id:" + task.getId()); |
|
|
|
System.out.println("Name:" + task.getName()); |
|
|
|
System.out.println("Assignee:" + task.getAssignee()); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
* 查询我的代办任务 |
|
|
|
*/ |
|
|
|
@Test |
|
|
|
public void listTasksByAssignee() { |
|
|
|
String assignee = "e9ca23d68d884d4ebb19d07889727dae"; |
|
|
|
List<Task> taskList = this.taskService.createTaskQuery() |
|
|
|
.taskAssignee(assignee) |
|
|
|
.list(); |
|
|
|
if (!CollectionUtils.isEmpty(taskList)) { |
|
|
|
taskList.forEach(task -> { |
|
|
|
System.out.println("Id:" + task.getId()); |
|
|
|
System.out.println("Name:" + task.getName()); |
|
|
|
System.out.println("Assignee:" + task.getAssignee()); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 我的组代办 |
|
|
|
*/ |
|
|
|
@Test |
|
|
|
public void listTasksByGroup() { |
|
|
|
String assignee = "e9ca23d68d884d4ebb19d07889727dae"; |
|
|
|
List<Task> taskList = this.taskService.createTaskQuery() |
|
|
|
.taskCandidateGroup("supervise") |
|
|
|
.list(); |
|
|
|
if (!CollectionUtils.isEmpty(taskList)) { |
|
|
|
taskList.forEach(task -> { |
|
|
|
System.out.println("Id:" + task.getId()); |
|
|
|
System.out.println("Name:" + task.getName()); |
|
|
|
System.out.println("Assignee:" + task.getAssignee()); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
* 完成任务 |
|
|
|
*/ |
|
|
|
@Test |
|
|
|
public void completeTask() { |
|
|
|
String taskId = "c594f43d-b9d5-11ee-91b9-f43bd81684b1"; |
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
variables.put("type",1); |
|
|
|
this.taskService.complete(taskId, variables); |
|
|
|
} |
|
|
|
/** |
|
|
|
* 根据用户名查询历史记录 |
|
|
|
*/ |
|
|
|
@Test |
|
|
|
public void listHistoricTasksByAssignee() { |
|
|
|
String assignee = "e9ca23d68d884d4ebb19d07889727dae"; |
|
|
|
List<HistoricTaskInstance> historicTasks = this.historyService.createHistoricTaskInstanceQuery() |
|
|
|
.taskAssignee(assignee) |
|
|
|
.list(); |
|
|
|
if (!CollectionUtils.isEmpty(historicTasks)) { |
|
|
|
historicTasks.forEach(historicTaskInstance -> { |
|
|
|
System.out.println("Id:" + historicTaskInstance.getId()); |
|
|
|
System.out.println("ProcessInstanceId:" + historicTaskInstance.getProcessInstanceId()); |
|
|
|
// System.out.println("Name:" + historicTaskInstance.getName());
|
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 发送系统消息 |
|
|
|