<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="org.jeecg.modules.flowable.mapper.IHisWorkTaskMapper">
|
<select id="queryHisTaskList" resultType="org.jeecg.modules.flowable.domain.vo.HisWorkTask">
|
SELECT
|
fb.id AS id,
|
aht.NAME_ AS name,
|
aht.DESCRIPTION_ AS cause,
|
su.realname AS assignee,
|
aht.START_TIME_ AS startTime,
|
aht.END_TIME_ AS endTime,
|
assign.status as status
|
FROM
|
flow_my_business fb,
|
act_hi_taskinst aht,
|
NC_ASSIGN_FILE_STREAM assign,
|
sys_user su
|
WHERE
|
fb.data_id= #{drapprovedataId}
|
AND fb.process_instance_id= aht.PROC_INST_ID_
|
AND su.username= aht.ASSIGNEE_
|
AND fb.data_id= assign.STREAM_ID
|
ORDER BY
|
aht.START_TIME_ ASC
|
</select>
|
<select id="queryHisTaskByProcInstId" resultType="org.jeecg.modules.flowable.domain.vo.FlowHistoricalVo">
|
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,
|
-- 当前活动(userTask)信息
|
actName AS userTaskName,
|
taskName,
|
assignee,
|
actStartTime,
|
actEndTime,
|
description,
|
-- 下一个活动(sequenceFlow)信息
|
nextActName AS sequenceFlowName,
|
nextActStartTime AS sequenceFlowStartTime
|
FROM
|
ActivitySequence
|
WHERE
|
actType = 'userTask' -- 筛选当前活动为 userTask
|
|
AND nextActType = 'sequenceFlow' -- 且下一个活动为 sequenceFlow
|
|
ORDER BY
|
actStartTime;
|
</select>
|
</mapper>
|