FlowTaskMapper.xml.bak 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  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="jnpf.engine.mapper.FlowTaskMapper">
  4. <resultMap id="FlowTask" type="jnpf.engine.model.flowtask.FlowTaskListModel">
  5. <id column="F_Id" property="id"/>
  6. <result column="F_ProcessId" property="processId"/>
  7. <result column="F_EnCode" property="enCode"/>
  8. <result column="F_FullName" property="fullName"/>
  9. <result column="F_FlowUrgent" property="flowUrgent"/>
  10. <result column="F_FlowId" property="flowId"/>
  11. <result column="F_FlowCode" property="flowCode"/>
  12. <result column="F_FlowName" property="flowName"/>
  13. <result column="F_FlowCategory" property="flowCategory"/>
  14. <result column="F_StartTime" property="startTime"/>
  15. <result column="F_EndTime" property="endTime"/>
  16. <result column="F_ThisStep" property="thisStep"/>
  17. <result column="F_ThisStepId" property="thisStepId"/>
  18. <result column="F_Status" property="status"/>
  19. <result column="F_Completion" property="completion"/>
  20. <result column="F_CreatorUserId" property="creatorUserId"/>
  21. <result column="F_CreatorTime" property="creatorTime"/>
  22. <result column="F_HandleId" property="handleId"/>
  23. <result column="F_NodeName" property="nodeName"/>
  24. <result column="F_NodePropertyJson" property="approversProperties"/>
  25. <result column="F_Description" property="description"/>
  26. <result column="F_FlowVersion" property="flowVersion"/>
  27. <result column="F_DelegateUser" property="delegateUser"/>
  28. <result column="F_TemplateId" property="templateId"/>
  29. <result column="F_CirculateId" property="circulateId"/>
  30. <result column="F_Icon" property="icon"/>
  31. </resultMap>
  32. <select id="getTrialList" parameterType="map" resultMap="FlowTask">
  33. SELECT
  34. b.F_Id AS F_Id,
  35. c.F_Process_Id AS F_ProcessId,
  36. c.F_En_Code AS F_EnCode,
  37. c.F_Start_Time AS F_StartTime,
  38. c.F_Full_Name AS F_FullName,
  39. c.F_Flow_Urgent AS F_FlowUrgent,
  40. c.F_Flow_Id AS F_FlowId,
  41. c.F_Flow_Code AS F_FlowCode,
  42. c.F_Flow_Name AS F_FlowName,
  43. c.F_Flow_Category AS F_FlowCategory,
  44. c.F_End_Time AS F_EndTime,
  45. b.F_Node_Name AS F_ThisStep,
  46. b.F_Task_Node_Id AS F_ThisStepId,
  47. b.F_Handle_Status AS F_Status,
  48. c.F_Completion,
  49. c.F_Creator_User_Id AS F_CreatorUserId,
  50. b.F_Handle_Time AS F_CreatorTime,
  51. c.F_Last_Modify_User_Id AS F_LastModifyUserId,
  52. c.F_Last_Modify_Time AS F_LastModifyTime,
  53. b.F_Handle_Id AS F_HandleId,
  54. d.F_Handle_Id AS F_DelegateUser
  55. FROM
  56. (
  57. SELECT
  58. *
  59. FROM
  60. (
  61. SELECT
  62. F_Task_Id AS TaskId,
  63. F_Task_Node_Id AS TaskNodeId,
  64. F_Handle_Id AS HandleId,
  65. max( F_Handle_Time ) AS HandleTime
  66. FROM
  67. flow_task_operator_record
  68. WHERE
  69. (
  70. F_Handle_Status IN ( 0, 1, 10, 13 )
  71. AND F_Handle_Id = #{map.handleId}
  72. )
  73. AND F_Task_Operator_Id IS NOT NULL
  74. GROUP BY F_Task_Id,F_Task_Node_Id,F_Handle_Id
  75. ) MergeTable
  76. ) a
  77. LEFT JOIN flow_task_operator_record b ON (
  78. (
  79. a.TaskId = b.F_Task_Id
  80. AND a.TaskNodeId = b.F_Task_Node_Id
  81. )
  82. AND ( a.HandleId = b.F_Handle_Id )
  83. )
  84. LEFT JOIN flow_task c ON b.F_Task_Id = c.F_Id
  85. LEFT JOIN flow_task_operator d ON b.F_Task_Operator_Id = d.F_Id
  86. WHERE
  87. ( a.HandleTime = b.F_Handle_Time AND b.F_Handle_Status IN ( 0, 1, 10, 13 ) )
  88. AND b.F_Task_Operator_Id IS NOT NULL
  89. AND b.F_Handle_Id = #{map.handleId}
  90. <if test="map.keyWord != null and map.keyWord!=''">
  91. AND (c.F_En_Code like #{map.keyWord} or c.F_Full_Name like #{map.keyWord})
  92. </if>
  93. <if test="map.idList != null and map.idList.size()>0">
  94. AND b.F_Id in
  95. <foreach collection="map.idList" item="value" separator="," open="(" close=")">
  96. #{value}
  97. </foreach>
  98. </if>
  99. <if test="map.flowCategory != null and map.flowCategory.size()>0">
  100. AND c.F_Flow_Category in
  101. <foreach collection="map.flowCategory" item="value" separator="," open="(" close=")">
  102. #{value}
  103. </foreach>
  104. </if>
  105. <if test="map.creatorUserId != null and map.creatorUserId!=''">
  106. AND c.F_Creator_User_Id = #{map.creatorUserId}
  107. </if>
  108. <if test="map.templateId != null and map.templateId!=''">
  109. AND c.F_Template_Id = #{map.templateId}
  110. </if>
  111. <if test="map.flowList != null and map.flowList.size()>0">
  112. AND c.F_Flow_Id in
  113. <foreach collection="map.flowList" item="value" separator="," open="(" close=")">
  114. #{value}
  115. </foreach>
  116. </if>
  117. <if test="map.flowUrgent != null and map.flowUrgent!=''">
  118. AND c.F_Flow_Urgent = #{map.flowUrgent}
  119. </if>
  120. Order by b.F_Handle_Time DESC
  121. </select>
  122. <select id="getCirculateList" parameterType="map" resultMap="FlowTask">
  123. SELECT
  124. t.F_Id,
  125. t.F_Process_Id AS F_ProcessId,
  126. t.F_En_Code AS F_EnCode,
  127. t.F_Full_Name AS F_FullName,
  128. t.F_Flow_Urgent AS F_FlowUrgent,
  129. t.F_Flow_Id AS F_FlowId,
  130. t.F_Flow_Code AS F_FlowCode,
  131. t.F_Flow_Name AS F_FlowName,
  132. t.F_Flow_Category AS F_FlowCategory,
  133. t.F_Start_Time AS F_StartTime,
  134. t.F_End_Time AS F_EndTime,
  135. c.F_Node_Name AS F_ThisStep,
  136. c.F_Task_Node_Id AS F_ThisStepId,
  137. c.F_Id AS F_CirculateId,
  138. t.F_Status,
  139. t.F_Completion,
  140. e.F_Icon,
  141. t.F_Creator_User_Id AS F_CreatorUserId,
  142. c.F_Creator_Time AS F_CreatorTime,
  143. t.F_Last_Modify_User_Id AS F_LastModifyUserId,
  144. t.F_Last_Modify_Time AS F_LastModifyTime
  145. FROM
  146. flow_task t
  147. LEFT JOIN flow_task_circulate c ON c.F_Task_Id = t.F_Id
  148. LEFT JOIN flow_template e on t.F_Template_Id = e.F_Id
  149. WHERE
  150. c.F_Object_Id = #{map.objectId}
  151. <if test="map.keyWord != null and map.keyWord!=''">
  152. AND (t.F_En_Code like #{map.keyWord} or t.F_Full_Name like #{map.keyWord})
  153. </if>
  154. <if test="map.idList != null and map.idList.size()>0">
  155. AND c.F_Id in
  156. <foreach collection="map.idList" item="value" separator="," open="(" close=")">
  157. #{value}
  158. </foreach>
  159. </if>
  160. <if test="map.templateId != null and map.templateId!=''">
  161. AND t.F_Template_Id = #{map.templateId}
  162. </if>
  163. <if test="map.flowList != null and map.flowList.size()>0">
  164. AND t.F_Flow_Id in
  165. <foreach collection="map.flowList" item="value" separator="," open="(" close=")">
  166. #{value}
  167. </foreach>
  168. </if>
  169. <if test="map.flowCategory != null and map.flowCategory.size()>0">
  170. AND t.F_Flow_Category in
  171. <foreach collection="map.flowCategory" item="value" separator="," open="(" close=")">
  172. #{value}
  173. </foreach>
  174. </if>
  175. <if test="map.creatorUserId != null and map.creatorUserId!=''">
  176. AND t.F_Creator_User_Id = #{map.creatorUserId}
  177. </if>
  178. <if test="map.flowUrgent != null and map.flowUrgent!=''">
  179. AND t.F_Flow_Urgent = #{map.flowUrgent}
  180. </if>
  181. Order by c.F_Creator_Time DESC
  182. </select>
  183. <select id="getWaitList" parameterType="map" resultMap="FlowTask">
  184. SELECT
  185. o.F_Id AS F_Id,
  186. t.F_Process_Id AS F_ProcessId,
  187. t.F_En_Code AS F_EnCode,
  188. t.F_Full_Name AS F_FullName,
  189. t.F_Flow_Urgent AS F_FlowUrgent,
  190. t.F_Flow_Id AS F_FlowId,
  191. t.F_Flow_Code AS F_FlowCode,
  192. t.F_Flow_Name AS F_FlowName,
  193. t.F_Flow_Category AS F_FlowCategory,
  194. t.F_Start_Time AS F_StartTime,
  195. t.F_End_Time AS F_EndTime,
  196. o.F_Node_Name AS F_ThisStep,
  197. o.F_Task_Node_Id AS F_ThisStepId,
  198. t.F_Status,
  199. t.F_Completion,
  200. t.F_Creator_User_Id AS F_CreatorUserId,
  201. o.F_Creator_Time AS F_CreatorTime,
  202. o.F_Handle_Id AS F_HandleId,
  203. t.F_Last_Modify_User_Id AS F_LastModifyUserId,
  204. t.F_Template_Id AS F_TemplateId,
  205. t.F_Last_Modify_Time AS F_LastModifyTime,
  206. o.F_Node_Name AS F_NodeName,
  207. t.F_Flow_Version AS F_FlowVersion
  208. FROM
  209. flow_task_operator o
  210. LEFT JOIN flow_task t ON o.F_Task_Id = t.F_Id
  211. WHERE
  212. o.F_Completion = 0
  213. AND t.F_Status = 1
  214. AND o.F_State = '0'
  215. <if test="map.handleId != null and map.handleId.size()>0">
  216. AND (
  217. o.F_Handle_Id in
  218. <foreach collection="map.handleId" item="value" separator="," open="(" close=")">
  219. #{value}
  220. </foreach>
  221. <if test="map.delegateList != null and map.delegateList.size()>0">
  222. OR (
  223. <foreach collection="map.delegateList" item="item" index="index">
  224. ( t.F_Template_Id in
  225. <foreach collection="item.templateId" item="value" separator="," open="(" close=")">
  226. #{value}
  227. </foreach>
  228. and o.F_Handle_Id = #{item.user}
  229. )
  230. <if test="index != map.delegateList.size()-1">
  231. OR
  232. </if>
  233. </foreach>
  234. )
  235. </if>
  236. )
  237. </if>
  238. <if test="map.keyWord != null and map.keyWord!=''">
  239. AND (t.F_En_Code like #{map.keyWord} or t.F_Full_Name like #{map.keyWord})
  240. </if>
  241. <if test="map.idList != null and map.idList.size()>0">
  242. AND o.F_Id in
  243. <foreach collection="map.idList" item="value" separator="," open="(" close=")">
  244. #{value}
  245. </foreach>
  246. </if>
  247. <if test="map.flowCategory != null and map.flowCategory.size()>0">
  248. AND t.F_Flow_Category in
  249. <foreach collection="map.flowCategory" item="value" separator="," open="(" close=")">
  250. #{value}
  251. </foreach>
  252. </if>
  253. <if test="map.creatorUserId != null and map.creatorUserId!=''">
  254. AND t.F_Creator_User_Id = #{map.creatorUserId}
  255. </if>
  256. <if test="map.nodeCode != null and map.nodeCode!=''">
  257. AND o.F_Node_Code = #{map.nodeCode}
  258. </if>
  259. <if test="map.templateId != null and map.templateId!=''">
  260. AND t.F_Template_Id = #{map.templateId}
  261. </if>
  262. <if test="map.flowList != null and map.flowList.size()>0">
  263. AND t.F_Flow_Id in
  264. <foreach collection="map.flowList" item="value" separator="," open="(" close=")">
  265. #{value}
  266. </foreach>
  267. </if>
  268. <if test="map.isBatch != null and map.isBatch!=''">
  269. AND t.F_Is_Batch = #{map.isBatch}
  270. </if>
  271. <if test="map.flowUrgent != null and map.flowUrgent!=''">
  272. AND t.F_Flow_Urgent = #{map.flowUrgent}
  273. </if>
  274. Order by o.F_Creator_Time DESC
  275. </select>
  276. </mapper>