From c9f99d88abe4e1cc13999317391bb23b43fc19ea Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期一, 07 四月 2025 09:55:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
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