Explorar o código

add vehicle type traffic volume history query

shjung hai 1 ano
pai
achega
c54a170558

+ 31 - 0
src/main/java/com/its/op/controller/its/scrs/ScTfvlStatisticsController.java

@@ -1,6 +1,7 @@
 package com.its.op.controller.its.scrs;
 
 import com.its.op.dto.its.scrs.ScTfvlDto;
+import com.its.op.dto.its.scrs.ScVhclTypeTfvlHsDto;
 import com.its.op.service.its.scrs.ScTfvlStatisticsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -180,4 +181,34 @@ public class ScTfvlStatisticsController {
             @RequestParam String TO_DT) {
         return this.service.findTfvlMNLane(ixrId, cmraIds, FROM_DT, TO_DT);
     }
+
+
+    @ApiOperation(value = "차종별 통계이력 05분", response = ScTfvlDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/05m/vhcl-type/{ixrId}", produces = {"application/json; charset=utf8"})
+    public List<ScVhclTypeTfvlHsDto> findVhclTypeTfvl05M(
+            @PathVariable("ixrId") final String ixrId,
+            @ApiParam(name = "cmraIds", value = "카메라 목록", example = "[1,2]", required = true)
+            @RequestParam List<String> cmraIds,
+            @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH240000)", example = "20210112150000", required = true)
+            @RequestParam String FROM_DT,
+            @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH245959)", example = "20221112155959", required = true)
+            @RequestParam String TO_DT) {
+        return this.service.findVhclTypeTfvl05M(ixrId, cmraIds, FROM_DT, TO_DT);
+    }
+
+    @ApiOperation(value = "차종별 통계이력 05분-차선별", response = ScTfvlDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/lane/05m/vhcl-type/{ixrId}", produces = {"application/json; charset=utf8"})
+    public List<ScVhclTypeTfvlHsDto> findVhclTypeTfvl05MLane(
+            @PathVariable("ixrId") final String ixrId,
+            @ApiParam(name = "cmraIds", value = "카메라 목록", example = "[1,2]", required = true)
+            @RequestParam List<String> cmraIds,
+            @ApiParam(name = "lanes", value = "차선", example = "[1,2]", required = false)
+            @RequestParam List<Integer> lanes,
+            @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH240000)", example = "20210112150000", required = true)
+            @RequestParam String FROM_DT,
+            @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH245959)", example = "20221112155959", required = true)
+            @RequestParam String TO_DT) {
+        return this.service.findVhclTypeTfvl05MLane(ixrId, cmraIds, lanes, FROM_DT, TO_DT);
+    }
+
 }

+ 4 - 0
src/main/java/com/its/op/dao/mapper/its/scrs/ScTfvlStatisticsMapper.java

@@ -3,6 +3,7 @@ package com.its.op.dao.mapper.its.scrs;
 import com.its.op.dto.its.scrs.ScIxrCmraTfvlDto;
 import com.its.op.dto.its.scrs.ScTfvlDto;
 import com.its.op.dto.its.scrs.ScTfvlParam;
+import com.its.op.dto.its.scrs.ScVhclTypeTfvlHsDto;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -30,4 +31,7 @@ public interface ScTfvlStatisticsMapper {
     List<ScTfvlDto> findTfvlMNLane(@Param("cond") ScTfvlParam cond);
 
     List<ScIxrCmraTfvlDto> findIxtTfvlToday();
+
+    List<ScVhclTypeTfvlHsDto> findVhclTypeTfvl05M(@Param("cond") ScTfvlParam cond);
+    List<ScVhclTypeTfvlHsDto> findVhclTypeTfvl05MLane(@Param("cond") ScTfvlParam cond);
 }

+ 244 - 0
src/main/java/com/its/op/dto/its/scrs/ScVhclTypeTfvlHsDto.java

@@ -0,0 +1,244 @@
+package com.its.op.dto.its.scrs;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 5분 차종별 교통량 이력 DTO Class
+ */
+@Data
+@Builder
+@ApiModel("ScVhclTypeTfvlHsDto(5분 차종별 교통량 이력)")
+public class ScVhclTypeTfvlHsDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("교차로 ID")  // N VARCHAR2(10)
+    @JsonProperty("ixr_id")
+    private String ixrId;
+
+    @ApiModelProperty("교차로 명")
+    @JsonProperty("ixr_nm")
+    private String ixrNm;
+
+    @ApiModelProperty("카메라 ID")  // N VARCHAR2(10)
+    @JsonProperty("cmra_id")
+    private String cmraId;
+
+    @ApiModelProperty("설치 위치")
+    @JsonProperty("istl_lctn")
+    private String istlLctn;
+
+    @ApiModelProperty("방향 구분 코드(1:북,2:동,3:남,4:서,5:북동,6:남동,7:남서,8:북서)")  // N NUMBER(1)
+    @JsonProperty("drct_dvsn_cd")
+    private Integer drctDvsnCd;
+
+    @ApiModelProperty("방향 구분 코드 설명")
+    @JsonProperty("drct_dvsn_nm")
+    private String drctDvsnNm;
+
+    @ApiModelProperty("차로")  // N NUMBER(2)
+    @JsonProperty("lane")
+    private Integer lane;
+
+    @ApiModelProperty("통계 일시")
+    @JsonProperty("stat_dt")
+    private String statDt;
+
+    @ApiModelProperty("직진 교통량 1종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_01")
+    private Long goTfvl01;
+
+    @ApiModelProperty("직진 교통량 2종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_02")
+    private Long goTfvl02;
+
+    @ApiModelProperty("직진 교통량 3종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_03")
+    private Long goTfvl03;
+
+    @ApiModelProperty("직진 교통량 4종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_04")
+    private Long goTfvl04;
+
+    @ApiModelProperty("직진 교통량 5종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_05")
+    private Long goTfvl05;
+
+    @ApiModelProperty("직진 교통량 6종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_06")
+    private Long goTfvl06;
+
+    @ApiModelProperty("직진 교통량 7종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_07")
+    private Long goTfvl07;
+
+    @ApiModelProperty("직진 교통량 8종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_08")
+    private Long goTfvl08;
+
+    @ApiModelProperty("직진 교통량 9종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_09")
+    private Long goTfvl09;
+
+    @ApiModelProperty("직진 교통량 10종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_10")
+    private Long goTfvl10;
+
+    @ApiModelProperty("직진 교통량 11종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_11")
+    private Long goTfvl11;
+
+    @ApiModelProperty("직진 교통량 12종")  // Y NUMBER(11)
+    @JsonProperty("go_tfvl_12")
+    private Long goTfvl12;
+
+    @ApiModelProperty("좌회전 교통량 1종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_01")
+    private Long leftTfvl01;
+
+    @ApiModelProperty("좌회전 교통량 2종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_02")
+    private Long leftTfvl02;
+
+    @ApiModelProperty("좌회전 교통량 3종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_03")
+    private Long leftTfvl03;
+
+    @ApiModelProperty("좌회전 교통량 4종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_04")
+    private Long leftTfvl04;
+
+    @ApiModelProperty("좌회전 교통량 5종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_05")
+    private Long leftTfvl05;
+
+    @ApiModelProperty("좌회전 교통량 6종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_06")
+    private Long leftTfvl06;
+
+    @ApiModelProperty("좌회전 교통량 7종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_07")
+    private Long leftTfvl07;
+
+    @ApiModelProperty("좌회전 교통량 8종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_08")
+    private Long leftTfvl08;
+
+    @ApiModelProperty("좌회전 교통량 9종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_09")
+    private Long leftTfvl09;
+
+    @ApiModelProperty("좌회전 교통량 10종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_10")
+    private Long leftTfvl10;
+
+    @ApiModelProperty("좌회전 교통량 11종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_11")
+    private Long leftTfvl11;
+
+    @ApiModelProperty("좌회전 교통량 12종")  // Y NUMBER(11)
+    @JsonProperty("left_tfvl_12")
+    private Long leftTfvl12;
+
+    @ApiModelProperty("우회전 교통량 1종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_01")
+    private Long rghtTfvl01;
+
+    @ApiModelProperty("우회전 교통량 2종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_02")
+    private Long rghtTfvl02;
+
+    @ApiModelProperty("우회전 교통량 3종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_03")
+    private Long rghtTfvl03;
+
+    @ApiModelProperty("우회전 교통량 4종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_04")
+    private Long rghtTfvl04;
+
+    @ApiModelProperty("우회전 교통량 5종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_05")
+    private Long rghtTfvl05;
+
+    @ApiModelProperty("우회전 교통량 6종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_06")
+    private Long rghtTfvl06;
+
+    @ApiModelProperty("우회전 교통량 7종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_07")
+    private Long rghtTfvl07;
+
+    @ApiModelProperty("우회전 교통량 8종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_08")
+    private Long rghtTfvl08;
+
+    @ApiModelProperty("우회전 교통량 9종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_09")
+    private Long rghtTfvl09;
+
+    @ApiModelProperty("우회전 교통량 10종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_10")
+    private Long rghtTfvl10;
+
+    @ApiModelProperty("우회전 교통량 11종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_11")
+    private Long rghtTfvl11;
+
+    @ApiModelProperty("우회전 교통량 12종")  // Y NUMBER(11)
+    @JsonProperty("rght_tfvl_12")
+    private Long rghtTfvl12;
+
+    @ApiModelProperty("U턴  교통량 1종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_01")
+    private Long uturnTfvl01;
+
+    @ApiModelProperty("U턴  교통량 2종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_02")
+    private Long uturnTfvl02;
+
+    @ApiModelProperty("U턴  교통량 3종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_03")
+    private Long uturnTfvl03;
+
+    @ApiModelProperty("U턴  교통량 4종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_04")
+    private Long uturnTfvl04;
+
+    @ApiModelProperty("U턴  교통량 5종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_05")
+    private Long uturnTfvl05;
+
+    @ApiModelProperty("U턴  교통량 6종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_06")
+    private Long uturnTfvl06;
+
+    @ApiModelProperty("U턴  교통량 7종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_07")
+    private Long uturnTfvl07;
+
+    @ApiModelProperty("U턴  교통량 8종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_08")
+    private Long uturnTfvl08;
+
+    @ApiModelProperty("U턴  교통량 9종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_09")
+    private Long uturnTfvl09;
+
+    @ApiModelProperty("U턴  교통량 10종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_10")
+    private Long uturnTfvl10;
+
+    @ApiModelProperty("U턴  교통량 11종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_11")
+    private Long uturnTfvl11;
+
+    @ApiModelProperty("U턴  교통량 12종")  // Y NUMBER(11)
+    @JsonProperty("uturn_tfvl_12")
+    private Long uturnTfvl12;
+
+}

+ 41 - 0
src/main/java/com/its/op/service/its/scrs/ScTfvlStatisticsService.java

@@ -3,6 +3,7 @@ package com.its.op.service.its.scrs;
 import com.its.op.dao.mapper.its.scrs.ScTfvlStatisticsMapper;
 import com.its.op.dto.its.scrs.ScTfvlDto;
 import com.its.op.dto.its.scrs.ScTfvlParam;
+import com.its.op.dto.its.scrs.ScVhclTypeTfvlHsDto;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -153,4 +154,44 @@ public class ScTfvlStatisticsService {
                 .build();
         return this.mapper.findTfvlMNLane(param);
     }
+
+
+    /**
+     * 교차로 차종별 교통량 원시 수집 이력(5분)
+     * @param ixrId
+     * @param cmraIds
+     * @param fromDt
+     * @param toDt
+     * @return
+     */
+    public List<ScVhclTypeTfvlHsDto> findVhclTypeTfvl05M(String ixrId, List<String> cmraIds, String fromDt, String toDt) {
+        ScTfvlParam param = ScTfvlParam.builder()
+                .ixrId(ixrId)
+                .cmraIds(cmraIds)
+                .fromDt(fromDt)
+                .toDt(toDt)
+                .build();
+        return this.mapper.findVhclTypeTfvl05M(param);
+    }
+
+    /**
+     * 교차로 차종별 교통량 원시 수집 이력(5분 - 차선별)
+     * @param ixrId
+     * @param cmraIds
+     * @param lanes
+     * @param fromDt
+     * @param toDt
+     * @return
+     */
+    public List<ScVhclTypeTfvlHsDto> findVhclTypeTfvl05MLane(String ixrId, List<String> cmraIds, List<Integer> lanes, String fromDt, String toDt) {
+        ScTfvlParam param = ScTfvlParam.builder()
+                .ixrId(ixrId)
+                .cmraIds(cmraIds)
+                .lanes(lanes)
+                .fromDt(fromDt)
+                .toDt(toDt)
+                .build();
+        return this.mapper.findVhclTypeTfvl05MLane(param);
+    }
+
 }

+ 160 - 0
src/main/resources/mybatis/mapper/its/scrs/ScTfvlStatisticsMapper.xml

@@ -832,4 +832,164 @@
         GROUP BY T.IXR_ID, T.CMRA_ID
     </select>
 
+
+    <select id="findVhclTypeTfvl05M" parameterType="com.its.op.dto.its.scrs.ScTfvlParam" resultType="com.its.op.dto.its.scrs.ScVhclTypeTfvlHsDto" fetchSize="1000">
+        SELECT B.IXR_ID AS ixrId,
+        MIN(B.IXR_NM) AS ixrNm,
+        B.CMRA_ID AS cmraId,
+        MIN(B.ISTL_LCTN) AS istlLctn,
+        MIN(B.DRCT_DVSN_CD) AS drctDvsnCd,
+        MIN(B.DRCT_DVSN_NM) AS drctDvsnNm,
+        A.CLCT_DT AS statDt,
+        NVL(MIN(A.LANE), 0) AS lane,
+        SUM(A.GO_TFVL_01)    AS goTfvl01,
+        SUM(A.GO_TFVL_02)    AS goTfvl02,
+        SUM(A.GO_TFVL_03)    AS goTfvl03,
+        SUM(A.GO_TFVL_04)    AS goTfvl04,
+        SUM(A.GO_TFVL_05)    AS goTfvl05,
+        SUM(A.GO_TFVL_06)    AS goTfvl06,
+        SUM(A.GO_TFVL_07)    AS goTfvl07,
+        SUM(A.GO_TFVL_08)    AS goTfvl08,
+        SUM(A.GO_TFVL_09)    AS goTfvl09,
+        SUM(A.GO_TFVL_10)    AS goTfvl10,
+        SUM(A.GO_TFVL_11)    AS goTfvl11,
+        SUM(A.GO_TFVL_12)    AS goTfvl12,
+        SUM(A.LEFT_TFVL_01)  AS leftTfvl01,
+        SUM(A.LEFT_TFVL_02)  AS leftTfvl02,
+        SUM(A.LEFT_TFVL_03)  AS leftTfvl03,
+        SUM(A.LEFT_TFVL_04)  AS leftTfvl04,
+        SUM(A.LEFT_TFVL_05)  AS leftTfvl05,
+        SUM(A.LEFT_TFVL_06)  AS leftTfvl06,
+        SUM(A.LEFT_TFVL_07)  AS leftTfvl07,
+        SUM(A.LEFT_TFVL_08)  AS leftTfvl08,
+        SUM(A.LEFT_TFVL_09)  AS leftTfvl09,
+        SUM(A.LEFT_TFVL_10)  AS leftTfvl10,
+        SUM(A.LEFT_TFVL_11)  AS leftTfvl11,
+        SUM(A.LEFT_TFVL_12)  AS leftTfvl12,
+        SUM(A.RGHT_TFVL_01)  AS rghtTfvl01,
+        SUM(A.RGHT_TFVL_02)  AS rghtTfvl02,
+        SUM(A.RGHT_TFVL_03)  AS rghtTfvl03,
+        SUM(A.RGHT_TFVL_04)  AS rghtTfvl04,
+        SUM(A.RGHT_TFVL_05)  AS rghtTfvl05,
+        SUM(A.RGHT_TFVL_06)  AS rghtTfvl06,
+        SUM(A.RGHT_TFVL_07)  AS rghtTfvl07,
+        SUM(A.RGHT_TFVL_08)  AS rghtTfvl08,
+        SUM(A.RGHT_TFVL_09)  AS rghtTfvl09,
+        SUM(A.RGHT_TFVL_10)  AS rghtTfvl10,
+        SUM(A.RGHT_TFVL_11)  AS rghtTfvl11,
+        SUM(A.RGHT_TFVL_12)  AS rghtTfvl12,
+        SUM(A.UTURN_TFVL_01) AS uturnTfvl01,
+        SUM(A.UTURN_TFVL_02) AS uturnTfvl02,
+        SUM(A.UTURN_TFVL_03) AS uturnTfvl03,
+        SUM(A.UTURN_TFVL_04) AS uturnTfvl04,
+        SUM(A.UTURN_TFVL_05) AS uturnTfvl05,
+        SUM(A.UTURN_TFVL_06) AS uturnTfvl06,
+        SUM(A.UTURN_TFVL_07) AS uturnTfvl07,
+        SUM(A.UTURN_TFVL_08) AS uturnTfvl08,
+        SUM(A.UTURN_TFVL_09) AS uturnTfvl09,
+        SUM(A.UTURN_TFVL_10) AS uturnTfvl10,
+        SUM(A.UTURN_TFVL_11) AS uturnTfvl11,
+        SUM(A.UTURN_TFVL_12) AS uturnTfvl12
+        FROM TB_SC_VHCL_TYPE_TFVL_HS A,
+        (SELECT A.IXR_ID, A.IXR_NM, B.CMRA_ID, B.ISTL_LCTN,
+        B.DRCT_DVSN_CD, fn_codeName('DRCT', B.DRCT_DVSN_CD) AS DRCT_DVSN_NM
+        FROM TB_SC_IXR_MNGM A
+        INNER JOIN TB_SC_IXR_CMRA_MNGM B
+        ON A.IXR_ID = #{cond.ixrId}
+        AND A.IXR_ID = B.IXR_ID
+        <if test="cond.cmraIds != null and cond.cmraIds.size > 0">
+            AND B.CMRA_ID IN
+            <foreach collection="cond.cmraIds" item="cmraId" open="(" close=")" separator=" , ">
+                #{cmraId}
+            </foreach>
+        </if>
+        ) B
+        WHERE A.IXR_ID  = B.IXR_ID
+        AND A.CMRA_ID = B.CMRA_ID
+        AND A.CLCT_DT BETWEEN #{cond.fromDt} AND #{cond.toDt}
+        GROUP BY B.IXR_ID, B.CMRA_ID, A.CLCT_DT
+    </select>
+
+    <select id="findVhclTypeTfvl05MLane" parameterType="com.its.op.dto.its.scrs.ScTfvlParam" resultType="com.its.op.dto.its.scrs.ScVhclTypeTfvlHsDto" fetchSize="1000">
+        SELECT B.IXR_ID AS ixrId,
+        B.IXR_NM AS ixrNm,
+        B.CMRA_ID AS cmraId,
+        B.ISTL_LCTN AS istlLctn,
+        B.DRCT_DVSN_CD AS drctDvsnCd,
+        B.DRCT_DVSN_NM AS drctDvsnNm,
+        A.CLCT_DT AS statDt,
+        A.LANE AS lane,
+        A.GO_TFVL_01    AS goTfvl01,
+        A.GO_TFVL_02    AS goTfvl02,
+        A.GO_TFVL_03    AS goTfvl03,
+        A.GO_TFVL_04    AS goTfvl04,
+        A.GO_TFVL_05    AS goTfvl05,
+        A.GO_TFVL_06    AS goTfvl06,
+        A.GO_TFVL_07    AS goTfvl07,
+        A.GO_TFVL_08    AS goTfvl08,
+        A.GO_TFVL_09    AS goTfvl09,
+        A.GO_TFVL_10    AS goTfvl10,
+        A.GO_TFVL_11    AS goTfvl11,
+        A.GO_TFVL_12    AS goTfvl12,
+        A.LEFT_TFVL_01  AS leftTfvl01,
+        A.LEFT_TFVL_02  AS leftTfvl02,
+        A.LEFT_TFVL_03  AS leftTfvl03,
+        A.LEFT_TFVL_04  AS leftTfvl04,
+        A.LEFT_TFVL_05  AS leftTfvl05,
+        A.LEFT_TFVL_06  AS leftTfvl06,
+        A.LEFT_TFVL_07  AS leftTfvl07,
+        A.LEFT_TFVL_08  AS leftTfvl08,
+        A.LEFT_TFVL_09  AS leftTfvl09,
+        A.LEFT_TFVL_10  AS leftTfvl10,
+        A.LEFT_TFVL_11  AS leftTfvl11,
+        A.LEFT_TFVL_12  AS leftTfvl12,
+        A.RGHT_TFVL_01  AS rghtTfvl01,
+        A.RGHT_TFVL_02  AS rghtTfvl02,
+        A.RGHT_TFVL_03  AS rghtTfvl03,
+        A.RGHT_TFVL_04  AS rghtTfvl04,
+        A.RGHT_TFVL_05  AS rghtTfvl05,
+        A.RGHT_TFVL_06  AS rghtTfvl06,
+        A.RGHT_TFVL_07  AS rghtTfvl07,
+        A.RGHT_TFVL_08  AS rghtTfvl08,
+        A.RGHT_TFVL_09  AS rghtTfvl09,
+        A.RGHT_TFVL_10  AS rghtTfvl10,
+        A.RGHT_TFVL_11  AS rghtTfvl11,
+        A.RGHT_TFVL_12  AS rghtTfvl12,
+        A.UTURN_TFVL_01 AS uturnTfvl01,
+        A.UTURN_TFVL_02 AS uturnTfvl02,
+        A.UTURN_TFVL_03 AS uturnTfvl03,
+        A.UTURN_TFVL_04 AS uturnTfvl04,
+        A.UTURN_TFVL_05 AS uturnTfvl05,
+        A.UTURN_TFVL_06 AS uturnTfvl06,
+        A.UTURN_TFVL_07 AS uturnTfvl07,
+        A.UTURN_TFVL_08 AS uturnTfvl08,
+        A.UTURN_TFVL_09 AS uturnTfvl09,
+        A.UTURN_TFVL_10 AS uturnTfvl10,
+        A.UTURN_TFVL_11 AS uturnTfvl11,
+        A.UTURN_TFVL_12 AS uturnTfvl12
+        FROM TB_SC_VHCL_TYPE_TFVL_HS A,
+        (SELECT A.IXR_ID, A.IXR_NM, B.CMRA_ID, B.ISTL_LCTN,
+        B.DRCT_DVSN_CD, fn_codeName('DRCT', B.DRCT_DVSN_CD) AS DRCT_DVSN_NM
+        FROM TB_SC_IXR_MNGM A
+        INNER JOIN TB_SC_IXR_CMRA_MNGM B
+        ON A.IXR_ID = #{cond.ixrId}
+        AND A.IXR_ID = B.IXR_ID
+        <if test="cond.cmraIds != null and cond.cmraIds.size > 0">
+            AND B.CMRA_ID IN
+            <foreach collection="cond.cmraIds" item="cmraId" open="(" close=")" separator=" , ">
+                #{cmraId}
+            </foreach>
+        </if>
+        ) B
+        WHERE A.IXR_ID  = B.IXR_ID
+        AND A.CMRA_ID = B.CMRA_ID
+        AND A.CLCT_DT BETWEEN #{cond.fromDt} AND #{cond.toDt}
+        <if test="cond.lanes != null and cond.lanes.size > 0">
+            AND A.LANE IN
+            <foreach collection="cond.lanes" item="lane" open="(" close=")" separator=" , ">
+                #{lane}
+            </foreach>
+        </if>
+    </select>
+
 </mapper>