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