Commit 72fc67a0 by Java-曹文达

添加查看高亮流程图

parent aa25e164
...@@ -306,50 +306,47 @@ public class TaskOperateController { ...@@ -306,50 +306,47 @@ public class TaskOperateController {
* @param request * @param request
* @return * @return
*/ */
@RequestMapping("/process/trace/current") @RequestMapping("/process/trace/current")
@ApiOperation(value = "流程图获取接口", notes = "获取当前流程的流程图") @ApiOperation(value = "流程图获取接口", notes = "获取当前流程的流程图")
@ResponseBody @ResponseBody
public void traceProcessImage(SpecialRequest request, HttpServletResponse response) { public byte[] traceProcessImage(SpecialRequest request, HttpServletResponse response) {
try { try {
byte[] bytes = activitiService.traceProcessImage(request); byte[] bytes = activitiService.traceProcessImage(request);
OutputStream toClient=response.getOutputStream(); /*OutputStream toClient=response.getOutputStream();
toClient.write(bytes); toClient.write(bytes);
toClient.flush(); toClient.flush();
toClient.close(); toClient.close();*/
return bytes;
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
return null;
} }
/*@RequestMapping("/process/trace/current")
@ApiOperation(value = "流程图获取接口", notes = "获取当前流程的流程图") @GetMapping("/process/trace")
@ResponseBody @ApiOperation(value = "流程图接口", notes = "获取流程图信息")
public void traceProcessImage(SpecialRequest request, HttpServletResponse response) { public byte[] processImage(SpecialRequest request, HttpServletResponse response) {
FileInputStream fis = null;
OutputStream os = null;
try { try {
byte[] bytes = activitiService.traceProcessImage(request); byte[] bytes = activitiService.getProcessImage(request);
File file = new File("D:\\" + 1 + ".jpg"); return bytes;
OutputStream out = new FileOutputStream(file); } catch (Exception e) {
out.write(bytes);
out.flush();
System.out.println("download success");
out.close();
//得到文件大小
FileInputStream hFile = new FileInputStream("D:/1.jpg");
int i=hFile.available();
//读数据
byte data[]=new byte[i];
//得到向客户端输出二进制数据的对象
hFile.read(data);
//输出数据
OutputStream toClient=response.getOutputStream();
toClient.write(data);
toClient.flush();
toClient.close();
hFile.close();
} catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
}*/ return null;
}
@GetMapping("/process/getdeployMent")
@ApiOperation(value = "流程图接口", notes = "获取流程图信息")
public byte[] getdeployMent(SpecialRequest request, HttpServletResponse response) {
try {
byte[] bytes = activitiService.getdeployMent(request);
return bytes;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
} }
...@@ -11,6 +11,15 @@ public class SpecialRequest implements Serializable { ...@@ -11,6 +11,15 @@ public class SpecialRequest implements Serializable {
private String executionId; private String executionId;
private String processInstanceId; private String processInstanceId;
private String procdefId; private String procdefId;
private String deploymentId;
public String getDeploymentId() {
return deploymentId;
}
public void setDeploymentId(String deploymentId) {
this.deploymentId = deploymentId;
}
public String getUserToken() { public String getUserToken() {
return userToken; return userToken;
......
...@@ -16,4 +16,14 @@ public interface ActivitiService { ...@@ -16,4 +16,14 @@ public interface ActivitiService {
* @return * @return
*/ */
byte[] traceProcessImage(SpecialRequest request) throws IOException; byte[] traceProcessImage(SpecialRequest request) throws IOException;
/**
* 查看流程图
*
* @param request
* @return
*/
byte[] getProcessImage(SpecialRequest request);
byte[] getdeployMent(SpecialRequest request);
} }
...@@ -6,15 +6,18 @@ import org.activiti.bpmn.model.BpmnModel; ...@@ -6,15 +6,18 @@ import org.activiti.bpmn.model.BpmnModel;
import org.activiti.engine.*; import org.activiti.engine.*;
import org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl; import org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.activiti.engine.impl.context.Context; import org.activiti.engine.impl.context.Context;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.Execution; import org.activiti.engine.runtime.Execution;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
import org.activiti.image.ProcessDiagramGenerator; import org.activiti.image.ProcessDiagramGenerator;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -79,4 +82,58 @@ public class ActivitiServiceImpl implements ActivitiService { ...@@ -79,4 +82,58 @@ public class ActivitiServiceImpl implements ActivitiService {
} }
@Override
public byte[] getProcessImage(SpecialRequest request) {
ProcessDefinition processDefinition = null;
if (StringUtils.isNotBlank(request.getProcdefId())) {
processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(request.getProcdefId()).singleResult();
}
if (processDefinition == null) {
if (StringUtils.isNotBlank(request.getProcessInstanceId())) {
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(request.getProcessInstanceId()).singleResult();
processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processInstance.getProcessDefinitionId()).singleResult();
}
if (StringUtils.isNotBlank(request.getTaskId())) {
Task task = taskService.createTaskQuery().taskId(request.getTaskId()).singleResult();
processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(task.getProcessDefinitionId()).singleResult();
}
}
if (processDefinition != null) {
InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), processDefinition.getDiagramResourceName());
try {
byte[] bytes = IOUtils.toByteArray(inputStream);
return bytes;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
return null;
}
@Override
public byte[] getdeployMent(SpecialRequest request) {
List<String> names = repositoryService.getDeploymentResourceNames(request.getDeploymentId());
String imageName = null;
for (String name : names) {
if(name.indexOf(".png")>=0){
imageName = name;
}
}
if(imageName!=null){
// 通过部署ID和文件名称得到文件的输入流
InputStream in = repositoryService.getResourceAsStream(request.getDeploymentId(),imageName);
try {
byte[] bytes = IOUtils.toByteArray(in);
return bytes;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
return null;
}
} }
...@@ -34,7 +34,10 @@ ...@@ -34,7 +34,10 @@
$(function () { $(function () {
var taskId=$("#taskId").val() var taskId=$("#taskId").val()
var executionId=$("#executionId").val() var executionId=$("#executionId").val()
var url="http://localhost:8087/api/bpm/task/process/trace/current?executionId="+executionId+"&taskId="+taskId var a="process:4:62504";
//var url="http://localhost:8087/api/bpm/task/process/trace/current?executionId="+executionId+"&taskId="+taskId
//var url="http://localhost:8087/api/bpm/task/process/trace?procdefId="+a+"&processInstanceId="+72501
var url="http://localhost:8087/api/bpm/task/process/getdeployMent?deploymentId="+62501
$("#image").attr("src",url) $("#image").attr("src",url)
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment