ApprovalTaskMapper.xml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.qqflow.engine.domain.flow.mapper.ApprovalTaskMapper">
  4. <resultMap id="BaseResultMap" type="com.qqflow.engine.domain.flow.po.ApprovalTask">
  5. <id column="id" property="id"/>
  6. <result column="instance_id" property="instanceId"/>
  7. <result column="node_id" property="nodeId"/>
  8. <result column="node_name" property="nodeName"/>
  9. <result column="node_type" property="nodeType"/>
  10. <result column="assignee_id" property="assigneeId"/>
  11. <result column="assignee_type" property="assigneeType"/>
  12. <result column="task_status" property="taskStatus"/>
  13. <result column="approval_result" property="approvalResult"/>
  14. <result column="approval_comment" property="approvalComment"/>
  15. <result column="attachment_urls" property="attachmentUrls"/>
  16. <result column="timeout_time" property="timeoutTime"/>
  17. <result column="timeout_action" property="timeoutAction"/>
  18. <result column="create_time" property="createTime"/>
  19. <result column="handle_time" property="handleTime"/>
  20. <result column="version" property="version"/>
  21. <result column="deleted" property="deleted"/>
  22. <result column="process_name" property="processName"/>
  23. <result column="instance_title" property="instanceTitle"/>
  24. <result column="instance_no" property="instanceNo"/>
  25. </resultMap>
  26. <select id="selectTodoList" resultMap="BaseResultMap">
  27. SELECT t.*, pi.title as instance_title, pi.instance_no as instance_no, pd.process_name as process_name
  28. FROM bpm_approval_task t
  29. INNER JOIN bpm_process_instance pi ON t.instance_id = pi.id
  30. LEFT JOIN bpm_process_definition pd ON pi.process_definition_id = pd.id
  31. WHERE t.deleted = 0
  32. AND t.task_status = 0
  33. AND t.node_type != 'cc'
  34. AND (
  35. <choose>
  36. <when test="assigneeType == 'ROLE'">
  37. (t.assignee_type = 'ROLE' AND t.assignee_id = #{assigneeId})
  38. </when>
  39. <when test="roleIds != null and roleIds.size() > 0">
  40. ((t.assignee_type != 'ROLE' AND t.assignee_id = #{assigneeId})
  41. OR (t.assignee_type = 'ROLE' AND t.assignee_id IN
  42. <foreach collection="roleIds" item="roleId" open="(" close=")" separator=",">#{roleId}</foreach>))
  43. </when>
  44. <otherwise>
  45. (t.assignee_id = #{assigneeId} AND (t.assignee_type IS NULL OR t.assignee_type = '' OR t.assignee_type = 'USER'))
  46. </otherwise>
  47. </choose>
  48. )
  49. <if test="processName != null and processName != ''">
  50. AND pd.process_name LIKE CONCAT('%', #{processName}, '%')
  51. </if>
  52. ORDER BY t.create_time DESC
  53. </select>
  54. <select id="selectHandledList" resultMap="BaseResultMap">
  55. SELECT t.*, pi.title as instance_title, pi.instance_no as instance_no, pd.process_name as process_name
  56. FROM bpm_approval_task t
  57. INNER JOIN bpm_process_instance pi ON t.instance_id = pi.id
  58. LEFT JOIN bpm_process_definition pd ON pi.process_definition_id = pd.id
  59. WHERE t.deleted = 0
  60. AND t.task_status IN (1, 2, 4)
  61. AND t.node_type != 'cc'
  62. AND (
  63. <choose>
  64. <when test="assigneeType == 'ROLE'">
  65. (t.assignee_type = 'ROLE' AND t.assignee_id = #{assigneeId})
  66. </when>
  67. <when test="roleIds != null and roleIds.size() > 0">
  68. ((t.assignee_type != 'ROLE' AND t.assignee_id = #{assigneeId})
  69. OR (t.assignee_type = 'ROLE' AND t.assignee_id IN
  70. <foreach collection="roleIds" item="roleId" open="(" close=")" separator=",">#{roleId}</foreach>))
  71. </when>
  72. <otherwise>
  73. (t.assignee_id = #{assigneeId} AND (t.assignee_type IS NULL OR t.assignee_type = '' OR t.assignee_type = 'USER'))
  74. </otherwise>
  75. </choose>
  76. )
  77. <if test="processName != null and processName != ''">
  78. AND pd.process_name LIKE CONCAT('%', #{processName}, '%')
  79. </if>
  80. ORDER BY t.handle_time DESC
  81. </select>
  82. <select id="selectCcList" resultMap="BaseResultMap">
  83. SELECT t.*, pi.title as instance_title, pi.instance_no as instance_no, pd.process_name as process_name
  84. FROM bpm_approval_task t
  85. INNER JOIN bpm_process_instance pi ON t.instance_id = pi.id
  86. LEFT JOIN bpm_process_definition pd ON pi.process_definition_id = pd.id
  87. WHERE t.deleted = 0
  88. AND t.node_type = 'cc'
  89. AND (
  90. <choose>
  91. <when test="assigneeType == 'ROLE'">
  92. (t.assignee_type = 'ROLE' AND t.assignee_id = #{assigneeId})
  93. </when>
  94. <when test="roleIds != null and roleIds.size() > 0">
  95. ((t.assignee_type != 'ROLE' AND t.assignee_id = #{assigneeId})
  96. OR (t.assignee_type = 'ROLE' AND t.assignee_id IN
  97. <foreach collection="roleIds" item="roleId" open="(" close=")" separator=",">#{roleId}</foreach>))
  98. </when>
  99. <otherwise>
  100. (t.assignee_id = #{assigneeId} AND (t.assignee_type IS NULL OR t.assignee_type = '' OR t.assignee_type = 'USER'))
  101. </otherwise>
  102. </choose>
  103. )
  104. <if test="processName != null and processName != ''">
  105. AND pd.process_name LIKE CONCAT('%', #{processName}, '%')
  106. </if>
  107. ORDER BY t.create_time DESC
  108. </select>
  109. </mapper>