From 87ba41eebdf94722c51cce4470fbcc4b1ce18a2d Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 25 三月 2025 22:44:01 +0800
Subject: [PATCH] 按时完成不统计跳过的和容缺的

---
 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index 38f032c..938849f 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -1407,6 +1407,12 @@
                 .processInstanceId(processInsId)
                 .finished()
                 .list();
+        // 鎺掗櫎璺宠繃銆佸缂虹殑浠诲姟锛屽洜涓鸿繖涓や釜鎿嶄綔閮戒細瀹屾垚浠诲姟鑰屼骇鐢熷巻鍙蹭换鍔�
+        List<String> jumpAndWaitTaskIds = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper())
+                .eq(ProcessLog::getProcessInsId, processInsId)
+                .in(ProcessLog::getEventType, ProcessLogEventTypeEnum.JUMP, ProcessLogEventTypeEnum.WAIT)
+                .list().stream().map(ProcessLog::getTaskId).collect(Collectors.toList());
+        hisTaskList = hisTaskList.stream().filter(hisTask -> jumpAndWaitTaskIds.indexOf(hisTask.getId()) == -1).collect(Collectors.toList());
         hisTaskList = this.distinctHisTask(hisTaskList);
         if (CollectionUtils.isEmpty(hisTaskList)) {
             return 0L;
@@ -1466,7 +1472,13 @@
             result.total(0);
             return new ArrayList<>();
         }
-
+        // 鎺掗櫎璺宠繃銆佸缂虹殑浠诲姟锛屽洜涓鸿繖涓や釜鎿嶄綔閮戒細瀹屾垚浠诲姟鑰屼骇鐢熷巻鍙蹭换鍔�
+        List<String> jumpAndWaitTaskIds = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper())
+                .eq(ProcessLog::getProcessInsId, processInsId)
+                .eq(ProcessLog::getProjectId, projectId)
+                .in(ProcessLog::getEventType, ProcessLogEventTypeEnum.JUMP, ProcessLogEventTypeEnum.WAIT)
+                .list().stream().map(ProcessLog::getTaskId).collect(Collectors.toList());
+        hisTaskList = hisTaskList.stream().filter(hisTask -> jumpAndWaitTaskIds.indexOf(hisTask.getId()) == -1).collect(Collectors.toList());
         List<String> hisTaskKeys = hisTaskList.stream().map(HistoricTaskInstance::getTaskDefinitionKey).distinct().collect(Collectors.toList());
         Map<String, HistoricTaskInstance> hisTaskMap = this.distinctHisTask(hisTaskList).stream().collect(Collectors.toMap(HistoricTaskInstance::getTaskDefinitionKey, his -> his));
         // 鏌ュ嚭鏃堕棿姝e父鐨勪换鍔ey

--
Gitblit v1.8.0