application-mapper.xml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  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.utic.its.local.dao.mapper.LocalApplicationMapper">
  4. <!--
  5. : 지역센터의 데이터베이스 상황에 따라 SQL 문을 수정하여야 할 수 있습니다.
  6. : SQL 문을 수정할 경우 SQL 의 컬럼명 및 파라미터의 대소문자를 비교하므로 모두 대문자로 정확히 작성 하여야 합니다.
  7. : 또한 SQL 문의 id 값은 변경하여서는 안되며 SQL 문만 변경하여야 합니다.
  8. -->
  9. <!-- rota-local-client, rota-local-server: UTIC 센터정보 조회 -->
  10. <select id="findUticCenter" resultType="java.util.HashMap">
  11. <![CDATA[
  12. SELECT SUBSTR(CENTERID, 1, 10) AS CENTERID,
  13. CENTERINFO AS CENTERINFO,
  14. IPADDRESS AS IPADDRESS,
  15. COMMPORT AS COMMPORT,
  16. DATEXUSER AS DATEXUSER,
  17. DATEXPASSWD AS DATEXPASSWD,
  18. HEARTBEATCYCLE AS HEARTBEATCYCLE,
  19. RESTIME AS RESTIME,
  20. DATAGRAMSIZE AS DATAGRAMSIZE,
  21. TRAFFICYN AS TRAFFICYN,
  22. INCIDENTYN AS INCIDENTYN
  23. FROM CENTER
  24. WHERE CENTERFLAG = 'L'
  25. AND EXEYN = 'Y'
  26. ]]>
  27. </select>
  28. <!-- rota-local-client, rota-local-server: LOCAL 센터정보 조회 -->
  29. <select id="findLocalCenter" resultType="java.util.HashMap">
  30. <![CDATA[
  31. SELECT SUBSTR(CENTERID, 1, 10) AS CENTERID,
  32. CENTERINFO AS CENTERINFO,
  33. IPADDRESS AS IPADDRESS,
  34. COMMPORT AS COMMPORT,
  35. DATEXUSER AS DATEXUSER,
  36. DATEXPASSWD AS DATEXPASSWD,
  37. HEARTBEATCYCLE AS HEARTBEATCYCLE,
  38. RESTIME AS RESTIME,
  39. DATAGRAMSIZE AS DATAGRAMSIZE,
  40. TRAFFICYN AS TRAFFICYN,
  41. INCIDENTYN AS INCIDENTYN
  42. FROM CENTER
  43. WHERE CENTERFLAG = 'M'
  44. AND EXEYN = 'Y'
  45. ]]>
  46. </select>
  47. <!-- rota-local-client, moct-local-client: 지역센터에 속한 링크정보만 저장할 경우 -->
  48. <select id="findAllLinkLoc" resultType="java.lang.String">
  49. <![CDATA[
  50. SELECT LINKID AS LINKID
  51. FROM LINK_LOC
  52. ]]>
  53. </select>
  54. <!-- rota-local-client: 센터에서 수신한 링크소통정보를 주기적으로 삭제 -->
  55. <delete id="deleteTrafficCenter">
  56. <![CDATA[
  57. DELETE FROM TRAFFIC_CENTER
  58. WHERE REGDATE < SYSDATE - 15/1440
  59. ]]>
  60. </delete>
  61. <!-- rota-local-client: 센터에서 수신한 로그 정보를 주기적으로 삭제 -->
  62. <delete id="deleteRcvLog">
  63. <![CDATA[
  64. DELETE FROM RCV_LOG
  65. WHERE LOGDATE < SYSDATE - 60
  66. ]]>
  67. </delete>
  68. <!-- rota-local-client: 센터에서 수신한 로그 정보를 저장 -->
  69. <insert id = "insertRcvLog" parameterType="java.util.HashMap">
  70. <![CDATA[
  71. INSERT INTO RCV_LOG(LOGDATE, INFOKIND, TOCENTERID, DUPKEY, FROMCENTERID, DATACNT)
  72. VALUES(SYSDATE, #{INFOKIND}, #{TOCENTERID}, #{DUPKEY}, #{FROMCENTERID}, #{DATACNT})
  73. ]]>
  74. </insert>
  75. <!-- rota-local-client: 센터에서 수신한 돌발 정보를 저장 -->
  76. <insert id="mergeIncidentCenter" parameterType="java.util.HashMap">
  77. <![CDATA[
  78. MERGE INTO INCIDENT_CENTER X
  79. USING (SELECT #{INCIDENTID} AS INCIDENTID,
  80. SYSDATE AS LOGDATE,
  81. TO_DATE(SUBSTR(#{REPORTDATE}, 1, 14), 'YYYYMMDDHH24MISS') AS REPORTDATE,
  82. #{LINKID} AS LINKID,
  83. #{CENTERID} AS CENTERID,
  84. TO_DATE(SUBSTR(#{STARTDATE}, 1, 14), 'YYYYMMDDHH24MISS') AS STARTDATE,
  85. TO_DATE(SUBSTR(#{ENDDATE}, 1, 14), 'YYYYMMDDHH24MISS') AS ENDDATE,
  86. #{TRAFFICGRADE} AS TRAFFICGRADE,
  87. #{TROUBLEGRADE} AS TROUBLEGRADE,
  88. #{INCIDENTTITLE} AS INCIDENTTITLE,
  89. #{INCIDENTINFO} AS INCIDENTINFO,
  90. #{INCIDENTCODE} AS INCIDENTCODE,
  91. #{INCIDENTSUBCODE} AS INCIDENTSUBCODE,
  92. #{LOCATION} AS LOCATION,
  93. TO_NUMBER(#{COORDX}) AS COORDX,
  94. TO_NUMBER(#{COORDY}) AS COORDY
  95. FROM DUAL WHERE #{LINKID} IS NOT NULL ) Y
  96. ON (X.INCIDENTID = Y.INCIDENTID)
  97. WHEN MATCHED THEN
  98. UPDATE SET
  99. X.LOGDATE = Y.LOGDATE,
  100. X.REPORTDATE = Y.REPORTDATE,
  101. X.LINKID = Y.LINKID,
  102. X.CENTERID = Y.CENTERID,
  103. X.STARTDATE = Y.STARTDATE,
  104. X.ENDDATE = Y.ENDDATE,
  105. X.TRAFFICGRADE = Y.TRAFFICGRADE,
  106. X.TROUBLEGRADE = Y.TROUBLEGRADE,
  107. X.INCIDENTTITLE = Y.INCIDENTTITLE,
  108. X.INCIDENTINFO = Y.INCIDENTINFO,
  109. X.INCIDENTCODE = Y.INCIDENTCODE,
  110. X.INCIDENTSUBCODE = Y.INCIDENTSUBCODE,
  111. X.LOCATION = Y.LOCATION,
  112. X.COORDX = Y.COORDX,
  113. X.COORDY = Y.COORDY
  114. WHEN NOT MATCHED THEN
  115. INSERT (X.INCIDENTID, X.LOGDATE, X.REPORTDATE,
  116. X.LINKID, X.CENTERID, X.STARTDATE,
  117. X.ENDDATE, X.TRAFFICGRADE, X.TROUBLEGRADE,
  118. X.INCIDENTTITLE, X.INCIDENTINFO, X.INCIDENTCODE,
  119. X.INCIDENTSUBCODE, X.LOCATION, X.COORDX,
  120. X.COORDY)
  121. VALUES (Y.INCIDENTID, Y.LOGDATE, Y.REPORTDATE,
  122. Y.LINKID, Y.CENTERID, Y.STARTDATE,
  123. Y.ENDDATE, Y.TRAFFICGRADE, Y.TROUBLEGRADE,
  124. Y.INCIDENTTITLE, Y.INCIDENTINFO, Y.INCIDENTCODE,
  125. Y.INCIDENTSUBCODE, Y.LOCATION, Y.COORDX,
  126. Y.COORDY)
  127. ]]>
  128. </insert>
  129. <!-- rota-local-client: 센터에서 수신한 링크소통정보를 저장 -->
  130. <insert id="mergeTrafficCenter" parameterType="java.util.HashMap">
  131. <![CDATA[
  132. MERGE INTO TRAFFIC_CENTER X
  133. USING (SELECT #{LINKID} AS LINKID,
  134. DECODE(#{MISSVALUETYPE}, '0', 'R', 'U') AS MISSVALUETYPE,
  135. TO_DATE(SUBSTR(#{REGDATE}, 1, 14), 'YYYYMMDDHH24MISS') AS REGDATE,
  136. 1 AS LINKLEVEL,
  137. TO_NUMBER(#{SPEED}) AS SPEED,
  138. TO_NUMBER(#{TRAVELTIME}) AS TRAVELTIME,
  139. #{TRAFFICGRADE} AS TRAFFICGRADE,
  140. DECODE(#{DATARESTYPE}, '0', 'P', 'S') AS DATARESTYPE
  141. FROM DUAL) Y
  142. ON (X.LINKID = Y.LINKID)
  143. WHEN MATCHED THEN
  144. UPDATE SET
  145. X.MISSVALUETYPE = Y.MISSVALUETYPE,
  146. X.REGDATE = Y.REGDATE,
  147. X.LINKLEVEL = Y.LINKLEVEL,
  148. X.SPEED = Y.SPEED,
  149. X.TRAVELTIME = Y.TRAVELTIME,
  150. X.TRAFFICGRADE = Y.TRAFFICGRADE,
  151. X.DATARESTYPE = Y.DATARESTYPE
  152. WHEN NOT MATCHED THEN
  153. INSERT (X.LINKID, X.MISSVALUETYPE, X.REGDATE,
  154. X.LINKLEVEL, X.SPEED, X.TRAVELTIME,
  155. X.TRAFFICGRADE, X.DATARESTYPE)
  156. VALUES (Y.LINKID, Y.MISSVALUETYPE, Y.REGDATE,
  157. Y.LINKLEVEL, Y.SPEED, Y.TRAVELTIME,
  158. Y.TRAFFICGRADE, Y.DATARESTYPE)
  159. ]]>
  160. </insert>
  161. <!-- rota-local-server: 지역센터의 링크소통정보가 갱신 되었는지 조회 -->
  162. <select id="findCheckTrafficLoc" parameterType="java.lang.String" resultType="java.lang.String">
  163. <![CDATA[
  164. SELECT NVL(TO_CHAR(MIN(REGDATE), 'YYYYMMDDHH24MISS'), #{BASETIME}) AS REGDATE
  165. FROM TRAFFIC_LOC
  166. WHERE REGDATE > TO_DATE(#{BASETIME}, 'YYYYMMDDHH24MISS')
  167. ]]>
  168. </select>
  169. <!-- rota-local-server: 지역센터의 링크소통정보를 조회 -->
  170. <select id="findAllTrafficLoc" parameterType="java.lang.String" resultType="com.utic.its.common.entity.TbTrafficCenter" fetchSize="1000">
  171. <![CDATA[
  172. SELECT LINKID AS linkId,
  173. NVL(SPEED, 0) AS speed,
  174. NVL(TRAVELTIME, 0) AS travelTime,
  175. TO_NUMBER(NVL(TRAFFICGRADE, '0')) AS trafficGrade
  176. FROM TRAFFIC_LOC
  177. WHERE REGDATE > TO_DATE(#{BASETIME}, 'YYYYMMDDHH24MISS')
  178. AND LINKLEVEL = 1
  179. AND MISSVALUETYPE IN ('R', 'D')
  180. AND SPEED > 0
  181. ORDER BY LINKID
  182. ]]>
  183. </select>
  184. <!-- rota-local-server: 센터로 전송한 전송 로그 정보를 주기적으로 삭제 -->
  185. <delete id="deleteSndLog">
  186. <![CDATA[
  187. DELETE FROM SND_LOG
  188. WHERE LOGDATE < SYSDATE - 60/1440
  189. ]]>
  190. </delete>
  191. <!-- rota-local-server: 센터로 전송한 전송 로그 정보를 저장 -->
  192. <insert id = "insertSndLog" parameterType="java.util.HashMap">
  193. <![CDATA[
  194. INSERT INTO SND_LOG(LOGDATE, INFOKIND, TOCENTERID, FROMCENTERID, DATACNT)
  195. VALUES(SYSDATE, #{INFOKIND}, #{TOCENTERID}, #{FROMCENTERID}, #{DATACNT})
  196. ]]>
  197. </insert>
  198. <!-- moct-local-client: UTIC MOCT 센터정보 조회 -->
  199. <select id="findMoctUtisCenter" resultType="java.util.HashMap">
  200. <![CDATA[
  201. SELECT SUBSTR(CENTERID, 1, 10) AS CENTERID,
  202. CENTERINFO AS CENTERINFO,
  203. IPADDRESS AS IPADDRESS,
  204. COMMPORT AS COMMPORT,
  205. DATEXUSER AS DATEXUSER,
  206. DATEXPASSWD AS DATEXPASSWD,
  207. HEARTBEATCYCLE AS HEARTBEATCYCLE,
  208. RESTIME AS RESTIME,
  209. DATAGRAMSIZE AS DATAGRAMSIZE
  210. FROM CENTER_MOCT
  211. WHERE CENTERFLAG = 'L'
  212. AND EXEYN = 'Y'
  213. ]]>
  214. </select>
  215. <!-- moct-local-client: LOCAL MOCT 센터정보 조회 -->
  216. <select id="findMoctLocalCenter" resultType="java.util.HashMap">
  217. <![CDATA[
  218. SELECT SUBSTR(CENTERID, 1, 10) AS CENTERID,
  219. CENTERINFO AS CENTERINFO,
  220. IPADDRESS AS IPADDRESS,
  221. COMMPORT AS COMMPORT,
  222. DATEXUSER AS DATEXUSER,
  223. DATEXPASSWD AS DATEXPASSWD,
  224. HEARTBEATCYCLE AS HEARTBEATCYCLE,
  225. RESTIME AS RESTIME,
  226. DATAGRAMSIZE AS DATAGRAMSIZE
  227. FROM CENTER_MOCT
  228. WHERE CENTERFLAG = 'M'
  229. AND EXEYN = 'Y'
  230. ]]>
  231. </select>
  232. <!-- moct-local-client: 민간 교통정보 수신 로그를 주기적으로 삭제 -->
  233. <delete id="deleteRcvLogMoct">
  234. <![CDATA[
  235. DELETE FROM RCV_LOG_MOCT
  236. WHERE LOGDATE < SYSDATE - 60
  237. ]]>
  238. </delete>
  239. <!-- moct-local-client: 민간 교통정보 수신 로그를 저장 -->
  240. <insert id = "insertRcvLogMoct" parameterType="java.util.HashMap">
  241. <![CDATA[
  242. INSERT INTO RCV_LOG_MOCT(LOGDATE, INFOKIND, TOCENTERID, DUPKEY, FROMCENTERID, DATACNT)
  243. VALUES(SYSDATE, #{INFOKIND}, #{TOCENTERID}, #{DUPKEY}, #{FROMCENTERID}, #{DATACNT})
  244. ]]>
  245. </insert>
  246. <!-- moct-local-client: 민간 교통정보를 주기적으로 삭제 -->
  247. <delete id="deleteTrafficMoct">
  248. <![CDATA[
  249. DELETE FROM TRAFFIC_MOCT
  250. WHERE REGDATE < SYSDATE - 15/1440
  251. ]]>
  252. </delete>
  253. <!-- moct-local-client: 수신한 민간 교통정보를 저장 -->
  254. <insert id="mergeTrafficMoct" parameterType="java.util.HashMap">
  255. <![CDATA[
  256. MERGE INTO TRAFFIC_MOCT X
  257. USING (SELECT #{LINKID} AS LINKID,
  258. DECODE(#{MISSVALUETYPE}, '0', 'R', 'U') AS MISSVALUETYPE,
  259. TO_DATE(SUBSTR(#{REGDATE}, 1, 14), 'YYYYMMDDHH24MISS') AS REGDATE,
  260. 1 AS LINKLEVEL,
  261. TO_NUMBER(#{SPEED}) AS SPEED,
  262. TO_NUMBER(#{TRAVELTIME}) AS TRAVELTIME,
  263. #{TRAFFICGRADE} AS TRAFFICGRADE,
  264. DECODE(#{DATARESTYPE}, '0', 'P', 'S') AS DATARESTYPE
  265. FROM DUAL WHERE #{LINKID} IS NOT NULL ) Y
  266. ON (X.LINKID = Y.LINKID)
  267. WHEN MATCHED THEN
  268. UPDATE SET
  269. X.MISSVALUETYPE = Y.MISSVALUETYPE,
  270. X.REGDATE = Y.REGDATE,
  271. X.LINKLEVEL = Y.LINKLEVEL,
  272. X.SPEED = Y.SPEED,
  273. X.TRAVELTIME = Y.TRAVELTIME,
  274. X.TRAFFICGRADE = Y.TRAFFICGRADE,
  275. X.DATARESTYPE = Y.DATARESTYPE
  276. WHEN NOT MATCHED THEN
  277. INSERT (X.LINKID, X.MISSVALUETYPE, X.REGDATE,
  278. X.LINKLEVEL, X.SPEED, X.TRAVELTIME,
  279. X.TRAFFICGRADE, X.DATARESTYPE)
  280. VALUES (Y.LINKID, Y.MISSVALUETYPE, Y.REGDATE,
  281. Y.LINKLEVEL, Y.SPEED, Y.TRAVELTIME,
  282. Y.TRAFFICGRADE, Y.DATARESTYPE)
  283. ]]>
  284. </insert>
  285. </mapper>