处理实例流程图问题

This commit is contained in:
wanggeng 2021-09-26 17:25:17 +08:00
parent 5d3ea2f478
commit 768b55c58f
2 changed files with 17 additions and 5 deletions

View File

@ -166,10 +166,11 @@ public class ActivitiModelServiceImpl extends DefaultBaseService implements IAct
public InputStream getRuntimeProcessImageInputStream(String processInstanceId) {
//获得流程实例
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
HistoricProcessInstance processInstanceHistory;
String processDefinitionId;
if (processInstance == null) {
//查询已经结束的流程实例
HistoricProcessInstance processInstanceHistory = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
processInstanceHistory = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
if (processInstanceHistory == null) {
return null;
} else {
@ -187,6 +188,7 @@ public class ActivitiModelServiceImpl extends DefaultBaseService implements IAct
//获取流程实例当前的节点需要高亮显示
List<String> highLightedActivitiIds = new ArrayList<>();
if (processInstance != null) {
// 正在运行的流程
List<String> activeActivityIds = runtimeService.getActiveActivityIds(processInstance.getId());
// 先添加历史节点
List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).list();
@ -195,11 +197,21 @@ public class ActivitiModelServiceImpl extends DefaultBaseService implements IAct
if (isActiveActivityId(historicActivityInstance.getActivityId(), activeActivityIds)) {
continue;
}
highLightedActivitiIds.add("#" + historicActivityInstance.getActivityId());
highLightedActivitiIds.add(historicActivityInstance.getActivityId());
}
}
// 添加现有节点
highLightedActivitiIds.addAll(activeActivityIds);
for (String activeActivityId : activeActivityIds) {
highLightedActivitiIds.add("#" + activeActivityId);
}
} else {
// 历史流程
List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).list();
if (!historicActivityInstances.isEmpty()) {
for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
highLightedActivitiIds.add(historicActivityInstance.getActivityId());
}
}
}
List<String> listSequenceFlows = listSequenceFlows(bpmnModel, highLightedActivitiIds);
CustomProcessDiagramGenerator customProcessDiagramGenerator = new CustomProcessDiagramGenerator();

View File

@ -555,11 +555,11 @@ public class CustomProcessDiagramGenerator implements ProcessDiagramGenerator {
}
// Draw highlighted activities
if (highLightedActivities.contains(flowNode.getId())) {
if (highLightedActivities.contains("#" + flowNode.getId())) {
drawHighLight(processDiagramCanvas, bpmnModel.getGraphicInfo(flowNode.getId()));
}
// Drow highlighted history activities
if (highLightedActivities.contains("#" + flowNode.getId())) {
if (highLightedActivities.contains(flowNode.getId())) {
drawHighLightHistory(processDiagramCanvas, bpmnModel.getGraphicInfo(flowNode.getId()));
}
}