//查询model信息
Model modelData = repositoryService.createModelQuery().modelKey(id).singleResult();
BpmnJsonConverter jsonConverter = new BpmnJsonConverter();
//获取数据表信息
JsonNode editorNode = new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId()));
BpmnModel bpmnModel = jsonConverter.convertToBpmnModel(editorNode);
BpmnXMLConverter xmlConverter = new BpmnXMLConverter();
byte[] bpmnBytes = xmlConverter.convertToXML(bpmnModel);
//部署流程
String processName = modelData.getId() + ".bpmn20.xml";
Deployment deployment = repositoryService.createDeployment().name(modelData.getId()).addString(processName, new String(bpmnBytes,"utf-8")).deploy();
//查询流程定义图片
if(deployment != null){
List pList = repositoryService.createProcessDefinitionQuery()
.processDefinitionKey("process").list();
ProcessDefinition processDefinition = null;
for (ProcessDefinition pd : pList) {
if(pd.getDeploymentId().equals(deployment.getId())){
processDefinition = pd;
}
}
String diagramResourceName = processDefinition.getDiagramResourceName();
InputStream in = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), diagramResourceName);
//将图片生成到D盘的目录下
File file = new File("D:/"+diagramResourceName+".png");
//将输入流的图片写到D盘下
FileUtils.copyInputStreamToFile(in, file);
//删除部署
repositoryService.deleteDeployment(deployment.getId(), true);
// return in;
}