From 52e9ef7d0a66500d596c2d4a3e8fc635c9f3e742 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 17 三月 2025 11:50:18 +0800
Subject: [PATCH] 流程图查看,容缺、跳过显示
---
flowable/src/main/java/com/ycl/domain/dto/FlowViewerDto.java | 10 ++++++++++
business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 8 ++++++--
business/src/main/java/com/ycl/service/ProcessLogService.java | 18 ++++++++++++++++++
business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java | 20 ++++++++++++++++++++
4 files changed, 54 insertions(+), 2 deletions(-)
diff --git a/business/src/main/java/com/ycl/service/ProcessLogService.java b/business/src/main/java/com/ycl/service/ProcessLogService.java
index 8609d33..9c7141e 100644
--- a/business/src/main/java/com/ycl/service/ProcessLogService.java
+++ b/business/src/main/java/com/ycl/service/ProcessLogService.java
@@ -79,6 +79,24 @@
Boolean taskIsHangup(String taskId, String processInsId);
/**
+ * 妫�鏌ヤ换鍔℃槸鍚﹀缂�
+ *
+ * @param taskId
+ * @param processInsId
+ * @return
+ */
+ Boolean taskIsWait(String taskId, String processInsId);
+
+ /**
+ * 妫�鏌ヤ换鍔℃槸鍚﹁烦杩�
+ *
+ * @param taskId
+ * @param processInsId
+ * @return
+ */
+ Boolean taskIsJump(String taskId, String processInsId);
+
+ /**
* 妫�鏌ヤ换鍔℃槸鍚﹀崗鍚屽姙鐞嗕簡
*
* @param taskId 浠诲姟id
diff --git a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
index 0c2d7a4..d1e99b7 100644
--- a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
@@ -1336,6 +1336,8 @@
if (StringUtils.isBlank(s.getDeleteReason())) {
flowViewerList.add(flowViewerDto);
}
+ flowViewerDto.setHasJump(processLogService.taskIsJump(s.getTaskId(), procInsId));
+ flowViewerDto.setHasWait(processLogService.taskIsWait(s.getTaskId(), procInsId));
});
// 鑾峰彇浠e姙鑺傜偣
@@ -1353,8 +1355,10 @@
// 鎵╁睍鍐呭 浠e姙鐨勯�氳繃褰撳墠鏃堕棿浣滀负endTime
ProcessCoding processCoding = processCodingMap.get(s.getTaskId());
//濡傛灉鏈夌洃鎺ф暟鎹� 涓嶅弽鐨勮瘽鍓嶇榛樿鏄繘琛屼腑(钃濊壊)
- if (processCoding != null && (RED.equals(processCoding.getStatus()) || YELLOW.equals(processCoding.getStatus()))) {
- flowViewerDto.setOvertime(processCoding.getStatus());
+ if (Objects.nonNull(processCoding)) {
+ if (RED.equals(processCoding.getStatus()) || YELLOW.equals(processCoding.getStatus())) {
+ flowViewerDto.setOvertime(processCoding.getStatus());
+ }
}
flowViewerList.add(flowViewerDto);
});
diff --git a/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
index e3f8512..306abc1 100644
--- a/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
@@ -145,6 +145,26 @@
}
@Override
+ public Boolean taskIsWait(String taskId, String processInsId) {
+ List<ProcessLog> list = new LambdaQueryChainWrapper<>(baseMapper)
+ .eq(ProcessLog::getProcessInsId, processInsId)
+ .eq(ProcessLog::getTaskId, taskId)
+ .list();
+ return list.stream().anyMatch(log -> ProcessLogEventTypeEnum.WAIT.equals(log.getEventType()))
+ && list.stream().filter(log -> ProcessLogEventTypeEnum.FINISHED.equals(log.getEventType())).count() < 1;
+ }
+
+ @Override
+ public Boolean taskIsJump(String taskId, String processInsId) {
+ List<ProcessLog> list = new LambdaQueryChainWrapper<>(baseMapper)
+ .eq(ProcessLog::getProcessInsId, processInsId)
+ .eq(ProcessLog::getTaskId, taskId)
+ .eq(ProcessLog::getEventType, ProcessLogEventTypeEnum.JUMP)
+ .list();
+ return list.size() > 0;
+ }
+
+ @Override
public Boolean taskIsTeamwork(String taskId, String processInsId) {
ProcessLog log = new LambdaQueryChainWrapper<>(baseMapper)
.eq(ProcessLog::getProcessInsId, processInsId)
diff --git a/flowable/src/main/java/com/ycl/domain/dto/FlowViewerDto.java b/flowable/src/main/java/com/ycl/domain/dto/FlowViewerDto.java
index 73ba121..9bad65e 100644
--- a/flowable/src/main/java/com/ycl/domain/dto/FlowViewerDto.java
+++ b/flowable/src/main/java/com/ycl/domain/dto/FlowViewerDto.java
@@ -25,4 +25,14 @@
* 椤圭洰瓒呮椂棰滆壊鐮� green/yellow/red
*/
private String overtime;
+
+ /**
+ * 鏄惁瀹圭己浜�
+ */
+ private Boolean hasWait;
+
+ /**
+ * 鏄惁璺宠繃浜�
+ */
+ private Boolean hasJump;
}
--
Gitblit v1.8.0