处理实例流程图问题

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

View File

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