| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?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.qqflow.engine.domain.flow.mapper.ApprovalTaskMapper">
- <resultMap id="BaseResultMap" type="com.qqflow.engine.domain.flow.po.ApprovalTask">
- <id column="id" property="id"/>
- <result column="instance_id" property="instanceId"/>
- <result column="node_id" property="nodeId"/>
- <result column="node_name" property="nodeName"/>
- <result column="node_type" property="nodeType"/>
- <result column="assignee_id" property="assigneeId"/>
- <result column="assignee_type" property="assigneeType"/>
- <result column="task_status" property="taskStatus"/>
- <result column="approval_result" property="approvalResult"/>
- <result column="approval_comment" property="approvalComment"/>
- <result column="attachment_urls" property="attachmentUrls"/>
- <result column="timeout_time" property="timeoutTime"/>
- <result column="timeout_action" property="timeoutAction"/>
- <result column="create_time" property="createTime"/>
- <result column="handle_time" property="handleTime"/>
- <result column="version" property="version"/>
- <result column="deleted" property="deleted"/>
- <result column="process_name" property="processName"/>
- <result column="instance_title" property="instanceTitle"/>
- <result column="instance_no" property="instanceNo"/>
- <result column="form_data" property="formData"/>
- <result column="form_schema" property="formSchema"/>
- </resultMap>
- <select id="selectTodoList" resultMap="BaseResultMap">
- SELECT t.*, pi.title as instance_title, pi.instance_no as instance_no, pi.form_data as form_data,
- pd.process_name as process_name, pd.form_schema as form_schema
- FROM bpm_approval_task t
- INNER JOIN bpm_process_instance pi ON t.instance_id = pi.id
- LEFT JOIN bpm_process_definition pd ON pi.process_definition_id = pd.id
- WHERE t.deleted = 0
- AND t.task_status = 0
- AND t.node_type != 'cc'
- AND (
- <choose>
- <when test="assigneeType == 'ROLE'">
- (t.assignee_type = 'ROLE' AND t.assignee_id = #{assigneeId})
- </when>
- <when test="roleIds != null and roleIds.size() > 0">
- ((t.assignee_type != 'ROLE' AND t.assignee_id = #{assigneeId})
- OR (t.assignee_type = 'ROLE' AND t.assignee_id IN
- <foreach collection="roleIds" item="roleId" open="(" close=")" separator=",">#{roleId}</foreach>))
- </when>
- <otherwise>
- (t.assignee_id = #{assigneeId} AND (t.assignee_type IS NULL OR t.assignee_type = '' OR t.assignee_type = 'USER'))
- </otherwise>
- </choose>
- )
- <if test="processName != null and processName != ''">
- AND pd.process_name LIKE CONCAT('%', #{processName}, '%')
- </if>
- <if test="formFilters != null and formFilters.size() > 0">
- <foreach collection="formFilters" index="key" item="value">
- <if test="value != null and value != ''">
- AND pi.form_data LIKE CONCAT('"%', #{key}, '%"%', #{value}, '%')
- </if>
- </foreach>
- </if>
- ORDER BY t.create_time ASC
- </select>
- <select id="selectHandledList" resultMap="BaseResultMap">
- SELECT DISTINCT t.*, pi.title as instance_title, pi.instance_no as instance_no, pd.process_name as process_name
- FROM bpm_approval_task t
- INNER JOIN bpm_process_instance pi ON t.instance_id = pi.id
- LEFT JOIN bpm_process_definition pd ON pi.process_definition_id = pd.id
- INNER JOIN bpm_approval_record r ON r.task_id = t.id AND r.operator_id = #{assigneeId}
- WHERE t.deleted = 0
- AND t.task_status IN (1, 2, 4)
- AND t.node_type != 'cc'
- <if test="processName != null and processName != ''">
- AND pd.process_name LIKE CONCAT('%', #{processName}, '%')
- </if>
- ORDER BY t.handle_time DESC
- </select>
- <select id="selectCcList" resultMap="BaseResultMap">
- SELECT t.*, pi.title as instance_title, pi.instance_no as instance_no, pd.process_name as process_name
- FROM bpm_approval_task t
- INNER JOIN bpm_process_instance pi ON t.instance_id = pi.id
- LEFT JOIN bpm_process_definition pd ON pi.process_definition_id = pd.id
- WHERE t.deleted = 0
- AND t.node_type = 'cc'
- AND (
- <choose>
- <when test="assigneeType == 'ROLE'">
- (t.assignee_type = 'ROLE' AND t.assignee_id = #{assigneeId})
- </when>
- <when test="roleIds != null and roleIds.size() > 0">
- ((t.assignee_type != 'ROLE' AND t.assignee_id = #{assigneeId})
- OR (t.assignee_type = 'ROLE' AND t.assignee_id IN
- <foreach collection="roleIds" item="roleId" open="(" close=")" separator=",">#{roleId}</foreach>))
- </when>
- <otherwise>
- (t.assignee_id = #{assigneeId} AND (t.assignee_type IS NULL OR t.assignee_type = '' OR t.assignee_type = 'USER'))
- </otherwise>
- </choose>
- )
- <if test="processName != null and processName != ''">
- AND pd.process_name LIKE CONCAT('%', #{processName}, '%')
- </if>
- ORDER BY t.create_time DESC
- </select>
- </mapper>
|