From 7c624e7482b304c45771a4405d7b2497da9abcf0 Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Sun, 26 Sep 2021 10:43:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E6=B5=81=E7=A8=8B=E9=AB=98?= =?UTF-8?q?=E4=BA=AE=E6=97=B6=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ActivitiModelServiceImpl.java | 27 +++++++++++++++++-- .../impl/CustomProcessDiagramCanvas.java | 6 ++--- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/module-activiti/src/main/java/ink/wgink/module/activiti/service/activiti/impl/ActivitiModelServiceImpl.java b/module-activiti/src/main/java/ink/wgink/module/activiti/service/activiti/impl/ActivitiModelServiceImpl.java index 4f0ef460..8070b9c6 100644 --- a/module-activiti/src/main/java/ink/wgink/module/activiti/service/activiti/impl/ActivitiModelServiceImpl.java +++ b/module-activiti/src/main/java/ink/wgink/module/activiti/service/activiti/impl/ActivitiModelServiceImpl.java @@ -185,13 +185,17 @@ public class ActivitiModelServiceImpl extends DefaultBaseService implements IAct BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); //获取流程实例当前的节点,需要高亮显示 - List highLightedActivitiIds = Collections.EMPTY_LIST; + List highLightedActivitiIds = new ArrayList<>(); if (processInstance != null) { - highLightedActivitiIds = runtimeService.getActiveActivityIds(processInstance.getId()); + List activeActivityIds = runtimeService.getActiveActivityIds(processInstance.getId()); + highLightedActivitiIds.addAll(activeActivityIds); // 获取历史节点 List historicActivityInstances = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).list(); if (!historicActivityInstances.isEmpty()) { for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) { + if (isActiveActivityId(historicActivityInstance.getActivityId(), activeActivityIds)) { + continue; + } highLightedActivitiIds.add("#" + historicActivityInstance.getActivityId()); } } @@ -202,6 +206,25 @@ public class ActivitiModelServiceImpl extends DefaultBaseService implements IAct fontName, fontName, fontName, null, 1D); } + /** + * 判断历史节点是否是激活节点 + * + * @param historyActivityId + * @param activeActivityIds + * @return + */ + private boolean isActiveActivityId(String historyActivityId, List activeActivityIds) { + if (activeActivityIds == null || activeActivityIds.isEmpty()) { + return false; + } + for (String activeActivityId : activeActivityIds) { + if (StringUtils.equals(historyActivityId, activeActivityId)) { + return true; + } + } + return false; + } + /** * 序列流列表 * diff --git a/module-activiti/src/main/java/ink/wgink/module/activiti/service/activiti/impl/CustomProcessDiagramCanvas.java b/module-activiti/src/main/java/ink/wgink/module/activiti/service/activiti/impl/CustomProcessDiagramCanvas.java index dfb030c5..2b87ffb8 100644 --- a/module-activiti/src/main/java/ink/wgink/module/activiti/service/activiti/impl/CustomProcessDiagramCanvas.java +++ b/module-activiti/src/main/java/ink/wgink/module/activiti/service/activiti/impl/CustomProcessDiagramCanvas.java @@ -52,8 +52,8 @@ public class CustomProcessDiagramCanvas { protected static Color EVENT_COLOR = new Color(255, 255, 255); protected static Color CONNECTION_COLOR = new Color(88, 88, 88); protected static Color CONDITIONAL_INDICATOR_COLOR = new Color(255, 255, 255); - protected static Color HIGHLIGHT_COLOR = new Color(255, 87, 34); - protected static Color HIGHLIGHT_HISTORY_COLOR = new Color(0, 150, 136); + protected static Color HIGHLIGHT_COLOR = new Color(255, 0, 0); + protected static Color HIGHLIGHT_HISTORY_COLOR = new Color(0, 255, 0); protected static Color LABEL_COLOR = Color.BLACK; // new Color(112, 146, 190); protected static Color TASK_BORDER_COLOR = new Color(187, 187, 187); protected static Color EVENT_BORDER_COLOR = new Color(88, 88, 88); @@ -64,7 +64,7 @@ public class CustomProcessDiagramCanvas { protected static Font ANNOTATION_FONT = null; // Strokes - protected static Stroke THICK_TASK_BORDER_STROKE = new BasicStroke(2.0f); + protected static Stroke THICK_TASK_BORDER_STROKE = new BasicStroke(3.0f); protected static Stroke GATEWAY_TYPE_STROKE = new BasicStroke(3.0f); protected static Stroke END_EVENT_STROKE = new BasicStroke(3.0f); protected static Stroke MULTI_INSTANCE_STROKE = new BasicStroke(1.3f);