ItemLargeScreenMapper.xml 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883
  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.sundot.airport.item.mapper.ItemLargeScreenMapper">
  6. <!--查获总数-->
  7. <select id="getTotalSum" resultType="java.math.BigDecimal">
  8. select ifnull(sum(isi.quantity), 0) totalSum
  9. from item_seizure_record isr
  10. left join item_seizure_items isi on isr.id = isi.record_id
  11. where isr.process_status=3
  12. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  13. <if test="startDate != null and endDate != null">
  14. and (isr.seizure_time >= #{startDate}
  15. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  16. </if>
  17. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  18. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  19. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  20. <if test="isPolice == '1' or isPolice == 1 ">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  21. <if test="isConceal=='1' or isConceal == 1">and isi.is_active_concealment = 1</if>
  22. </select>
  23. <!--移交公安情况-->
  24. <select id="police" resultType="com.sundot.airport.item.domain.ItemLargeScreenInfoDto">
  25. select isr.id mId,
  26. isi.id dId,
  27. isr.inspect_user_id inspectUserId,
  28. isr.inspect_user_name inspectUserName,
  29. isr.seizure_time seizureTime,
  30. isr.terminl_code terminlCode,
  31. isr.terminl_name terminlName,
  32. isr.regional_code regionalCode,
  33. isr.regional_name regionalName,
  34. isr.channel_code channelCode,
  35. isr.channel_name channelName,
  36. isr.check_method checkMethod,
  37. isr.check_method_desc checkMethodDesc,
  38. isr.inspect_brigade_id inspectBrigadeId,
  39. isr.inspect_brigade_name inspectBrigadeName,
  40. isr.inspect_department_id inspectDepartmentId,
  41. isr.inspect_department_name inspectDepartmentName,
  42. isr.inspect_team_id inspectTeamId,
  43. isr.inspect_team_name inspectTeamName,
  44. isi.category_code_one categoryCodeOne,
  45. isi.category_name_one categoryNameOne,
  46. isi.category_code_two categoryCodeTwo,
  47. isi.category_name_two categoryNameTwo,
  48. isi.item_code itemCode,
  49. isi.item_name itemName,
  50. isi.quantity quantity,
  51. isi.unit unit,
  52. isi.unit_desc unitDesc,
  53. isi.handling_method handlingMethod,
  54. isi.handling_method_desc handlingMethodDesc,
  55. isi.is_active_concealment isActiveConcealment,
  56. isi.check_position_code_one checkPositionCodeOne,
  57. isi.check_position_name_one checkPositionNameOne,
  58. isi.check_position_code_two checkPositionCodeOne,
  59. isi.check_position_name_two checkPositionNameTwo,
  60. isi.check_position_specific checkPositionSpecific,
  61. su.nick_name nackName
  62. from item_seizure_record isr
  63. left join item_seizure_items isi on isr.id = isi.record_id
  64. left join sys_user su on isr.inspect_user_id = su.user_id
  65. where 1 = 1
  66. and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'
  67. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  68. <if test="startDate != null and endDate != null">
  69. and (isr.seizure_time >= #{startDate}
  70. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  71. </if>
  72. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  73. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  74. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  75. <if test="userId != null">and isr.inspect_user_id = #{userId}</if>
  76. and isr.process_status=3
  77. order by isr.seizure_time desc
  78. </select>
  79. <!--故意隐匿情况-->
  80. <select id="conceal" resultType="com.sundot.airport.item.domain.ItemLargeScreenInfoDto">
  81. select isr.id mId,
  82. isi.id dId,
  83. isr.inspect_user_id inspectUserId,
  84. isr.inspect_user_name inspectUserName,
  85. isr.seizure_time seizureTime,
  86. isr.terminl_code terminlCode,
  87. isr.terminl_name terminlName,
  88. isr.regional_code regionalCode,
  89. isr.regional_name regionalName,
  90. isr.channel_code channelCode,
  91. isr.channel_name channelName,
  92. isr.check_method checkMethod,
  93. isr.check_method_desc checkMethodDesc,
  94. isi.category_code_one categoryCodeOne,
  95. isi.category_name_one categoryNameOne,
  96. isi.category_code_two categoryCodeTwo,
  97. isi.category_name_two categoryNameTwo,
  98. isi.item_code itemCode,
  99. isi.item_name itemName,
  100. isi.quantity quantity,
  101. isi.unit unit,
  102. isi.unit_desc unitDesc,
  103. isi.handling_method handlingMethod,
  104. isi.handling_method_desc handlingMethodDesc,
  105. isi.is_active_concealment isActiveConcealment,
  106. isi.check_position_code_one checkPositionCodeOne,
  107. isi.check_position_name_one checkPositionNameOne,
  108. isi.check_position_code_two checkPositionCodeOne,
  109. isi.check_position_name_two checkPositionNameTwo,
  110. isi.check_position_specific checkPositionSpecific
  111. from item_seizure_record isr
  112. left join item_seizure_items isi on isr.id = isi.record_id
  113. where 1 = 1
  114. and isi.is_active_concealment = 1
  115. and isr.process_status=3
  116. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  117. <if test="startDate != null and endDate != null">
  118. and (isr.seizure_time >= #{startDate}
  119. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  120. </if>
  121. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  122. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  123. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  124. order by isr.seizure_time desc
  125. </select>
  126. <!--查获类别分布-->
  127. <select id="category" resultType="com.sundot.airport.item.domain.ItemLargeScreenCommonDto">
  128. select
  129. <!--判断参数里的级别类型,根据级别类型,查询对应级别-->
  130. <if test="levelType == 1">
  131. isi.category_code_one code,
  132. isi.category_name_one name,
  133. sum(isi.quantity) total
  134. </if>
  135. <if test="levelType == 2">
  136. isi.category_code_two code,
  137. isi.category_name_two name,
  138. sum(isi.quantity) total
  139. </if>
  140. from item_seizure_record isr
  141. left join item_seizure_items isi on isr.id = isi.record_id
  142. where isr.process_status=3
  143. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  144. <if test="startDate != null and endDate != null">
  145. and (isr.seizure_time >= #{startDate}
  146. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  147. </if>
  148. <if test="levelType == 2 and categoryCode != null and categoryCode != ''">
  149. and isi.category_code_one = #{categoryCode}
  150. </if>
  151. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  152. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  153. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  154. <if test="isPolice=='1' or isPolice==1">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  155. <if test="isConceal=='1' or isConceal==1">and isi.is_active_concealment = 1</if>
  156. group by
  157. <if test="levelType == 1">
  158. isi.category_code_one,
  159. isi.category_name_one
  160. </if>
  161. <if test="levelType == 2">
  162. isi.category_code_two,
  163. isi.category_name_two
  164. </if>
  165. order by total desc
  166. </select>
  167. <!--查获岗位分布-->
  168. <select id="post" resultType="com.sundot.airport.item.domain.ItemLargeScreenCommonDto">
  169. select isr.check_method code,
  170. isr.check_method_desc name,
  171. sum(isi.quantity) total
  172. from item_seizure_record isr
  173. left join item_seizure_items isi on isr.id = isi.record_id
  174. where isr.process_status=3
  175. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  176. <if test="startDate != null and endDate != null">
  177. and (isr.seizure_time >= #{startDate}
  178. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  179. </if>
  180. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  181. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  182. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  183. <if test="isPolice=='1' or isPolice==1">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  184. <if test="isConceal=='1' or isConceal==1">and isi.is_active_concealment = 1</if>
  185. group by isr.check_method,
  186. isr.check_method_desc
  187. order by total desc
  188. </select>
  189. <!--查获总数量+移交公安数量+故意隐匿数量-->
  190. <select id="getTotalSome" resultType="com.sundot.airport.item.domain.ItemLargeScreenTotalSomeDto">
  191. select ifnull(sum(isi.quantity), 0) total,
  192. ifnull(sum(case when isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE' then isi.quantity else 0 end),
  193. 0) as policeTotal,
  194. ifnull(sum(case when isi.is_active_concealment = 1 then isi.quantity else 0 end), 0) as concealTotal
  195. from item_seizure_record isr
  196. left join item_seizure_items isi on isr.id = isi.record_id
  197. where isr.process_status=3
  198. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  199. <if test="startDate != null and endDate != null">
  200. and (isr.seizure_time >= #{startDate}
  201. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  202. </if>
  203. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  204. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  205. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  206. </select>
  207. <!--查获总数量+移交公安数量+故意隐匿数量 不只查审批通过的-->
  208. <select id="getPcTotalSome" resultType="com.sundot.airport.item.domain.ItemLargeScreenTotalSomeDto">
  209. select ifnull(sum(isi.quantity), 0) total,
  210. ifnull(sum(case when isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE' then isi.quantity else 0 end),
  211. 0) as policeTotal,
  212. ifnull(sum(case when isi.is_active_concealment = 1 then isi.quantity else 0 end), 0) as concealTotal
  213. from item_seizure_record isr
  214. left join item_seizure_items isi on isr.id = isi.record_id
  215. where 1=1
  216. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  217. <if test="startDate != null and endDate != null">
  218. and (isr.seizure_time >= #{startDate}
  219. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  220. </if>
  221. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  222. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  223. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  224. </select>
  225. <!--查获排名-按大队-->
  226. <select id="rankByBrigade" resultType="com.sundot.airport.item.domain.ItemLargeScreenCommonDto">
  227. select isr.inspect_brigade_id id,
  228. isr.inspect_brigade_name name,
  229. sum(isi.quantity) total
  230. from item_seizure_record isr
  231. left join item_seizure_items isi on isr.id = isi.record_id
  232. where isr.process_status=3
  233. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  234. <if test="startDate != null and endDate != null">
  235. and (isr.seizure_time >= #{startDate}
  236. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  237. </if>
  238. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  239. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  240. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  241. <if test="categoryCodeOne != null and categoryCodeOne != ''">
  242. and isi.category_code_one = #{categoryCodeOne}
  243. </if>
  244. <if test="categoryCodeTwo != null and categoryCodeTwo != ''">
  245. and isi.category_code_two = #{categoryCodeTwo}
  246. </if>
  247. <if test="isPolice=='1' or isPolice==1 ">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  248. <if test="isConceal=='1' or isConceal==1 ">and isi.is_active_concealment = 1</if>
  249. group by isr.inspect_brigade_id,
  250. isr.inspect_brigade_name
  251. order by total desc
  252. </select>
  253. <!--查获排名-按科室-->
  254. <select id="rankByDepartment" resultType="com.sundot.airport.item.domain.ItemLargeScreenCommonDto">
  255. select isr.inspect_department_id id,
  256. isr.inspect_department_name name,
  257. sum(isi.quantity) total
  258. from item_seizure_record isr
  259. left join item_seizure_items isi on isr.id = isi.record_id
  260. where isr.process_status=3
  261. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  262. <if test="startDate != null and endDate != null">
  263. and (isr.seizure_time >= #{startDate}
  264. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  265. </if>
  266. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  267. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  268. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  269. <if test="categoryCodeOne != null and categoryCodeOne != ''">
  270. and isi.category_code_one = #{categoryCodeOne}
  271. </if>
  272. <if test="categoryCodeTwo != null and categoryCodeTwo != ''">
  273. and isi.category_code_two = #{categoryCodeTwo}
  274. </if>
  275. <if test="isPolice=='1' or isPolice==1 ">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  276. <if test="isConceal=='1' or isConceal==1 ">and isi.is_active_concealment = 1</if>
  277. group by isr.inspect_department_id,
  278. isr.inspect_department_name
  279. order by total desc
  280. </select>
  281. <!--查获排名-按班组-->
  282. <select id="rankByTeam" resultType="com.sundot.airport.item.domain.ItemLargeScreenCommonDto">
  283. select isr.inspect_team_id id,
  284. isr.inspect_team_name name,
  285. sum(isi.quantity) total
  286. from item_seizure_record isr
  287. left join item_seizure_items isi on isr.id = isi.record_id
  288. where isr.process_status=3
  289. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  290. <if test="startDate != null and endDate != null">
  291. and (isr.seizure_time >= #{startDate}
  292. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  293. </if>
  294. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  295. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  296. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  297. <if test="categoryCodeOne != null and categoryCodeOne != ''">
  298. and isi.category_code_one = #{categoryCodeOne}
  299. </if>
  300. <if test="categoryCodeTwo != null and categoryCodeTwo != ''">
  301. and isi.category_code_two = #{categoryCodeTwo}
  302. </if>
  303. <if test="isPolice=='1' or isPolice==1">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  304. <if test="isConceal=='1' or isConceal==1">and isi.is_active_concealment = 1</if>
  305. group by isr.inspect_team_id,
  306. isr.inspect_team_name
  307. order by total desc
  308. </select>
  309. <!--查获排名-按个人-->
  310. <select id="rankByIndividual" resultType="com.sundot.airport.item.domain.ItemLargeScreenCommonDto">
  311. select isr.inspect_user_id id,
  312. isr.inspect_user_name name,
  313. sum(isi.quantity) total
  314. from item_seizure_record isr
  315. left join item_seizure_items isi on isr.id = isi.record_id
  316. where isr.process_status=3
  317. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  318. <if test="startDate != null and endDate != null">
  319. and (isr.seizure_time >= #{startDate}
  320. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  321. </if>
  322. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  323. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  324. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  325. <if test="categoryCodeOne != null and categoryCodeOne != ''">
  326. and isi.category_code_one = #{categoryCodeOne}
  327. </if>
  328. <if test="categoryCodeTwo != null and categoryCodeTwo != ''">
  329. and isi.category_code_two = #{categoryCodeTwo}
  330. </if>
  331. <if test="isPolice=='1' or isPolice==1 ">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  332. <if test="isConceal=='1' or isConceal==1 ">and isi.is_active_concealment = 1</if>
  333. group by isr.inspect_user_id,
  334. isr.inspect_user_name
  335. order by total desc
  336. </select>
  337. <!--查获时段分布-->
  338. <select id="timeSpan" resultType="com.sundot.airport.item.domain.ItemLargeScreenTimeSpanDto">
  339. select hours.hour as hourOfDay,
  340. ifnull(sum(isi.quantity), 0) as total
  341. from (select 0 as hour
  342. union
  343. select 1
  344. union
  345. select 2
  346. union
  347. select 3
  348. union
  349. select 4
  350. union
  351. select 5
  352. union
  353. select 6
  354. union
  355. select 7
  356. union
  357. select 8
  358. union
  359. select 9
  360. union
  361. select 10
  362. union
  363. select 11
  364. union
  365. select 12
  366. union
  367. select 13
  368. union
  369. select 14
  370. union
  371. select 15
  372. union
  373. select 16
  374. union
  375. select 17
  376. union
  377. select 18
  378. union
  379. select 19
  380. union
  381. select 20
  382. union
  383. select 21
  384. union
  385. select 22
  386. union
  387. select 23) as hours
  388. left join item_seizure_record isr
  389. on hours.hour = hour (isr.seizure_time)
  390. <if test="specifiedDate != null and specifiedDate != null">
  391. and date (isr.seizure_time) = #{specifiedDate}
  392. </if>
  393. left join item_seizure_items isi
  394. on isr.id = isi.record_id
  395. where isr.process_status=3
  396. <if test="startDate != null and endDate != null">
  397. and (isr.seizure_time >= #{startDate}
  398. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  399. </if>
  400. <if test="categoryCodeOne != null and categoryCodeOne != ''">
  401. and isi.category_code_one = #{categoryCodeOne}
  402. </if>
  403. <if test="categoryCodeTwo != null and categoryCodeTwo != ''">
  404. and isi.category_code_two = #{categoryCodeTwo}
  405. </if>
  406. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  407. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  408. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  409. <if test="userId != null">and isr.inspect_user_id = #{userId}</if>
  410. <if test="isPolice=='1' or isPolice==1 ">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  411. <if test="isConceal=='1' or isConceal==1 ">and isi.is_active_concealment = 1</if>
  412. group by hours.hour
  413. order by hours.hour
  414. </select>
  415. <!--按天统计趋势数据-->
  416. <select id="dailyTrend" resultType="com.sundot.airport.item.domain.ItemLargeScreenDailyTrendDto">
  417. select DATE(isr.seizure_time) as date,
  418. ifnull(sum(isi.quantity), 0) as total
  419. from item_seizure_record isr
  420. left join item_seizure_items isi on isr.id = isi.record_id
  421. where isr.process_status = 3
  422. <if test="startDate != null and endDate != null">
  423. and (isr.seizure_time >= #{startDate}
  424. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  425. </if>
  426. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  427. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  428. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  429. <if test="categoryCodeOne != null and categoryCodeOne != ''">
  430. and isi.category_code_one = #{categoryCodeOne}
  431. </if>
  432. <if test="categoryCodeTwo != null and categoryCodeTwo != ''">
  433. and isi.category_code_two = #{categoryCodeTwo}
  434. </if>
  435. <if test="isPolice=='1' or isPolice==1 ">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  436. <if test="isConceal=='1' or isConceal==1 ">and isi.is_active_concealment = 1</if>
  437. group by DATE(isr.seizure_time)
  438. order by date
  439. </select>
  440. <!--查获位置分布-->
  441. <select id="position" resultType="com.sundot.airport.item.domain.ItemLargeScreenPositionDto">
  442. select isi.check_position_code_one checkPositionCodeOne,
  443. isi.check_position_name_one checkPositionNameOne,
  444. isi.check_position_code_two checkPositionCodeTwo,
  445. isi.check_position_name_two checkPositionNameTwo,
  446. sum(isi.quantity) total
  447. from item_seizure_record isr
  448. left join item_seizure_items isi on isr.id = isi.record_id
  449. where isr.process_status=3
  450. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  451. <if test="startDate != null and endDate != null">
  452. and (isr.seizure_time >= #{startDate}
  453. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  454. </if>
  455. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  456. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  457. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  458. <if test="isPolice=='1' or isPolice==1">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  459. <if test="isConceal=='1' or isConceal==1">and isi.is_active_concealment = 1</if>
  460. group by isi.check_position_code_one,
  461. isi.check_position_name_one,
  462. isi.check_position_code_two,
  463. isi.check_position_name_two
  464. order by checkPositionCodeOne, checkPositionCodeTwo, total desc
  465. </select>
  466. <!--查获通道分布-->
  467. <select id="channel" resultType="com.sundot.airport.item.domain.ItemLargeScreenChannelDto">
  468. select isr.regional_code channelCode,
  469. isr.regional_name channelName,
  470. isi.category_code_one categoryCode,
  471. isi.category_name_one categoryName,
  472. sum(isi.quantity) total
  473. from item_seizure_record isr
  474. left join item_seizure_items isi on isr.id = isi.record_id
  475. where isr.process_status=3
  476. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  477. <if test="startDate != null and endDate != null">
  478. and (isr.seizure_time >= #{startDate}
  479. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  480. </if>
  481. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  482. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  483. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  484. group by isr.regional_code,
  485. isr.regional_name,
  486. isi.category_code_one,
  487. isi.category_name_one
  488. order by channelCode, categoryCode, total desc
  489. </select>
  490. <select id="appPosition" resultType="com.sundot.airport.item.domain.ItemLargeScreenPositionAppDto">
  491. select
  492. <if test="levelType == 1">
  493. isi.check_position_code_one code,
  494. isi.check_position_name_one name,
  495. </if>
  496. <if test="levelType == 2">
  497. isi.check_position_code_two code,
  498. isi.check_position_name_two name,
  499. </if>
  500. sum(isi.quantity) total
  501. from item_seizure_record isr
  502. left join item_seizure_items isi on isr.id = isi.record_id
  503. where isr.process_status=3
  504. <if test="specifiedDate != null">and date(isr.seizure_time) = #{specifiedDate}</if>
  505. <if test="startDate != null and endDate != null">
  506. and (isr.seizure_time >= #{startDate}
  507. and isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  508. </if>
  509. <if test="inspectBrigadeId != null">and isr.inspect_brigade_id = #{inspectBrigadeId}</if>
  510. <if test="inspectDepartmentId != null">and isr.inspect_department_id = #{inspectDepartmentId}</if>
  511. <if test="inspectTeamId != null">and isr.inspect_team_id = #{inspectTeamId}</if>
  512. <if test="isPolice=='1' or isPolice==1">and isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'</if>
  513. <if test="isConceal=='1' or isConceal==1">and isi.is_active_concealment = 1</if>
  514. <if test="levelType == 2 and positionCode!=null and positionCode!=''">and isi.check_position_code_one =
  515. #{positionCode}
  516. </if>
  517. group by
  518. <if test="levelType == 1">
  519. isi.check_position_code_one,
  520. isi.check_position_name_one
  521. </if>
  522. <if test="levelType == 2">
  523. isi.check_position_code_two,
  524. isi.check_position_name_two
  525. </if>
  526. order by total desc
  527. </select>
  528. <!--批量获取个人在岗时长-->
  529. <select id="getBatchIndividualWorkDuration"
  530. resultType="com.sundot.airport.item.domain.ItemLargeScreenWorkDurationDto">
  531. select apr.user_id as id,
  532. ifnull(sum(apr.work_duration), 0) as workDuration
  533. from attendance_post_record apr
  534. where apr.user_id in
  535. <foreach collection="userIds" item="userId" open="(" separator="," close=")">
  536. #{userId}
  537. </foreach>
  538. and apr.work_duration > 0
  539. <if test="startDate != null and endDate != null">
  540. and apr.check_in_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day)
  541. and apr.check_out_time >= #{startDate}
  542. </if>
  543. group by apr.user_id
  544. </select>
  545. <!--批量获取班组在岗时长-->
  546. <select id="getBatchTeamWorkDuration" resultType="com.sundot.airport.item.domain.ItemLargeScreenWorkDurationDto">
  547. select apr.attendance_team_id as id,
  548. ifnull(sum(apr.work_duration), 0) as workDuration
  549. from attendance_post_record apr
  550. where apr.attendance_team_id in
  551. <foreach collection="teamIds" item="teamId" open="(" separator="," close=")">
  552. #{teamId}
  553. </foreach>
  554. and apr.work_duration > 0
  555. <if test="startDate != null and endDate != null">
  556. and apr.check_in_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day)
  557. and apr.check_out_time >= #{startDate}
  558. </if>
  559. group by apr.attendance_team_id
  560. </select>
  561. <!--获取科室在岗时长-->
  562. <select id="getDepartmentWorkDuration" resultType="java.math.BigDecimal">
  563. select ifnull(sum(apr.work_duration), 0) as workDuration
  564. from attendance_post_record apr
  565. where 1 = 1
  566. and apr.work_duration > 0
  567. <if test="startDate != null and endDate != null">
  568. and apr.check_in_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day)
  569. and apr.check_out_time >= #{startDate}
  570. </if>
  571. <if test="inspectDepartmentId != null">
  572. and apr.attendance_department_id = #{inspectDepartmentId}
  573. </if>
  574. </select>
  575. <!--获取大队在岗时长-->
  576. <select id="getBrigadeWorkDuration" resultType="java.math.BigDecimal">
  577. select ifnull(sum(apr.work_duration), 0) as workDuration
  578. from attendance_post_record apr
  579. where 1 = 1
  580. and apr.work_duration > 0
  581. <if test="startDate != null and endDate != null">
  582. and apr.check_in_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day)
  583. and apr.check_out_time >= #{startDate}
  584. </if>
  585. <if test="inspectBrigadeId != null">
  586. and apr.attendance_brigade_id = #{inspectBrigadeId}
  587. </if>
  588. </select>
  589. <!--获取在岗时长-->
  590. <select id="getWorkDuration" resultType="java.math.BigDecimal">
  591. select ifnull(sum(apr.work_duration), 0) as workDuration
  592. from attendance_post_record apr
  593. where 1 = 1
  594. and apr.work_duration > 0
  595. <if test="startDate != null and endDate != null">
  596. and apr.check_in_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day)
  597. and apr.check_out_time >= #{startDate}
  598. </if>
  599. <if test="inspectBrigadeId != null">
  600. and apr.attendance_brigade_id = #{inspectBrigadeId}
  601. </if>
  602. <if test="inspectDepartmentId != null">
  603. and apr.attendance_department_id = #{inspectDepartmentId}
  604. </if>
  605. <if test="inspectTeamId != null">
  606. and apr.attendance_team_id = #{inspectTeamId}
  607. </if>
  608. </select>
  609. <!-- 查询全站查获违禁品 -->
  610. <select id="selectProhibitedItemsTop3" resultType="com.sundot.airport.item.domain.dto.ProhibitedItemsTop3DTO">
  611. SELECT
  612. isi.category_code_two AS categoryCode,
  613. isi.category_name_two AS categoryName,
  614. SUM(isi.quantity) AS quantity,
  615. 0 AS percentage,
  616. 0 AS rank
  617. FROM item_seizure_record isr
  618. LEFT JOIN item_seizure_items isi ON isr.id = isi.record_id
  619. WHERE isr.process_status = 3 and isr.inspect_station_id = #{inspectStationId}
  620. <if test="startDate != null and endDate != null">
  621. AND isr.seizure_time >= #{startDate}
  622. AND isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day)
  623. </if>
  624. GROUP BY isi.category_code_two, isi.category_name_two
  625. ORDER BY quantity DESC
  626. LIMIT 3
  627. </select>
  628. <!-- 查询隐匿重点部位 Top1 -->
  629. <select id="selectConcealmentPositionTop1"
  630. resultType="com.sundot.airport.item.domain.dto.ConcealmentPositionTop1DTO">
  631. SELECT
  632. isi.check_position_code_one AS checkPositionCodeOne,
  633. isi.check_position_name_one AS checkPositionNameOne,
  634. isi.check_position_code_two AS checkPositionCodeTwo,
  635. isi.check_position_name_two AS checkPositionNameTwo,
  636. SUM(isi.quantity) AS quantity
  637. FROM item_seizure_record isr
  638. LEFT JOIN item_seizure_items isi ON isr.id = isi.record_id
  639. WHERE isr.process_status = 3
  640. AND isr.inspect_station_id = #{inspectStationId}
  641. AND isi.is_active_concealment = 1
  642. <if test="startDate != null and endDate != null">
  643. AND isr.seizure_time >= #{startDate}
  644. AND isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day)
  645. </if>
  646. GROUP BY isi.check_position_code_one, isi.check_position_name_one,
  647. isi.check_position_code_two, isi.check_position_name_two
  648. ORDER BY quantity DESC
  649. LIMIT 1
  650. </select>
  651. <!-- 使用报表-运行情况-查获模块 -->
  652. <select id="getSeizureModule" resultType="com.sundot.airport.common.core.domain.SysUsageReportSeizureDto">
  653. select isr.id id,
  654. isi.quantity total,
  655. isr.check_method positionCode,
  656. isr.check_method_desc positionName,
  657. isi.category_code_one categoryCode,
  658. isi.category_name_one categoryName,
  659. isi.check_position_code_one partCode,
  660. isi.check_position_name_one partName,
  661. isi.is_active_concealment hidden,
  662. isr.process_status processStatus
  663. from item_seizure_record isr
  664. inner join item_seizure_items isi on isi.record_id = isr.id
  665. where 1 = 1
  666. <if test="startDate != null and endDate != null">
  667. AND isr.seizure_time >= #{startDate}
  668. AND isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day)
  669. </if>
  670. </select>
  671. <!-- X 光机漏检数据 -->
  672. <select id="xRayMissCheck" resultType="com.sundot.airport.item.domain.ItemXRayMissCheckDto">
  673. select
  674. isr.inspect_brigade_name brigadeName,
  675. isr.inspect_department_name departmentName,
  676. isr.inspect_team_name teamName,
  677. isr.xray_operator_name userName,
  678. isi.category_name_two missItemName,
  679. isi.quantity missQuantity,
  680. concat(
  681. ifnull(isi.check_position_name_one, ''),
  682. if(isi.check_position_name_two is null or isi.check_position_name_two = '', '', concat('/',
  683. isi.check_position_name_two)),
  684. if(isi.check_position_specific is null or isi.check_position_specific = '', '', concat('/',
  685. isi.check_position_specific))
  686. ) missPosition,
  687. isr.channel_name channelName,
  688. isr.seizure_time missTime
  689. from item_seizure_record isr
  690. inner join item_seizure_items isi on isi.record_id = isr.id
  691. where isr.power_on_instruction=1
  692. <if test="specifiedDate != null">
  693. and date(isr.seizure_time) = #{specifiedDate}
  694. </if>
  695. <if test="startDate != null and endDate != null">
  696. and (isr.seizure_time >= #{startDate}
  697. AND isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  698. </if>
  699. <if test="inspectStationId != null">
  700. and isr.inspect_station_id = #{inspectStationId}
  701. </if>
  702. <if test="inspectBrigadeId != null">
  703. and isr.inspect_brigade_id = #{inspectBrigadeId}
  704. </if>
  705. <if test="inspectDepartmentId != null">
  706. and isr.inspect_department_id = #{inspectDepartmentId}
  707. </if>
  708. <if test="inspectTeamId != null">
  709. and isr.inspect_team_id = #{inspectTeamId}
  710. </if>
  711. and isr.process_status = 3
  712. order by isr.seizure_time desc
  713. </select>
  714. <!-- X 光机漏检人员统计 TOP3 -->
  715. <select id="xRayMissCheckUserStatsTop3" resultType="com.sundot.airport.item.domain.ItemXRayMissCheckUserStatsDto">
  716. select
  717. isr.xray_operator_id xrayOperatorId,
  718. isr.xray_operator_name xrayOperatorName,
  719. sum(isi.quantity) totalMissQuantity
  720. from item_seizure_record isr
  721. inner join item_seizure_items isi on isi.record_id = isr.id
  722. where isr.power_on_instruction=1
  723. <if test="specifiedDate != null">
  724. and date(isr.seizure_time) = #{specifiedDate}
  725. </if>
  726. <if test="startDate != null and endDate != null">
  727. and (isr.seizure_time >= #{startDate}
  728. AND isr.seizure_time <![CDATA[ < ]]> date_add(#{endDate}, interval 1 day))
  729. </if>
  730. <if test="inspectStationId != null">
  731. and isr.inspect_station_id = #{inspectStationId}
  732. </if>
  733. <if test="inspectBrigadeId != null">
  734. and isr.inspect_brigade_id = #{inspectBrigadeId}
  735. </if>
  736. <if test="inspectDepartmentId != null">
  737. and isr.inspect_department_id = #{inspectDepartmentId}
  738. </if>
  739. <if test="inspectTeamId != null">
  740. and isr.inspect_team_id = #{inspectTeamId}
  741. </if>
  742. and isr.process_status = 3
  743. and isr.xray_operator_id is not null
  744. group by isr.xray_operator_id, isr.xray_operator_name
  745. order by totalMissQuantity desc
  746. limit 3
  747. </select>
  748. <!-- 查询移交公安违禁品 TOP3(用于消息推送) -->
  749. <select id="selectProhibitedItemsTop3ForPush"
  750. resultType="com.sundot.airport.item.domain.push.SeizureMessagePushDTO$ProhibitedItemTop3">
  751. SELECT
  752. isi.category_code_one AS categoryCodeOne,
  753. isi.category_name_one AS categoryNameOne,
  754. isi.category_code_two AS categoryCodeTwo,
  755. isi.category_name_two AS categoryNameTwo,
  756. SUM(isi.quantity) AS seizureCount,
  757. 0 AS rank
  758. FROM item_seizure_record isr
  759. LEFT JOIN item_seizure_items isi ON isr.id = isi.record_id
  760. WHERE isr.process_status = 3
  761. <if test="inspectStationId != null">
  762. AND isr.inspect_station_id = #{inspectStationId}
  763. </if>
  764. <if test="inspectBrigadeId != null">
  765. and isr.inspect_brigade_id = #{inspectBrigadeId}
  766. </if>
  767. <if test="inspectDepartmentId != null">
  768. and isr.inspect_department_id = #{inspectDepartmentId}
  769. </if>
  770. <if test="inspectTeamId != null">
  771. and isr.inspect_team_id = #{inspectTeamId}
  772. </if>
  773. <if test="startDate != null and endDate != null">
  774. AND isr.seizure_time &gt;= #{startDate}
  775. AND isr.seizure_time &lt; date_add(#{endDate}, interval 1 day)
  776. </if>
  777. AND isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'
  778. GROUP BY isi.category_code_one, isi.category_name_one, isi.category_code_two, isi.category_name_two
  779. ORDER BY seizureCount DESC
  780. LIMIT 3
  781. </select>
  782. <!-- 查询故意隐匿物品藏匿部位 TOP3(用于消息推送) -->
  783. <select id="selectConcealmentPositionsTop3ForPush"
  784. resultType="com.sundot.airport.item.domain.push.SeizureMessagePushDTO$ConcealmentPositionTop3">
  785. SELECT
  786. isi.check_position_code_one AS positionCodeOne,
  787. isi.check_position_name_one AS positionNameOne,
  788. isi.check_position_code_two AS positionCodeTwo,
  789. isi.check_position_name_two AS positionNameTwo,
  790. SUM(isi.quantity) AS concealmentCount,
  791. 0 AS rank
  792. FROM item_seizure_record isr
  793. LEFT JOIN item_seizure_items isi ON isr.id = isi.record_id
  794. WHERE isr.process_status = 3
  795. <if test="inspectStationId != null">
  796. AND isr.inspect_station_id = #{inspectStationId}
  797. </if>
  798. <if test="inspectBrigadeId != null">
  799. and isr.inspect_brigade_id = #{inspectBrigadeId}
  800. </if>
  801. <if test="inspectDepartmentId != null">
  802. and isr.inspect_department_id = #{inspectDepartmentId}
  803. </if>
  804. <if test="inspectTeamId != null">
  805. and isr.inspect_team_id = #{inspectTeamId}
  806. </if>
  807. <if test="startDate != null and endDate != null">
  808. AND isr.seizure_time &gt;= #{startDate}
  809. AND isr.seizure_time &lt; date_add(#{endDate}, interval 1 day)
  810. </if>
  811. AND isi.is_active_concealment = 1
  812. GROUP BY isi.check_position_code_one, isi.check_position_name_one, isi.check_position_code_two,
  813. isi.check_position_name_two
  814. ORDER BY concealmentCount DESC
  815. LIMIT 3
  816. </select>
  817. <!-- 查询移交公安违禁品高发通道 TOP3(用于消息推送) -->
  818. <select id="selectHighRiskChannelsTop3ForPush"
  819. resultType="com.sundot.airport.item.domain.push.SeizureMessagePushDTO$HighRiskChannelTop3">
  820. SELECT
  821. isr.terminl_name AS terminalName,
  822. isr.regional_name AS areaName,
  823. isr.channel_name AS channelName,
  824. SUM(isi.quantity) AS transferToPoliceCount,
  825. 0 AS rank
  826. FROM item_seizure_record isr
  827. LEFT JOIN item_seizure_items isi ON isr.id = isi.record_id
  828. WHERE isr.process_status = 3
  829. <if test="inspectStationId != null">
  830. AND isr.inspect_station_id = #{inspectStationId}
  831. </if>
  832. <if test="inspectBrigadeId != null">
  833. and isr.inspect_brigade_id = #{inspectBrigadeId}
  834. </if>
  835. <if test="inspectDepartmentId != null">
  836. and isr.inspect_department_id = #{inspectDepartmentId}
  837. </if>
  838. <if test="inspectTeamId != null">
  839. and isr.inspect_team_id = #{inspectTeamId}
  840. </if>
  841. <if test="startDate != null and endDate != null">
  842. AND isr.seizure_time &gt;= #{startDate}
  843. AND isr.seizure_time &lt; date_add(#{endDate}, interval 1 day)
  844. </if>
  845. AND isi.handling_method = 'TRANSFER_TO_AIRPORT_POLICE'
  846. AND isr.terminl_name IS NOT NULL
  847. AND isr.regional_name IS NOT NULL
  848. AND isr.channel_name IS NOT NULL
  849. GROUP BY isr.terminl_name, isr.regional_name, isr.channel_name
  850. ORDER BY transferToPoliceCount DESC
  851. LIMIT 3
  852. </select>
  853. </mapper>