|
@@ -0,0 +1,368 @@
|
|
|
|
+<?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.its.api.bis.repository.BisWallMapper">
|
|
|
|
+
|
|
|
|
+ <select id="findBusRouteInfo" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.BusRouteInfoDto">
|
|
|
|
+ SELECT A.BUSROUTEID,
|
|
|
|
+ A.BUSROUTENAME,
|
|
|
|
+ SUBSTR(B.BASICCODE,0,1) AS BUSROUTETYPE,
|
|
|
|
+ B.BASICCODEINFO AS BUSROUTETYPENAME
|
|
|
|
+ FROM BUS_ROUTE A, CODE_DEFINE B
|
|
|
|
+ WHERE B.CODEKIND = 'A016'
|
|
|
|
+ AND A.BUSROUTETYPE = B.BASICCODE
|
|
|
|
+ <if test='routeName != null and routeName != ""'>
|
|
|
|
+ AND BUSROUTENAME LIKE '%' || #{routeName} || '%'
|
|
|
|
+ </if>
|
|
|
|
+ ORDER BY BUSROUTENAME
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+ <select id="findAllDrawBusStation" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.DrawBusStationDto">
|
|
|
|
+ SELECT
|
|
|
|
+ T1.STATIONID,
|
|
|
|
+ T1.STATIONNAME,
|
|
|
|
+ T2.STATIONORDER,
|
|
|
|
+ T2.BUSROUTENAME,
|
|
|
|
+ T1.STATIONTYPE,
|
|
|
|
+ T1.CENTERFLAG,
|
|
|
|
+ T1.COORDX,
|
|
|
|
+ T1.COORDY,
|
|
|
|
+ T2.BUSROUTELENGTH,
|
|
|
|
+ T2.STARTSTATIONNAME,
|
|
|
|
+ T2.ENDSTATIONNAME,
|
|
|
|
+ T1.LINKLEFTLENGTH,
|
|
|
|
+ T1.LINKRIGHTLENGTH,
|
|
|
|
+ T2.TURNSEQ,
|
|
|
|
+ T2.TURNSRVFLAG
|
|
|
|
+ FROM
|
|
|
|
+ BUS_STATION T1,
|
|
|
|
+ (SELECT
|
|
|
|
+ B.STATIONID,
|
|
|
|
+ B.STATIONORDER,
|
|
|
|
+ A.BUSROUTENAME,
|
|
|
|
+ A.BUSROUTELENGTH,
|
|
|
|
+ A.STARTSTATIONNAME,
|
|
|
|
+ A.ENDSTATIONNAME,
|
|
|
|
+ A.TURNSEQ,
|
|
|
|
+ A.TURNSRVFLAG
|
|
|
|
+ FROM
|
|
|
|
+ BUS_ROUTE A,
|
|
|
|
+ BUSROUTE_STATION B
|
|
|
|
+ WHERE
|
|
|
|
+ A.BUSROUTEID = #{busRouteId}
|
|
|
|
+ AND B.USEFLAG = '1'
|
|
|
|
+ AND A.BUSROUTEID = B.BUSROUTEID
|
|
|
|
+ ORDER BY
|
|
|
|
+ B.STATIONORDER) T2
|
|
|
|
+ WHERE
|
|
|
|
+ T1.STATIONID = T2.STATIONID
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+ <select id="findAllDrawBusRoute" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.DrawBusRouteDto">
|
|
|
|
+ SELECT
|
|
|
|
+ A.BUSROUTEID,
|
|
|
|
+ A.SECTIONID,
|
|
|
|
+ B.INFOUNITID,
|
|
|
|
+ A.SECTIONORDER,
|
|
|
|
+ B.CONFIGSEQ,
|
|
|
|
+ C.CONFIGSEQ AS LINKSEQ,
|
|
|
|
+ C.COORDX,
|
|
|
|
+ C.COORDY,
|
|
|
|
+ D.MAX_SECTION
|
|
|
|
+ FROM
|
|
|
|
+ BUSROUTE_SECTION A,
|
|
|
|
+ BUSSECTION_INFOUNIT B,
|
|
|
|
+ INFOUNIT_SUBSECTION C,
|
|
|
|
+ (
|
|
|
|
+ SELECT BUSROUTEID,MAX(SECTIONORDER) MAX_SECTION
|
|
|
|
+ FROM BUSROUTE_SECTION
|
|
|
|
+ GROUP BY BUSROUTEID
|
|
|
|
+ ) D
|
|
|
|
+ WHERE
|
|
|
|
+ A.BUSROUTEID = #{busRouteId}
|
|
|
|
+ AND A.SECTIONID = B.SECTIONID
|
|
|
|
+ AND B.INFOUNITID = C.INFOUNITID
|
|
|
|
+ AND A.BUSROUTEID = D.BUSROUTEID
|
|
|
|
+ ORDER BY
|
|
|
|
+ A.SECTIONORDER,
|
|
|
|
+ B.CONFIGSEQ,
|
|
|
|
+ C.CONFIGSEQ
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+ <select id="findAllBusVehicleList" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.BusVehicleListDto">
|
|
|
|
+ SELECT A.VEHID,
|
|
|
|
+ A.PLATENO
|
|
|
|
+ FROM VEHICLE A, BUS_RUNSTATUS B
|
|
|
|
+ WHERE A.VEHID = B.VEHID
|
|
|
|
+ AND A.USEFLAG = '1'
|
|
|
|
+ AND TO_CHAR(B.COLLECTDATE, 'YYYY/MM/DD') >= TO_CHAR(SYSDATE - 30/(1440*60),'YYYY/MM/DD')
|
|
|
|
+ <if test='plateNo != null and plateNo != ""'>
|
|
|
|
+ AND A.PLATENO LIKE '%'|| #{plateNo} || '%'
|
|
|
|
+ </if>
|
|
|
|
+ ORDER BY A.PLATENO
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+ <select id="findAllDrawBusMarker" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.DrawBusMarkerDto">
|
|
|
|
+ SELECT T1.VEHID,
|
|
|
|
+ T1.PLATENO,
|
|
|
|
+ T2.BUSROUTENAME,
|
|
|
|
+ T1.VEHTYPE,
|
|
|
|
+ T1.USEFLAG,
|
|
|
|
+ TO_CHAR(T2.COLLECTDATE,'YYYY/MM/DD HH24:MI:SS') AS COLLECTDATE,
|
|
|
|
+ T2.STATIONNAME,
|
|
|
|
+ T2.EVENTCODE,
|
|
|
|
+ T2.COORDX,
|
|
|
|
+ T2.COORDY
|
|
|
|
+ FROM VEHICLE T1,
|
|
|
|
+ (SELECT A.VEHID,
|
|
|
|
+ A.BUSROUTEID,
|
|
|
|
+ D.BUSROUTENAME,
|
|
|
|
+ A.COLLECTDATE,
|
|
|
|
+ A.LOCATIONID,
|
|
|
|
+ B.STATIONID,
|
|
|
|
+ B.STATIONNAME,
|
|
|
|
+ B.STATIONTYPE,
|
|
|
|
+ B.COORDX,
|
|
|
|
+ B.COORDY,
|
|
|
|
+ (SELECT D.BASICCODEINFO FROM CODE_DEFINE D WHERE D.CODEKIND = 'A048' AND C.EVENTCODE = D.BASICCODE) AS EVENTCODE
|
|
|
|
+ FROM BUS_RUNSTATUS A, BUS_STATION B,
|
|
|
|
+ (
|
|
|
|
+ SELECT VEHID,
|
|
|
|
+ BUSROUTEID,
|
|
|
|
+ EVENTCODE
|
|
|
|
+ FROM BUS_EVENTINFO
|
|
|
|
+ WHERE COLLECTDATE >= SYSDATE - 30/(1440*60)
|
|
|
|
+ ) C,
|
|
|
|
+ BUS_ROUTE D
|
|
|
|
+ WHERE C.VEHID = #{vehId}
|
|
|
|
+ AND A.LOCATIONID = B.STATIONID
|
|
|
|
+ AND A.VEHID = C.VEHID
|
|
|
|
+ AND A.BUSROUTEID = C.BUSROUTEID
|
|
|
|
+ AND A.BUSROUTEID = D.BUSROUTEID
|
|
|
|
+ ) T2
|
|
|
|
+ WHERE T1.VEHID = T2.VEHID
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+ <select id="findAllDrawBusVehicle" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.DrawBusVehicleDto">
|
|
|
|
+ SELECT T1.VEHID,
|
|
|
|
+ T1.PLATENO,
|
|
|
|
+ T2.BUSROUTENAME,
|
|
|
|
+ T2.STATIONID,
|
|
|
|
+ T1.VEHTYPE,
|
|
|
|
+ T1.USEFLAG,
|
|
|
|
+ TO_CHAR(T2.COLLECTDATE,'YYYY/MM/DD HH24:MI:SS') AS COLLECTDATE,
|
|
|
|
+ T2.STATIONNAME,
|
|
|
|
+ T2.EVENTCODE,
|
|
|
|
+ T2.COORDX,
|
|
|
|
+ T2.COORDY
|
|
|
|
+ FROM VEHICLE T1,
|
|
|
|
+ (SELECT A.VEHID,
|
|
|
|
+ A.BUSROUTEID,
|
|
|
|
+ D.BUSROUTENAME,
|
|
|
|
+ A.COLLECTDATE,
|
|
|
|
+ A.LOCATIONID,
|
|
|
|
+ B.STATIONID,
|
|
|
|
+ B.STATIONNAME,
|
|
|
|
+ B.STATIONTYPE,
|
|
|
|
+ B.COORDX,
|
|
|
|
+ B.COORDY,
|
|
|
|
+ (SELECT D.BASICCODEINFO FROM CODE_DEFINE D WHERE D.CODEKIND = 'A048' AND C.EVENTCODE = D.BASICCODE) AS EVENTCODE
|
|
|
|
+ FROM BUS_RUNSTATUS A, BUS_STATION B,
|
|
|
|
+ (
|
|
|
|
+ SELECT VEHID,
|
|
|
|
+ BUSROUTEID,
|
|
|
|
+ EVENTCODE
|
|
|
|
+ FROM BUS_EVENTINFO
|
|
|
|
+ WHERE COLLECTDATE >= SYSDATE - 30/(1440*60)
|
|
|
|
+ ) C,
|
|
|
|
+ BUS_ROUTE D
|
|
|
|
+ WHERE A.BUSROUTEID = #{busRouteId}
|
|
|
|
+ AND A.LOCATIONID = B.STATIONID
|
|
|
|
+ AND A.VEHID = C.VEHID
|
|
|
|
+ AND A.BUSROUTEID = C.BUSROUTEID
|
|
|
|
+ AND A.BUSROUTEID = D.BUSROUTEID
|
|
|
|
+ ) T2
|
|
|
|
+ WHERE T1.VEHID = T2.VEHID
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+ <select id="findAllBitList" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.BitInfoDto">
|
|
|
|
+ SELECT C.BITID,
|
|
|
|
+ C.WCOMMTYPE,
|
|
|
|
+ C.BITNAME,
|
|
|
|
+ NVL(B.ERRCNT, 0) AS ERRCNT,
|
|
|
|
+ C.BITTYPE,
|
|
|
|
+ C.COORDX,
|
|
|
|
+ C.COORDY,
|
|
|
|
+ DECODE(TO_CHAR(B.RECORDTIMESTAMP,'HH24MISS'),'030000',TO_DATE('20000101000000','YYYYMMDDHH24MISS'),null,TO_DATE('20000101000000','YYYYMMDDHH24MISS'),B.RECORDTIMESTAMP) AS RECORDTIMESTAMP,
|
|
|
|
+ DECODE(TO_CHAR(B.COMMERR,'HH24MISS'),'030000',TO_DATE('20000101000000','YYYYMMDDHH24MISS'),null,TO_DATE('20000101000000','YYYYMMDDHH24MISS'),B.COMMERR) AS COMMERR,
|
|
|
|
+ DECODE(TO_CHAR(B.CTLERR,'HH24MISS'),'030000',TO_DATE('20000101000000','YYYYMMDDHH24MISS'),null,TO_DATE('20000101000000','YYYYMMDDHH24MISS'),B.CTLERR) AS CTLERR,
|
|
|
|
+ TEMPERATURE,
|
|
|
|
+ HUMIDITY,
|
|
|
|
+ FANSTATUS,
|
|
|
|
+ FANOPSTATUS,
|
|
|
|
+ DECODE(B.WCOMMSTATUS,NULL,'CMS0',0,'CMS0',1,'CMS1') AS WCOMMSTATUS,
|
|
|
|
+ DECODE(B.WLCOMMSTATUS,NULL,'CMS0',0,'CMS0',1,'CMS1') AS WLCOMMSTATUS,
|
|
|
|
+ HEATEROPSTATUS,
|
|
|
|
+ CAMERASTATUS,
|
|
|
|
+ DOORSTATUS,
|
|
|
|
+ MONITORSTATUS,
|
|
|
|
+ MEMORYCAPACITY,
|
|
|
|
+ LCDLIGHT,
|
|
|
|
+ ILLUMINATION,
|
|
|
|
+ SOUNDVOLUME
|
|
|
|
+ FROM BIT C,
|
|
|
|
+ (SELECT /*+ INDEX_DESC(CH BITSTATUS_HISTORY_PK) */
|
|
|
|
+ A.COMMERR, A.CTLERR, A.ERRCNT, CH.*
|
|
|
|
+ FROM BITSTATUS_HISTORY CH,
|
|
|
|
+ (SELECT /*+ INDEX_DESC(BITSTATUS_HISTORY BITSTATUS_HISTORY_PK) */
|
|
|
|
+ BITID, MAX(RECORDDATE) RECORDDATE,
|
|
|
|
+ MAX(RECORDTIMESTAMP) RECORDTIMESTAMP,
|
|
|
|
+ SUM(DECODE(TO_CHAR(RECORDTIMESTAMP,'HH24MISS'),'030000',0,
|
|
|
|
+ CASE WHEN WCOMMSTATUS = '0' AND (WLCOMMSTATUS IS NULL
|
|
|
|
+ OR WLCOMMSTATUS = '0') THEN 1
|
|
|
|
+ ELSE 0 END)) ERRCNT,
|
|
|
|
+ MAX(CASE WHEN WCOMMSTATUS = '0' AND (WLCOMMSTATUS IS NULL
|
|
|
|
+ OR WLCOMMSTATUS = '0') THEN RECORDTIMESTAMP
|
|
|
|
+ ELSE TO_DATE('20000101000000','YYYYMMDDHH24MISS') END) COMMERR,
|
|
|
|
+ MAX(DECODE(CAMERASTATUS,'0',RECORDTIMESTAMP,
|
|
|
|
+ TO_DATE('20000101000000','YYYYMMDDHH24MISS'))) CTLERR
|
|
|
|
+ FROM BITSTATUS_HISTORY
|
|
|
|
+ WHERE RECORDDATE >= TO_DATE(TO_CHAR(SYSDATE - 1,'YYYYMMDD') || '030000' ,'YYYYMMDDHH24MISS')
|
|
|
|
+ AND RECORDTIMESTAMP >= TO_TIMESTAMP(TO_CHAR(SYSDATE - 1,'YYYYMMDD') || '030000','YYYYMMDDHH24MISS')
|
|
|
|
+ GROUP BY BITID) A
|
|
|
|
+ WHERE CH.RECORDDATE = A.RECORDDATE
|
|
|
|
+ AND CH.RECORDTIMESTAMP = A.RECORDTIMESTAMP
|
|
|
|
+ AND CH.BITID = A.BITID) B
|
|
|
|
+ WHERE C.BITID = B.BITID(+) AND C.USEFLAG = '1'
|
|
|
|
+ ORDER BY C.BITNAME
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+ <select id="findAllBitSearchList" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.BitInfoDto">
|
|
|
|
+ SELECT C.BITID,
|
|
|
|
+ C.WCOMMTYPE,
|
|
|
|
+ C.BITNAME,
|
|
|
|
+ NVL(B.ERRCNT, 0) AS ERRCNT,
|
|
|
|
+ C.BITTYPE,
|
|
|
|
+ C.COORDX,
|
|
|
|
+ C.COORDY,
|
|
|
|
+ DECODE(TO_CHAR(B.RECORDTIMESTAMP,'HH24MISS'),'030000',TO_DATE('20000101000000','YYYYMMDDHH24MISS'),null,TO_DATE('20000101000000','YYYYMMDDHH24MISS'),B.RECORDTIMESTAMP) AS RECORDTIMESTAMP,
|
|
|
|
+ DECODE(TO_CHAR(B.COMMERR,'HH24MISS'),'030000',TO_DATE('20000101000000','YYYYMMDDHH24MISS'),null,TO_DATE('20000101000000','YYYYMMDDHH24MISS'),B.COMMERR) AS COMMERR,
|
|
|
|
+ DECODE(TO_CHAR(B.CTLERR,'HH24MISS'),'030000',TO_DATE('20000101000000','YYYYMMDDHH24MISS'),null,TO_DATE('20000101000000','YYYYMMDDHH24MISS'),B.CTLERR) AS CTLERR,
|
|
|
|
+ TEMPERATURE,
|
|
|
|
+ HUMIDITY,
|
|
|
|
+ FANSTATUS,
|
|
|
|
+ FANOPSTATUS,
|
|
|
|
+ DECODE(B.WCOMMSTATUS,NULL,'CMS0',0,'CMS0',1,'CMS1') WCOMMSTATUS,
|
|
|
|
+ DECODE(B.WLCOMMSTATUS,NULL,'CMS0',0,'CMS0',1,'CMS1') WLCOMMSTATUS,
|
|
|
|
+ HEATEROPSTATUS,
|
|
|
|
+ CAMERASTATUS,
|
|
|
|
+ DOORSTATUS,
|
|
|
|
+ MONITORSTATUS,
|
|
|
|
+ MEMORYCAPACITY,
|
|
|
|
+ LCDLIGHT,
|
|
|
|
+ ILLUMINATION,
|
|
|
|
+ SOUNDVOLUME
|
|
|
|
+ FROM BIT C,
|
|
|
|
+ (SELECT /*+ INDEX_DESC(CH BITSTATUS_HISTORY_PK) */
|
|
|
|
+ A.COMMERR, A.CTLERR, A.ERRCNT, CH.*
|
|
|
|
+ FROM BITSTATUS_HISTORY CH,
|
|
|
|
+ (SELECT /*+ INDEX_DESC(BITSTATUS_HISTORY BITSTATUS_HISTORY_PK) */
|
|
|
|
+ BITID, MAX(RECORDDATE) RECORDDATE,
|
|
|
|
+ MAX(RECORDTIMESTAMP) RECORDTIMESTAMP,
|
|
|
|
+ SUM(DECODE(TO_CHAR(RECORDTIMESTAMP,'HH24MISS'),'030000',0,
|
|
|
|
+ CASE WHEN WCOMMSTATUS = '0' AND (WLCOMMSTATUS IS NULL
|
|
|
|
+ OR WLCOMMSTATUS = '0') THEN 1
|
|
|
|
+ ELSE 0 END)) ERRCNT,
|
|
|
|
+ MAX(CASE WHEN WCOMMSTATUS = '0' AND (WLCOMMSTATUS IS NULL
|
|
|
|
+ OR WLCOMMSTATUS = '0') THEN RECORDTIMESTAMP
|
|
|
|
+ ELSE TO_DATE('20000101000000','YYYYMMDDHH24MISS') END) COMMERR,
|
|
|
|
+ MAX(DECODE(CAMERASTATUS,'0',RECORDTIMESTAMP,
|
|
|
|
+ TO_DATE('20000101000000','YYYYMMDDHH24MISS'))) CTLERR
|
|
|
|
+ FROM BITSTATUS_HISTORY
|
|
|
|
+ WHERE RECORDDATE >= TO_DATE(TO_CHAR(SYSDATE - 1,'YYYYMMDD') || '030000' ,'YYYYMMDDHH24MISS')
|
|
|
|
+ AND RECORDTIMESTAMP >= TO_TIMESTAMP(TO_CHAR(SYSDATE - 1,'YYYYMMDD') || '030000','YYYYMMDDHH24MISS')
|
|
|
|
+ GROUP BY BITID) A
|
|
|
|
+ WHERE CH.RECORDDATE = A.RECORDDATE
|
|
|
|
+ AND CH.RECORDTIMESTAMP = A.RECORDTIMESTAMP
|
|
|
|
+ AND CH.BITID = A.BITID) B
|
|
|
|
+ WHERE C.BITID = B.BITID(+) AND C.USEFLAG = '1'
|
|
|
|
+ <if test='bitName != null and bitName != ""'>
|
|
|
|
+ AND C.BITNAME LIKE '%'|| #{bitName} || '%'
|
|
|
|
+ </if>
|
|
|
|
+ ORDER BY C.BITNAME
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+ <select id="findAllBusVehicleSearchList" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.BusVehicleDto">
|
|
|
|
+ SELECT BITID,
|
|
|
|
+ BITNAME,
|
|
|
|
+ COORDX,
|
|
|
|
+ COORDY
|
|
|
|
+ FROM BIT
|
|
|
|
+ WHERE USEFLAG = '1'
|
|
|
|
+ AND BITNAME LIKE '%' || #{bitName} || '%'
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+ <select id="findAllBitRouteInfo" parameterType="java.lang.String" resultType="com.its.api.bis.model.dto.wall.BitRouteInfoDto">
|
|
|
|
+ SELECT BUSROUTEID,
|
|
|
|
+ BUSROUTENAME,
|
|
|
|
+ LASTSTOPID,
|
|
|
|
+ LASTSTOPNAME,
|
|
|
|
+ ACCPTARRIVALTIME,
|
|
|
|
+ REMAINSTOPCNT
|
|
|
|
+ FROM
|
|
|
|
+ (SELECT BUSROUTEID,
|
|
|
|
+ (SELECT BUSROUTENAME FROM BUS_ROUTE WHERE BUSROUTEID = A.BUSROUTEID) AS BUSROUTENAME,
|
|
|
|
+ LASTSTOPID,
|
|
|
|
+ (SELECT STATIONNAME FROM BUS_STATION WHERE STATIONID = A.LASTSTOPID) AS LASTSTOPNAME,
|
|
|
|
+ ACCPTARRIVALTIME,
|
|
|
|
+ REMAINSTOPCNT
|
|
|
|
+ FROM
|
|
|
|
+ (SELECT BUSROUTEID,
|
|
|
|
+ MAX(LASTSTOPID) LASTSTOPID,
|
|
|
|
+ MIN(ACCPTARRIVALTIME) ACCPTARRIVALTIME,
|
|
|
|
+ SUBSTR(MAX(SYS_CONNECT_BY_PATH (REMAINSTOPCNT,',')),2) REMAINSTOPCNT
|
|
|
|
+ FROM
|
|
|
|
+ (SELECT
|
|
|
|
+ BUSSTOPID,
|
|
|
|
+ BUSROUTEID,
|
|
|
|
+ LASTSTOPID,
|
|
|
|
+ ACCPTARRIVALTIME,
|
|
|
|
+ REMAINSTOPCNT,
|
|
|
|
+ ROW_NUMBER() OVER (PARTITION BY BUSROUTEID ORDER BY ACCPTARRIVALTIME) RNUM
|
|
|
|
+ FROM
|
|
|
|
+ (
|
|
|
|
+ SELECT T2.STATIONID BUSSTOPID,
|
|
|
|
+ T2.BUSROUTEID BUSROUTEID,
|
|
|
|
+ T2.PREDICTTIME ACCPTARRIVALTIME,
|
|
|
|
+ T2.LOCATIONNO - 1 REMAINSTOPCNT,
|
|
|
|
+ 1 STOPCNT,
|
|
|
|
+ T2.LASTSTATIONID LASTSTOPID
|
|
|
|
+ FROM BUS_ROUTE T1,
|
|
|
|
+ (
|
|
|
|
+ SELECT /*+ INDEX_DESC(ARRIVALPREDICT_STATION ARRIVALPREDICT_STATION_PK */
|
|
|
|
+ STATIONID,
|
|
|
|
+ BUSROUTEID,
|
|
|
|
+ LOCATIONNO,
|
|
|
|
+ PREDICTTIME,
|
|
|
|
+ LASTSTATIONID,
|
|
|
|
+ CASE WHEN LOCATIONNO <![CDATA[<= 3]]> THEN LOCATIONNO ELSE 4 END SERVICETYPE,
|
|
|
|
+ ROW_NUMBER() OVER (PARTITION BY STATIONID, BUSROUTEID ORDER BY CREATEDATE DESC, LOCATIONNO) RID
|
|
|
|
+ FROM ARRIVALPREDICT_STATION
|
|
|
|
+ WHERE CREATEDATE > SYSDATE - (5 / 1440)
|
|
|
|
+ ) T2
|
|
|
|
+ WHERE T1.BUSROUTEID = T2.BUSROUTEID
|
|
|
|
+ AND T2.RID = 1
|
|
|
|
+ AND T2.LOCATIONNO > 0
|
|
|
|
+ ORDER BY T2.SERVICETYPE, T2.PREDICTTIME
|
|
|
|
+ ) A, BIT_BUSSTATION B
|
|
|
|
+ WHERE B.BITID = #{bitId}
|
|
|
|
+ AND A.BUSSTOPID = B.STATIONID)
|
|
|
|
+ START WITH RNUM = 1
|
|
|
|
+ CONNECT BY PRIOR RNUM = RNUM - 1 AND PRIOR BUSROUTEID = BUSROUTEID
|
|
|
|
+ GROUP BY BUSROUTEID
|
|
|
|
+ ) A
|
|
|
|
+ ORDER BY ACCPTARRIVALTIME)
|
|
|
|
+ WHERE ROWNUM <![CDATA[<= 5]]>
|
|
|
|
+ </select>
|
|
|
|
+
|
|
|
|
+</mapper>
|