FlowInstanceDao.xml 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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.flow.dao.FlowInstanceDao">
  4. <resultMap id="BaseResultMap" type="com.flow.entity.FlowInstance">
  5. <result property="id" column="id" jdbcType="VARCHAR"/>
  6. <result property="name" column="NAME_" jdbcType="VARCHAR"/>
  7. <result property="definitionId" column="PROC_DEF_ID_" jdbcType="VARCHAR"/>
  8. <result property="version" column="VERSION_" jdbcType="INTEGER"/>
  9. <result property="startUserId" column="START_USER_ID_" jdbcType="VARCHAR"/>
  10. <result property="startTime" column="START_TIME_" jdbcType="TIMESTAMP"/>
  11. <result property="endTime" column="END_TIME_" jdbcType="TIMESTAMP"/>
  12. <result property="duration" column="DURATION_" jdbcType="INTEGER"/>
  13. <result property="status" column="status" jdbcType="INTEGER"/>
  14. <result property="cancelDays" column="cancel_days" jdbcType="INTEGER"/>
  15. <association property="currentNodes" column="id" select="getCurrentNodes"/>
  16. </resultMap>
  17. <sql id="instanceColumns">
  18. SELECT
  19. RE.id,
  20. HP.NAME_,
  21. HP.PROC_DEF_ID_,
  22. HP.START_USER_ID_,
  23. HP.START_TIME_,
  24. HP.END_TIME_,
  25. HP.DURATION_,
  26. RE.status,
  27. RE.cancel_days
  28. FROM
  29. flow_instance AS RE
  30. INNER JOIN ACT_HI_PROCINST AS HP ON RE.id = HP.ID_
  31. </sql>
  32. <sql id="instanceWheres">
  33. <if test="query.startUserId != null and query.startUserId != ''">
  34. AND HP.START_USER_ID_ = #{query.startUserId}
  35. </if>
  36. <if test="query.status!= null">
  37. AND RE.status = #{query.status}
  38. </if>
  39. <if test="query.name!= null and query.name!= ''">
  40. AND HP.NAME_ like CONCAT('%',#{query.name},'%')
  41. </if>
  42. <if test="query.modelCode!= null and query.modelCode!= ''">
  43. AND HP.PROC_DEF_ID_ like CONCAT(#{query.modelCode},'%')
  44. </if>
  45. <if test="query.definitionId!= null and query.definitionId!= ''">
  46. AND HP.PROC_DEF_ID_ = #{query.definitionId}
  47. </if>
  48. <if test="query.startDates != null and query.startDates.size()>1">
  49. AND HP.START_TIME_ between #{query.startDates[0]} and #{query.startDates[1]}
  50. </if>
  51. <if test="query.endDates != null and query.endDates.size()>1">
  52. AND HP.END_TIME_ between #{query.endDates[0]} and #{query.endDates[1]}
  53. </if>
  54. </sql>
  55. <select id="list" resultMap="BaseResultMap">
  56. <include refid="instanceColumns"></include>
  57. <where>
  58. <include refid="instanceWheres"></include>
  59. </where>
  60. ORDER BY
  61. HP.START_TIME_ DESC
  62. </select>
  63. <select id="copy" resultMap="BaseResultMap">
  64. <include refid="instanceColumns"></include>
  65. INNER JOIN ACT_HI_IDENTITYLINK HE ON
  66. RE.id = HE.PROC_INST_ID_ AND
  67. HE.TYPE_ = 'copy' AND
  68. USER_ID_ = '${@com.flow.common.core.util.SecurityContextUtil@getUserId()}'
  69. <where>
  70. <include refid="instanceWheres"></include>
  71. </where>
  72. ORDER BY
  73. HP.START_TIME_ DESC
  74. </select>
  75. <select id="getInstance" resultMap="BaseResultMap">
  76. <include refid="instanceColumns"></include>
  77. WHERE
  78. RE.id = #{id}
  79. </select>
  80. <select id="getCurrentNodes" resultType="java.lang.String">
  81. SELECT
  82. DISTINCT ACT_NAME_
  83. FROM
  84. ACT_RU_ACTINST
  85. WHERE
  86. END_TIME_ IS NULL AND PROC_INST_ID_ = #{id}
  87. </select>
  88. </mapper>