From 4e2be858f4ccbb7490b59ed584fd1c829eb4d556 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期二, 01 四月 2025 15:22:47 +0800
Subject: [PATCH] 修改审签问题

---
 lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml |   70 ++++++++++++++++++++++-------------
 1 files changed, 44 insertions(+), 26 deletions(-)

diff --git a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml
index ac9df17..edb48a8 100644
--- a/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml
+++ b/lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/mapper/xml/HisWorkTaskMapper.xml
@@ -24,34 +24,52 @@
             aht.START_TIME_ ASC
     </select>
     <select id="queryHisTaskByProcInstId" resultType="org.jeecg.modules.flowable.domain.vo.FlowHistoricalVo">
-        SELECT
-            p.PROC_INST_ID_ AS procInstId,
-            p.BUSINESS_KEY_ AS businessKey,
-            p.START_TIME_ AS startTime,
-            p.END_TIME_ AS endTime,
-            a.ACT_NAME_ AS actName,
-            a.ACT_TYPE_ AS actType,
-            a.START_TIME_ AS actStartTime,
-            a.END_TIME_ AS actEndTime,
-            c.NAME_ AS taskName,
-            c.ASSIGNEE_ AS assignee,
-            CASE
-                WHEN c.DURATION_ IS NOT NULL THEN
-                    CASE
-                        WHEN FLOOR(c.DURATION_ / 1000.0) = 0 THEN NULL
-                        ELSE FLOOR(c.DURATION_ / 1000.0)
-                        END
-                ELSE NULL
-                END AS duration,
-            c.DESCRIPTION_ AS description
+        WITH ActivitySequence AS (
+            SELECT
+                p.PROC_INST_ID_ AS procInstId,
+                p.BUSINESS_KEY_ AS businessKey,
+                p.START_TIME_ AS procStartTime,
+                p.END_TIME_ AS procEndTime,
+                a.ACT_ID_,
+                COALESCE ( a.ACT_NAME_, a.ACT_ID_ ) AS actName,
+                a.ACT_TYPE_ AS actType,
+                a.START_TIME_ AS actStartTime,
+                a.END_TIME_ AS actEndTime,
+                c.NAME_ AS taskName,
+                c.ASSIGNEE_ AS assignee,
+                c.DESCRIPTION_ AS description,
+-- 浣跨敤 LEAD 鑾峰彇涓嬩竴涓椿鍔ㄤ俊鎭�
+                LEAD ( COALESCE ( a.ACT_NAME_, a.ACT_ID_ ) ) OVER ( PARTITION BY p.PROC_INST_ID_ ORDER BY a.START_TIME_ ) AS nextActName,
+                LEAD ( a.ACT_TYPE_ ) OVER ( PARTITION BY p.PROC_INST_ID_ ORDER BY a.START_TIME_ ) AS nextActType,
+                LEAD ( a.START_TIME_ ) OVER ( PARTITION BY p.PROC_INST_ID_ ORDER BY a.START_TIME_ ) AS nextActStartTime
+            FROM
+                act_hi_procinst p
+                    LEFT JOIN act_hi_actinst a ON p.PROC_INST_ID_ = a.PROC_INST_ID_
+                    AND a.ACT_TYPE_ IN ( 'userTask', 'sequenceFlow' )
+                    LEFT JOIN ACT_HI_TASKINST c ON a.TASK_ID_ = c.ID_
+            WHERE
+                p.PROC_INST_ID_ = #{procInstId}
+        ) SELECT
+              procInstId,
+              businessKey,
+-- 褰撳墠娲诲姩锛坲serTask锛変俊鎭�
+              actName AS userTaskName,
+              taskName,
+              assignee,
+              actStartTime,
+              actEndTime,
+              description,
+-- 涓嬩竴涓椿鍔紙sequenceFlow锛変俊鎭�
+              nextActName AS sequenceFlowName,
+              nextActStartTime AS sequenceFlowStartTime
         FROM
-            act_hi_procinst p
-                LEFT JOIN act_hi_actinst a ON p.PROC_INST_ID_ = a.PROC_INST_ID_
-                LEFT JOIN ACT_HI_TASKINST c ON a.TASK_ID_ = c.ID_
+            ActivitySequence
         WHERE
-            p.PROC_INST_ID_ = #{procInstId}
-          AND a.ACT_NAME_ IS NOT NULL
+            actType = 'userTask' -- 绛涢�夊綋鍓嶆椿鍔ㄤ负 userTask
+
+          AND nextActType = 'sequenceFlow' -- 涓斾笅涓�涓椿鍔ㄤ负 sequenceFlow
+
         ORDER BY
-            COALESCE(a.END_TIME_, '9999-12-31') ASC;
+            actStartTime;
     </select>
 </mapper>

--
Gitblit v1.9.3