ShipDynamicsMapper.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  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.steerinfo.dil.mapper.ShipDynamicsMapper">
  4. <!-- 获取船舶动态表数据 -->
  5. <select id="selectAll" resultType="java.util.Map" parameterType="java.util.Map">
  6. select db.BATCH_ID "batchId",
  7. DBI2.BATCH_INFACOTRY_ID "batchInfacoryId",
  8. db.result_foreign_ship_name "shipName",
  9. rm.material_name "materialName",
  10. adn.NOTICE_DELIVERY_TIME "dateOfLoans",
  11. adn.RESULT_NUMBER_OF_LOANS "numberOfLoans",
  12. rp.port_name "portName",
  13. wgm.gm_tonnage "tonnage",
  14. rc.capacity_number "capacity",
  15. tlsr.RESULT_ACTUAL_INSTALLATIONS "capacityNumber",
  16. tlsr.RESULT_OUT_PORT_TIME "outPortTime",
  17. tlsr.RESULT_ARRIVAL_PORT_TIME "dgsj",
  18. tsl.LOCATION_STATUS "locationStatus",
  19. tsl.LOCATION_VALUE "locationValue",
  20. tsl.LOCATION_ROUTE_TIME,
  21. RMT.MATERIAL_TYPE_NAME "materialTypeName",
  22. RMT.MATERIAL_TYPE_ID "materialTypeId",
  23. OSI.INSTRUCTIONS_STATUS "instructionStatus"
  24. from AMSSHIP_DELIVERY_NOTICE adn
  25. LEFT JOIN DIL_BATCH_INFACOTRY DBI2 on adn.batch_id=DBI2.BATCH_INFACOTRY_ID
  26. JOIN DIL_BATCH DB ON DBI2.BATCH_ID=DB.BATCH_ID
  27. join rms_material rm on db.material_id=rm.material_id
  28. left join rms_port rp on rp.port_id=adn.port_id
  29. left join WMSH_GRID_MATERIAL wgm on wgm.batch_id = DB.BATCH_ID AND ADN.PORT_ID=WGM.PORT_ID
  30. left join TMSSHIP_LOAD_SHIP_RESULT tlsr on DBI2.BATCH_INFACOTRY_ID=tlsr.batch_id
  31. left join tmsship_total_result ttr on ttr.result_id=tlsr.TOTAL_RESULT_ID
  32. left join omsship_instructions_capacity oic on ttr.order_id=oic.instructions_capacity_id
  33. left join OMSSHIP_SHIPMENT_INSTRUCTIONS OSI ON OSI.SHIPMENT_INSTRUCTIONS_ID=oic.INSTRUCTIONS_ID
  34. left join rms_capacity rc on oic.capacity_id=rc.capacity_id
  35. left join RMS_MATERIAL_TYPE RMT on adn.MATERIAL_TYPE_ID = RMT.MATERIAL_TYPE_ID
  36. left join (select * from tmsship_ship_location t where t.location_id in
  37. (SELECT
  38. t.location_id
  39. FROM
  40. (
  41. SELECT
  42. t.location_id,
  43. t.total_result_id,
  44. t.location_route_time,
  45. ROW_NUMBER () OVER (
  46. PARTITION BY t.total_result_id
  47. ORDER BY t.location_route_time DESC
  48. ) AS rn
  49. FROM
  50. tmsship_ship_location t
  51. ) t
  52. WHERE
  53. rn = 1)) tsl on tsl.total_result_id=ttr.result_id
  54. where ttr.ship_status = 0 and tsl.LOCATION_STATUS is not null and tlsr.DELETED=0
  55. and adn.DELETED=0 and oic.DELETED=0
  56. <if test="con!=null and con!=''.toString()">
  57. and (instr(RMT.MATERIAL_TYPE_NAME,#{con}) > 0 or instr(rc.capacity_number,#{con}) > 0 or instr(rm.material_name,#{con}) > 0 or instr(db.result_foreign_ship_name,#{con}) >0 )
  58. </if>
  59. Order By ADN.INSERT_TIME DESC
  60. </select>
  61. <select id="selectByshipName" resultType="java.util.Map" parameterType="java.util.Map">
  62. select sd.GM_TONNAGE as "tonnage",
  63. sd.RESULT_DATE_OF_LOANS as "dateOfLoans",
  64. sd.RESULT_NUMBER_OF_LOANS as "numberOfLoans",
  65. sd.PORT_NAME as "portName",
  66. sd.CAPACITY_NUMBER as "capacity",
  67. sd.RESULT_ACTUAL_INSTALLATIONS as "capacityNumber",
  68. sd.RESULT_OUT_PORT_TIME as "outPortTime",
  69. sd.LOCATION_VALUE as "locationValue",
  70. sd.LOCATION_STATUS as "locationStatus"
  71. from SHIP_DYNAMICS sd where sd.RESULT_FOREIGN_SHIP_NAME=#{shipName} and sd.MATERIAL_NAME=#{materialName} and sd.LOCATION_STATUS is not null
  72. </select>
  73. <select id="getLoadData" resultType="java.util.Map">
  74. select COUNT(TLT.RESULT_ID) as "num",
  75. DB.RESULT_FOREIGN_SHIP_NAME "resultForeignShipName",
  76. rm.MATERIAL_NAME "materialName",
  77. '港口装车数据' "dataType"
  78. from TMSTRAIN_LOADING_TEMP TLT
  79. LEFT JOIN WMSH_OUTBOUND_RESULT WOR
  80. ON WOR.RESULT_ID = TLT.OUTBOUNT_ID
  81. LEFT JOIN DIL_BATCH DB
  82. ON WOR.BATCH_ID = DB.BATCH_ID
  83. LEFT JOIN RMS_MATERIAL RM
  84. ON DB.MATERIAL_ID = RM.MATERIAL_ID
  85. <where>
  86. <if test="input !=null and input.toString()!=''">
  87. DB.RESULT_FOREIGN_SHIP_NAME || rm.MATERIAL_NAME like concat('%',concat(#{input},'%'))
  88. </if>
  89. <if test="oneDate != null">
  90. and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= WOR.INSERT_TIME
  91. </if>
  92. <if test="startDate != null">
  93. and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= WOR.INSERT_TIME
  94. and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= WOR.INSERT_TIME
  95. </if>
  96. </where>
  97. GROUP BY rm.MATERIAL_NAME,DB.RESULT_FOREIGN_SHIP_NAME
  98. ORDER BY rm.MATERIAL_NAME
  99. </select>
  100. <select id="getUnloadData" resultType="java.util.Map">
  101. --卸船明细
  102. SELECT
  103. ( CASE WHEN TTR.SHIP_STATUS = 1 THEN '已卸船数' ELSE '待卸船数' END ) AS "status",
  104. COUNT(TTR.SHIP_STATUS) AS "num",
  105. '港口卸船数据' "dataType"
  106. FROM
  107. TMSSHIP_TOTAL_RESULT TTR
  108. LEFT JOIN TMSSHIP_UNLOAD_SHIP_RESULT TUSR ON TUSR.TOTAL_RESULT_ID = TTR.RESULT_ID
  109. LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY OIC ON TTR.ORDER_ID = OIC.INSTRUCTIONS_CAPACITY_ID
  110. LEFT JOIN RMS_CAPACITY RC ON OIC.CAPACITY_ID = RC.CAPACITY_ID
  111. WHERE TUSR.DELETED=0 and TTR.SHIP_STATUS = 1
  112. <if test="oneDate != null">
  113. and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TUSR.INSERT_TIME
  114. </if>
  115. <if test="startDate != null">
  116. and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TUSR.INSERT_TIME
  117. and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TUSR.INSERT_TIME
  118. </if>
  119. GROUP BY TTR.SHIP_STATUS
  120. </select>
  121. <select id="getLocationData" resultType="java.util.Map">
  122. select count(LOCATION_ID) "num",DECODE(LOCATION_VALUE, '等卸', '待卸船数','在卸','在卸船数') as "status"
  123. from TMSSHIP_SHIP_LOCATION
  124. where LOCATION_VALUE='等卸' or LOCATION_VALUE='待卸'
  125. <if test="oneDate != null">
  126. and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= UPDATE_TIME
  127. </if>
  128. <if test="startDate != null">
  129. and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= UPDATE_TIME
  130. and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= UPDATE_TIME
  131. </if>
  132. GROUP BY LOCATION_VALUE
  133. </select>
  134. <select id="getDownShipDynamaics" resultType="java.util.Map">
  135. --下游港口船舶动态表
  136. SELECT
  137. DISTINCT
  138. OSI.SHIPMENT_INSTRUCTIONS_ID "instructionsId",
  139. OIC.INSTRUCTIONS_CAPACITY_ID "instructionsCapacityId",
  140. ADN.PORT_ID "adnPortId",
  141. WGM.GM_ID "gmId",
  142. WGM.PORT_ID "portId",
  143. WGM.BATCH_ID "batchId",
  144. RP.PORT_NAME "portName",
  145. RM.MATERIAL_NAME || '(' || DB.RESULT_FOREIGN_SHIP_NAME || ')' || ADN.RESULT_NUMBER_OF_LOANS || '吨,' || TO_CHAR(ADN.NOTICE_DELIVERY_TIME,'YYYY-MM-DD') ||'放货'
  146. ||
  147. (case
  148. when OSI.HANDOVER_MODE IS NULL
  149. then ''
  150. else '(二程:' || OSI.HANDOVER_MODE || ')'
  151. end) "productName",
  152. WGM.GM_TONNAGE "gmTonnage",
  153. (case
  154. when TWQR.IS_NEED_ASSEMBLE = '是'
  155. then RC.CAPACITY_NUMBER ||'(拼装)'
  156. else RC.CAPACITY_NUMBER
  157. end)
  158. "capacityNumber",
  159. oic.INSTRUCTION_PLANNED_LOADING "planLoadTon",
  160. oic.INSTRUCTIONS_SHIP_POSITION "position",
  161. TLSR.RESULT_ACTUAL_INSTALLATIONS "actualLoadTon",
  162. oic.SHIP_DYNAMIC "shipDynamic",
  163. oic.LOAD_DETAILS "loadDetails",
  164. ADN.NOTICE_DELIVERY_TIME "noticeDeliveryTime"
  165. from AMSSHIP_DELIVERY_NOTICE ADN
  166. LEFT JOIN RMS_PORT RP
  167. ON RP.PORT_ID = ADN.PORT_ID
  168. LEFT JOIN OMSSHIP_SHIPMENT_INSTRUCTIONS OSI
  169. ON OSI.BATCH_ID = ADN.BATCH_ID
  170. LEFT JOIN OMSSHIP_INSTRUCTIONS_CAPACITY OIC
  171. ON OIC.INSTRUCTIONS_ID = OSI.SHIPMENT_INSTRUCTIONS_ID
  172. LEFT JOIN RMS_CAPACITY RC
  173. ON RC.CAPACITY_ID =OIC.CAPACITY_ID
  174. LEFT JOIN DIL_BATCH_INFACOTRY DBI
  175. ON DBI.BATCH_INFACOTRY_ID = ADN.BATCH_ID
  176. LEFT JOIN DIL_BATCH DB
  177. ON DB.BATCH_ID = DBI.BATCH_ID
  178. left join RMS_MATERIAL RM
  179. ON RM.MATERIAL_ID = DB.MATERIAL_ID
  180. LEFT JOIN WMSH_GRID_MATERIAL WGM
  181. ON WGM.BATCH_ID = DB.BATCH_ID AND ADN.PORT_ID=WGM.PORT_ID
  182. LEFT JOIN TMSSHIP_TOTAL_RESULT TTR
  183. ON OIC.INSTRUCTIONS_CAPACITY_ID=TTR.ORDER_ID
  184. LEFT JOIN TMSSHIP_WATER_QUALITY_RESULT TWQR
  185. ON TWQR.TOTAL_RESULT_ID=TTR.RESULT_ID
  186. LEFT JOIN TMSSHIP_LOAD_SHIP_RESULT TLSR
  187. ON TLSR.TOTAL_RESULT_ID=TTR.RESULT_ID
  188. <where>
  189. ADN.DELETED=0
  190. <if test="input !=null and input.toString()!=''">
  191. and RC.CAPACITY_NUMBER || RP.PORT_NAME || DB.RESULT_FOREIGN_SHIP_NAME || rm.MATERIAL_NAME like concat('%',concat(#{input},'%'))
  192. </if>
  193. <if test="oneDate != null">
  194. and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= ADN.NOTICE_DELIVERY_TIME
  195. </if>
  196. <if test="startDate != null">
  197. and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= ADN.NOTICE_DELIVERY_TIME
  198. and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= ADN.NOTICE_DELIVERY_TIME
  199. </if>
  200. </where>
  201. ORDER BY RP.PORT_NAME,ADN.NOTICE_DELIVERY_TIME DESC
  202. </select>
  203. <select id="getPleaseData" resultType="java.util.Map">
  204. select sum(RESULT_APPROVE_NUMBER) "approveSum",sum(RESULT_SURPLUS_NUMBER) "surplusSum" from TMSTRAIN_PLEASE_RESULT
  205. where DELETED=0
  206. <if test="oneDate != null">
  207. and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= RESULT_DATE
  208. </if>
  209. <if test="startDate != null">
  210. and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= RESULT_DATE
  211. and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= RESULT_DATE
  212. </if>
  213. </select>
  214. <select id="getRealNumberMonth" resultType="java.math.BigDecimal">
  215. select count(TLT.RESULT_ID) from TMSTRAIN_LOADING_TEMP TLT,WMSH_OUTBOUND_RESULT WOR
  216. where TLT.OUTBOUNT_ID=WOR.RESULT_ID
  217. AND #{monthDate} = TO_CHAR(WOR.INSERT_TIME,'YYYY-MM')
  218. </select>
  219. </mapper>