PipeTaskOrderItemMapper.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  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="cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper">
  4. <!--
  5. 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  6. 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  7. 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  8. 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  9. -->
  10. <select id="selectDetailPage">
  11. select rownum,a.* from (
  12. select distinct
  13. tot.ID as MAIN_ID,eb.ID,eb.EQUIP_DISTRICT,eb.EQUIP_STREET,bto.CHECK_TYPE,tot.FEE,
  14. eb.NEXT_LEGAL_CHECK_DATE,eb.NEXT_YEAR_CHECK_DATE,
  15. eb.CONTACT,eb.CONTACT_PHONE,eb.PROJECT_NO,eb.PROJECT_NAME,eb.PIPE_CATEGORY
  16. ,btoir.TASK_STATUS
  17. from PRESSURE2_PIPE_TASK_ORDER_ITEM tot
  18. left join PRESSURE2_EQUIP_PIPE eb on tot.EQUIP_ID = eb.ID
  19. left join PRESSURE_TASK_ORDER bto on tot.ORDER_ID = bto.ID and bto.EQUIP_MAIN_TYPE = 300
  20. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT btoir ON btoir.ORDER_ID = bto.ID AND btoir.REPORT_TYPE = 100
  21. <where>
  22. tot.DELETED = 0 and bto.ID = #{orderId}
  23. </where>
  24. ) a
  25. OFFSET ${(pageNo - 1) * pageSize} ROWS FETCH NEXT #{pageSize} ROWS ONLY
  26. </select>
  27. <select id="selectJoinPageMainReportPrepare">
  28. select rownum,a.* from (
  29. select
  30. bto.ORDER_NO,bto.MANAGER_ID,bto.UNIT_NAME,bto.UNIT_CODE,bto.CHECK_TYPE,bto.CHECK_DATE,
  31. bto.SUBMIT_TIME,bto.SUBMIT_ID,
  32. btoi.ORDER_ID,btoi.MAIN_CHECKER,btoi.ID,btoir.TASK_STATUS
  33. ,WM_CONCAT(epp.PROJECT_NO) as PROJECT_NO
  34. from PRESSURE2_PIPE_TASK_ORDER_INPUT btoi
  35. left join PRESSURE_TASK_ORDER bto on bto.ID = btoi.ORDER_ID and bto.EQUIP_MAIN_TYPE = 300
  36. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT btoir on btoir.ORDER_ID = btoi.ORDER_ID and btoir.REPORT_TYPE = 100
  37. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT_USER btoiru on btoiru.REPORT_ID = btoir.ID
  38. left join PRESSURE2_PIPE_TASK_ORDER_ITEM ptoi on ptoi.ORDER_ID = btoi.ORDER_ID and ptoi.DELETED = 0
  39. left join (
  40. -- 先对 PROJECT_NO 和 PROJECT_NAME 去重
  41. select distinct ID, PROJECT_NO, PROJECT_NAME
  42. from PRESSURE2_EQUIP_PIPE
  43. where DELETED = 0
  44. ) epp on epp.ID = ptoi.EQUIP_ID
  45. <where>
  46. btoi.DELETED = 0
  47. <if test="orderNo != null and orderNo != ''">
  48. AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
  49. </if>
  50. <if test="unitName != null and unitName != ''">
  51. AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
  52. </if>
  53. <if test="checkType != null and checkType != ''">
  54. AND bto.CHECK_TYPE = #{checkType}
  55. </if>
  56. <if test="checkDate != null and checkDate.size() >= 2">
  57. AND bto.CHECK_DATE BETWEEN #{checkDate[0]} AND #{checkDate[1]}
  58. </if>
  59. <if test="mainCheckerIds != null and mainCheckerIds.size() >= 1">
  60. AND btoi.MAIN_CHECKER IN
  61. <foreach close=")" collection="mainCheckerIds" item="listItem" open="(" separator=",">
  62. #{listItem}
  63. </foreach>
  64. </if>
  65. <if test="managerIds != null and managerIds.size() >= 1">
  66. AND bto.MANAGER_ID IN
  67. <foreach close=")" collection="managerIds" item="listItem" open="(" separator=",">
  68. #{listItem}
  69. </foreach>
  70. </if>
  71. <if test="taskStatus != null and taskStatus != ''">
  72. AND btoir.TASK_STATUS = #{taskStatus}
  73. </if>
  74. </where>
  75. group by btoi.ID
  76. <if test="projectNo != null and projectNo != ''">
  77. HAVING WM_CONCAT(epp.PROJECT_NO) LIKE CONCAT('%',#{projectNo},'%')
  78. </if>
  79. order by bto.CREATE_TIME desc
  80. ) a
  81. OFFSET ${(pageNo - 1) * pageSize} ROWS FETCH NEXT #{pageSize} ROWS ONLY
  82. </select>
  83. <select id="selectJoinPageMainReportPrepareCount">
  84. select count(*) from (
  85. select
  86. bto.ORDER_NO,bto.MANAGER_ID,bto.UNIT_NAME,bto.UNIT_CODE,bto.CHECK_TYPE,bto.CHECK_DATE,
  87. bto.SUBMIT_TIME,bto.SUBMIT_ID,
  88. btoi.ORDER_ID,btoi.MAIN_CHECKER,btoi.ID,btoir.TASK_STATUS
  89. ,WM_CONCAT(epp.PROJECT_NO) as PROJECT_NO
  90. from PRESSURE2_PIPE_TASK_ORDER_INPUT btoi
  91. left join PRESSURE_TASK_ORDER bto on bto.ID = btoi.ORDER_ID and bto.EQUIP_MAIN_TYPE = 300
  92. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT btoir on btoir.ORDER_ID = btoi.ORDER_ID and btoir.REPORT_TYPE = 100
  93. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT_USER btoiru on btoiru.REPORT_ID = btoir.ID
  94. left join PRESSURE2_PIPE_TASK_ORDER_ITEM ptoi on ptoi.ORDER_ID = btoi.ORDER_ID and ptoi.DELETED = 0
  95. left join (
  96. -- 先对 PROJECT_NO 和 PROJECT_NAME 去重
  97. select distinct ID, PROJECT_NO, PROJECT_NAME
  98. from PRESSURE2_EQUIP_PIPE
  99. where DELETED = 0
  100. ) epp on epp.ID = ptoi.EQUIP_ID
  101. <where>
  102. btoi.DELETED = 0
  103. <if test="orderNo != null and orderNo != ''">
  104. AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
  105. </if>
  106. <if test="unitName != null and unitName != ''">
  107. AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
  108. </if>
  109. <if test="checkType != null and checkType != ''">
  110. AND bto.CHECK_TYPE = #{checkType}
  111. </if>
  112. <if test="checkDate != null and checkDate.size() >= 2">
  113. AND bto.CHECK_DATE BETWEEN #{checkDate[0]} AND #{checkDate[1]}
  114. </if>
  115. <if test="mainCheckerIds != null and mainCheckerIds.size() >= 1">
  116. AND btoi.MAIN_CHECKER IN
  117. <foreach close=")" collection="mainCheckerIds" item="listItem" open="(" separator=",">
  118. #{listItem}
  119. </foreach>
  120. </if>
  121. <if test="managerIds != null and managerIds.size() >= 1">
  122. AND bto.MANAGER_ID IN
  123. <foreach close=")" collection="managerIds" item="listItem" open="(" separator=",">
  124. #{listItem}
  125. </foreach>
  126. </if>
  127. <if test="taskStatus != null and taskStatus != ''">
  128. AND btoir.TASK_STATUS = #{taskStatus}
  129. </if>
  130. </where>
  131. group by btoi.ID
  132. <if test="projectNo != null and projectNo != ''">
  133. HAVING WM_CONCAT(epp.PROJECT_NO) LIKE CONCAT('%',#{projectNo},'%')
  134. </if>
  135. order by bto.CREATE_TIME desc
  136. ) a
  137. </select>
  138. <select id="selectJoinPageBatchReport">
  139. select rownum,a.* from (
  140. select btoi.ID,
  141. bto.ORDER_NO,bto.MANAGER_ID,bto.UNIT_NAME,bto.UNIT_CODE,bto.CHECK_TYPE,bto.CHECK_DATE,bto.REASON,
  142. bto.SUBMIT_ID,btoir.RECHECK_SUBMIT_TIME as SUBMIT_TIME,
  143. btoir.RECHECK_STATUS,btoir.STATUS,btoir.TASK_STATUS,btoir.RECHECK_REASON,btoir.RETURN_REASON,
  144. btoir.REPORT_NAME,btoir.REPORT_URL,btoir.ID as REPORT_ID,btoir.REPORT_TYPE,btoir.PREPARE_NAME,
  145. btoir.APPROVAL_NAME,btoir.RATIFY_NAME,btoir.RECHECK_NAME,btoir.IS_REPORTED,btoir.PROCESS_INSTANCE_ID,
  146. btoir.CREATE_TIME as CONFIRM_IME,btoir.RECTIFICATION_STATUS,btoir.RECTIFICATION_URL,
  147. btoir.PREPARE_JSON,btoir.SIGN_URL,btoir.RECTIFICATION_VIDEO,btoir.RECTIFICATION_IMAGE,
  148. btoir.REPORT_CONCLUSION,btoir.REJECTION_REASON,btoir.IMAGE,btoir.VIDEO,btoir.ATTACHMENT,
  149. btoir.REPORT_NO as SUBREPORT_NO,btoir.APPROVAL_ID,btoir.RECHECK_ID
  150. ,WM_CONCAT(DISTINCT epp.PROJECT_NO) as PROJECT_NO
  151. from PRESSURE2_PIPE_TASK_ORDER_INPUT btoi
  152. left join PRESSURE_TASK_ORDER bto on bto.ID = btoi.ORDER_ID
  153. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT btoir on btoir.ORDER_ID = btoi.ORDER_ID
  154. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT_USER btoiru on btoiru.REPORT_ID = btoir.ID
  155. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_RECHECK btoir1 on btoir1.MAIN_REPORT_ID = btoir.ID
  156. left join PRESSURE2_PIPE_TASK_ORDER_ITEM ptoi on ptoi.ORDER_ID = btoi.ORDER_ID and ptoi.DELETED = 0
  157. left join (
  158. -- 先对 PROJECT_NO 和 PROJECT_NAME 去重
  159. select distinct ID, PROJECT_NO, PROJECT_NAME
  160. from PRESSURE2_EQUIP_PIPE
  161. where DELETED = 0
  162. ) epp on epp.ID = ptoi.EQUIP_ID
  163. <where>
  164. btoi.DELETED = 0 AND btoir.RECHECK_ID != ''
  165. <if test="orderNo != null and orderNo != ''">
  166. AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
  167. </if>
  168. <if test="recordNo != null and recordNo != ''">
  169. AND btoir.REPORT_NO LIKE CONCAT('%',#{recordNo},'%')
  170. </if>
  171. <if test="checkProject != null and checkProject != ''">
  172. AND btoir.REPORT_NAME LIKE CONCAT('%',#{checkProject},'%')
  173. </if>
  174. <if test="unitName != null and unitName != ''">
  175. AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
  176. </if>
  177. <if test="checkType != null and checkType != ''">
  178. AND bto.CHECK_TYPE = #{checkType}
  179. </if>
  180. <if test="recheckStatus != null and recheckStatus != ''">
  181. AND btoir.RECHECK_STATUS = #{recheckStatus}
  182. </if>
  183. <if test="approveIds != null and approveIds.size() > 0">
  184. AND btoir.APPROVAL_ID IN
  185. <foreach close=")" collection="approveIds" item="listItem" open="(" separator=",">
  186. #{listItem}
  187. </foreach>
  188. </if>
  189. <if test="recheckIds != null and recheckIds.size() > 0">
  190. AND btoir.RECHECK_ID IN
  191. <foreach close=")" collection="recheckIds" item="listItem" open="(" separator=",">
  192. #{listItem}
  193. </foreach>
  194. </if>
  195. <if test="managerIds != null and managerIds.size() > 0">
  196. AND bto.MANAGER_ID IN
  197. <foreach close=")" collection="managerIds" item="listItem" open="(" separator=",">
  198. #{listItem}
  199. </foreach>
  200. </if>
  201. <if test="checkUserIds != null and checkUserIds.size() > 0">
  202. AND btoiru.USER_ID IN
  203. <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
  204. #{listItem}
  205. </foreach>
  206. </if>
  207. <if test="permissionUserId != null and permissionUserId != ''">
  208. AND ( bto.MANAGER_ID = #{permissionUserId}
  209. or btoiru.USER_ID = #{permissionUserId}
  210. or btoir.RECHECK_ID = #{permissionUserId} )
  211. </if>
  212. <if test="permissionDeptIds != null and permissionDeptIds != ''">
  213. AND ( bto.DEPT_ID in
  214. <foreach close=")" collection="permissionDeptIds" item="listItem" open="(" separator=",">
  215. #{listItem}
  216. </foreach>
  217. )
  218. </if>
  219. <if test="hasPermission != null and hasPermission == false">
  220. AND 1 = 2
  221. </if>
  222. group by btoi.ID,btoir.ID
  223. <if test="projectNo != null and projectNo != ''">
  224. HAVING WM_CONCAT(epp.PROJECT_NO) LIKE CONCAT('%',#{projectNo},'%')
  225. </if>
  226. order by bto.CREATE_TIME desc
  227. </where>
  228. ) a
  229. OFFSET ${(pageNo - 1) * pageSize} ROWS FETCH NEXT #{pageSize} ROWS ONLY
  230. </select>
  231. <select id="selectJoinPageBatchReportCount">
  232. select count(*) from (
  233. select btoi.ID,
  234. bto.ORDER_NO,bto.MANAGER_ID,bto.UNIT_NAME,bto.UNIT_CODE,bto.CHECK_TYPE,bto.CHECK_DATE,bto.REASON,
  235. bto.SUBMIT_ID,btoir.RECHECK_SUBMIT_TIME as SUBMIT_TIME,
  236. btoir.RECHECK_STATUS,btoir.STATUS,btoir.TASK_STATUS,btoir.RECHECK_REASON,btoir.RETURN_REASON,
  237. btoir.REPORT_NAME,btoir.REPORT_URL,btoir.ID as REPORT_ID,btoir.REPORT_TYPE,btoir.PREPARE_NAME,
  238. btoir.APPROVAL_NAME,btoir.RATIFY_NAME,btoir.RECHECK_NAME,btoir.IS_REPORTED,btoir.PROCESS_INSTANCE_ID,
  239. btoir.CREATE_TIME as CONFIRM_IME,btoir.RECTIFICATION_STATUS,btoir.RECTIFICATION_URL,
  240. btoir.PREPARE_JSON,btoir.SIGN_URL,btoir.RECTIFICATION_VIDEO,btoir.RECTIFICATION_IMAGE,
  241. btoir.REPORT_CONCLUSION,btoir.REJECTION_REASON,btoir.IMAGE,btoir.VIDEO,btoir.ATTACHMENT,
  242. btoir.REPORT_NO as SUBREPORT_NO,btoir.APPROVAL_ID,btoir.RECHECK_ID
  243. ,WM_CONCAT(DISTINCT epp.PROJECT_NO) as PROJECT_NO
  244. from PRESSURE2_PIPE_TASK_ORDER_INPUT btoi
  245. left join PRESSURE_TASK_ORDER bto on bto.ID = btoi.ORDER_ID
  246. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT btoir on btoir.ORDER_ID = btoi.ORDER_ID
  247. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT_USER btoiru on btoiru.REPORT_ID = btoir.ID
  248. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_RECHECK btoir1 on btoir1.MAIN_REPORT_ID = btoir.ID
  249. left join PRESSURE2_PIPE_TASK_ORDER_ITEM ptoi on ptoi.ORDER_ID = btoi.ORDER_ID and ptoi.DELETED = 0
  250. left join (
  251. -- 先对 PROJECT_NO 和 PROJECT_NAME 去重
  252. select distinct ID, PROJECT_NO, PROJECT_NAME
  253. from PRESSURE2_EQUIP_PIPE
  254. where DELETED = 0
  255. ) epp on epp.ID = ptoi.EQUIP_ID
  256. <where>
  257. btoi.DELETED = 0 AND btoir.RECHECK_ID != ''
  258. <if test="orderNo != null and orderNo != ''">
  259. AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
  260. </if>
  261. <if test="recordNo != null and recordNo != ''">
  262. AND btoir.REPORT_NO LIKE CONCAT('%',#{recordNo},'%')
  263. </if>
  264. <if test="checkProject != null and checkProject != ''">
  265. AND btoir.REPORT_NAME LIKE CONCAT('%',#{checkProject},'%')
  266. </if>
  267. <if test="unitName != null and unitName != ''">
  268. AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
  269. </if>
  270. <if test="checkType != null and checkType != ''">
  271. AND bto.CHECK_TYPE = #{checkType}
  272. </if>
  273. <if test="recheckStatus != null and recheckStatus != ''">
  274. AND btoir.RECHECK_STATUS = #{recheckStatus}
  275. </if>
  276. <if test="approveIds != null and approveIds.size() > 0">
  277. AND btoir.APPROVAL_ID IN
  278. <foreach close=")" collection="approveIds" item="listItem" open="(" separator=",">
  279. #{listItem}
  280. </foreach>
  281. </if>
  282. <if test="recheckIds != null and recheckIds.size() > 0">
  283. AND btoir.RECHECK_ID IN
  284. <foreach close=")" collection="recheckIds" item="listItem" open="(" separator=",">
  285. #{listItem}
  286. </foreach>
  287. </if>
  288. <if test="managerIds != null and managerIds.size() > 0">
  289. AND bto.MANAGER_ID IN
  290. <foreach close=")" collection="managerIds" item="listItem" open="(" separator=",">
  291. #{listItem}
  292. </foreach>
  293. </if>
  294. <if test="checkUserIds != null and checkUserIds.size() > 0">
  295. AND btoiru.USER_ID IN
  296. <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
  297. #{listItem}
  298. </foreach>
  299. </if>
  300. <if test="permissionUserId != null and permissionUserId != ''">
  301. AND ( bto.MANAGER_ID = #{permissionUserId}
  302. or btoiru.USER_ID = #{permissionUserId}
  303. or btoir.RECHECK_ID = #{permissionUserId} )
  304. </if>
  305. <if test="permissionDeptIds != null and permissionDeptIds != ''">
  306. AND ( bto.DEPT_ID in
  307. <foreach close=")" collection="permissionDeptIds" item="listItem" open="(" separator=",">
  308. #{listItem}
  309. </foreach>
  310. )
  311. </if>
  312. <if test="hasPermission != null and hasPermission == false">
  313. AND 1 = 2
  314. </if>
  315. group by btoi.ID,btoir.ID
  316. <if test="projectNo != null and projectNo != ''">
  317. HAVING WM_CONCAT(epp.PROJECT_NO) LIKE CONCAT('%',#{projectNo},'%')
  318. </if>
  319. order by bto.CREATE_TIME desc
  320. </where>
  321. ) a
  322. </select>
  323. </mapper>