From 12f73bafbe361f78d68a35de83ca3b3b4d4e0224 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 14 二月 2025 16:27:43 +0800
Subject: [PATCH] 查询待办任务时,判断是否挂起状态

---
 common/src/main/java/com/ycl/common/enums/business/TaskStatusEnum.java     |    3 ++-
 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java |    9 ++++++++-
 business/src/main/java/com/ycl/service/ProcessLogService.java              |    9 +++++++++
 business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java     |    9 +++++++++
 4 files changed, 28 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 319bb4f..923854c 100644
--- a/business/src/main/java/com/ycl/service/ProcessLogService.java
+++ b/business/src/main/java/com/ycl/service/ProcessLogService.java
@@ -70,6 +70,15 @@
     Boolean taskDelegation(String processInstanceId, String taskId);
 
     /**
+     * 妫�鏌ヤ换鍔℃槸鍚︽寕璧�
+     *
+     * @param taskId 浠诲姟id
+     * @param processInsId 娴佺▼瀹炰緥id
+     * @return   true 鎸傝捣鐨�   false娌℃寕璧�
+     */
+    Boolean taskIsHangup(String taskId, String processInsId);
+
+    /**
      * 娴佺▼鎺ㄨ繘鏃ュ織
      *
      * @param query
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 2d31b69..7997fbd 100644
--- a/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
@@ -137,6 +137,15 @@
         return CollectionUtils.isNotEmpty(list);
     }
 
+    @Override
+    public Boolean taskIsHangup(String taskId, String processInsId) {
+        Long num = new LambdaQueryChainWrapper<>(baseMapper)
+                .eq(ProcessLog::getProcessInsId, processInsId)
+                .eq(ProcessLog::getTaskId, taskId)
+                .in(ProcessLog::getEventType, ProcessLogEventTypeEnum.HANGUP, ProcessLogEventTypeEnum.CANCEL_HANGUP)
+                .count();
+        return num % 2 != 0;
+    }
 
     @Override
     public Result projectProcessLogPage(ProcessLogQuery query) {
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 80385fa..6ac5ced 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -409,7 +409,10 @@
                     }
                 }
             }
-
+            // 妫�鏌ユ槸鍚︽寕璧�
+            if (processLogService.taskIsHangup(task.getId(), task.getProcessInstanceId())) {
+                taskVO.setTaskStatus(TaskStatusEnum.HANGUP);
+            }
             this.distinctVo(taskVO);
             vos.add(taskVO);
         }
@@ -755,6 +758,10 @@
         for (Task task : taskList) {
             CustomerTaskVO taskVO = new CustomerTaskVO();
             this.setRuntimeTaskInfo(task, taskVO, projectId);
+            // 妫�鏌ユ槸鍚︽寕璧�
+            if (processLogService.taskIsHangup(task.getId(), task.getProcessInstanceId())) {
+                taskVO.setTaskStatus(TaskStatusEnum.HANGUP);
+            }
             vos.add(taskVO);
         }
         result.put("taskList", vos);
diff --git a/common/src/main/java/com/ycl/common/enums/business/TaskStatusEnum.java b/common/src/main/java/com/ycl/common/enums/business/TaskStatusEnum.java
index a942187..4502b0c 100644
--- a/common/src/main/java/com/ycl/common/enums/business/TaskStatusEnum.java
+++ b/common/src/main/java/com/ycl/common/enums/business/TaskStatusEnum.java
@@ -14,7 +14,8 @@
 
     NOT_START("not_start", "鏈紑濮�"),
     TODO("todo", "寰呭姙"),
-    FINISHED("finished", "宸插畬鎴�")
+    FINISHED("finished", "宸插畬鎴�"),
+    HANGUP("HANGUP", "鎸傝捣"),
     ;
 
     private final String value;

--
Gitblit v1.8.0