ApprovalSubmitMapper.xml 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  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.dk.bpm.mapper.ApprovalSubmitMapper">
  4. <!-- 通用设置 -->
  5. <!-- 通用查询列 -->
  6. <sql id="Base_Column_List">
  7. submit_id
  8. , apv_id, doc_code, data_id, data_no, submit_user, apv_result, remarks, flg_valid, fty_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_timestamp, op_db_user
  9. </sql>
  10. <!-- 通用查询映射结果 -->
  11. <resultMap id="BaseResultMap" type="com.dk.bpm.model.pojo.ApprovalSubmit">
  12. <id column="submit_id" property="submitId"/>
  13. <result column="apv_id" property="apvId"/>
  14. <result column="doc_code" property="docCode"/>
  15. <result column="data_id" property="dataId"/>
  16. <result column="data_no" property="dataNo"/>
  17. <result column="submit_user" property="submitUser"/>
  18. <result column="apv_result" property="apvResult"/>
  19. <result column="remarks" property="remarks"/>
  20. <result column="flg_valid" property="flgValid"/>
  21. <result column="fty_id" property="ftyId"/>
  22. <result column="op_create_time" property="opCreateTime"
  23. typeHandler="TimestampTypeHandler"/>
  24. <result column="op_create_user_id" property="opCreateUserId"/>
  25. <result column="op_update_time" property="opUpdateTime"
  26. typeHandler="TimestampTypeHandler"/>
  27. <result column="op_update_user_id" property="opUpdateUserId"/>
  28. <result column="op_timestamp" property="opTimestamp"
  29. typeHandler="TimestampTypeHandler"/>
  30. <result column="op_db_user" property="opDbUser"/>
  31. </resultMap>
  32. <!-- 关联查询列 -->
  33. <sql id="Join_Column_List">
  34. sub
  35. .
  36. submit_id
  37. , sub.apv_id,apv.apv_name, sub.doc_code, sub.data_id, sub.data_no, sub.apv_result, sub.remarks, sub.flg_valid,sub.fty_id,
  38. sub.submit_user,u.user_code as submit_user_code,u.user_name as submit_user_name,
  39. step.submit_step_id, step.submit_id as step_submit_id, step.apv_id as step_apv_id,
  40. step.step_type, case step.step_type WHEN 1 THEN '审批' when 2 THEN '抄送' else ''
  41. end
  42. as step_type_name,
  43. step.aps_user_type, case step.aps_user_type WHEN 1 THEN '员工' when 2 THEN '职务' else ''
  44. end
  45. as aps_user_type_name,
  46. step.object_id,
  47. case aps_user_type WHEN 1 THEN
  48. array_to_string(
  49. array(
  50. select u.user_name from core.t_user u
  51. where u.user_id = any(step.object_id)
  52. order by u.user_id
  53. ),','
  54. )
  55. WHEN 2 THEN
  56. array_to_string(
  57. array(
  58. select p.post_name from core.t_post p
  59. where p.post_id = any(step.object_id)
  60. order by p.post_id
  61. ),','
  62. )
  63. end
  64. as object_name,
  65. step.aps_user_ids,
  66. case when aps_user_id is null then
  67. array_to_string(
  68. array(
  69. select u.user_name from core.t_user u
  70. where u.user_id = any(step.aps_user_ids)
  71. order by u.user_id
  72. ),','
  73. ) else
  74. (select u.user_name from core.t_user u where u.user_id = aps_user_id)
  75. end
  76. as aps_user_names,
  77. step.flg_current, step.aps_result, step.display_no, step.remarks as step_remarks, step.flg_valid as step_flg_valid ,step.fty_id as step_cp_id
  78. </sql>
  79. <!-- 关联查询映射结果 todo还差对应-->
  80. <resultMap id="JoinResultMap" type="com.dk.bpm.model.response.ApprovalSubmitResponse">
  81. <id column="submit_id" property="submitId"/>
  82. <result column="apv_id" property="apvId"/>
  83. <result column="apv_name" property="apvName"/>
  84. <result column="apv_result" property="apvResult"/>
  85. <result column="fty_id" property="ftyId"/>
  86. <result column="data_id" property="dataId"/>
  87. <result column="data_no" property="dataNo"/>
  88. <result column="doc_code" property="docCode"/>
  89. <result column="flg_valid" property="flgValid"/>
  90. <result column="remarks" property="remarks"/>
  91. <result column="submit_user" property="submitUser"/>
  92. <result column="submit_user_code" property="submitUserCode"/>
  93. <result column="submit_user_name" property="submitUserName"/>
  94. <collection property="approvalSubmitStepResponseList" javaType="java.util.ArrayList"
  95. ofType="com.dk.bpm.model.response.ApprovalSubmitStepResponse" column="submit_id">
  96. <id column="submit_step_id" property="submitStepId"/>
  97. <result column="step_submit_id" property="submitId"/>
  98. <result column="step_apv_id" property="apvId"/>
  99. <result column="step_type" property="stepType"/>
  100. <result column="step_type_name" property="stepTypeName"/>
  101. <result column="aps_user_type" property="apsUserType"/>
  102. <result column="aps_user_type_name" property="apsUserTypeName"/>
  103. <result column="object_id" property="objectId" typeHandler="BigIntListTypeHandler"/>
  104. <result column="object_name" property="objectName"/>
  105. <result column="aps_user_ids" property="apsUserIds" typeHandler="IntListTypeHandler"/>
  106. <result column="aps_user_names" property="apsUserNames"/>
  107. <result column="flg_current" property="flgCurrent"/>
  108. <result column="step_submit_id" property="submitId"/>
  109. <result column="aps_result" property="apsResult"/>
  110. <result column="display_no" property="displayNo"/>
  111. <result column="step_remarks" property="remarks"/>
  112. <result column="step_flg_valid" property="flgValid"/>
  113. <result column="step_cp_id" property="ftyId"/>
  114. </collection>
  115. </resultMap>
  116. <!-- 通用条件列 -->
  117. <sql id="Condition">
  118. <where>
  119. <if test="apvId != null">
  120. AND sub.apv_id = #{apvId}
  121. </if>
  122. <if test="docCode != null and docCode != ''">
  123. AND sub.doc_code = #{docCode}
  124. </if>
  125. <if test="dataId != null and dataId != ''">
  126. AND sub.data_id = #{dataId}
  127. </if>
  128. <if test="dataNo != null and dataNo != ''">
  129. AND sub.data_no = #{dataNo}
  130. </if>
  131. <if test="submitUser != null">
  132. AND sub.submit_user = #{submitUser}
  133. </if>
  134. <if test="apvResult != null and apvResult != ''">
  135. AND sub.apv_result = #{apvResult}
  136. </if>
  137. <if test="remarks != null and remarks != ''">
  138. AND sub.remarks = #{remarks}
  139. </if>
  140. <if test="flgValid != null">
  141. AND sub.flg_valid = #{flgValid}
  142. </if>
  143. AND sub.flg_valid
  144. <if test="ftyId != null">
  145. AND sub.fty_id = #{ftyId}
  146. </if>
  147. </where>
  148. </sql>
  149. <sql id="idsForeach">
  150. <!-- 根据主键submitId批量操作 -->
  151. WHERE submit_id in
  152. <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
  153. #{item}
  154. </foreach>
  155. </sql>
  156. <!-- 查询表t_approval_submit,(条件查询+分页)列表 -->
  157. <select id="selectByCond" resultMap="JoinResultMap">
  158. SELECT
  159. <include refid="Join_Column_List"/>
  160. FROM bpm.t_approval_submit sub
  161. LEFT JOIN bpm.t_approval_submit_step step ON sub.submit_id = step.submit_id
  162. LEFT JOIN bpm.t_approval_process apv on apv.apv_id=sub.apv_id
  163. LEFT JOIN core.t_user u on u.user_id=sub.submit_user
  164. <include refid="Condition"/>
  165. order by sub.submit_id,step.display_no
  166. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  167. limit #{end} offset #{start}
  168. </if>
  169. </select>
  170. <!-- 查询表t_approval_submit,(条件查询)个数 -->
  171. <select id="countByCond" resultType="Long">
  172. SELECT
  173. count(1)
  174. FROM bpm.t_approval_submit sub
  175. <include refid="Condition"/>
  176. </select>
  177. <!-- 根据主键锁定表t_approval_submit的一行数据 -->
  178. <select id="selectByIdForUpdate" resultMap="BaseResultMap">
  179. SELECT
  180. <include refid="Base_Column_List"/>
  181. FROM bpm.t_approval_submit
  182. WHERE submit_id = #{id}
  183. for update
  184. </select>
  185. <!-- 根据主键锁定表t_approval_submit的多行数据 -->
  186. <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
  187. SELECT
  188. <include refid="Base_Column_List"/>
  189. FROM bpm.t_approval_submit
  190. <include refid="idsForeach"/>
  191. for update
  192. </select>
  193. <insert id="insertBatch">
  194. insert into t_approval_submit
  195. (
  196. <trim suffixOverrides=",">
  197. apv_id,
  198. doc_code,
  199. data_id,
  200. data_no,
  201. submit_user,
  202. apv_result,
  203. remarks,
  204. fty_id,
  205. </trim>
  206. )
  207. values
  208. <foreach collection="list" index="index" item="item" separator=",">
  209. (
  210. <trim suffixOverrides=",">
  211. #{item.apvId},
  212. #{item.docCode},
  213. #{item.dataId},
  214. #{item.dataNo},
  215. #{item.submitUser},
  216. #{item.apvResult},
  217. #{item.remarks},
  218. #{item.ftyId},
  219. </trim>
  220. )
  221. </foreach>
  222. </insert>
  223. <select id="selectById" resultMap="JoinResultMap">
  224. SELECT
  225. <include refid="Join_Column_List"/>
  226. FROM bpm.t_approval_submit sub
  227. LEFT JOIN bpm.t_approval_submit_step step ON sub.submit_id = step.submit_id
  228. LEFT JOIN bpm.t_approval_process apv on apv.apv_id=sub.apv_id
  229. LEFT JOIN core.t_user u on u.user_id=sub.submit_user
  230. WHERE sub.submit_id = #{submitId}
  231. order by step.display_no
  232. </select>
  233. </mapper>