yangys
2025-09-29 4c7296d45efe849dc70a3b2e2240c905481a91c9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?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.springblade.mdm.flow.mapper.DoneMapper">
    <!--查询用户已办列表-->
    <select id="pageQuery" resultType="org.springblade.mdm.flow.vo.FlowVO">
        SELECT
        HTI.ID_ AS taskId,
        HTI.NAME_ AS taskName,
        HPI.START_USER_ID_,
        su.name start_user_name,
        HTI.ASSIGNEE_ AS assignee,
        HTI.START_TIME_ AS createTime,
        HTI.END_TIME_ AS endTime,
        HPI.PROC_INST_ID_ AS processInstanceId,
        HPI.BUSINESS_KEY_ AS businessKey,
        HPD.NAME_ AS processDefinitionName,
        HPD.KEY_ as processDefinitionKey,
        HPI.START_TIME_ as processCreateTime,
        HTI.TASK_DEF_KEY_ as taskDefinitionKey,
        case when HPI.END_TIME_ is null then 'false' else 'true' end as processIsFinished
        FROM
        ACT_HI_TASKINST HTI
 
        INNER JOIN ACT_HI_PROCINST HPI ON HTI.PROC_INST_ID_ = HPI.PROC_INST_ID_
        inner JOIN blade_user su on HPI.START_USER_ID_=su.id
        INNER JOIN ACT_RE_PROCDEF HPD ON HPI.PROC_DEF_ID_ = HPD.ID_
        WHERE
        HTI.ASSIGNEE_ = #{query.userId}<!--'1932080214599315458'-->
        AND HTI.END_TIME_ IS NOT NULL
        and HPI.PROC_INST_ID_ in (
        select VAR.PROC_INST_ID_ from ACT_HI_VARINST VAR join ACT_HI_TASKINST taskin on VAR.PROC_INST_ID_=taskin.PROC_INST_ID_
        <where>
            VAR.VAR_TYPE_ ='string'
            and taskin.ASSIGNEE_ = #{query.userId}
 
            <!-- 任务创建时间过滤 -->
            <if test="query.createTimeBegin != null">
                AND taskin.START_TIME_ &gt;= #{query.createTimeBegin}
            </if>
            <if test="query.createTimeEnd != null">
                AND taskin.START_TIME_ &lt;= #{query.createTimeEnd}
            </if>
            <if test="query.keyword != null and query.keyword != ''">
                <bind name="patternVal" value="'%'+query.keyword+'%'"/>
                and (
                    (VAR.name_='title' and TEXT_ like #{patternVal})
                    or (VAR.name_='drawingNo' and TEXT_ like #{patternVal})
                    or (VAR.name_='processNo' and TEXT_ like #{patternVal})
                    or (VAR.name_='machineCode' and TEXT_ like  #{patternVal})
                    or (VAR.name_='processName' and TEXT_ like #{patternVal})
                    or (VAR.name_='processEdition' and TEXT_ like #{patternVal})
                    or (VAR.name_='craftEdition' and TEXT_ like #{patternVal})
                    or (VAR.name_='productModel' and TEXT_ like  #{patternVal})
                )
            </if>
            <if test="query.status != null and query.status != 0">
                <choose>
                    <when test="query.status == 1">
                        AND HPI.END_TIME_ is null
                    </when>
 
                    <otherwise>
                        AND HPI.END_TIME_ is not null
                    </otherwise>
                </choose>
            </if>
 
         </where>
        )
        order by HTI.END_TIME_ desc
    </select>
 
</mapper>