123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.utic.its.local.dao.mapper.LocalApplicationMapper">
- <!--
- : 지역센터의 데이터베이스 상황에 따라 SQL 문을 수정하여야 할 수 있습니다.
- : SQL 문을 수정할 경우 SQL 의 컬럼명 및 파라미터의 대소문자를 비교하므로 모두 대문자로 정확히 작성 하여야 합니다.
- : 또한 SQL 문의 id 값은 변경하여서는 안되며 SQL 문만 변경하여야 합니다.
- -->
- <!-- rota-local-client, rota-local-server: UTIC 센터정보 조회 -->
- <select id="findUticCenter" resultType="java.util.HashMap">
- <![CDATA[
- SELECT SUBSTR(CENTERID, 1, 10) AS CENTERID,
- CENTERINFO AS CENTERINFO,
- IPADDRESS AS IPADDRESS,
- COMMPORT AS COMMPORT,
- DATEXUSER AS DATEXUSER,
- DATEXPASSWD AS DATEXPASSWD,
- HEARTBEATCYCLE AS HEARTBEATCYCLE,
- RESTIME AS RESTIME,
- DATAGRAMSIZE AS DATAGRAMSIZE,
- TRAFFICYN AS TRAFFICYN,
- INCIDENTYN AS INCIDENTYN
- FROM CENTER
- WHERE CENTERFLAG = 'L'
- AND EXEYN = 'Y'
- ]]>
- </select>
- <!-- rota-local-client, rota-local-server: LOCAL 센터정보 조회 -->
- <select id="findLocalCenter" resultType="java.util.HashMap">
- <![CDATA[
- SELECT SUBSTR(CENTERID, 1, 10) AS CENTERID,
- CENTERINFO AS CENTERINFO,
- IPADDRESS AS IPADDRESS,
- COMMPORT AS COMMPORT,
- DATEXUSER AS DATEXUSER,
- DATEXPASSWD AS DATEXPASSWD,
- HEARTBEATCYCLE AS HEARTBEATCYCLE,
- RESTIME AS RESTIME,
- DATAGRAMSIZE AS DATAGRAMSIZE,
- TRAFFICYN AS TRAFFICYN,
- INCIDENTYN AS INCIDENTYN
- FROM CENTER
- WHERE CENTERFLAG = 'M'
- AND EXEYN = 'Y'
- ]]>
- </select>
- <!-- rota-local-client, moct-local-client: 지역센터에 속한 링크정보만 저장할 경우 -->
- <select id="findAllLinkLoc" resultType="java.lang.String">
- <![CDATA[
- SELECT LINKID AS LINKID
- FROM LINK_LOC
- ]]>
- </select>
- <!-- rota-local-client: 센터에서 수신한 링크소통정보를 주기적으로 삭제 -->
- <delete id="deleteTrafficCenter">
- <![CDATA[
- DELETE FROM TRAFFIC_CENTER
- WHERE REGDATE < SYSDATE - 15/1440
- ]]>
- </delete>
- <!-- rota-local-client: 센터에서 수신한 로그 정보를 주기적으로 삭제 -->
- <delete id="deleteRcvLog">
- <![CDATA[
- DELETE FROM RCV_LOG
- WHERE LOGDATE < SYSDATE - 60
- ]]>
- </delete>
- <!-- rota-local-client: 센터에서 수신한 로그 정보를 저장 -->
- <insert id = "insertRcvLog" parameterType="java.util.HashMap">
- <![CDATA[
- INSERT INTO RCV_LOG(LOGDATE, INFOKIND, TOCENTERID, DUPKEY, FROMCENTERID, DATACNT)
- VALUES(SYSDATE, #{INFOKIND}, #{TOCENTERID}, #{DUPKEY}, #{FROMCENTERID}, #{DATACNT})
- ]]>
- </insert>
- <!-- rota-local-client: 센터에서 수신한 돌발 정보를 저장 -->
- <insert id="mergeIncidentCenter" parameterType="java.util.HashMap">
- <![CDATA[
- MERGE INTO INCIDENT_CENTER X
- USING (SELECT #{INCIDENTID} AS INCIDENTID,
- SYSDATE AS LOGDATE,
- TO_DATE(SUBSTR(#{REPORTDATE}, 1, 14), 'YYYYMMDDHH24MISS') AS REPORTDATE,
- #{LINKID} AS LINKID,
- #{CENTERID} AS CENTERID,
- TO_DATE(SUBSTR(#{STARTDATE}, 1, 14), 'YYYYMMDDHH24MISS') AS STARTDATE,
- TO_DATE(SUBSTR(#{ENDDATE}, 1, 14), 'YYYYMMDDHH24MISS') AS ENDDATE,
- #{TRAFFICGRADE} AS TRAFFICGRADE,
- #{TROUBLEGRADE} AS TROUBLEGRADE,
- #{INCIDENTTITLE} AS INCIDENTTITLE,
- #{INCIDENTINFO} AS INCIDENTINFO,
- #{INCIDENTCODE} AS INCIDENTCODE,
- #{INCIDENTSUBCODE} AS INCIDENTSUBCODE,
- #{LOCATION} AS LOCATION,
- TO_NUMBER(#{COORDX}) AS COORDX,
- TO_NUMBER(#{COORDY}) AS COORDY
- FROM DUAL WHERE #{LINKID} IS NOT NULL ) Y
- ON (X.INCIDENTID = Y.INCIDENTID)
- WHEN MATCHED THEN
- UPDATE SET
- X.LOGDATE = Y.LOGDATE,
- X.REPORTDATE = Y.REPORTDATE,
- X.LINKID = Y.LINKID,
- X.CENTERID = Y.CENTERID,
- X.STARTDATE = Y.STARTDATE,
- X.ENDDATE = Y.ENDDATE,
- X.TRAFFICGRADE = Y.TRAFFICGRADE,
- X.TROUBLEGRADE = Y.TROUBLEGRADE,
- X.INCIDENTTITLE = Y.INCIDENTTITLE,
- X.INCIDENTINFO = Y.INCIDENTINFO,
- X.INCIDENTCODE = Y.INCIDENTCODE,
- X.INCIDENTSUBCODE = Y.INCIDENTSUBCODE,
- X.LOCATION = Y.LOCATION,
- X.COORDX = Y.COORDX,
- X.COORDY = Y.COORDY
- WHEN NOT MATCHED THEN
- INSERT (X.INCIDENTID, X.LOGDATE, X.REPORTDATE,
- X.LINKID, X.CENTERID, X.STARTDATE,
- X.ENDDATE, X.TRAFFICGRADE, X.TROUBLEGRADE,
- X.INCIDENTTITLE, X.INCIDENTINFO, X.INCIDENTCODE,
- X.INCIDENTSUBCODE, X.LOCATION, X.COORDX,
- X.COORDY)
- VALUES (Y.INCIDENTID, Y.LOGDATE, Y.REPORTDATE,
- Y.LINKID, Y.CENTERID, Y.STARTDATE,
- Y.ENDDATE, Y.TRAFFICGRADE, Y.TROUBLEGRADE,
- Y.INCIDENTTITLE, Y.INCIDENTINFO, Y.INCIDENTCODE,
- Y.INCIDENTSUBCODE, Y.LOCATION, Y.COORDX,
- Y.COORDY)
- ]]>
- </insert>
- <!-- rota-local-client: 센터에서 수신한 링크소통정보를 저장 -->
- <insert id="mergeTrafficCenter" parameterType="java.util.HashMap">
- <![CDATA[
- MERGE INTO TRAFFIC_CENTER X
- USING (SELECT #{LINKID} AS LINKID,
- DECODE(#{MISSVALUETYPE}, '0', 'R', 'U') AS MISSVALUETYPE,
- TO_DATE(SUBSTR(#{REGDATE}, 1, 14), 'YYYYMMDDHH24MISS') AS REGDATE,
- 1 AS LINKLEVEL,
- TO_NUMBER(#{SPEED}) AS SPEED,
- TO_NUMBER(#{TRAVELTIME}) AS TRAVELTIME,
- #{TRAFFICGRADE} AS TRAFFICGRADE,
- DECODE(#{DATARESTYPE}, '0', 'P', 'S') AS DATARESTYPE
- FROM DUAL) Y
- ON (X.LINKID = Y.LINKID)
- WHEN MATCHED THEN
- UPDATE SET
- X.MISSVALUETYPE = Y.MISSVALUETYPE,
- X.REGDATE = Y.REGDATE,
- X.LINKLEVEL = Y.LINKLEVEL,
- X.SPEED = Y.SPEED,
- X.TRAVELTIME = Y.TRAVELTIME,
- X.TRAFFICGRADE = Y.TRAFFICGRADE,
- X.DATARESTYPE = Y.DATARESTYPE
- WHEN NOT MATCHED THEN
- INSERT (X.LINKID, X.MISSVALUETYPE, X.REGDATE,
- X.LINKLEVEL, X.SPEED, X.TRAVELTIME,
- X.TRAFFICGRADE, X.DATARESTYPE)
- VALUES (Y.LINKID, Y.MISSVALUETYPE, Y.REGDATE,
- Y.LINKLEVEL, Y.SPEED, Y.TRAVELTIME,
- Y.TRAFFICGRADE, Y.DATARESTYPE)
- ]]>
- </insert>
- <!-- rota-local-server: 지역센터의 링크소통정보가 갱신 되었는지 조회 -->
- <select id="findCheckTrafficLoc" parameterType="java.lang.String" resultType="java.lang.String">
- <![CDATA[
- SELECT NVL(TO_CHAR(MIN(REGDATE), 'YYYYMMDDHH24MISS'), #{BASETIME}) AS REGDATE
- FROM TRAFFIC_LOC
- WHERE REGDATE > TO_DATE(#{BASETIME}, 'YYYYMMDDHH24MISS')
- ]]>
- </select>
- <!-- rota-local-server: 지역센터의 링크소통정보를 조회 -->
- <select id="findAllTrafficLoc" parameterType="java.lang.String" resultType="com.utic.its.common.entity.TbTrafficCenter" fetchSize="1000">
- <![CDATA[
- SELECT LINKID AS linkId,
- NVL(SPEED, 0) AS speed,
- NVL(TRAVELTIME, 0) AS travelTime,
- TO_NUMBER(NVL(TRAFFICGRADE, '0')) AS trafficGrade
- FROM TRAFFIC_LOC
- WHERE REGDATE > TO_DATE(#{BASETIME}, 'YYYYMMDDHH24MISS')
- AND LINKLEVEL = 1
- AND MISSVALUETYPE IN ('R', 'D')
- AND SPEED > 0
- ORDER BY LINKID
- ]]>
- </select>
- <!-- rota-local-server: 센터로 전송한 전송 로그 정보를 주기적으로 삭제 -->
- <delete id="deleteSndLog">
- <![CDATA[
- DELETE FROM SND_LOG
- WHERE LOGDATE < SYSDATE - 60/1440
- ]]>
- </delete>
- <!-- rota-local-server: 센터로 전송한 전송 로그 정보를 저장 -->
- <insert id = "insertSndLog" parameterType="java.util.HashMap">
- <![CDATA[
- INSERT INTO SND_LOG(LOGDATE, INFOKIND, TOCENTERID, FROMCENTERID, DATACNT)
- VALUES(SYSDATE, #{INFOKIND}, #{TOCENTERID}, #{FROMCENTERID}, #{DATACNT})
- ]]>
- </insert>
- <!-- moct-local-client: UTIC MOCT 센터정보 조회 -->
- <select id="findMoctUtisCenter" resultType="java.util.HashMap">
- <![CDATA[
- SELECT SUBSTR(CENTERID, 1, 10) AS CENTERID,
- CENTERINFO AS CENTERINFO,
- IPADDRESS AS IPADDRESS,
- COMMPORT AS COMMPORT,
- DATEXUSER AS DATEXUSER,
- DATEXPASSWD AS DATEXPASSWD,
- HEARTBEATCYCLE AS HEARTBEATCYCLE,
- RESTIME AS RESTIME,
- DATAGRAMSIZE AS DATAGRAMSIZE
- FROM CENTER_MOCT
- WHERE CENTERFLAG = 'L'
- AND EXEYN = 'Y'
- ]]>
- </select>
- <!-- moct-local-client: LOCAL MOCT 센터정보 조회 -->
- <select id="findMoctLocalCenter" resultType="java.util.HashMap">
- <![CDATA[
- SELECT SUBSTR(CENTERID, 1, 10) AS CENTERID,
- CENTERINFO AS CENTERINFO,
- IPADDRESS AS IPADDRESS,
- COMMPORT AS COMMPORT,
- DATEXUSER AS DATEXUSER,
- DATEXPASSWD AS DATEXPASSWD,
- HEARTBEATCYCLE AS HEARTBEATCYCLE,
- RESTIME AS RESTIME,
- DATAGRAMSIZE AS DATAGRAMSIZE
- FROM CENTER_MOCT
- WHERE CENTERFLAG = 'M'
- AND EXEYN = 'Y'
- ]]>
- </select>
- <!-- moct-local-client: 민간 교통정보 수신 로그를 주기적으로 삭제 -->
- <delete id="deleteRcvLogMoct">
- <![CDATA[
- DELETE FROM RCV_LOG_MOCT
- WHERE LOGDATE < SYSDATE - 60
- ]]>
- </delete>
- <!-- moct-local-client: 민간 교통정보 수신 로그를 저장 -->
- <insert id = "insertRcvLogMoct" parameterType="java.util.HashMap">
- <![CDATA[
- INSERT INTO RCV_LOG_MOCT(LOGDATE, INFOKIND, TOCENTERID, DUPKEY, FROMCENTERID, DATACNT)
- VALUES(SYSDATE, #{INFOKIND}, #{TOCENTERID}, #{DUPKEY}, #{FROMCENTERID}, #{DATACNT})
- ]]>
- </insert>
- <!-- moct-local-client: 민간 교통정보를 주기적으로 삭제 -->
- <delete id="deleteTrafficMoct">
- <![CDATA[
- DELETE FROM TRAFFIC_MOCT
- WHERE REGDATE < SYSDATE - 15/1440
- ]]>
- </delete>
- <!-- moct-local-client: 수신한 민간 교통정보를 저장 -->
- <insert id="mergeTrafficMoct" parameterType="java.util.HashMap">
- <![CDATA[
- MERGE INTO TRAFFIC_MOCT X
- USING (SELECT #{LINKID} AS LINKID,
- DECODE(#{MISSVALUETYPE}, '0', 'R', 'U') AS MISSVALUETYPE,
- TO_DATE(SUBSTR(#{REGDATE}, 1, 14), 'YYYYMMDDHH24MISS') AS REGDATE,
- 1 AS LINKLEVEL,
- TO_NUMBER(#{SPEED}) AS SPEED,
- TO_NUMBER(#{TRAVELTIME}) AS TRAVELTIME,
- #{TRAFFICGRADE} AS TRAFFICGRADE,
- DECODE(#{DATARESTYPE}, '0', 'P', 'S') AS DATARESTYPE
- FROM DUAL WHERE #{LINKID} IS NOT NULL ) Y
- ON (X.LINKID = Y.LINKID)
- WHEN MATCHED THEN
- UPDATE SET
- X.MISSVALUETYPE = Y.MISSVALUETYPE,
- X.REGDATE = Y.REGDATE,
- X.LINKLEVEL = Y.LINKLEVEL,
- X.SPEED = Y.SPEED,
- X.TRAVELTIME = Y.TRAVELTIME,
- X.TRAFFICGRADE = Y.TRAFFICGRADE,
- X.DATARESTYPE = Y.DATARESTYPE
- WHEN NOT MATCHED THEN
- INSERT (X.LINKID, X.MISSVALUETYPE, X.REGDATE,
- X.LINKLEVEL, X.SPEED, X.TRAVELTIME,
- X.TRAFFICGRADE, X.DATARESTYPE)
- VALUES (Y.LINKID, Y.MISSVALUETYPE, Y.REGDATE,
- Y.LINKLEVEL, Y.SPEED, Y.TRAVELTIME,
- Y.TRAFFICGRADE, Y.DATARESTYPE)
- ]]>
- </insert>
- </mapper>
|