Activityは、フローチャート、現在のノードのハイライト表示、およびフローインスタンスの履歴アクティビティ情報を取得します.

1490 ワード

  @RequestMapping(value = "findPicture")
    @ResponseBody
    public Map findPicture(String processInstanceId){
        Map map=new HashMap();
        try {
        HistoricProcessInstance historicProcessInstance=historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();

        BpmnModel bpmnModel=repositoryService.getBpmnModel(historicProcessInstance.getProcessDefinitionId());

        List activityIds=new ArrayList<>();
        // 
        if (historicProcessInstance.getEndTime()==null){
            // 
              // 
            activityIds= runtimeService.getActiveActivityIds(processInstanceId);
        }
        // 
        InputStream inputStream=processEngineConfiguration.getProcessDiagramGenerator().generateDiagram(bpmnModel,"png",activityIds);
            // 
            byte[] bytes=IOUtils.toByteArray(inputStream);
            String img=new String(Base64.encodeBase64(bytes));
            // , 
        List list=historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).list();
        map.put("success",true);
        map.put("data",img);
        return map;
        } catch (IOException e) {
            e.printStackTrace();
        }
        map.put("success",false);
        map.put("data",null);
        return map;
    }