From cf834d0cda2556df54f703c4f032e80b0cb30d7d Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 14 二月 2025 17:28:15 +0800
Subject: [PATCH] 赋码排除节点挂起的任务

---
 flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java |    3 +++
 flowable/src/main/resources/mapper/ProcessLogMapper.xml     |   11 +++++++++++
 business/src/main/java/com/ycl/task/FlowableTask.java       |    8 ++++++++
 3 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/business/src/main/java/com/ycl/task/FlowableTask.java b/business/src/main/java/com/ycl/task/FlowableTask.java
index e5cefa7..94a3ef8 100644
--- a/business/src/main/java/com/ycl/task/FlowableTask.java
+++ b/business/src/main/java/com/ycl/task/FlowableTask.java
@@ -9,6 +9,7 @@
 import com.ycl.domain.entity.ProjectProcess;
 import com.ycl.factory.FlowServiceFactory;
 import com.ycl.mapper.ProcessCodingMapper;
+import com.ycl.mapper.ProcessLogMapper;
 import com.ycl.mapper.ProjectInfoMapper;
 import com.ycl.mapper.ProjectProcessMapper;
 import com.ycl.service.ProcessCodingService;
@@ -41,6 +42,8 @@
     private ProcessCodingMapper processCodingMapper;
     @Autowired
     private ProcessLogService processLogService;
+    @Autowired
+    private ProcessLogMapper processLogMapper;
     /**
      * 璧嬬爜浠诲姟
      * 涓や釜閫昏緫 鏀归」鐩爜銆佹敼鑺傜偣棰滆壊
@@ -50,6 +53,11 @@
         //褰撳墠姝e湪杩愯鐨勬墍鏈変换鍔¤妭鐐�
         List<Task> taskList = taskService.createTaskQuery().active().list();
         if (CollectionUtils.isEmpty(taskList)) return;
+        //鎺掗櫎鎺夎妭鐐规寕璧风殑浠诲姟
+        List<String> allHangupTask = processLogMapper.getAllHangup();
+        taskList = taskList.stream()
+                .filter(task -> !allHangupTask.contains(task.getId()))
+                .collect(Collectors.toList());
         //TODO锛氱瓫閫夊嚭娴佺▼瀹炰緥id锛岀敤浣滈」鐩寕璧�
         Set<String> proInsIds = taskList.stream()
                 .map(TaskInfo::getProcessInstanceId)
diff --git a/flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java b/flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java
index 607ed43..822cef5 100644
--- a/flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java
+++ b/flowable/src/main/java/com/ycl/mapper/ProcessLogMapper.java
@@ -38,4 +38,7 @@
      * @return
      */
     List<ProcessLogVO> projectProcessLogPage(@Param("query") ProcessLogQuery query);
+
+    List<String> getAllHangup();
+
 }
diff --git a/flowable/src/main/resources/mapper/ProcessLogMapper.xml b/flowable/src/main/resources/mapper/ProcessLogMapper.xml
index 6dd004e..1c6c529 100644
--- a/flowable/src/main/resources/mapper/ProcessLogMapper.xml
+++ b/flowable/src/main/resources/mapper/ProcessLogMapper.xml
@@ -78,4 +78,15 @@
             TFL.gmt_create DESC
     </select>
 
+    <select id="getAllHangup" resultType="java.lang.String">
+        SELECT task_id
+        FROM (
+                 SELECT task_id,
+                        COUNT(*) AS num
+                 FROM t_process_log
+                 WHERE task_id IS NOT NULL
+                 GROUP BY task_id
+                 HAVING MOD(num, 2) != 0
+             ) AS t;
+    </select>
 </mapper>

--
Gitblit v1.8.0