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