activiti当前任务高亮(解决乱码问题)

package com.xinwei;

import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.activiti.bpmn.model.BpmnModel;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
import org.activiti.image.ProcessDiagramGenerator;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

public class TraceProcessInstaceUtil {
    public static void main(String[] args) {
        generateImage("42501");
    }
    public static byte[] generateImage(String processInstanceId){
          //1.创建核心引擎流程对象processEngine
      ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        TaskService taskService = processEngine.getTaskService();
        Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
        //流程定义
        BpmnModel bpmnModel = processEngine.getRepositoryService().getBpmnModel(task.getProcessDefinitionId()); 
        
        //正在活动节点
        List<String> activeActivityIds = processEngine.getRuntimeService().getActiveActivityIds(task.getExecutionId());

        ProcessDiagramGenerator pdg = processEngine.getProcessEngineConfiguration().getProcessDiagramGenerator();
      
       //得到图片输出流(这样加可防止生成的流程图片乱码)
      InputStream inputStream = processEngine.getProcessEngineConfiguration().getProcessDiagramGenerator()
               .generateDiagram(bpmnModel, "png", activeActivityIds, new ArrayList(),
                        processEngine.getProcessEngineConfiguration().getActivityFontName(),
                        processEngine.getProcessEngineConfiguration().getLabelFontName(), null, 1.0);
      try {  
          //生成本地图片
          File file = new File("D:/test1.png");
          FileUtils.copyInputStreamToFile(inputStream, file);
          System.out.println("生成流程图成功");
          return IOUtils.toByteArray(inputStream);  
       } catch (Exception e) {  
           throw new RuntimeException("生成流程图异常!", e);  
       } finally {  
           IOUtils.closeQuietly(inputStream); 
       }  
    }
}

 

附:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jee="http://www.springframework.org/schema/jee"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
       http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

    <bean id="processEngineConfiguration"
        class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!-- 连接数据的配置 -->
        <property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
        <property name="jdbcUrl"
            value="jdbc:mysql://localhost:3306/activitidemo?useUnicode=true&amp;characterEncoding=utf8"></property>
        <property name="jdbcUsername" value="root"></property>
        <property name="jdbcPassword" value="xinwei"></property>
        <property name="activityFontName" value="宋体" />
        <property name="labelFontName" value="宋体" />
        <!-- 没有表创建表 -->
        <property name="databaseSchemaUpdate" value="true"></property>
    </bean>

</beans>

 

posted @ 2016-12-22 10:49  Alamps  阅读(3827)  评论(0编辑  收藏  举报