TerminationMapper.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ruoyi.invest.mapper.TerminationMapper">
  6. <resultMap type="TProjectTermination" id="TProjectTerminationResult">
  7. <result property="id" column="id" />
  8. <result property="procInstId" column="proc_inst_id"/>
  9. <result property="projectPoolId" column="project_pool_id" />
  10. <result property="reason" column="reason" />
  11. <result property="delFlag" column="del_flag" />
  12. <result property="createBy" column="create_by" />
  13. <result property="createTime" column="create_time" />
  14. <result property="updateBy" column="update_by" />
  15. <result property="updateTime" column="update_time" />
  16. </resultMap>
  17. <resultMap type="ProjectTerminationVo" id="ProjectTerminationVoResult">
  18. <result property="id" column="id" />
  19. <result property="procInstId" column="proc_inst_id"/>
  20. <result property="projectPoolId" column="project_pool_id" />
  21. <result property="reason" column="reason" />
  22. <result property="delFlag" column="del_flag" />
  23. <result property="createBy" column="create_by" />
  24. <result property="createTime" column="create_time" />
  25. <result property="updateBy" column="update_by" />
  26. <result property="updateTime" column="update_time" />
  27. <result property="projectName" column="project_name" />
  28. <result property="industry" column="industry" />
  29. <result property="investHead" column="invest_head" />
  30. <result property="projectStage" column="project_stage" />
  31. <result property="projectState" column="project_state" />
  32. <result property="taskName" column="taskName"/>
  33. <result property="taskId" column="taskId"/>
  34. <result property="taskCreateTiem" column="taskCreateTiem"/>
  35. <result property="assignee" column="assignee"/>
  36. <result property="assigneeName" column="assigneeName"/>
  37. <result property="taskDefKey" column="taskDefKey"/>
  38. <result property="procDefId" column="procDefId"/>
  39. <result property="procInstId" column="procInstId"/>
  40. <result property="startUserId" column="startUserId"/>
  41. <result property="startUserName" column="startUserName"/>
  42. <result property="startDeptName" column="startDeptName"/>
  43. <result property="executionId" column="executionId"/>
  44. <result property="deployId" column="deployId"/>
  45. </resultMap>
  46. <sql id="selectTProjectTerminationVo">
  47. select id,proc_inst_id, project_pool_id, reason, del_flag, create_by, create_time, update_by, update_time from t_project_termination
  48. </sql>
  49. <sql id="where_sql">
  50. <if test="projectTermination.projectPoolId != null and projectTermination.projectPoolId != ''"> and a.project_pool_id = #{projectTermination.projectPoolId}</if>
  51. <if test="projectTermination.projectName != null and projectTermination.projectName != ''"> and tp.project_name like concat('%', #{projectTermination.projectName}, '%')</if>
  52. <if test="projectTermination.reason != null and projectTermination.reason != ''"> and a.reason like concat('%', #{projectTermination.reason}, '%')</if>
  53. </sql>
  54. <insert id="insertTProjectTermination" parameterType="TProjectTermination">
  55. insert into t_project_termination
  56. <trim prefix="(" suffix=")" suffixOverrides=",">
  57. <if test="id != null">id,</if>
  58. <if test="procInstId != null">proc_inst_id,</if>
  59. <if test="projectPoolId != null">project_pool_id,</if>
  60. <if test="reason != null">reason,</if>
  61. <if test="delFlag != null">del_flag,</if>
  62. <if test="createBy != null">create_by,</if>
  63. <if test="createTime != null">create_time,</if>
  64. <if test="updateBy != null">update_by,</if>
  65. <if test="updateTime != null">update_time,</if>
  66. <if test="status != null">status,</if>
  67. </trim>
  68. <trim prefix="values (" suffix=")" suffixOverrides=",">
  69. <if test="id != null">#{id},</if>
  70. <if test="procInstId != null">#{procInstId},</if>
  71. <if test="projectPoolId != null">#{projectPoolId},</if>
  72. <if test="reason != null">#{reason},</if>
  73. <if test="delFlag != null">#{delFlag},</if>
  74. <if test="createBy != null">#{createBy},</if>
  75. <if test="createTime != null">#{createTime},</if>
  76. <if test="updateBy != null">#{updateBy},</if>
  77. <if test="updateTime != null">#{updateTime},</if>
  78. <if test="status != null">#{status},</if>
  79. </trim>
  80. </insert>
  81. <update id="updateTProjectTermination" parameterType="TProjectTermination">
  82. update t_project_termination
  83. <trim prefix="SET" suffixOverrides=",">
  84. <if test="projectPoolId != null">project_pool_id = #{projectPoolId},</if>
  85. <if test="reason != null">reason = #{reason},</if>
  86. <if test="delFlag != null">del_flag = #{delFlag},</if>
  87. <if test="createBy != null">create_by = #{createBy},</if>
  88. <if test="createTime != null">create_time = #{createTime},</if>
  89. <if test="updateBy != null">update_by = #{updateBy},</if>
  90. <if test="updateTime != null">update_time = #{updateTime},</if>
  91. <if test="status != null">status = #{status},</if>
  92. </trim>
  93. where id = #{id}
  94. </update>
  95. <select id="getMyTaskList" resultMap="ProjectTerminationVoResult">
  96. select a.id,a.proc_inst_id, a.project_pool_id,tp.project_name, tp.industry,tp.project_stage,
  97. tp.project_state,tp.invest_head,a.reason,
  98. a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time ,
  99. p.PROC_INST_ID_ as 'procInsId',
  100. p.PROC_DEF_ID_ as 'procDefId',
  101. date_format(p.START_TIME_, '%Y-%m-%d %H:%i:%s') as 'applyTime',
  102. date_format(p.END_TIME_, '%Y-%m-%d %H:%i:%s') as 'endTime',
  103. p.START_USER_ID_ AS 'startUserId',
  104. uu.nick_name AS 'startUserName',
  105. dd.dept_name AS 'startDeptName',
  106. t.NAME_ as 'taskName',
  107. t.TASK_DEF_KEY_ as 'taskDefKey',
  108. DATE_FORMAT(t.CREATE_TIME_ ,'%Y-%m-%d %H:%i') as 'taskCreateTiem',
  109. t.ASSIGNEE_ AS 'assignee',
  110. ui.nick_name AS 'assigneeName',
  111. t.ID_ as 'taskId',
  112. t.EXECUTION_ID_ AS 'executionId',
  113. rp.DEPLOYMENT_ID_ AS 'deployId'
  114. from t_project_termination a
  115. left join t_project_pool tp on tp.id=a.project_pool_id
  116. left join ACT_HI_PROCINST p on a.proc_inst_id = p.PROC_INST_ID_
  117. LEFT JOIN (SELECT * FROM sys_user LIMIT 100000) uu ON p.START_USER_ID_ = uu.user_id
  118. LEFT JOIN (SELECT * FROM sys_dept LIMIT 100000) dd ON uu.dept_id = dd.dept_id
  119. left join ACT_RU_TASK t on a.proc_inst_id = t.PROC_INST_ID_
  120. left join (select * from sys_user limit 100000) ui on t.ASSIGNEE_ = ui.user_id
  121. left join ACT_RU_IDENTITYLINK ru on ru.TASK_ID_ = t.ID_
  122. left join ACT_ID_MEMBERSHIP m on m.GROUP_ID_ = ru.GROUP_ID_ and m.USER_ID_ = #{userId}
  123. LEFT JOIN act_re_procdef rp ON t.PROC_DEF_ID_ = rp.ID_
  124. where
  125. (t.ASSIGNEE_ = #{userId}
  126. or (t.ASSIGNEE_ is null AND ru.TYPE_ = 'candidate'
  127. AND (ru.USER_ID_ = #{userId}
  128. OR ru.GROUP_ID_ IN (
  129. select g.ID_ from ACT_ID_GROUP g, ACT_ID_MEMBERSHIP membership where g.ID_ = membership.GROUP_ID_ AND
  130. membership.USER_ID_ = #{userId} )
  131. )
  132. )
  133. )
  134. and a.del_flag="0"
  135. <include refid="where_sql"></include>
  136. </select>
  137. <select id="getMyDoneTaskList" resultMap="ProjectTerminationVoResult">
  138. select a.id,a.proc_inst_id, a.project_pool_id,tp.project_name, tp.industry,tp.project_stage,
  139. tp.project_state,tp.invest_head,a.reason,
  140. a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time ,
  141. p.PROC_INST_ID_ as 'procInsId',
  142. p.PROC_DEF_ID_ as 'procDefId',
  143. date_format(p.START_TIME_, '%Y-%m-%d %H:%i:%s') as 'applyTime',
  144. date_format(p.END_TIME_, '%Y-%m-%d %H:%i:%s') as 'endTime',
  145. p.START_USER_ID_ AS 'startUserId',
  146. uu.nick_name AS 'startUserName',
  147. dd.dept_name AS 'startDeptName',
  148. ht.ID_ AS 'taskId',
  149. ht.NAME_ AS 'taskName',
  150. ht.ASSIGNEE_ AS 'assignee',
  151. ui.nick_name AS 'assigneeName',
  152. rp.DEPLOYMENT_ID_ AS 'deployId'
  153. from t_project_termination a
  154. left join t_project_pool tp on tp.id=a.project_pool_id
  155. left join ACT_HI_TASKINST ht on a.proc_inst_id = ht.PROC_INST_ID_
  156. left join ACT_HI_PROCINST p on a.proc_inst_id = p.PROC_INST_ID_
  157. LEFT JOIN (SELECT * FROM sys_user LIMIT 100000) uu ON p.START_USER_ID_ = uu.user_id
  158. LEFT JOIN (SELECT * FROM sys_dept LIMIT 100000) dd ON uu.dept_id = dd.dept_id
  159. left join (select * from sys_user limit 100000) ui on ht.ASSIGNEE_ = ui.user_id
  160. left join ACT_RU_TASK t on a.proc_inst_id = t.PROC_INST_ID_
  161. left join act_re_procdef rp ON t.PROC_DEF_ID_ = rp.ID_
  162. where
  163. ht.ASSIGNEE_ = #{userId}
  164. AND ht.END_TIME_ IS NOT NULL
  165. and a.del_flag="0"
  166. <include refid="where_sql"></include>
  167. GROUP BY a.id
  168. ORDER BY ht.END_TIME_ DESC;
  169. </select>
  170. <select id="getMyList" resultMap="ProjectTerminationVoResult">
  171. select a.id,a.proc_inst_id, a.project_pool_id,tp.project_name, tp.industry,tp.project_stage,
  172. tp.project_state,tp.invest_head,a.reason,
  173. a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time ,
  174. u.nick_name as 'applyUserName',
  175. p.PROC_INST_ID_ as 'procInsId',
  176. p.PROC_DEF_ID_ as 'procDefId',
  177. date_format(p.START_TIME_, '%Y-%m-%d %H:%i:%s') as 'applyTime',
  178. date_format(p.END_TIME_, '%Y-%m-%d %H:%i:%s') as 'endTime',
  179. p.START_USER_ID_ AS 'startUserId',
  180. uu.nick_name AS 'startUserName',
  181. dd.dept_name AS 'startDeptName',
  182. t.NAME_ as 'taskName',
  183. t.TASK_DEF_KEY_ as 'taskDefKey',
  184. DATE_FORMAT(t.CREATE_TIME_ ,'%Y-%m-%d %H:%i') as 'taskCreateTiem',
  185. t.ASSIGNEE_ as 'assignee',
  186. GROUP_CONCAT(DISTINCT ui.nick_name SEPARATOR '\r\n') as 'assigneeName',
  187. t.ID_ as 'taskId',
  188. t.EXECUTION_ID_ AS 'executionId',
  189. rp.DEPLOYMENT_ID_ AS 'deployId'
  190. from t_project_termination a
  191. left join t_project_pool tp on tp.id=a.project_pool_id
  192. left join ACT_HI_PROCINST p on a.proc_inst_id = p.PROC_INST_ID_
  193. LEFT JOIN (SELECT * FROM sys_user LIMIT 100000) uu ON p.START_USER_ID_ = uu.user_id
  194. LEFT JOIN (SELECT * FROM sys_dept LIMIT 100000) dd ON uu.dept_id = dd.dept_id
  195. left join sys_user u on a.create_by = u.user_id
  196. left join ACT_RU_TASK t on a.proc_inst_id = t.PROC_INST_ID_
  197. left join (select * from sys_user limit 100000) ui on t.ASSIGNEE_ = ui.user_id
  198. left join ACT_RU_IDENTITYLINK ru on ru.TASK_ID_ = t.ID_
  199. left join ACT_ID_MEMBERSHIP m on m.GROUP_ID_ = ru.GROUP_ID_ and m.USER_ID_ = #{userId}
  200. left join act_re_procdef rp ON t.PROC_DEF_ID_ = rp.ID_
  201. where a.create_by = #{userId} and a.proc_inst_id is not null and a.proc_inst_id != ''
  202. and a.del_flag="0"
  203. <include refid="where_sql"></include>
  204. GROUP BY a.id
  205. </select>
  206. <!--<select id="selectTProjectPoolById" parameterType="String" resultMap="TProjectPoolResult">
  207. <include refid="selectTProjectPoolVo"/>
  208. where a.id = #{id}
  209. </select>-->
  210. <select id="selectTProjectTerminationByProcInstId" parameterType="java.lang.String" resultMap="TProjectTerminationResult">
  211. select a.id,a.proc_inst_id, a.project_pool_id, a.reason,
  212. a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time ,
  213. t.TASK_DEF_KEY_ as 'taskDefKey'
  214. from t_project_termination a
  215. left join ACT_RU_TASK t on a.proc_inst_id = t.PROC_INST_ID_
  216. left join (select * from sys_user limit 100000) ui on t.ASSIGNEE_ = ui.user_id
  217. left join sys_user u on a.create_by = u.user_id
  218. where a.proc_inst_id = #{procInstId,jdbcType=VARCHAR}
  219. GROUP BY a.id
  220. </select>
  221. <select id="listProjectPoolIdNew" parameterType="String" resultMap="TProjectTerminationResult">
  222. <include refid="selectTProjectTerminationVo"/>
  223. where project_pool_id = #{projectPoolId} and del_flag = 0
  224. ORDER BY create_time DESC LIMIT 1
  225. </select>
  226. </mapper>