/**
* 两种情况
* @param deploymentId
* @param procDefId
* @param response
*/
@GetMapping("/proc/viewImage")
@ResponseBody
public void viewImage(String deploymentId,String procDefId, HttpServletResponse response){
String imageName=null;
if (StringUtils.isEmpty(deploymentId)&&StringUtils.isEmpty(procDefId)){
throw new AudaqueException("部署ID和实例id都不存在");
}
if (!StringUtils.isEmpty(deploymentId)){
List<DeployMentVo> deployMentVos= actExtendProcessMapper.findDeployMentVo(deploymentId);
if (!CollectionUtils.isEmpty(deployMentVos)){
for(DeployMentVo deployMentVo:deployMentVos){
if ( deployMentVo.getName().indexOf(".png")>0){
imageName=deployMentVo.getName();
}
}
}else{
throw new AudaqueException("流程图片不存在");
}
}
if (!StringUtils.isEmpty(procDefId)){
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(procDefId).singleResult();
imageName = processDefinition.getDiagramResourceName();
deploymentId=processDefinition.getDeploymentId();
}
InputStream in = repositoryService.getResourceAsStream(deploymentId,imageName);//此处方法实际项目应该放在service里面
try {
OutputStream out = response.getOutputStream();
// 把图片的输入流程写入resp的输出流中
byte[] b = new byte[1024];
for (int len = -1; (len= in.read(b))!=-1; ) {
out.write(b, 0, len);
}
// 关闭流
out.close();
in.close();
} catch ( IOException e) {
e.printStackTrace();
}
}
起始就是这个表act_ge_bytearray的数据bytes_