获取资源信息
/**
* 获取资源信息
*
* @throws IOException
*/
@Test
public void getProcessResources() throws IOException {
// 1:流程定义ID
String processDefinitionId = "holiday:1:7504";
// 2:获取RepositoryService
RepositoryService repositoryService = defaultProcessEngine.getRepositoryService();
// 3:创建查询对象
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
// 4:查询流程定义
ProcessDefinition processDefinition = processDefinitionQuery.processDefinitionId(processDefinitionId).singleResult();
// 5:获取资源名称
String resourceName = processDefinition.getResourceName();
System.out.println("bpmn名称:" + resourceName);
// 6:获取图片名称
String diagramResourceName = processDefinition.getDiagramResourceName();
System.out.println("png名称:" + diagramResourceName);
File bpmnFile = new File("E:\\dance\\activiti7\\src\\main\\resources\\cp\\holiday.bpmn");
File pngFile = new File("E:\\dance\\activiti7\\src\\main\\resources\\cp\\holiday.png");
// 7:根据部署ID和资源名称获取资源流
InputStream resourceAsStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), resourceName);
// 8:创建输出流
FileOutputStream fileOutputStream = new FileOutputStream(bpmnFile);
// 写文件
writeByte(resourceAsStream, fileOutputStream);
// 获取图片
resourceAsStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), diagramResourceName);
fileOutputStream = new FileOutputStream(pngFile);
// 写文件
writeByte(resourceAsStream, fileOutputStream);
System.out.println("获取资源成功!");
}
写出流方法
private void writeByte(InputStream resourceAsStream, OutputStream fileOutputStream) throws IOException {
int i = -1;
byte[] content = new byte[1024];
while ((i = resourceAsStream.read(content)) != -1) {
fileOutputStream.write(content, 0, i);
}
// 释放资源
fileOutputStream.flush();
fileOutputStream.close();
resourceAsStream.close();
}
查询流程历史信息
/**
* 获取历史信息
*/
@Test
public void testHistoric01() {
// 获取历史信息Service
HistoryService historyService = defaultProcessEngine.getHistoryService();
// 启动的流程实例的ID
String processInstanceId = "10001";
// 根据流程实例ID查询 历史记录
List<HistoricActivityInstance> list = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list();
// 输出信息
list.forEach(historicActivityInstance -> {
System.out.println("---------------------------------------------------");
System.out.println("当前激活ID:" + historicActivityInstance.getActivityId());
System.out.println("当前激活名称:" + historicActivityInstance.getActivityName());
System.out.println("流程定义ID:" + historicActivityInstance.getProcessDefinitionId());
System.out.println("流程实例ID:" + historicActivityInstance.getProcessInstanceId());
System.out.println("---------------------------------------------------");
});
}
作者:彼岸舞
时间:2020\08\31
内容关于:Activiti工作流
本文来源于网络,只做技术分享,一概不负任何责任