RuTaskMapper.xml 7.9 KB
Newer Older
Rensq's avatar
Rensq committed
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
<?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="com.testor.module.wf.dao.RuTaskDao">

    <resultMap id="countToDoResult" type="java.util.HashMap">
        <result column="num" property="num" javaType="java.lang.String"/>
        <result column="processDefinitionId" property="processDefinitionId" javaType="java.lang.String"/>
        <result column="processDefinitionName" property="processDefinitionName" javaType="java.lang.String"/>
        <result column="processDefinitionKey" property="processDefinitionKey" javaType="java.lang.String"/>
    </resultMap>

    <delete id="deleteRuVariableException">
        delete from ACT_RU_VARIABLE where EXECUTION_ID_ is null
    </delete>

    <delete id="deleteHiVariableException">
        delete from act_hi_varinst where EXECUTION_ID_ is null
    </delete>

    <select id="getHisTask" resultType="com.tongtech.tfw.workflow.apis.task.model.dto.HisTask">
        SELECT
        task.ID_ AS taskId,
        task.NAME_ AS taskName,
        task.START_TIME_ AS startTime,
        task.END_TIME_ AS endTime,
        task.FORM_KEY_ as formKey,
        task.PROC_INST_ID_ AS processInstanceId,
        task.PROC_DEF_ID_ AS processDefinitionId,
        procdef.NAME_ AS processDefinitionName,
        procdef.VERSION_ AS processDefinitionVersion,
        procdef.DESCRIPTION_ as processDefinitionDescription,
        usr.FIRST_ AS startUser,
        hiproc.BUSINESS_KEY_ AS bizId
        FROM
        act_hi_taskinst task
        LEFT JOIN act_hi_procinst hiproc ON task.PROC_INST_ID_ = hiproc.PROC_INST_ID_
        LEFT JOIN act_re_procdef procdef ON task.PROC_DEF_ID_ = procdef.ID_
        LEFT JOIN act_id_user usr ON hiproc.START_USER_ID_ = usr.ID_
        WHERE
        task.END_TIME_ IS NOT NULL
        <if test="his.processDefinitionName != null"> AND procdef.NAME_ LIKE CONCAT('%',#{his.processDefinitionName},'%')</if>
        <if test="his.taskId != null"> AND task.ID_ =#{his.taskId}</if>
        <if test="his.bizId != null"> AND hiproc.BUSINESS_KEY_ = #{his.bizId}</if>
        <if test="his.processInstanceId != null"> AND task.PROC_INST_ID_ = #{his.processInstanceId}</if>
    </select>

47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
    <select id="getTaskId" resultType="com.tongtech.tfw.workflow.apis.task.model.dto.HisTask">
        SELECT
        task.ID_ AS taskId,
        task.NAME_ AS taskName,
        task.START_TIME_ AS startTime,
        task.END_TIME_ AS endTime,
        task.FORM_KEY_ as formKey,
        task.PROC_INST_ID_ AS processInstanceId,
        task.PROC_DEF_ID_ AS processDefinitionId,
        procdef.NAME_ AS processDefinitionName,
        procdef.VERSION_ AS processDefinitionVersion,
        procdef.DESCRIPTION_ as processDefinitionDescription,
        usr.FIRST_ AS startUser,
        hiproc.BUSINESS_KEY_ AS bizId
        FROM
        act_hi_taskinst task
        LEFT JOIN act_hi_procinst hiproc ON task.PROC_INST_ID_ = hiproc.PROC_INST_ID_
        LEFT JOIN act_re_procdef procdef ON task.PROC_DEF_ID_ = procdef.ID_
        LEFT JOIN act_id_user usr ON hiproc.START_USER_ID_ = usr.ID_
        WHERE
        task.END_TIME_ IS NOT NULL
        <if test="taskId != null"> AND task.ID_ =#{taskId}</if>
    </select>

Rensq's avatar
Rensq committed
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
    <select id="countToDo" resultMap="countToDoResult">
        SELECT
            count(distinct task.ID_) as num,
            procdef.NAME_ AS processDefinitionName,
            procdef.KEY_ as processDefinitionKey
        FROM
            act_re_procdef procdef
                LEFT JOIN
            act_ru_task task  ON task.PROC_DEF_ID_ = procdef.ID_
                LEFT JOIN
            act_ru_identitylink idl ON task.ID_ = idl.TASK_ID_
                left join
            act_ru_variable var on var.PROC_INST_ID_= task.PROC_INST_ID_
        WHERE
            ((task.ASSIGNEE_ = #{userId})
                OR (task.ASSIGNEE_ IS NULL and idl.USER_ID_ = #{userId}
                    OR (task.ASSIGNEE_ IS NULL and idl.GROUP_ID_ IN (SELECT
                                                                         g1.GROUP_ID_
                                                                     FROM
                                                                         act_id_membership g1
                                                                     WHERE
                                                                         g1.user_id_ = #{userId}))
                 ))
        and procdef.NAME_ not like '%危险作业%'
        group by procdef.NAME_,procdef.KEY_
    </select>
    <select id="selectToDoList" resultType="com.tongtech.tfw.workflow.apis.task.model.dto.TodoTask" parameterType="com.tongtech.tfw.workflow.apis.task.model.dto.TodoTaskSqlParam">
        SELECT DISTINCT
        task.ID_ AS taskId,
        task.NAME_ AS taskName,
        task.PROC_INST_ID_ AS processInstanceId,
        task.CREATE_TIME_ AS startTime,
        task.FORM_KEY_ as formKey,
        task.ASSIGNEE_ as assignee,
        usr.FIRST_ AS startUser,
        procdef.ID_ AS processDefinitionId,
        procdef.NAME_ AS processDefinitionName,
        procdef.VERSION_ AS processDefinitionVersion,
        hiproc.BUSINESS_KEY_ AS bizId
        FROM
        act_ru_task task
        LEFT JOIN
        act_hi_procinst hiproc ON task.PROC_INST_ID_ = hiproc.PROC_INST_ID_
        LEFT JOIN
        act_re_procdef procdef ON task.PROC_DEF_ID_ = procdef.ID_
        LEFT JOIN
        act_ru_identitylink idl ON task.ID_ = idl.TASK_ID_
        LEFT JOIN
        act_id_user usr ON hiproc.START_USER_ID_ = usr.ID_
        WHERE
        ((task.ASSIGNEE_ = #{todo.userId})
        OR (
        task.ASSIGNEE_ IS NULL and idl.USER_ID_ = #{todo.userId}
        OR (task.ASSIGNEE_ IS NULL and idl.GROUP_ID_ IN (SELECT
        g1.GROUP_ID_
        FROM
        act_id_membership g1
        WHERE
        g1.user_id_ = #{todo.userId}))
        ))
        and procdef.NAME_ not like '%危险作业%'
        <if test="todo.userName != null"> AND usr.FIRST_ LIKE CONCAT('%',#{todo.userName},'%')</if>
        <if test="todo.proDefName != null"> AND procdef.NAME_ LIKE CONCAT('%',#{todo.proDefName},'%')</if>
        <if test="todo.proDefId != null"> AND procdef.ID_ = #{todo.proDefId} </if>
        <if test="todo.proDefKey != null"> AND procdef.KEY_ = #{todo.proDefKey} </if>
        ORDER BY task.CREATE_TIME_ desc
    </select>
    <select id="selectHisTaskList" resultType="com.tongtech.tfw.workflow.apis.task.model.dto.HisTask" parameterType="com.tongtech.tfw.workflow.apis.task.model.dto.HisTaskSqlParam">
        SELECT
        task.ID_ AS taskId,
        task.NAME_ AS taskName,
        task.START_TIME_ AS startTime,
        task.END_TIME_ AS endTime,
        task.FORM_KEY_ as formKey,
        task.PROC_INST_ID_ AS processInstanceId,
        task.PROC_DEF_ID_ AS processDefinitionId,
        procdef.NAME_ AS processDefinitionName,
        procdef.VERSION_ AS processDefinitionVersion,
        procdef.DESCRIPTION_ as processDefinitionDescription,
        usr.FIRST_ AS startUser,
        hiproc.BUSINESS_KEY_ AS bizId
        FROM
        act_hi_taskinst task
        LEFT JOIN act_hi_procinst hiproc ON task.PROC_INST_ID_ = hiproc.PROC_INST_ID_
        LEFT JOIN act_re_procdef procdef ON task.PROC_DEF_ID_ = procdef.ID_
        LEFT JOIN act_id_user usr ON hiproc.START_USER_ID_ = usr.ID_
        WHERE
        task.END_TIME_ IS NOT NULL
        AND task.ASSIGNEE_ = #{his.userId}
        AND task.DELETE_REASON_ IS NULL
        and procdef.NAME_ not like '%危险作业%'
        <if test="his.userName != null"> AND usr.FIRST_ LIKE CONCAT('%',#{his.userName},'%')</if>
        <if test="his.proDefName != null"> AND procdef.NAME_ LIKE CONCAT('%',#{his.proDefName},'%')</if>
        <if test="his.taskId != null"> AND task.ID_ =#{his.taskId}</if>
        <if test="his.bizId != null"> AND hiproc.BUSINESS_KEY_ = #{his.bizId}</if>
        <if test="his.processInstanceId != null"> AND task.PROC_INST_ID_ = #{his.processInstanceId}</if>
        ORDER BY task.END_TIME_ desc
    </select>
</mapper>