PipeTaskOrderItemMapper.xml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  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,tot.IS_ISSUE_REPORT
  17. ,eb.PROJECT_NAME as EQUIP_NAME,eb.CERTIFICATE_NO as USE_REGISTER_NO,eb.PROJECT_NO as EQUIP_CODE, tot.MAIN_CHECKER
  18. ,eb.security_man, eb.security_man_phone
  19. from PRESSURE2_PIPE_TASK_ORDER_ITEM tot
  20. left join PRESSURE2_EQUIP_PIPE eb on tot.EQUIP_ID = eb.ID
  21. left join PRESSURE_TASK_ORDER bto on tot.ORDER_ID = bto.ID and bto.EQUIP_MAIN_TYPE = 300
  22. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT btoir ON btoir.ORDER_ID = bto.ID AND btoir.REPORT_TYPE = 100
  23. <where>
  24. tot.DELETED = 0 and bto.ID = #{orderId}
  25. </where>
  26. ) a
  27. OFFSET ${(pageNo - 1) * pageSize} ROWS FETCH NEXT #{pageSize} ROWS ONLY
  28. </select>
  29. <select id="selectJoinPageMainReportPrepare">
  30. select rownum,a.* from (
  31. select
  32. bto.ORDER_NO,bto.MANAGER_ID,bto.UNIT_NAME,bto.UNIT_CODE,bto.CHECK_TYPE,bto.CHECK_DATE,
  33. bto.SUBMIT_TIME,bto.SUBMIT_ID,
  34. btoi.ORDER_ID,btoi.MAIN_CHECKER,btoi.ID,btoir.TASK_STATUS,btoi.END_CHECK_DATE
  35. ,WM_CONCAT(epp.PROJECT_NO) as PROJECT_NO
  36. from PRESSURE2_PIPE_TASK_ORDER_INPUT btoi
  37. left join PRESSURE_TASK_ORDER bto on bto.ID = btoi.ORDER_ID and bto.EQUIP_MAIN_TYPE = 300
  38. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT btoir on btoir.ORDER_ID = btoi.ORDER_ID and btoir.REPORT_TYPE = 100
  39. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT_USER btoiru on btoiru.REPORT_ID = btoir.ID
  40. left join PRESSURE2_PIPE_TASK_ORDER_ITEM ptoi on ptoi.ORDER_ID = btoi.ORDER_ID and ptoi.DELETED = 0
  41. left join (
  42. -- 先对 PROJECT_NO 和 PROJECT_NAME 去重
  43. select distinct ID, PROJECT_NO, PROJECT_NAME
  44. from PRESSURE2_EQUIP_PIPE
  45. where DELETED = 0
  46. ) epp on epp.ID = ptoi.EQUIP_ID
  47. <where>
  48. btoi.DELETED = 0
  49. <if test="orderNo != null and orderNo != ''">
  50. AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
  51. </if>
  52. <if test="unitName != null and unitName != ''">
  53. AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
  54. </if>
  55. <if test="checkType != null and checkType != ''">
  56. AND bto.CHECK_TYPE = #{checkType}
  57. </if>
  58. <if test="checkDate != null and checkDate.size() >= 2">
  59. AND bto.CHECK_DATE BETWEEN #{checkDate[0]} AND #{checkDate[1]}
  60. </if>
  61. <if test="mainCheckerIds != null and mainCheckerIds.size() >= 1">
  62. AND btoi.MAIN_CHECKER IN
  63. <foreach close=")" collection="mainCheckerIds" item="listItem" open="(" separator=",">
  64. #{listItem}
  65. </foreach>
  66. </if>
  67. <if test="managerIds != null and managerIds.size() >= 1">
  68. AND bto.MANAGER_ID IN
  69. <foreach close=")" collection="managerIds" item="listItem" open="(" separator=",">
  70. #{listItem}
  71. </foreach>
  72. </if>
  73. <if test="taskStatus != null and taskStatus != ''">
  74. AND btoir.TASK_STATUS = #{taskStatus}
  75. </if>
  76. </where>
  77. group by btoi.ID
  78. <if test="projectNo != null and projectNo != ''">
  79. HAVING WM_CONCAT(epp.PROJECT_NO) LIKE CONCAT('%',#{projectNo},'%')
  80. </if>
  81. order by bto.CREATE_TIME desc
  82. ) a
  83. OFFSET ${(pageNo - 1) * pageSize} ROWS FETCH NEXT #{pageSize} ROWS ONLY
  84. </select>
  85. <select id="selectJoinPageMainReportPrepareCount">
  86. select count(*) from (
  87. select
  88. bto.ORDER_NO,bto.MANAGER_ID,bto.UNIT_NAME,bto.UNIT_CODE,bto.CHECK_TYPE,bto.CHECK_DATE,
  89. bto.SUBMIT_TIME,bto.SUBMIT_ID,
  90. btoi.ORDER_ID,btoi.MAIN_CHECKER,btoi.ID,btoir.TASK_STATUS
  91. ,WM_CONCAT(epp.PROJECT_NO) as PROJECT_NO
  92. from PRESSURE2_PIPE_TASK_ORDER_INPUT btoi
  93. left join PRESSURE_TASK_ORDER bto on bto.ID = btoi.ORDER_ID and bto.EQUIP_MAIN_TYPE = 300
  94. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT btoir on btoir.ORDER_ID = btoi.ORDER_ID and btoir.REPORT_TYPE = 100
  95. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT_USER btoiru on btoiru.REPORT_ID = btoir.ID
  96. left join PRESSURE2_PIPE_TASK_ORDER_ITEM ptoi on ptoi.ORDER_ID = btoi.ORDER_ID and ptoi.DELETED = 0
  97. left join (
  98. -- 先对 PROJECT_NO 和 PROJECT_NAME 去重
  99. select distinct ID, PROJECT_NO, PROJECT_NAME
  100. from PRESSURE2_EQUIP_PIPE
  101. where DELETED = 0
  102. ) epp on epp.ID = ptoi.EQUIP_ID
  103. <where>
  104. btoi.DELETED = 0
  105. <if test="orderNo != null and orderNo != ''">
  106. AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
  107. </if>
  108. <if test="unitName != null and unitName != ''">
  109. AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
  110. </if>
  111. <if test="checkType != null and checkType != ''">
  112. AND bto.CHECK_TYPE = #{checkType}
  113. </if>
  114. <if test="checkDate != null and checkDate.size() >= 2">
  115. AND bto.CHECK_DATE BETWEEN #{checkDate[0]} AND #{checkDate[1]}
  116. </if>
  117. <if test="mainCheckerIds != null and mainCheckerIds.size() >= 1">
  118. AND btoi.MAIN_CHECKER IN
  119. <foreach close=")" collection="mainCheckerIds" item="listItem" open="(" separator=",">
  120. #{listItem}
  121. </foreach>
  122. </if>
  123. <if test="managerIds != null and managerIds.size() >= 1">
  124. AND bto.MANAGER_ID IN
  125. <foreach close=")" collection="managerIds" item="listItem" open="(" separator=",">
  126. #{listItem}
  127. </foreach>
  128. </if>
  129. <if test="taskStatus != null and taskStatus != ''">
  130. AND btoir.TASK_STATUS = #{taskStatus}
  131. </if>
  132. </where>
  133. group by btoi.ID
  134. <if test="projectNo != null and projectNo != ''">
  135. HAVING WM_CONCAT(epp.PROJECT_NO) LIKE CONCAT('%',#{projectNo},'%')
  136. </if>
  137. order by bto.CREATE_TIME desc
  138. ) a
  139. </select>
  140. <select id="selectJoinPageBatchReport">
  141. select rownum,a.* from (
  142. select btoi.ID,
  143. bto.ORDER_NO,bto.MANAGER_ID,bto.UNIT_NAME,bto.UNIT_CODE,bto.CHECK_TYPE,bto.CHECK_DATE,bto.REASON,
  144. bto.SUBMIT_ID,btoir.RECHECK_SUBMIT_TIME as SUBMIT_TIME,
  145. btoir.RECHECK_STATUS,btoir.STATUS,btoir.TASK_STATUS,btoir.RECHECK_REASON,btoir.RETURN_REASON,
  146. btoir.REPORT_NAME,btoir.REPORT_URL,btoir.ID as REPORT_ID,btoir.REPORT_TYPE,btoir.PREPARE_NAME,
  147. btoir.APPROVAL_NAME,btoir.RATIFY_NAME,btoir.RECHECK_NAME,btoir.IS_REPORTED,btoir.PROCESS_INSTANCE_ID,
  148. btoir.CREATE_TIME as CONFIRM_IME,btoir.RECTIFICATION_STATUS,btoir.RECTIFICATION_URL,
  149. btoir.PREPARE_JSON,btoir.SIGN_URL,btoir.RECTIFICATION_VIDEO,btoir.RECTIFICATION_IMAGE,
  150. btoir.REPORT_CONCLUSION,btoir.REJECTION_REASON,btoir.IMAGE,btoir.VIDEO,btoir.ATTACHMENT,
  151. btoir.REPORT_NO as SUBREPORT_NO,btoir.APPROVAL_ID,btoir.RECHECK_ID
  152. ,WM_CONCAT(DISTINCT epp.PROJECT_NO) as PROJECT_NO
  153. from PRESSURE2_PIPE_TASK_ORDER_INPUT btoi
  154. left join PRESSURE_TASK_ORDER bto on bto.ID = btoi.ORDER_ID
  155. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT btoir on btoir.ORDER_ID = btoi.ORDER_ID
  156. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT_USER btoiru on btoiru.REPORT_ID = btoir.ID and btoiru.DELETED = 0
  157. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_RECHECK btoir1 on btoir1.MAIN_REPORT_ID = btoir.ID
  158. left join PRESSURE2_PIPE_TASK_ORDER_ITEM ptoi on ptoi.ORDER_ID = btoi.ORDER_ID and ptoi.DELETED = 0
  159. left join (
  160. -- 先对 PROJECT_NO 和 PROJECT_NAME 去重
  161. select distinct ID, PROJECT_NO, PROJECT_NAME
  162. from PRESSURE2_EQUIP_PIPE
  163. where DELETED = 0
  164. ) epp on epp.ID = ptoi.EQUIP_ID
  165. <where>
  166. btoi.DELETED = 0 AND btoir.RECHECK_ID != ''
  167. <if test="orderNo != null and orderNo != ''">
  168. AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
  169. </if>
  170. <if test="recordNo != null and recordNo != ''">
  171. AND btoir.REPORT_NO LIKE CONCAT('%',#{recordNo},'%')
  172. </if>
  173. <if test="checkProject != null and checkProject != ''">
  174. AND btoir.REPORT_NAME LIKE CONCAT('%',#{checkProject},'%')
  175. </if>
  176. <if test="unitName != null and unitName != ''">
  177. AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
  178. </if>
  179. <if test="checkType != null and checkType != ''">
  180. AND bto.CHECK_TYPE = #{checkType}
  181. </if>
  182. <if test="recheckStatus != null and recheckStatus != ''">
  183. AND btoir.RECHECK_STATUS = #{recheckStatus}
  184. </if>
  185. <if test="approveIds != null and approveIds.size() > 0">
  186. AND btoir.APPROVAL_ID IN
  187. <foreach close=")" collection="approveIds" item="listItem" open="(" separator=",">
  188. #{listItem}
  189. </foreach>
  190. </if>
  191. <if test="recheckIds != null and recheckIds.size() > 0">
  192. AND btoir.RECHECK_ID IN
  193. <foreach close=")" collection="recheckIds" item="listItem" open="(" separator=",">
  194. #{listItem}
  195. </foreach>
  196. </if>
  197. <if test="managerIds != null and managerIds.size() > 0">
  198. AND bto.MANAGER_ID IN
  199. <foreach close=")" collection="managerIds" item="listItem" open="(" separator=",">
  200. #{listItem}
  201. </foreach>
  202. </if>
  203. <if test="checkUserIds != null and checkUserIds.size() > 0">
  204. AND btoiru.USER_ID IN
  205. <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
  206. #{listItem}
  207. </foreach>
  208. </if>
  209. <if test="mainCheckerIds != null and mainCheckerIds.size() > 0">
  210. AND btoi.MAIN_CHECKER IN
  211. <foreach collection="mainCheckerIds" item="mainCheckerId" open="(" separator="," close=")">
  212. #{mainCheckerId}
  213. </foreach>
  214. </if>
  215. <if test="checkDate != null and checkDate.size() >= 2">
  216. AND bto.CHECK_DATE BETWEEN #{checkDate[0]} AND #{checkDate[1]}
  217. </if>
  218. <if test="permissionUserId != null and permissionUserId != ''">
  219. AND ( bto.MANAGER_ID = #{permissionUserId}
  220. or btoiru.USER_ID = #{permissionUserId}
  221. or btoir.RECHECK_ID = #{permissionUserId} )
  222. </if>
  223. <if test="permissionDeptIds != null and permissionDeptIds != ''">
  224. AND ( bto.DEPT_ID in
  225. <foreach close=")" collection="permissionDeptIds" item="listItem" open="(" separator=",">
  226. #{listItem}
  227. </foreach>
  228. )
  229. </if>
  230. <if test="hasPermission != null and hasPermission == false">
  231. AND 1 = 2
  232. </if>
  233. group by btoi.ID,btoir.ID
  234. <if test="projectNo != null and projectNo != ''">
  235. HAVING WM_CONCAT(epp.PROJECT_NO) LIKE CONCAT('%',#{projectNo},'%')
  236. </if>
  237. <!-- order by bto.CREATE_TIME desc-->
  238. order by bto.CREATE_TIME desc,btoir.sort
  239. </where>
  240. ) a
  241. OFFSET ${(pageNo - 1) * pageSize} ROWS FETCH NEXT #{pageSize} ROWS ONLY
  242. </select>
  243. <select id="selectJoinPageBatchReportCount">
  244. select count(*) from (
  245. select btoi.ID,
  246. bto.ORDER_NO,bto.MANAGER_ID,bto.UNIT_NAME,bto.UNIT_CODE,bto.CHECK_TYPE,bto.CHECK_DATE,bto.REASON,
  247. bto.SUBMIT_ID,btoir.RECHECK_SUBMIT_TIME as SUBMIT_TIME,
  248. btoir.RECHECK_STATUS,btoir.STATUS,btoir.TASK_STATUS,btoir.RECHECK_REASON,btoir.RETURN_REASON,
  249. btoir.REPORT_NAME,btoir.REPORT_URL,btoir.ID as REPORT_ID,btoir.REPORT_TYPE,btoir.PREPARE_NAME,
  250. btoir.APPROVAL_NAME,btoir.RATIFY_NAME,btoir.RECHECK_NAME,btoir.IS_REPORTED,btoir.PROCESS_INSTANCE_ID,
  251. btoir.CREATE_TIME as CONFIRM_IME,btoir.RECTIFICATION_STATUS,btoir.RECTIFICATION_URL,
  252. btoir.PREPARE_JSON,btoir.SIGN_URL,btoir.RECTIFICATION_VIDEO,btoir.RECTIFICATION_IMAGE,
  253. btoir.REPORT_CONCLUSION,btoir.REJECTION_REASON,btoir.IMAGE,btoir.VIDEO,btoir.ATTACHMENT,
  254. btoir.REPORT_NO as SUBREPORT_NO,btoir.APPROVAL_ID,btoir.RECHECK_ID
  255. ,WM_CONCAT(DISTINCT epp.PROJECT_NO) as PROJECT_NO
  256. from PRESSURE2_PIPE_TASK_ORDER_INPUT btoi
  257. left join PRESSURE_TASK_ORDER bto on bto.ID = btoi.ORDER_ID
  258. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT btoir on btoir.ORDER_ID = btoi.ORDER_ID
  259. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_REPORT_USER btoiru on btoiru.REPORT_ID = btoir.ID and btoiru.DELETED = 0
  260. left join PRESSURE2_PIPE_TASK_ORDER_ITEM_RECHECK btoir1 on btoir1.MAIN_REPORT_ID = btoir.ID
  261. left join PRESSURE2_PIPE_TASK_ORDER_ITEM ptoi on ptoi.ORDER_ID = btoi.ORDER_ID and ptoi.DELETED = 0
  262. left join (
  263. -- 先对 PROJECT_NO 和 PROJECT_NAME 去重
  264. select distinct ID, PROJECT_NO, PROJECT_NAME
  265. from PRESSURE2_EQUIP_PIPE
  266. where DELETED = 0
  267. ) epp on epp.ID = ptoi.EQUIP_ID
  268. <where>
  269. btoi.DELETED = 0 AND btoir.RECHECK_ID != ''
  270. <if test="orderNo != null and orderNo != ''">
  271. AND bto.ORDER_NO LIKE CONCAT('%',#{orderNo},'%')
  272. </if>
  273. <if test="recordNo != null and recordNo != ''">
  274. AND btoir.REPORT_NO LIKE CONCAT('%',#{recordNo},'%')
  275. </if>
  276. <if test="checkProject != null and checkProject != ''">
  277. AND btoir.REPORT_NAME LIKE CONCAT('%',#{checkProject},'%')
  278. </if>
  279. <if test="unitName != null and unitName != ''">
  280. AND bto.UNIT_NAME LIKE CONCAT('%',#{unitName},'%')
  281. </if>
  282. <if test="checkType != null and checkType != ''">
  283. AND bto.CHECK_TYPE = #{checkType}
  284. </if>
  285. <if test="recheckStatus != null and recheckStatus != ''">
  286. AND btoir.RECHECK_STATUS = #{recheckStatus}
  287. </if>
  288. <if test="approveIds != null and approveIds.size() > 0">
  289. AND btoir.APPROVAL_ID IN
  290. <foreach close=")" collection="approveIds" item="listItem" open="(" separator=",">
  291. #{listItem}
  292. </foreach>
  293. </if>
  294. <if test="recheckIds != null and recheckIds.size() > 0">
  295. AND btoir.RECHECK_ID IN
  296. <foreach close=")" collection="recheckIds" item="listItem" open="(" separator=",">
  297. #{listItem}
  298. </foreach>
  299. </if>
  300. <if test="managerIds != null and managerIds.size() > 0">
  301. AND bto.MANAGER_ID IN
  302. <foreach close=")" collection="managerIds" item="listItem" open="(" separator=",">
  303. #{listItem}
  304. </foreach>
  305. </if>
  306. <if test="checkUserIds != null and checkUserIds.size() > 0">
  307. AND btoiru.USER_ID IN
  308. <foreach close=")" collection="checkUserIds" item="listItem" open="(" separator=",">
  309. #{listItem}
  310. </foreach>
  311. </if>
  312. <if test="permissionUserId != null and permissionUserId != ''">
  313. AND ( bto.MANAGER_ID = #{permissionUserId}
  314. or btoiru.USER_ID = #{permissionUserId}
  315. or btoir.RECHECK_ID = #{permissionUserId} )
  316. </if>
  317. <if test="permissionDeptIds != null and permissionDeptIds != ''">
  318. AND ( bto.DEPT_ID in
  319. <foreach close=")" collection="permissionDeptIds" item="listItem" open="(" separator=",">
  320. #{listItem}
  321. </foreach>
  322. )
  323. </if>
  324. <if test="hasPermission != null and hasPermission == false">
  325. AND 1 = 2
  326. </if>
  327. group by btoi.ID,btoir.ID
  328. <if test="projectNo != null and projectNo != ''">
  329. HAVING WM_CONCAT(epp.PROJECT_NO) LIKE CONCAT('%',#{projectNo},'%')
  330. </if>
  331. order by bto.CREATE_TIME desc
  332. </where>
  333. ) a
  334. </select>
  335. </mapper>